diff --git a/Makefile b/Makefile index 55e0de5497..ec91548749 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ clean: config.h docs: src/cpptraj.Doxyfile cd doc && make docs - cd src && doxygen cpptraj.Doxyfile + cd src && ../devtools/UpdateDoxyVersion.sh && doxygen cpptraj.Doxyfile # Remove cpptraj binary uninstall: config.h diff --git a/README.md b/README.md index 490ff4b0c8..03f01cc2e3 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ CPPTRAJ see the following publication: Disclaimer and Copyright ======================== -CPPTRAJ is Copyright (c) 2010-2025 Daniel R. Roe. +CPPTRAJ is Copyright (c) 2010-2026 Daniel R. Roe. The terms for using, copying, modifying, and distributing CPPTRAJ are specified in the file LICENSE. @@ -80,7 +80,7 @@ the following libraries: * Parallel NetCDF (-mpi build only, for NetCDF trajectory output in parallel) * CUDA (-cuda build only) * HIP (-hip build only) -* FFTW (mostly optional; required for PME functionality and very large FFTs) +* FFTW (mostly optional but recommended; required for PME functionality and very large FFTs) CPPTRAJ also makes use of the following libraries that are bundled with CPPTRAJ. External ones can be used in place of these if desired. diff --git a/configure b/configure index 6b05f04aac..c5bea5a1a0 100755 --- a/configure +++ b/configure @@ -103,6 +103,7 @@ UsageFull() { echo " -gprofile : Use Gnu compiler GLIBC profiling (>= V4.5)*" echo " -vtune : Enable options for use with Intel Vtune." echo " -single-ensemble : Enable support for reading/writing single ensemble trajectories." + echo " -leappi : Use LEaP's value of PI for converting radians/degrees." echo "" echo "*NOTE: -profile and -gprofile are mutually exclusive." echo "" @@ -202,6 +203,7 @@ icpp=0 # Used to count cmake_prefix_paths USE_SINGLEENSEMBLE=0 # Enable support for single ensemble trajectories USE_CPPTRAJDEBUG=0 # Enable internal cpptraj debug flags +USE_LEAP_PI=0 # Use LEaP's value of PI for converting radians/degrees CLEAN='yes' # yes = clean after configure, no = do not PERFORM_CHECKS='yes' # yes = Check compilers/libraries, no = do not @@ -257,7 +259,7 @@ LIB_STTC[$LNETCDF]='libnetcdf.a' # Expected static location relative to home LIB_D_ON[$LNETCDF]='-DBINTRAJ' # Directive if library on LIB_DOFF[$LNETCDF]='' # Directive if library off LIB_LINK[$LNETCDF]='dynamic' # How to link the library -LIB_TYPE[$LNETCDF]='ld' # ld = LDFLAGS, cpp = cpptraj, blank = special +LIB_TYPE[$LNETCDF]='ld' # ld = LDFLAGS, cpp = cpptraj/libcpptraj, cpptraj=cpptraj only, blank = special LIB_STAT[$LPARANC]='off' LIB_CKEY[$LPARANC]='pnetcdf' @@ -347,7 +349,7 @@ LIB_FLAG[$LSANDER]='-lsander' LIB_STTC[$LSANDER]='' LIB_D_ON[$LSANDER]='-DUSE_SANDERLIB' LIB_DOFF[$LSANDER]='' -LIB_TYPE[$LSANDER]='ld' +LIB_TYPE[$LSANDER]='cpptraj' LIB_STAT[$LTIMER]='off' LIB_CKEY[$LTIMER]='timer' @@ -1334,6 +1336,7 @@ SetupFinalFlags() { DIRECTIVES="$DIRECTIVES -DLIBPME -DHAVE_FFTWD=1" fi fi + if [ $USE_LEAP_PI -eq 1 ] ; then DIRECTIVES="$DIRECTIVES -DCPPTRAJ_USE_LEAP_PI" ; fi # Determine if this is a GitHub or AmberTools build if [ ! -z "$AMBERHOME" ] ; then AMBCFGDIR=`pwd | grep "AmberTools/src"` @@ -1384,6 +1387,7 @@ SetupFinalFlags() { # Set up include and linking flags ldf='' CPPTRAJ_LIB='' + CPPTRAJONLY_LIB='' CPPTRAJ_INC='' nincl=0 for ((i=0; i < $NLIB; i++)) ; do @@ -1420,6 +1424,8 @@ SetupFinalFlags() { ldf="$ldf ${LIB_FLAG[$i]}" elif [ "${LIB_TYPE[$i]}" = 'cpp' ] ; then CPPTRAJ_LIB="$CPPTRAJ_LIB ${LIB_FLAG[$i]}" + elif [ "${LIB_TYPE[$i]}" = 'cpptraj' ] ; then + CPPTRAJONLY_LIB="$CPPTRAJONLY_LIB ${LIB_FLAG[$i]}" fi fi done @@ -2842,6 +2848,7 @@ while [ ! -z "$1" ] ; do '-nolfs' ) LFS='' ;; '-single-ensemble' ) USE_SINGLEENSEMBLE=1 ;; '-debugon' ) USE_CPPTRAJDEBUG=1 ;; + '-leappi' ) USE_LEAP_PI=1 ;; # Code profiling '-profile' ) USE_PROFILE=1 ;; '-gprofile' ) USE_PROFILE=2 ;; @@ -2851,7 +2858,7 @@ while [ ! -z "$1" ] ; do '-libstatic' ) USE_STATIC=2 ;; '-shared' ) USE_SHARED=1 - LIB_STAT[$LSANDER]='off' +# LIB_STAT[$LSANDER]='off' ;; '-amberlib' ) if [ -z "$AMBERHOME" ] ; then @@ -3064,12 +3071,16 @@ if [ $USE_STATIC -eq 1 ] ; then elif [ $USE_STATIC -eq 2 ] ; then echo " Specified libraries will be linked statically if possible." fi +if [ $USE_LEAP_PI -eq 1 ] ; then + echo " Using LEaP's value of PI for converting radians/degrees." +fi #echo DIRECTIVES $DIRECTIVES #echo CFLAGS $CFLAGS #echo CXXFLAGS $CXXFLAGS #echo FFLAGS $FFLAGS #echo LDFLAGS $LDFLAGS #echo CPPTRAJ_LIB $CPPTRAJ_LIB +#echo CPPTRAJONLY_LIB $CPPTRAJONLY_LIB #echo CPPTRAJ_INC $CPPTRAJ_INC #echo REQUIRES_FLINK $REQUIRES_FLINK FLINK $FLINK echo "" @@ -3179,6 +3190,7 @@ ARPACK_TARGET=$ARPACK_TARGET FFT_TARGET=$FFT_TARGET CPPTRAJ_LIB=$CPPTRAJ_LIB +CPPTRAJONLY_LIB=$CPPTRAJONLY_LIB LDFLAGS=$LDFLAGS SFX=$SFX EXE=$EXE diff --git a/devtools/FindMissingTests.sh b/devtools/FindMissingTests.sh new file mode 100755 index 0000000000..af79c65774 --- /dev/null +++ b/devtools/FindMissingTests.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ ! -f 'Makefile' ] ; then + echo "Should be executed in directory where main test Makefile is." + exit 1 +fi + +for DIR in `ls -d Test_*` ; do + if [ -d "$DIR" ] ; then + IN_MAKEFILE=`grep $DIR Makefile` + if [ -z "$IN_MAKEFILE" ] ; then + echo "$DIR not in Makefile." + fi + fi +done diff --git a/devtools/GetVersionNum.sh b/devtools/GetVersionNum.sh new file mode 100755 index 0000000000..6ff603c44e --- /dev/null +++ b/devtools/GetVersionNum.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +EXEDIR=`dirname $0` + +if [ ! -d "$EXEDIR" ] ; then + echo "Error: Could not determine execution directory." + exit 1 +fi + +cd $EXEDIR + +VFILE=../src/Version.h +if [ ! -f "$VFILE" ] ; then + echo "Version file $VFILE not found." + exit 1 +fi + +VERSION=`awk '{if ($2 == "CPPTRAJ_INTERNAL_VERSION") {gsub(/\"/,""); printf ("%s", $3);}}' $VFILE` +echo $VERSION +exit 0 diff --git a/devtools/UpdateDoxyVersion.sh b/devtools/UpdateDoxyVersion.sh new file mode 100755 index 0000000000..36edd7277b --- /dev/null +++ b/devtools/UpdateDoxyVersion.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Update the cpptraj.Doxyfile version number + +EXEDIR=`dirname $0` + +if [ ! -d "$EXEDIR" ] ; then + echo "Error: Could not determine execution directory." + exit 1 +fi + +cd $EXEDIR +DFILE=../src/cpptraj.Doxyfile +if [ ! -f "$DFILE" ] ; then + echo "Doxygen file $DFILE not found." + exit 1 +fi + +VERSION=`./GetVersionNum.sh` +if [ $? -ne 0 ] ; then + echo "Error: Could not get version number." + exit 1 +fi + +if [ -f 'tmp.cpptraj.Doxyfile' ] ; then + rm tmp.cpptraj.Doxyfile +fi +awk -v vstring="$VERSION" '{ + if ($1 == "PROJECT_NUMBER") + printf("PROJECT_NUMBER = %s\n", vstring); + else + print $0; +}' $DFILE > tmp.cpptraj.Doxyfile +mv tmp.cpptraj.Doxyfile $DFILE + +exit 0 diff --git a/devtools/converters/Extract1264.cpp b/devtools/converters/Extract1264.cpp new file mode 100644 index 0000000000..867d26a06b --- /dev/null +++ b/devtools/converters/Extract1264.cpp @@ -0,0 +1,21 @@ +#include "ArgList.h" +#include "BufferedLine.h" +#include + +int main(int argc, char** argv) +{ + BufferedLine infile; + if (infile.OpenFileRead(argv[1])) return 1; + + const char* ptr = infile.Line(); + while (ptr != 0) { + ArgList line(ptr, "{}':, "); + //line.PrintDebug(); + for (int iarg = 0; iarg < line.Nargs(); iarg += 2) + printf(" c4params_.insert( NameMapPair(\"%s\", %s) );\n", line[iarg].c_str(), line[iarg+1].c_str()); + ptr = infile.Line(); + } + + infile.CloseFile(); + return 0; +} diff --git a/doc/ChangeLog.v7.md b/doc/ChangeLog.v7.md new file mode 100644 index 0000000000..2665ef855b --- /dev/null +++ b/doc/ChangeLog.v7.md @@ -0,0 +1,87 @@ +Changes in version 7.0 of CPPTRAJ. 2026 +======================================= + +The major change in this version is the introduction of the ability of CPPTRAJ to fully build and parameterize systems in the same way that LEaP does. + +New Commands +============ +- `build` - Allow full build and parameterization of systems for MD, including CMAP, LJ 12-6-4, solvation, and ions. Includes `prepareforleap` and `fixatomorder` functionality. Can create macromolecular assemblies from PDBs with multiple models. Can solvate with a target # of solvent molecules. + +- `source` - Read (limited) leaprc files. + +- `mutate` - Mutate residues from one kind to another, keeping only common atoms. + +- `desc` - DEBUG: describe a selection in the same manner as leap. + +New functionality +================= +- Read topology/coordinates with the 'readdata' command. + +- More complete read of Amber library/prep files. + +- Read CMAP energy term from Amber MDOUT file. + +- The `permutedihedrals` command will now check rings. + +- The `graft` command will now use CONNECT atom information if it is present. + +- The `energy` command will now calculate CMAP energies (if CMAP parameters are present) and/or LJ 12-6-4 contributions to VDW energy (if `lj1264` is specified). + +- The `sequence` command now generates better geometries around bonds linking residues. + +New Keywords +============ +- Introduce ring intersection check to `checkstructure` action. +``` +{noringcheck | [ringshortdist ] [ringdcut ] + [ringacut ]}] +``` + Ring-bond intersections are detected when the ring center to bond center is less than , or less than and the angle between the bond vector and ring perpendicular vector is less than . + +- Ignore extra points by default in the `checkstructure action. +``` +[{checkxp | xpmask }] +``` +If `checkxp` is specified, extra points will be included. By default, extra points will be ignored as determined by 'xpmask'; the default mask to select extra points is '&@\\XP' + +Add `namemap ` keywords for `change atomname from ` to use an atom name map for determining new atom names. + +Add `gb` to `change` command to change GB radii. + +Add `complete` keyword to `zmatrix` command to get complete zmatrix instead of minimal zmatrix. + +Add `atombondorder` keyword to mol2 output; sort bonds by first atom index (similar to how leap writes mol2 files). + +Add `lj1264` keyword to the `energy` command to enable LJ 12-6-4 energy calculation. + +New file formats recognized +=========================== +- Read Amber parameter (force field) files. + +- Read Amber force field modification (frcmod) files. + +- Read leaprc files (limited). + +- Read atom/pdb residue name maps. + +Misc Fixes +========== +- Fix timing percentage of solute-solvent hydrogen bonds in `hbond` action. + +- `replicatecell` action will correctly regenerate parameters as needed. + +- Fix small memory leak when calculating modes. + +- Ensure box information is properly updated if needed when using `crdaction`. + +- Improve memory allocation in the Frame class to avoid frequent reallocation of memory. + +- Improve handling of very large topology files. + +- Better handling of very small boxes with pairlist code. + +Not Yet Ready +============= +- Introduce the `byatom` keyword to `checkchirality` action to check the chirality of any atoms in specified mask that are chiral centers. + +- Cannot yet build topology files for polarizable force fields (IPOL > 0). diff --git a/doc/CpptrajDevelopmentGuide.lyx b/doc/CpptrajDevelopmentGuide.lyx index ced87ea271..8d11d03287 100644 --- a/doc/CpptrajDevelopmentGuide.lyx +++ b/doc/CpptrajDevelopmentGuide.lyx @@ -1,16 +1,16 @@ -#LyX 2.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 544 +#LyX 2.4 created this file. For more info see https://www.lyx.org/ +\lyxformat 620 \begin_document \begin_header \save_transient_properties true \origin unavailable \textclass article \use_default_options true -\maintain_unincluded_children false +\maintain_unincluded_children no \language english \language_package default -\inputencoding auto -\fontencoding global +\inputencoding auto-legacy +\fontencoding auto \font_roman "default" "default" \font_sans "default" "default" \font_typewriter "default" "default" @@ -18,7 +18,9 @@ \font_default_family default \use_non_tex_fonts false \font_sc false -\font_osf false +\font_roman_osf false +\font_sans_osf false +\font_typewriter_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false @@ -61,7 +63,9 @@ \suppress_date false \justification true \use_refstyle 0 +\use_formatted_ref 0 \use_minted 0 +\use_lineno 0 \index Index \shortcut idx \color #008000 @@ -77,11 +81,16 @@ \papercolumns 1 \papersides 1 \paperpagestyle default +\tablestyle default \tracking_changes false \output_changes false +\change_bars false +\postpone_fragile_content false \html_math_output 0 \html_css_as_file 0 \html_be_strict false +\docbook_table_output 0 +\docbook_mathml_prefix 1 \end_header \begin_body @@ -105,7 +114,8 @@ Jason M. \begin_inset Newline newline \end_inset -Last Updated: 2019-12-13 +Last Updated: + 2026-02-27 \begin_inset Newpage pagebreak \end_inset @@ -113,21 +123,19 @@ Last Updated: 2019-12-13 \end_layout \begin_layout Abstract -CPPTRAJ is code used for processing MD trajectory data as well as other - types of data, derived from trajectories or otherwise. - CPPTRAJ is a complete rewrite of the PTRAJ code in primarily C++, with - the intent being to make the code more readable, leak-free, and thread-safe. - The biggest functional change from PTRAJ is the ability to load and process - trajectories with different topology files in the same run. +CPPTRAJ is code used for processing MD trajectory data as well as other types of data, + derived from trajectories or otherwise. + CPPTRAJ is a complete rewrite of the PTRAJ code in primarily C++, + with the intent being to make the code more readable, + leak-free, + and thread-safe. + The biggest functional change from PTRAJ is the ability to load and process trajectories with different topology files in the same run. \end_layout \begin_layout Abstract -This guide assumes that the reader has at least a basic familiarity with - C and C++ object-oriented programming. - If you aren't sure what a constructor is or how pointers work you may have - a difficult time coding in Cpptraj. - There are several good introduction to C/C++ tutorials on the web that - may be helpful. +This guide assumes that the reader has at least a basic familiarity with C and C++ object-oriented programming. + If you aren't sure what a constructor is or how pointers work you may have a difficult time coding in Cpptraj. + There are several good introduction to C/C++ tutorials on the web that may be helpful. \begin_inset Newpage pagebreak \end_inset @@ -164,10 +172,9 @@ Coding Conventions \end_layout \begin_layout Standard -It is important to maintain a consistent coding style within cpptraj so - that it remains easy to modify and understand. - By following code conventions, it will be easier to read code written by - anybody and determine what is happening. +It is important to maintain a consistent coding style within cpptraj so that it remains easy to modify and understand. + By following code conventions, + it will be easier to read code written by anybody and determine what is happening. \end_layout \begin_layout Itemize @@ -180,38 +187,43 @@ DO NOT USE TABS \end_layout \begin_layout Itemize -Try to keep the maximum length of lines between 80 and 100 characters long. +Try to keep the maximum length of lines between 80 and 120 characters long. \end_layout \begin_layout Itemize -Whenever possible, put separate code on separate lines. - Exceptions can be made for very simple statements such as logic evaluations - and simple initializations. +Whenever possible, + put separate code on separate lines. + Exceptions can be made for very simple statements such as logic evaluations and simple initializations. For example, \end_layout \begin_layout LyX-Code -double x1 = 0.0; x2 = 0.0; x3 = 0.0; +double x1 = 0.0; + x2 = 0.0; + x3 = 0.0; \end_layout \begin_layout Standard -is OK, but +is OK, + but \end_layout \begin_layout LyX-Code -double x1 = var1 * var2; double x2 = var3 / var4; +double x1 = var1 * var2; + double x2 = var3 / var4; \end_layout \begin_layout Standard is not. - There are two reasons: 1) When separate statements share a line it makes - using debuggers more difficult, and 2) when separate statements share a - line it is harder to read. + There are two reasons: + 1) When separate statements share a line it makes using debuggers more difficult, + and 2) when separate statements share a line it is harder to read. \end_layout \begin_layout Itemize -C++ files have '.cpp' suffix, C files have '.c' suffix, header files have - '.h' suffix. +C++ files have '.cpp' suffix, + C files have '.c' suffix, + header files have '.h' suffix. \end_layout \begin_layout Itemize @@ -237,33 +249,37 @@ All header files should have a '#define' guard to prevent multiple inclusion. \begin_layout Itemize 'using namespace' should be used sparingly and NEVER in a header file. + If a class occurs in a subdirectory, + it is fine to put 'using namespace Cpptraj::' in the implementation (i.e. + .cpp) file. \end_layout \begin_layout Itemize -The order of #include directives should be (in general): C includes, C++ - includes, class definition, any other Cpptraj includes. +The order of #include directives should be (in general): + C includes, + C++ includes, + class definition, + any other Cpptraj includes. \end_layout \begin_layout Itemize -Use of STL classes/methods is acceptable; use C99 conventions to maximize - portability. - The only external libraries that should be used are NetCDF and ARPACK/LAPACK/BL -AS (both included with AmberTools), i.e. +Use of STL classes/methods is acceptable; + use C99 conventions to maximize portability. + The only external libraries that should be used are NetCDF and ARPACK/LAPACK/BLAS (both included with AmberTools), + i.e. no Boost etc. \end_layout \begin_layout Itemize Do not use iostream for basic IO. - All console output should be performed with the functions in CpptrajStdio.h - (chiefly mprintf() and mprinterr() for STDOUT and STDERR respectively). - All file IO should be performed with CpptrajFile or the derived classes - BufferedLine and BufferedFrame. - This choice has been made mainly for performance reasons (C file routines - are in general much faster than iostream), but also so that all IO is centraliz -ed (e.g. + All console output should be performed with the functions in CpptrajStdio.h (chiefly mprintf() and mprinterr() for STDOUT and STDERR respectively). + All file IO should be performed with CpptrajFile or the derived classes BufferedLine and BufferedFrame. + This choice has been made mainly for performance reasons (C file routines are in general much faster than iostream), + but also so that all IO is centralized (e.g. CpptrajFile will automatically detect if an input file is compressed). - This is also so output can be easily controlled; for example, using mprintf - will make sure that during MPI only the master writes. + This is also so output can be easily controlled; + for example, + using mprintf will make sure that during MPI only the master writes. \end_layout \begin_layout Itemize @@ -285,7 +301,8 @@ Class types are named using \emph on CapWords \emph default - (no spaces or underscores, start of each word is a capital letter). + (no spaces or underscores, + start of each word is a capital letter). \end_layout \begin_layout Itemize @@ -295,12 +312,14 @@ Files containing a class should be named after the class (e.g. \begin_layout Itemize Classes which inherit should be named after their base class (e.g. - 'class Action_Distance : public Action { };'). + 'class Action_Distance : + public Action { };'). \end_layout \begin_layout Itemize -Public class methods should be listed first; protected methods/variables - second; private methods/variables last. +Public class methods should be listed first; + protected methods/variables second; + private methods/variables last. All class member variables should be private if possible. \end_layout @@ -336,8 +355,10 @@ mixedCase_ \end_deeper \begin_layout Itemize -Abbreviations: 1st letter in each word is capitalized. - For instance, +Abbreviations: + 1st letter in each word is capitalized. + For instance, + \family typewriter Data File List \family default @@ -351,8 +372,7 @@ DFL. \end_layout \begin_layout Itemize -Variables that have function scope (or lower) and all public variables for - classes are named using +Variables that have function scope (or lower) and all public variables for classes are named using \emph on mixedCase \emph default @@ -365,8 +385,10 @@ CapWords \begin_layout Itemize No one-letter variable names except in loop scopes (e.g. - for (int i = 0; i < N; ++i) { } ), and even then they should be short loops - (no more than 10 lines or so). + for (int i = 0; + i < N; + ++i) { } ), + and even then they should be short loops (no more than 10 lines or so). \end_layout \begin_layout Itemize @@ -374,8 +396,11 @@ All identifiers in an enumerated type are named using all \emph on CAPS \emph default -, and the first identifier should be explicitly initialized (e.g. - enum DirectionType { DX = 0, DY, DZ };). +, + and the first identifier should be explicitly initialized (e.g. + enum DirectionType { DX = 0, + DY, + DZ };). \end_layout \begin_layout Itemize @@ -387,7 +412,8 @@ doxygen \emph on doxygen \emph default -, so please construct comments in such a doxygen-compatible manner (e.g. +, + so please construct comments in such a doxygen-compatible manner (e.g. JavaDoc etc). See http://www.stack.nl/~dimitri/doxygen/manual.html for instructions. \end_layout @@ -397,7 +423,8 @@ Versioning \end_layout \begin_layout Standard -The internal versioning for CPPTRAJ is supposed to go like this: +The internal versioning for CPPTRAJ is supposed to go like this: + \end_layout \begin_layout LyX-Code @@ -405,13 +432,18 @@ V.. \end_layout \begin_layout Description - Incremented whenever there is a major API change, e.g. - changing the Action base class, etc. + Incremented whenever there is a major API change, + e.g. + changing the Action base class, + etc. \end_layout \begin_layout Description - Incremented whenever there are changes to behavior, e.g. - syntax, functionality, or output. + Incremented whenever there are changes to behavior, + e.g. + syntax, + functionality, + or output. \end_layout \begin_layout Description @@ -419,8 +451,8 @@ V.. \end_layout \begin_layout Standard -Whenever a number that precedes is incremented, all subsequent - numbers should be reset to 0. +Whenever a number that precedes is incremented, + all subsequent numbers should be reset to 0. \end_layout \begin_layout Section @@ -428,8 +460,8 @@ Building Cpptraj and Documentation \end_layout \begin_layout Standard -Cpptraj is automatically built as part of AmberTools, or it can be built - standalone using the configure script in the +Cpptraj is automatically built as part of AmberTools, + or it can be built standalone using the configure script in the \family typewriter $AMBERHOME/AmberTools/src/cpptraj \family default @@ -440,9 +472,11 @@ $CPPTRAJHOME directory. The standalone build is particularly useful for development and testing. Type './configure –help' for a list of configure options. - In order to build Cpptraj standalone one needs to specify the location - of the NetCDF, zlib, bzlib2, and BLAS/LAPACK/ARPACK libraries if they aren't - in your system path; configure will use the ones in $AMBERHOME if + In order to build Cpptraj standalone one needs to specify the location of the NetCDF, + zlib, + bzlib2, + and BLAS/LAPACK/ARPACK libraries if they aren't in your system path; + configure will use the ones in $AMBERHOME if \family typewriter '-amberlib' \family default @@ -452,7 +486,8 @@ $CPPTRAJHOME \end_layout \begin_layout Standard -For example, to build cpptraj standalone: +For example, + to build cpptraj standalone: \end_layout \begin_layout LyX-Code @@ -468,11 +503,13 @@ To build the documentation using \emph on doxygen \emph default -, you must have +, + you must have \emph on doxygen \emph default - installed, and you must have configured AmberTools. + installed, + and you must have configured AmberTools. Run the command: \end_layout @@ -482,8 +519,8 @@ make docs \begin_layout Standard to build the documentation. - PDF files and HTML files are generated during this process, showing class - inheritance and descriptions from comments written in doxy-format. + PDF files and HTML files are generated during this process, + showing class inheritance and descriptions from comments written in doxy-format. Open the file \family typewriter $AMBERHOME/AmberTools/src/cpptraj/doc/html/index.html @@ -504,9 +541,9 @@ Cpptraj currently lives in 3 key classes: \series bold Cpptraj \series default - Defined in main.cpp, controls overall flow (e.g. - it is responsible for deciding whether to execute in batch mode or interactive - mode). + Defined in main.cpp, + controls overall flow (e.g. + it is responsible for deciding whether to execute in batch mode or interactive mode). \end_layout \begin_layout Description @@ -518,7 +555,11 @@ CpptrajState \series bold Cpptraj \series default -, holds all of the data, Actions, Analyses, etc. +, + holds all of the data, + Actions, + Analyses, + etc. \end_layout @@ -556,10 +597,12 @@ DataSetList \begin_inset space ~ \end_inset -DSL_; Hold all DataSets. - This is essentially how different components can talk to each other, e.g. - an Action creates a DataSet in the DataSetList, which can then be used - by a subsequent Analysis. +DSL_; + Hold all DataSets. + This is essentially how different components can talk to each other, + e.g. + an Action creates a DataSet in the DataSetList, + which can then be used by a subsequent Analysis. \end_layout \begin_layout Description @@ -567,9 +610,10 @@ DataFileList \begin_inset space ~ \end_inset -DFL_; Hold all DataFiles. - These are either for writing out DataSets or general text output, primarily - from Actions/Analyses. +DFL_; + Hold all DataFiles. + These are either for writing out DataSets or general text output, + primarily from Actions/Analyses. \end_layout \begin_layout Description @@ -577,11 +621,12 @@ TrajinList \begin_inset space ~ \end_inset -trajinList_; Hold all input trajectories to be processed during a run. - Whenever a user inputs a 'trajin' or 'ensemble' command, the trajectory/ensembl -e in question is added to this list. - When a 'run' command is executed, these are the trajectories that are read - in a frame at a time so that Actions in the ActionList can process them. +trajinList_; + Hold all input trajectories to be processed during a run. + Whenever a user inputs a 'trajin' or 'ensemble' command, + the trajectory/ensemble in question is added to this list. + When a 'run' command is executed, + these are the trajectories that are read in a frame at a time so that Actions in the ActionList can process them. \end_layout \begin_layout Description @@ -589,7 +634,8 @@ TrajoutList \begin_inset space ~ \end_inset -trajoutList_; Hold output trajectories to be written during a run. +trajoutList_; + Hold output trajectories to be written during a run. This output occurs after all Actions have been processed. \end_layout @@ -598,10 +644,11 @@ ActionList \begin_inset space ~ \end_inset -actionList_; Hold all Actions to be executed during a run. - By default, whenver an Action command is issued the Action in question - is initialized and queued up in the ActionList, to be processed during - the next run. +actionList_; + Hold all Actions to be executed during a run. + By default, + whenver an Action command is issued the Action in question is initialized and queued up in the ActionList, + to be processed during the next run. \end_layout \begin_layout Description @@ -609,10 +656,10 @@ AnalysisList \begin_inset space ~ \end_inset -analysisList_; Hold all Analyses to be executed after a run or when a 'runanalys -is' command is given. - Similar to ActionList, whenever an Analysis command is issued the Analysis - in question is initialized and queued up in the AnalysisList. +analysisList_; + Hold all Analyses to be executed after a run or when a 'runanalysis' command is given. + Similar to ActionList, + whenever an Analysis command is issued the Analysis in question is initialized and queued up in the AnalysisList. \end_layout \begin_layout Section @@ -634,20 +681,25 @@ The abstract base class that defines the Action interface. \end_layout \begin_layout Description -Init(): Initialize Action, set up DataSets/DataFiles, etc. +Init(): + Initialize Action, + set up DataSets/DataFiles, + etc. \end_layout \begin_layout Description -Setup(): Set up Action for a given Topology. +Setup(): + Set up Action for a given Topology. \end_layout \begin_layout Description -DoAction(): Perform Action on given Frame. +DoAction(): + Perform Action on given Frame. \end_layout \begin_layout Description -Print(): Perform any post-processing or output that occurs outside the main - DataSet/DataFile framework. +Print(): + Perform any post-processing or output that occurs outside the main DataSet/DataFile framework. \end_layout \begin_layout Subsection @@ -655,8 +707,8 @@ ActionInit (ActionState.h) \end_layout \begin_layout Standard -Used to interface with Init(); contains pointers to the master DataSetList - and DataFileList in CpptrajState. +Used to interface with Init(); + contains pointers to the master DataSetList and DataFileList in CpptrajState. \end_layout \begin_layout Description @@ -689,11 +741,10 @@ DataSetList* \begin_inset space ~ \end_inset -DslPtr() For Actions that require access to the master DataSetList after - Init() (e.g. - hbond, which cannot set up hbond time series until hbonds are actually - detected in DoAction()), they can store a pointer to the master DataSetList - like so: +DslPtr() For Actions that require access to the master DataSetList after Init() (e.g. + hbond, + which cannot set up hbond time series until hbonds are actually detected in DoAction()), + they can store a pointer to the master DataSetList like so: \begin_inset Separator latexpar \end_inset @@ -702,11 +753,13 @@ DslPtr() For Actions that require access to the master DataSetList after \begin_deeper \begin_layout Standard -(In header): DataSetList* masterDSL_; +(In header): + DataSetList* masterDSL_; \end_layout \begin_layout Standard -(In Action::Init): masterDSL_ = init.DslPtr(); +(In Action::Init): + masterDSL_ = init.DslPtr(); \end_layout \end_deeper @@ -740,9 +793,9 @@ ActionSetup (ActionState.h) \end_layout \begin_layout Standard -Used to interface with Setup(); contains pointers to current Topology and - CoordinateInfo, as well as expected number of frames associated with current - Topology. +Used to interface with Setup(); + contains pointers to current Topology and CoordinateInfo, + as well as expected number of frames associated with current Topology. \end_layout \begin_layout Subsection @@ -750,7 +803,8 @@ ActionFrame (ActionState.h) \end_layout \begin_layout Standard -Used to interface with DoAction(); contains pointer to current Frame. +Used to interface with DoAction(); + contains pointer to current Frame. \end_layout \begin_layout Part @@ -766,7 +820,8 @@ Vec3 \end_layout \begin_layout Standard -An array of 3 doubles, used to hold XYZ coords. +An array of 3 doubles, + used to hold XYZ coords. Used for vector math. \end_layout @@ -775,10 +830,10 @@ Matrix_3x3 \end_layout \begin_layout Standard -A 3x3 array of doubles, useful for performing rotations etc. +A 3x3 array of doubles, + useful for performing rotations etc. Used for basic matrix math. - Can be diagonalized via an internal routine (no need for external math - library). + Can be diagonalized via an internal routine (no need for external math library). \end_layout \begin_layout Subsection @@ -787,8 +842,7 @@ ComplexArray \begin_layout Standard Used to hold an array of complex numbers. - Implemented as a double array instead of using the STL Complex class so - that it easily interface with external routines. + Implemented as a double array instead of using the STL Complex class so that it easily interface with external routines. \end_layout \begin_layout Subsection @@ -796,19 +850,21 @@ PubFFT \end_layout \begin_layout Standard -Interface to FFT routines (either pubfft, which are the FFT routines used - by Amber, or FFTW depending on how CPPTRAJ is configured). +Interface to FFT routines (either pubfft, + which are the FFT routines used by Amber, + or FFTW depending on how CPPTRAJ is configured). Currently only 1D forward and backwards FFTs are supported. Makes use of ComplexArray. \end_layout \begin_layout Subsection -Corr.h: CorrF_Direct, CorrF_FFT +Corr.h: + CorrF_Direct, + CorrF_FFT \end_layout \begin_layout Standard -Classes used to calculate auto/cross correlation functions from arrays of - complex numbers (ComplexArray). +Classes used to calculate auto/cross correlation functions from arrays of complex numbers (ComplexArray). \end_layout \begin_layout Section @@ -816,10 +872,9 @@ Some Key Classes and Functions \end_layout \begin_layout Standard -The following is a brief list of some of the more commonly-used classes - and functions in Cpptraj. - Classes are more or less self-documented to a certain extent; this section - will be focused on how these classes are/should be used. +The following is a brief list of some of the more commonly-used classes and functions in Cpptraj. + Classes are more or less self-documented to a certain extent; + this section will be focused on how these classes are/should be used. \end_layout \begin_layout Subsection @@ -828,11 +883,14 @@ ArgList \begin_layout Standard The ArgList class is used throughout Cpptraj. - It is the main way that user input is translated to actions, analyses, - trajectory IO, etc. - Basically, the ArgList class takes a string and separates it into tokens - based on a given delimiter or delimiters. - For example, the string: + It is the main way that user input is translated to actions, + analyses, + trajectory IO, + etc. + Basically, + the ArgList class takes a string and separates it into tokens based on a given delimiter or delimiters. + For example, + the string: \end_layout \begin_layout LyX-Code @@ -848,8 +906,7 @@ trajin mytraj.nc 1 100 10 \end_layout \begin_layout Standard -can be separated via a space (' ') delimeter (the default) into 5 tokens - like so: +can be separated via a space (' ') delimeter (the default) into 5 tokens like so: \end_layout \begin_layout LyX-Code @@ -861,28 +918,34 @@ The resulting ArgList internally looks something like: \end_layout \begin_layout LyX-Code -0: trajin +0: + trajin \end_layout \begin_layout LyX-Code -1: mytraj.nc +1: + mytraj.nc \end_layout \begin_layout LyX-Code -2: 1 +2: + 1 \end_layout \begin_layout LyX-Code -3: 100 +3: + 100 \end_layout \begin_layout LyX-Code -4: 10 +4: + 10 \end_layout \begin_layout Standard A custom delimeter string containing 1 or more characters can also be used. - For example, the following string: + For example, + the following string: \end_layout \begin_layout LyX-Code @@ -902,7 +965,8 @@ can be separated via a comma (',') delimiter into 4 tokens like so: \end_layout \begin_layout LyX-Code -ArgList myArgs(myString, +ArgList myArgs(myString, + \begin_inset Quotes eld \end_inset @@ -918,28 +982,33 @@ The resulting ArgList internall lookws something like: \end_layout \begin_layout LyX-Code -0: d01 +0: + d01 \end_layout \begin_layout LyX-Code -1: d02 +1: + d02 \end_layout \begin_layout LyX-Code -2: d03 +2: + d03 \end_layout \begin_layout LyX-Code -3: d04 +3: + d04 \end_layout \begin_layout Standard These tokens (or arguments) are stored internally as an STL vector of strings. ArgList provides many functions to access user arguments. A second array of boolean values records whether an argument has been accessed. - This concept is functionally similar to the argumentStack in Ptraj; however, - it avoids the constant memory allocation/deallocation when arguments are - added/accessed, and allows an argument list to be re-used if desired. + This concept is functionally similar to the argumentStack in Ptraj; + however, + it avoids the constant memory allocation/deallocation when arguments are added/accessed, + and allows an argument list to be re-used if desired. The two main ways arguments are usually accessed are through \begin_inset Quotes eld \end_inset @@ -969,7 +1038,8 @@ GetNext \end_inset functions return the next argument of the desired type. - For example, using the ArgList created in the first example from + For example, + using the ArgList created in the first example from \begin_inset Quotes eld \end_inset @@ -977,7 +1047,8 @@ trajin mytraj.nc 1 100 10 \begin_inset Quotes erd \end_inset - and assuming all arguments are unmarked, GetStringNext() would return + and assuming all arguments are unmarked, + GetStringNext() would return \begin_inset Quotes eld \end_inset @@ -985,7 +1056,8 @@ trajin \begin_inset Quotes erd \end_inset -, while getNextInteger() would return +, + while getNextInteger() would return \begin_inset Quotes eld \end_inset @@ -993,8 +1065,9 @@ trajin \begin_inset Quotes erd \end_inset -; in both cases the argument returned would be marked, so that a subsequent - call to GetStringNext() would return +; + in both cases the argument returned would be marked, + so that a subsequent call to GetStringNext() would return \begin_inset Quotes eld \end_inset @@ -1019,8 +1092,11 @@ GetMaskNext() \begin_inset Quotes erd \end_inset - function, which returns the next atom mask expression (so noted because - it will begin with ':', '@', '*'); an example of this will be shown below. + function, + which returns the next atom mask expression (so noted because it will begin with ':', + '@', + '*'); + an example of this will be shown below. \end_layout \begin_layout Standard @@ -1052,35 +1128,43 @@ rmsd R1 @CA ref [myref] out rmsd.dat \end_layout \begin_layout LyX-Code -0: rmsd +0: + rmsd \end_layout \begin_layout LyX-Code -1: R1 +1: + R1 \end_layout \begin_layout LyX-Code -2: @CA +2: + @CA \end_layout \begin_layout LyX-Code -2: ref +2: + ref \end_layout \begin_layout LyX-Code -3: [myref] +3: + [myref] \end_layout \begin_layout LyX-Code -4: out +4: + out \end_layout \begin_layout LyX-Code -5: rmsd.dat +5: + rmsd.dat \end_layout \begin_layout Standard -If we want to access a specific argument, we use a +If we want to access a specific argument, + we use a \begin_inset Quotes eld \end_inset @@ -1089,8 +1173,9 @@ GetKey \end_inset function. - For example, if we want to know the filename specified by 'out', we would - use GetStringKey( + For example, + if we want to know the filename specified by 'out', + we would use GetStringKey( \begin_inset Quotes eld \end_inset @@ -1098,7 +1183,8 @@ out \begin_inset Quotes erd \end_inset -); this would return +); + this would return \begin_inset Quotes eld \end_inset @@ -1106,7 +1192,8 @@ rmsd.dat \begin_inset Quotes erd \end_inset -, and mark both +, + and mark both \begin_inset Quotes eld \end_inset @@ -1123,7 +1210,8 @@ rmsd.dat \end_inset . - Similarly, GetStringKey( + Similarly, + GetStringKey( \begin_inset Quotes eld \end_inset @@ -1140,8 +1228,7 @@ ref \end_inset . - At this point we could also use the GetMaskNext() function to get the atom - mask expression + At this point we could also use the GetMaskNext() function to get the atom mask expression \begin_inset Quotes eld \end_inset @@ -1181,7 +1268,9 @@ cutoff \begin_inset Quotes erd \end_inset -, 0.0); // Value 2.0 +, + 0.0); + // Value 2.0 \end_layout \begin_layout LyX-Code @@ -1193,7 +1282,9 @@ nval \begin_inset Quotes erd \end_inset -, 0); // Value 3 +, + 0); + // Value 3 \end_layout \begin_layout LyX-Code @@ -1205,7 +1296,9 @@ ntypes \begin_inset Quotes erd \end_inset -, 0); // Value 0 +, + 0); + // Value 0 \end_layout \begin_layout LyX-Code @@ -1217,7 +1310,8 @@ name \begin_inset Quotes erd \end_inset -); // Value +); + // Value \begin_inset Quotes eld \end_inset @@ -1237,11 +1331,13 @@ out \begin_inset Quotes erd \end_inset -); // Empty +); + // Empty \end_layout \begin_layout LyX-Code -std::string maskExp = myArgs.GetMaskNext(); // Value +std::string maskExp = myArgs.GetMaskNext(); + // Value \begin_inset Quotes eld \end_inset @@ -1253,7 +1349,8 @@ std::string maskExp = myArgs.GetMaskNext(); // Value \end_layout \begin_layout LyX-Code -std::string mask2Exp = myArgs.GetMaskNext(); // Empty +std::string mask2Exp = myArgs.GetMaskNext(); + // Empty \end_layout \begin_layout LyX-Code @@ -1274,16 +1371,18 @@ Topology \begin_layout Standard The Topology class describes how a system is laid out in terms of Atoms, - Residues, and Molecules (all of which are classes themselves). + Residues, + and Molecules (all of which are classes themselves). It may also hold parameters which describe interactions between Atoms (e.g. - bonds, angles, dihedrals, etc). - The Topology class is chiefly used in Trajectory input/output and setting - up atom masks (see below). + bonds, + angles, + dihedrals, + etc). + The Topology class is chiefly used in Trajectory input/output and setting up atom masks (see below). \end_layout \begin_layout Standard -The Topology class has several routines that return strings of atom and - residue names: +The Topology class has several routines that return strings of atom and residue names: \end_layout \begin_layout Description @@ -1295,7 +1394,8 @@ TruncResAtomName(int \begin_inset space ~ \end_inset -atom) Format: +atom) Format: + \begin_inset Quotes eld \end_inset @@ -1315,7 +1415,8 @@ AtomMaskName(int \begin_inset space ~ \end_inset -atom) Format: +atom) Format: + \begin_inset Quotes eld \end_inset @@ -1335,7 +1436,8 @@ TruncAtomNameNum(int \begin_inset space ~ \end_inset -atom) Format: +atom) Format: + \begin_inset Quotes eld \end_inset @@ -1355,7 +1457,8 @@ TruncResNameNum(int \begin_inset space ~ \end_inset -residue) Format: +residue) Format: + \begin_inset Quotes eld \end_inset @@ -1376,7 +1479,8 @@ Iterate over all atoms in a certain residue. \end_layout \begin_layout LyX-Code -// Iterate over all atoms in residue 4, print charge. +// Iterate over all atoms in residue 4, + print charge. \end_layout \begin_layout LyX-Code @@ -1402,7 +1506,9 @@ n \begin_inset Quotes erd \end_inset -, atom_index+1, Top[atom_index].Charge()); +, + atom_index+1, + Top[atom_index].Charge()); \end_layout \begin_layout Standard @@ -1456,35 +1562,32 @@ AtomMask/CharMask \end_layout \begin_layout Standard -The AtomMask and CharMask classes keep track of what atoms for a given Topology - are selected based on a given mask expression. - The AtomMask class holds information on selected atoms only, while CharMask - has the state of all atoms (selected/not selected). - AtomMask is as an integer mask, where the atom numbers currently selected - are stored as an array of integers. - Since one is usually only interested in selected atoms, most times AtomMask - is all that is needed and so is the most used mask class in Cpptraj; for - example, all routines that take masks in the Frame class use the AtomMask - class. +The AtomMask and CharMask classes keep track of what atoms for a given Topology are selected based on a given mask expression. + The AtomMask class holds information on selected atoms only, + while CharMask has the state of all atoms (selected/not selected). + AtomMask is as an integer mask, + where the atom numbers currently selected are stored as an array of integers. + Since one is usually only interested in selected atoms, + most times AtomMask is all that is needed and so is the most used mask class in Cpptraj; + for example, + all routines that take masks in the Frame class use the AtomMask class. \end_layout \begin_layout Standard -The CharMask class has an internal character array where the state of each - atom is stored. - It has functions that can then be used to interrogate if a certain atom - or atoms are selected or not. +The CharMask class has an internal character array where the state of each atom is stored. + It has functions that can then be used to interrogate if a certain atom or atoms are selected or not. \end_layout \begin_layout Standard -In typical use, there are 3 phases to using AtomMask or CharMask: 1) initializat -ion with a mask expression, 2) setup via a Topology class, and 3) iteration - over the mask/interrogation of the mask. - Initialization with a mask expression performs all necessary tokenization - of the mask expression string and prepares the mask to be set up, but does - not actually select atoms. - The mask expression can be used during AtomMask construction or passed - in via SetMaskString(): +In typical use, + there are 3 phases to using AtomMask or CharMask: + 1) initialization with a mask expression, + 2) setup via a Topology class, + and 3) iteration over the mask/interrogation of the mask. + Initialization with a mask expression performs all necessary tokenization of the mask expression string and prepares the mask to be set up, + but does not actually select atoms. + The mask expression can be used during AtomMask construction or passed in via SetMaskString(): \end_layout \begin_layout LyX-Code @@ -1512,7 +1615,8 @@ AtomMask Mask( \end_layout \begin_layout LyX-Code -AtomMask Mask; Mask.SetMaskString( +AtomMask Mask; + Mask.SetMaskString( \begin_inset Quotes eld \end_inset @@ -1524,10 +1628,9 @@ AtomMask Mask; Mask.SetMaskString( \end_layout \begin_layout Standard -Setup occurs via a Topology class (since in order to set up a mask you need - to know atom names/numbers, residue name/number/types etc). - This can be done using SetupIntegerMask() or SetupCharMask() to set up - an integer mask (more common) or a char mask: +Setup occurs via a Topology class (since in order to set up a mask you need to know atom names/numbers, + residue name/number/types etc). + This can be done using SetupIntegerMask() or SetupCharMask() to set up an integer mask (more common) or a char mask: \end_layout \begin_layout LyX-Code @@ -1563,26 +1666,25 @@ Top.SetupCharMask( Mask ); \end_layout \begin_layout Standard -Once a mask has been setup the Nselected() function returns the number of - selected atoms, while the None() function returns true if no atoms were - selected. - If necessary, one can convert between the mask types post-setup by using - AtomMask::ConvertToCharMask() / CharMask::ConvertToIntMask() routines: +Once a mask has been setup the Nselected() function returns the number of selected atoms, + while the None() function returns true if no atoms were selected. + If necessary, + one can convert between the mask types post-setup by using AtomMask::ConvertToCharMask() / CharMask::ConvertToIntMask() routines: \end_layout \begin_layout LyX-Code -AtomMask mask( CharMask.ConvertToIntMask(), CharMask.Natom() ) +AtomMask mask( CharMask.ConvertToIntMask(), + CharMask.Natom() ) \end_layout \begin_layout LyX-Code -CharMask mask( AtomMask.ConvertToCharMask(), AtomMask.Nselected() ) +CharMask mask( AtomMask.ConvertToCharMask(), + AtomMask.Nselected() ) \end_layout \begin_layout Standard The final stage is to make use of the atom mask. - One can iterate over selected atoms in an integer atom mask using the STL-like - const_iterator variable and begin() and end() functions - this is the recommend -ed way to use atom masks: + One can iterate over selected atoms in an integer atom mask using the STL-like const_iterator variable and begin() and end() functions - this is the recommended way to use atom masks: \end_layout \begin_layout LyX-Code @@ -1590,7 +1692,8 @@ for (AtomMask::const_iterator atomnum = Mask.begin(); \end_layout \begin_layout LyX-Code - atomnum != Mask.end(); + atomnum != Mask.end(); + \end_layout \begin_layout LyX-Code @@ -1608,16 +1711,18 @@ n \begin_inset Quotes erd \end_inset -, *atomnum); +, + *atomnum); \end_layout \begin_layout Standard -One can also access members of the integer array directly via the bracket - ('[]') operator: +One can also access members of the integer array directly via the bracket ('[]') operator: \end_layout \begin_layout LyX-Code -for (int maskidx = 0; maskidx < Mask.Nselected(); ++maskidx) +for (int maskidx = 0; + maskidx < Mask.Nselected(); + ++maskidx) \end_layout \begin_layout LyX-Code @@ -1631,19 +1736,22 @@ n \begin_inset Quotes erd \end_inset -, Mask[atomidx]); +, + Mask[atomidx]); \end_layout \begin_layout Standard -To see if atom(s) are selected in a CharMask, use the AtomInCharMask() and - AtomsInCharMask() functions. - The former returns true if a specified atom is selected, the latter returns - true if any atoms within a given range are selected. +To see if atom(s) are selected in a CharMask, + use the AtomInCharMask() and AtomsInCharMask() functions. + The former returns true if a specified atom is selected, + the latter returns true if any atoms within a given range are selected. For example: \end_layout \begin_layout LyX-Code -for (int atom = 0; atom < Top.Natom(); ++atom) +for (int atom = 0; + atom < Top.Natom(); + ++atom) \end_layout \begin_layout LyX-Code @@ -1661,11 +1769,14 @@ n \begin_inset Quotes erd \end_inset -, atom); +, + atom); \end_layout \begin_layout LyX-Code -for (int rnum = 0; rnum < Top.Nres(); ++res) +for (int rnum = 0; + rnum < Top.Nres(); + ++res) \end_layout \begin_layout LyX-Code @@ -1687,7 +1798,8 @@ n \begin_inset Quotes erd \end_inset -, rnum); +, + rnum); \end_layout \begin_layout Subsection @@ -1695,29 +1807,36 @@ Frame \end_layout \begin_layout Standard -The Frame class is in many ways the workhorse of Cpptraj, as it holds all - XYZ coordinates for a given input frame, and optionally box coordinates, - masses, replica indices, temperature, time, and/or velocities. - Note that although mass is stored in Topology, it is also stored in Frame - since many calculations require it (center of mass, mass-weighted RMSD, +The Frame class is in many ways the workhorse of Cpptraj, + as it holds all XYZ coordinates for a given input frame, + and optionally box coordinates, + masses, + replica indices, + temperature, + time, + and/or velocities. + Note that although mass is stored in Topology, + it is also stored in Frame since many calculations require it (center of mass, + mass-weighted RMSD, etc). Coordinates and velocities are stored with double precision. - Many routines are available to do things like calculate the center of mass - of atoms, rotate, translate, scale, and so on. + Many routines are available to do things like calculate the center of mass of atoms, + rotate, + translate, + scale, + and so on. A major use of the Frame class is to perform RMSD calculations. \end_layout \begin_layout Standard Frames are typically set up in two phases. - The first phase is memory allocation, which occurs via constructors or - the SetupFrameX routines. - This should be done as little as possible since memory allocation is relatively - expensive. - The second phase is actually setting the coordinates, which occurs via - the SetX routines. - For example, the following code will set up a Frame (newFrame) with the - coordinates from another Frame (oldFrame) based on a previously set up - AtomMask (mask) and Topology (top) corresponding to oldFrame: + The first phase is memory allocation, + which occurs via constructors or the SetupFrameX routines. + This should be done as little as possible since memory allocation is relatively expensive. + The second phase is actually setting the coordinates, + which occurs via the SetX routines. + For example, + the following code will set up a Frame (newFrame) with the coordinates from another Frame (oldFrame) based on a previously set up AtomMask (mask) and Topology (top) corresponding to oldFrame: \end_layout \begin_layout LyX-Code @@ -1725,11 +1844,13 @@ Frame newFrame; \end_layout \begin_layout LyX-Code -// Allocate memory, copy in masses based on mask. +// Allocate memory, + copy in masses based on mask. \end_layout \begin_layout LyX-Code -newFrame.SetupFrameFromMask( mask, top.Atoms() ); +newFrame.SetupFrameFromMask( mask, + top.Atoms() ); \end_layout \begin_layout LyX-Code @@ -1737,22 +1858,24 @@ newFrame.SetupFrameFromMask( mask, top.Atoms() ); \end_layout \begin_layout LyX-Code -newFrame.SetCoordinates( oldFrame, mask ); +newFrame.SetCoordinates( oldFrame, + mask ); \end_layout \begin_layout Standard -Alternatively, this can be done in one step with a constructor: +Alternatively, + this can be done in one step with a constructor: \end_layout \begin_layout LyX-Code -Frame newFrame( oldFrame, mask ); +Frame newFrame( oldFrame, + mask ); \end_layout \begin_layout Standard -The advantage of separating out Setup and Set is that memory reallocation - is kept to a minimum. - For example, if we wanted to use newFrame to hold a different set of coordinate -s (of the same size as newFrame or smaller) we might do something like: +The advantage of separating out Setup and Set is that memory reallocation is kept to a minimum. + For example, + if we wanted to use newFrame to hold a different set of coordinates (of the same size as newFrame or smaller) we might do something like: \end_layout \begin_layout LyX-Code @@ -1761,10 +1884,10 @@ newFrame.SetCoordinates( differentFrame ); \begin_layout Standard If the new coordinates might be bigger than the current size of newFrame, - we could explicitly call a SetupFrameX routine; this will only reallocate - if the new size is greater than the current maximum size. - A Frame remembers the largest size it was ever allocated for, so reallocation - is kept to a minimum. + we could explicitly call a SetupFrameX routine; + this will only reallocate if the new size is greater than the current maximum size. + A Frame remembers the largest size it was ever allocated for, + so reallocation is kept to a minimum. \end_layout \begin_layout Standard @@ -1780,8 +1903,7 @@ double* \begin_inset space ~ \end_inset -XYZ(atom) return pointer to beginning of XYZ coordinates for given atom - (max Natom()). +XYZ(atom) return pointer to beginning of XYZ coordinates for given atom (max Natom()). \end_layout \begin_layout Description @@ -1797,8 +1919,8 @@ CRD(coord) return pointer to given coordinate (max size()). \end_layout \begin_layout Standard -Note that you can get pointers to the raw coordinates, but it is not recommened - to use these in general. +Note that you can get pointers to the raw coordinates, + but it is not recommened to use these in general. \end_layout \begin_layout Subsubsection @@ -1806,16 +1928,15 @@ Using Frame for RMSD calculations \end_layout \begin_layout Standard -Unlike some of the other functions of Frame, the RMSD functions do not take - a mask - it is assumed all atoms in the Frame are involved in the RMSD - calculation. +Unlike some of the other functions of Frame, + the RMSD functions do not take a mask - it is assumed all atoms in the Frame are involved in the RMSD calculation. This is done for performance reasons. - If a subset of atoms is desired for an RMSD calculation the reference and - target Frames should be modified beforehand. - Since the reference structure usually does not change it is often beneficial - to pre-center the reference at the origin. - For example, given a reference Frame (Ref), a Farget frame (Tgt), and an - AtomMask (mask): + If a subset of atoms is desired for an RMSD calculation the reference and target Frames should be modified beforehand. + Since the reference structure usually does not change it is often beneficial to pre-center the reference at the origin. + For example, + given a reference Frame (Ref), + a Farget frame (Tgt), + and an AtomMask (mask): \end_layout \begin_layout LyX-Code @@ -1827,7 +1948,8 @@ top.SetupIntegerMask( mask ); \end_layout \begin_layout LyX-Code -Frame selectedRef, selectedTgt; +Frame selectedRef, + selectedTgt; \end_layout \begin_layout LyX-Code @@ -1835,11 +1957,13 @@ Frame selectedRef, selectedTgt; \end_layout \begin_layout LyX-Code -selectedRef.SetupFrameFromMask( mask, top.Atoms() ); +selectedRef.SetupFrameFromMask( mask, + top.Atoms() ); \end_layout \begin_layout LyX-Code -selectedRef.SetCoordinates( Ref, mask ); +selectedRef.SetCoordinates( Ref, + mask ); \end_layout \begin_layout LyX-Code @@ -1855,11 +1979,13 @@ Vec3 refTrans = selectedRef.CenterOnOrigin( useMass ); \end_layout \begin_layout LyX-Code -selectedTgt.SetupFrameFromMask( mask, top.Atoms() ); +selectedTgt.SetupFrameFromMask( mask, + top.Atoms() ); \end_layout \begin_layout LyX-Code -selectedTgt.SetCoordinates( Tgt, mask ); +selectedTgt.SetCoordinates( Tgt, + mask ); \end_layout \begin_layout LyX-Code @@ -1896,20 +2022,24 @@ double rmsd = selectedTgt.RMSD_CenteredRef( selectedRef, \end_layout \begin_layout LyX-Code -Tgt.Trans_Rot_Trans( tgtTrans, rot_matrix, refTrans ); +Tgt.Trans_Rot_Trans( tgtTrans, + rot_matrix, + refTrans ); \end_layout \begin_layout Standard -Now for subsequent RMS calculations to the same Reference, only the selected - Target frame needs to have its coordinates set: +Now for subsequent RMS calculations to the same Reference, + only the selected Target frame needs to have its coordinates set: \end_layout \begin_layout LyX-Code -selectedTgt.SetCoordinates( Tgt2, mask ); +selectedTgt.SetCoordinates( Tgt2, + mask ); \end_layout \begin_layout LyX-Code -rmsd = selectedTgt.RMSD_CenteredRef( selectedRef, ... +rmsd = selectedTgt.RMSD_CenteredRef( selectedRef, + ... \end_layout \begin_layout Subsection @@ -1918,33 +2048,32 @@ Box \begin_layout Standard The Box class holds all unit cell information. - It has the unit cell vectors (stored in a Matrix_3x3 class in row-major - order), as well as the fractional cell matrix (for converting from Cartesian - to fractional coordinates), the box lengths and angles, and the unit cell - volume. + It has the unit cell vectors (stored in a Matrix_3x3 class in row-major order), + as well as the fractional cell matrix (for converting from Cartesian to fractional coordinates), + the box lengths and angles, + and the unit cell volume. There are in general two ways to set up Box with unit cell information: the SetupX routines (e.g. SetupFromXyzAbg()) and AssignX routines (e.g. AssignFromXyzAbg()). - The SetupX routines perform some extra checks and will return 1 if something - is wrong with the box. - The AssignX routines do not perform these checks and so should be used - where performance is needed (or the state of the box doesn't matter). + The SetupX routines perform some extra checks and will return 1 if something is wrong with the box. + The AssignX routines do not perform these checks and so should be used where performance is needed (or the state of the box doesn't matter). \end_layout \begin_layout Standard Both the SetupX and AssignX will set the unit and fractional cell matrices, - the box lengths and angles, and the cell volume each time they are called. - The ImageOption class can then be used to determine what kind of imaging - can be performed on the unit cell using the distance calculation routines - (DIST2(), DIST()) found in DistRoutines.h. - For example, this is how distances are calculated using ImageOption imageOpt_ - in the distance action. + the box lengths and angles, + and the cell volume each time they are called. + The ImageOption class can then be used to determine what kind of imaging can be performed on the unit cell using the distance calculation routines (DIST2(), + DIST()) found in DistRoutines.h. + For example, + this is how distances are calculated using ImageOption imageOpt_ in the distance action. \end_layout \begin_layout Standard 1. - In Init(), determine if imaging should be used if possible: + In Init(), + determine if imaging should be used if possible: \end_layout \begin_layout LyX-Code @@ -1953,8 +2082,8 @@ imageOpt_.InitImaging( !(actionArgs.hasKey("noimage")) ); \begin_layout Standard 2. - In Setup(), determine if imaging will be possible based on if box info - is present: + In Setup(), + determine if imaging will be possible based on if box info is present: \end_layout \begin_layout LyX-Code @@ -1963,8 +2092,8 @@ imageOpt_.SetupImaging( setup.CoordInfo().TrajBox().HasBox() ); \begin_layout Standard 3. - In DoAction(), determine what imaging to use and then calculate distance - using DIST() from DistRoutines.h: + In DoAction(), + determine what imaging to use and then calculate distance using DIST() from DistRoutines.h: \end_layout \begin_layout LyX-Code @@ -1976,7 +2105,10 @@ if (imageOpt_.ImagingEnabled()) \end_layout \begin_layout LyX-Code -double Dist = DIST(imageOpt_.ImagingType(), a1, a2_, frm.Frm().BoxCrd()); +double Dist = DIST(imageOpt_.ImagingType(), + a1, + a2_, + frm.Frm().BoxCrd()); \end_layout \begin_layout Section @@ -1984,22 +2116,25 @@ Console and File Input/Output \end_layout \begin_layout Subsection -Output to STDOUT/STDERR: CpptrajStdio.h +Output to STDOUT/STDERR: + CpptrajStdio.h \end_layout \begin_layout Standard -The file CpptrajStdio.cpp contains functions used to write output to standard - output (STDOUT) and standard error (STDERR). - This is accomplished with the C printf-like functions mprintf() and mprinterr() - respectively: +The file CpptrajStdio.cpp contains functions used to write output to standard output (STDOUT) and standard error (STDERR). + This is accomplished with the C printf-like functions mprintf() and mprinterr() respectively: \end_layout \begin_layout LyX-Code -mprintf(const char* format, ...); // STDOUT +mprintf(const char* format, + ...); + // STDOUT \end_layout \begin_layout LyX-Code -mprinterr(const char* format, ...); // STDERR +mprinterr(const char* format, + ...); + // STDERR \end_layout \begin_layout Standard @@ -2011,11 +2146,9 @@ master \begin_inset Quotes erd \end_inset -, and ensures that when CPPTRAJ is running via MPI that only the master - thread is able to write with these functions (note the same does NOT apply - for OpenMP). - The syntax is the same as basic printf - a format string followed by any - variables. +, + and ensures that when CPPTRAJ is running via MPI that only the master thread is able to write with these functions (note the same does NOT apply for OpenMP). + The syntax is the same as basic printf - a format string followed by any variables. There are numerous resources that describe printf syntax in detail. Some useful syntax is listed here: \end_layout @@ -2029,7 +2162,8 @@ master \end_layout \begin_layout Description -%g Use scientific or floating point representation, whichever is shorter. +%g Use scientific or floating point representation, + whichever is shorter. \end_layout \begin_layout Description @@ -2093,7 +2227,8 @@ mprintf( \begin_inset Quotes eld \end_inset -Using printf is %s; %i is an integer and %f is a double. +Using printf is %s; + %i is an integer and %f is a double. \backslash n \begin_inset Quotes erd @@ -2103,7 +2238,9 @@ n \end_layout \begin_layout LyX-Code - myString.c_str(), myInteger, myDouble); + myString.c_str(), + myInteger, + myDouble); \end_layout \begin_layout Standard @@ -2112,7 +2249,8 @@ Note that the string function c_str() must be used to print C++ strings. \end_layout \begin_layout LyX-Code -Using printf is easy; 3 is an integer and 5.430000 is a double. +Using printf is easy; + 3 is an integer and 5.430000 is a double. \end_layout \begin_layout Subsection @@ -2122,13 +2260,13 @@ CpptrajFile \begin_layout Standard The CpptrajFile class provides basic file input and output operations. It can handle reading and writing both Gzip and Bzip2 compressed files, - and through the FileName class performs tilde-expansion on file names (via - globbing) as well as separates the file name into its base name, extension, + and through the FileName class performs tilde-expansion on file names (via globbing) as well as separates the file name into its base name, + extension, and compressed extension. - The file can be opened immediately, or set up first and then opened later. + The file can be opened immediately, + or set up first and then opened later. Once it has been set up it can be opened or closed multiple times. - The CpptrajFile class destructor will automatically close the file if it - is open at time of destruction. + The CpptrajFile class destructor will automatically close the file if it is open at time of destruction. \end_layout @@ -2137,16 +2275,14 @@ BufferedLine \end_layout \begin_layout Standard -The BufferedLine class is a child of CpptrajFile used for text files that - will be read in line by line (note that writing is not possible with this - class). - The class has an internal buffer, which chunks of the input file are read - into. - The Line() routine can be used to read that chunk line by line; this avoids - potentially expensive file IO. +The BufferedLine class is a child of CpptrajFile used for text files that will be read in line by line (note that writing is not possible with this class). + The class has an internal buffer, + which chunks of the input file are read into. + The Line() routine can be used to read that chunk line by line; + this avoids potentially expensive file IO. When the chunk is empty a new chunk is read in. - The line can be further split into Tokens (similar to ArgList) and read - one token at a time; this can be useful for e.g. + The line can be further split into Tokens (similar to ArgList) and read one token at a time; + this can be useful for e.g. determining the number of columns in a file. \end_layout @@ -2155,26 +2291,24 @@ BufferedFrame \end_layout \begin_layout Standard -The BufferedFrame class is a child of CpptrajFile used for highly-formatted - text files that will be read/written multiple lines at a time (such as - the Amber ASCII trajectory format). - This class is set up for a certain total number of elements of a certain - character width with a certain number of elements per line, which can then - be read to or written from a character buffer in one entire chunk. +The BufferedFrame class is a child of CpptrajFile used for highly-formatted text files that will be read/written multiple lines at a time (such as the Amber ASCII trajectory format). + This class is set up for a certain total number of elements of a certain character width with a certain number of elements per line, + which can then be read to or written from a character buffer in one entire chunk. \end_layout \begin_layout Subsection -FileName, FileName.h +FileName, + FileName.h \end_layout \begin_layout Standard The FileName class is used by all file-related classes. - It is more powerful than a string and will automatically do tilde expansion - and split the name into path, base name, extension, etc. - FileName.h also contains the File namespace which includes File::Exists() - for testing whether a file can be opened and File::NameArray and File::ExpandTo -Filenames() for getting an array of files using wildcard matching. + It is more powerful than a string and will automatically do tilde expansion and split the name into path, + base name, + extension, + etc. + FileName.h also contains the File namespace which includes File::Exists() for testing whether a file can be opened and File::NameArray and File::ExpandToFilenames() for getting an array of files using wildcard matching. \end_layout \begin_layout Section @@ -2182,24 +2316,19 @@ Trajectory Input/Output \end_layout \begin_layout Standard -Trajectory input and output (IO) is handled via high-level and low-level - classes. - At the highest level trajectory input is provided by Trajin-derived classes - (Trajin_Single and Trajin_Multi) for reading one frame at a time (i.e. +Trajectory input and output (IO) is handled via high-level and low-level classes. + At the highest level trajectory input is provided by Trajin-derived classes (Trajin_Single and Trajin_Multi) for reading one frame at a time (i.e. during 'trajin' runs) and EnsembleIn-derived classes (EnsembleIn_Single, - which is experimental currently, and EnsembleIn_Multi) for reading multiple - frames at a time (i.e. + which is experimental currently, + and EnsembleIn_Multi) for reading multiple frames at a time (i.e. during 'ensemble' runs). - Trajectory output is currently handled by Trajout_Single for writing one - frame at a time to a single file, and EnsembleOut-dervived classes for - writing multiple frames out at a time. - At the lower level IO is handled by format-specific classes which inherit - from TrajectoryIO (TrajectoryIO.h), which are called Traj_X by convention - (e.g. + Trajectory output is currently handled by Trajout_Single for writing one frame at a time to a single file, + and EnsembleOut-dervived classes for writing multiple frames out at a time. + At the lower level IO is handled by format-specific classes which inherit from TrajectoryIO (TrajectoryIO.h), + which are called Traj_X by convention (e.g. Traj_AmberNetcdf for Amber NetCDF trajectories). TrajectoryIO classes are contained and set up within the higher level classes. - Note that there is currently no Trajout_Multi (write a single frame to - multiple files) since this functionality is already handled by TrajoutList. + Note that there is currently no Trajout_Multi (write a single frame to multiple files) since this functionality is already handled by TrajoutList. \end_layout \begin_layout Subsection @@ -2233,8 +2362,8 @@ EnsembleIn_Multi \end_layout \begin_layout Standard -For reading in multiple frames at a time from multiple files, optionally - sort the frames. +For reading in multiple frames at a time from multiple files, + optionally sort the frames. \end_layout \begin_layout Subsection @@ -2273,8 +2402,7 @@ The ParmIO \emph default class is a base class for all topology file formats. - This provides an easy mechanism for extracting the system topology from - any number of file formats. + This provides an easy mechanism for extracting the system topology from any number of file formats. The \emph on ParmFile @@ -2283,8 +2411,7 @@ ParmFile \emph on ParmIO \emph default - classes that hides the implementation details for each data file type from - you. + classes that hides the implementation details for each data file type from you. You should interact with \emph on ParmIO @@ -2298,8 +2425,7 @@ ParmFile \emph on ParmFile \emph default - provides the ability to both read and write topology file objects of any - class. + provides the ability to both read and write topology file objects of any class. \end_layout \begin_layout Standard @@ -2328,9 +2454,7 @@ Topology \emph on Topology \emph default - objects contain as much of the information in the Amber topology file as - can be parsed from the information present in the ParmIO object (and figured - out based on atomic arrangements). + objects contain as much of the information in the Amber topology file as can be parsed from the information present in the ParmIO object (and figured out based on atomic arrangements). A \emph on Topology @@ -2339,7 +2463,8 @@ Topology \emph on ParmFile::Read \emph default - function, followed by the name of the topology file. + function, + followed by the name of the topology file. Unlike the \emph on DataFile @@ -2348,7 +2473,8 @@ DataFile \emph on TrajectoryFile \emph default - classes, + classes, + \emph on ParmFile \emph default @@ -2366,9 +2492,8 @@ Topology \emph on Topology \emph default - class is format-independent, providing a layer of abstraction to make other - parts of the code that require topology information less error-prone while - coding. + class is format-independent, + providing a layer of abstraction to make other parts of the code that require topology information less error-prone while coding. \end_layout \begin_layout Standard @@ -2384,16 +2509,14 @@ ReadParm \emph on Topology \emph default - instance as the first argument and fills as much of the information there - as possible. - Afterwards, the CommonSetup method of the Topology class is called to finish - setup and determine bond information (from atom distances if not present - directly in the file format) and molecule information (based on the bonded - structure). + instance as the first argument and fills as much of the information there as possible. + Afterwards, + the CommonSetup method of the Topology class is called to finish setup and determine bond information (from atom distances if not present directly in the file format) and molecule information (based on the bonded structure). The currently available types of topologies are summarized in \begin_inset CommandInset ref LatexCommand formatted reference "tbl:Cpptraj-Parm-Formats" +nolink "false" \end_inset @@ -2402,6 +2525,8 @@ reference "tbl:Cpptraj-Parm-Formats" \begin_layout Standard \begin_inset Float table +placement document +alignment document wide false sideways false status open @@ -2500,7 +2625,8 @@ Parm_CharmmPsf (CHARMMPSF) \begin_inset Text \begin_layout Plain Layout -CHARMM PSF topology file format (used by NAMD, too) +CHARMM PSF topology file format (used by NAMD, + too) \end_layout \end_inset @@ -2573,21 +2699,22 @@ The DataSet and DataFile Framework \end_layout \begin_layout Standard -One of the goals in writing cpptraj was to try and generalize data collection - and output, so that any action could output any generated data in any format - known to cpptraj without having to write any extra code. - For example, data generated by a distance calculation can be output in - columns, as a Grace file, as a Gnuplot file, or as all three. - To that end Actions and Analyses have access to the main DataSetList in - CpptrajState (usually named DSL inside Actions) and the main DataFileList - (usually named DFL inside actions). - A DataSet can be generated by an Action, but because it is held outside - the Action in the master DataSetList it can persist after the Action that - generated it has been destroyed and be used in subsequent Analyses etc. +One of the goals in writing cpptraj was to try and generalize data collection and output, + so that any action could output any generated data in any format known to cpptraj without having to write any extra code. + For example, + data generated by a distance calculation can be output in columns, + as a Grace file, + as a Gnuplot file, + or as all three. + To that end Actions and Analyses have access to the main DataSetList in CpptrajState (usually named DSL inside Actions) and the main DataFileList (usually named DFL inside actions). + A DataSet can be generated by an Action, + but because it is held outside the Action in the master DataSetList it can persist after the Action that generated it has been destroyed and be used in subsequent Analyses etc. DataSets have a base type which determines what kind of data it can hold, - and can also belong to a group; DataSets in the same group behave in a - similar fashion. - For example, all DataSets in the COORDINATES group hold coordinates, etc. + and can also belong to a group; + DataSets in the same group behave in a similar fashion. + For example, + all DataSets in the COORDINATES group hold coordinates, + etc. \end_layout \begin_layout Subsection @@ -2595,25 +2722,31 @@ The MetaData class \end_layout \begin_layout Standard -DataSets are associated with meta data which is used to both describe and - categorize the data. - DataSet selection uses meta data; meta data is also used to sort DataSets. +DataSets are associated with meta data which is used to both describe and categorize the data. + DataSet selection uses meta data; + meta data is also used to sort DataSets. This information is contained within the MetaData class. - A DataSet can have a name, aspect, index, type etc. + A DataSet can have a name, + aspect, + index, + type etc. This allows for DataSets to e.g. - be marked as an alpha torsion (M_TORSION, ALPHA). + be marked as an alpha torsion (M_TORSION, + ALPHA). There are currently 9 MetaData variables: \end_layout \begin_layout Description -name_ The DataSet name; this is the most general level of classification. +name_ The DataSet name; + this is the most general level of classification. Used in searches. \end_layout \begin_layout Description -fileName_ If the data was read in from a file, the name of that file. - Used in searches; both the full path and base name can be used to match - (e.g. +fileName_ If the data was read in from a file, + the name of that file. + Used in searches; + both the full path and base name can be used to match (e.g. for reference frame data sets). \end_layout @@ -2626,9 +2759,10 @@ sub-name \begin_inset Quotes erd \end_inset -, used to differentiate between different aspects of similar data. - For example, DataSets generated by the 'nastruct' Action have different - aspects for nucleic acid +, + used to differentiate between different aspects of similar data. + For example, + DataSets generated by the 'nastruct' Action have different aspects for nucleic acid \begin_inset Quotes eld \end_inset @@ -2636,7 +2770,8 @@ stretch \begin_inset Quotes erd \end_inset -, +, + \begin_inset Quotes eld \end_inset @@ -2644,7 +2779,8 @@ shear \begin_inset Quotes erd \end_inset -, +, + \begin_inset Quotes eld \end_inset @@ -2652,7 +2788,8 @@ stagger \begin_inset Quotes erd \end_inset -, etc. +, + etc. Used in searches. \end_layout @@ -2664,38 +2801,44 @@ legend_ This is the name that will be used when writing data out to a file. \begin_layout Description idx_ (Index) A number which can be used to further differentiate data. - It could correspond to residue, atom, etc. + It could correspond to residue, + atom, + etc. Used in searches. \end_layout \begin_layout Description -ensembleNum_ (Ensemble number) For use during ensemble processing; this - is set by the DataSetList to differentiate data from different ensembles. +ensembleNum_ (Ensemble number) For use during ensemble processing; + this is set by the DataSetList to differentiate data from different ensembles. \end_layout \begin_layout Description -scalarmode_ Internal categorization of the type of data, e.g. - a distance, angle, torsion, etc. - Certain functions will use this data - for example data sets marked as - angle, torsion, or pucker will take periodicity into account when averaging - (DataSet_1D::Avg()). +scalarmode_ Internal categorization of the type of data, + e.g. + a distance, + angle, + torsion, + etc. + Certain functions will use this data - for example data sets marked as angle, + torsion, + or pucker will take periodicity into account when averaging (DataSet_1D::Avg()). \end_layout \begin_layout Description -scalartype_ Internal sub-type; so in the case of a torison what type of - torsion it is (phi, psi etc) or in the case of a matrix what kind of matrix, +scalartype_ Internal sub-type; + so in the case of a torison what type of torsion it is (phi, + psi etc) or in the case of a matrix what kind of matrix, etc. \end_layout \begin_layout Description -timeSeries_ Whether the DataSet is a time series; used by DataSetList to - determine whether to call the Allocate() function. +timeSeries_ Whether the DataSet is a time series; + used by DataSetList to determine whether to call the Allocate() function. \end_layout \begin_layout Standard -MetaData can be set using the DataSet::SetMeta() routine, but it is recommended - that this be done sparingly once a DataSet is part of the master DataSetList - since this could create conflicts. +MetaData can be set using the DataSet::SetMeta() routine, + but it is recommended that this be done sparingly once a DataSet is part of the master DataSetList since this could create conflicts. \end_layout \begin_layout Subsection @@ -2704,8 +2847,7 @@ The TextFormat class \begin_layout Standard This class is used when writing the data set out to text files. - It creates a printf-like format string of a given type with specified width - and precision. + It creates a printf-like format string of a given type with specified width and precision. \end_layout \begin_layout Subsection @@ -2719,11 +2861,13 @@ A simple usage example is given here. \end_layout \begin_layout LyX-Code -dist_ = DSL->AddSet(DataSet::DOUBLE, MetaData(actionArgs.GetStringNext(), +dist_ = DSL->AddSet(DataSet::DOUBLE, + MetaData(actionArgs.GetStringNext(), \end_layout \begin_layout LyX-Code - MetaData::M_DISTANCE), "Dis"); + MetaData::M_DISTANCE), + "Dis"); \end_layout \begin_layout LyX-Code @@ -2731,18 +2875,15 @@ if (dist_==0) return 1; \end_layout \begin_layout Standard -In the first line a DataSet class of type DOUBLE is added to the master - DataSetList. +In the first line a DataSet class of type DOUBLE is added to the master DataSetList. The various types are enumerated in DataSet::DataType (DataSet.h). - The DataSet will be named whatever the next string is in the actionArgs - ArgList. - If there is no name, a default one will be created based on the given default - "Dis" and the DataSet's overall position in the DataSetList (so in this - case the default could be something like Dis_00000). - The DataSet is also given the scalarMode M_DISTANCE, which is information - that other Actions/Analyses can use (like Analysis_Statistics). - What is returned is a pointer to the DataSet; DataSet is actually a base - class that specific DataSet types inherit (in this case DataSet_double). + The DataSet will be named whatever the next string is in the actionArgs ArgList. + If there is no name, + a default one will be created based on the given default "Dis" and the DataSet's overall position in the DataSetList (so in this case the default could be something like Dis_00000). + The DataSet is also given the scalarMode M_DISTANCE, + which is information that other Actions/Analyses can use (like Analysis_Statistics). + What is returned is a pointer to the DataSet; + DataSet is actually a base class that specific DataSet types inherit (in this case DataSet_double). In this way the interface is generalized. \end_layout @@ -2751,7 +2892,8 @@ The next step is to add the DataSet to the DataFileList. \end_layout \begin_layout LyX-Code -DataFile* outfile = DFL->AddFile(distanceFile, actionArgs); +DataFile* outfile = DFL->AddFile(distanceFile, + actionArgs); \end_layout \begin_layout LyX-Code @@ -2759,16 +2901,12 @@ if (outfile != 0) outfile->AddDataSet( dist_ ); \end_layout \begin_layout Standard -In the first line a pointer to a new or exsiting (if already created somewhere - else) DataFile is returned only if the string distanceFile is not empty; +In the first line a pointer to a new or exsiting (if already created somewhere else) DataFile is returned only if the string distanceFile is not empty; this allows specification of output files to be optional. - The actionsArgs ArgList is passed in so that the DataFile outfile can process - any DataFile-related arguments. + The actionsArgs ArgList is passed in so that the DataFile outfile can process any DataFile-related arguments. In the second line the DataSet is added to the DataFile. - In this way output from multiple actions can be combined rather than overwritte -n. - The machinery of the DataFileList takes care of output (formatting etc) - from there. + In this way output from multiple actions can be combined rather than overwritten. + The machinery of the DataFileList takes care of output (formatting etc) from there. \end_layout \begin_layout Standard @@ -2777,26 +2915,29 @@ The final phase is actually adding data to the DataSet. \end_layout \begin_layout LyX-Code -double distance = sqrt( DIST2_NoImage( V1, V2 ) ); +double distance = sqrt( DIST2_NoImage( V1, + V2 ) ); \end_layout \begin_layout LyX-Code -dist_->Add(frameNum, &distance); +dist_->Add(frameNum, + &distance); \end_layout \begin_layout Standard In the first line the value 'distance' is being calculated. - In the next line the value from 'distance' is being added to DataSet dist_ - with frame number 'frameNum' (automatically set within Action). + In the next line the value from 'distance' is being added to DataSet dist_ with frame number 'frameNum' (automatically set within Action). Notice that the address of 'distance' is passed rather than the value; this is a necessity from the generalization of the DataSet interface. - DataSet has no idea a prior what the data type might be, so in the Add - routine the value is cast to what the underlying DataSet implementation - expects. - This allows the Add routine to be used for double, float, int, string, + DataSet has no idea a prior what the data type might be, + so in the Add routine the value is cast to what the underlying DataSet implementation expects. + This allows the Add routine to be used for double, + float, + int, + string, etc. - This DataSet could also be cast back to it's actual type to access other - routines, e.g.: + This DataSet could also be cast back to it's actual type to access other routines, + e.g.: \end_layout \begin_layout LyX-Code @@ -2808,7 +2949,9 @@ DataSet_1D / SCALAR_1D \end_layout \begin_layout Standard -Base class for 1D scalar data sets (like DataSet_double, DataSet_Mesh, etc). +Base class for 1D scalar data sets (like DataSet_double, + DataSet_Mesh, + etc). Basically hold a series of numbers. \end_layout @@ -2842,27 +2985,31 @@ Adding New Functionality \begin_layout Standard Most development for Cpptraj will likely be in adding new functionality; - actions, analyses, and trajectory/topology/data file formats. - This part of the manual will provide guidance and some helpful hints to - this end. - In general, adding new functionality is done by writing an implementation - of the desired class type (e.g. - for actions, inherit from the Action class) and then adding that class - to the container for that specific functionality (e,g, in the case of actions, + actions, + analyses, + and trajectory/topology/data file formats. + This part of the manual will provide guidance and some helpful hints to this end. + In general, + adding new functionality is done by writing an implementation of the desired class type (e.g. + for actions, + inherit from the Action class) and then adding that class to the container for that specific functionality (e,g, + in the case of actions, ActionList). \end_layout \begin_layout Standard -Note that there is a script provided that can generate default templates - for various class types, located at $CPPTRAJHOME/devtools/Template.sh: +Note that there is a script provided that can generate default templates for various class types, + located at $CPPTRAJHOME/devtools/Template.sh: \end_layout \begin_layout LyX-Code -Usage: ./devtools/Template.sh [] +Usage: + ./devtools/Template.sh [] \end_layout \begin_layout LyX-Code - : Action Analysis Exec Traj DataIO DataSet + : + Action Analysis Exec Traj DataIO DataSet \end_layout \begin_layout Section @@ -2871,20 +3018,25 @@ Adding Actions - Example \begin_layout Standard All actions inherit from the Action abstract base class. - The Action class itself inherits from the DispatchObject class so that - it can be associated with an allocator (to create the action) and a help - function. - There are four functions that every action must implement: Init(), Setup(), - DoAction(), and Print(). - Init() is called when the action is first created, and processes input - arguments, sets up DataSets/DataFiles, deals with reference frames, and - sets the debug level. - Setup() is called to set the action up for a specific topology, and so - handles anything Topology-related (such as parsing atom masks). - The DoAction() function is called to actually perform the action on input - coordinate frames. - The Init(), Setup(), and DoAction() functions return a special type of - integer, Action::RetType, which described the result of the action: + The Action class itself inherits from the DispatchObject class so that it can be associated with an allocator (to create the action) and a help function. + There are four functions that every action must implement: + Init(), + Setup(), + DoAction(), + and Print(). + Init() is called when the action is first created, + and processes input arguments, + sets up DataSets/DataFiles, + deals with reference frames, + and sets the debug level. + Setup() is called to set the action up for a specific topology, + and so handles anything Topology-related (such as parsing atom masks). + The DoAction() function is called to actually perform the action on input coordinate frames. + The Init(), + Setup(), + and DoAction() functions return a special type of integer, + Action::RetType, + which described the result of the action: \end_layout \begin_layout Description @@ -2896,20 +3048,18 @@ Action::ERR Action is not successful. \end_layout \begin_layout Description -Action::USE_ORIGINAL_FRAME Action requests that the original unmodified - topology/frame be used (see e.g. +Action::USE_ORIGINAL_FRAME Action requests that the original unmodified topology/frame be used (see e.g. Action_Unstrip in Action_Strip.h). \end_layout \begin_layout Description -Action::SUPPRESS_COORD_OUTPUT Action requests that further processing of - the current coordinate frame be skipped (see e.g. +Action::SUPPRESS_COORD_OUTPUT Action requests that further processing of the current coordinate frame be skipped (see e.g. Action_RunningAvg). \end_layout \begin_layout Description -Action::SKIP Non-fatal problem occurred during setup; skip Action until - next Setup call. +Action::SKIP Non-fatal problem occurred during setup; + skip Action until next Setup call. \end_layout \begin_layout Description @@ -2921,25 +3071,27 @@ Action::MODIFY_COORDS DoAction routine has modified the Frame. \end_layout \begin_layout Standard -The final function is Print(), which is called after all trajectory processing - is complete and performs any additional calculation or output necessary. - This function can be blank if such functionality is not needed, but it - still must be implemented. +The final function is Print(), + which is called after all trajectory processing is complete and performs any additional calculation or output necessary. + This function can be blank if such functionality is not needed, + but it still must be implemented. \end_layout \begin_layout Standard -In addition to Action, there are currently two additional action-related - classes that actions may want to inherit from. - The ImagedAction class is for classes that may need to calculate imaged - distances, and the ActionFrameCounter class is for actions that may want - to process subsets of input frames (see e.g. +In addition to Action, + there are currently two additional action-related classes that actions may want to inherit from. + The ImagedAction class is for classes that may need to calculate imaged distances, + and the ActionFrameCounter class is for actions that may want to process subsets of input frames (see e.g. the Action_Matrix action). \end_layout \begin_layout Standard -As an example, we will go through the creation of a simplified version of - the Action_Distance class for calculating distances; this will cover using - the DataSet, DataFile, AtomMask, and ImagedAction classes as well. +As an example, + we will go through the creation of a simplified version of the Action_Distance class for calculating distances; + this will cover using the DataSet, + DataFile, + AtomMask, + and ImagedAction classes as well. \end_layout \begin_layout Subsection @@ -2947,8 +3099,9 @@ Create the Class Header \end_layout \begin_layout Standard -As mentioned in the style guide, header files should be named after the - class, so the Action_Distance class will go in a file named +As mentioned in the style guide, + header files should be named after the class, + so the Action_Distance class will go in a file named \begin_inset Quotes eld \end_inset @@ -2966,8 +3119,8 @@ header guard \end_inset - this will prevent issues with multiple inclusion. - The header guard should be named after the class and header file, so for - Action_Distance.h: + The header guard should be named after the class and header file, + so for Action_Distance.h: \end_layout \begin_layout LyX-Code @@ -2978,22 +3131,60 @@ header guard #define INC_ACTION_DISTANCE_H \end_layout +\begin_layout Standard +New classes should be put in the Cpptraj namespace if it does not conflict with the Cpptraj class (this will be fixed in a future release). + If the class is in a subdirectory, + it should be put in the Cpptraj:: namespace. + For example, + the GB_Params class definition is located in $CPPTRAJHOME/src/Parm/GB_Params.h. + The header begins like this: +\end_layout + +\begin_layout LyX-Code +#ifndef INC_PARM_GBPARAMS_H +\end_layout + +\begin_layout LyX-Code +#define INC_PARM_GBPARAMS_H +\end_layout + +\begin_layout LyX-Code +#include +\end_layout + +\begin_layout LyX-Code +class ArgList; +\end_layout + +\begin_layout LyX-Code +class Topology; +\end_layout + +\begin_layout LyX-Code +namespace Cpptraj { +\end_layout + +\begin_layout LyX-Code +namespace Parm { +\end_layout + \begin_layout Standard Next comes the class description. - Since distance calculations may involve imaging we also include the ImagedActio -n class as a variable to simplify image handling: + Since distance calculations may involve imaging we also include the ImagedAction class as a variable to simplify image handling: \end_layout \begin_layout LyX-Code -class Action_Distance: public Action { +class Action_Distance: + public Action { \end_layout \begin_layout Standard -Following the style guide, we first implement any public methods. - For actions this is at least the constructor, the allocator (named Alloc() - by convention), and the Help() function. - The allocator and help functions need to be static so that they can be - called without instantiating the class. +Following the style guide, + we first implement any public methods. + For actions this is at least the constructor, + the allocator (named Alloc() by convention), + and the Help() function. + The allocator and help functions need to be static so that they can be called without instantiating the class. \end_layout @@ -3002,7 +3193,8 @@ public: \end_layout \begin_layout LyX-Code - Action_Distance(); ///< Constructor + Action_Distance(); + ///< Constructor \end_layout \begin_layout LyX-Code @@ -3010,30 +3202,35 @@ public: \end_layout \begin_layout LyX-Code - static DispatchObject* Alloc() { return (DispatchObject*)new Action_Distance() -; } + static DispatchObject* Alloc() { return (DispatchObject*)new Action_Distance(); + } \end_layout \begin_layout LyX-Code - static void Help(); ///< Help function + static void Help(); + ///< Help function \end_layout \begin_layout Standard -The implemented functions Init(), Setup(), DoAction(), and Print() can be - either public or private, although the preference is private. +The implemented functions Init(), + Setup(), + DoAction(), + and Print() can be either public or private, + although the preference is private. \end_layout \begin_layout Standard -The private section is where all functions and variables specific to the - class will go. - First, we add entries for the functions inherited from the Action base - class which must be implemented. - Since we will not need to do any post-processing for this action, the Print() - function is empty: +The private section is where all functions and variables specific to the class will go. + First, + we add entries for the functions inherited from the Action base class which must be implemented. + Since we will not need to do any post-processing for this action, + the Print() function is empty: \end_layout \begin_layout LyX-Code - Action::RetType Init(ArgList&, ActionInit&, int); + Action::RetType Init(ArgList&, + ActionInit&, + int); \end_layout \begin_layout LyX-Code @@ -3041,7 +3238,8 @@ The private section is where all functions and variables specific to the \end_layout \begin_layout LyX-Code - Action::RetType DoAction(int, ActionFrame&); + Action::RetType DoAction(int, + ActionFrame&); \end_layout \begin_layout LyX-Code @@ -3051,9 +3249,8 @@ The private section is where all functions and variables specific to the \begin_layout Standard Next we define the class variables. For Action_Distance we will want a DataSet to hold the calculated distances, - two AtomMasks to describe the points between which the distance should - be calculated, and a variable to indicate whether the distance should be - mass-weighted. + two AtomMasks to describe the points between which the distance should be calculated, + and a variable to indicate whether the distance should be mass-weighted. \end_layout \begin_layout LyX-Code @@ -3061,39 +3258,51 @@ private: \end_layout \begin_layout LyX-Code - DataSet* dist_; ///< Will hold DataSet of calculated distances. + DataSet* dist_; + ///< Will hold DataSet of calculated distances. \end_layout \begin_layout LyX-Code - bool useMass_; ///< If true, mass-weight distances. + bool useMass_; + ///< If true, + mass-weight distances. \end_layout \begin_layout LyX-Code - AtomMask Mask1_; ///< First atom selection. + AtomMask Mask1_; + ///< First atom selection. \end_layout \begin_layout LyX-Code - AtomMask Mask2_; ///< Second atom selection + AtomMask Mask2_; + ///< Second atom selection \end_layout \begin_layout LyX-Code - ImagedAction image_; ///< Holds imaging info + ImagedAction image_; + ///< Holds imaging info \end_layout \begin_layout Standard -All variables related to imaging are already include via the ImagedAction - class. +All variables related to imaging are already include via the ImagedAction class. \end_layout \begin_layout Standard -Last, end the class definition and finish the header guard: +End the class definition with a closed bracket and semicolon: \end_layout \begin_layout LyX-Code }; \end_layout +\begin_layout Standard +If the class is located in one or more namespaces, + don't forget to close them off with a bracket '}'. + Finally, + and finish the header guard: +\end_layout + \begin_layout LyX-Code #endif \end_layout @@ -3103,11 +3312,12 @@ Create the Class Implementation \end_layout \begin_layout Standard -Following the naming scheme, the class implementation will go into Action_Distan -ce.cpp. +Following the naming scheme, + the class implementation will go into Action_Distance.cpp. The first part of this file will have the necessary #include directives. - We need for the square root function, Action_Distance.h for the - class definition, and CpptrajStdio.h for wiriting to the console. + We need for the square root function, + Action_Distance.h for the class definition, + and CpptrajStdio.h for wiriting to the console. \end_layout @@ -3125,18 +3335,23 @@ ce.cpp. \begin_layout Standard First we will need to create the class constructor. - It is encouraged that users make use of initalizer lists (which tend to - be more efficient) for this purpose. - In this case we have two non-class variables: dist_, which is a pointer - to a DataSet, and useMass_, which is boolean: + It is encouraged that users make use of initalizer lists (which tend to be more efficient) for this purpose. + In this case we have two non-class variables: + dist_, + which is a pointer to a DataSet, + and useMass_, + which is boolean: \end_layout \begin_layout LyX-Code -Action_Distance::Action_Distance() : dist_(0), useMass_(true) {} +Action_Distance::Action_Distance() : + dist_(0), + useMass_(true) {} \end_layout \begin_layout Standard -Next, ensure that the Help() function has an implementation. +Next, + ensure that the Help() function has an implementation. Note that in cpptraj \begin_inset Quotes eld \end_inset @@ -3171,12 +3386,12 @@ n"); \end_layout \begin_layout Subsubsection -Init() - Parse user arguments, set up DataSets/DataFiles etc +Init() - Parse user arguments, + set up DataSets/DataFiles etc \end_layout \begin_layout Standard -Init() is called when the action is created and is responsible for parsing - the Argument list (ArgList) and inital setup. +Init() is called when the action is created and is responsible for parsing the Argument list (ArgList) and inital setup. Init() has the same input arguments for every action: \end_layout @@ -3185,7 +3400,9 @@ Action::RetType \end_layout \begin_layout LyX-Code - Action_Distance::Init(ArgList& actionArgs, ActionInit& init, int debugIn) + Action_Distance::Init(ArgList& actionArgs, + ActionInit& init, + int debugIn) \end_layout \begin_layout LyX-Code @@ -3193,11 +3410,13 @@ Action::RetType \end_layout \begin_layout Standard -The input arguments are as follows: +The input arguments are as follows: + \series bold actionArgs \series default - (ArgList class) contains arguments from user input, + (ArgList class) contains arguments from user input, + \series bold init \series default @@ -3207,18 +3426,20 @@ init debugIn \series default is the current debug level for all actions. - It is up to the action implementation whether it wants to record the debug - level or not. + It is up to the action implementation whether it wants to record the debug level or not. \end_layout \begin_layout Standard -Typical order of argument processing is keywords, masks, DataSet name. - First we will process the keywords 'noimage', 'geom', and 'out '. +Typical order of argument processing is keywords, + masks, + DataSet name. + First we will process the keywords 'noimage', + 'geom', + and 'out '. \end_layout \begin_layout Standard -In order to determine whether the action will try to use imaging we call - the InitImaging() function (inherited from the ImagedAction class). +In order to determine whether the action will try to use imaging we call the InitImaging() function (inherited from the ImagedAction class). If the ArgList actionArgs contains the string \begin_inset Quotes eld \end_inset @@ -3227,7 +3448,8 @@ noimage \begin_inset Quotes erd \end_inset -, false will be sent to InitImaging to disable imaging: +, + false will be sent to InitImaging to disable imaging: \end_layout \begin_layout LyX-Code @@ -3244,7 +3466,8 @@ geom \begin_inset Quotes erd \end_inset -, useMass_ will be set to false: +, + useMass_ will be set to false: \end_layout \begin_layout LyX-Code @@ -3252,7 +3475,8 @@ geom \end_layout \begin_layout Standard -Next, we will try to create an output DataFile: +Next, + we will try to create an output DataFile: \end_layout \begin_layout LyX-Code @@ -3264,8 +3488,8 @@ Next, we will try to create an output DataFile: \end_layout \begin_layout Standard -The behavior of AddDataFile() depends on the result from actionArgs.GetStringKey( -); if +The behavior of AddDataFile() depends on the result from actionArgs.GetStringKey(); + if \begin_inset Quotes eld \end_inset @@ -3273,9 +3497,9 @@ out \begin_inset Quotes erd \end_inset - is present in actionArgs, the next string (presumably ) is returned - and passed to AddDataFile(), and a DataFile will be returned corresponding - to . + is present in actionArgs, + the next string (presumably ) is returned and passed to AddDataFile(), + and a DataFile will be returned corresponding to . If \begin_inset Quotes eld \end_inset @@ -3284,15 +3508,17 @@ out \begin_inset Quotes erd \end_inset - is not present nothing will be returned, no file will be set up, and outfile - will be null (0). + is not present nothing will be returned, + no file will be set up, + and outfile will be null (0). \end_layout \begin_layout Standard -Next, we will get two atom mask expressions. - We will require that the user must specify two masks, so if either of the - strings is empty return an error: +Next, + we will get two atom mask expressions. + We will require that the user must specify two masks, + so if either of the strings is empty return an error: \end_layout \begin_layout LyX-Code @@ -3308,7 +3534,9 @@ Next, we will get two atom mask expressions. \end_layout \begin_layout LyX-Code - mprinterr("Error: distance: Requires 2 masks + mprinterr("Error: + distance: + Requires 2 masks \backslash n"); \end_layout @@ -3322,9 +3550,7 @@ n"); \end_layout \begin_layout Standard -Now we can use the mask expression strings to initialize the two AtomMask - classes (note that this tokenizes the mask expressions but does not yet - set them up since we need topology information to do that): +Now we can use the mask expression strings to initialize the two AtomMask classes (note that this tokenizes the mask expressions but does not yet set them up since we need topology information to do that): \end_layout \begin_layout LyX-Code @@ -3336,11 +3562,10 @@ Now we can use the mask expression strings to initialize the two AtomMask \end_layout \begin_layout Standard -Next we will use the master DataSetList (init.DSL()) to create a DataSet - to store the calculated distances. - We will use a version of DataSetList::AddSet() that allows us to specify - the DataSet type, MetaData, and a default name if no name is specified - ( +Next we will use the master DataSetList (init.DSL()) to create a DataSet to store the calculated distances. + We will use a version of DataSetList::AddSet() that allows us to specify the DataSet type, + MetaData, + and a default name if no name is specified ( \begin_inset Quotes eld \end_inset @@ -3349,13 +3574,15 @@ Dis \end_inset ). - If any errors occur in creating the DataSet, NULL (0) will be returned. - Note that the string returned by actionArgs.GetStringNext() is implicitly - converted to a MetaData class. + If any errors occur in creating the DataSet, + NULL (0) will be returned. + Note that the string returned by actionArgs.GetStringNext() is implicitly converted to a MetaData class. \end_layout \begin_layout LyX-Code - dist_ = init.DSL().AddSet(DataSet::DOUBLE, actionArgs.GetStringNext(), "Dis"); + dist_ = init.DSL().AddSet(DataSet::DOUBLE, + actionArgs.GetStringNext(), + "Dis"); \end_layout \begin_layout LyX-Code @@ -3363,7 +3590,8 @@ Dis \end_layout \begin_layout Standard -If a DataFile was previously set up, we now add the DataSet to this DataFile: +If a DataFile was previously set up, + we now add the DataSet to this DataFile: \end_layout \begin_layout LyX-Code @@ -3371,12 +3599,14 @@ If a DataFile was previously set up, we now add the DataSet to this DataFile: \end_layout \begin_layout Standard -Last, we print out some information regarding how the Action has been initialize -d and return Action::OK to indicate successful intialization: +Last, + we print out some information regarding how the Action has been initialized and return Action::OK to indicate successful intialization: \end_layout \begin_layout LyX-Code - mprintf(" DISTANCE: %s to %s",Mask1_.MaskString(), Mask2_.MaskString()); + mprintf(" DISTANCE: + %s to %s",Mask1_.MaskString(), + Mask2_.MaskString()); \end_layout \begin_layout LyX-Code @@ -3384,7 +3614,8 @@ d and return Action::OK to indicate successful intialization: \end_layout \begin_layout LyX-Code - mprintf(", non-imaged"); + mprintf(", + non-imaged"); \end_layout \begin_layout LyX-Code @@ -3392,7 +3623,8 @@ d and return Action::OK to indicate successful intialization: \end_layout \begin_layout LyX-Code - mprintf(", center of mass"); + mprintf(", + center of mass"); \end_layout \begin_layout LyX-Code @@ -3400,7 +3632,9 @@ d and return Action::OK to indicate successful intialization: \end_layout \begin_layout LyX-Code - mprintf(", geometric center"); mprintf(". + mprintf(", + geometric center"); + mprintf(". \backslash n"); \end_layout @@ -3417,22 +3651,24 @@ n"); \series bold IMPORTANT: + \series default - Note that this is the only time in which the master DataSetList is passed - to the Action. + Note that this is the only time in which the master DataSetList is passed to the Action. If the Action will need to set up DataSets later (because e.g. - they may depend on what's in the Topology, like in the case of the + they may depend on what's in the Topology, + like in the case of the \series bold \emph on multidihedral \series default \emph default - command), it should save a pointer to the master DataSetList using the - + command), + it should save a pointer to the master DataSetList using the \series bold init.DslPtr() \series default - function, e.g. + function, + e.g. \end_layout \begin_layout LyX-Code @@ -3444,10 +3680,8 @@ Setup() - Set up Topology-related parts of the Action \end_layout \begin_layout Standard -Setup() is called whenever the action needs to be set up for a given Topology - file. - Any component of the action that depends on Topology (in this case the - AtomMasks and the Imaging) is handled here. +Setup() is called whenever the action needs to be set up for a given Topology file. + Any component of the action that depends on Topology (in this case the AtomMasks and the Imaging) is handled here. The arguments to Setup() are: \end_layout @@ -3460,11 +3694,9 @@ Note that the \series bold setup \series default - variable (ActionSetup class) contains a pointer to the current Topology - and current trajectory CoordinateInfo, as well as the number of expected - frames associated with this Topology during the current run. - Actions that want to modify the current Topology or CoordinateInfo for - subsequent Actions can do so using the + variable (ActionSetup class) contains a pointer to the current Topology and current trajectory CoordinateInfo, + as well as the number of expected frames associated with this Topology during the current run. + Actions that want to modify the current Topology or CoordinateInfo for subsequent Actions can do so using the \series bold setup \series default @@ -3474,12 +3706,11 @@ setup \end_layout \begin_layout Standard -First, we setup the AtomMasks. - Each AtomMask is passed to the current topology using the SetupIntegerMask() - function, which will create an integer array containing only the selected - atoms based on the mask expression. - If we needed to know both selected and unselected atoms we could use the - SetupCharMask() function instead. +First, + we setup the AtomMasks. + Each AtomMask is passed to the current topology using the SetupIntegerMask() function, + which will create an integer array containing only the selected atoms based on the mask expression. + If we needed to know both selected and unselected atoms we could use the SetupCharMask() function instead. \end_layout \begin_layout LyX-Code @@ -3491,20 +3722,20 @@ First, we setup the AtomMasks. \end_layout \begin_layout Standard -After this, we print some information about what atoms are selected (note - we could also use the MaskInfo() function of AtomMask for this). - For calculating distance, we need to make sure atoms were actually selected - (using the None() function of AtomMask). - If no atoms were selected this may be because the mask is only valid for - certain Topologies during the run, so in that case make it a non-fatal - error (i.e. +After this, + we print some information about what atoms are selected (note we could also use the MaskInfo() function of AtomMask for this). + For calculating distance, + we need to make sure atoms were actually selected (using the None() function of AtomMask). + If no atoms were selected this may be because the mask is only valid for certain Topologies during the run, + so in that case make it a non-fatal error (i.e. a Warning) and return Action::SKIP: \end_layout \begin_layout LyX-Code mprintf(" \backslash -t%s (%i atoms) to %s (%i atoms)",Mask1_.MaskString(), Mask1_.Nselected(), +t%s (%i atoms) to %s (%i atoms)",Mask1_.MaskString(), + Mask1_.Nselected(), \end_layout \begin_layout LyX-Code @@ -3518,7 +3749,9 @@ t%s (%i atoms) to %s (%i atoms)",Mask1_.MaskString(), Mask1_.Nselected(), \begin_layout LyX-Code mprintf(" \backslash -nWarning: distance: One or both masks have no atoms. +nWarning: + distance: + One or both masks have no atoms. \backslash n"); \end_layout @@ -3532,12 +3765,10 @@ n"); \end_layout \begin_layout Standard -Next we determine if imaging can actually be performed based on the box - information present in the current trajectory's CoordinateInfo; if there - is no box information imaging cannot be performed. +Next we determine if imaging can actually be performed based on the box information present in the current trajectory's CoordinateInfo; + if there is no box information imaging cannot be performed. We do this with the image_.SetupImaging() function (ImagedAction class). - The image_.ImagingEnabled() function will let us know if imaging for this - Topology is possible or not: + The image_.ImagingEnabled() function will let us know if imaging for this Topology is possible or not: \end_layout \begin_layout LyX-Code @@ -3549,7 +3780,8 @@ Next we determine if imaging can actually be performed based on the box \end_layout \begin_layout LyX-Code - mprintf(", imaged"); + mprintf(", + imaged"); \end_layout \begin_layout LyX-Code @@ -3557,7 +3789,8 @@ Next we determine if imaging can actually be performed based on the box \end_layout \begin_layout LyX-Code - mprintf(", imaging off"); + mprintf(", + imaging off"); \end_layout \begin_layout LyX-Code @@ -3583,14 +3816,15 @@ Now all Topology-dependent aspects of the action are set up. \series bold IMPORTANT: + \series default Note that this is the only time in which a Topology is passed to the Action. - If the Action requires Topology information later (such as in DoAction() - or Print()) it should save a pointer to the Topology using the + If the Action requires Topology information later (such as in DoAction() or Print()) it should save a pointer to the Topology using the \series bold setup.TopAddress() \series default - function, e.g. + function, + e.g. \end_layout \begin_layout LyX-Code @@ -3603,25 +3837,28 @@ Modification of Topology Info \begin_layout Standard If there will be a modification of Topology/Frame information (e.g. - removing atoms, adding velocity information to the Frame, etc) the Action - must return Action::MODIFY_TOPOLOGY. - If the CoordinateInfo will be modified, the Action should have a copy of - the CoordinateInfo in the Action class itself; + removing atoms, + adding velocity information to the Frame, + etc) the Action must return Action::MODIFY_TOPOLOGY. + If the CoordinateInfo will be modified, + the Action should have a copy of the CoordinateInfo in the Action class itself; + \series bold -it must not reside only in Action::Setup(), otherwise it will be lost when - setup exits +it must not reside only in Action::Setup(), + otherwise it will be lost when setup exits \series default . \end_layout \begin_layout Standard -For example, say we are adding time information to a frame that currently - does not have it. +For example, + say we are adding time information to a frame that currently does not have it. The code might look something like: \end_layout \begin_layout LyX-Code -cInfo_ = setup.CoordInfo(); +cInfo_ = setup.CoordInfo(); + \end_layout \begin_layout LyX-Code @@ -3637,7 +3874,8 @@ setup.SetCoordInfo( &cInfo_ ); \end_layout \begin_layout Standard -Here, cInfo_ is a CoordinateInfo variable in the Action class. +Here, + cInfo_ is a CoordinateInfo variable in the Action class. \end_layout \begin_layout Subsubsection @@ -3645,15 +3883,15 @@ DoAction() - Process input Frame \end_layout \begin_layout Standard -Coordinates are read in a frame at a time and stored in a Frame class, which - is then passed to each action in the ActionList. +Coordinates are read in a frame at a time and stored in a Frame class, + which is then passed to each action in the ActionList. The DoAction() function is called to process a coordinate Frame. The arguments are: \end_layout \begin_layout LyX-Code -Action::RetType Action_Distance::DoAction(int frameNum, ActionFrame& frm) - { +Action::RetType Action_Distance::DoAction(int frameNum, + ActionFrame& frm) { \end_layout \begin_layout Standard @@ -3667,10 +3905,8 @@ frameNum frm \series default variable (ActionFrame class) contains a pointer to the current Frame. - Actions that want to alter the current Frame beyond just manipulating coordinat -es for subsequent Actions (e.g. - changing the Frame size or adding velocity info etc) can do so via the - + Actions that want to alter the current Frame beyond just manipulating coordinates for subsequent Actions (e.g. + changing the Frame size or adding velocity info etc) can do so via the \series bold frm \series default @@ -3681,29 +3917,31 @@ frm \begin_layout Standard There are several variables needed for calculating the distance. - First, we have two Vec3 classes (Vec3.h, which is already included from - other headers) to store the XYZ coordinates of the points: + First, + we have two Vec3 classes (Vec3.h, + which is already included from other headers) to store the XYZ coordinates of the points: \end_layout \begin_layout LyX-Code - Vec3 a1, a2; + Vec3 a1, + a2; \end_layout \begin_layout Standard -If we are performing non-orthorhombic imaging we need to store the matrices - which perform conversion from Cartesian to fractional coordinates and vice - versa (using Matrix_3x3 classes, Matrix_3x3.h). - Note that these are called 'ucell' and 'recip' respectively throughout - CPPTRAJ, as these were the names used for the analogous structures in PTRAJ. +If we are performing non-orthorhombic imaging we need to store the matrices which perform conversion from Cartesian to fractional coordinates and vice versa (using Matrix_3x3 classes, + Matrix_3x3.h). + Note that these are called 'ucell' and 'recip' respectively throughout CPPTRAJ, + as these were the names used for the analogous structures in PTRAJ. \end_layout \begin_layout LyX-Code - Matrix_3x3 ucell, recip; + Matrix_3x3 ucell, + recip; \end_layout \begin_layout Standard -Finally, we need a double to store the actual result of the distance calculation -: +Finally, + we need a double to store the actual result of the distance calculation: \end_layout \begin_layout LyX-Code @@ -3711,9 +3949,10 @@ Finally, we need a double to store the actual result of the distance calculation \end_layout \begin_layout Standard -In the first part of the actual calculation, we calculate the centers of - the coordinates in Mask1_ and Mask2_, either mass-weighted or not depending - on useMass_, using the appropriate functions from the Frame class (Frame.h): +In the first part of the actual calculation, + we calculate the centers of the coordinates in Mask1_ and Mask2_, + either mass-weighted or not depending on useMass_, + using the appropriate functions from the Frame class (Frame.h): \end_layout \begin_layout LyX-Code @@ -3745,22 +3984,20 @@ In the first part of the actual calculation, we calculate the centers of \end_layout \begin_layout Standard -Note that here we are using the Frm() function, which returns a constant - (i.e. - non-modifiable) reference to the current Frame; if we wanted to actually - manipulate the coordinates we would have to call ModifyFrm(). +Note that here we are using the Frm() function, + which returns a constant (i.e. + non-modifiable) reference to the current Frame; + if we wanted to actually manipulate the coordinates we would have to call ModifyFrm(). \end_layout \begin_layout Standard -Next, we get the distance between the coordinates stored in a1 and a2. - For non-orthorhombic imaging we first need to convert the current box coordinat -es (stored in the Frame class in double precision as 3 lengths and 3 angles) - into the coordinate conversion matrices using the ToRecip() function of - the Box class (Box.h). - Then, depending on the type of imaging that needs to be performed we call - the appropriate distance calculation routine (DIST2_XXX, found in DistRoutines.h -): +Next, + we get the distance between the coordinates stored in a1 and a2. + For non-orthorhombic imaging we first need to convert the current box coordinates (stored in the Frame class in double precision as 3 lengths and 3 angles) into the coordinate conversion matrices using the ToRecip() function of the Box class (Box.h). + Then, + depending on the type of imaging that needs to be performed we call the appropriate distance calculation routine (DIST2_XXX, + found in DistRoutines.h): \end_layout \begin_layout LyX-Code @@ -3772,11 +4009,15 @@ es (stored in the Frame class in double precision as 3 lengths and 3 angles) \end_layout \begin_layout LyX-Code - frm.Frm().BoxCrd().ToRecip(ucell, recip); + frm.Frm().BoxCrd().ToRecip(ucell, + recip); \end_layout \begin_layout LyX-Code - Dist = DIST2_ImageNonOrtho(a1, a2, ucell, recip); + Dist = DIST2_ImageNonOrtho(a1, + a2, + ucell, + recip); \end_layout \begin_layout LyX-Code @@ -3788,7 +4029,9 @@ es (stored in the Frame class in double precision as 3 lengths and 3 angles) \end_layout \begin_layout LyX-Code - Dist = DIST2_ImageOrtho(a1, a2, frm.Frm().BoxCrd()); + Dist = DIST2_ImageOrtho(a1, + a2, + frm.Frm().BoxCrd()); \end_layout \begin_layout LyX-Code @@ -3800,7 +4043,9 @@ es (stored in the Frame class in double precision as 3 lengths and 3 angles) \end_layout \begin_layout LyX-Code - Dist = DIST2_NoImage(a1, a2); break; + Dist = DIST2_NoImage(a1, + a2); + break; \end_layout \begin_layout LyX-Code @@ -3812,14 +4057,14 @@ es (stored in the Frame class in double precision as 3 lengths and 3 angles) \end_layout \begin_layout Standard -Last, we add the result to the DataSet and return Action::OK. - Since DataSet is just an interface we pass in the address of Dist (&Dist) - to let the underlying DataSet framework take care of the fact that it is - a double. +Last, + we add the result to the DataSet and return Action::OK. + Since DataSet is just an interface we pass in the address of Dist (&Dist) to let the underlying DataSet framework take care of the fact that it is a double. \end_layout \begin_layout LyX-Code - dist_->Add(frameNum, &Dist); + dist_->Add(frameNum, + &Dist); \end_layout \begin_layout LyX-Code @@ -3836,14 +4081,12 @@ Print() - Any post-processing \begin_layout Standard The Print() function is called once all input frames have been read in, - and is used if there is anything that should be printed outside the normal - DataFile/DataSet framework (e.g. - hydrogen bond averages in the hbond action) or if there are any additional - calculations that need to be performed (e.g. + and is used if there is anything that should be printed outside the normal DataFile/DataSet framework (e.g. + hydrogen bond averages in the hbond action) or if there are any additional calculations that need to be performed (e.g. finishing up matrix calculations in the matrix action). - In this example we're only calculating a simple distance; the output is - handled by the DataFile/DataSet framework, so we implement a blank Print() - function in the header: + In this example we're only calculating a simple distance; + the output is handled by the DataFile/DataSet framework, + so we implement a blank Print() function in the header: \end_layout \begin_layout LyX-Code @@ -3855,8 +4098,8 @@ Add the Action to the Command class \end_layout \begin_layout Standard -Now that the class implementation is complete, we need to let cpptraj know - how to call it. +Now that the class implementation is complete, + we need to let cpptraj know how to call it. This is currently done using a \begin_inset Quotes eld \end_inset @@ -3865,15 +4108,19 @@ static \begin_inset Quotes erd \end_inset - Class, Command (Command.cpp), which is initialized by the Cpptraj class - via Command::Init() when the program starts. - Command::Init() makes use of the Command::AddCmd() function to add the - Command, set its destination, and any associated keywords. + Class, + Command (Command.cpp), + which is initialized by the Cpptraj class via Command::Init() when the program starts. + Command::Init() makes use of the Command::AddCmd() function to add the Command, + set its destination, + and any associated keywords. The Command::AddCmd() function looks like: \end_layout \begin_layout LyX-Code -void Command::AddCmd(DispatchObject* oIn, Cmd::DestType dIn, int nKeys, +void Command::AddCmd(DispatchObject* oIn, + Cmd::DestType dIn, + int nKeys, ...) \end_layout @@ -3882,27 +4129,37 @@ where \series bold oIn \series default - is a pointer to the DispatchObject (Exec-, Action-, Analysis-, or Deprecated-de -rived class), + is a pointer to the DispatchObject (Exec-, + Action-, + Analysis-, + or Deprecated-derived class), + \series bold dIn \series default - determines how the Command will be processed, + determines how the Command will be processed, + \series bold nKeys \series default - is the number of keywords associated with the command, and the remaining - arguments are the command keywords. + is the number of keywords associated with the command, + and the remaining arguments are the command keywords. For example: \end_layout \begin_layout LyX-Code -Command::AddCmd( new Action_Rmsd(), Cmd::ACT, 2, "rms", "rmsd" ); +Command::AddCmd( new Action_Rmsd(), + Cmd::ACT, + 2, + "rms", + "rmsd" ); \end_layout \begin_layout Standard -Adds a new instance of the Action-derived class Action_Rmsd, sets its destinatio -n as Action (Cmd::ACT), and sets 2 associated command keys, +Adds a new instance of the Action-derived class Action_Rmsd, + sets its destination as Action (Cmd::ACT), + and sets 2 associated command keys, + \begin_inset Quotes eld \end_inset @@ -3922,8 +4179,8 @@ rmsd \end_layout \begin_layout Standard -To make navigation of Commands.cpp easier, you can search for ACTION (or - ANALYSIS if adding an Analysis) to go where things need to be added. +To make navigation of Commands.cpp easier, + you can search for ACTION (or ANALYSIS if adding an Analysis) to go where things need to be added. First add the class to Commands.cpp with the appropriate '#include'. Includes should be in alphabetical order within their given section. \end_layout @@ -3943,21 +4200,32 @@ To make navigation of Commands.cpp easier, you can search for ACTION (or \end_layout \begin_layout Standard -Then add the command to Command::Init() using Command::AddCmd(), e.g.: +Then add the command to Command::Init() using Command::AddCmd(), + e.g.: \end_layout \begin_layout LyX-Code -Command::AddCmd( new Action_Dipole(), Cmd::ACT, 1, "dipole" ); +Command::AddCmd( new Action_Dipole(), + Cmd::ACT, + 1, + "dipole" ); \end_layout \begin_layout LyX-Code \series bold -Command::AddCmd( new Action_Distance(), Cmd::ACT, 1, "distance" ); +Command::AddCmd( new Action_Distance(), + Cmd::ACT, + 1, + "distance" ); \end_layout \begin_layout LyX-Code -Command::AddCmd( new Action_DistRmsd(), Cmd::ACT, 2, "drms", "drmsd" ); +Command::AddCmd( new Action_DistRmsd(), + Cmd::ACT, + 2, + "drms", + "drmsd" ); \end_layout diff --git a/doc/CpptrajDevelopmentGuide.pdf b/doc/CpptrajDevelopmentGuide.pdf index 2a583ad7c7..de4a52c720 100644 Binary files a/doc/CpptrajDevelopmentGuide.pdf and b/doc/CpptrajDevelopmentGuide.pdf differ diff --git a/doc/CpptrajManual.pdf b/doc/CpptrajManual.pdf index 459e28bf5c..7d3c2b8d73 100644 Binary files a/doc/CpptrajManual.pdf and b/doc/CpptrajManual.pdf differ diff --git a/doc/DocumentChecksums.txt b/doc/DocumentChecksums.txt index 9077af46e2..501a194f85 100644 --- a/doc/DocumentChecksums.txt +++ b/doc/DocumentChecksums.txt @@ -1,3 +1,3 @@ -b37726e7a841f6fc695ecd7fb040ffbf CpptrajDevelopmentGuide.lyx -30abc9d08551e23061abcb780f78b02a cpptraj.lyx +f6f8cb1a79951d80a9d2656fd9c30f55 CpptrajDevelopmentGuide.lyx +98c794bb667297a27d520466982cdf81 cpptraj.lyx 5d9b5b5ed47a3ded57b6464df99b3585 CpptrajManual.lyx diff --git a/doc/Makefile b/doc/Makefile index 4f8141c076..d80a87382f 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,4 +1,5 @@ -docs: CpptrajManual.pdf CpptrajDevelopmentGuide.pdf +docs: GeneratePDFs.sh + ./GeneratePDFs.sh .lyx.pdf: lyx -batch --export pdf2 $< diff --git a/doc/cpptraj.lyx b/doc/cpptraj.lyx index ce1df6f690..e40113bd11 100644 --- a/doc/cpptraj.lyx +++ b/doc/cpptraj.lyx @@ -1,5 +1,5 @@ -#LyX 2.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 544 +#LyX 2.4 created this file. For more info see https://www.lyx.org/ +\lyxformat 620 \begin_document \begin_header \save_transient_properties true @@ -9,11 +9,11 @@ \usepackage{varwidth} \end_preamble \use_default_options true -\maintain_unincluded_children false +\maintain_unincluded_children no \language english \language_package default -\inputencoding auto -\fontencoding global +\inputencoding auto-legacy +\fontencoding auto \font_roman "default" "default" \font_sans "default" "default" \font_typewriter "default" "default" @@ -21,7 +21,9 @@ \font_default_family default \use_non_tex_fonts false \font_sc false -\font_osf false +\font_roman_osf false +\font_sans_osf false +\font_typewriter_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false @@ -65,7 +67,9 @@ \suppress_date false \justification true \use_refstyle 1 +\use_formatted_ref 0 \use_minted 0 +\use_lineno 0 \index Index \shortcut idx \color #008000 @@ -81,11 +85,16 @@ \papercolumns 1 \papersides 1 \paperpagestyle default +\tablestyle default \tracking_changes false \output_changes false +\change_bars false +\postpone_fragile_content false \html_math_output 0 \html_css_as_file 0 \html_be_strict false +\docbook_table_output 0 +\docbook_mathml_prefix 1 \end_header \begin_body @@ -111,15 +120,14 @@ literal "true" \emph on ptraj \emph default -) is the main program in Amber for processing coordinate trajectories and - data files. +) is the main program in Amber for processing coordinate trajectories and data files. \shape italic Cpptraj \shape default - has a wide range of functionality, and makes use of OpenMP/MPI to speed - up many calculations, including processing ensembles of trajectories and/or - conducting multiple analyses in parallel with MPI. + has a wide range of functionality, + and makes use of OpenMP/MPI to speed up many calculations, + including processing ensembles of trajectories and/or conducting multiple analyses in parallel with MPI. \begin_inset CommandInset citation LatexCommand citep key "Roe2018" @@ -147,50 +155,65 @@ Several actions/analyses in \emph on cpptraj \emph default - are OpenMP parallelized; see section + are OpenMP parallelized; + see section \begin_inset CommandInset ref LatexCommand ref reference "subsec:CpptrajOpenMP" +nolink "false" \end_inset for more details. \end_layout +\begin_layout Enumerate +In addition to processing single trajectories, + can read, + process, + and write ensembles of trajectories at the same time (from e.g. + REMD). +\end_layout + \begin_layout Enumerate Trajectory and ensemble reads can be MPI parallelized. \end_layout +\begin_layout Enumerate +As of version 7.0 has the ability to fully build and parameterize systems for MD simulations, + including the addition of solvent and ions (similar to the LEaP program from AmberTools). +\end_layout + \begin_layout Enumerate Almost any file read or written by \emph on cpptraj \emph default can be compressed (with the exception of the NetCDF trajectory format). - So for example gzipped/bzipped topology files can be read, and data files - can be written out as gzip/bzip2 files. - Compression is detected automatically when reading, and is determined by - the filename extension (.gz and .bz2 respectively) on writing. + So for example gzipped/bzipped topology files can be read, + and data files can be written out as gzip/bzip2 files. + Compression is detected automatically when reading, + and is determined by the filename extension (.gz and .bz2 respectively) on writing. \end_layout \begin_layout Enumerate The format of output data files can be specified by extension. - For example, data files can be written in xmgrace format if the filename - given has a '.agr' extension. + For example, + data files can be written in xmgrace format if the filename given has a '.agr' extension. A trajectory can be written in DCD format if the '.dcd' extension is used. \end_layout \begin_layout Enumerate -Multiple output trajectories can be specified, and can be written during - action processing (as opposed to only after) via the +Multiple output trajectories can be specified, + and can be written during action processing (as opposed to only after) via the \series bold \shape italic outtraj \series default \shape default command. - In addition, output files can be directed to write only specific frames - from the input trajectories. + In addition, + output files can be directed to write only specific frames from the input trajectories. \end_layout \begin_layout Enumerate @@ -206,7 +229,8 @@ rmsd \series default \shape default action allows specification of a separate mask for the reference structure. - In addition, per-residue RMSD can be calculated easily. + In addition, + per-residue RMSD can be calculated easily. \end_layout @@ -223,14 +247,12 @@ strip closest \series default \shape default - actions can often write an accompanying fully-functional stripped topology - file. + actions can often write an accompanying fully-functional stripped topology file. \end_layout \begin_layout Enumerate -Users usually are able to fine-tune the output format of data files declared - in actions using the +Users usually are able to fine-tune the output format of data files declared in actions using the \begin_inset Quotes eld \end_inset @@ -242,19 +264,21 @@ out \begin_inset Quotes erd \end_inset - keyword (for example, the precision of the numbers can be changed). - In addition, users can control which data sets are written to which files - (e.g. - if two actions specify the same data file with the 'out' keyword, data - from both actions will be written to that data file). + keyword (for example, + the precision of the numbers can be changed). + In addition, + users can control which data sets are written to which files (e.g. + if two actions specify the same data file with the 'out' keyword, + data from both actions will be written to that data file). \end_layout \begin_layout Enumerate -Users can manipulate data sets using mathematical expressions (with some - limitations), see +Users can manipulate data sets using mathematical expressions (with some limitations), + see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-Data-Set-Math" +nolink "false" \end_inset @@ -269,13 +293,15 @@ There is some support for creating internal loops over e.g. for \series default \emph default -, +, + \series bold \emph on set \series default \emph default -, and +, + and \series bold \emph on show @@ -289,7 +315,9 @@ See the README.md file in the \emph on cpptraj \emph default - home directory for information on how to build, authors, and so on. + home directory for information on how to build, + authors, + and so on. \end_layout \begin_layout Subsection @@ -309,8 +337,8 @@ The syntax presented in this manual uses the following conventions: \end_layout \begin_layout Description -{|} Denotes several choices separated by the '|' character; one of the choices - must be specified. +{|} Denotes several choices separated by the '|' character; + one of the choices must be specified. \end_layout \begin_layout Description @@ -328,8 +356,8 @@ Installation \end_layout \begin_layout Standard -See instructions in the CPPTRAJ GitHub repository README.md file under 'Installat -ion & Testing': +See instructions in the CPPTRAJ GitHub repository README.md file under 'Installation & Testing': + \begin_inset Flex URL status open @@ -455,7 +483,8 @@ cpptraj [-p ] [-i ] [-y ] [-x ] \begin_inset space ~ \end_inset -* Read from trajectory file ; same as input 'trajin '. +* Read from trajectory file ; + same as input 'trajin '. \end_layout \begin_layout Description @@ -463,7 +492,8 @@ cpptraj [-p ] [-i ] [-y ] [-x ] \begin_inset space ~ \end_inset -* Write trajectory file ; same as input 'trajout '. +* Write trajectory file ; + same as input 'trajout '. \end_layout \begin_layout Description @@ -483,7 +513,9 @@ cpptraj [-p ] [-i ] [-y ] [-x ] \end_layout \begin_layout Description -* A topology, input trajectory, or file containing cpptraj input. +* A topology, + input trajectory, + or file containing cpptraj input. \end_layout \begin_layout Description @@ -491,8 +523,8 @@ cpptraj [-p ] [-i ] [-y ] [-x ] \begin_inset space ~ \end_inset -* Read as reference coordinates; same as input 'reference - '. +* Read as reference coordinates; + same as input 'reference '. \end_layout \begin_layout Description @@ -552,7 +584,8 @@ cpptraj [-p ] [-i ] [-y ] [-x ] \begin_inset space ~ \end_inset -<#> Set global debug level to <#>; same as input 'debug <#>'. +<#> Set global debug level to <#>; + same as input 'debug <#>'. \end_layout \begin_layout Description @@ -570,7 +603,8 @@ cpptraj [-p ] [-i ] [-y ] [-x ] \begin_layout Description -tl Print length of trajectories specified with '-y' to STDOUT. - The total number of frames is written out as 'Frames: ' + The total number of frames is written out as 'Frames: + ' \end_layout \begin_layout Description @@ -587,7 +621,8 @@ cpptraj [-p ] [-i ] [-y ] [-x ] \begin_inset space ~ \end_inset - : Print selected residue numbers to STDOUT. + : + Print selected residue numbers to STDOUT. Selected residues are written out as 'Selected= 1 2 3 ...' \end_layout @@ -629,14 +664,13 @@ Note that unlike \shape italic ptraj \shape default -, in +, + in \shape italic cpptraj \shape default - it is not required that a topology file be specified on the command line - as long as one is specified in the input file with the 'parm' keyword. - Multiple topology/input files can be specified by use of multiple '-p' - and '-i' flags. + it is not required that a topology file be specified on the command line as long as one is specified in the input file with the 'parm' keyword. + Multiple topology/input files can be specified by use of multiple '-p' and '-i' flags. All topology and coordinate flags will be processed before any input flags. \end_layout @@ -649,11 +683,12 @@ Input to \shape italic cpptraj \shape default - is in the form of commands, which can be categorized in to 2 types: immediate - and queued. + is in the form of commands, + which can be categorized in to 2 types: + immediate and queued. Immediate commands are executed as soon as they are encountered. - Queued commands are initialized when they are encountered, but are not - executed until a Run is executed via a + Queued commands are initialized when they are encountered, + but are not executed until a Run is executed via a \series bold \shape italic run @@ -666,19 +701,23 @@ go \series default \shape default command. - Actions, Analyses, and Trajectory commands (except + Actions, + Analyses, + and Trajectory commands (except \series bold \emph on reference \series default \emph default -) are queued commands; however, they can also be run immediately via commands - such as +) are queued commands; + however, + they can also be run immediately via commands such as \series bold \shape italic crdaction \series default , + \shape default \series bold @@ -686,6 +725,7 @@ crdaction runanalysis \series default , + \shape default \series bold @@ -693,11 +733,13 @@ runanalysis loadcrd \series default \emph default -, etc. +, + etc. See \begin_inset CommandInset ref LatexCommand vref reference "sec:Coordinates-as-a" +nolink "false" \end_inset @@ -714,7 +756,9 @@ General (Immediate) These commands are executed immediately when entered. \begin_layout Description System (Immediate) These are unix system commands (e.g. - 'ls', 'pwd', etc). + 'ls', + 'pwd', + etc). \end_layout \begin_layout Description @@ -723,6 +767,7 @@ Coords (Immediate) These commands are used to manipulate COORDS data sets; \begin_inset CommandInset ref LatexCommand vref reference "sec:Coordinates-as-a" +nolink "false" \end_inset @@ -730,43 +775,41 @@ reference "sec:Coordinates-as-a" \end_layout \begin_layout Description -Trajectory (Queued) These commands prepare cpptraj for reading or writing - trajectories during a Run. +Trajectory (Queued) These commands prepare cpptraj for reading or writing trajectories during a Run. \end_layout \begin_layout Description -Topology (Immediate) These commands are used to read, write, and modify - topology information. +Topology (Immediate) These commands are used to read, + write, + and modify topology information. \end_layout \begin_layout Description -Action (Queued) These commands specify actions that will be performed on - coordinate frames read in from trajectories during a Run. +Action (Queued) These commands specify actions that will be performed on coordinate frames read in from trajectories during a Run. \end_layout \begin_layout Description -Analysis (Queued) These commands specify analyses that will be performed - on data that has been either generated from a Run or read in from an external - source. +Analysis (Queued) These commands specify analyses that will be performed on data that has been either generated from a Run or read in from an external source. \end_layout \begin_layout Description -Control (Immediate) These commands set up control blocks that can be used - to e.g. +Control (Immediate) These commands set up control blocks that can be used to e.g. loop over a set of commands. \end_layout \begin_layout Standard -In addition to normal commands, +In addition to normal commands, + \emph on cpptraj \emph default - now has the ability to perform certain basic math operations, even on data - sets. + now has the ability to perform certain basic math operations, + even on data sets. See \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-Data-Set-Math" +nolink "false" \end_inset @@ -779,12 +822,13 @@ Commands in cpptraj \shape default can be read in from an input file or from the interactive command prompt. - A '#' anywhere on a line denotes a comment; anything after '#' will be - ignored no matter where it occurs. + A '#' anywhere on a line denotes a comment; + anything after '#' will be ignored no matter where it occurs. A ' \backslash ' allows the continuation of one line to another. - For example, the input: + For example, + the input: \end_layout \begin_layout LyX-Code @@ -822,13 +866,11 @@ Getting Help \end_layout \begin_layout Standard -If in interactive mode, the 'help' command can be used to list recognized - commands and topics; topics (such as mask syntax) start with uppercase - letters. - 'help ' can be used to get the associated keywords as well as - an abbreviated description of the command. - Most commands have a corresponding test which also serves as an example - of how to use the command. +If in interactive mode, + the 'help' command can be used to list recognized commands and topics; + topics (such as mask syntax) start with uppercase letters. + 'help ' can be used to get the associated keywords as well as an abbreviated description of the command. + Most commands have a corresponding test which also serves as an example of how to use the command. See $AMBERHOME/AmberTools/test/cpptraj/README for more details. \end_layout @@ -845,8 +887,8 @@ batch \begin_inset Quotes erd \end_inset - mode, cpptraj is executed from the command line with one or more input - files containing commands to be processed or STDIN. + mode, + cpptraj is executed from the command line with one or more input files containing commands to be processed or STDIN. The syntax of is similar to that of \shape italic ptraj @@ -874,13 +916,14 @@ interactive mode \end_inset users can enter commands in a UNIX-like shell. - Interactive mode is useful for running short and simple analyses or for - trying out new kinds of analyses. + Interactive mode is useful for running short and simple analyses or for trying out new kinds of analyses. If \emph on cpptraj \emph default - is run with '–interactive', no arguments, or no specified input file: + is run with '–interactive', + no arguments, + or no specified input file: \end_layout \begin_layout LyX-Code @@ -901,13 +944,12 @@ cpptraj -p \begin_layout Standard this brings up the interactive interface. - This interface supports command history (via the up and down arrows) and - tab completion for commands and file names. - If no log file name has been given (with '–log '), all commands - used in interactive mode will be logged to a file named 'cpptraj.log', which - can subsequently be used as input if desired. - When starting cpptraj, command histories will be read from any existing - logs. + This interface supports command history (via the up and down arrows) and tab completion for commands and file names. + If no log file name has been given (with '–log '), + all commands used in interactive mode will be logged to a file named 'cpptraj.log', + which can subsequently be used as input if desired. + When starting cpptraj, + command histories will be read from any existing logs. \end_layout \begin_layout Subsection @@ -927,7 +969,8 @@ Like \shape italic ptraj \shape default -, a trajectory processing +, + a trajectory processing \begin_inset Quotes eld \end_inset @@ -940,14 +983,13 @@ Run cpptraj \shape default . - First the Run is set up via commands read in from an input file or the - interactive prompt. - Trajectories are then read in one frame at a time (or in the case of ensemble - processing all frames from a given step are read). - Actions are performed on the coordinates stored in the frame, after which - any output coordinates are written. - At the end of the run, any data sets generated are written, and any queued - Analyses are performed. + First the Run is set up via commands read in from an input file or the interactive prompt. + Trajectories are then read in one frame at a time (or in the case of ensemble processing all frames from a given step are read). + Actions are performed on the coordinates stored in the frame, + after which any output coordinates are written. + At the end of the run, + any data sets generated are written, + and any queued Analyses are performed. \end_layout \begin_layout Subsubsection @@ -959,14 +1001,12 @@ Since \emph on cpptraj \emph default - supports multiple topology files, during a Run actions are set up every - time the topology changes in order to recalculate things like what atoms - are in a mask etc. - Actions that are not valid for the current topology are skipped for that - topology. - So for example given two topology files with 100 residues, if the first - topology file processed includes a ligand named MOL and the second one - does not, the action: + supports multiple topology files, + during a Run actions are set up every time the topology changes in order to recalculate things like what atoms are in a mask etc. + Actions that are not valid for the current topology are skipped for that topology. + So for example given two topology files with 100 residues, + if the first topology file processed includes a ligand named MOL and the second one does not, + the action: \end_layout \begin_layout LyX-Code @@ -974,8 +1014,8 @@ distance :80 :MOL out D_80-to-MOL.dat \end_layout \begin_layout Standard -will be valid for the first topology but not for the second, so it will - be skipped as long as the second topology is active. +will be valid for the first topology but not for the second, + so it will be skipped as long as the second topology is active. \end_layout \begin_layout Subsection @@ -988,20 +1028,22 @@ Parallelization Cpptraj \emph default has many levels of parallelization that can be enabled via the '-mpi', - '-openmp', and/or '-cuda' configure flags for MPI, OpenMP, and CUDA paralleliza -tion respectively. - At the highest level, trajectory and ensemble reads are parallelized with - MPI. - In addition, certain time consuming actions have been parallelized with - OpenMP and/or CUDA. + '-openmp', + and/or '-cuda' configure flags for MPI, + OpenMP, + and CUDA parallelization respectively. + At the highest level, + trajectory and ensemble reads are parallelized with MPI. + In addition, + certain time consuming actions have been parallelized with OpenMP and/or CUDA. \end_layout \begin_layout Standard -Note that any combination of the '-openmp', '-cuda', and '-mpi' flags may - be used to generate a hybrid MPI/OpenMP/CUDA binary; however this may require - additional runtime setup (e.g. - setting OMP_NUM_THREADS for OpenMP) to work properly and not oversubscribe - cores. +Note that any combination of the '-openmp', + '-cuda', + and '-mpi' flags may be used to generate a hybrid MPI/OpenMP/CUDA binary; + however this may require additional runtime setup (e.g. + setting OMP_NUM_THREADS for OpenMP) to work properly and not oversubscribe cores. \end_layout \begin_layout Subsubsection @@ -1027,62 +1069,72 @@ Cpptraj trajin \series default \emph default -' trajectory input, where the trajectory read is divided as evenly as possible - among all input frames (across-trajectory parallelism). - For example, if given two trajectories of 1000 frames each and 4 MPI processes, - process 0 reads frames 1-500 of trajectory 1, process 1 reads frames 501-1000 - of trajectory 1, process 2 reads frames 1-500 of trajectory 2, and process - 3 reads frames 501-1000 of trajectory 2. - Most Actions will work with across-trajectory parallelization with the - exception of the following: +' trajectory input, + where the trajectory read is divided as evenly as possible among all input frames (across-trajectory parallelism). + For example, + if given two trajectories of 1000 frames each and 4 MPI processes, + process 0 reads frames 1-500 of trajectory 1, + process 1 reads frames 501-1000 of trajectory 1, + process 2 reads frames 1-500 of trajectory 2, + and process 3 reads frames 501-1000 of trajectory 2. + Most Actions will work with across-trajectory parallelization with the exception of the following: + \series bold \emph on 'clusterdihedral' \series default \emph default -, +, + \series bold \emph on 'contacts' \series default \emph default -, +, + \series bold \emph on 'createreservoir' \series default \emph default -, +, + \series bold \emph on 'lipidorder' \series default \emph default -, +, + \series bold \emph on 'pairwise' \series default \emph default -, +, + \series bold \emph on 'stfcdiffusion' \series default \emph default -, +, + \series bold \emph on 'tordiff' \series default \emph default -, +, + \series bold \emph on 'unwrap' \series default \emph default -, and +, + and \series bold \emph on 'xtalsymm' @@ -1095,19 +1147,18 @@ trajin 'diffusion' \series default \emph default - Action will only work with across-trajectory parallelism if no imaging - is to be performed. + Action will only work with across-trajectory parallelism if no imaging is to be performed. \end_layout \begin_layout Standard -In addition to across-trajectory parallelism, the +In addition to across-trajectory parallelism, + the \series bold \emph on 'gist' \series default \emph default - command will also MPI-parallelize the entropy calculation that occurs after - trajectory processing. + command will also MPI-parallelize the entropy calculation that occurs after trajectory processing. \end_layout \begin_layout Standard @@ -1120,28 +1171,28 @@ The second is for 'ensemble' \series default \shape default - trajectory input, where the reading/processing/writing of each member of - the ensemble is divided up among MPI processes. + trajectory input, + where the reading/processing/writing of each member of the ensemble is divided up among MPI processes. The number of MPI processes must be a multiple of the ensemble size. - If the number of processes is greater than the ensemble size then the processin -g of each ensemble member will be divided among MPI processes (i.e. + If the number of processes is greater than the ensemble size then the processing of each ensemble member will be divided among MPI processes (i.e. across-trajectory parallelism will be used). - For example, given an ensemble of 4 trajectories and 8 processes, processes - 0 and 1 are assigned to the first ensemble trajectory, processes 2 and - 3 are assigned to the second ensemble trajectory, and so on. + For example, + given an ensemble of 4 trajectories and 8 processes, + processes 0 and 1 are assigned to the first ensemble trajectory, + processes 2 and 3 are assigned to the second ensemble trajectory, + and so on. When using ensemble mode in parallel it is recommended that the \series bold \emph on ensemblesize \series default \emph default - command be used prior to any ensemble command as this will make set up - far more efficient. + command be used prior to any ensemble command as this will make set up far more efficient. \end_layout \begin_layout Standard -Note that most Analyses are not MPI-parallelized, with the exception of - the +Note that most Analyses are not MPI-parallelized, + with the exception of the \series bold \emph on calcdiffusion @@ -1154,6 +1205,7 @@ reference "subsec:cpptraj-calcdiffusion" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -1161,7 +1213,8 @@ noprefix "false" \end_layout \begin_layout Standard -In order to use the MPI version, Amber/ +In order to use the MPI version, + Amber/ \emph on cpptraj \emph default @@ -1170,8 +1223,9 @@ cpptraj \emph on cpptraj \emph default - has been compiled with MPI as it will print 'MPI' in the title, and/or - by calling 'cpptraj —defines' and looking for '-DMPI'. + has been compiled with MPI as it will print 'MPI' in the title, + and/or by calling 'cpptraj — +defines' and looking for '-DMPI'. \end_layout @@ -1191,8 +1245,7 @@ Some of the more time-consuming actions/analyses in \shape italic cpptraj \shape default - have been parallelized with OpenMP to take advantage of machines with multiple - cores. + have been parallelized with OpenMP to take advantage of machines with multiple cores. In order to use OpenMP parallelization Amber/ \emph on cpptraj @@ -1202,8 +1255,9 @@ cpptraj \shape italic cpptraj \shape default - has been compiled with OpenMP as it will print 'OpenMP' in the title, and/or - by calling 'cpptraj —defines' and looking for '-D_OPENMP'. + has been compiled with OpenMP as it will print 'OpenMP' in the title, + and/or by calling 'cpptraj — +defines' and looking for '-D_OPENMP'. The following actions/analyses have been OpenMP parallelized: \end_layout @@ -1325,8 +1379,7 @@ By default OpenMP cpptraj \shape default will use all available cores. - The number of OpenMP threads can be controlled by setting the OMP_NUM_THREADS - environment variable. + The number of OpenMP threads can be controlled by setting the OMP_NUM_THREADS environment variable. \end_layout \begin_layout Subsubsection @@ -1334,13 +1387,11 @@ CUDA Parallelization \end_layout \begin_layout Standard -Some time-consuming actions in cpptraj have been parallelized with CUDA - to take advantage of machines with NVIDIA GPUs. - In order to use CUDA parallelization Amber/cpptraj should be configured - with the '-cuda' flag. - You can easily tell if cpptraj has been compiled with CUDA as it will print - 'CUDA' and details on the current graphics device in the title, and/or - by calling 'cpptraj —defines' and looking for '-DCUDA'. +Some time-consuming actions in cpptraj have been parallelized with CUDA to take advantage of machines with NVIDIA GPUs. + In order to use CUDA parallelization Amber/cpptraj should be configured with the '-cuda' flag. + You can easily tell if cpptraj has been compiled with CUDA as it will print 'CUDA' and details on the current graphics device in the title, + and/or by calling 'cpptraj — +defines' and looking for '-DCUDA'. The following actions have been CUDA parallelized: \end_layout @@ -1370,8 +1421,8 @@ Units \begin_layout Standard Cpptraj uses the AKMA system of units. - The execption is time, which is typically expressed in ps (except where - noted). + The execption is time, + which is typically expressed in ps (except where noted). \begin_inset Separator latexpar \end_inset @@ -1550,16 +1601,17 @@ ptraj \family typewriter : \family default -', ' +', + ' \family typewriter @ \family default -', and ' +', + and ' \family typewriter * \family default -' are reserved for masks and should not be used in output file or data set - names. +' are reserved for masks and should not be used in output file or data set names. All masks are case-sensitive. Either names or numbers can be used. Masks can contain ranges (denoted with ' @@ -1571,11 +1623,13 @@ ptraj \family typewriter & \family default -' (and), ' +' (and), + ' \family typewriter | \family default -' (or), and ' +' (or), + and ' \family typewriter ! \family default @@ -1593,7 +1647,9 @@ The syntax for elementary selections is the following: \end_inset numlist} e.g. - '@12,17', '@54-85', '@12,54-85,90' + '@12,17', + '@54-85', + '@12,54-85,90' \end_layout \begin_layout Description @@ -1602,7 +1658,8 @@ numlist} e.g. \end_inset namelist} e.g. - '@CA', '@CA,C,O,N,H' + '@CA', + '@CA,C,O,N,H' \end_layout \begin_layout Description @@ -1629,7 +1686,9 @@ name} e.g. \end_inset numlist} e.g. - ':1-10', ':1,3,5', ':1-3,5,7-9' + ':1-10', + ':1,3,5', + ':1-3,5,7-9' \end_layout \begin_layout Description @@ -1638,7 +1697,8 @@ numlist} e.g. \end_inset namelist} e.g. - ':LYS', ':ARG,ALA,GLY' + ':LYS', + ':ARG,ALA,GLY' \end_layout \begin_layout Description @@ -1647,7 +1707,8 @@ namelist} e.g. \end_inset id} e.g. - '::B', '::A,D'. + '::B', + '::A,D'. Requires chain ID information be present in the topology. \end_layout @@ -1662,11 +1723,12 @@ residue number} e.g. ':;2-4,8'. - Requires a PDB loaded as topology, or Amber topology with embedded PDB - information (see + Requires a PDB loaded as topology, + or Amber topology with embedded PDB information (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:parmed_addPDB" +nolink "false" \end_inset @@ -1679,7 +1741,8 @@ reference "subsec:parmed_addPDB" \end_inset numlist} e.g. - '^1-10', ':23,84,111' + '^1-10', + ':23,84,111' \end_layout \begin_layout Description @@ -1687,7 +1750,8 @@ numlist} e.g. \begin_inset space ~ \end_inset -operator> Selection by distance, see below. +operator> Selection by distance, + see below. \end_layout \begin_layout Standard @@ -1707,7 +1771,8 @@ Several wildcard characters are supported: \end_layout \begin_layout Standard -The wildcards can also be used with numbers or other mask characters, e.g. +The wildcards can also be used with numbers or other mask characters, + e.g. ':?0' means \begin_inset Quotes eld \end_inset @@ -1716,7 +1781,8 @@ The wildcards can also be used with numbers or other mask characters, e.g. \begin_inset Quotes erd \end_inset -, ':*' means all residues and '@*' means all atoms. +, + ':*' means all residues and '@*' means all atoms. If the atom name (or type name) contains a wildcard character like an asterisk, it can be explictly selected by escaping (i.e. preceding) the wildcard character with a backslash ' @@ -1730,7 +1796,11 @@ atoms @C?* \end_layout \begin_layout Standard -would select atoms named C5, C4*, C422, etc., but: +would select atoms named C5, + C4*, + C422, + etc., + but: \end_layout \begin_layout LyX-Code @@ -1752,7 +1822,8 @@ Compound expressions of the following type are allowed: \end_layout \begin_layout Standard -and are processed as: +and are processed as: + \end_layout \begin_layout LyX-Code @@ -1773,7 +1844,8 @@ e.g. \end_layout \begin_layout Standard -More examples: +More examples: + \end_layout \begin_layout Description @@ -1801,8 +1873,8 @@ More examples: \end_layout \begin_layout Description -:1-500@O&!(:WAT|:LYS,ARG) All backbone oxygens in residues 1-500 but not - in water, lysine or arginine residues. +:1-500@O&!(:WAT|:LYS,ARG) All backbone oxygens in residues 1-500 but not in water, + lysine or arginine residues. \end_layout \begin_layout Description @@ -1855,11 +1927,13 @@ operator> Distance operator. \end_layout \begin_layout Description -: Any atom within a residue. +: + Any atom within a residue. \end_layout \begin_layout Description -; Residue geometric center. +; + Residue geometric center. \end_layout \begin_layout Description @@ -1873,8 +1947,7 @@ operator> Distance operator. \end_deeper \begin_layout Standard -There are two very important things to keep in mind when using distance - based masks: +There are two very important things to keep in mind when using distance based masks: \end_layout \begin_layout Enumerate @@ -1904,7 +1977,8 @@ mask reference \series default \shape default -; distances are then calculated using the +; + distances are then calculated using the \bar under specified reference frame only \bar default @@ -1936,7 +2010,8 @@ The syntax for selection by distance is a \series bold \series default - consists of 2 characters: ' + consists of 2 characters: + ' \series bold < \series default @@ -1948,16 +2023,20 @@ The syntax for selection by distance is a \series bold ^ \series default -' (molecules), ' +' (molecules), + ' \series bold : \series default -' (residues), ';' (residue centers), or ' +' (residues), + ';' (residue centers), + or ' \series bold @ \series default ' (atoms). - For example, ' + For example, + ' \series bold <: \series default @@ -1970,15 +2049,16 @@ residues within 3.0 Angstroms \end_inset etc. - For ':' residue- and '^' molecule-based distance selection, if any atom - in that residue/molecule meets the given distance criterion, the entire - residue/molecule is selected. - For ';' residue center, the geometric center of the residue must meet the - given distance criterion in order to be selected. + For ':' residue- and '^' molecule-based distance selection, + if any atom in that residue/molecule meets the given distance criterion, + the entire residue/molecule is selected. + For ';' residue center, + the geometric center of the residue must meet the given distance criterion in order to be selected. \end_layout \begin_layout Standard -In plain language, the entire distance mask can be read as +In plain language, + the entire distance mask can be read as \begin_inset Quotes eld \end_inset @@ -1999,7 +2079,8 @@ Select \end_inset . - So for example, the mask expression: + So for example, + the mask expression: \end_layout \begin_layout LyX-Code @@ -2011,8 +2092,7 @@ Means \begin_inset Quotes eld \end_inset -Select atoms within 2.4 Å distance of atoms selected by ':11-17' (residues - numbered 11 through 17) +Select atoms within 2.4 Å distance of atoms selected by ':11-17' (residues numbered 11 through 17) \begin_inset Quotes erd \end_inset @@ -2043,15 +2123,19 @@ Ranges \begin_layout Standard For several commands some arguments are ranges (e.g. - 'trajout onlyframes ', 'nastruct resrange ', 'rmsd perres - range '); + 'trajout onlyframes ', + 'nastruct resrange ', + 'rmsd perres range '); + \series bold THESE ARE NOT ATOM MASKS \series default . - They are simple number ranges using '-' to specify a range and ',' to separate - different ranges. - For example 1-2,4-6,9 specifies 1 to 2, 4 to 6, and 9, i.e. + They are simple number ranges using '-' to specify a range and ',' to separate different ranges. + For example 1-2,4-6,9 specifies 1 to 2, + 4 to 6, + and 9, + i.e. '1 2 4 5 6 9'. \end_layout @@ -2068,16 +2152,16 @@ name "subsec:Parameter/Reference-Tagging" \begin_layout Standard Parameter and reference files may be 'tagged' (i.e. - given a nickname); these tags can then be used in place of the file name - itself. + given a nickname); + these tags can then be used in place of the file name itself. A tag in \shape italic cpptraj \shape default is recognized by being bounded by brackets ('[' and ']'). - This can be particularly useful when reading in many parameter or reference - files. - For example, when reading in multiple reference structures: + This can be particularly useful when reading in many parameter or reference files. + For example, + when reading in multiple reference structures: \end_layout \begin_layout LyX-Code @@ -2109,15 +2193,15 @@ rms Open ref [open] :2-12@CA out rmsd.dat \end_layout \begin_layout Standard -This defines three reference structures and gives them tags [xray], [last], +This defines three reference structures and gives them tags [xray], + [last], and [open]. - These reference structures can then be referred to by their tags instead - of their filenames by any action that uses reference structures (in this - case the RMSD action). + These reference structures can then be referred to by their tags instead of their filenames by any action that uses reference structures (in this case the RMSD action). \end_layout \begin_layout Standard -Similarly, this can be useful when reading in multiple parameter files: +Similarly, + this can be useful when reading in multiple parameter files: \end_layout \begin_layout LyX-Code @@ -2142,12 +2226,11 @@ rms ref [tz2] !(:WAT) out rmsd.dat \begin_layout Standard This defines two parm files and gives them tags [tz2-water] and [tz2-nowater], - then reads in a trajectory associated with one, and a reference structure - associated with the other. - Note that in the 'reference' command there are two tags; the first goes - along with the 'parm' keyword and specifies what parameter file the reference - should use, the second is the tag given to the reference itself (as in - the previous example) and is referred to in the subsequent RMSD action. + then reads in a trajectory associated with one, + and a reference structure associated with the other. + Note that in the 'reference' command there are two tags; + the first goes along with the 'parm' keyword and specifies what parameter file the reference should use, + the second is the tag given to the reference itself (as in the previous example) and is referred to in the subsequent RMSD action. \end_layout \begin_layout Section @@ -2155,7 +2238,8 @@ Variables and Control Structures \end_layout \begin_layout Standard -As of version 18, CPPTRAJ has limited support for +As of version 18, + CPPTRAJ has limited support for \begin_inset Quotes eld \end_inset @@ -2164,10 +2248,8 @@ script \end_inset variables and 'for' loops. - Script variables are referred to by a dollar sign ('$') prefix and are - replaced when they are processed. - These are stored in the master data set list like other data and are assigned - the type + Script variables are referred to by a dollar sign ('$') prefix and are replaced when they are processed. + These are stored in the master data set list like other data and are assigned the type \begin_inset Quotes eld \end_inset @@ -2178,11 +2260,12 @@ string variable . \series bold -Note that to use script variables in CPPTRAJ input that is inside another - script (e.g. - a BASH script), they must be escaped with the ' +Note that to use script variables in CPPTRAJ input that is inside another script (e.g. + a BASH script), + they must be escaped with the ' \backslash ' character, + \series default e.g. \end_layout @@ -2214,9 +2297,7 @@ EOF \end_layout \begin_layout Standard -Note that regular CPPTRAJ 1D Data Sets that contain a single value can be - used as script variables (if the Data Set contains more than 1 value only - the first value will be used). +Note that regular CPPTRAJ 1D Data Sets that contain a single value can be used as script variables (if the Data Set contains more than 1 value only the first value will be used). \end_layout \begin_layout Standard @@ -2354,15 +2435,21 @@ for { {atoms|residues|molecules|molfirstres|mollastres} \end_layout \begin_layout LyX-Code - END KEYWORD: 'done' + END KEYWORD: + 'done' \end_layout \begin_layout LyX-Code - Available 'end OP' : '<' '>' '<=' '>=' + Available 'end OP' : + '<' '>' '<=' '>=' \end_layout \begin_layout LyX-Code - Available 'increment OP' : '++', '--', '+=', '-=' + Available 'increment OP' : + '++', + '--', + '+=', + '-=' \end_layout \begin_deeper @@ -2379,9 +2466,8 @@ inmask \begin_inset space ~ \end_inset - Loop over atoms/residues/molecules/first residue in molecules/last - residue in molecules selected by the given mask expression, set as script - variable + Loop over atoms/residues/molecules/first residue in molecules/last residue in molecules selected by the given mask expression, + set as script variable \series bold \series default @@ -2495,8 +2581,8 @@ blocksize \end_layout \begin_layout Description -[cumulative] Instead of blocks of fixed size, use blocks of increasing size - incremented by blocksize. +[cumulative] Instead of blocks of fixed size, + use blocks of increasing size incremented by blocksize. \end_layout \begin_deeper @@ -2505,8 +2591,8 @@ blocksize \begin_inset space ~ \end_inset -<#>] When cumulative, the size of the first block (default is first data - set element). +<#>] When cumulative, + the size of the first block (default is first data set element). \end_layout \end_deeper @@ -2528,11 +2614,13 @@ OP>[] Loop over integer script variable \series bold \series default -, optionally ending at +, + optionally ending at \series bold \series default -, increment by +, + increment by \series bold \series default @@ -2548,8 +2636,7 @@ Data Sets Created (datasetblocks loops): \begin_inset space \space{} \end_inset -idx> (Data set blocks only) Data set block of blocksize starting at . +idx> (Data set blocks only) Data set block of blocksize starting at . \end_layout \begin_layout Description @@ -2557,17 +2644,17 @@ idx> (Data set blocks only) Data set block of blocksize starting at (Cumulative data set blocks only) Data set block starting at firstblock - and ending at . +idx> (Cumulative data set blocks only) Data set block starting at firstblock and ending at . \end_layout \end_deeper \begin_layout Standard -Create a for loop using one or more mask expressions, integers, etc. +Create a for loop using one or more mask expressions, + integers, + etc. Loops can be nested inside each other. - Integer loops may be used without an end condition, but in that case at - least one descriptor in the loop should have an end condition or refer - to a mask. + Integer loops may be used without an end condition, + but in that case at least one descriptor in the loop should have an end condition or refer to a mask. Loops are ended by the \series bold done @@ -2578,7 +2665,8 @@ done \begin_layout Standard Note that non-integer variables (e.g. - 'inmask' loops) are NOT incremented after the final loop iteration, i.e. + 'inmask' loops) are NOT incremented after the final loop iteration, + i.e. these loop variables always retain their final value. \end_layout @@ -2599,10 +2687,9 @@ done \end_layout \begin_layout Standard -This loops over all atoms in the mask expression ':1-3@CA' (all atoms named - CA in residues 1 to 3) and creates a variable named 'i' that starts from - 1 and is incremented by 1 each iteration. - Inside the loop, the mask selection is referred to by +This loops over all atoms in the mask expression ':1-3@CA' (all atoms named CA in residues 1 to 3) and creates a variable named 'i' that starts from 1 and is incremented by 1 each iteration. + Inside the loop, + the mask selection is referred to by \series bold $A0 \series default @@ -2671,7 +2758,9 @@ set { | \end_layout \begin_layout LyX-Code - Available : '=', '+=' + Available : + '=', + '+=' \end_layout \begin_deeper @@ -2708,10 +2797,9 @@ inmask \begin_inset space ~ \end_inset - Set/append a script variable to/by the total number of atoms/residues/mol -ecules in, a range expression of selected atom #s/residue #s/original residue - #s/molecule #s in, or the total charge/mass of atoms selected by the given - mask expression. + Set/append a script variable to/by the total number of atoms/residues/molecules in, + a range expression of selected atom #s/residue #s/original residue #s/molecule #s in, + or the total charge/mass of atoms selected by the given mask expression. \end_layout \begin_deeper @@ -2753,8 +2841,7 @@ parmindex \begin_inset space ~ \end_inset -trajinframes Set/append a script variable to/by the total number of frames - in trajectories currently loaded by +trajinframes Set/append a script variable to/by the total number of frames in trajectories currently loaded by \series bold \emph on trajin @@ -2766,12 +2853,13 @@ trajin \end_deeper \begin_layout Standard Set ( = '=') or append ( = '+=') a script variable. - Script variables are character strings, and are referred to in CPPTRAJ - input by using a dollar sign '$' prefix. + Script variables are character strings, + and are referred to in CPPTRAJ input by using a dollar sign '$' prefix. \end_layout \begin_layout Standard -For example, the following input will load files my.parm7 and my.rst7: +For example, + the following input will load files my.parm7 and my.rst7: \end_layout \begin_layout LyX-Code @@ -2787,8 +2875,8 @@ trajin $PREFIX.rst7 \end_layout \begin_layout Standard -For example, the following input will print info for the last 10 atoms in - a topology to 'last10.dat': +For example, + the following input will print info for the last 10 atoms in a topology to 'last10.dat': \end_layout \begin_layout LyX-Code @@ -2816,7 +2904,8 @@ The following input will put a range of residues selected by :LYS: \end_layout \begin_layout LyX-Code - Using topology: FtuFabI.NAD.TCL.parm7 + Using topology: + FtuFabI.NAD.TCL.parm7 \end_layout \begin_layout LyX-Code @@ -2832,9 +2921,10 @@ show [ ...] \end_layout \begin_layout Standard -If no variable names specified, show all current script variables and their - values. - Otherwise, show the values of the specified script variables. +If no variable names specified, + show all current script variables and their values. + Otherwise, + show the values of the specified script variables. \end_layout \begin_layout Section @@ -2846,19 +2936,19 @@ In \shape italic cpptraj \shape default -, Actions and Analyses can generate one or more data sets which are available - for further processing. - For example, the +, + Actions and Analyses can generate one or more data sets which are available for further processing. + For example, + the \series bold \shape italic distance \series default \shape default command creates a data set containing distances vs time. - The data set can be named by the user simply by specifying a non-keyword - string as an additional argument. - If no name is given, a default one will be generated based on the action - name and data set number. + The data set can be named by the user simply by specifying a non-keyword string as an additional argument. + If no name is given, + a default one will be generated based on the action name and data set number. For example: \end_layout @@ -2876,7 +2966,8 @@ d1-2 \end_inset . - If a name is not specified, e.g.: + If a name is not specified, + e.g.: \end_layout \begin_layout LyX-Code @@ -2896,7 +2987,8 @@ Dis_00000 \end_layout \begin_layout Standard -Data files are created automatically by most commands, usually via the +Data files are created automatically by most commands, + usually via the \begin_inset Quotes eld \end_inset @@ -2937,34 +3029,38 @@ readdata \begin_inset CommandInset ref LatexCommand ref reference "tab:cpptraj-DataFile-formats" +nolink "false" \end_inset -, although it cannot write in all formats. - In addition, a data set must be valid for the data file format. - For example, 3D data (such as a grid) can be written to an OpenDX format - file but not a Grace format file. +, + although it cannot write in all formats. + In addition, + a data set must be valid for the data file format. + For example, + 3D data (such as a grid) can be written to an OpenDX format file but not a Grace format file. \end_layout \begin_layout Standard -The default file format is called 'Standard', which simply has data in columns, +The default file format is called 'Standard', + which simply has data in columns, like \shape italic ptraj \shape default -, although multiple data sets can be directed to the same output file. - The format of a file can be changed either by specifying a recognized keyword - (either on the command line itself or later via a 'datafile' command) or - by giving the file an extension corresponding to te format, so 'filename.agr' - will output in Grace format, and 'filename.gnu' will output in Gnuplot contour, +, + although multiple data sets can be directed to the same output file. + The format of a file can be changed either by specifying a recognized keyword (either on the command line itself or later via a 'datafile' command) or by giving the file an extension corresponding to te format, + so 'filename.agr' will output in Grace format, + and 'filename.gnu' will output in Gnuplot contour, and so on. - The xmgrace/gnuplot output is particularly nice for the secstruct sumout - and rmsd perresout files. + The xmgrace/gnuplot output is particularly nice for the secstruct sumout and rmsd perresout files. Additional options for data files can be found in \begin_inset CommandInset ref LatexCommand vref reference "sec:Datafile-Commands" +nolink "false" \end_inset @@ -2980,9 +3076,9 @@ out \begin_inset Quotes erd \end_inset - keyword will allow data sets from separate commands to be written into - the same file. - For example, the commands: + keyword will allow data sets from separate commands to be written into the same file. + For example, + the commands: \end_layout \begin_layout LyX-Code @@ -3026,12 +3122,14 @@ phipsi.dat \end_layout \begin_layout Standard -Note that when reading the Amber Prep and Amber OFF Library formats, a COORDS - data set will be created for each unit present in these files. +Note that when reading the Amber Prep and Amber OFF Library formats, + a COORDS data set will be created for each unit present in these files. \end_layout \begin_layout Standard \begin_inset Float table +placement document +alignment document wide false sideways false status open @@ -3039,7 +3137,7 @@ status open \begin_layout Plain Layout \align center \begin_inset Tabular - + @@ -3135,7 +3233,9 @@ dat \begin_inset Text \begin_layout Plain Layout -1D, 2D, 3D +1D, + 2D, + 3D \end_layout \end_inset @@ -3164,7 +3264,8 @@ Grace \begin_inset Text \begin_layout Plain Layout -.agr, .xmgr +.agr, + .xmgr \end_layout \end_inset @@ -3229,7 +3330,8 @@ gnu \begin_inset Text \begin_layout Plain Layout -1D, 2D +1D, + 2D \end_layout \end_inset @@ -3258,7 +3360,8 @@ Xplor \begin_inset Text \begin_layout Plain Layout -.xplor, .grid +.xplor, + .grid \end_layout \end_inset @@ -3426,7 +3529,8 @@ mdout \begin_inset Text \begin_layout Plain Layout -Energy information, Read Only +Energy information, + Read Only \end_layout \end_inset @@ -3849,7 +3953,8 @@ charmmout \begin_inset Text \begin_layout Plain Layout -Energy information, Read Only +Energy information, + Read Only \end_layout \end_inset @@ -4044,7 +4149,7 @@ Read Only - + \begin_inset Text \begin_layout Plain Layout @@ -4053,11 +4158,239 @@ Amber OFF Library File \end_inset + +\begin_inset Text + +\begin_layout Plain Layout +.off, + .lib +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +off,lib +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +COORDS +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Read Only +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Amber Force Field +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +.parm +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +amberff +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Parameters +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Read Only +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Amber Force Mod +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +.frcmod +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +frcmod +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Parameters +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Read Only +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Amber leaprc File +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +.leaprc +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +leaprc +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Parameters, + COORDS +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Read Only +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Numpy array +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +.npy +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +numpy +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +COORDS +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Read Only +\end_layout + +\end_inset + + + \begin_inset Text \begin_layout Plain Layout -.off, .lib +Topology/Coordinates \end_layout \end_inset @@ -4066,7 +4399,16 @@ Amber OFF Library File \begin_inset Text \begin_layout Plain Layout -off,lib +Various +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +coords \end_layout \end_inset @@ -4151,8 +4493,10 @@ entire \series bold : + \series default - The data set name, usually specified in the action (e.g. + The data set name, + usually specified in the action (e.g. in 'distance d0 @1 @2' the data set name is \begin_inset Quotes eld \end_inset @@ -4168,16 +4512,18 @@ d0 \series bold : + \series default - Optional; this is set for certain data sets internally in order to easily - select subsets of data. + Optional; + this is set for certain data sets internally in order to easily select subsets of data. \series bold The brackets are required \series default . - For example, when using 'hbond series', both solute-solute and solute-solvent - hydrogen bond time series may be generated. + For example, + when using 'hbond series', + both solute-solute and solute-solvent hydrogen bond time series may be generated. To select all solute-solute hydrogen bonds one would use the aspect \begin_inset Quotes eld \end_inset @@ -4186,7 +4532,8 @@ The brackets are required \begin_inset Quotes erd \end_inset -; to select solute-solvent hydrogen bonds the aspect +; + to select solute-solvent hydrogen bonds the aspect \begin_inset Quotes eld \end_inset @@ -4202,16 +4549,20 @@ The brackets are required \series bold : + \series default - Optional; for actions that generate many data sets (such as 'rmsd perres') - an index is used. - Depending on the action, the index may correspond to atom #s, residue #s, + Optional; + for actions that generate many data sets (such as 'rmsd perres') an index is used. + Depending on the action, + the index may correspond to atom #s, + residue #s, etc. A number range (comma and/or dash separated) may be used. \end_layout \begin_layout Standard -For example: to select all data sets with aspect +For example: + to select all data sets with aspect \begin_inset Quotes eld \end_inset @@ -4235,7 +4586,8 @@ To select all data sets with aspect \begin_inset Quotes erd \end_inset - with any name, indices 1 and 3: + with any name, + indices 1 and 3: \end_layout \begin_layout LyX-Code @@ -4243,7 +4595,8 @@ To select all data sets with aspect \end_layout \begin_layout Standard -In ensemble mode, data set selection has additional syntax: +In ensemble mode, + data set selection has additional syntax: \end_layout \begin_layout LyX-Code @@ -4266,11 +4619,13 @@ name "subsec:cpptraj-Data-Set-Math" \end_layout \begin_layout Standard -As of version 15, +As of version 15, + \emph on cpptraj \emph default - can perform basic math operations, even on data sets (with some limitations). + can perform basic math operations, + even on data sets (with some limitations). Currently recognized operations are: \begin_inset Separator latexpar \end_inset @@ -4751,11 +5106,13 @@ E \begin_inset Quotes erd \end_inset - notation, e.g. + notation, + e.g. 1E-5 = 0.00001. The parser also recognizes PI as the number pi. Expressions can also be enclosed in parentheses. - So for example, the following expression is valid: + So for example, + the following expression is valid: \end_layout \begin_layout LyX-Code @@ -4763,12 +5120,12 @@ E \end_layout \begin_layout LyX-Code -Result: 0.879887 +Result: + 0.879887 \end_layout \begin_layout Standard -Results of numerical calculations like the above can be assigned to a variable - (essentially a data set of size 1) for use in subsequent calculations, +Results of numerical calculations like the above can be assigned to a variable (essentially a data set of size 1) for use in subsequent calculations, e.g. \end_layout @@ -4781,15 +5138,18 @@ Result stored in 'R' \end_layout \begin_layout LyX-Code -> R + 1 Result: 1.879887 +> R + 1 Result: + 1.879887 \end_layout \begin_layout Standard Data sets can be specified in expressions as well. - Currently data sets in an expression must be of the same type and only - 1D, 2D, and 3D data sets are supported. + Currently data sets in an expression must be of the same type and only 1D, + 2D, + and 3D data sets are supported. Functions are applied to each member of the data set. - So for example, given two 1D data sets of the same size named D0 and D1, + So for example, + given two 1D data sets of the same size named D0 and D1, the following expression: \end_layout @@ -4798,8 +5158,9 @@ Data sets can be specified in expressions as well. \end_layout \begin_layout Standard -would take the square root of each member of D0, add it to the corresponding - member of D1, and assign the result to D2. +would take the square root of each member of D0, + add it to the corresponding member of D1, + and assign the result to D2. The following table lists which operations are valid for data set types. If a type is not listed it is not supported: \begin_inset Separator latexpar @@ -4868,7 +5229,9 @@ Notes \begin_inset Text \begin_layout Plain Layout -1D (integer, double, float) +1D (integer, + double, + float) \end_layout \end_inset @@ -4915,7 +5278,11 @@ All \begin_inset Text \begin_layout Plain Layout -+, -, *, /, = ++, + -, + *, + /, + = \end_layout \end_inset @@ -4953,7 +5320,11 @@ None \begin_inset Text \begin_layout Plain Layout -+, -, /, *, = ++, + -, + /, + *, + = \end_layout \end_inset @@ -4962,7 +5333,11 @@ None \begin_inset Text \begin_layout Plain Layout -sum, avg, stdev, min, max +sum, + avg, + stdev, + min, + max \end_layout \end_inset @@ -4991,7 +5366,11 @@ sum, avg, stdev, min, max \begin_inset Text \begin_layout Plain Layout -+, -, /, *, = ++, + -, + /, + *, + = \end_layout \end_inset @@ -5000,7 +5379,11 @@ sum, avg, stdev, min, max \begin_inset Text \begin_layout Plain Layout -sum, avg, stdev, min, max +sum, + avg, + stdev, + min, + max \end_layout \end_inset @@ -5035,8 +5418,8 @@ name "sec:Datafile-Commands" \begin_layout Standard Data file output can be handled multiple ways in cpptraj. - Output data files can be created by Actions/Analyses/Commands, or can be - explicitly created with + Output data files can be created by Actions/Analyses/Commands, + or can be explicitly created with \series bold \emph on writedata @@ -5046,6 +5429,7 @@ writedata \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_writedata" +nolink "false" \end_inset @@ -5059,6 +5443,7 @@ create \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_create" +nolink "false" \end_inset @@ -5073,6 +5458,7 @@ readdata \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_readdata" +nolink "false" \end_inset @@ -5080,12 +5466,14 @@ reference "subsec:cpptraj_readdata" \end_layout \begin_layout Standard -In general, data files which have been declared with an +In general, + data files which have been declared with an \series bold 'out' \series default keyword will recognize data file write keywords on the same command line. - For example, the + For example, + the \series bold 'time' \series default @@ -5103,10 +5491,8 @@ distance d0 :1 :2 out d0.agr time 0.001 \end_layout \begin_layout Standard -The data file format can be changed from standard implicitly by using specific - filename extensions or keywords. - If the extension is not recognized or no keyword is give the default format - is 'Standard'. +The data file format can be changed from standard implicitly by using specific filename extensions or keywords. + If the extension is not recognized or no keyword is give the default format is 'Standard'. Keywords and extensions for data file formats recognized by \shape italic cpptraj @@ -5115,12 +5501,12 @@ cpptraj \begin_inset CommandInset ref LatexCommand ref reference "tab:cpptraj-DataFile-formats" +nolink "false" \end_inset . - Note that the use of certain options may be restricted for certain data - file formats. + Note that the use of certain options may be restricted for certain data file formats. These options can also be passed to data files via the \series bold \emph on @@ -5131,6 +5517,7 @@ datafile \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_datafile_command" +nolink "false" \end_inset @@ -5181,8 +5568,7 @@ zlabel} - -\begin_inset Text -\begin_layout Plain Layout -Transform a COORDS set in one of several ways. + \end_layout +\begin_layout Subsection +build +\begin_inset CommandInset label +LatexCommand label +name "subsec:cpptraj-build" + \end_inset - - - - -\begin_inset Text -\begin_layout Plain Layout -createcrd + \end_layout -\end_inset - - -\begin_inset Text +\begin_layout LyX-Code +build [name ] {crdset |} [{frame <#>|doassembly}] +\end_layout -\begin_layout Plain Layout -(Action) Create a COORDS set during a Run. +\begin_layout LyX-Code + [nowat [watermask ] [noh] \end_layout -\end_inset - - - - -\begin_inset Text +\begin_layout LyX-Code + [keepaltloc {|highestocc}] +\end_layout -\begin_layout Plain Layout -emin +\begin_layout LyX-Code + [stripmask ] \end_layout -\end_inset - - -\begin_inset Text +\begin_layout LyX-Code + [title ] [verbose <#>] [keepmissingatoms] [nofixorder] +\end_layout -\begin_layout Plain Layout -Run simple energy minimization on a frame of a COORDS set. +\begin_layout LyX-Code + [parmout <topology file>] [crdout <coord file>] [simplecheck] \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + [reportfile <check file>] [flexiblewater] +\end_layout -\begin_layout Plain Layout -extendedcomp +\begin_layout LyX-Code + [gb {bondi|amber6|mbondi|pbamber|mbondi2|parse|mbondi3}] \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\begin_deeper +\begin_layout Standard +LJ 12-6-4 options: +\end_layout -\begin_layout Plain Layout -Calculate extended comparison similarity values for each frame in COORDS - set. +\end_deeper +\begin_layout LyX-Code + [lj1264 [lj1264mask <mask>] [tunfactor <fac>] [c4file <c4file>] [polfile <polfile>] \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + [lj1264solvent <solvent>]] +\end_layout -\begin_layout Plain Layout -graft +\begin_deeper +\begin_layout Standard +Atom Scan direction: \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\end_deeper +\begin_layout LyX-Code + [atomscandir {f|b}] +\end_layout -\begin_layout Plain Layout -Graft part of one COORDS set onto another COORDS set. +\begin_deeper +\begin_layout Standard +Residue Templates and Parameters to use: \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\end_deeper +\begin_layout LyX-Code + [{lib <template setname>} ...] +\end_layout -\begin_layout Plain Layout -loadcrd +\begin_layout LyX-Code + [{parmset <parameter setname>} ...] \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\begin_deeper +\begin_layout Standard +Solvation/box: +\end_layout -\begin_layout Plain Layout -Create or append to a COORDS set from a file. +\end_deeper +\begin_layout LyX-Code + [{{solvatebox|solvateoct} {buffer <buffer> | bufx <bufx> bufy <bufy> bufz <bufz> | \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + nsolvent <#>} +\end_layout -\begin_layout Plain Layout -loadtraj +\begin_layout LyX-Code + solventbox <unit> [closeness <closeness>] [{iso|aniso}] [nocenter] | \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + setbox [{buffer <buffer> | bufx <bufx> bufy <bufy> bufz <bufz>}]}] +\end_layout -\begin_layout Plain Layout -Create special COORDS set where frames remain on disk. +\begin_deeper +\begin_layout Standard +Adding ions: \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\end_deeper +\begin_layout LyX-Code + [addionsrand ion1 <name1> nion1 <num1> [ion2 <name2> nion2 <num2>] +\end_layout -\begin_layout Plain Layout -permutedihedrals +\begin_layout LyX-Code + [minsep <dist>] [ionseed <seed>]] \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\begin_deeper +\begin_layout Standard -\begin_layout Plain Layout -Rotate specified dihedral(s) in given COORDS set by specific interval or - to random values. +\series bold +\emph on +prepareforleap +\series default +\emph default + options: \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\end_deeper +\begin_layout LyX-Code + [{nohisdetect | +\end_layout -\begin_layout Plain Layout -prepareforleap +\begin_layout LyX-Code + [nd1 <nd1>] [ne2 <ne2] [hisname <his>] [hiename <hie>] \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + [hidname <hid>] [hipname <hip]} [defaulthis <default>]] +\end_layout -\begin_layout Plain Layout -Prepare a structure (usually loaded from a PDB) for processing with LEaP - from Amber. +\begin_layout LyX-Code + [{nodisulfides | \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + existingdisulfides | +\end_layout -\begin_layout Plain Layout -reference +\begin_layout LyX-Code + [cysmask <cysmask>] [disulfidecut <cut>] [newcysname <name>]}] \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + [{nosugars | +\end_layout -\begin_layout Plain Layout -Load a single trajectory frame as a reference. +\begin_layout LyX-Code + sugarmask <sugarmask> [noc1search] [nosplitres] \end_layout -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + [rescut <residue cutoff>] [bondoffset <offset>] +\end_layout -\begin_layout Plain Layout -rotatedihedral +\begin_layout LyX-Code + [resmapfile <file>] \end_layout -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text +\begin_layout LyX-Code + [hasglycam] [determinesugarsby {geom|name}] +\end_layout -\begin_layout Plain Layout -Rotate specified dihedral to specified value or by given increment. +\begin_layout LyX-Code + }] \end_layout -\end_inset +\begin_deeper +\begin_layout Description +[name +\begin_inset space ~ +\end_inset + +<OUTPUT +\begin_inset space ~ +\end_inset + +COORDS>] Optional name of the output COORDS set to create. + If not specified the input structure will be altered. +\end_layout + +\begin_layout Description +{crdset +\begin_inset space ~ +\end_inset + +<COORDS +\begin_inset space ~ +\end_inset + +set>|<file>} REQUIRED. + Name of the input COORDS set to build, + or name of the input file to build directly. + The input +\series bold +<file> +\series default + if specified must be a format that contains some topology information (like atom names and residue numbers). +\end_layout + +\begin_layout Description +[{frame +\begin_inset space ~ +\end_inset + +<#>|doassembly}] If the input structure contains multiple frames/models, + specify the one to use with +\series bold +frame +\series default +, + or if the frames/models are part of an assembly +\series bold +doassembly +\series default + will put them all into a single output structure. +\end_layout + +\begin_layout Description +[nowat] Remove any input residues identified as solvent (by watermask). +\end_layout + +\begin_deeper +\begin_layout Description +[watermask +\begin_inset space ~ +\end_inset + +<watermask>] Mask for identifying input residues as solvent; + default +\begin_inset Quotes eld +\end_inset + +:HOH +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Description +[noh] Remove any input atoms identified as hydrogen. +\end_layout + +\begin_layout Description +[keepaltloc +\begin_inset space ~ +\end_inset + +{<alt +\begin_inset space ~ +\end_inset + +loc +\begin_inset space ~ +\end_inset + +ID>|highestocc}] When input atoms have alternate location specifiers, + specify how to choose. + If +\series bold +highestocc +\series default + is specified and input coordinates includes occupancy, + choose the atom with the highest occupancy. + Otherwise use the specified alternate location identifier. +\end_layout + +\begin_layout Description +[stripmask +\begin_inset space ~ +\end_inset + +<stripmask>] If specified, + remove input atoms selected by +\series bold +<stripmask> +\series default +. +\end_layout + +\begin_layout Description +[title +\begin_inset space ~ +\end_inset + +<title>] Optional title to give the output topology. +\end_layout + +\begin_layout Description +[verbose +\begin_inset space ~ +\end_inset + +<#>] Parameter assignment verbosity; + higher values will provide more output. +\end_layout + +\begin_layout Description +[keepmissingatoms] By default, + input atoms not found in residue templates will be removed. + If this option is specified those atoms will be kept (like LEaP). +\end_layout + +\begin_layout Description +[nofixorder] By default, + CPPTRAJ will rearrange atoms so that atoms in the same molecule are contiguous. + If this option is specified no rearrangement will occur. +\end_layout + +\begin_layout Description +[parmout +\begin_inset space ~ +\end_inset + +<topology +\begin_inset space ~ +\end_inset + +file>] Name of the output topology file. +\end_layout + +\begin_layout Description +[crdout +\begin_inset space ~ +\end_inset + +<coord +\begin_inset space ~ +\end_inset + +file>] Name of the output coordinates file. + Format can be chosen based on filename extension. +\end_layout + +\begin_layout Description +[simplecheck] (Not recommended) Do not check for overlaps or ring intersections; + only check for abnormal bond lengths. +\end_layout + +\begin_layout Description +[reportfile +\begin_inset space ~ +\end_inset + +<check +\begin_inset space ~ +\end_inset + +file>] File to write details on problems with the final structure; + if not specified write to STDOUT. +\end_layout + +\begin_layout Description +[flexiblewater] Option to turn on flexible water, + i.e. + water models with angle terms. + Note that the loaded force field must have water angle (H-O-O) parameters. +\end_layout + +\begin_layout Description +[gb +\begin_inset space ~ +\end_inset + +{bondi|amber6|mbondi|pbamber|mbondi2|parse|mbondi3}] Select with GB radii set to use. + Default is mbondi. +\end_layout + +\begin_deeper +\begin_layout Description +bondi Bondi radii. +\end_layout + +\begin_layout Description +amber6 Amber6 modified Bondi radii. +\end_layout + +\begin_layout Description +mbondi Modified Bondi radii (default). +\end_layout + +\begin_layout Description +pbamber Huo and Kollman optimized radii. +\end_layout + +\begin_layout Description +mbondi2 H(N)-modified Bondi radii. +\end_layout + +\begin_layout Description +parse PARSE radii. +\end_layout + +\begin_layout Description +mbondi3 ArgH and AspGluO modified Bondi2 radii. +\end_layout + +\end_deeper +\begin_layout Standard +LJ 12-6-4 options: +\end_layout + +\begin_layout Description +[lj1264] Option to activate LJ 12-6-4 parameters. +\end_layout + +\begin_deeper +\begin_layout Description +[lj1264mask +\begin_inset space ~ +\end_inset + +<mask>] Mask of atoms to assign LJ 12-6-4 parameters to (default +\begin_inset Quotes eld +\end_inset + +:ZN +\begin_inset Quotes erd +\end_inset + +). +\end_layout + +\begin_layout Description +[tunfactor +\begin_inset space ~ +\end_inset + +<fac>] Scaling factor to adjust interaction between two different ions (default 1.0). +\end_layout + +\begin_layout Description +[c4file +\begin_inset space ~ +\end_inset + +<c4file>] File containing C4 parameters for each element. + If not specified, + use default parameters for whatever solvent model is in use. +\end_layout + +\begin_layout Description +[polfile +\begin_inset space ~ +\end_inset + +<polfile>] File containing polarizabilities for each atom type. + Default is '$AMBERHOME/dat/leap/parm/lj_1264_pol.dat'. +\end_layout + +\begin_layout Description +[lj1264solvent +\begin_inset space ~ +\end_inset + +<solvent>]] Name of water box unit containing water model to set up for. + If not specified, + 'build' will try to guess based on the specified solvent box. +\end_layout + +\begin_deeper +\begin_layout Description +TIP3PBOX TIP3P water model. +\end_layout + +\begin_layout Description +TIP4PEWBOX TIP4P Ewald water model. +\end_layout + +\begin_layout Description +SPCBOX SPC Ewald water model. +\end_layout + +\begin_layout Description +OPC3BOX OPC 3 point water model. +\end_layout + +\begin_layout Description +OPCBOX OPC 4 point water model. +\end_layout + +\begin_layout Description +FB3BOX FB3 water model. +\end_layout + +\begin_layout Description +FB4BOX FB4 water model. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Standard +Atom Scan direction: +\end_layout + +\begin_layout Description +[atomscandir +\begin_inset space ~ +\end_inset + +{f|b}] Mostly intended for debugging when compared to LEaP. + LEaP generates bond/angle/dihedral lists within residues differently depending on where the residue was read from. + For PDBs the scanning goes from back to front (' +\series bold +b +\series default +'), + while for Mol2s the scanning is from front to back (' +\series bold +f +\series default +'). + In CPPTRAJ the default scan direction is back to front since the assumption is that most systems built with LEaP have been read in from PDB files. +\end_layout + +\begin_layout Standard +Residue templates and Parameters to use: +\end_layout + +\begin_layout Description +[{lib +\begin_inset space ~ +\end_inset + +<template +\begin_inset space ~ +\end_inset + +setname>} +\begin_inset space ~ +\end_inset + +...] Name of residue template set(s) to use. + If not specified use all loaded templates. + Can be specified multiple times. +\end_layout + +\begin_layout Description +[{parmset +\begin_inset space ~ +\end_inset + +<parameter +\begin_inset space ~ +\end_inset + +setname>} +\begin_inset space ~ +\end_inset + +...] Name of parameters set(s) to use. + If not specified use all loaded parameters. + Can be specified multiple times. +\end_layout + +\begin_layout Standard +Solvation/box: +\end_layout + +\begin_layout Description +solvatebox|solvateoct Solvate the system in either an orthorhombic or truncated octadedral box. +\end_layout + +\begin_deeper +\begin_layout Description +buffer +\begin_inset space ~ +\end_inset + +<buffer> +\begin_inset space ~ +\end_inset + +| +\begin_inset space ~ +\end_inset + +bufx +\begin_inset space ~ +\end_inset + +<bufx> +\begin_inset space ~ +\end_inset + +bufy +\begin_inset space ~ +\end_inset + +<bufy> +\begin_inset space ~ +\end_inset + +bufz +\begin_inset space ~ +\end_inset + +<bufz> Buffer distance (in Angstroms) between solute and the edge of the box. + Can either specify one uniform value or separate X Y and Z values. + The separate X Y and Z values will not work for truncated octahedrons. +\end_layout + +\begin_layout Description +nsolvent +\begin_inset space ~ +\end_inset + +<#> EXPERIMENTAL. + Instead of a buffer, + specify a target number of waters to solvate the system with. + Currently only works for orthorhombic cells (i.e. + not truncated octahedron). +\end_layout + +\end_deeper +\begin_layout Description + solventbox +\begin_inset space ~ +\end_inset + +<unit> Name of the solvent box to use (e.g. + OPCBOX, + TIP4PEWBOX, + SPCBOX etc). +\end_layout + +\begin_deeper +\begin_layout Description +[closeness +\begin_inset space ~ +\end_inset + +<closeness>] Specify how close solute and solvent are allowed to get (in Angstroms). + Default is 1.0. +\end_layout + +\begin_layout Description +[{iso|aniso}] Specify if solute should be treated as isotropic (centered and aligned along principal axes) before solvating or not. + Note that +\series bold +solvatebox +\series default + is default +\series bold +aniso +\series default +, + while +\series bold +solvateoct +\series default + is default +\series bold +iso +\series default +. +\end_layout + +\begin_layout Description +[nocenter] If specified, + do not center system in the center of the solvent box after solvating. +\end_layout + +\end_deeper +\begin_layout Description +setbox +\begin_inset space ~ +\end_inset + +[{buffer +\begin_inset space ~ +\end_inset + +<buffer> +\begin_inset space ~ +\end_inset + +| +\begin_inset space ~ +\end_inset + +bufx +\begin_inset space ~ +\end_inset + +<bufx> +\begin_inset space ~ +\end_inset + +bufy +\begin_inset space ~ +\end_inset + +<bufy> +\begin_inset space ~ +\end_inset + +bufz +\begin_inset space ~ +\end_inset + +<bufz>}] If this is specified, + do not solvate, + just create an orthorhombic box with the given buffer. +\end_layout + +\begin_layout Standard +Adding ions: +\end_layout + +\begin_layout Description +addionsrand Add specified number of ions to the system. +\end_layout + +\begin_deeper +\begin_layout Description +ion1 +\begin_inset space ~ +\end_inset + +<name1> +\begin_inset space ~ +\end_inset + +nion1 +\begin_inset space ~ +\end_inset + +<num1> Residue name of the first ion to use along with the number of ions to add. + If a number of 0 is specified a number of ions required to neutralize the system will be added (if the system charge and ion charges are opposite). +\end_layout + +\begin_layout Description +[ion2 +\begin_inset space ~ +\end_inset + +<name2> +\begin_inset space ~ +\end_inset + +nion2 +\begin_inset space ~ +\end_inset + +<num2>] Optional residue name of second ion to use along with number of ions to add. + If a number of 0 is specified a number of ions required to neutralize the system will be added, + factoring in ions added by +\series bold +ion1 +\series default + (and again if the system charge and ion charges are opposite). +\end_layout + +\begin_layout Description +[minsep +\begin_inset space ~ +\end_inset + +<dist>] Minimum separation between any two ions in Angstroms. +\end_layout + +\begin_layout Description +[ionseed +\begin_inset space ~ +\end_inset + +<seed>]] Random number generator seed to use (default is system time). +\end_layout + +\end_deeper +\begin_layout Standard + +\series bold +\emph on +prepareforleap +\series default +\emph default + options: + See +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-prepareforleap" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + + +\end_layout + +\end_deeper +\begin_layout Standard +Build the full coordinates and topology of a system for MD simulations using residue templates and force field parameters, + including CMAP and LJ 12-6-4 parameters. + Also includes the ability to add explicit solvent and ions, + including the ability to solvate with a target number of water molecules. + This command effectively includes ` +\series bold +\emph on +prepareforleap +\series default +\emph default +`, + ` +\series bold +\emph on +checkstructure +\series default +\emph default +`, + and ` +\series bold +\emph on +fixatomorder +\series default +\emph default +` functionality. + If the +\series bold +'doassembly' +\series default + keyword is specified it can create macromolecular assemblies from PDBs with multiple models. + The build procedure is similar to that of LEaP, + but CPPTRAJ's build tends to be faster and more robust, + particularly for large systems and/or system containing CMAP terms. + Note that since LEaP uses an imprecise value of PI compared to CPPTRAJ/sander/pmemd, + the topologies produced by CPPTRAJ will have slight differences in any terms involving PI (e.g. + angles, + dihedrals, + etc). + For 1:1 direct comparison to LEaP topologies, + CPPTRAJ can be compiled using LEaP's value of PI by configuring with the '-leappi' configure flag, + which activates the CPPTRAJ_USE_LEAP_PI compiler define. + Note also that CPPTRAJ retains PDB information (chain ID, + original residue number, + Bfactor/Occupancy etc) which is printed to the output Topology. + The parameter files used are also printed to the output Topology in the FORCE_FIELD_TYPE section. +\end_layout + +\begin_layout Standard +The output from the +\series bold +\emph on +build +\series default +\emph default + command tends to be more verbose than LEaP and is grouped into several phases: +\end_layout + +\begin_layout Enumerate +Input coordinates details and general parameters. + This is where the input coordinates will be cleaned up if needed (similar to +\series bold +\emph on +prepareforleap +\series default +\emph default +, + see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-prepareforleap" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +). +\end_layout + +\begin_layout Enumerate +Getting templates and parameters. + If no templates/parameters were specified, + all available templates and parameters will be used. + If multiple parameter sets are available they will be combined, + with later parameter sets having priority over earlier parameter sets. +\end_layout + +\begin_layout Enumerate +Structure preparation. + This is where histidine protonation states will be determined (if hydrogens are present), + disulfide bonds will be searched for, + and sugars will be prepared (see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-prepareforleap" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +). +\end_layout + +\begin_layout Enumerate +Match residues to templates and build missing atoms. + Note that unlike LEaP, + if an atom name is not recognized within a residue that has a template, + that atom will be ignored and built back in using the template unless +\series bold +keepmissingatoms +\series default + is specified. + After all atoms are built and linked, + CPPTRAJ will ensure that atoms within molecules are contiguous (like +\series bold +\emph on +fixatomorder +\series default +\emph default +, + see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-fixatomorder" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +) unless +\series bold +nofixorder +\series default + is specified. +\end_layout + +\begin_layout Enumerate +Solvate/add ions. + If +\series bold +solvatebox +\series default +/ +\series bold +solvateoct +\series default + and optionally +\series bold +addionsrand +\series default + is specified, + solvent/ions will be added to the system. + Note that the neutralization argument (i.e. + number of ions equal to zero) can be specified for either ion1, + ion2, + or both. + Note that currently CPPTRAJ does not support adding ions if no solvent has been added. +\end_layout + +\begin_layout Enumerate +Parameter assignment. + Here parameters will be assigned based on the atom types in templates. + The gb keyword can be used to pick the GB radii set used. + The lj1264 keyword and associated keywords can be used to add Lennard-Jones C coefficients if the loaded force field supports them. +\end_layout + +\begin_layout Enumerate +Structure check. + Here the final structure will be checked for long bonds, + overlaps, + and ring intersections (like the +\series bold +\emph on +checkstructure +\series default +\emph default + Action, + see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-check" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +). + CPPTRAJ will also check if there were missing residues and for problems with the overall system charge. + Problems can be redirected to another file with the +\series bold +reportfile +\series default + keyword, + otherwise they will be printed to the standard output. +\end_layout + +\begin_layout Enumerate +File output. + If parmout/crdout were specified, + prints details on the file writes. +\end_layout + +\begin_layout Enumerate +Timing data. + Will print detailed timing data for each phase. +\end_layout + +\begin_layout Subsubsection* +Example - Solvate and add ions, + system charge not known a priori +\end_layout + +\begin_layout Standard +This example loads a PDB as a COORDS data set, + then builds it and generates a topology and restart file. + Solvent is added with a 10 Angstrom buffer, + and enough Na+ or Cl- ions are added to neutralize the system depending on what the solute charge is. +\end_layout + +\begin_layout LyX-Code +source leaprc.protein.ff19SB +\end_layout + +\begin_layout LyX-Code +source leaprc.water.opc +\end_layout + +\begin_layout LyX-Code +readdata 6g37.pdb as coords name MyMol +\end_layout + +\begin_layout LyX-Code +build crdset MyMol name Out title 6g37 +\backslash + +\end_layout + +\begin_layout LyX-Code + parmout cpptraj.parm7 crdout cpptraj.rst7 +\backslash + +\end_layout + +\begin_layout LyX-Code + solvateoct solventbox TIP3PBOX buffer 10.0 +\backslash + +\end_layout + +\begin_layout LyX-Code + addionsrand ion1 Na+ nion1 0 ion2 Cl- nion2 0 +\end_layout + +\begin_layout Subsection +sequence +\begin_inset CommandInset label +LatexCommand label +name "subsec:cpptraj-sequence" + +\end_inset + + +\end_layout + +\begin_layout LyX-Code +sequence name <output set name> <unit0> <unit1> ... + [verbose <#>] +\end_layout + +\begin_layout LyX-Code + [gb {bondi|amber6|mbondi|pbamber|mbondi2|parse|mbondi3}] +\end_layout + +\begin_layout LyX-Code + [atomscandir {f|b}] +\end_layout + +\begin_layout LyX-Code + [{lib <template setname>} ...] +\end_layout + +\begin_layout LyX-Code + [{parmset <parameter setname>} ...] +\end_layout + +\begin_deeper +\begin_layout Description +name +\begin_inset space ~ +\end_inset + +<output +\begin_inset space ~ +\end_inset + +set +\begin_inset space ~ +\end_inset + +name> Name of output COORDS set. +\end_layout + +\begin_layout Description +<unit0> +\begin_inset space ~ +\end_inset + +<unit1> +\begin_inset space ~ +\end_inset + +... + Names of the residues/units to connect together in sequence. +\end_layout + +\begin_layout Description +[verbose +\begin_inset space ~ +\end_inset + +<#>] Parameter assignment verbosity; + higher values will provide more output. +\end_layout + +\begin_layout Description +[gb +\begin_inset space ~ +\end_inset + +{bondi|amber6|mbondi|pbamber|mbondi2|parse|mbondi3}] Select with GB radii set to use. + Default is mbondi. + See +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-build" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + + for specific details on the GB radii set keywords. +\end_layout + +\begin_layout Description +[atomscandir +\begin_inset space ~ +\end_inset + +{f|b}] Mostly intended for debugging when compared to LEaP. + See +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-build" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + + for specific details on the atom scan direction. +\end_layout + +\begin_layout Description +[{lib +\begin_inset space ~ +\end_inset + +<template +\begin_inset space ~ +\end_inset + +setname>} +\begin_inset space ~ +\end_inset + +...] Name of residue template set(s) to use. + If not specified use all loaded templates. + Can be specified multiple times. +\end_layout + +\begin_layout Description +[{parmset +\begin_inset space ~ +\end_inset + +<parameter +\begin_inset space ~ +\end_inset + +setname>} +\begin_inset space ~ +\end_inset + +...] Name of parameters set(s) to use. + If not specified use all loaded parameters. + Can be specified multiple times. +\end_layout + +\end_deeper +\begin_layout Standard +Create a single molecule from a sequence of units. + If parameter sets are loaded, + parameters will be assigned to <output set name>. + Internal coordinates are used to try to determine the correct geometry around connection sites. + The COORDS sets must have connection information set, + either from reading in an Amber OFF library file or set manually via +\series bold +\emph on +dataset +\series default +\emph default + +\series bold +connect +\series default + (see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-datasetcmd" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +). +\end_layout + +\begin_layout Standard +For example, + the following reads in two Mol2 files as COORDS sets, + sets up connection atoms, + then creates a molecule via +\series bold +\emph on +sequence: +\end_layout + +\begin_layout LyX-Code +parm MOC.mol2 +\end_layout + +\begin_layout LyX-Code +loadcrd MOC.mol2 parm MOC.mol2 name MOC +\end_layout + +\begin_layout LyX-Code +dataset connect MOC tailmask @O5 +\end_layout + +\begin_layout LyX-Code +parm CNALA.mol2 +\end_layout + +\begin_layout LyX-Code +loadcrd CNALA.mol2 parm CNALA.mol2 name CNALA +\end_layout + +\begin_layout LyX-Code +dataset connect CNALA headmask @N +\end_layout + +\begin_layout LyX-Code +sequence MOC CNALA name Mol +\end_layout + +\begin_layout LyX-Code +crdout Mol Mol.mol2 +\end_layout + +\begin_layout Subsection +source +\begin_inset CommandInset label +LatexCommand label +name "subsec:cpptraj-source" + +\end_inset + + +\end_layout + +\begin_layout LyX-Code +source <filename> +\end_layout + +\begin_layout Standard +Process <filename> as a leaprc file, + mostly intended for loading force field parameters from Amber leaprc files. + If AMBERHOME is set CPPTRAJ will look for leaprc files in $AMBERHOME/dat/leap/cmd, + otherwise the full path must be specified. +\end_layout + +\begin_layout Standard +Supported leap commands: + addatomtypes, + addpath, + addpdbatommap, + addpdbresmap, + loadamberparams, + loadamberprep, + loadmol2, + loadoff, + loadpdb, + quit, + saveamberparm, + set, + source. +\end_layout + +\begin_layout Section +Coordinates (COORDS) Data Set Commands +\begin_inset CommandInset label +LatexCommand label +name "sec:Coordinates-as-a" + +\end_inset + + +\end_layout + +\begin_layout Standard +Coordinate I/O tends to be the most time-consuming part of trajectory analysis. + In addition, + many types of analyses (for example two-dimensional RMSD and cluster analysis) require using coordinate frames multiple times. + To simplify this, + trajectory coordinates may be saved as a separate data set via the +\series bold +\shape italic +loadcrd +\series default +\shape default + command or +\series bold +\shape italic +createcrd +\series default +\shape default + action. + Any action can then be performed on the COORDS data set with the +\series bold +\shape italic +crdaction +\series default +\shape default + command. + The +\series bold +\shape italic +crdout +\series default +\shape default + command can be used to write coordinates to an output trajectory (similar to +\series bold +\shape italic +trajout +\series default +\shape default +). +\end_layout + +\begin_layout Standard +Although COORDS data sets store everything internally with single-precision, + they can still use a large amount of memory. + Because of this there is a specialized type of COORDS data set called a TRAJ data set (trajectory), + which functions exactly like a COORDS data set except all data is stored on disk. + TRAJ data sets can be created with the +\series bold +\shape italic +loadtraj +\series default +\shape default + command. + +\emph on +TRAJ data sets cannot be modified. +\end_layout + +\begin_layout Standard +There are several analyses that can be performed using COORDS data sets, + either as part of the normal analysis list or via the +\series bold +\shape italic +runanalysis +\series default +\shape default + command. + Note that while these analyses can be run on specified COORDS data sets, + if one is not specified a default COORDS data set will be created, + made up of frames from +\series bold +\shape italic +trajin +\series default +\shape default + commands. +\end_layout + +\begin_layout Standard +As an example of where this might be useful is in the calculation of atomic positional fluctuations. + Previously this required two steps: + one to generate an average structure, + then a second to rms-fit to that average structure prior to calculating the fluctuations. + This can now be done in one pass with the following input: +\end_layout + +\begin_layout LyX-Code +parm topology.parm7 +\end_layout + +\begin_layout LyX-Code +loadcrd mdcrd.nc +\end_layout + +\begin_layout LyX-Code +# Generate average structure PDB, + @CA only +\end_layout + +\begin_layout LyX-Code +crdaction mdcrd.nc average avg.pdb @CA +\end_layout + +\begin_layout LyX-Code +# Load average structure PDB as reference +\end_layout + +\begin_layout LyX-Code +parm avg.pdb +\end_layout + +\begin_layout LyX-Code +reference avg.pdb parm avg.pdb +\end_layout + +\begin_layout LyX-Code +# RMS-fit to average structure PDB +\end_layout + +\begin_layout LyX-Code +crdaction mdcrd.nc rms reference @CA +\end_layout + +\begin_layout LyX-Code +# Calculate atomic fluctuations for @CA only +\end_layout + +\begin_layout LyX-Code +crdaction mdcrd.nc atomicfluct out fluct.dat bfactor @CA +\end_layout + +\begin_layout Standard +The following COORDS data set commands are available: +\begin_inset Separator latexpar +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="18" columns="2"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top" width="25text%"> +<column alignment="center" valignment="top" width="75text%"> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Command +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset </cell> </row> <row> @@ -6728,7 +8441,287 @@ Rotate specified dihedral to specified value or by given increment. \begin_inset Text \begin_layout Plain Layout -sequence +catcrd +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Concatenate two or more COORDS sets. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +combinecrd +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Combine two or more COORDS sets. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +crdaction +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Run a single Action on a COORDS set. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +crdout +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Write a COORDS set to a file. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +crdtransform +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Transform a COORDS set in one of several ways. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +createcrd +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +(Action) Create a COORDS set during a Run. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +emin +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Run simple energy minimization on a frame of a COORDS set. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +extendedcomp +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Calculate extended comparison similarity values for each frame in COORDS set. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +graft +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Graft part of one COORDS set onto another COORDS set. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +loadcrd +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Create or append to a COORDS set from a file. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +loadtraj +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Create special COORDS set where frames remain on disk. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +permutedihedrals +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Rotate specified dihedral(s) in given COORDS set by specific interval or to random values. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +prepareforleap +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Prepare a structure (usually loaded from a PDB) for processing with LEaP from Amber. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +reference +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Load a single trajectory frame as a reference. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +rotatedihedral \end_layout \end_inset @@ -6737,7 +8730,7 @@ sequence \begin_inset Text \begin_layout Plain Layout -Create a new molecule from a sequence of COORDS sets. +Rotate specified dihedral to specified value or by given increment. \end_layout \end_inset @@ -6777,8 +8770,7 @@ zmatrix \begin_inset Text \begin_layout Plain Layout -Apply Z-matrix to a COORDS set or calculate Z-matrix for a molecule/frame - in a COORDS set. +Apply Z-matrix to a COORDS set or calculate Z-matrix for a molecule/frame in a COORDS set. \end_layout \end_inset @@ -6802,7 +8794,8 @@ catcrd <crd1> <crd2> ... \begin_deeper \begin_layout Description -<crdX> COORDS data sets to concatentate, specify 2 or more. +<crdX> COORDS data sets to concatentate, + specify 2 or more. \end_layout \begin_layout Description @@ -6817,8 +8810,8 @@ name \begin_layout Standard Concatentate two or more COORDS data sets into a single COORDS data set. The topologies must have the same number of atoms for this to work. - If the topologies differ in other ways, the topology of the first COORDS - set takes priority. + If the topologies differ in other ways, + the topology of the first COORDS set takes priority. \end_layout \begin_layout Subsection @@ -6834,9 +8827,14 @@ combinecrd <crd1> <crd2> ... \end_layout +\begin_layout LyX-Code + [nobox] [verbose <#>] +\end_layout + \begin_deeper \begin_layout Description -<crdX> COORDS data sets to combine, specify 2 or more. +<crdX> COORDS data sets to combine, + specify 2 or more. \end_layout \begin_layout Description @@ -6855,6 +8853,18 @@ combinecrd <crd1> <crd2> ... <crdname>] Name of combined COORDS data set. \end_layout +\begin_layout Description +[nobox] Remove any unit cell information from combined coordinates. +\end_layout + +\begin_layout Description +[verbose +\begin_inset space ~ +\end_inset + +<#>] Verbosity during parameter assignment. +\end_layout + \end_deeper \begin_layout Standard Combined two or more COORDS data sets into a single COORDS data set. @@ -6867,8 +8877,10 @@ not \end_layout \begin_layout Standard -For example, to load two MOL2 files as COORDS data sets, combine them, and - write them out as a single MOL2: +For example, + to load two MOL2 files as COORDS data sets, + combine them, + and write them out as a single MOL2: \end_layout \begin_layout LyX-Code @@ -6899,8 +8911,7 @@ name "subsec:cpptraj_crdaction" \end_layout \begin_layout LyX-Code -crdaction <crd set> <actioncmd> [<action args>] [crdframes <start>,<stop>,<offse -t>] +crdaction <crd set> <actioncmd> [<action args>] [crdframes <start>,<stop>,<offset>] \end_layout \begin_layout Standard @@ -6909,8 +8920,9 @@ Perform action <actioncmd> on COORDS data set <crd set>. \end_layout \begin_layout Standard -For example, to calculate RMSD for a previously created COORDS data set - named crd1 using frames 1 to the last, skipping every 10: +For example, + to calculate RMSD for a previously created COORDS data set named crd1 using frames 1 to the last, + skipping every 10: \end_layout \begin_layout LyX-Code @@ -6931,8 +8943,8 @@ Write COORDS data set <crd set> to trajectory named <filename>. \end_layout \begin_layout Standard -For example, to write frames 1 to 10 from a previously created COORDS data - set named +For example, + to write frames 1 to 10 from a previously created COORDS data set named \begin_inset Quotes eld \end_inset @@ -7001,7 +9013,8 @@ crd \begin_inset space ~ \end_inset -set>] COORDS set to create; if not specified <input crd set> will be modified. +set>] COORDS set to create; + if not specified <input crd set> will be modified. \end_layout \begin_layout Description @@ -7031,8 +9044,7 @@ rmsrefine Do iterative RMS refinement. \end_deeper \begin_layout Description -normcoords Normalize coordinates between 0.0 and 1.0 using the minimum and - maximum coordinate values. +normcoords Normalize coordinates between 0.0 and 1.0 using the minimum and maximum coordinate values. \end_layout \begin_layout Description @@ -7045,7 +9057,8 @@ trim Remove trajectory frames using extended similarity metrics. \begin_inset space ~ \end_inset -<metric>] Metric to use; default MSD. +<metric>] Metric to use; + default MSD. \end_layout \begin_layout Description @@ -7075,17 +9088,21 @@ trim Remove trajectory frames using extended similarity metrics. \begin_layout Standard Transform a COORDS set in one of several ways. Does not yet work with TRAJ data sets. - The iterative RMS refinement is similar to the procedure outlined by Klem - et al. + The iterative RMS refinement is similar to the procedure outlined by Klem et al. (J. Chem. Theory Comput. - 2022, 18, 3218−3230). + 2022, + 18, + 3218−3230). The extended similarity metrics are those defined by Racz et al. (J. Comp.-Aid. Mol. - Design, 2022, 36, 157-173). + Design, + 2022, + 36, + 157-173). \end_layout \begin_layout Subsection @@ -7093,11 +9110,12 @@ createcrd \end_layout \begin_layout Standard -This command is actually an Action that can be used to create COORDS data - sets during trajectory processing, see +This command is actually an Action that can be used to create COORDS data sets during trajectory processing, + see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_createcrd" +nolink "false" \end_inset @@ -7193,17 +9211,18 @@ crdset \begin_inset space ~ \end_inset -<setname>] If specified, create an energy per step data set. +<setname>] If specified, + create an energy per step data set. \end_layout \begin_layout Description -[nonbond] If specified, use simple nonbonded potential term in additon to - bonded terms. +[nonbond] If specified, + use simple nonbonded potential term in additon to bonded terms. \end_layout \begin_layout Description -[openmm] If specified and if CPPTRAJ was compiled with OpenMM support, use - OpenMM to calculate the forces. +[openmm] If specified and if CPPTRAJ was compiled with OpenMM support, + use OpenMM to calculate the forces. \end_layout \begin_layout Standard @@ -7304,8 +9323,9 @@ THIS COMMAND IS STILL IN DEVELOPMENT AS OF VERSION 5.0.2. \end_layout \begin_layout Standard -Perform steepest descent minimization on a frame in a COORDS set using a - very basic force field (bonds, angles, dihedrals). +Perform steepest descent minimization on a frame in a COORDS set using a very basic force field (bonds, + angles, + dihedrals). A simple nonbonded term can be added as well if desired. \end_layout @@ -7395,13 +9415,15 @@ name> Set containing similarity values for each COORDS frame. \end_deeper \begin_layout Standard -Calculate extended comparison similarity values for each frame in a COORDS - set. +Calculate extended comparison similarity values for each frame in a COORDS set. The extended similarity metrics are those defined by Racz et al. (J. Comp.-Aid. Mol. - Design, 2022, 36, 157-173). + Design, + 2022, + 36, + 157-173). The metrics are as follows: \end_layout @@ -7667,17 +9689,15 @@ graft \end_layout \begin_layout LyX-Code -graft src <source COORDS> [srcframe <#>] [srcmask <srcmask> [srccharge <srccharg -e>]] +graft src <source COORDS> [srcframe <#>] [srcmask <srcmask> [srccharge <srccharge>]] \end_layout \begin_layout LyX-Code - tgt <target COORDS> [tgtframe <#>] [tgtmask <tgtmask> [tgtcharge <tgtcharge>] -] + tgt <target COORDS> [tgtframe <#>] [tgtmask <tgtmask> [tgtcharge <tgtcharge>]] \end_layout \begin_layout LyX-Code - {ic | [srcfitmask <srcmask>] [tgtfitmask <tgtmask>]} + {ic | [srcfitmask <srcmask>] [tgtfitmask <tgtmask>]} [verbose <#>] \end_layout \begin_layout LyX-Code @@ -7719,8 +9739,8 @@ COORDS> Source coordinates. \begin_inset space ~ \end_inset -<charge>] If trimming atoms from source, ensure sum of charges on remaining - atoms equals <charge> via scaling. +<charge>] If trimming atoms from source, + ensure sum of charges on remaining atoms equals <charge> via scaling. \end_layout \end_deeper @@ -7758,13 +9778,26 @@ COORDS> Target coordinates that will be grafted onto. \begin_inset space ~ \end_inset -<charge>] If trimming atoms from target, ensure sum of charges on remaining - atoms equals <charge> via scaling. +<charge>] If trimming atoms from target, + ensure sum of charges on remaining atoms equals <charge> via scaling. \end_layout \end_deeper \begin_layout Description [ic] Connect source and target using internal coordinates. + If source and target contain CONNECT information (see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-datasetcmd" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +), + that will be used to create a bond between source and target if a bond has not otherwise been specified. \end_layout \begin_layout Description @@ -7795,15 +9828,22 @@ name COORDS> Name of output COORDS set containing source grafted onto target. \end_layout +\begin_layout Description +[verbose +\begin_inset space ~ +\end_inset + +<#>] Verbosity during parameter assignment. +\end_layout + \begin_layout Description [bond \begin_inset space ~ \end_inset -<tgt>,<src>] Create a bond between target atom selected by <tgt> and source - atoms selected by <src> in the final structure. - Must be specified only once if connecting via internal coordinates, otherwise - may be specified multiple times. +<tgt>,<src>] Create a bond between target atom selected by <tgt> and source atoms selected by <src> in the final structure. + Must be specified only once if connecting via internal coordinates, + otherwise may be specified multiple times. \end_layout \end_deeper @@ -7817,8 +9857,8 @@ srcfitmask \series bold tgtfitmask \series default - is specified, the source coordinates will be RMS best-fit onto target using - the specified atoms. + is specified, + the source coordinates will be RMS best-fit onto target using the specified atoms. Only the atoms specified by \series bold srcmask @@ -7832,10 +9872,93 @@ tgtmask \series bold bond \series default - keyword can be used to create bonds between target and source in the final - structure. - If using internal coordinates to connect the units, exactly one bond must - be specified. + keyword can be used to create bonds between target and source in the final structure. + +\end_layout + +\begin_layout Standard +If using internal coordinates to connect the units, + a bond will be created between the source and target automatically if they contain CONNECT information (see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-datasetcmd" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +). + Otherwise exactly one bond must be specified. +\end_layout + +\begin_layout Standard +Graft using RMSD and removing atoms. +\end_layout + +\begin_layout LyX-Code +readdata Tyr.mol2 as coords name TYR +\end_layout + +\begin_layout LyX-Code +readdata PRY.mol2 as coords name PRY +\end_layout + +\begin_layout LyX-Code +graft +\backslash + +\end_layout + +\begin_layout LyX-Code + tgt TYR +\backslash + +\end_layout + +\begin_layout LyX-Code + src PRY +\backslash + +\end_layout + +\begin_layout LyX-Code + name Final +\backslash + +\end_layout + +\begin_layout LyX-Code + srcfitmask @O1,C5,C6,C4,H6,H5,C7,C3,H7,H4,C2 +\backslash + +\end_layout + +\begin_layout LyX-Code + tgtfitmask @OH,CZ,CE1,CE2,HE1,HE2,CD1,CD2,HD1,HD2,CG +\backslash + +\end_layout + +\begin_layout LyX-Code + srcmask !(@1-4) +\backslash + +\end_layout + +\begin_layout LyX-Code + tgtmask @C,O,CA,HA,N,H,CB,HB2,HB3 +\backslash + +\end_layout + +\begin_layout LyX-Code + bond :1@CB,:1@C2 +\end_layout + +\begin_layout LyX-Code +crdout Final Final.graft.mol2 \end_layout \begin_layout Subsection @@ -7860,8 +9983,7 @@ loadcrd <filename> [parm <parm> | parmindex<#>] [<trajin args>] [name <name>] \begin_inset space ~ \end_inset -<parmfile/tag>] Topology filename/tag to associate with trajectory (default - first topology). +<parmfile/tag>] Topology filename/tag to associate with trajectory (default first topology). \end_layout \begin_layout Description @@ -7869,7 +9991,8 @@ loadcrd <filename> [parm <parm> | parmindex<#>] [<trajin args>] [name <name>] \begin_inset space ~ \end_inset -<#>] Index of Topology to associate with trajectory (default 0, first topology). +<#>] Index of Topology to associate with trajectory (default 0, + first topology). \end_layout \begin_layout Description @@ -7877,13 +10000,15 @@ loadcrd <filename> [parm <parm> | parmindex<#>] [<trajin args>] [name <name>] \begin_inset space ~ \end_inset -args>] Additional 'trajin' args; see +args>] Additional 'trajin' args; + see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_trajin" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -7903,21 +10028,18 @@ noprefix "false" \begin_inset space ~ \end_inset -{single|double}] Load as either a single-precision COORDS set (the default) - or a double-precision FRAMES set (which will use much more memory). +{single|double}] Load as either a single-precision COORDS set (the default) or a double-precision FRAMES set (which will use much more memory). \end_layout \end_deeper \begin_layout Standard -Immediately load trajectory <filename> as a COORDS data set named <name> - (default base name of <filename>). - If <name> is already present the coordinates will be appended to the existing - data set. +Immediately load trajectory <filename> as a COORDS data set named <name> (default base name of <filename>). + If <name> is already present the coordinates will be appended to the existing data set. \end_layout \begin_layout Standard -For example, to load frames from trajectories named 'traj1.nc' and 'traj2.nc' - into a COORDS data set named Crd1: +For example, + to load frames from trajectories named 'traj1.nc' and 'traj2.nc' into a COORDS data set named Crd1: \end_layout \begin_layout LyX-Code @@ -7953,14 +10075,15 @@ name \end_layout \begin_layout Description -[<filename>] If specified, trajectory to add to the TRAJ set. +[<filename>] If specified, + trajectory to add to the TRAJ set. \end_layout \end_deeper \begin_layout Standard This command functions in two ways. - If <filename> is not provided, all currently loaded input trajectories - (from + If <filename> is not provided, + all currently loaded input trajectories (from \series bold \shape italic trajin @@ -7969,11 +10092,11 @@ trajin commands) are added to TRAJ data set named <setname>. \series bold -Note that if the input trajectory list is cleared (via 'clear trajin') this - will invalidate the TRAJ data set. +Note that if the input trajectory list is cleared (via 'clear trajin') this will invalidate the TRAJ data set. \series default - In addition, currently all trajectories must have the same number of atoms. + In addition, + currently all trajectories must have the same number of atoms. Otherwise add trajectory <filename> to TRAJ data set <setname>. \end_layout @@ -7997,11 +10120,11 @@ permutedihedrals crdset <COORDS set> resrange <range> [{interval | random}] \end_layout \begin_layout LyX-Code - [outtraj <filename> [<outfmt>]] [crdout <output COORDS>] + {[outtraj <filename> [<outfmt>]]} [crdout <output COORDS>] \end_layout \begin_layout LyX-Code - [<dihedral types>] + [<dihedral types>] [dihtype <name>:<a0>:<a1>:<a2>:<a3>[:<offset>] ...] \end_layout \begin_layout LyX-Code @@ -8009,7 +10132,7 @@ permutedihedrals crdset <COORDS set> resrange <range> [{interval | random}] \end_layout \begin_layout LyX-Code - [rseed <rseed>] [out <# problems file> [<set name>]] + [rseed <rseed>] [out <# problems file> [<set name>]] [noimage] \end_layout \begin_layout LyX-Code @@ -8017,7 +10140,11 @@ permutedihedrals crdset <COORDS set> resrange <range> [{interval | random}] \end_layout \begin_layout LyX-Code - [backtrack <backtrack> [checkallresidues] [increment <increment>]] ] + [checkrings] [backtrack <backtrack> [checkallresidues] +\end_layout + +\begin_layout LyX-Code + [increment <increment>]] ] \end_layout \begin_layout LyX-Code @@ -8029,8 +10156,7 @@ permutedihedrals crdset <COORDS set> resrange <range> [{interval | random}] \end_layout \begin_layout LyX-Code - <dihedral types> = alpha beta gamma delta epsilon zeta nu1 nu2 h1p c2p - chin + <dihedral types> = alpha beta gamma delta epsilon zeta nu1 nu2 h1p c2p chin \end_layout \begin_layout LyX-Code @@ -8064,8 +10190,7 @@ resrange \begin_layout Description interval Rotate found dihedrals by <interval>. - This is done in an ordered fashion so that every combination of dihedral - rotations is sampled at least once. + This is done in an ordered fashion so that every combination of dihedral rotations is sampled at least once. \end_layout \begin_layout Description @@ -8110,8 +10235,34 @@ COORDS>] COORDS data set to write coordinates to. type> One or more dihedral types to search for. \end_layout +\begin_layout Description +[dihtype +\begin_inset space ~ +\end_inset + +<name>:<a0>:<a1>:<a2>:<a3>[:<offset>] Search for a custom dihedral type called <name> using atom names <a0>, + <a1>, + <a2>, + and <a3>. +\begin_inset Separator latexpar +\end_inset + + +\end_layout + +\begin_deeper +\begin_layout Standard +Offset: + -2=<a0><a1> in previous res, + -1=<a0> in previous res, + 0=All <aX> in single res, + 1=<a3> in next res, + 2=<a2><a3> in next res. +\end_layout + +\end_deeper \begin_layout Standard -Options for 'interval: +Options for 'interval': \end_layout \begin_layout Description @@ -8158,6 +10309,10 @@ file>] File to write number of problems (clashes) each frame to. name>] Number of problems data set name. \end_layout +\begin_layout Description +[noimage] Disable imaging when checking rotated structure for clashes. +\end_layout + \begin_layout Description [check] Check randomly rotated structure for clashes. \begin_inset Separator latexpar @@ -8180,7 +10335,7 @@ name>] Number of problems data set name. \begin_inset space ~ \end_inset -<cutoff>] Residue cutoff for checking for clashes (defualt 10.0 Å). +<cutoff>] Residue cutoff for checking for clashes (default 10.0 Å). \end_layout \begin_layout Description @@ -8188,8 +10343,14 @@ name>] Number of problems data set name. \begin_inset space ~ \end_inset -<max_factor>] The maximum number of total attempted rotations will be <max_facto -r> * <total # of dihedrals> (default 2). +<max_factor>] The maximum number of total attempted rotations will be <max_factor> * <total # of dihedrals> (default 2). +\end_layout + +\begin_layout Description +[checkrings] If specified, + look to see if any rings in the residue to which the dihedral being rotated belongs to have a bond running through them, + which counts as a clash. + May be slow. \end_layout \begin_layout Description @@ -8198,14 +10359,14 @@ r> * <total # of dihedrals> (default 2). \end_inset <backtrack>] (No longer recommended as of version 5.1.0). - If a clash is encountered at dihedral N and cannot be resolved, go to dihedral - N-<backtrack> to try and resolve the clash (default is no backtracking). + If a clash is encountered at dihedral N and cannot be resolved, + go to dihedral N-<backtrack> to try and resolve the clash (default is no backtracking). \end_layout \begin_deeper \begin_layout Description -[checkallresidues] If specified all residues checked for clashes, otherwise - only residues up to the currently rotated dihedral check. +[checkallresidues] If specified all residues checked for clashes, + otherwise only residues up to the currently rotated dihedral check. \end_layout \begin_layout Description @@ -8213,9 +10374,9 @@ r> * <total # of dihedrals> (default 2). \begin_inset space ~ \end_inset -<increment>] If a clash is encountered, first attempt to rotate dihedral - by increment to resolve it; if it cannot be resolved by a full rotation - the calculation will backtrack (default 1). +<increment>] If a clash is encountered, + first attempt to rotate dihedral by increment to resolve it; + if it cannot be resolved by a full rotation the calculation will backtrack (default 1). \end_layout @@ -8223,24 +10384,50 @@ r> * <total # of dihedrals> (default 2). \end_deeper \end_deeper \begin_layout Standard -Create a trajectory by rotating specified dihedrals in a structure by regular - intervals ( +Create a trajectory by rotating specified dihedrals in a structure by regular intervals ( \series bold interval \series default -), or create 1 structure by randomly rotating specified dihedrals ( +), + or create 1 structure by randomly rotating specified dihedrals ( \series bold random \series default ). + The resulting structure can be written to a file with +\series bold +outtraj +\series default + or saved to a new COORDS set with +\series bold +crdout +\series default +; + at least one output option must be specified. When randomly rotating dihedrals steric clashes will be checked if \series bold check \series default - is specified; in such cases the algorithm will attempt to resolve the clash - as best it can. - If clashes are not being resolved you can increase the number of rotation - attempts + is specified using the same algorithm used by the +\series bold +\emph on +check +\series default +\emph default + action (see +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-check" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + +); + in such cases the algorithm will attempt to resolve the clash as best it can. + If clashes are not being resolved you can increase the number of rotation attempts \family typewriter \shape italic cpptraj @@ -8254,9 +10441,8 @@ maxfactor \end_layout \begin_layout Standard -For example, to rotate all backbone dihedrals in a protein with coordinates - in a file named tz2.rst7 in -120 degree intervals and write the resulting - trajectory in Amber format to rotations.mdcrd: +For example, + to rotate all backbone dihedrals in a protein with coordinates in a file named tz2.rst7 in -120 degree intervals and write the resulting trajectory in Amber format to rotations.mdcrd: \end_layout \begin_layout LyX-Code @@ -8268,8 +10454,7 @@ permutedihedrals crdset [TZ2] interval -120 outtraj rotations.mdcrd phi psi \end_layout \begin_layout Standard -To randomly rotate backbone dihedrals for the same structure and write to - file random.mol2 in MOL2 format: +To randomly rotate backbone dihedrals for the same structure and write to file random.mol2 in MOL2 format: \end_layout \begin_layout LyX-Code @@ -8277,8 +10462,7 @@ reference tz2.rst7 [TZ2] \end_layout \begin_layout LyX-Code -permutedihedrals crdset [TZ2] random rseed 1 check maxfactor 10 phi psi - +permutedihedrals crdset [TZ2] random rseed 1 check maxfactor 10 phi psi \backslash \end_layout @@ -8289,6 +10473,13 @@ permutedihedrals crdset [TZ2] random rseed 1 check maxfactor 10 phi psi \begin_layout Subsection prepareforleap +\begin_inset CommandInset label +LatexCommand label +name "subsec:cpptraj-prepareforleap" + +\end_inset + + \end_layout \begin_layout LyX-Code @@ -8296,16 +10487,15 @@ prepareforleap crdset <coords set> [frame <#>] name <out coords set> \end_layout \begin_layout LyX-Code - [pdbout <pdbfile> [terbymol]] + [pdbout <pdbfile> [terbymol]] [problemout <file>] \end_layout \begin_layout LyX-Code - [leapunitname <unit>] [out <leap input file> [runleap - <ff file>]] + [leapunitname <unit>] [out <leap input file> [runleap <ff file>]] \end_layout \begin_layout LyX-Code - [skiperrors] + [skiperrors] [{dlparams|nodlparams}] [{bondunknown|nobondunknown}] \end_layout \begin_layout LyX-Code @@ -8345,8 +10535,7 @@ prepareforleap crdset <coords set> [frame <#>] name <out coords set> \end_layout \begin_layout LyX-Code - [cysmask <cysmask>] [disulfidecut <cut>] [newcysname - <name>]}] + [cysmask <cysmask>] [disulfidecut <cut>] [newcysname <name>]}] \end_layout \begin_layout LyX-Code @@ -8420,10 +10609,19 @@ set> Output COORDS set containing prepared topology/coordinates. \begin_deeper \begin_layout Description -[terbymol] If specified, base TER cards on molecules instead of PDB chains. +[terbymol] If specified, + base TER cards on molecules instead of PDB chains. \end_layout \end_deeper +\begin_layout Description +[problemout +\begin_inset space ~ +\end_inset + +<file>] If specified redirect found problems to <file> instead of stdout. +\end_layout + \begin_layout Description [leapunitname \begin_inset space ~ @@ -8458,8 +10656,9 @@ input \begin_inset space ~ \end_inset -file>] File containing LEaP input needed to read in the prepared system - (loadpdb, bond commands for disulfides, etc). +file>] File containing LEaP input needed to read in the prepared system (loadpdb, + bond commands for disulfides, + etc). \end_layout \begin_layout Description @@ -8471,23 +10670,53 @@ file>] File containing LEaP input needed to read in the prepared system \begin_inset space ~ \end_inset -file>] If specified, CPPTRAJ will attempt to run LEaP directly to generate - a topology and coordinates; <ff +file>] If specified, + CPPTRAJ will attempt to run LEaP directly to generate a topology and coordinates; + <ff \begin_inset space ~ \end_inset -file> should contain the appropriate 'source' commands for loading the desired - force field parameters. +file> should contain the appropriate 'source' commands for loading the desired force field parameters. Will attempt to produce topology <unit>.parm7 and coordinates <unit>.rst7. \end_layout \begin_layout Description -[skiperrors] If specified, the command will try to ignore any errors encountered. +[skiperrors] If specified, + the command will try to ignore any errors encountered. Can be useful for debugging. \end_layout \begin_layout Description -[nowat] If specified, remove waters from the system. +[{dlparams|nodlparams}] If +\series bold +'dlparams' +\series default + is specified, + try to download parameters for unknown residues (default is to not do this, + +\series bold +'nodlparams' +\series default +). +\end_layout + +\begin_layout Description +[{bondunknown|nobondunknown}] If +\series bold +'bondunknown' +\series default + is specified, + try to determine bonds to unknown residues (default is to not do this, + +\series bold +'nobondunknown' +\series default +). +\end_layout + +\begin_layout Description +[nowat] If specified, + remove waters from the system. \end_layout \begin_deeper @@ -8501,7 +10730,8 @@ file> should contain the appropriate 'source' commands for loading the desired \end_deeper \begin_layout Description -[noh] If specified, strip all hydrogen atoms from the system (recommended). +[noh] If specified, + strip all hydrogen atoms from the system (recommended). \end_layout \begin_layout Description @@ -8517,8 +10747,8 @@ loc \begin_inset space ~ \end_inset -ID>|highestocc}] LEaP cannot handle alternate atom locations, so the command - will choose location 'A' by default. +ID>|highestocc}] LEaP cannot handle alternate atom locations, + so the command will choose location 'A' by default. This can be changed to either <alt \begin_inset space ~ \end_inset @@ -8555,8 +10785,8 @@ id> or the location with the highest occupancy if \begin_inset space ~ \end_inset -<mask>] If specified, atoms in <mask> will be considered all part of one - molecule. +<mask>] If specified, + atoms in <mask> will be considered all part of one molecule. May be specified multiple times. \end_layout @@ -8565,8 +10795,8 @@ id> or the location with the highest occupancy if \begin_inset space ~ \end_inset -<mask>] If specified, determine if atoms selected in <mask> are in the same - molecule via bonds. +<mask>] If specified, + determine if atoms selected in <mask> are in the same molecule via bonds. \end_layout \begin_layout Standard @@ -8634,8 +10864,8 @@ Disulfide Handling: \end_layout \begin_layout Description -[existingdisulfides] Only handle disulfides already present; do not search - for additional disulfides. +[existingdisulfides] Only handle disulfides already present; + do not search for additional disulfides. \end_layout \begin_layout Description @@ -8651,8 +10881,7 @@ Disulfide Handling: \begin_inset space ~ \end_inset -<cut>] Sulfur to sulfur atom distance cutoff for forming a disulfide (default - 2.5 Ang). +<cut>] Sulfur to sulfur atom distance cutoff for forming a disulfide (default 2.5 Ang). \end_layout \begin_layout Description @@ -8660,8 +10889,7 @@ Disulfide Handling: \begin_inset space ~ \end_inset -<name>] Name to change cysteine residues that participate in a disulfide - bond to (default 'CYX'). +<name>] Name to change cysteine residues that participate in a disulfide bond to (default 'CYX'). \end_layout \begin_layout Standard @@ -8686,13 +10914,13 @@ resmapfile \end_layout \begin_layout Description -[noc1search] If specified, disable search for missing linkages to sugar - C1 atom bonds. +[noc1search] If specified, + disable search for missing linkages to sugar C1 atom bonds. \end_layout \begin_layout Description -[nosplitres] If specified, do not attempt to split off functional groups - from sugars into separate residues. +[nosplitres] If specified, + do not attempt to split off functional groups from sugars into separate residues. \end_layout \begin_layout Description @@ -8704,8 +10932,7 @@ resmapfile \begin_inset space ~ \end_inset -cutoff>] Initial distance cutoff (default 8 Ang.) for residue center to residue - center distance when looking for missing sugar linkages. +cutoff>] Initial distance cutoff (default 8 Ang.) for residue center to residue center distance when looking for missing sugar linkages. \end_layout \begin_layout Description @@ -8735,7 +10962,8 @@ ideal \end_layout \begin_layout Description -[hasglycam] If specified, assume sugars already have GLYCAM residue names; +[hasglycam] If specified, + assume sugars already have GLYCAM residue names; just check sugar anomer type/configuration/linkage. \end_layout @@ -8744,18 +10972,13 @@ ideal \begin_inset space ~ \end_inset -{geometry|name}] Determine whether sugar anomer type/configuration should - be chosen based on sugar geometry (default) or the residue name. - CPPTRAJ will report when a mismatch is detected between the sugar anomer - type/configuration based on geometry and anomer type/configuration based - on the residue name. +{geometry|name}] Determine whether sugar anomer type/configuration should be chosen based on sugar geometry (default) or the residue name. + CPPTRAJ will report when a mismatch is detected between the sugar anomer type/configuration based on geometry and anomer type/configuration based on the residue name. \end_layout \end_deeper \begin_layout Standard -This command will prepare a structure (usually from a PDB) for processing - with the Amber program LEaP to generate topology and coordinates files - for MD simulations. +This command will prepare a structure (usually from a PDB) for processing with the Amber program LEaP to generate topology and coordinates files for MD simulations. \begin_inset CommandInset citation LatexCommand citep key "Roe2022" @@ -8763,54 +10986,52 @@ literal "true" \end_inset - It will handle things like choosing alternate atom locations, removing - waters/hydrogen atoms from the structure, renaming residues and generating - 'bond' commands for disulfide bonds, change histidine names based on any - existing protonation, and renaming residues/atoms and generating 'bond' - commands for carbohydrates. - The command can also call LEaP directly to generate the parameters once - the structure is prepared. + It will handle things like choosing alternate atom locations, + removing waters/hydrogen atoms from the structure, + renaming residues and generating 'bond' commands for disulfide bonds, + change histidine names based on any existing protonation, + and renaming residues/atoms and generating 'bond' commands for carbohydrates. + The command can also call LEaP directly to generate the parameters once the structure is prepared. \end_layout \begin_layout Standard -If hydrogen atoms are present in the structure, the command will attempt - a simple and straightforward determination of the protonation state of - any histidine residues based on where hydrogens are bonded, and assign - the appropriate residue name. - The command will also identify any existing disulfide bonds as well as - potential disulfide bonds and generate the corresponding LEaP ‘bond’ commands - which can be applied after the structure is loaded in LEaP. - Potential disulfide bonding atoms can be identified via a user-specifiable - mask expression. +If hydrogen atoms are present in the structure, + the command will attempt a simple and straightforward determination of the protonation state of any histidine residues based on where hydrogens are bonded, + and assign the appropriate residue name. + The command will also identify any existing disulfide bonds as well as potential disulfide bonds and generate the corresponding LEaP ‘bond’ commands which can be applied after the structure is loaded in LEaP. + Potential disulfide bonding atoms can be identified via a user-specifiable mask expression. \end_layout \begin_layout Standard -By default, sugars will have their residue names changed to those compatible - with the GLYCAM force field based on their anomer type (alpha/beta), configurat -ion (D/L), and linkages (glycosidic and covalent sugar to non-sugar). +By default, + sugars will have their residue names changed to those compatible with the GLYCAM force field based on their anomer type (alpha/beta), + configuration (D/L), + and linkages (glycosidic and covalent sugar to non-sugar). Any recognized functional groups that are part of sugar residues (hydroxyl, - acetyl, sulfate, etc) will be split into separate residues as required - by GLYCAM. - If this happens and 'runleap' has not been specified, CPPTRAJ will warn - about any residues/atoms that require charge to be adjusted. - If 'runleap' has not been specified the command will warn about any atoms - that need to have their charges adjusted after LEaP is run. + acetyl, + sulfate, + etc) will be split into separate residues as required by GLYCAM. + If this happens and 'runleap' has not been specified, + CPPTRAJ will warn about any residues/atoms that require charge to be adjusted. + If 'runleap' has not been specified the command will warn about any atoms that need to have their charges adjusted after LEaP is run. \end_layout \begin_layout Standard The command will try to report any potential problems that LEaP might encounter. - These include residue names that may be unrecognized (and therefore may - not have parameters), mismatches between detected sugar anomer type/configurati -on and anomer type/configuration based on the sugar residue name, unrecognized - sugar linkages, and so on. + These include residue names that may be unrecognized (and therefore may not have parameters), + mismatches between detected sugar anomer type/configuration and anomer type/configuration based on the sugar residue name, + unrecognized sugar linkages, + and so on. \end_layout \begin_layout Standard -For example, the following input prepares PDB 4zzw for processing with PDB, - putting the proper leap commands in leap.4zzw.in, writing the prepared PDB - to 4zzw.cpptraj.pdb, removing waters and hydrogen atoms, and keeping alternate - atom locations with the highest occupancy: +For example, + the following input prepares PDB 4zzw for processing with PDB, + putting the proper leap commands in leap.4zzw.in, + writing the prepared PDB to 4zzw.cpptraj.pdb, + removing waters and hydrogen atoms, + and keeping alternate atom locations with the highest occupancy: \end_layout \begin_layout LyX-Code @@ -8836,31 +11057,36 @@ Sugar Residue/Atom Name Mapping File \end_layout \begin_layout Standard -This file controls how CPPTRAJ will name sugars based on sugar form/chirality - linkage. +This file controls how CPPTRAJ will name sugars based on sugar form/chirality linkage. It consists of three sections separated by a blank line. - The first section defines sugar PDB residue names and how they are mapped - to GLYCAM residue characters: + The first section defines sugar PDB residue names and how they are mapped to GLYCAM residue characters: \end_layout \begin_layout LyX-Code -Format: <ResName> <GlycamCode> <Anomer> <Config> <RingType> "<Name>" +Format: + <ResName> <GlycamCode> <Anomer> <Config> <RingType> "<Name>" \end_layout \begin_layout LyX-Code -Anomer: A=alpha, B=beta +Anomer: + A=alpha, + B=beta \end_layout \begin_layout LyX-Code -Config: D/L +Config: + D/L \end_layout \begin_layout LyX-Code -RingType: P=pyranose, F=furanose +RingType: + P=pyranose, + F=furanose \end_layout \begin_layout LyX-Code -Example: 64K A A D P "alpha-D-arabinopyranose" +Example: + 64K A A D P "alpha-D-arabinopyranose" \end_layout \begin_layout Standard @@ -8868,17 +11094,19 @@ The second section contains PDB to GLYCAM atom name maps for residues: \end_layout \begin_layout LyX-Code -Format: <GLYCAM residue codes> <PDB atom name>,<GLYCAM atom name>[,<anomer>] - … +Format: + <GLYCAM residue codes> <PDB atom name>,<GLYCAM atom name>[,<anomer>] … \end_layout \begin_layout LyX-Code -If <anomer> (A=alpha, B=beta) is specified, the atom name map is only valid - for that specific form. +If <anomer> (A=alpha, + B=beta) is specified, + the atom name map is only valid for that specific form. \end_layout \begin_layout LyX-Code -Example: V,W,Y C7,C2N O7,O2N C8,CME +Example: + V,W,Y C7,C2N O7,O2N C8,CME \end_layout \begin_layout Standard @@ -8887,11 +11115,13 @@ The third section contains PDB to GLYCAM linkage residue (i.e. \end_layout \begin_layout LyX-Code -Format: <PDB residue name> <GLYCAM residue name> +Format: + <PDB residue name> <GLYCAM residue name> \end_layout \begin_layout LyX-Code -Example: SER OLS +Example: + SER OLS \end_layout \begin_layout Subsection @@ -8904,6 +11134,7 @@ Reference coordinates can now be used and manipulated like COORDS data sets. \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_reference" +nolink "false" \end_inset @@ -8949,7 +11180,8 @@ crdset \end_inset set> Coordinates data set to work on. - If a TRAJ data set is specified, + If a TRAJ data set is specified, + \series bold name \series default @@ -9036,10 +11268,9 @@ type> Dihedral type to rotate in specified residue. \end_deeper \begin_layout Standard -Rotate the specified dihedral in given COORDS set to a target value or by - given increment. - For example, to set the protein chi dihedral in residue 8 to 35 degrees - and write out to a mol2 file: +Rotate the specified dihedral in given COORDS set to a target value or by given increment. + For example, + to set the protein chi dihedral in residue 8 to 35 degrees and write out to a mol2 file: \end_layout \begin_layout LyX-Code @@ -9060,143 +11291,22 @@ crdout TZ2 tz2.rotate.1.mol2 \begin_layout Subsection sequence -\begin_inset CommandInset label -LatexCommand label -name "subsec:cpptraj-sequence" - -\end_inset - - -\end_layout - -\begin_layout LyX-Code -sequence name <output set name> <unit0> <unit1> ... -\end_layout - -\begin_layout LyX-Code - [{libset <libsetname>} ...] -\end_layout - -\begin_deeper -\begin_layout Description -name -\begin_inset space ~ -\end_inset - -<output -\begin_inset space ~ -\end_inset - -set -\begin_inset space ~ -\end_inset - -name> Name of final molecule. -\end_layout - -\begin_layout Description -<unit0> -\begin_inset space ~ -\end_inset - -<unit1> Name of COORDS set (with connection info). -\end_layout - -\begin_layout Description -[{libset -\begin_inset space ~ -\end_inset - -<libsetname>} -\begin_inset space ~ -\end_inset - -...} One or more set name prefixes of data sets (libraries) containing units. \end_layout \begin_layout Standard -Data sets created: -\end_layout - -\begin_layout Description -<output -\begin_inset space ~ -\end_inset - -set -\begin_inset space ~ -\end_inset - -name> COORDS set containing final molecule. -\end_layout - -\end_deeper -\begin_layout Standard -Connect units in different COORDS sets together to form a single molecule. - Internal coordinates are used to try to determine the correct geometry - around connection sites. - The COORDS sets must have connection information set, either from reading - in an Amber OFF library file or set manually via -\series bold -\emph on -dataset -\series default -\emph default +Syntax for this command is now located here: -\series bold -connect -\series default - (see \begin_inset CommandInset ref -LatexCommand vref -reference "subsec:cpptraj-datasetcmd" +LatexCommand ref +reference "subsec:cpptraj-sequence" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset -). -\end_layout - -\begin_layout Standard -For example, the following reads in two Mol2 files as COORDS sets, sets - up connection atoms, then creates a molecule via -\series bold -\emph on -sequence: -\end_layout - -\begin_layout LyX-Code -parm MOC.mol2 -\end_layout - -\begin_layout LyX-Code -loadcrd MOC.mol2 parm MOC.mol2 name MOC -\end_layout - -\begin_layout LyX-Code -dataset connect MOC tailmask @O5 -\end_layout - -\begin_layout LyX-Code -parm CNALA.mol2 -\end_layout - -\begin_layout LyX-Code -loadcrd CNALA.mol2 parm CNALA.mol2 name CNALA -\end_layout - -\begin_layout LyX-Code -dataset connect CNALA headmask @N -\end_layout - -\begin_layout LyX-Code -sequence MOC CNALA name Mol -\end_layout -\begin_layout LyX-Code -crdout Mol Mol.mol2 \end_layout \begin_layout Subsection @@ -9236,7 +11346,8 @@ name> Name of new set to create. \begin_layout Standard Split trajectory specified by <crd set> by molecule into a new COORDS set. All molecules in <crd set> must be the same size. - For example, if there are 10 molecules and 10 frames in COORDS set + For example, + if there are 10 molecules and 10 frames in COORDS set \begin_inset Quotes eld \end_inset @@ -9244,8 +11355,10 @@ Set0 \begin_inset Quotes erd \end_inset -, the following would create a new COORDS set with 100 frames (original - molecules 1-10 frame 1, original molecules 1-10 frame 2, etc): +, + the following would create a new COORDS set with 100 frames (original molecules 1-10 frame 1, + original molecules 1-10 frame 2, + etc): \end_layout \begin_layout LyX-Code @@ -9261,11 +11374,11 @@ zmatrix <COORDS set name> [name <output set name>] \end_layout \begin_layout LyX-Code - { zset <input zmatrix set> [parm <top>|parmindex <#>] | + { zset <input zmatrix set> [parm <top>|parmindex <#>]| \end_layout \begin_layout LyX-Code - [molnum <mol#>] [frame <frame#>] [out <zmatrix file>] } + [complete][molnum <mol#>] [frame <frame#>] [out <zmatrix file>] } \end_layout \begin_deeper @@ -9278,8 +11391,7 @@ set \begin_inset space ~ \end_inset -name> COORDS set to calculate Z-matrix from or use as topology for applied - Z-matrix. +name> COORDS set to calculate Z-matrix from or use as topology for applied Z-matrix. \end_layout \begin_layout Description @@ -9332,6 +11444,12 @@ parmindex \end_layout \end_deeper +\begin_layout Description +complete If specified, + generate all possible internal coordinates, + otherwise generate a minimal set. +\end_layout + \begin_layout Description [molnum \begin_inset space ~ @@ -9345,8 +11463,7 @@ parmindex \begin_inset space ~ \end_inset -<frame#>] Calculate Z-matrix from specified molecule in specified frame - (default first frame). +<frame#>] Calculate Z-matrix from specified molecule in specified frame (default first frame). \end_layout \begin_layout Description @@ -9374,17 +11491,18 @@ set \begin_inset space ~ \end_inset -name> If 'zset', COORDS set containing final coordinates. +name> If 'zset', + COORDS set containing final coordinates. Otherwise contains Z-matrix data. \end_layout \end_deeper \begin_layout Standard Command for working with Z-matrices. - If 'zset' is specified, generate coordinates from the specified Z-matrix - data set and topology. - Otherwise, calculate a Z-matrix for a single molecule from the specified - frame of given COORDS data set. + If 'zset' is specified, + generate coordinates from the specified Z-matrix data set and topology. + Otherwise, + calculate a Z-matrix for a single molecule from the specified frame of given COORDS data set. \end_layout \begin_layout Section @@ -9865,7 +11983,8 @@ random \begin_inset Text \begin_layout Plain Layout -Change default random number generator, create random sets. +Change default random number generator, + create random sets. \end_layout \end_inset @@ -10125,6 +12244,8 @@ activeref \begin_layout LyX-Code activeref \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -10137,10 +12258,11 @@ activeref \end_layout \begin_layout Standard -Set which reference structure should be used when setting up distance-based - masks for everything but the 'mask' action. - Numbering starts from 0, so 'activeref 0' selects the first reference structure - read in, 'activeref 1' selects the second, and so on. +Set which reference structure should be used when setting up distance-based masks for everything but the 'mask' action. + Numbering starts from 0, + so 'activeref 0' selects the first reference structure read in, + 'activeref 1' selects the second, + and so on. \end_layout \begin_layout Subsection @@ -10162,6 +12284,7 @@ calc <expression> \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-Data-Set-Math" +nolink "false" \end_inset @@ -10203,9 +12326,10 @@ clear [{all | <type>}] \end_layout \begin_layout Standard -Clear list of indicated type, or all lists if 'all' specified. - Note that when clearing actions or analyses, associated data sets and data - files are not cleared and vice versa. +Clear list of indicated type, + or all lists if 'all' specified. + Note that when clearing actions or analyses, + associated data sets and data files are not cleared and vice versa. \end_layout \begin_layout Subsection @@ -10222,6 +12346,8 @@ name "subsec:cpptraj_create" \begin_layout LyX-Code create \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -10234,10 +12360,12 @@ create \end_layout \begin_layout Standard -Add specified data sets to the data file named <filename>; if the file does - not exist, it will be added to the DataFileList. - Data files created in this way are only written at the end of coordinate - processing, analyses, or via the +Add specified data sets to the data file named <filename>; + if the file does not exist, + it will be added to the DataFileList. + Data files created in this way are only written at the end of coordinate processing, + analyses, + or via the \series bold \emph on 'writedata' @@ -10248,6 +12376,7 @@ Add specified data sets to the data file named <filename>; if the file does \begin_inset CommandInset ref LatexCommand vref reference "sec:Datafile-Commands" +nolink "false" \end_inset @@ -10264,8 +12393,9 @@ createset <expression> [xmin <min>] xstep <step> nx <nxvals> \begin_deeper \begin_layout Description -expression Simple mathematical expression, must contain equals sign, can - contain X (e.g. +expression Simple mathematical expression, + must contain equals sign, + can contain X (e.g. Y=2*X). If not enclosed in quotes must not contain whitespace. \end_layout @@ -10313,6 +12443,8 @@ name "subsec:cpptraj_datafile_command" \begin_layout LyX-Code datafile \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -10330,6 +12462,7 @@ Pass <datafile arg> to data file <filename>. \begin_inset CommandInset ref LatexCommand vref reference "sec:Datafile-Commands" +nolink "false" \end_inset @@ -10356,8 +12489,7 @@ datafilter {<dataset arg> min <min> max <max> ...} [out <file>] [name <setname>] \end_layout \begin_layout LyX-Code - {[multi] | [filterset <set> [newset <newname>]] [countout <countfile> -]} + {[multi] | [filterset <set> [newset <newname>]] [countout <countfile>]} \end_layout \begin_deeper @@ -10382,7 +12514,8 @@ max \begin_inset space ~ \end_inset -<max> Data set name and min/max cutoffs to use; can specify more than one. +<max> Data set name and min/max cutoffs to use; + can specify more than one. \end_layout \begin_layout Description @@ -10403,8 +12536,7 @@ max \end_layout \begin_layout Description -[multi] Filter each set separately instead of all together (creates filter - set for each input set). +[multi] Filter each set separately instead of all together (creates filter set for each input set). Cannot be used with 'filterset'. \end_layout @@ -10413,8 +12545,8 @@ max \begin_inset space ~ \end_inset -<set>] If specified, <set> will be filtered to only contain data that satisfies - cutoffs. +<set>] If specified, + <set> will be filtered to only contain data that satisfies cutoffs. Cannot be used with 'multi'. \end_layout @@ -10424,8 +12556,7 @@ max \begin_inset space ~ \end_inset -<newname>] If specified a new set will be created from 'filterset' instead - of replacing 'filterset'. +<newname>] If specified a new set will be created from 'filterset' instead of replacing 'filterset'. \end_layout \end_deeper @@ -10434,8 +12565,8 @@ max \begin_inset space ~ \end_inset -<count>] If specified, write number of elements passed and filtered to <countfil -e>. +<count>] If specified, + write number of elements passed and filtered to <countfile>. Cannot be used with 'multi'. \end_layout @@ -10452,7 +12583,8 @@ passed \begin_inset Quotes erd \end_inset -, 0 otherwise. +, + 0 otherwise. \end_layout \begin_layout Description @@ -10468,8 +12600,8 @@ Sets Created ('multi') \end_layout \begin_layout Description -<setname>:<idx> For each input set (number with <idx>, starting from 0) - contains 1 for elements that +<setname>:<idx> For each input set (number with <idx>, + starting from 0) contains 1 for elements that \begin_inset Quotes eld \end_inset @@ -10477,13 +12609,13 @@ passed \begin_inset Quotes erd \end_inset -, 0 otherwise. +, + 0 otherwise. \end_layout \end_deeper \begin_layout Standard -Create a data set (optionally named <setname>) containing 1 for data within - given +Create a data set (optionally named <setname>) containing 1 for data within given \series bold <min> \series default @@ -10500,22 +12632,24 @@ Create a data set (optionally named <setname>) containing 1 for data within \series bold <max> \series default - argument, and can be as many as there are specified data sets. + argument, + and can be as many as there are specified data sets. If \series bold 'multi' \series default - is specified then only filter data sets will be created for each data set - instead. + is specified then only filter data sets will be created for each data set instead. If \series bold 'filterset' \series default - is specified, the specified + is specified, + the specified \series bold <set> \series default - will be modified to only contain '1' frames; cannot be used with + will be modified to only contain '1' frames; + cannot be used with \series bold 'multi' \series default @@ -10524,21 +12658,20 @@ Create a data set (optionally named <setname>) containing 1 for data within \series bold 'newset' \series default - is also specified, a new set will be created containing the '1' frames - instead. + is also specified, + a new set will be created containing the '1' frames instead. The 'filterset' functionality only works for 1D scalar sets. If \series bold 'countout' \series default - is specified, the final number of elements passed and filtered out will - be written to <countfile>. + is specified, + the final number of elements passed and filtered out will be written to <countfile>. \end_layout \begin_layout Standard -For example, to read in data from two separate files (d1.dat and a1.dat) and - generate a filter data set named FILTER having 1 when d1 is between 0.0 - and 3.0 and a1 is between 135.0 and 180.0: +For example, + to read in data from two separate files (d1.dat and a1.dat) and generate a filter data set named FILTER having 1 when d1 is between 0.0 and 3.0 and a1 is between 135.0 and 180.0: \end_layout \begin_layout LyX-Code @@ -10554,8 +12687,7 @@ datafilter d1 min 0.0 max 3.0 a1 min 135.0 max 180.0 out filter.dat name FILTER \end_layout \begin_layout Standard -Note that a similar command that can be used with data generated by Actions - during trajectory processing is +Note that a similar command that can be used with data generated by Actions during trajectory processing is \series bold \shape italic filter @@ -10565,6 +12697,7 @@ filter \begin_inset CommandInset ref LatexCommand pageref reference "subsec:cpptraj-filter" +nolink "false" \end_inset @@ -10604,8 +12737,7 @@ dataset { legend <legend> <set> | \end_layout \begin_layout LyX-Code - {drop|keep}points {range <range arg> | [start <#>] [stop <#>] - [offset <#>]} + {drop|keep}points {range <range arg> | [start <#>] [stop <#>] [offset <#>]} \end_layout \begin_layout LyX-Code @@ -10614,23 +12746,19 @@ dataset { legend <legend> <set> | \end_layout \begin_layout LyX-Code - remove <criterion> <select> <value> [and <value2>] [<set selection>] - | + remove <criterion> <select> <value> [and <value2>] [<set selection>] | \end_layout \begin_layout LyX-Code - connect {[head <head atom>] [tail <tail atom>]|[headmask <headmask>] - [tailmask <tailmask>]} + connect {[head <head atom>] [tail <tail atom>]|[headmask <headmask>] [tailmask <tailmask>]} \end_layout \begin_layout LyX-Code - dim {xdim|ydim|zdim|ndim <#>} [label <label>] [min <min>] [step - <step>] | + dim {xdim|ydim|zdim|ndim <#>} [label <label>] [min <min>] [step <step>] | \end_layout \begin_layout LyX-Code - outformat {double|scientific|general} <set arg1> [<set arg 2> - ...] | + outformat {double|scientific|general} <set arg1> [<set arg 2> ...] | \end_layout \begin_layout LyX-Code @@ -10639,8 +12767,7 @@ dataset { legend <legend> <set> | \end_layout \begin_layout LyX-Code - shift [above <value> by <offset>] [below <value> by <offset>] - <set arg0> ... + shift [above <value> by <offset>] [below <value> by <offset>] <set arg0> ... \end_layout \begin_layout LyX-Code @@ -10652,27 +12779,25 @@ dataset { legend <legend> <set> | \end_layout \begin_layout LyX-Code - <mode>: 'distance' 'angle' 'torsion' 'pucker' 'rms' 'matrix' 'vector' + <mode>: + 'distance' 'angle' 'torsion' 'pucker' 'rms' 'matrix' 'vector' \end_layout \begin_layout LyX-Code - <type>: 'alpha' 'beta' 'gamma' 'delta' 'epsilon' 'zeta' 'nu0' 'nu1' 'nu2' - 'nu3' + <type>: + 'alpha' 'beta' 'gamma' 'delta' 'epsilon' 'zeta' 'nu0' 'nu1' 'nu2' 'nu3' \end_layout \begin_layout LyX-Code - 'nu4' 'h1p' 'c2p' 'chin' 'phi' 'psi' 'chip' 'omega' 'chi2' 'chi3' - 'chi4' + 'nu4' 'h1p' 'c2p' 'chin' 'phi' 'psi' 'chip' 'omega' 'chi2' 'chi3' 'chi4' \end_layout \begin_layout LyX-Code - 'chi5' 'pucker' 'noe' 'distance' 'covariance' 'mass-weighted - covariance' + 'chi5' 'pucker' 'noe' 'distance' 'covariance' 'mass-weighted covariance' \end_layout \begin_layout LyX-Code - 'correlation' 'distance covariance' 'IDEA' 'IRED' 'dihedral covarianc -e' + 'correlation' 'distance covariance' 'IDEA' 'IRED' 'dihedral covariance' \end_layout \begin_layout LyX-Code @@ -10741,8 +12866,7 @@ makexy \begin_inset space ~ \end_inset -<Yset> Create a new data set (optionally named <name>) with X values from - <Xset> and Y values from <Yset>. +<Yset> Create a new data set (optionally named <name>) with X values from <Xset> and Y values from <Yset>. \end_layout \begin_layout Description @@ -10754,8 +12878,7 @@ vectorcoord \begin_inset space ~ \end_inset -<set> Extract X/Y/Z coordinates from vector data set into a new 1D data - set. +<set> Extract X/Y/Z coordinates from vector data set into a new 1D data set. \end_layout \begin_layout Description @@ -10772,8 +12895,7 @@ cat \end_inset ... - Concatenate two or more data sets into a new data set (optionally named - <name>). + Concatenate two or more data sets into a new data set (optionally named <name>). Only works for scalar 1D and string sets. \end_layout @@ -10802,8 +12924,7 @@ rows \begin_inset space ~ \end_inset -<nrows> Convert 1D data set into row-major 2D data set with specified number - of rows and columns. +<nrows> Convert 1D data set into row-major 2D data set with specified number of rows and columns. \end_layout \begin_layout Description @@ -10820,8 +12941,8 @@ arg1> \end_inset ... - Drop or keep specified points from data set(s), optionally creating a new - data set. + Drop or keep specified points from data set(s), + optionally creating a new data set. \end_layout \begin_deeper @@ -10891,16 +13012,17 @@ remove \begin_inset space ~ \end_inset -selection>] Remove data sets from <set selection> according to specified - criterion and selection. +selection>] Remove data sets from <set selection> according to specified criterion and selection. \end_layout \begin_layout LyX-Code -<criterion>: 'ifaverage' 'ifsize' 'ifmode' 'iftype' +<criterion>: + 'ifaverage' 'ifsize' 'ifmode' 'iftype' \end_layout \begin_layout LyX-Code -<select> : 'equal' '==' 'notequal' '!=' 'lessthan' '<' +<select> : + 'equal' '==' 'notequal' '!=' 'lessthan' '<' \end_layout \begin_layout LyX-Code @@ -10924,11 +13046,13 @@ reference "subsec:cpptraj-sequence" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset ) to COORDS set(s). - Head atoms connect to previous residue, tail atoms connect to next residue. + Head atoms connect to previous residue, + tail atoms connect to next residue. Can use either absolute atom numbers or atom mask expressions. \end_layout @@ -11151,7 +13275,8 @@ arg0> \begin_inset space ~ \end_inset -<type>] Set data set(s) type to 'type', useful for e.g. +<type>] Set data set(s) type to 'type', + useful for e.g. analysis with \series bold \shape italic @@ -11165,13 +13290,15 @@ statistics distance \series default \shape default -, +, + \series bold \shape italic dihedral \series default \shape default -, +, + \series bold \shape italic pucker @@ -11198,7 +13325,8 @@ bound \begin_inset space ~ \end_inset -<upper>] Lower and upper bounds for NOE (in Angstroms); must specify both. +<upper>] Lower and upper bounds for NOE (in Angstroms); + must specify both. \end_layout \begin_layout Description @@ -11206,8 +13334,8 @@ bound \begin_inset space ~ \end_inset -<expected>] Expected value for NOE (in Angstroms); if not given '(<lower> - + <upper>)' / 2.0 is used. +<expected>] Expected value for NOE (in Angstroms); + if not given '(<lower> + <upper>)' / 2.0 is used. \end_layout \begin_layout Description @@ -11224,16 +13352,17 @@ bound \end_deeper \begin_layout Standard -Either set the legend for a single data set, create a new set with X values - from one set and Y values from another, concatenate 2 or more sets, make - a 2D set from 1D set, remove sets according to a certain criterion, or - change the mode/type for one or more data sets. +Either set the legend for a single data set, + create a new set with X values from one set and Y values from another, + concatenate 2 or more sets, + make a 2D set from 1D set, + remove sets according to a certain criterion, + or change the mode/type for one or more data sets. \end_layout \begin_layout Standard -Setting the mode/type can be useful for cases where the data set is being - read in from a file; for example when reading in a dihedral data set the - type can be set to 'dihedral' so that various Analysis routines like +Setting the mode/type can be useful for cases where the data set is being read in from a file; + for example when reading in a dihedral data set the type can be set to 'dihedral' so that various Analysis routines like \series bold \shape italic statistics @@ -12110,11 +14239,11 @@ IRED vector. \end_layout \begin_layout Standard -The invert mode takes a group of M 1D data sets of size N and create N new - "inverted" data sets of size M. - This is similar to the invert keyword already available for standard and - Grace data writes, but operates directly on data sets. - For example, given the following two data sets: +The invert mode takes a group of M 1D data sets of size N and create N new "inverted" data sets of size M. + This is similar to the invert keyword already available for standard and Grace data writes, + but operates directly on data sets. + For example, + given the following two data sets: \end_layout \begin_layout LyX-Code @@ -12150,10 +14279,9 @@ N0 N1 N2 \end_layout \begin_layout Standard -The dataset invert command can be useful if you want to easily view output - from multiple analysis commands in a single graph. - For example, to view state counts from two different simulations side by - side: +The dataset invert command can be useful if you want to easily view output from multiple analysis commands in a single graph. + For example, + to view state counts from two different simulations side by side: \end_layout \begin_layout LyX-Code @@ -12177,10 +14305,10 @@ writedata statecount.agr Inverted* \end_layout \begin_layout Standard -The dataset shift command can be used for wrapping circular values, such - as torsions. - For example, to ensure a pucker has a range from 0 to 360 instead of -180 - to 180: +The dataset shift command can be used for wrapping circular values, + such as torsions. + For example, + to ensure a pucker has a range from 0 to 360 instead of -180 to 180: \end_layout \begin_layout LyX-Code @@ -12202,6 +14330,8 @@ debug | prnlev \begin_layout LyX-Code debug \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -12220,8 +14350,7 @@ debug \begin_layout Standard Set the level of debug information to print. In general the higher the <#> the more information that is printed. - If <type> is specified only set the debug level for a specific area of - + If <type> is specified only set the debug level for a specific area of \shape italic cpptraj. \end_layout @@ -12242,8 +14371,8 @@ Turn printing of ensemble member number filename extensions on or off. \begin_layout Standard \series bold -NOTE: THE 'ensextension off' OPTION HAS NOT BEEN FULLY TESTED IN PARALLEL - AND IS NOT CURRENTLY RECOMMENDED. +NOTE: + THE 'ensextension off' OPTION HAS NOT BEEN FULLY TESTED IN PARALLEL AND IS NOT CURRENTLY RECOMMENDED. \end_layout \begin_layout Subsection @@ -12292,8 +14421,10 @@ mode \begin_inset space ~ \end_inset -{sum|avg} If sum, matrix elements will be summed. - If avg, matrix elements will be averaged. +{sum|avg} If sum, + matrix elements will be summed. + If avg, + matrix elements will be averaged. \end_layout \begin_layout Description @@ -12341,14 +14472,15 @@ set \begin_inset space ~ \end_inset -name>:<idx> Flattened 1D sets when more than one input matrix; index starts - from 1. +name>:<idx> Flattened 1D sets when more than one input matrix; + index starts from 1. \end_layout \end_deeper \begin_layout Standard Flatten 1 or more matrices into 1D array(s) by summing or averaging elements. - For example, given a matrix with values like this: + For example, + given a matrix with values like this: \end_layout \begin_layout LyX-Code @@ -12424,7 +14556,8 @@ go | run \end_layout \begin_layout Standard -Begin trajectory processing, followed by analysis and datafile write. +Begin trajectory processing, + followed by analysis and datafile write. \end_layout \begin_layout Subsection @@ -12434,6 +14567,8 @@ help \begin_layout LyX-Code help \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -12458,8 +14593,7 @@ help \end_layout \begin_layout LyX-Code - Form[ats] [{trajin|trajout|readdata|writedata|parm|parmwrite} [<fmt - key>]] | + Form[ats] [{trajin|trajout|readdata|writedata|parm|parmwrite} [<fmt key>]] | \end_layout \begin_layout LyX-Code @@ -12467,7 +14601,8 @@ help \end_layout \begin_layout LyX-Code - Command Categories: Gen[eral] Sys[tem] Coor[ds] Traj[ectory] Top[ology] + Command Categories: + Gen[eral] Sys[tem] Coor[ds] Traj[ectory] Top[ology] \end_layout \begin_layout LyX-Code @@ -12475,35 +14610,50 @@ help \end_layout \begin_layout LyX-Code - All : Print all known commands. + All : + Print all known commands. \end_layout \begin_layout LyX-Code - <cmd> : Print help for command <cmd>. + <cmd> : + Print help for command <cmd>. \end_layout \begin_layout LyX-Code - <command category> : Print all commands in specified category. + <command category> : + Print all commands in specified category. \end_layout \begin_layout LyX-Code - Form[ats] : Help for file formats. + Form[ats] : + Help for file formats. \end_layout \begin_layout LyX-Code - Mask : Help for mask syntax. + Mask : + Help for mask syntax. \end_layout \begin_layout Standard -If 'All' is specifed, list all commands known to +If 'All' is specifed, + list all commands known to \shape italic cpptraj \shape default . - If given with a command, print help for that command. - Otherwise, list all commands of a certain category (General, System, Coords, - Trajectory, Topology, Action, Analysis, or Control), help for various file - formats, or help with atom mask syntax. + If given with a command, + print help for that command. + Otherwise, + list all commands of a certain category (General, + System, + Coords, + Trajectory, + Topology, + Action, + Analysis, + or Control), + help for various file formats, + or help with atom mask syntax. \end_layout \begin_layout Subsection @@ -12530,6 +14680,8 @@ noexitonerror \begin_layout LyX-Code noexitonerror \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -12553,7 +14705,8 @@ cpptraj noexitonerror \series default \shape default - is specified, + is specified, + \shape italic cpptraj \shape default @@ -12568,6 +14721,8 @@ noprogress \begin_layout LyX-Code noprogress \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -12593,8 +14748,7 @@ parallelanalysis [sync] \begin_layout Standard MPI only. - Divide all currently set up analyses as evenly as possible among available - MPI processes and execute. + Divide all currently set up analyses as evenly as possible among available MPI processes and execute. Each analysis will get a single MPI process. If \series bold @@ -12602,13 +14756,15 @@ sync \series default is specified all data will be synced back to the master process (for e.g. subsequent analysis). - For an example of how to use the parallelanalysis command, see + For an example of how to use the parallelanalysis command, + see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_hausdorff" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -12666,18 +14822,20 @@ args> Files containing CPPTRAJ output to get timing data from. \begin_inset space ~ \end_inset -{time|cores|filename}] Sort timing data sets by either time, number of cores - (MPI processes * OpenMP threads), or file name. +{time|cores|filename}] Sort timing data sets by either time, + number of cores (MPI processes * OpenMP threads), + or file name. \end_layout \begin_layout Description -[includebad] If specified, include run output for which timing data cannot - be extracted (e.g. +[includebad] If specified, + include run output for which timing data cannot be extracted (e.g. an incomplete/failed run). \end_layout \begin_layout Description -[showdetails] If specified, details about each run will be printed to STDOUT. +[showdetails] If specified, + details about each run will be printed to STDOUT. \end_layout \begin_layout Description @@ -12685,30 +14843,27 @@ args> Files containing CPPTRAJ output to get timing data from. \begin_inset space ~ \end_inset -{trajproc|trajread|actframe} If specified, report time other than the total - time (which is the default): +{trajproc|trajread|actframe} If specified, + report time other than the total time (which is the default): \end_layout \begin_deeper \begin_layout Description -trajproc Total trajectory processing time (trajectory I/O plus action frame - time). +trajproc Total trajectory processing time (trajectory I/O plus action frame time). \end_layout \begin_layout Description -trajread Trajectory read time (requires compiling with '-timer' configure - option/-DTIMER compiler define). +trajread Trajectory read time (requires compiling with '-timer' configure option/-DTIMER compiler define). \end_layout \begin_layout Description -actframe Action frame time (requires compiling with '-timer' configure option/-D -TIMER compiler define). +actframe Action frame time (requires compiling with '-timer' configure option/-DTIMER compiler define). \end_layout \end_deeper \begin_layout Description -[reverse] Instead of longest time to shortest time, sort shortest time to - longest time. +[reverse] Instead of longest time to shortest time, + sort shortest time to longest time. \end_layout \begin_layout Description @@ -12717,8 +14872,7 @@ TIMER compiler define). \end_inset <file>] Group run output by a property and write to a file. - Additional details will be written like speedup and efficiency (relative - to the slowest run). + Additional details will be written like speedup and efficiency (relative to the slowest run). \end_layout \begin_deeper @@ -12744,8 +14898,8 @@ name Group by run type name (see \end_layout \begin_layout Description -kind Group by run type name; OpenMP runs are separated by number of OpenMP - threads. +kind Group by run type name; + OpenMP runs are separated by number of OpenMP threads. \end_layout \end_deeper @@ -12760,17 +14914,22 @@ DataSets Created: \begin_layout Description <setname>[name] Set containing shortedhand run names. - Consists of a prefix (S for serial, O for OpenMP, M for MPI, H for hybrid - MPI/OpenMP) followed by numbers indicating number of MPI processes 'x' - OpenMP threads; e.g., H16x4 means a hybrid run consisting of 16 MPI processes - and 4 OpenMP threads per process. - If CUDA is active, the name will be wrapped in 'G()', e.g. + Consists of a prefix (S for serial, + O for OpenMP, + M for MPI, + H for hybrid MPI/OpenMP) followed by numbers indicating number of MPI processes 'x' OpenMP threads; + e.g., + H16x4 means a hybrid run consisting of 16 MPI processes and 4 OpenMP threads per process. + If CUDA is active, + the name will be wrapped in 'G()', + e.g. G(H16x4). \end_layout \begin_layout Description <setname>[dir] Set containing output directory prefixes. - If no directory prefix, just contains output file name. + If no directory prefix, + just contains output file name. \end_layout \end_deeper @@ -12791,6 +14950,8 @@ precision \begin_layout LyX-Code precision \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -12803,20 +14964,19 @@ precision \end_layout \begin_layout Standard -Set the precision for all data sets in data file <filename> or data set(s) - specified by <dataset arg> to +Set the precision for all data sets in data file <filename> or data set(s) specified by <dataset arg> to \shape italic width.precision \shape default -, where width is the column width and precision is the number of digits - after the decimal point. - Note that the <precision> argument only applies to floating-point data - sets. +, + where width is the column width and precision is the number of digits after the decimal point. + Note that the <precision> argument only applies to floating-point data sets. \end_layout \begin_layout Standard -For example, if one wanted to set the precision of the output of an Rmsd - calculation to 8.3, the input could be: +For example, + if one wanted to set the precision of the output of an Rmsd calculation to 8.3, + the input could be: \end_layout \begin_layout LyX-Code @@ -12865,13 +15025,13 @@ random [setdefault {marsaglia|stdlib|mt|pcg32|xo128}] \begin_deeper \begin_layout Description -setdefault If specified, change the default random number generator (RNG). +setdefault If specified, + change the default random number generator (RNG). \end_layout \begin_deeper \begin_layout Description -marsaglia Use the Marsaglia RNG that is used in the Amber MD programs sander/pme -md. +marsaglia Use the Marsaglia RNG that is used in the Amber MD programs sander/pmemd. \end_layout \begin_layout Description @@ -12879,8 +15039,8 @@ stdlib Use the C standard library RNG. \end_layout \begin_layout Description -mt Use the C++11 implementation of the Mersenne twister (mt19937); only - available with C++11 support. +mt Use the C++11 implementation of the Mersenne twister (mt19937); + only available with C++11 support. \end_layout \begin_layout Description @@ -12909,8 +15069,8 @@ literal "true" \end_deeper \begin_layout Description -createset If specified, create a 1D data set filled with random numbers - of the specified type. +createset If specified, + create a 1D data set filled with random numbers of the specified type. \end_layout \begin_deeper @@ -12931,8 +15091,10 @@ settype \begin_inset space ~ \end_inset -{int|float01|gauss} Type of numbers to use; integer, floating point between - 0 and 1, Gaussian distribution. +{int|float01|gauss} Type of numbers to use; + integer, + floating point between 0 and 1, + Gaussian distribution. \end_layout \begin_deeper @@ -12964,8 +15126,8 @@ seed \end_deeper \end_deeper \begin_layout Standard -This command can be used to set the default random number generator used - in CPPTRAJ, and/or create a 1D data set filled with random values. +This command can be used to set the default random number generator used in CPPTRAJ, + and/or create a 1D data set filled with random values. \end_layout \begin_layout Subsection @@ -12982,6 +15144,8 @@ name "subsec:cpptraj_readdata" \begin_layout LyX-Code readdata \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -13012,8 +15176,7 @@ as \begin_inset space ~ \end_inset -<fmt> Force <filename> to be read as a specific format using given format - keyword. +<fmt> Force <filename> to be read as a specific format using given format keyword. \end_layout \begin_layout Description @@ -13027,6 +15190,7 @@ Read data from file <filename> and store as data sets. \begin_inset CommandInset ref LatexCommand vref reference "tab:cpptraj-DataFile-formats" +nolink "false" \end_inset @@ -13035,11 +15199,13 @@ reference "tab:cpptraj-DataFile-formats" \begin_inset CommandInset ref LatexCommand ref reference "sec:Datafile-Commands" +nolink "false" \end_inset . - For example, given the file calc.dat: + For example, + given the file calc.dat: \end_layout \begin_layout LyX-Code @@ -13055,7 +15221,8 @@ The command ' \family typewriter readdata calc.dat \family default -' would read data into two data sets, calc.dat:2 (legend set to +' would read data into two data sets, + calc.dat:2 (legend set to \begin_inset Quotes eld \end_inset @@ -13117,14 +15284,16 @@ args> Additional data file arguments. \end_deeper \begin_layout Standard -Read data sets as an ensemble, i.e. +Read data sets as an ensemble, + i.e. each file is a different member of an ensemble. This command is MPI-aware. \end_layout \begin_layout Standard -If one filename is given, it is assumed it is the "lowest" member of an - ensemble with a numerical extension, e.g. +If one filename is given, + it is assumed it is the "lowest" member of an ensemble with a numerical extension, + e.g. 'file.001' and the remaining files are searched for automatically. Otherwise all other members of the ensemble can be specified with \series bold @@ -13136,6 +15305,7 @@ If one filename is given, it is assumed it is the "lowest" member of an \begin_inset CommandInset ref LatexCommand vref reference "sec:Datafile-Commands" +nolink "false" \end_inset @@ -13143,7 +15313,8 @@ reference "sec:Datafile-Commands" \end_layout \begin_layout Standard -For example, to read in data files named cpout.001 to cpout.006 automatically: +For example, + to read in data files named cpout.001 to cpout.006 automatically: \end_layout \begin_layout LyX-Code @@ -13161,8 +15332,7 @@ readensembledata cpout.001 \end_layout \begin_layout LyX-Code - filenames cpout.002,cpout.003,cpout.004,cpout.005,cpout.006 - + filenames cpout.002,cpout.003,cpout.004,cpout.005,cpout.006 \backslash \end_layout @@ -13178,6 +15348,8 @@ readinput \begin_layout LyX-Code readinput \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -13262,7 +15434,8 @@ rX \begin_inset space ~ \end_inset -<rX> Value of RX (X=1-4, default 0.0) +<rX> Value of RX (X=1-4, + default 0.0) \end_layout \begin_layout Description @@ -13334,10 +15507,14 @@ refindex \begin_inset space ~ \end_inset -reference} Use distance/angle/dihedral in reference structure to determine - values for r1, r2, r3, and r4. - The value of r2 is set to <r2> + <off>, r3 = r2, r1 = r2 - <width>, r4 - = r3 + <width>. +reference} Use distance/angle/dihedral in reference structure to determine values for r1, + r2, + r3, + and r4. + The value of r2 is set to <r2> + <off>, + r3 = r2, + r1 = r2 - <width>, + r4 = r3 + <width>. \end_layout \begin_layout Description @@ -13345,8 +15522,7 @@ reference} Use distance/angle/dihedral in reference structure to determine \begin_inset space ~ \end_inset -<off>] (Reference only) Value to offset distance/angle/torsion in reference - by (default 0.0). +<off>] (Reference only) Value to offset distance/angle/torsion in reference by (default 0.0). \end_layout \begin_layout Description @@ -13354,7 +15530,8 @@ reference} Use distance/angle/dihedral in reference structure to determine \begin_inset space ~ \end_inset -<width>] (Reference only) Width between r1 and r2, r3 and r4 (default 0.5). +<width>] (Reference only) Width between r1 and r2, + r3 and r4 (default 0.5). \end_layout \begin_layout Description @@ -13363,17 +15540,16 @@ reference} Use distance/angle/dihedral in reference structure to determine \end_inset <outfile>] Write restraints to outfile. - If not specified, write to STDOUT. + If not specified, + write to STDOUT. \end_layout \end_deeper \begin_layout Standard Generate Amber-style distance restraints for use with nmropt=1. - This is particularly useful for generating distance restraints based off - of reference coordinates. - For example to generate a distance restraint between two C5' atoms using - the current distance between them in a reference structure, offsetting - the distance by 1.0 Ang.: + This is particularly useful for generating distance restraints based off of reference coordinates. + For example to generate a distance restraint between two C5' atoms using the current distance between them in a reference structure, + offsetting the distance by 1.0 Ang.: \end_layout \begin_layout LyX-Code @@ -13406,9 +15582,10 @@ runanalysis [<analysiscmd> [<analysis args>]] \begin_layout Standard Run given analysis command immediately and write any data generated. If no command is given run any analysis currently set up. - NOTE: When 'runanalysis' is specified alone, data is not automatically - written; to write data generated with 'runanalysis' use the 'writedata' - command (this allows multiple analysis runs between output if desired). + NOTE: + When 'runanalysis' is specified alone, + data is not automatically written; + to write data generated with 'runanalysis' use the 'writedata' command (this allows multiple analysis runs between output if desired). \end_layout \begin_layout Subsection @@ -13418,6 +15595,8 @@ select \begin_layout LyX-Code select \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -13430,8 +15609,8 @@ select \end_layout \begin_layout Standard -Prints the number of selected atoms corresponding to the given mask, as - well as the atom numbers with format: +Prints the number of selected atoms corresponding to the given mask, + as well as the atom numbers with format: \end_layout \begin_layout LyX-Code @@ -13439,8 +15618,8 @@ Selected= <#atom1> <#atom2> ... \end_layout \begin_layout Standard -This does not affect the state in any way, but is intended for use in scripts - etc. +This does not affect the state in any way, + but is intended for use in scripts etc. for testing the results of a mask expression. \end_layout @@ -13464,13 +15643,12 @@ Show the results of a data set selection. \begin_layout Standard Either the [<aspect>] or the <index> arguments may be omitted. A '*' can be used in place of <name> or [<aspect>] as a wildcard. - The <index> argument can be a single number or a range separated by '-' - and ','. + The <index> argument can be a single number or a range separated by '-' and ','. \end_layout \begin_layout Standard -This command does not affect the state in any way, but is particularly useful - in interactive mode for determining the results of a dataset argument. +This command does not affect the state in any way, + but is particularly useful in interactive mode for determining the results of a dataset argument. \end_layout \begin_layout Subsection @@ -13524,7 +15702,8 @@ usediskcache {on|off} \end_layout \begin_layout Standard -If on, CPPTRAJ will attempt to cache data sets to disk if possible. +If on, + CPPTRAJ will attempt to cache data sets to disk if possible. This currently only works for integer data sets (e.g. \series bold @@ -13536,7 +15715,8 @@ hbond \series bold series \series default - data sets, etc). + data sets, + etc). \end_layout \begin_layout Subsection @@ -13555,14 +15735,17 @@ write [<filename> <datasetname0> [<datasetname1> ...]] [<DataFile Options>] \end_layout \begin_layout Standard -With no arguments, write all files currently in the data file list. - Otherwise, write specified data set(s) to <filename>. - This is like the 'create' command except a data file is not added to the - data file list; it is written immediately. +With no arguments, + write all files currently in the data file list. + Otherwise, + write specified data set(s) to <filename>. + This is like the 'create' command except a data file is not added to the data file list; + it is written immediately. See \begin_inset CommandInset ref LatexCommand vref reference "sec:Datafile-Commands" +nolink "false" \end_inset @@ -13599,7 +15782,8 @@ head \family typewriter head \family default -, which lists the first few lines of a file. +, + which lists the first few lines of a file. \end_layout \begin_layout Description @@ -13611,7 +15795,8 @@ less \family typewriter less \family default -, which can be used to view the contents of a file. +, + which can be used to view the contents of a file. \end_layout \begin_layout Description @@ -14037,7 +16222,9 @@ parm \begin_inset space ~ \end_inset -[<name>] Select topology corresponding to given file name, tag, or name. +[<name>] Select topology corresponding to given file name, + tag, + or name. \end_layout \begin_layout Description @@ -14045,7 +16232,8 @@ parmindex \begin_inset space ~ \end_inset -[<#>] Select topology by order in which it was loaded, starting from 0. +[<#>] Select topology by order in which it was loaded, + starting from 0. \end_layout \begin_layout Standard @@ -14092,7 +16280,9 @@ Description \begin_inset Text \begin_layout Plain Layout -angleinfo, angles, printangles +angleinfo, + angles, + printangles \end_layout \end_inset @@ -14112,7 +16302,9 @@ Print angle info for selected atoms. \begin_inset Text \begin_layout Plain Layout -atominfo, atoms, printatoms +atominfo, + atoms, + printatoms \end_layout \end_inset @@ -14132,7 +16324,9 @@ Print details for selected atoms. \begin_inset Text \begin_layout Plain Layout -bondinfo, bonds, printbonds +bondinfo, + bonds, + printbonds \end_layout \end_inset @@ -14232,7 +16426,9 @@ Compare two topologies and report differences. \begin_inset Text \begin_layout Plain Layout -dihedralinfo, dihedrals, printdihedrals +dihedralinfo, + dihedrals, + printdihedrals \end_layout \end_inset @@ -14272,7 +16468,9 @@ Perform hydrogen mass repartitioning. \begin_inset Text \begin_layout Plain Layout -improperinfo, impropers, printimpropers +improperinfo, + impropers, + printimpropers \end_layout \end_inset @@ -14432,7 +16630,8 @@ Write selected topology to file. \begin_inset Text \begin_layout Plain Layout -printub, ubinfo +printub, + ubinfo \end_layout \end_inset @@ -14539,7 +16738,11 @@ angleinfo | angles | printangles \end_layout \begin_layout LyX-Code -angleinfo [parm <name> | parmindex <#> | <#>] [<mask1>] [<mask2> <mask3>] +angleinfo [parm <name> | parmindex <#> | <#>] +\end_layout + +\begin_layout LyX-Code + [<mask1>] [<mask2> <mask3>] [noindices] \end_layout \begin_layout LyX-Code @@ -14585,7 +16788,12 @@ parmindex \begin_inset space ~ \end_inset -<mask3>] If specified, angles must match all masks. +<mask3>] If specified, + angles must match all masks. +\end_layout + +\begin_layout Description +[noindices] Do not print angle indices. \end_layout \begin_layout Description @@ -14598,8 +16806,7 @@ parmindex \end_deeper \begin_layout Standard -Print angle information of atoms in <mask> for selected topology (first - loaded topology by default) with format: +Print angle information of atoms in <mask> for selected topology (first loaded topology by default) with format: \end_layout \begin_layout LyX-Code @@ -14611,15 +16818,18 @@ Where \family typewriter Angle \family default - is the internal angle index, + is the internal angle index, + \family typewriter Kthet \family default - is the angle force constant, + is the angle force constant, + \family typewriter degrees \family default - is the angle equilibrium value, + is the angle equilibrium value, + \family typewriter atom names \family default @@ -14627,7 +16837,8 @@ atom names \family typewriter :<residue num>@<atom name> \family default -, and +, + and \family typewriter (numbers) \family default @@ -14636,8 +16847,10 @@ atom names \end_layout \begin_layout Standard -If 3 masks are given instead of 1, print info for angles with first atom - in <mask1>, second atom in <mask2>, and third atom in <mask3>. +If 3 masks are given instead of 1, + print info for angles with first atom in <mask1>, + second atom in <mask2>, + and third atom in <mask3>. \end_layout \begin_layout Subsection @@ -14692,8 +16905,7 @@ parmindex \end_deeper \begin_layout Standard -Print information on atoms in <mask> for selected topology (first loaded - topology by default) with format: +Print information on atoms in <mask> for selected topology (first loaded topology by default) with format: \end_layout \begin_layout LyX-Code @@ -14705,46 +16917,54 @@ where \family typewriter #Atom \family default - is the internal atom index, the first + is the internal atom index, + the first \family typewriter Name \family default - column is the atom name, + column is the atom name, + \family typewriter #Res \family default - is the atom's residue number, the second + is the atom's residue number, + the second \family typewriter Name \family default - column is residue name, + column is residue name, + \family typewriter #Mol \family default - is the atom's molecule number, + is the atom's molecule number, + \family typewriter Type \family default - is the atom's type (certain topologies only), + is the atom's type (certain topologies only), + \family typewriter Charge \family default - is the atom charge (in units of electron charge), + is the atom charge (in units of electron charge), + \family typewriter Mass \family default - is the atom's mass (in amu), + is the atom's mass (in amu), + \family typewriter GBradius \family default - is the generalized Born radius of the atom (Amber topologies only), and - + is the generalized Born radius of the atom (Amber topologies only), + and \family typewriter El \family default is the 2 character element string. - The final two columns are only shown if the topology contains non-bonded - parameters: + The final two columns are only shown if the topology contains non-bonded parameters: + \family typewriter rVDW \family default @@ -14764,7 +16984,7 @@ bondinfo [parm <name> | parmindex <#> | <#>] \end_layout \begin_layout LyX-Code - [<mask1>] [<mask2>] [out <file>] [nointrares] + [<mask1>] [<mask2>] [out <file>] [nointrares] [noindices] \end_layout \begin_deeper @@ -14802,7 +17022,8 @@ parmindex \end_layout \begin_layout Description -[<mask2>] If specified, bonds must match both masks. +[<mask2>] If specified, + bonds must match both masks. \end_layout \begin_layout Description @@ -14817,10 +17038,13 @@ parmindex [nointrares] Do not print intra-residue bonds. \end_layout +\begin_layout Description +[noindices] Do not print bond indices. +\end_layout + \end_deeper \begin_layout Standard -Print bond information for atoms in <mask> for selected topology (first - loaded topology by default) with format: +Print bond information for atoms in <mask> for selected topology (first loaded topology by default) with format: \end_layout \begin_layout LyX-Code @@ -14832,15 +17056,18 @@ where \family typewriter Bond \family default - is the internal bond index, + is the internal bond index, + \family typewriter Kb \family default - is the bond force constant, + is the bond force constant, + \family typewriter Req \family default - is the bond equilibrium value (in Angstroms), + is the bond equilibrium value (in Angstroms), + \family typewriter atom names \family default @@ -14848,7 +17075,8 @@ atom names \family typewriter :<residue num>@<atom name> \family default -, and +, + and \family typewriter (numbers) \family default @@ -14857,8 +17085,8 @@ atom names \end_layout \begin_layout Standard -If 2 masks are given instead of 1, print info for bonds with first atom - in <mask1> and second atom in <mask2>. +If 2 masks are given instead of 1, + print info for bonds with first atom in <mask1> and second atom in <mask2>. \end_layout \begin_layout Subsection @@ -14917,8 +17145,9 @@ Print the bond parameter table with format: \end_layout \begin_layout Standard -Where Idx is the internal bond parameter index, Rk is the bond force constant - (in kcal/mol*Ang^2), and Req is the bond equilibrium value (in Ang.). +Where Idx is the internal bond parameter index, + Rk is the bond force constant (in kcal/mol*Ang^2), + and Req is the bond equilibrium value (in Ang.). \end_layout \begin_layout Subsection @@ -14950,7 +17179,7 @@ change [parm <name> | parmindex <#> | <#> | \end_layout \begin_layout LyX-Code - atomname from <mask> to <value> | + atomname from <mask> {to <value>|namemap <mapset>} | | \end_layout \begin_layout LyX-Code @@ -14962,8 +17191,7 @@ change [parm <name> | parmindex <#> | <#> | \end_layout \begin_layout LyX-Code - bondparm <mask1> [<mask2>] {setrk|scalerk|setreq|scalereq} <value> - | + bondparm <mask1> [<mask2>] {setrk|scalerk|setreq|scalereq} <value> | \end_layout \begin_layout LyX-Code @@ -14975,7 +17203,19 @@ change [parm <name> | parmindex <#> | <#> | \end_layout \begin_layout LyX-Code - mergeres firstres <start res#> lastres <stop res#> + mergeres firstres <start res#> lastres <stop res#> | +\end_layout + +\begin_layout LyX-Code + gb {bondi|amber6|mbondi|pbamber|mbondi2|parse|mbondi3} | +\end_layout + +\begin_layout LyX-Code + lj1264 [lj1264mask <mask>] [tunfactor <fac>] [c4file <c4file>] +\end_layout + +\begin_layout LyX-Code + [polfile <polfile>] [lj1264solvent <solvent>] \end_layout \begin_layout LyX-Code @@ -15101,8 +17341,7 @@ max \end_inset max> Change original residue numbers (to e.g. - original PDB numbers) of residues in <mask> to a range starting from <min> - and ending with <max>. + original PDB numbers) of residues in <mask> to a range starting from <min> and ending with <max>. \end_layout \begin_layout Description @@ -15146,9 +17385,8 @@ max> \begin_inset space ~ \end_inset -<#> Change residue insertion codes of residues in <mask> to a range of character -s starting from <min> and ending with <max>; set the original residue number - to <resnum>. +<#> Change residue insertion codes of residues in <mask> to a range of characters starting from <min> and ending with <max>; + set the original residue number to <resnum>. \end_layout \begin_layout Description @@ -15160,10 +17398,11 @@ from \begin_inset space ~ \end_inset -<mask> -\begin_inset space ~ -\end_inset +<mask> Change atoms names for atoms in <mask>. +\end_layout +\begin_deeper +\begin_layout Description to \begin_inset space ~ \end_inset @@ -15171,6 +17410,27 @@ to <value> Change atom names for atoms in <mask> to the given <value>. \end_layout +\begin_layout Description +namemap +\begin_inset space ~ +\end_inset + +<mapset> Change atom names from reference name to target name according to the given name map set (#Tgt Ref). + See +\begin_inset CommandInset ref +LatexCommand vref +reference "cpptraj-readdata-dat-namemap" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + + for details on reading in atom name maps. +\end_layout + +\end_deeper \begin_layout Description addbond \begin_inset space ~ @@ -15180,8 +17440,7 @@ addbond \begin_inset space ~ \end_inset -<mask2> Add bond between atom specified by <mask1> and atom specified by - <mask2>. +<mask2> Add bond between atom specified by <mask1> and atom specified by <mask2>. \end_layout \begin_deeper @@ -15216,8 +17475,8 @@ removebonds \end_inset [<mask2>] Remove bonds from atoms in <mask1>. - If <mask2> also given, remove bonds between atoms in <mask1> and atoms - in <mask2>. + If <mask2> also given, + remove bonds between atoms in <mask1> and atoms in <mask2>. \end_layout \begin_deeper @@ -15226,8 +17485,8 @@ removebonds \begin_inset space ~ \end_inset -<file>] If specified, write removed bonds to <file> with format '<residue - name> <residue num> <atom name> <atom num>'. +<file>] If specified, + write removed bonds to <file> with format '<residue name> <residue num> <atom name> <atom num>'. \end_layout \end_deeper @@ -15248,8 +17507,7 @@ bondparm \begin_inset space ~ \end_inset -<value> Modify bond parameters in bonds selected by <mask1> (and <mask2> - if specified) by specified <value>. +<value> Modify bond parameters in bonds selected by <mask1> (and <mask2> if specified) by specified <value>. \end_layout \begin_deeper @@ -15316,8 +17574,8 @@ fromset \begin_inset space ~ \end_inset -set> Use values in <data set> for mass/charge; must have the same number - of values as atoms selected by <mask>. +set> Use values in <data set> for mass/charge; + must have the same number of values as atoms selected by <mask>. \end_layout \end_deeper @@ -15356,10 +17614,48 @@ firstres \end_layout \end_deeper +\begin_layout Description +gb +\begin_inset space ~ +\end_inset + +{bondi|amber6|mbondi|pbamber|mbondi2|parse|mbondi3} Add/change the GB radii set. + Default is mbondi. + See +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-build" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + + for details on the GB keywords. +\end_layout + +\begin_layout Description +[lj1264] Option to add LJ 12-6-4 parameters. + See +\begin_inset CommandInset ref +LatexCommand vref +reference "subsec:cpptraj-build" +plural "false" +caps "false" +noprefix "false" +nolink "false" + +\end_inset + + for details on LJ 12-6-4 keywords. +\end_layout + \end_deeper \begin_layout Standard Change specified parts of the specified topology. - For example, to change atoms named 'HN' to 'H' in topology 0: + For example, + to change atoms named 'HN' to 'H' in topology 0: \end_layout \begin_layout LyX-Code @@ -15412,14 +17708,13 @@ parmindex \begin_inset space ~ \end_inset -<set>] If specified, a data set named <set> will be cretaed containing total - charge. +<set>] If specified, + a data set named <set> will be cretaed containing total charge. \end_layout \end_deeper \begin_layout Standard -Print the total charge of atoms in <mask> (in units of electron charge) - for selected topology (first loaded topology by default). +Print the total charge of atoms in <mask> (in units of electron charge) for selected topology (first loaded topology by default). \end_layout \begin_layout Subsection @@ -15427,8 +17722,7 @@ comparetop \end_layout \begin_layout LyX-Code -comparetop {parm <name> | parmindex <#>} {parm <name> | parmindex <#>} [out - <file>] +comparetop {parm <name> | parmindex <#>} {parm <name> | parmindex <#>} [out <file>] \end_layout \begin_layout LyX-Code @@ -15491,9 +17785,8 @@ out \end_deeper \begin_layout Standard Compare and report differences in atoms/parameters between two topologies. - Differences are reported in standard 'diff' format, with '<' prefix indicating - the parameter is from the first topology and '>' prefix indicating the - parameter is from the second topology. + Differences are reported in standard 'diff' format, + with '<' prefix indicating the parameter is from the first topology and '>' prefix indicating the parameter is from the second topology. \end_layout \begin_layout Subsection @@ -15501,12 +17794,15 @@ dihedralinfo | dihedrals | printdihedrals \end_layout \begin_layout LyX-Code -dihedralinfo [parm <name> | parmindex <#> | <#>] [<mask1>] [<mask2> <mask3> - <mask4>] +dihedralinfo [parm <name> | parmindex <#> | <#>] [<mask1>] [<mask2> <mask3> <mask4>] \end_layout \begin_layout LyX-Code - [out <file>] + {[<mask1>] [<mask2> <mask3> <mask4>] | tgtidx <#>} [noindices] +\end_layout + +\begin_layout LyX-Code + [out <file>] [extra] \end_layout \begin_deeper @@ -15552,7 +17848,21 @@ parmindex \begin_inset space ~ \end_inset -<mask4>] If specified, dihedrals must match all masks. +<mask4>] If specified, + dihedrals must match all masks. +\end_layout + +\begin_layout Description +tgtidx +\begin_inset space ~ +\end_inset + +<#> If specified, + print dihedrals only with specified parameter index (starting from 1). +\end_layout + +\begin_layout Description +[noindices] Do not print dihedral indices. \end_layout \begin_layout Description @@ -15563,10 +17873,13 @@ parmindex <file>] File to print to (default STDOUT). \end_layout +\begin_layout Description +[extra] Print SCEE/SCNB info as well. +\end_layout + \end_deeper \begin_layout Standard -Print dihedral information of atoms in <mask> for selected topology (first - loaded topology by default) with format: +Print dihedral information of atoms in <mask> for selected topology (first loaded topology by default) with format: \end_layout \begin_layout LyX-Code @@ -15578,19 +17891,23 @@ where \family typewriter #Dihedral \family default - is the internal dihedral index, + is the internal dihedral index, + \family typewriter pk \family default - is the dihedral force constant, + is the dihedral force constant, + \family typewriter phase \family default - is the dihedral phase, + is the dihedral phase, + \family typewriter pn \family default - is the dihedral periodicity, and + is the dihedral periodicity, + and \family typewriter atoms \family default @@ -15598,17 +17915,21 @@ atoms \family typewriter :<residue num>@<atom name> \family default -, followed by the atom indices involved in a comma-separated list. - In addition if the dihedral is an end dihedral, improper dihedral, or both - it will be prefaced with an +, + followed by the atom indices involved in a comma-separated list. + In addition if the dihedral is an end dihedral, + improper dihedral, + or both it will be prefaced with an \family typewriter E \family default -, +, + \family typewriter I \family default -, or +, + or \family typewriter B \family default @@ -15617,9 +17938,11 @@ B \end_layout \begin_layout Standard -If 4 masks are given instead of 1, print info for dihedrals with first atom - in <mask1>, second atom in <mask2>, third atom in <mask3>, and fourth atom - in <mask4>. +If 4 masks are given instead of 1, + print info for dihedrals with first atom in <mask1>, + second atom in <mask2>, + third atom in <mask3>, + and fourth atom in <mask4>. \end_layout \begin_layout Subsection @@ -15688,18 +18011,16 @@ mass> Mass to change hydrogens to (3.024 u by default). \end_layout \begin_layout Description -dowater If specified, modify water hydrogen mass as well. +dowater If specified, + modify water hydrogen mass as well. \end_layout \end_deeper \begin_layout Standard Perform hydrogen mass repartitioning on the specified topology. - Hydrogen mass repartitioning means that for a given heavy atom, the mass - of all bonded hydrogens are increased (to 3.024 u by default) and the mass - of that heavy atom is decreased so as to maintain the same overall mass. - The main use case is to allow longer time steps for molecular dynamics - integration due to reduced frequency of vibration of bonds to hydrogen - atoms. + Hydrogen mass repartitioning means that for a given heavy atom, + the mass of all bonded hydrogens are increased (to 3.024 u by default) and the mass of that heavy atom is decreased so as to maintain the same overall mass. + The main use case is to allow longer time steps for molecular dynamics integration due to reduced frequency of vibration of bonds to hydrogen atoms. \end_layout \begin_layout Subsection @@ -15707,8 +18028,7 @@ improperinfo | impropers | printimpropers \end_layout \begin_layout LyX-Code -improperinfo [parm <name> | parmindex <#> | <#>] [<mask1>] [<mask2> <mask3> - <mask4>] +improperinfo [parm <name> | parmindex <#> | <#>] [<mask1>] [<mask2> <mask3> <mask4>] \end_layout \begin_layout LyX-Code @@ -15758,7 +18078,21 @@ parmindex \begin_inset space ~ \end_inset -<mask4>] If specified, impropers must match all masks. +<mask4>] If specified, + impropers must match all masks. +\end_layout + +\begin_layout Description +tgtidx +\begin_inset space ~ +\end_inset + +<#> If specified, + print impropers only with specified parameter index (starting from 1). +\end_layout + +\begin_layout Description +[noindices] Do not print improper indices. \end_layout \begin_layout Description @@ -15771,10 +18105,11 @@ parmindex \end_deeper \begin_layout Standard -For specified topology (first by default) either print CHARMM improper info - for all atoms in <mask1>, or print info for dihedrals with first atom in - <mask1>, second atom in <mask2>, third atom in <mask3>, and fourth atom - in <mask4>. +For specified topology (first by default) either print CHARMM improper info for all atoms in <mask1>, + or print info for dihedrals with first atom in <mask1>, + second atom in <mask2>, + third atom in <mask3>, + and fourth atom in <mask4>. \end_layout \begin_layout Subsection @@ -15782,8 +18117,7 @@ mass \end_layout \begin_layout LyX-Code -[<parmindex>] [parm <name> | parmindex <#> | <#>] <mask> [out <file>] [name - <set>] +[<parmindex>] [parm <name> | parmindex <#> | <#>] <mask> [out <file>] [name <set>] \end_layout \begin_deeper @@ -15824,14 +18158,13 @@ parmindex \begin_inset space ~ \end_inset -<set>] If specified, a data set named <set> will be cretaed containing total - mass. +<set>] If specified, + a data set named <set> will be cretaed containing total mass. \end_layout \end_deeper \begin_layout Standard -Print the total mass of atoms in <mask> (in amu) for selected topology (first - loaded topology by default). +Print the total mass of atoms in <mask> (in amu) for selected topology (first loaded topology by default). \end_layout \begin_layout Subsection @@ -15886,8 +18219,7 @@ parmindex \end_deeper \begin_layout Standard -Print molecule information for atoms in <mask> for selected topology (first - loaded topology by default) with format: +Print molecule information for atoms in <mask> for selected topology (first loaded topology by default) with format: \end_layout \begin_layout LyX-Code @@ -15899,11 +18231,13 @@ where \family typewriter #Mol \family default - is the molecule number, + is the molecule number, + \family typewriter Natom \family default - is the number of atoms in the molecule, + is the number of atoms in the molecule, + \family typewriter #Res \family default @@ -15911,21 +18245,24 @@ Natom \family typewriter Name \family default - are the residue number and residue name of the first residue in the molecule - respectively, and + are the residue number and residue name of the first residue in the molecule respectively, + and \family typewriter C \family default is the chain ID of the first residue. - If the molecule is composed on non-consecutive fragments, + If the molecule is composed on non-consecutive fragments, + \family typewriter #Res \family default -, +, + \family typewriter Name \family default -, and +, + and \family typewriter C \family default @@ -15944,6 +18281,8 @@ parm \begin_layout LyX-Code parm \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -15977,7 +18316,8 @@ parm \series bold <filename> \series default - Parameter file to read in; format is auto-detected. + Parameter file to read in; + format is auto-detected. \end_layout \begin_layout Description @@ -15985,11 +18325,11 @@ parm \series bold '[TAG]' \series default - Optional tag (bounded in brackets) which can be referred to in place of - the topology file name in order to simplify references to it (see + Optional tag (bounded in brackets) which can be referred to in place of the topology file name in order to simplify references to it (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:Parameter/Reference-Tagging" +nolink "false" \end_inset @@ -16001,8 +18341,7 @@ reference "subsec:Parameter/Reference-Tagging" \begin_inset space ~ \end_inset -<setname>] Optional name that can be used to refer to the topology in place - of the file name. +<setname>] Optional name that can be used to refer to the topology in place of the file name. \end_layout \begin_layout Description @@ -16010,8 +18349,8 @@ reference "subsec:Parameter/Reference-Tagging" \series bold [bondsearch <offset>] \series default - Optional; when searching for bonds via geometry search (default for Topologies - without bond information) add <offset> to distances (default 0.2 Å). + Optional; + when searching for bonds via geometry search (default for Topologies without bond information) add <offset> to distances (default 0.2 Å). Increase this if your system includes unusually long bonds. \end_layout @@ -16020,8 +18359,7 @@ reference "subsec:Parameter/Reference-Tagging" \begin_inset space ~ \end_inset -{grid|pairlist}] Change search algorithm from the default search between - residues algorithm: +{grid|pairlist}] Change search algorithm from the default search between residues algorithm: \end_layout \begin_deeper @@ -16033,8 +18371,8 @@ grid Uses a grid when searching for bonds between residues. \begin_layout Description pairlist Uses a pair list to search for bonds between atoms. - This can potentially find bonds across periodic boundaries, but is the - more experimental of the two. + This can potentially find bonds across periodic boundaries, + but is the more experimental of the two. \end_layout \end_deeper @@ -16049,8 +18387,7 @@ Advanced Options - Not recommended for general use \series bold [nobondsearch] \series default - If specified do not search for bonds via geometry if Topology does not - include bond information. + If specified do not search for bonds via geometry if Topology does not include bond information. May cause some Actions to fail. \end_layout @@ -16060,8 +18397,8 @@ Advanced Options - Not recommended for general use \end_layout \begin_layout Description -[renumresidues] If specified, ensure that any residue cannot be part of - more than 1 molecule (can occur with e.g. +[renumresidues] If specified, + ensure that any residue cannot be part of more than 1 molecule (can occur with e.g. alternate sites). Residues will be renumbered according to molecule information in that case. \end_layout @@ -16074,15 +18411,15 @@ Read in parameter file. \begin_inset CommandInset ref LatexCommand vpageref reference "tab:cpptraj-Topology-formats" +nolink "false" \end_inset . - If the file does not contain bond information, cpptraj will attempt to - assign bonds based on a simple distance search of atoms within and between - residues. - The distance cutoff for determining bonds between atoms depends on the - elements of the two atoms in question, augmented by <offset>. + If the file does not contain bond information, + cpptraj will attempt to assign bonds based on a simple distance search of atoms within and between residues. + The distance cutoff for determining bonds between atoms depends on the elements of the two atoms in question, + augmented by <offset>. Molecule information is then determined from bond information. \end_layout @@ -16109,8 +18446,7 @@ name "subsec:cpptraj-parm-pdb" \begin_deeper \begin_layout Description -[pqr] Read charge and radius information from the occupancy and B-factor - columns. +[pqr] Read charge and radius information from the occupancy and B-factor columns. \end_layout \begin_layout Description @@ -16139,8 +18475,8 @@ name "subsec:cpptraj-parm-pdb" \begin_inset space ~ \end_inset -<char>] If specified, only keep alternate atom location IDs matching the - specified character +<char>] If specified, + only keep alternate atom location IDs matching the specified character \series bold <char> \series default @@ -16155,8 +18491,8 @@ IMPORTANT NOTES FOR PDB FILES \end_layout \begin_layout Standard -Sometimes PDB files can contain alternate coordinates for the same atom - in a residue, e.g.: +Sometimes PDB files can contain alternate coordinates for the same atom in a residue, + e.g.: \end_layout \begin_layout LyX-Code @@ -16180,11 +18516,10 @@ If this is the case \shape italic cpptraj \shape default - will print a warning about alternate location IDs being present but will - take no other action. - Both residues are considered 'CYS' and the mask ':CYS@CA' would select - both atom 806 and 808. - If desired, a specific location ID can be kept via the + will print a warning about alternate location IDs being present but will take no other action. + Both residues are considered 'CYS' and the mask ':CYS@CA' would select both atom 806 and 808. + If desired, + a specific location ID can be kept via the \series bold keepaltloc \series default @@ -16193,7 +18528,8 @@ keepaltloc \series bold keepaltloc \series default - is specified, it should also be specified for any + is specified, + it should also be specified for any \series bold trajin \series default @@ -16204,6 +18540,7 @@ reference "subsec:cpptraj-trajin-pdb" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -16235,9 +18572,9 @@ Gromacs Top \end_layout \begin_layout Standard -By default cpptraj will look for Gromacs topology data (that is not in the - same directory) in the directory defined by the GMXDATA environment variable; - specifically, it expects things to be in the "$GMXDATA/top" directory. +By default cpptraj will look for Gromacs topology data (that is not in the same directory) in the directory defined by the GMXDATA environment variable; + specifically, + it expects things to be in the "$GMXDATA/top" directory. \end_layout @@ -16248,6 +18585,8 @@ parmbox \begin_layout LyX-Code parmbox \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -16356,8 +18695,8 @@ parmindex \end_deeper \begin_layout Standard Modify the box information for specified topology. - Overwrites any box information if present with specified values; any that - are not specified will remain unchanged. + Overwrites any box information if present with specified values; + any that are not specified will remain unchanged. Note that unlike the \series bold \shape italic @@ -16392,6 +18731,8 @@ parminfo \begin_layout LyX-Code parminfo \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -16404,8 +18745,7 @@ parminfo \end_layout \begin_layout Standard -Print a summary of information contained in the specified topology (first - loaded topology by default) . +Print a summary of information contained in the specified topology (first loaded topology by default) . \end_layout \begin_layout Subsection @@ -16415,6 +18755,8 @@ parmstrip \begin_layout LyX-Code parmstrip \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -16438,12 +18780,13 @@ Strip atoms in strip \series default \emph default - Action, this permanently modifies the topology for as long as + Action, + this permanently modifies the topology for as long as \emph on cpptraj \emph default - is running, so this should not be used if the topology is being used to - read or write a trajectory via + is running, + so this should not be used if the topology is being used to read or write a trajectory via \series bold \emph on trajin @@ -16457,8 +18800,8 @@ trajout \emph default . This command can be used to quickly created stripped Amber topology files. - For example, to strip all residues name WAT from a topology and write a - new topology: + For example, + to strip all residues name WAT from a topology and write a new topology: \end_layout \begin_layout LyX-Code @@ -16480,6 +18823,8 @@ parmwrite \begin_layout LyX-Code parmwrite \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -16547,8 +18892,7 @@ parmindex \end_layout \begin_layout Description -[nochamber] (Amber topology only) Remove any CHAMBER information from the - topology. +[nochamber] (Amber topology only) Remove any CHAMBER information from the topology. \end_layout \end_deeper @@ -16562,8 +18906,7 @@ Write out specified topology (first topology loaded by default) to <fmt> \series default (Amber topology if not specified). - Note that the Amber topology format is the only fully supported format - for topology writes. + Note that the Amber topology format is the only fully supported format for topology writes. \end_layout \begin_layout Subsubsection @@ -16581,12 +18924,16 @@ Amber Topology \end_layout \begin_layout Description -[writeempty] Write Amber tree, join, and rotate info even if not present. +[writeempty] Write Amber tree, + join, + and rotate info even if not present. \end_layout \begin_layout Description [nopdbinfo] Do not write "PDB" info (e.g. - chain IDs, original res #s, etc). + chain IDs, + original res #s, + etc). \end_layout \end_deeper @@ -16613,7 +18960,11 @@ printub | ubinfo \end_layout \begin_layout LyX-Code -printub [parm <name> | parmindex <#> | <#>] [<mask1>] [<mask2>] [out <file>] +printub [parm <name> | parmindex <#> | <#>] +\end_layout + +\begin_layout LyX-Code + [<mask1>] [<mask2>] [out <file>] [noindices] \end_layout \begin_deeper @@ -16651,7 +19002,8 @@ parmindex \end_layout \begin_layout Description -[<mask2>] If specified, UB info must match both masks. +[<mask2>] If specified, + UB info must match both masks. \end_layout \begin_layout Description @@ -16662,11 +19014,14 @@ parmindex <file>] File to print to (default STDOUT). \end_layout +\begin_layout Description +[noindices] Do not print UB indices. +\end_layout + \end_deeper \begin_layout Standard -For specified topology (first by default) either print CHARMM Urey-Bradley - info for all atoms in <mask1>, or print info for bonds with first atom - in <mask1> and second atom in <mask2>. +For specified topology (first by default) either print CHARMM Urey-Bradley info for all atoms in <mask1>, + or print info for bonds with first atom in <mask1> and second atom in <mask2>. \end_layout \begin_layout Subsection @@ -16676,6 +19031,8 @@ resinfo \begin_layout LyX-Code resinfo \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -16766,8 +19123,7 @@ parmindex \end_deeper \begin_layout Standard -Print residue information for atoms in <mask> for selected topology (first - loaded topology by default) with format: +Print residue information for atoms in <mask> for selected topology (first loaded topology by default) with format: \end_layout \begin_layout LyX-Code @@ -16779,11 +19135,13 @@ where \family typewriter #Res \family default - is the residue number, + is the residue number, + \family typewriter Name \family default - is the residue name, + is the residue name, + \family typewriter First \family default @@ -16791,15 +19149,18 @@ First \family typewriter Last \family default - are the first and last atom numbers of the residue, + are the first and last atom numbers of the residue, + \family typewriter Natom \family default - is the total number of atoms in the residue, + is the total number of atoms in the residue, + \family typewriter #Orig \family default - is the original residue number (in PDB files), #Mol is the molecule number, + is the original residue number (in PDB files), + #Mol is the molecule number, and C is the chain ID. \end_layout @@ -16809,9 +19170,11 @@ If short \series default is specified then residues will be printed out in a condensed format. - Each residue name will be shortened to 1 character, and residues are printed - out in groups of 10, 5 groups to a line, with each line beginning with - a residue number, e.g. + Each residue name will be shortened to 1 character, + and residues are printed out in groups of 10, + 5 groups to a line, + with each line beginning with a residue number, + e.g. \end_layout \begin_layout LyX-Code @@ -16827,8 +19190,7 @@ short \end_layout \begin_layout Standard -If the 1 character name for a residue is unknown it will be shown as the - first letter of the residue name in lower-case. +If the 1 character name for a residue is unknown it will be shown as the first letter of the residue name in lower-case. \end_layout \begin_layout Subsection @@ -16840,8 +19202,7 @@ scaledihedralk [parm <name> | parmindex <#>] <scale factor> [<mask> [useall]] \end_layout \begin_layout Standard -Scale dihedral force constants for dihderals selected by <mask> for specified - topology. +Scale dihedral force constants for dihderals selected by <mask> for specified topology. If \series bold useall @@ -16866,12 +19227,12 @@ solvent [parm <name> | parmindex <#> | <#>] { <mask> | none } \end_layout \begin_layout Standard -Set solvent for selected topology (first loaded topology by default) based - on +Set solvent for selected topology (first loaded topology by default) based on \series bold <mask> \series default -, or set nothing as solvent if +, + or set nothing as solvent if \series bold none \series default @@ -16883,7 +19244,7 @@ updateparameters \end_layout \begin_layout LyX-Code -parm <name> | parmindex <#> setname <parm set> +parm <name> | parmindex <#> setname <parm set> [verbose <#>] \end_layout \begin_deeper @@ -16919,24 +19280,33 @@ setname set> Topology or parameter data set containing parameters to use. \end_layout +\begin_layout Description +[verbose +\begin_inset space ~ +\end_inset + +<#>] Verbosity during parameter update. +\end_layout + \end_deeper \begin_layout Standard \emph on -NOTE: This command is provided for convenience only. - For editing topology files, ParmEd is a much better alternative. +NOTE: + This command is provided for convenience only. + For editing topology files, + ParmEd is a much better alternative. \end_layout \begin_layout Standard Update parameters in specified topology with those from <parm set>. <parm set> can either be a parameter set or a topology. - If a parameter from <parm set> does not exist in the topology it will be - added. + If a parameter from <parm set> does not exist in the topology it will be added. \end_layout \begin_layout Standard -For example, to modify parameters in a topology file named lys.parm7 with - those from parameter file kcx.str: +For example, + to modify parameters in a topology file named lys.parm7 with those from parameter file kcx.str: \end_layout \begin_layout LyX-Code @@ -16981,15 +19351,18 @@ These commands control the reading and writing of trajectory files. \shape italic cpptraj \shape default -: input, output, and reference. +: + input, + output, + and reference. In \shape italic cpptraj \shape default -, trajectories are always associated with a topology file. - If a topology file is not specified, a trajectory file will be associated - with the first topology file loaded by default (this is true for both input - and output trajectories. +, + trajectories are always associated with a topology file. + If a topology file is not specified, + a trajectory file will be associated with the first topology file loaded by default (this is true for both input and output trajectories. \end_layout \begin_layout Standard @@ -17107,7 +19480,8 @@ Amber NetCDF \begin_inset Text \begin_layout Plain Layout -cdf, netcdf +cdf, + netcdf \end_layout \end_inset @@ -17154,7 +19528,8 @@ restart \begin_inset Text \begin_layout Plain Layout -.rst7, .rst +.rst7, + .rst \end_layout \end_inset @@ -17183,7 +19558,8 @@ Amber NetCDF Restart \begin_inset Text \begin_layout Plain Layout -ncrestart, restartnc +ncrestart, + restartnc \end_layout \end_inset @@ -17229,7 +19605,8 @@ DCD \begin_inset Text \begin_layout Plain Layout -dcd, charmm +dcd, + charmm \end_layout \end_inset @@ -17855,7 +20232,8 @@ conflib \begin_inset Text \begin_layout Plain Layout -Read Only, Detection by extension +Read Only, + Detection by extension \end_layout \end_inset @@ -18153,7 +20531,8 @@ ensemble <file0> {[<start>] [<stop> | last] [offset]} | lastframe \begin_inset space ~ \end_inset -last] Frame to stop reading ensemble at; if not specified or 'last' specified, +last] Frame to stop reading ensemble at; + if not specified or 'last' specified, end of trajectories. \end_layout @@ -18170,8 +20549,7 @@ last] Frame to stop reading ensemble at; if not specified or 'last' specified, \begin_inset space ~ \end_inset -<parmfile>] Topology filename/tag to associate with trajectories (default - first topology). +<parmfile>] Topology filename/tag to associate with trajectories (default first topology). \end_layout \begin_layout Description @@ -18179,8 +20557,8 @@ last] Frame to stop reading ensemble at; if not specified or 'last' specified, \begin_inset space ~ \end_inset -<#>] Index of Topology to associate with trajectories (default 0, first - topology). +<#>] Index of Topology to associate with trajectories (default 0, + first topology). \end_layout \begin_layout Description @@ -18188,8 +20566,8 @@ last] Frame to stop reading ensemble at; if not specified or 'last' specified, \begin_inset space ~ \end_inset -<file1>,...,<fileN>] Do not automatically search for additional replica trajectorie -s; use comma-separated list of trajectory names. +<file1>,...,<fileN>] Do not automatically search for additional replica trajectories; + use comma-separated list of trajectory names. \end_layout \begin_layout Description @@ -18199,8 +20577,8 @@ s; use comma-separated list of trajectory names. \end_layout \begin_layout Description -[bycrdidx] For H-REMD trajectories, sort by coordinate indices stored in - trajectory files. +[bycrdidx] For H-REMD trajectories, + sort by coordinate indices stored in trajectory files. This is preferred over sorting via 'remlog'. \end_layout @@ -18209,8 +20587,8 @@ s; use comma-separated list of trajectory names. \begin_inset space ~ \end_inset -<remlogfile>] For H-REMD trajectories only, use specified REMD log file - to sort trajectories by coordinate index (instead of by replica/Hamiltonian). +<remlogfile>] For H-REMD trajectories only, + use specified REMD log file to sort trajectories by coordinate index (instead of by replica/Hamiltonian). \begin_inset Separator latexpar \end_inset @@ -18231,9 +20609,8 @@ ntwx \begin_inset space ~ \end_inset -<ntwx>] If trajectory and REMD log were not written at the same rate, these - are the values for nstlim (steps between each exchange) and ntwx (steps - between trajectory write) used in the REMD simulation. +<ntwx>] If trajectory and REMD log were not written at the same rate, + these are the values for nstlim (steps between each exchange) and ntwx (steps between trajectory write) used in the REMD simulation. \end_layout \end_deeper @@ -18246,7 +20623,8 @@ Read in and process trajectories as an ensemble. trajin \series default \shape default - remdtraj', except instead of processing one frame at a target temperature, + remdtraj', + except instead of processing one frame at a target temperature, process all frames. This means that action and trajout commands apply to the entire ensemble; note however that not all actions currently function in @@ -18256,8 +20634,10 @@ trajin \series default \shape default mode. - For example, to read in a replica ensemble, convert it to temperature trajector -ies, and calculate a distance at each temperature: + For example, + to read in a replica ensemble, + convert it to temperature trajectories, + and calculate a distance at each temperature: \end_layout \begin_layout LyX-Code @@ -18277,10 +20657,12 @@ distance d1 out d1.ensemble.dat @1 @21 \end_layout \begin_layout Standard -This will output 4 temperature trajectories named 'temp.crd.X', where X ranges - from 0 to 3 with 0 corresponding to the lowest temperature, and 'd1.ensemble.dat' - containing 4 columns, each corresponding to a temperature. - If run with MPI, data will be written to separate files named 'd1.ensemble.dat.X', +This will output 4 temperature trajectories named 'temp.crd.X', + where X ranges from 0 to 3 with 0 corresponding to the lowest temperature, + and 'd1.ensemble.dat' containing 4 columns, + each corresponding to a temperature. + If run with MPI, + data will be written to separate files named 'd1.ensemble.dat.X', similar to the output trajectories. \end_layout @@ -18302,12 +20684,9 @@ ensemble \end_layout \begin_layout Standard -H-REMD trajectories which are typically already sorted by replica/Hamiltonian - can be sorted by coordinate index instead with 'bycrdidx' (if the trajectory - contains coordinate indices) or by REMD log data specified with the 'remlog' - keyword. - For example, to sort by coordinate index using a REMD log and write sorted - trajectories: +H-REMD trajectories which are typically already sorted by replica/Hamiltonian can be sorted by coordinate index instead with 'bycrdidx' (if the trajectory contains coordinate indices) or by REMD log data specified with the 'remlog' keyword. + For example, + to sort by coordinate index using a REMD log and write sorted trajectories: \end_layout \begin_layout LyX-Code @@ -18362,7 +20741,8 @@ This command is MPI only. ensemble \series default \emph default - command, which dramatically improves set up efficiency. + command, + which dramatically improves set up efficiency. \end_layout \begin_layout Subsection @@ -18379,6 +20759,8 @@ name "subsec:cpptraj_reference" \begin_layout LyX-Code reference \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -18400,8 +20782,8 @@ reference \begin_deeper \begin_layout Description -<name> File name (or COORDS set name if 'crdset' specified) to read in as - reference; any trajectory recognized by 'trajin' can be used. +<name> File name (or COORDS set name if 'crdset' specified) to read in as reference; + any trajectory recognized by 'trajin' can be used. \end_layout \begin_layout Description @@ -18413,7 +20795,8 @@ reference \end_layout \begin_layout Description -([tag]) Tag to give this reference file, e.g. +([tag]) Tag to give this reference file, + e.g. \begin_inset Quotes eld \end_inset @@ -18422,7 +20805,8 @@ reference \begin_inset Quotes erd \end_inset -; BRACKETS MUST BE INCLUDED. +; + BRACKETS MUST BE INCLUDED. \end_layout \begin_layout Description @@ -18438,8 +20822,7 @@ reference \begin_inset space ~ \end_inset -<parmfile/tag>] Topology filename/tag to associate with reference (default - first topology). +<parmfile/tag>] Topology filename/tag to associate with reference (default first topology). \end_layout \begin_layout Description @@ -18447,33 +20830,33 @@ reference \begin_inset space ~ \end_inset -<#>] Index of Topology to associate with reference (default 0, first topology). +<#>] Index of Topology to associate with reference (default 0, + first topology). \end_layout \end_deeper \begin_layout Standard Use specified trajectory as reference coordinates. - For trajectories with multiple frames, the first frame is used if a specific - frame is not specified. - An optional tag can be given (bounded in brackets) which can then be used - in place of the name (see + For trajectories with multiple frames, + the first frame is used if a specific frame is not specified. + An optional tag can be given (bounded in brackets) which can then be used in place of the name (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:Parameter/Reference-Tagging" +nolink "false" \end_inset for examples of how to use tags). - If desired, an atom mask can be used to read in only specified atoms from - a reference. + If desired, + an atom mask can be used to read in only specified atoms from a reference. \end_layout \begin_layout Standard -Reference coordinates are now considered COORDS data sets and can be used - anywhere a COORDS data set could, which allows reference structures to - be manipulated once they are loaded. - For example, a reference structure could be centered on the origin like - so: +Reference coordinates are now considered COORDS data sets and can be used anywhere a COORDS data set could, + which allows reference structures to be manipulated once they are loaded. + For example, + a reference structure could be centered on the origin like so: \end_layout \begin_layout LyX-Code @@ -18486,8 +20869,8 @@ crdaction [MyRef] center origin \begin_layout Standard Note that the 'average' keyword has been deprecated for reference. - If desired, an averaged reference COORDS data set can be created from a - trajectory using the 'average' command like so: + If desired, + an averaged reference COORDS data set can be created from a trajectory using the 'average' command like so: \end_layout \begin_layout LyX-Code @@ -18528,6 +20911,8 @@ name "subsec:cpptraj_trajin" \begin_layout LyX-Code trajin \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -18552,8 +20937,7 @@ trajin \end_layout \begin_layout LyX-Code - [ remdtraj {remdtrajtemp <Temperature> | remdtrajidx <idx1,idx2,...> - + [ remdtraj {remdtrajtemp <Temperature> | remdtrajidx <idx1,idx2,...> \end_layout \begin_layout LyX-Code @@ -18595,8 +20979,9 @@ trajin \begin_inset space ~ \end_inset -last] Frame to stop reading at; if not specified or 'last' specified, end - of trajectory. +last] Frame to stop reading at; + if not specified or 'last' specified, + end of trajectory. \end_layout \begin_layout Description @@ -18612,8 +20997,7 @@ last] Frame to stop reading at; if not specified or 'last' specified, end \begin_inset space ~ \end_inset -<parmfile/tag>] Topology filename/tag to associate with trajectory (default - first topology). +<parmfile/tag>] Topology filename/tag to associate with trajectory (default first topology). \end_layout \begin_layout Description @@ -18621,7 +21005,8 @@ last] Frame to stop reading at; if not specified or 'last' specified, end \begin_inset space ~ \end_inset -<#>] Index of Topology to associate with trajectory (default 0, first topology). +<#>] Index of Topology to associate with trajectory (default 0, + first topology). \end_layout \begin_layout Description @@ -18649,8 +21034,8 @@ last] Frame to stop reading at; if not specified or 'last' specified, end \begin_inset space ~ \end_inset -keyword>] Force file to be read as specified format; overrides file autodetectio -n. +keyword>] Force file to be read as specified format; + overrides file autodetection. \end_layout \begin_layout Description @@ -18662,8 +21047,7 @@ Options>] See below. \end_layout \begin_layout Description -[remdtraj] Read <filename> as the first replica in a group of replica trajectori -es. +[remdtraj] Read <filename> as the first replica in a group of replica trajectories. \begin_inset Separator latexpar \end_inset @@ -18688,9 +21072,9 @@ remdtrajidx \begin_inset space ~ \end_inset -<idx1,idx2,...> Use frames at <Temperature> (for temperature replica trajectories) - or index <idx1,idx2,...> (for Hamiltonian replica trajectories); For Multidimensio -nal REMD simulations, multiple values are comma-separated. +<idx1,idx2,...> Use frames at <Temperature> (for temperature replica trajectories) or index <idx1,idx2,...> (for Hamiltonian replica trajectories); + For Multidimensional REMD simulations, + multiple values are comma-separated. \end_layout \begin_layout Description @@ -18698,15 +21082,15 @@ remdtrajvalues \begin_inset space ~ \end_inset -<value1,value2,...> Use frames at <value1,value2,...> (for Multidimensional REMD - trajectories). - Each value may correspond to either temperature, pH, Redox Potential or - Hamiltonian index. - The values need to be entered in the same order as the dimensions in the - Multidimensional REMD simulation. - For example, for T,pH-REMD value1 would correspond to a temperature and - value2 to a pH. - In the command, the values are comma-separated. +<value1,value2,...> Use frames at <value1,value2,...> (for Multidimensional REMD trajectories). + Each value may correspond to either temperature, + pH, + Redox Potential or Hamiltonian index. + The values need to be entered in the same order as the dimensions in the Multidimensional REMD simulation. + For example, + for T,pH-REMD value1 would correspond to a temperature and value2 to a pH. + In the command, + the values are comma-separated. \end_layout \begin_layout Description @@ -18714,8 +21098,8 @@ remdtrajvalues \begin_inset space ~ \end_inset -<file1>,...,<fileN>] Do not automatically search for additional replica trajectorie -s; use comma-separated list of trajectory names. +<file1>,...,<fileN>] Do not automatically search for additional replica trajectories; + use comma-separated list of trajectory names. \end_layout \end_deeper @@ -18726,18 +21110,20 @@ Read in trajectory specified by filename. \begin_inset CommandInset ref LatexCommand pageref reference "tab:cpptraj-trajformats" +nolink "false" \end_inset for currently recognized trajectory file formats. - If just the <start> argument is given, all frames from <start> to the last - frame of the trajectory will be read. + If just the <start> argument is given, + all frames from <start> to the last frame of the trajectory will be read. To read in a trajectory with offsets where the last frame # is not known, specify the \series bold last \series default - keyword instead of a <stop> argument, e.g. + keyword instead of a <stop> argument, + e.g. \end_layout \begin_layout LyX-Code @@ -18745,9 +21131,10 @@ trajin Test1.crd 10 last 2 \end_layout \begin_layout Standard -This will process Test1.crd from frame 10 to the last frame, skipping by - 2 frames. - To explicitly select only the last frame, specify the +This will process Test1.crd from frame 10 to the last frame, + skipping by 2 frames. + To explicitly select only the last frame, + specify the \series bold lastframe \series default @@ -18759,8 +21146,7 @@ trajin Test1.crd lastframe \end_layout \begin_layout Standard -Here is an example of loading in multiple trajectories which have difference - topology files: +Here is an example of loading in multiple trajectories which have difference topology files: \end_layout \begin_layout LyX-Code @@ -18796,11 +21182,11 @@ trajin Test3.crd parmindex 3 \end_layout \begin_layout Standard -Test0.crd is associated with top0.parm7; since no parm was specified it defaulted - to the first parm read in. - Test1.crd was associated with top1.parm7 by filename, Test2.crd was associated - with top2.parm7 by its tag, and finally Test3.crd was associated with top3.parm7 - by its index (based on the order it was read in). +Test0.crd is associated with top0.parm7; + since no parm was specified it defaulted to the first parm read in. + Test1.crd was associated with top1.parm7 by filename, + Test2.crd was associated with top2.parm7 by its tag, + and finally Test3.crd was associated with top3.parm7 by its index (based on the order it was read in). \end_layout \begin_layout Subsubsection* @@ -18812,17 +21198,16 @@ If the \series bold remdtraj \series default - keyword is specified the trajectory is treated as belonging to the lowest - # replica of a group of REMD trajectories. - The remaining replicas can be either automatically detected by following - a naming convention of <REMDFILENAME>.X, where X is the replica number, + keyword is specified the trajectory is treated as belonging to the lowest # replica of a group of REMD trajectories. + The remaining replicas can be either automatically detected by following a naming convention of <REMDFILENAME>.X, + where X is the replica number, or explicitly specified in a comma-separated list following the \series bold trajnames \series default keyword. - All trajectories will be processed at the same time, but only frames with - a temperature matching the one specified by + All trajectories will be processed at the same time, + but only frames with a temperature matching the one specified by \series bold remdtrajtemp \series default @@ -18831,9 +21216,12 @@ remdtrajtemp remdtrajidx \series default will be processed. - For example, to process replica trajectories rem.001, rem.002, rem.003, and - rem.004, grabbing only the frames at temperature 300.0 (assuming that this - is a temperature in the ensemble): + For example, + to process replica trajectories rem.001, + rem.002, + rem.003, + and rem.004, + grabbing only the frames at temperature 300.0 (assuming that this is a temperature in the ensemble): \end_layout \begin_layout LyX-Code @@ -18864,7 +21252,9 @@ ensemble \begin_layout Subsubsection \emph on -Options for Amber NetCDF, Amber NC Restart, Amber Restart: +Options for Amber NetCDF, + Amber NC Restart, + Amber Restart: \end_layout \begin_layout LyX-Code @@ -18909,27 +21299,29 @@ shape Force reading of box info as CHARMM shape matrix (XX XY YY XZ YZ ZZ). \end_layout \begin_layout Description -namdcell Force reading of box info as NAMD unit cell (X cos(g) Y cos(b) - cos(a) Z). +namdcell Force reading of box info as NAMD unit cell (X cos(g) Y cos(b) cos(a) Z). \end_layout \begin_layout Description -charmmcell Force reading of box info as old CHARMM unit cell (X Y Z a b - g). +charmmcell Force reading of box info as old CHARMM unit cell (X Y Z a b g). \end_layout \end_deeper \begin_layout Standard -Note that CHARMM trajectories can have unit cell data stored in one of two - ways. - Older versions (<22) of charmm store the 3x lengths (X Y Z, in Angstroms) - and 3x angles (alpha beta gamma, in degrees). +Note that CHARMM trajectories can have unit cell data stored in one of two ways. + Older versions (<22) of charmm store the 3x lengths (X Y Z, + in Angstroms) and 3x angles (alpha beta gamma, + in degrees). Newer versions (>=22) store elements of the symmetric shape matrix (XX, - XY, YY, XZ, YZ, ZZ). - CPPTRAJ will attempt to automatically detect which type of parameters are - present, but this can be overridden with the + XY, + YY, + XZ, + YZ, + ZZ). + CPPTRAJ will attempt to automatically detect which type of parameters are present, + but this can be overridden with the \series bold shape \series default @@ -18942,9 +21334,8 @@ charmmcell \series bold namdcell \series default - keyword is provided for compatibility with DCD trajectories produced by - VMD/NAMD, but note these trajectories only store a version of the shape - matrix that is correct if the unit cell is also X-aligned. + keyword is provided for compatibility with DCD trajectories produced by VMD/NAMD, + but note these trajectories only store a version of the shape matrix that is correct if the unit cell is also X-aligned. \end_layout \begin_layout Subsubsection @@ -18968,8 +21359,8 @@ name "subsec:cpptraj-trajin-pdb" \begin_inset space ~ \end_inset -<char>] If specified, only keep alternate atom location IDs matching the - specified character +<char>] If specified, + only keep alternate atom location IDs matching the specified character \series bold <char> \series default @@ -18982,8 +21373,9 @@ Note that if \series bold keepaltloc \series default - is specified, the associated topology should not have alternate location - IDs, i.e. + is specified, + the associated topology should not have alternate location IDs, + i.e. if the topology is from a PDB the \series bold keepaltloc @@ -18999,6 +21391,7 @@ reference "subsec:cpptraj-parm-pdb" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -19019,6 +21412,8 @@ name "subsec:cpptraj-trajout" \begin_layout LyX-Code trajout \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -19064,16 +21459,18 @@ trajout \begin_inset CommandInset ref LatexCommand vpageref reference "tab:cpptraj-trajformats" +nolink "false" \end_inset ). - If not specified format will be determined from extension, otherwise default - to Amber trajectory. + If not specified format will be determined from extension, + otherwise default to Amber trajectory. \end_layout \begin_layout Description -[append] If <filename> exists, frames will be appended to <filename>. +[append] If <filename> exists, + frames will be appended to <filename>. \end_layout \begin_layout Description @@ -19101,8 +21498,7 @@ reference "tab:cpptraj-trajformats" \begin_inset space ~ \end_inset -<parmfile>] Topology filename/tag to associate with trajectory (default - first topology). +<parmfile>] Topology filename/tag to associate with trajectory (default first topology). \end_layout \begin_layout Description @@ -19110,7 +21506,8 @@ reference "tab:cpptraj-trajformats" \begin_inset space ~ \end_inset -<#>] Index of Topology to associate with trajectory (default 0, first topology). +<#>] Index of Topology to associate with trajectory (default 0, + first topology). \end_layout \begin_layout Description @@ -19134,8 +21531,8 @@ reference "tab:cpptraj-trajformats" \begin_inset space ~ \end_inset -<memberlist>] Ensemble processing only; only write from specified members - (starting from 0). +<memberlist>] Ensemble processing only; + only write from specified members (starting from 0). \end_layout \begin_layout Description @@ -19164,14 +21561,13 @@ reference "tab:cpptraj-trajformats" \end_deeper \begin_layout Standard -During a run, write frames to trajectory specified by filename in specified - file format (Amber trajectory if none specified) after all Action processing - has occurred. - To write out trajectories within the Action queue see the outtraj Action - ( +During a run, + write frames to trajectory specified by filename in specified file format (Amber trajectory if none specified) after all Action processing has occurred. + To write out trajectories within the Action queue see the outtraj Action ( \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_outtraj" +nolink "false" \end_inset @@ -19180,13 +21576,12 @@ reference "subsec:cpptraj_outtraj" \begin_inset CommandInset ref LatexCommand pageref reference "tab:cpptraj-trajformats" +nolink "false" \end_inset - for currently recognized output trajectory formats and their associated - keyword(s). - Note that now the file type can be determined from the output extension - if not specified by a keyword. + for currently recognized output trajectory formats and their associated keyword(s). + Note that now the file type can be determined from the output extension if not specified by a keyword. Multiple output trajectories of any format can be specified. \end_layout @@ -19194,9 +21589,7 @@ reference "tab:cpptraj-trajformats" \begin_layout Standard \series bold -Frames will be written to the output trajectory when the parameter file - being processed matches the parameter file the output trajectory was set - up with. +Frames will be written to the output trajectory when the parameter file being processed matches the parameter file the output trajectory was set up with. \series default So given the input: @@ -19223,11 +21616,9 @@ trajout output.crd parm [top1] \end_layout \begin_layout Standard -only frames read in from input1.crd (which is associated with top1.parm7) - will be written to output.crd. - The trajectory input0.crd is associated with top0.parm7; since no output - trajectory is associated with top0.parm7 no frames will be written when - processing top0.parm7/input0.crd. +only frames read in from input1.crd (which is associated with top1.parm7) will be written to output.crd. + The trajectory input0.crd is associated with top0.parm7; + since no output trajectory is associated with top0.parm7 no frames will be written when processing top0.parm7/input0.crd. \end_layout \begin_layout Standard @@ -19235,9 +21626,10 @@ If \series bold onlyframes \series default - is specified, only input frames matching the specified range will be written - out. - For example, given the input: + is specified, + only input frames matching the specified range will be written out. + For example, + given the input: \end_layout \begin_layout LyX-Code @@ -19249,7 +21641,10 @@ trajout output.crd onlyframes 2,5-7 \end_layout \begin_layout Standard -only frames 2, 5, 6, and 7 from input.crd will be written to output.crd. +only frames 2, + 5, + 6, + and 7 from input.crd will be written to output.crd. \end_layout \begin_layout Subsubsection* @@ -19264,22 +21659,24 @@ Certain Actions (e.g. align \series default \emph default -, +, + \series bold \emph on rms \series default \emph default -, +, + \series bold \emph on principal \series default \emph default -, etc.) can rotate the unit cell vectors (i.e. +, + etc.) can rotate the unit cell vectors (i.e. the box) if they are present. - Some trajectory formats do not support writing out box coordinates if the - unit cell is not + Some trajectory formats do not support writing out box coordinates if the unit cell is not \begin_inset Quotes eld \end_inset @@ -19287,7 +21684,9 @@ X-aligned \begin_inset Quotes erd \end_inset -; in other words, if the unit cell +; + in other words, + if the unit cell \begin_inset Quotes eld \end_inset @@ -19304,36 +21703,40 @@ B \end_inset vector is not in the X-Y plane. - If this is the case, the following warnings may appear: + If this is the case, + the following warnings may appear: \end_layout \begin_layout LyX-Code -Warning: Unit cell is not X-aligned. +Warning: + Unit cell is not X-aligned. Box cannot be properly stored as <format>. \end_layout \begin_layout LyX-Code -Warning: Set <#>; unit cell is not X-aligned. +Warning: + Set <#>; + unit cell is not X-aligned. Box cannot be properly stored as <format>. \end_layout \begin_layout Standard -This means that the frame will be written with the X-aligned unit cell instead - of the actual unit cell. +This means that the frame will be written with the X-aligned unit cell instead of the actual unit cell. Imaging will not be possible with a trajectory written this way. - Currently the only trajectory formats that support writing non-X-aligned - cells are the Gromacs TRR and XTC formats. + Currently the only trajectory formats that support writing non-X-aligned cells are the Gromacs TRR and XTC formats. \end_layout \begin_layout Standard -If unit cell information is no longer needed, it can be removed (via e.g. +If unit cell information is no longer needed, + it can be removed (via e.g. the \series bold \emph on box \series default \emph default - action, the + action, + the \series bold \emph on strip @@ -19343,7 +21746,8 @@ strip \series bold 'nobox' \series default - keyword, etc.) to prevent these warnings from triggering. + keyword, + etc.) to prevent these warnings from triggering. \end_layout \begin_layout Subsubsection @@ -19386,22 +21790,23 @@ Options for pdb format \begin_deeper \begin_layout Description -dumpq PQR format; write charges (in units of e-) and GB radii to occupancy - and B-factor columns respectively. +dumpq PQR format; + write charges (in units of e-) and GB radii to occupancy and B-factor columns respectively. \end_layout \begin_layout Description -parse PQR format; write charges and PARSE radii to occupancy/B-factor columns. +parse PQR format; + write charges and PARSE radii to occupancy/B-factor columns. \end_layout \begin_layout Description -vdw PQR format; write charges and vdW radii to occupancy/B-factor columns. +vdw PQR format; + write charges and vdW radii to occupancy/B-factor columns. \end_layout \begin_layout Description pdbres Use PDB V3 residue names. - Will write a default chain ID ('Z') for each residue if the corresponding - topology does not have chain ID information. + Will write a default chain ID ('Z') for each residue if the corresponding topology does not have chain ID information. \end_layout \begin_layout Description @@ -19414,7 +21819,8 @@ pdbv3 Use PDB V3 residue/atom names. \end_layout \begin_layout Description -topresnum Use topology residue numbers; otherwise use original residue numbers. +topresnum Use topology residue numbers; + otherwise use original residue numbers. \end_layout \begin_layout Description @@ -19434,13 +21840,11 @@ noter Do not write TER cards. \end_layout \begin_layout Description -model (Default) Frames will be written to a single PDB file separated by - MODEL/ENDMDL keywords. +model (Default) Frames will be written to a single PDB file separated by MODEL/ENDMDL keywords. \end_layout \begin_layout Description -multi Each frame will be written to a separate file with the frame # appended - to <filename>. +multi Each frame will be written to a separate file with the frame # appended to <filename>. \end_layout \begin_layout Description @@ -19456,7 +21860,8 @@ sg \begin_inset space ~ \end_inset -<group> Space group for CRYST1 record; only used if box coordinates written. +<group> Space group for CRYST1 record; + only used if box coordinates written. \end_layout \begin_layout Description @@ -19472,13 +21877,14 @@ conectmode \begin_inset space ~ \end_inset -<m> Write CONECT records for <m>='all' (all bonds), 'het' (HETATM only), +<m> Write CONECT records for <m>='all' (all bonds), + 'het' (HETATM only), 'none' (no CONECT). \end_layout \begin_layout Description -keepext Keep filename extension; write '<name>.<num>.<ext>' instead (implies - 'multi'). +keepext Keep filename extension; + write '<name>.<num>.<ext>' instead (implies 'multi'). \end_layout \begin_layout Description @@ -19518,13 +21924,11 @@ occdata \end_layout \begin_layout Description -bfacbyres If specified assume X values in B-factor data set are residue - numbers. +bfacbyres If specified assume X values in B-factor data set are residue numbers. \end_layout \begin_layout Description -occbyres If specified assume X values in occupancy data set are residue - numbers. +occbyres If specified assume X values in occupancy data set are residue numbers. \end_layout \begin_layout Description @@ -19563,13 +21967,15 @@ adpdata atomicfluct \series default \emph default - command, + command, + \begin_inset CommandInset ref LatexCommand vpageref reference "subsec:cpptraj_atomicfluct" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -19593,20 +21999,21 @@ Options for Amber ASCII format: \begin_deeper \begin_layout Description -remdtraj Write REMD header to trajectory that includes temperature: 'REMD - <Replica> <Step> <Total_Steps> <Temperature>'. +remdtraj Write REMD header to trajectory that includes temperature: + 'REMD <Replica> <Step> <Total_Steps> <Temperature>'. Since \shape italic cpptraj \shape default - has no concept of replica number, 0 is printed for <Replica>. + has no concept of replica number, + 0 is printed for <Replica>. <Step> and <Total_Steps> are set to the current frame #. \end_layout \begin_layout Description highprecision (EXPERT USE ONLY) Write with 8.6 precision instead of 8.3. - Note that since the width does not change, the precision of large coords - may be lower than 6. + Note that since the width does not change, + the precision of large coords may be lower than 6. \end_layout \begin_layout Description @@ -19677,8 +22084,7 @@ Options for Amber Restart/NetCDF Restart format: \end_layout \begin_layout LyX-Code - [remdtraj] [novelocity] [notime] [time0 <initial time>] [dt <timestep>] - [keepext] + [remdtraj] [novelocity] [notime] [time0 <initial time>] [dt <timestep>] [keepext] \begin_inset Separator latexpar \end_inset @@ -19688,8 +22094,7 @@ Options for Amber Restart/NetCDF Restart format: \begin_deeper \begin_layout Description remdtraj Write replica temperature to restart. - Note that this will automatically include time in the restart file (see - the + Note that this will automatically include time in the restart file (see the \series bold time0 \family typewriter @@ -19721,7 +22126,8 @@ dt \end_layout \begin_layout Description -keepext Keep filename extension; write '<name>.<num>.<ext>' instead. +keepext Keep filename extension; + write '<name>.<num>.<ext>' instead. \end_layout \end_deeper @@ -19737,7 +22143,8 @@ Options for CHARMM COORdinates: \begin_deeper \begin_layout Description -keepext Keep filename extension; write '<name>.<num>.<ext>' +keepext Keep filename extension; + write '<name>.<num>.<ext>' \end_layout \begin_layout Description @@ -19802,8 +22209,7 @@ shape Force writing box info as CHARMM shape matrix (XX XY YY XZ YZ ZZ). \end_layout \begin_layout Description -namdcell Force writing box info as NAMD unit cell (X cos(g) Y cos(b) cos(a) - Z). +namdcell Force writing box info as NAMD unit cell (X cos(g) Y cos(b) cos(a) Z). \end_layout @@ -19813,10 +22219,9 @@ charmmcell Force writing box info as old CHARMM unit cell (X Y Z a b g). \end_deeper \begin_layout Standard -Note that by default CPPTRAJ will try to write the symmetric shape matrix - if box information is present. - If this is not possible, CPPTRAJ will fall back to writing unit cell parameters - (lengths and angles) as long as the cell is X-aligned. +Note that by default CPPTRAJ will try to write the symmetric shape matrix if box information is present. + If this is not possible, + CPPTRAJ will fall back to writing unit cell parameters (lengths and angles) as long as the cell is X-aligned. For more information see \begin_inset CommandInset ref LatexCommand vref @@ -19824,6 +22229,7 @@ reference "subsec:cpptraj-Options-for-CHARMM" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -19848,7 +22254,8 @@ dt Time step tp multiply set numbers by (default 1.0). \end_deeper \begin_layout Standard -Note: these formats can write rotated (i.e. +Note: + these formats can write rotated (i.e. non-X-aligned) unit cells. \end_layout @@ -19868,13 +22275,11 @@ Options for mol2 format: \begin_deeper \begin_layout Description -single (Default) Frames will be written to a single Mol2 file separated - by MOLECULE keywords. +single (Default) Frames will be written to a single Mol2 file separated by MOLECULE keywords. \end_layout \begin_layout Description -multi Each frame will be written to a separate file with the frame # appended - to <filename>. +multi Each frame will be written to a separate file with the frame # appended to <filename>. \end_layout \begin_layout Description @@ -19891,8 +22296,12 @@ sybylbond File containing Amber to SYBYL bond type correspondance (optional). \end_layout \begin_layout Description -keepext Keep filename extension; write '<name>.<num>.<ext>' instead (implies - 'multi'). +keepext Keep filename extension; + write '<name>.<num>.<ext>' instead (implies 'multi'). +\end_layout + +\begin_layout Description +atombondorder Sort bonds by first atom index (will produce Mol2 files similar to LEaP). \end_layout \end_deeper @@ -19924,8 +22333,7 @@ Options for XYZ format: \end_layout \begin_layout LyX-Code -[ftype {namexyz|atomxyz|xyz}] [titletype {none|single|perframe}] [width - <#>] [prec <#>] +[ftype {namexyz|atomxyz|xyz}] [titletype {none|single|perframe}] [width <#>] [prec <#>] \end_layout \begin_deeper @@ -19934,16 +22342,16 @@ ftype \begin_inset space ~ \end_inset -{atomxyz|xyz} Choose either 'NAME X Y Z' (default), 'ATOM X Y Z', or 'X - Y Z' output format. +{atomxyz|xyz} Choose either 'NAME X Y Z' (default), + 'ATOM X Y Z', + or 'X Y Z' output format. \series bold 'namexyz' \series default - format is the standard XYZ format, where each frame is preceded by the - number of atoms and a comment. - The comment written by CPPTRAJ will include the set number and box information - (if present). + format is the standard XYZ format, + where each frame is preceded by the number of atoms and a comment. + The comment written by CPPTRAJ will include the set number and box information (if present). \end_layout \begin_layout Description @@ -19951,8 +22359,9 @@ titletype \begin_inset space ~ \end_inset -{none|single|perframe} No title, one title (default), or title before every - frame. +{none|single|perframe} No title, + one title (default), + or title before every frame. Only applies if not \series bold 'namexyz' @@ -20005,8 +22414,9 @@ trajin ensemble \series default \emph default - commands one at a time and extract derived data, modify the coordinates/topolog -y in some way, or both. + commands one at a time and extract derived data, + modify the coordinates/topology in some way, + or both. Most Actions in \shape italic cpptraj @@ -20030,15 +22440,15 @@ ptraj rmsd \series default \emph default - Action, or the ability to write out stripped topologies for visualization - in the + Action, + or the ability to write out stripped topologies for visualization in the \series bold \emph on strip \series default \emph default - Action), while other Actions produce slightly different output (like the - + Action), + while other Actions produce slightly different output (like the \series bold \emph on hbond @@ -20054,9 +22464,8 @@ secstruct \end_layout \begin_layout Standard -Unlike some other command types, when an Action command is issued it is - by default added to the Action queue and is not executed until trajectory - processing is started (e.g. +Unlike some other command types, + when an Action command is issued it is by default added to the Action queue and is not executed until trajectory processing is started (e.g. by a \series bold \emph on @@ -20070,8 +22479,8 @@ go \series default \emph default command). - However, Actions can be executed immediately on COORDS data sets via the - + However, + Actions can be executed immediately on COORDS data sets via the \series bold \emph on crdaction @@ -20081,6 +22490,7 @@ crdaction \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_crdaction" +nolink "false" \end_inset @@ -20088,10 +22498,10 @@ reference "subsec:cpptraj_crdaction" \end_layout \begin_layout Standard -When a frame is modified by an Action, it is modified for every Action that - follows them during trajectory processing. - For example, given a solvated system with water residues named WAT and - the following Action commands: +When a frame is modified by an Action, + it is modified for every Action that follows them during trajectory processing. + For example, + given a solvated system with water residues named WAT and the following Action commands: \end_layout \begin_layout LyX-Code @@ -20113,14 +22523,14 @@ the first rms \series default \emph default - command will be valid, but the second + command will be valid, + but the second \series bold \emph on rms \series default \emph default - command will not since all residues named WAT are removed from the state - by the + command will not since all residues named WAT are removed from the state by the \series bold \emph on strip @@ -20130,27 +22540,29 @@ strip \end_layout \begin_layout Standard -Note that for commands which can use a reference mask as well as a target - mask (e.g. +Note that for commands which can use a reference mask as well as a target mask (e.g. \series bold \emph on rms \series default \emph default -, +, + \series bold \emph on drmsd \series default \emph default -, +, + \series bold \emph on symmrmsd \series default \emph default -, etc.) there must be a 1 to 1 correspondence between the atoms in each mask, +, + etc.) there must be a 1 to 1 correspondence between the atoms in each mask, i.e. the \emph on @@ -20161,8 +22573,7 @@ number of atoms and the ordering of selected atoms must be the same \begin_layout Standard The following Actions are available. - If an Action may modify coordinate/topology information for subsequent - Actions it is denoted with an X in the + If an Action may modify coordinate/topology information for subsequent Actions it is denoted with an X in the \family typewriter \series bold Mod @@ -20368,7 +22779,8 @@ Calculate average correlation between motions of specified atoms. \begin_inset Text \begin_layout Plain Layout -atomicfluct, rmsf +atomicfluct, + rmsf \end_layout \end_inset @@ -20493,7 +22905,8 @@ avgbox \begin_inset Text \begin_layout Plain Layout -Calculate average unit cell (box), primarily for unwrapping NPT trajectories. +Calculate average unit cell (box), + primarily for unwrapping NPT trajectories. \end_layout \end_inset @@ -20601,7 +23014,8 @@ X \begin_inset Text \begin_layout Plain Layout -check, checkoverlap, +check, + checkoverlap, \end_layout \end_inset @@ -20669,7 +23083,8 @@ checkchirality \begin_inset Text \begin_layout Plain Layout -Report chirality around alpha carbons in amino acids (L, D). +Report chirality around alpha carbons in amino acids (L, + D). \end_layout \end_inset @@ -20689,7 +23104,8 @@ Report chirality around alpha carbons in amino acids (L, D). \begin_inset Text \begin_layout Plain Layout -closest, closestwaters +closest, + closestwaters \end_layout \end_inset @@ -20698,8 +23114,7 @@ closest, closestwaters \begin_inset Text \begin_layout Plain Layout -Retain only the specified number of solvent molecules closest to specified - solute. +Retain only the specified number of solvent molecules closest to specified solute. \end_layout \end_inset @@ -20728,8 +23143,7 @@ clusterdihedral \begin_inset Text \begin_layout Plain Layout -Assign frames into clusters based on binning of backbone dihedral angles - in amino acids. +Assign frames into clusters based on binning of backbone dihedral angles in amino acids. \end_layout \end_inset @@ -20764,7 +23178,8 @@ Older version of nativecontacts \series default \emph default -, retained for backwards compatibility. +, + retained for backwards compatibility. \end_layout \end_inset @@ -20929,7 +23344,8 @@ Calculate the dihedral angle using four points. \begin_inset Text \begin_layout Plain Layout -dihrms, +dihrms, + \end_layout \begin_layout Plain Layout @@ -20972,7 +23388,8 @@ dipole \begin_layout Plain Layout Bin dipoles of solvent molecules in 3D grid. - Not well tested, may be obsolete. + Not well tested, + may be obsolete. \end_layout \end_inset @@ -21021,7 +23438,8 @@ Calculate the distance between two points. \begin_inset Text \begin_layout Plain Layout -drms, drmsd +drms, + drmsd \end_layout \end_inset @@ -21050,7 +23468,8 @@ Calculate the RMSD of distance pairs within selected atoms. \begin_inset Text \begin_layout Plain Layout -dssp, secstruct +dssp, + secstruct \end_layout \end_inset @@ -21117,8 +23536,10 @@ energy \begin_inset Text \begin_layout Plain Layout -Calculate simple bond, angle, dihedral, and non-bonded energy terms (no - PME). +Calculate simple bond, + angle, + dihedral, + and non-bonded energy terms (no PME). \end_layout \end_inset @@ -21147,8 +23568,8 @@ esander \begin_inset Text \begin_layout Plain Layout -Calculate energies using via SANDER; requires compilation with the SANDER - API. +Calculate energies using via SANDER; + requires compilation with the SANDER API. \end_layout \end_inset @@ -21474,8 +23895,7 @@ lie \begin_inset Text \begin_layout Plain Layout -Calculate linear interaction energy between user-specified ligand and surroundin -gs. +Calculate linear interaction energy between user-specified ligand and surroundings. \end_layout \end_inset @@ -21651,8 +24071,7 @@ mindist/maxdist \begin_inset Text \begin_layout Plain Layout -Calculate the minimum or maximum distance between pairs of atoms/residues/molecu -les. +Calculate the minimum or maximum distance between pairs of atoms/residues/molecules. \end_layout \end_inset @@ -21827,8 +24246,7 @@ nativecontacts \begin_inset Text \begin_layout Plain Layout -Calculate native contacts within a region or between two regions using a - given reference. +Calculate native contacts within a region or between two regions using a given reference. \end_layout @@ -22052,7 +24470,8 @@ Calculate ring pucker using five or six points. \begin_inset Text \begin_layout Plain Layout -radgyr, rog +radgyr, + rog \end_layout \end_inset @@ -22081,7 +24500,8 @@ Calculate radius of gyration (and optionally tensor) for specified atoms. \begin_inset Text \begin_layout Plain Layout -radial, rdf +radial, + rdf \end_layout \end_inset @@ -22177,8 +24597,7 @@ replicatecell \begin_inset Text \begin_layout Plain Layout -Replicate unit cell in specified (or all) directions for specfied atoms - and write to trajectory. +Replicate unit cell in specified (or all) directions for specfied atoms and write to trajectory. \end_layout \end_inset @@ -22198,7 +24617,8 @@ Replicate unit cell in specified (or all) directions for specfied atoms \begin_inset Text \begin_layout Plain Layout -rms, rmsd +rms, + rmsd \end_layout \end_inset @@ -22265,8 +24685,9 @@ rotate \begin_inset Text \begin_layout Plain Layout -Rotate the system around X/Y/Z axes, a specified axis, or via given rotation - matrices. +Rotate the system around X/Y/Z axes, + a specified axis, + or via given rotation matrices. \end_layout \end_inset @@ -22286,7 +24707,8 @@ X \begin_inset Text \begin_layout Plain Layout -runavg, +runavg, + \end_layout \end_inset @@ -22435,8 +24857,7 @@ spam \begin_inset Text \begin_layout Plain Layout -SPAM method for estimating relative free energies of waters in hydration - shell around proteins. +SPAM method for estimating relative free energies of waters in hydration shell around proteins. \end_layout \end_inset @@ -22465,8 +24886,7 @@ stfcdiffusion \begin_inset Text \begin_layout Plain Layout -Alternative translational diffusion calculation which can calculate diffusion - in specified regions. +Alternative translational diffusion calculation which can calculate diffusion in specified regions. \end_layout \end_inset @@ -22661,7 +25081,8 @@ Calculate diffusion using the toroidal-view-preserving scheme. \begin_inset Text \begin_layout Plain Layout -trans, translate +trans, + translate \end_layout \end_inset @@ -22740,7 +25161,8 @@ Reverse of image \series default \emph default -; unwrap selected atoms so they have continuous trajectories. +; + unwrap selected atoms so they have continuous trajectories. \end_layout \end_inset @@ -22827,7 +25249,8 @@ volmap \begin_inset Text \begin_layout Plain Layout -Create volumetric map for specified coordinates; similar to +Create volumetric map for specified coordinates; + similar to \series bold \emph on grid @@ -22927,8 +25350,7 @@ watershell \begin_inset Text \begin_layout Plain Layout -Calculate the number of waters in the first and second solvation shells - based on distance critera. +Calculate the number of waters in the first and second solvation shells based on distance critera. \end_layout \end_inset @@ -22957,8 +25379,7 @@ xtalsymm \begin_inset Text \begin_layout Plain Layout -Re-image coordinates based on crystal space group symmetry operations and - asymmetric unit volume. +Re-image coordinates based on crystal space group symmetry operations and asymmetric unit volume. \end_layout \end_inset @@ -23073,8 +25494,7 @@ name>] New residue name for the new atom. \begin_inset space ~ \end_inset -<prefix>] Write out modified topology file with name '<prefix>.<Original - Topology Name>'. +<prefix>] Write out modified topology file with name '<prefix>.<Original Topology Name>'. \end_layout \begin_layout Description @@ -23109,16 +25529,18 @@ dummy \end_inset atom for subsequent actions to use. - For example, this can be used in conjunction with the + For example, + this can be used in conjunction with the \series bold \emph on 'mask' \series default \emph default - command in order to get a list of atoms within a certain distance of a - specified point in space. - For example, the following input gets a list of atoms within 3.0 Angstroms - of coordinates 1, 1, 1: + command in order to get a list of atoms within a certain distance of a specified point in space. + For example, + the following input gets a list of atoms within 3.0 Angstroms of coordinates 1, + 1, + 1: \end_layout \begin_layout LyX-Code @@ -23215,8 +25637,7 @@ refindex <#> \series default - Use previously read in reference structure specified by <#> (based on order - read in). + Use previously read in reference structure specified by <#> (based on order read in). \end_layout \begin_layout Description @@ -23232,13 +25653,12 @@ reftraj \begin_inset space ~ \end_inset -<name> Use frames from COORDS set <name> or read in from trajectory file - <name> as references. - Each frame from <name> is used in turn, so that frame 1 is compared to - frame 1 from <name>, frame 2 is compared to frame 2 from <name> and so - on. - If <trajname> runs out of frames before processing is complete, the last - frame of <trajname> continues to be used as the reference. +<name> Use frames from COORDS set <name> or read in from trajectory file <name> as references. + Each frame from <name> is used in turn, + so that frame 1 is compared to frame 1 from <name>, + frame 2 is compared to frame 2 from <name> and so on. + If <trajname> runs out of frames before processing is complete, + the last frame of <trajname> continues to be used as the reference. \begin_inset Separator latexpar \end_inset @@ -23267,15 +25687,17 @@ parmindex \series bold reftraj \series default - specifies a trajectory file, associate it with specified topology; if not - specified the first topology is used. + specifies a trajectory file, + associate it with specified topology; + if not specified the first topology is used. \end_layout \end_deeper \end_deeper \begin_layout Standard Align structure using specified <mask> onto reference. - If 'move' is specified, only move atoms in the move mask. + If 'move' is specified, + only move atoms in the move mask. \end_layout \begin_layout Subsection @@ -23285,6 +25707,8 @@ angle \begin_layout LyX-Code angle \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -23327,9 +25751,11 @@ name>] Output data set name. \end_deeper \begin_layout Standard -Calculate angle (in degrees) between atoms in <mask1>, <mask2>, and <mask3>. - For example, to calculate the angle between the first three atoms in the - system: +Calculate angle (in degrees) between atoms in <mask1>, + <mask2>, + and <mask3>. + For example, + to calculate the angle between the first three atoms in the system: \end_layout \begin_layout LyX-Code @@ -23376,8 +25802,8 @@ areapermol [<name>] {[<mask1>] [nlayers <#>] | nmols <#>} [out <filename>] \begin_inset space ~ \end_inset -<#>] If <mask1> is not specified, the number of molecules to use when calculatin -g area per molecule. +<#>] If <mask1> is not specified, + the number of molecules to use when calculating area per molecule. \end_layout \begin_layout Description @@ -23396,11 +25822,10 @@ g area per molecule. \end_deeper \begin_layout Standard Calculate area per molecule as Area / # molecules. - The area is determined from the specified cross-section of the box (X-Y - by default). - Currently the calculation is only guaranteed to work properly with orthorhombic - unit cells. - For example, to get the area per molecule of residues named + The area is determined from the specified cross-section of the box (X-Y by default). + Currently the calculation is only guaranteed to work properly with orthorhombic unit cells. + For example, + to get the area per molecule of residues named \begin_inset Quotes eld \end_inset @@ -23461,24 +25886,23 @@ min \begin_inset space ~ \end_inset -spacing> Only calculate correlations for motion vectors spaced <min spacing> - apart. +spacing> Only calculate correlations for motion vectors spaced <min spacing> apart. \end_layout \begin_layout Description -byatom Default; calculate atomic motion vectors. +byatom Default; + calculate atomic motion vectors. \end_layout \begin_layout Description -byres Calculate motion vectors for entire residues (selected atoms in residues - only). +byres Calculate motion vectors for entire residues (selected atoms in residues only). \end_layout \end_deeper \begin_layout Standard Calculate average correlations between the motion of atoms in <mask>. - For each frame, a motion vector is calculated for each selected atom from - its previous position to its current position. + For each frame, + a motion vector is calculated for each selected atom from its previous position to its current position. For each pair of motion vectors \shape italic Va @@ -23487,8 +25911,8 @@ Va \shape italic Vb \shape default -, the average correlation between those vectors is calculated as the average - of the dot product of those vectors over all +, + the average correlation between those vectors is calculated as the average of the dot product of those vectors over all \shape italic N \shape default @@ -23509,10 +25933,10 @@ N \end_layout \begin_layout Standard -The value of AvgCorr can range from 1.0 (correlated) to 0.0 (no correlation) - to -1.0 (anti-correlated). - For example, to calculate the correlation of motion vectors between residues - 1 to 13, writing to a Gnuplot-readable formatted file: +The value of AvgCorr can range from 1.0 (correlated) to 0.0 (no correlation) to -1.0 (anti-correlated). + For example, + to calculate the correlation of motion vectors between residues 1 to 13, + writing to a Gnuplot-readable formatted file: \end_layout \begin_layout LyX-Code @@ -23533,6 +25957,8 @@ name "subsec:cpptraj_atomicfluct" \begin_layout LyX-Code atomicfluct \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -23574,13 +26000,12 @@ out \end_layout \begin_layout Description -[bfactor] Calculate atomic positional fluctuations squared and weight by - +[bfactor] Calculate atomic positional fluctuations squared and weight by \begin_inset Formula $\frac{8}{3}\pi^{2}$ \end_inset -; this is similar but not necessarily equivalent to the calculation of crystallo -graphic B-factors. +; + this is similar but not necessarily equivalent to the calculation of crystallographic B-factors. \end_layout \begin_layout Description @@ -23592,8 +26017,7 @@ graphic B-factors. \begin_inset space ~ \end_inset -<file>]] Calculate anisotropic displacement parameters and optionally output - them to <file>. +<file>]] Calculate anisotropic displacement parameters and optionally output them to <file>. \end_layout \begin_layout Description @@ -23602,7 +26026,8 @@ byres [pdbres] Output the average (mass-weighted) fluctuation by residue. \begin_deeper \begin_layout Description -pdbres If specified, the original residue numbering will be used. +pdbres If specified, + the original residue numbering will be used. \end_layout \begin_layout Description @@ -23611,8 +26036,7 @@ resrange \end_inset <range> Calculate fluctuations for residues in the given range argument. - The residues selected by <mask> must be a subset of residues specified - with <range>. + The residues selected by <mask> must be a subset of residues specified with <range>. Unselected residues will get a fluctuation of 0.0. \end_layout @@ -23655,8 +26079,8 @@ DataSets created \end_deeper \begin_layout Standard -Compute the atomic positional fluctuations (also referred to as root-mean-square - fluctuations, RMSF) for atoms specified in the +Compute the atomic positional fluctuations (also referred to as root-mean-square fluctuations, + RMSF) for atoms specified in the \series bold <mask> \series default @@ -23686,9 +26110,8 @@ x \begin_layout Standard Note that RMS fitting is not done implicitly. - If you want fluctuations without rotations or translations (for example - to the average structure), perform an RMS fit to the average structure - (best) or the first structure (see + If you want fluctuations without rotations or translations (for example to the average structure), + perform an RMS fit to the average structure (best) or the first structure (see \series bold \shape italic rmsd @@ -23723,9 +26146,8 @@ byres \series bold bymask \series default - are specified, the mass-weighted average of atomic fluctuations of each - atom for either each residue or the entire mask will be calculated respectively -: + are specified, + the mass-weighted average of atomic fluctuations of each atom for either each residue or the entire mask will be calculated respectively: \begin_inset Separator latexpar \end_inset @@ -23745,8 +26167,8 @@ If \series bold calcadp \series default - is specified, anisotropic displacement factors for atoms will be calculated - and written to the file specified by + is specified, + anisotropic displacement factors for atoms will be calculated and written to the file specified by \series bold adpout \series default @@ -23768,7 +26190,8 @@ With \emph on cpptraj \emph default - it is possible to perform coordinate averaging, the fit to average coordinates, + it is possible to perform coordinate averaging, + the fit to average coordinates, and the atomic fluctuation calculation in a single execution like so: \end_layout @@ -23801,8 +26224,10 @@ atomicfluct out fluct.agr \end_layout \begin_layout Standard -To write the mass-weighted B-factors for the protein backbone atoms C, CA, - and N, averaged by residue use the command: +To write the mass-weighted B-factors for the protein backbone atoms C, + CA, + and N, + averaged by residue use the command: \end_layout \begin_layout LyX-Code @@ -23810,8 +26235,8 @@ atomicfluct out back.agr @C,CA,N byres bfactor \end_layout \begin_layout Standard -To write the RMSF or atomic positional fluctuations of the same atoms, use - the command: +To write the RMSF or atomic positional fluctuations of the same atoms, + use the command: \end_layout \begin_layout LyX-Code @@ -23819,8 +26244,7 @@ atomicfluct out backbone-atoms.agr @C,CA,N \end_layout \begin_layout Standard -To write a PDB of averaged coordinates (after fitting to the first frame) - with both B-factors and anisotropic temperature factors: +To write a PDB of averaged coordinates (after fitting to the first frame) with both B-factors and anisotropic temperature factors: \end_layout \begin_layout LyX-Code @@ -23858,6 +26282,8 @@ atommap \begin_layout LyX-Code atommap \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -23912,6 +26338,7 @@ Target atoms that cannot be mapped to a reference atom are denoted \end_inset — + \begin_inset Quotes erd \end_inset @@ -23923,8 +26350,7 @@ maponly Write atom map but do not reorder atoms. \end_layout \begin_layout Description -rmsfit Any input frames using the same topology as <target> will be RMS - fit to <reference> using whatever atoms could be mapped. +rmsfit Any input frames using the same topology as <target> will be RMS fit to <reference> using whatever atoms could be mapped. \begin_inset Separator latexpar \end_inset @@ -23937,13 +26363,14 @@ rmsout \begin_inset space ~ \end_inset -<rmsout> If rmsfit specified, write resulting RMSDs to <rmsout>. +<rmsout> If rmsfit specified, + write resulting RMSDs to <rmsout>. \end_layout \end_deeper \begin_layout Description -changenames If specified, change names of mapped atoms in <target> to match - those in <reference>. +changenames If specified, + change names of mapped atoms in <target> to match those in <reference>. \end_layout \begin_layout Description @@ -23951,45 +26378,39 @@ chiralimpcut \begin_inset space ~ \end_inset -<cut> sets the improper dihedral angle cutoff for determining mapping via - chirality (default 10 deg.). +<cut> sets the improper dihedral angle cutoff for determining mapping via chirality (default 10 deg.). \end_layout \end_deeper \begin_layout Standard -Attempt to map the atoms of <target> to those of <reference> based on structural - similarity. +Attempt to map the atoms of <target> to those of <reference> based on structural similarity. This is useful e.g. - when there are two files containing the same structure but with different - atom names or atom ordering. - Both <target> and <reference> need to have been read in with a previous - + when there are two files containing the same structure but with different atom names or atom ordering. + Both <target> and <reference> need to have been read in with a previous \series bold \shape italic reference \series default \shape default command. - The state will then be modified so that any trajectory read in with the - same parameter file as <target> will have its atoms mapped (i.e. + The state will then be modified so that any trajectory read in with the same parameter file as <target> will have its atoms mapped (i.e. reordered) to match those of <reference>. - If the number of atoms that can be mapped in <target> are less than those - in <reference>, the reference structure specified by <reference> will be - modified to include only mapped atoms; this is useful if for example the - reference structure is protonated with respect to the target. + If the number of atoms that can be mapped in <target> are less than those in <reference>, + the reference structure specified by <reference> will be modified to include only mapped atoms; + this is useful if for example the reference structure is protonated with respect to the target. The \series bold rmsfit \series default - keyword is useful in cases where the atom mapping will not be complete - (e.g. + keyword is useful in cases where the atom mapping will not be complete (e.g. two ligands with the same scaffold but different substituents). If \series bold changenames \series default - is specified, in addition to remapping, the target atom names will be changed - to match the reference atom names. + is specified, + in addition to remapping, + the target atom names will be changed to match the reference atom names. \end_layout \begin_layout Standard @@ -24003,22 +26424,22 @@ improper \end_inset dihedral angles to determine the orientation of the bonded atoms. - By default the code assumes the orientation of the atoms around the chiral - centers are fairly close, hence there is a small improper dihedral angle - cutoff of 10 degrees. - However, this can be increased via the + By default the code assumes the orientation of the atoms around the chiral centers are fairly close, + hence there is a small improper dihedral angle cutoff of 10 degrees. + However, + this can be increased via the \series bold chiralimpcut \series default - keyword to handle cases where one structure is distorted with respect to - the other. + keyword to handle cases where one structure is distorted with respect to the other. \end_layout \begin_layout Standard -For example, say you have the same ligand structure in two files, Ref.mol2 - and Lig.mol2, but the atom ordering in each file is different. - To map the atoms in Lig.mol2 onto those of Ref.mol2 so that Lig.mol2 has the - same ordering as Ref.mol2: +For example, + say you have the same ligand structure in two files, + Ref.mol2 and Lig.mol2, + but the atom ordering in each file is different. + To map the atoms in Lig.mol2 onto those of Ref.mol2 so that Lig.mol2 has the same ordering as Ref.mol2: \end_layout \begin_layout LyX-Code @@ -24079,7 +26500,8 @@ anchor \begin_inset space ~ \end_inset -<mask>] Atoms to image around; this is the region that will be centered. +<mask>] Atoms to image around; + this is the region that will be centered. Default is the entire first molecule. \end_layout @@ -24088,8 +26510,8 @@ anchor \begin_inset space ~ \end_inset -<mask>] Molecules that should remain 'fixed' to the anchor region; default - is all non-ion/non-solvent molecules. +<mask>] Molecules that should remain 'fixed' to the anchor region; + default is all non-ion/non-solvent molecules. \end_layout \begin_layout Description @@ -24097,23 +26519,24 @@ anchor \begin_inset space ~ \end_inset -<mask>] Molecules that can be freely imaged; default is all ion/solvent - molecules. +<mask>] Molecules that can be freely imaged; + default is all ion/solvent molecules. \end_layout \begin_layout Description -[origin] Center anchor region at the origin; if not specified, center at - box center. +[origin] Center anchor region at the origin; + if not specified, + center at box center. \end_layout \begin_layout Description -[firstatom] Image based on molecule first atom; default is to image by molecule - center of mass. +[firstatom] Image based on molecule first atom; + default is to image by molecule center of mass. \end_layout \begin_layout Description -[familiar] Image to familiar truncated-octahedral shape; this is on by default - if the original cell is truncated octahedron. +[familiar] Image to familiar truncated-octahedral shape; + this is on by default if the original cell is truncated octahedron. \end_layout \begin_layout Description @@ -24129,9 +26552,9 @@ fixed \begin_inset Quotes erd \end_inset - molecules, the anchor point will be set to the previous "fixed" molecule; - this is only expected to work well when "fixed" molecules that are sequential - are also geometrically close. + molecules, + the anchor point will be set to the previous "fixed" molecule; + this is only expected to work well when "fixed" molecules that are sequential are also geometrically close. Most useful in more condensed systems like those containing membranes. \end_layout @@ -24150,8 +26573,7 @@ bydist The default. \end_layout \begin_layout Description -byvec Fixed molecules will use the image closest to their orientation with - respect to the anchor in the first frame. +byvec Fixed molecules will use the image closest to their orientation with respect to the anchor in the first frame. May work better than \series bold 'bydist' @@ -24162,8 +26584,7 @@ byvec Fixed molecules will use the image closest to their orientation with \end_deeper \end_deeper \begin_layout Standard -Automatically center and image (by molecule) a trajectory with periodic - boundaries. +Automatically center and image (by molecule) a trajectory with periodic boundaries. For most cases just specifying \series bold \shape italic @@ -24175,7 +26596,8 @@ Automatically center and image (by molecule) a trajectory with periodic \series bold 'anchor' \series default - region (default the entire first molecule) will be centered; all + region (default the entire first molecule) will be centered; + all \series bold 'fixed' \series default @@ -24196,13 +26618,13 @@ Automatically center and image (by molecule) a trajectory with periodic \end_layout \begin_layout Standard -The autoimage command works for the majority of systems; however, for very - densely packed systems the default anchor (entire first molecule) may not - be appropriate. - In these cases, it is recommended to choose as the anchor a small region - which should lie near the center of your system. - For example, in a protein dimer system one could choose a single residue - that is near the center of the interface between the two monomers. +The autoimage command works for the majority of systems; + however, + for very densely packed systems the default anchor (entire first molecule) may not be appropriate. + In these cases, + it is recommended to choose as the anchor a small region which should lie near the center of your system. + For example, + in a protein dimer system one could choose a single residue that is near the center of the interface between the two monomers. The \series bold 'moveanchor' @@ -24215,8 +26637,8 @@ The autoimage command works for the majority of systems; however, for very \series bold byvec' \series default - options may also help in cases where the system is more condensed, such - as those containing membranes. + options may also help in cases where the system is more condensed, + such as those containing membranes. \end_layout \begin_layout Subsection @@ -24233,6 +26655,8 @@ name "subsec:cpptraj-average" \begin_layout LyX-Code average \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -24258,8 +26682,8 @@ average \begin_deeper \begin_layout Description -<filename> If specified, write averaged coordinates to <filename> (not compatibl -e with crdset). +<filename> If specified, + write averaged coordinates to <filename> (not compatible with crdset). \end_layout \begin_layout Description @@ -24271,8 +26695,8 @@ crdset \begin_inset space ~ \end_inset -name> If specified, save averaged coordinates to COORDS set <set name> (not - compatible with <filename>). +name> If specified, + save averaged coordinates to COORDS set <set name> (not compatible with <filename>). \end_layout \begin_layout Description @@ -24318,8 +26742,8 @@ cpptraj \series bold <mask> \series default - are less than the total number of atoms, the topology will be stripped - to match + are less than the total number of atoms, + the topology will be stripped to match \series bold <mask> \series default @@ -24328,13 +26752,11 @@ cpptraj \end_layout \begin_layout Standard -Note that since coordinates are being averaged over many frames, resulting - structures may appear distorted. - For example, if one averages the coordinates of a freely rotating methyl - group the average position of the hydrogen atoms will be close to the center - of rotation. - Also note that typically one will want to remove global rotational and - translation movement prior to this command by using e.g. +Note that since coordinates are being averaged over many frames, + resulting structures may appear distorted. + For example, + if one averages the coordinates of a freely rotating methyl group the average position of the hydrogen atoms will be close to the center of rotation. + Also note that typically one will want to remove global rotational and translation movement prior to this command by using e.g. the \series bold \emph on @@ -24345,6 +26767,7 @@ rms \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-rmsd" +nolink "false" \end_inset @@ -24362,13 +26785,13 @@ trajout \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-trajout" +nolink "false" \end_inset -) can be passed to this command in order to control the format of the output - coordinates. - For example, to write out a PDB file containing the averaged coordinates - over all frames: +) can be passed to this command in order to control the format of the output coordinates. + For example, + to write out a PDB file containing the averaged coordinates over all frames: \end_layout \begin_layout LyX-Code @@ -24376,8 +26799,7 @@ average test.pdb pdb \end_layout \begin_layout Standard -To write out a mol2 file containing only the averaged coordinates of residues - 1 to 10 for frames 1 to 100: +To write out a mol2 file containing only the averaged coordinates of residues 1 to 10 for frames 1 to 100: \end_layout \begin_layout LyX-Code @@ -24385,8 +26807,7 @@ average test.mol2 mol2 start 1 stop 100 :1-10 \end_layout \begin_layout Standard -To create an average structure of atoms named CA and then use it as a reference - for an rms command in a subsequent run: +To create an average structure of atoms named CA and then use it as a reference for an rms command in a subsequent run: \end_layout \begin_layout LyX-Code @@ -24451,22 +26872,22 @@ DataSets created: \end_deeper \begin_layout Standard -Calculate the average unit cell vectors for incoming frames and store them - in a 3x3 matrix data set, The average unit cell is particularly useful - when unwrapping trajectories from NPT simulations where the box size fluctuates - (see the +Calculate the average unit cell vectors for incoming frames and store them in a 3x3 matrix data set, + The average unit cell is particularly useful when unwrapping trajectories from NPT simulations where the box size fluctuates (see the \series bold \emph on unwrap \series default \emph default - command, + command, + \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_unwrap" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -24474,23 +26895,22 @@ noprefix "false" \end_layout \begin_layout Standard -If writing to a .dat file, the output will look something like: +If writing to a .dat file, + the output will look something like: \end_layout \begin_layout LyX-Code -#Frame - MyBox[avg] +#Frame MyBox[avg] \end_layout \begin_layout LyX-Code - 1 42.433046075 0.000000000 0.000000000 -14.144347550 40.006259905 0.00000000 -0 -14.144347550 -20.003127532 34.646438786 + 1 42.433046075 0.000000000 0.000000000 -14.144347550 40.006259905 0.000000000 -14.144347550 -20.003127532 34.646438786 \end_layout \begin_layout Standard Where the first 3 floating point numbers are the average X unit cell vector, - the next 3 floating point numbers are the average Y unit cell vector, and - the last 3 floating point numbers are the average Z unit cell vector. + the next 3 floating point numbers are the average Y unit cell vector, + and the last 3 floating point numbers are the average Z unit cell vector. \end_layout \begin_layout Subsection @@ -24561,7 +26981,8 @@ bounds [<mask>] [out <filename>] \end_inset <dz>]] Triggers creation of a grid data set from bounds. - Spacings of generated grid in the X, Y and Z directions. + Spacings of generated grid in the X, + Y and Z directions. If only dx is specified <dx> will be used for <dy> and <dz> as well. \end_layout @@ -24635,8 +27056,8 @@ Calculate the boundaries (i.e. grid \series default \shape default - command, and can be used to generate a grid data set that can be used by - + command, + and can be used to generate a grid data set that can be used by \series bold \shape italic grid @@ -24646,6 +27067,7 @@ grid \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_grid" +nolink "false" \end_inset @@ -24657,8 +27079,7 @@ box \end_layout \begin_layout LyX-Code -box {[x <xval>] [y <yval>] [z <zval>] {[alpha <a>] [beta <b>] [gamma <g>] - | +box {[x <xval>] [y <yval>] [z <zval>] {[alpha <a>] [beta <b>] [gamma <g>] | \end_layout \begin_layout LyX-Code @@ -24751,8 +27172,7 @@ Change box length(s) to specified value(s). \end_layout \begin_layout Description -auto Set an orthogonal bounding box enclosing all atoms by the specified - radii and an optional offset. +auto Set an orthogonal bounding box enclosing all atoms by the specified radii and an optional offset. \end_layout \begin_deeper @@ -24769,8 +27189,11 @@ radii \begin_inset space ~ \end_inset -{vdw|gb|parse|none} Radii to use for each atom: van der Waals, generalized - Born, PARSE, or no radii. +{vdw|gb|parse|none} Radii to use for each atom: + van der Waals, + generalized Born, + PARSE, + or no radii. \end_layout \end_deeper @@ -24780,15 +27203,18 @@ getbox Save existing box information to a 3x3 matrix data set. \begin_deeper \begin_layout Description -{ucell|frac|shape} Specify the kind of box information to save: +{ucell|frac|shape} Specify the kind of box information to save: + \series bold ucell \series default - saves the unit cell vectors, + saves the unit cell vectors, + \series bold frac \series default - saves the fractional unit cell vectors, and + saves the fractional unit cell vectors, + and \series bold shape \series default @@ -24815,19 +27241,17 @@ out \end_deeper \begin_layout Standard Modify box information during trajectory processing. - Note that this will permanently modify the box information for topology - files during trajectory processing as well. + Note that this will permanently modify the box information for topology files during trajectory processing as well. It is possible to modify any number of the box parameters (e.g. - only the Z length can be modified if desired while leaving all other parameters - intact). - If no box is present, an orthogonal bounding box enclosing all atoms can - be created with the + only the Z length can be modified if desired while leaving all other parameters intact). + If no box is present, + an orthogonal bounding box enclosing all atoms can be created with the \series bold auto \series default keyword. - If 'getbox' is specified, the existing box information will be saved to - a data set. + If 'getbox' is specified, + the existing box information will be saved to a data set. \end_layout \begin_layout Subsection @@ -24837,6 +27261,8 @@ center \begin_layout LyX-Code center \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -24858,12 +27284,17 @@ center \begin_deeper \begin_layout Description -[<mask>] Center based on atoms in mask; default is all atoms. +[<mask>] Center based on atoms in mask; + default is all atoms. \end_layout \begin_layout Description -[origin] Center to origin (0, 0, 0); default is center to box center (X/2, - Y/2, Z/2). +[origin] Center to origin (0, + 0, + 0); + default is center to box center (X/2, + Y/2, + Z/2). \end_layout \begin_layout Description @@ -24899,8 +27330,7 @@ refindex \begin_inset space ~ \end_inset -[<refmask]] Center using coordinates in specified reference structure selected - by <refmask> (<mask> if not specified. +[<refmask]] Center using coordinates in specified reference structure selected by <refmask> (<mask> if not specified. \end_layout \end_deeper @@ -24909,13 +27339,15 @@ Move all atoms so that the center of the atoms in \series bold <mask> \series default - is centered at the specified location: box center (default), coordinate - origin, or reference coordinates. + is centered at the specified location: + box center (default), + coordinate origin, + or reference coordinates. \end_layout \begin_layout Standard -For example, to move all coordinates so that the center of mass of residue - 1 is at the center of the box: +For example, + to move all coordinates so that the center of mass of residue 1 is at the center of the box: \end_layout \begin_layout LyX-Code @@ -24924,11 +27356,20 @@ center :1 mass \begin_layout Subsection check | checkoverlap | checkstructure +\begin_inset CommandInset label +LatexCommand label +name "subsec:cpptraj-check" + +\end_inset + + \end_layout \begin_layout LyX-Code check \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -24952,6 +27393,18 @@ check \end_layout +\begin_layout LyX-Code + [{noringcheck | [ringshortdist <rsdist>] [ringdcut <ringdcut>] +\end_layout + +\begin_layout LyX-Code + [ringacut <ringacut>]}] +\end_layout + +\begin_layout LyX-Code + [{checkxp | xpmask <xpmask>}] +\end_layout + \begin_deeper \begin_layout Description [<mask>] Check structure of atoms in <mask> (all if not specified). @@ -24962,8 +27415,8 @@ check \begin_inset space ~ \end_inset -<mask2>] If specified, only check for problems between atoms in <mask> and - atoms in <mask2>. +<mask2>] If specified, + only check for problems between atoms in <mask> and atoms in <mask2>. \end_layout \begin_layout Description @@ -24979,8 +27432,8 @@ check \end_layout \begin_layout Description -[skipbadframes] If errors are encountered for a frame, subsequent actions/trajec -tory output will be skipped. +[skipbadframes] If errors are encountered for a frame, + subsequent actions/trajectory output will be skipped. \end_layout \begin_layout Description @@ -24988,8 +27441,7 @@ tory output will be skipped. \begin_inset space ~ \end_inset -<offset>] Report bond lengths greater than the equilibrium value plus <offset> - (default 1.15 Å). +<offset>] Report bond lengths greater than the equilibrium value plus <offset> (default 1.15 Å). \end_layout \begin_layout Description @@ -24997,8 +27449,7 @@ tory output will be skipped. \begin_inset space ~ \end_inset -<minoffset>] Report bond lengths less than the equilibrium value minus <minoffse -t> (default 0.5 Å). +<minoffset>] Report bond lengths less than the equilibrium value minus <minoffset> (default 0.5 Å). \end_layout \begin_layout Description @@ -25014,8 +27465,7 @@ t> (default 0.5 Å). \end_layout \begin_layout Description -[silent] Do not print information for bad frames - useful in conjunction - with the +[silent] Do not print information for bad frames - useful in conjunction with the \series bold skipbadframes \series default @@ -25027,13 +27477,76 @@ skipbadframes \begin_inset space ~ \end_inset -<cut>] Pair list cutoff (default 4.0 Å); only matters if box is present. +<cut>] Pair list cutoff (default 4.0 Å); + only matters if box is present. \end_layout +\begin_layout Description +[noringcheck] If specified, + do not check for ring-bond intersections. +\end_layout + +\begin_layout Description +[ringshortdist +\begin_inset space ~ +\end_inset + +<rsdist>] Report ring-bond intersection when ring to bond center distance is less than +\series bold +<rsdist> +\series default + (default 0.5 Ang). +\end_layout + +\begin_layout Description +[ringdcut +\begin_inset space ~ +\end_inset + +<ringdcut>] +\begin_inset space ~ +\end_inset + +[ringacut +\begin_inset space ~ +\end_inset + +<ringacut>] Report ring-bond intersection when ring to bond center distance is less than +\series bold +<ringdcut> +\series default + (default 1.25 Ang.) and the angle between the bond vector and perpendicular ring vector is less than +\series bold +<ringacut> +\series default + (default 65 degrees). +\end_layout + +\begin_layout Description +[checkxp] If specified, + check extra points as well. +\end_layout + +\begin_deeper +\begin_layout Description +xpmask +\begin_inset space ~ +\end_inset + +<xpmask> Specify mask to select extra points; + default is '&@/XP' (atom element XP). +\end_layout + +\end_deeper \end_deeper \begin_layout Standard -Check the structure and report problems related to atomic overlap/unusual - bond length. +Check the structure and report problems related to atomic overlap/unusual bond length/ring-bond intersections. + By default extra points are skipped because by design they are quite close to some atoms. + The +\series bold +checkxp +\series default + keyword can be specified to check extra points as well. Problems are reported when any two atoms in \series bold <mask> @@ -25054,13 +27567,13 @@ Check the structure and report problems related to atomic overlap/unusual \series bold <cut> \series default -; atoms that are bonded to each other are ignored (except if using the +; + atoms that are bonded to each other are ignored (except if using the \series bold 'around' \series default mask). - If bonds are being checked then bond lengths greater than their equilibrium - value plus + If bonds are being checked then bond lengths greater than their equilibrium value plus \series bold <offset> \series default @@ -25069,21 +27582,38 @@ Check the structure and report problems related to atomic overlap/unusual <minoffset> \series default are reported as well. + If ring-bond intersections are being checked for they will be reported when the ring center to bond center is less than +\series bold +<rsdist> +\series default +, + or less than +\series bold +<ringdcut> +\series default + and the angle between the bond vector and ring perpendicular vector is less than +\series bold +<ringacut> +\series default +. If box information is present and not using the \series bold 'around' \series default - mask, a pairlist will be used to speed up the calculation. + mask, + a pairlist will be used to speed up the calculation. \end_layout \begin_layout Standard -This command can also be used to skip corrupted frames in a trajectory during - processing. - For example, if this message is encountered: +This command can also be used to skip corrupted frames in a trajectory during processing. + For example, + if this message is encountered: \end_layout \begin_layout LyX-Code -Warning: Frame 10 coords 1 & 2 overlap at origin; may be corrupt. +Warning: + Frame 10 coords 1 & 2 overlap at origin; + may be corrupt. \end_layout \begin_layout Standard @@ -25112,12 +27642,11 @@ distance d1 :1 :10 \end_layout \begin_layout Standard -Usually frame corruption can be detected using only a few atoms, but this - may not catch all types of corruption. +Usually frame corruption can be detected using only a few atoms, + but this may not catch all types of corruption. The more atoms that are used the better the corruption detection will be, but the slower it will be to process the command. - Typically a good procedure to follow when corruption is suspected is to - run + Typically a good procedure to follow when corruption is suspected is to run \series bold \shape italic check @@ -25134,7 +27663,8 @@ skipbadframes trajout \series default \shape default - command to write all non-corrupt frames, for example: + command to write all non-corrupt frames, + for example: \end_layout \begin_layout LyX-Code @@ -25192,14 +27722,16 @@ DataSet Aspects: \end_deeper \begin_layout Standard -Check the chirality around the alpha carbon in amino acid residues selected - by <mask>. +Check the chirality around the alpha carbon in amino acid residues selected by <mask>. Note that cpptraj expects atom names to correspond to the PDB V3 standard: - N, CA, C, CB. - For each residue, the number of frames in which the amino acid is 'L' or - 'D' will be recorded. - For example, to check the chirality of all amino acids in a system and - write to a file named chiral.dat with data set name DPDP: + N, + CA, + C, + CB. + For each residue, + the number of frames in which the amino acid is 'L' or 'D' will be recorded. + For example, + to check the chirality of all amino acids in a system and write to a file named chiral.dat with data set name DPDP: \end_layout \begin_layout LyX-Code @@ -25229,6 +27761,8 @@ closest | closestwaters \begin_layout LyX-Code closest \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -25279,7 +27813,8 @@ keep> Number of solvent molecules to keep around <mask> \end_inset mask>] Optional mask for selecting solvent atoms. - If not specified, atoms in all molecules marked as + If not specified, + atoms in all molecules marked as \begin_inset Quotes eld \end_inset @@ -25291,8 +27826,8 @@ solvent \end_layout \begin_layout Description -[noimage] Do not perform imaging; only recommended if trajectory has previously - been imaged. +[noimage] Do not perform imaging; + only recommended if trajectory has previously been imaged. \end_layout \begin_layout Description @@ -25308,8 +27843,7 @@ oxygen] Calculate distances between all atoms in \series bold <mask> \series default - and the first atom of solvent only (recommended for standard water models - as it will increase speed of calculation). + and the first atom of solvent only (recommended for standard water models as it will increase speed of calculation). \end_layout \begin_layout Description @@ -25400,15 +27934,16 @@ Similar to the strip \series default \shape default - command, but modify coordinate frame and topology by keeping only the specified - number of closest solvent molecules to the region specified by the given - mask. + command, + but modify coordinate frame and topology by keeping only the specified number of closest solvent molecules to the region specified by the given mask. Solvent molecules can be determined automatically by \shape italic cpptraj \shape default - (by default residues named WAT, HOH, or TIP3), can be specified prior via - the + (by default residues named WAT, + HOH, + or TIP3), + can be specified prior via the \series bold \shape italic solvent @@ -25418,10 +27953,12 @@ solvent \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_solvent" +nolink "false" \end_inset -), or can be selected by +), + or can be selected by \series bold solventmask \series default @@ -25441,9 +27978,9 @@ Frame Molecule Distance FirstAtom# \end_layout \begin_layout Standard -For example, to obtain the 10 closest waters to residues 1-268 by distance - to the first atom of the waters, write out which waters were closest for - each frame to a file called +For example, + to obtain the 10 closest waters to residues 1-268 by distance to the first atom of the waters, + write out which waters were closest for each frame to a file called \begin_inset Quotes eld \end_inset @@ -25451,7 +27988,8 @@ closestmols.dat \begin_inset Quotes erd \end_inset -, and write out the stripped topology with prefix +, + and write out the stripped topology with prefix \begin_inset Quotes eld \end_inset @@ -25479,11 +28017,13 @@ Although the \series bold 'cluster' \series default - command can still be specified as an action, it is now considered an analysis. + command can still be specified as an action, + it is now considered an analysis. See \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-cluster-analysis" +nolink "false" \end_inset @@ -25497,6 +28037,8 @@ clusterdihedral \begin_layout LyX-Code clusterdihedral \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -25522,14 +28064,13 @@ clusterdihedral \begin_layout Standard Cluster frames in a trajectory using dihedral angles. - To define which dihedral angles will be used for clustering either an atom - mask or an input file specified by the + To define which dihedral angles will be used for clustering either an atom mask or an input file specified by the \series bold dihedralfile \series default keyword should be used. - If dihedral file is used, each line in the file should contain a dihedral - to be binned with format: + If dihedral file is used, + each line in the file should contain a dihedral to be binned with format: \end_layout \begin_layout LyX-Code @@ -25537,13 +28078,10 @@ ATOM#1 ATOM#2 ATOM#3 ATOM#4 #BINS \end_layout \begin_layout Standard -where the ATOM arguments are the atom numbers (starting from 1) defining - the dihedral and #BINS is the number of bins to be used (so if #BINS=10 - the width of each bin will be 36º). - If an atom mask is specified, only protein backbone dihedrals (Phi and - Psi defined using atom names C-N-CA-C and N-CA-C-N) within the mask will - be used, with the bin sizes specified by the phibins and psibins keywords - (default for each is 10 bins). +where the ATOM arguments are the atom numbers (starting from 1) defining the dihedral and #BINS is the number of bins to be used (so if #BINS=10 the width of each bin will be 36º). + If an atom mask is specified, + only protein backbone dihedrals (Phi and Psi defined using atom names C-N-CA-C and N-CA-C-N) within the mask will be used, + with the bin sizes specified by the phibins and psibins keywords (default for each is 10 bins). \end_layout \begin_layout Standard @@ -25552,15 +28090,17 @@ Output will either be written to STDOUT or the file specified by the out \series default keyword. - First, information about which dihedrals were clustered will be printed. - Then the number of clusters will be printed, followed by detailed information - of each cluster. + First, + information about which dihedrals were clustered will be printed. + Then the number of clusters will be printed, + followed by detailed information of each cluster. The clusters are sorted from most populated to least populated. Each cluster line has format \end_layout \begin_layout LyX-Code -Cluster CLUSTERNUM CLUSTERPOP [ dihedral1bin, dihedral2bin ... +Cluster CLUSTERNUM CLUSTERPOP [ dihedral1bin, + dihedral2bin ... dihedralNbin ] \end_layout @@ -25570,7 +28110,8 @@ followed by a list of frame numbers that belong to that cluster. \series bold cut \series default -, only clusters with population greater than CUT will be printed. +, + only clusters with population greater than CUT will be printed. \end_layout \begin_layout Standard @@ -25578,13 +28119,14 @@ If specified by the \series bold clustervtime \series default - keyword, the number of clusters for each frame will be printed to <cvtfile>. + keyword, + the number of clusters for each frame will be printed to <cvtfile>. If specified by the \series bold framefile \series default - keyword, a file containing cluster information for each frame will be written - with format + keyword, + a file containing cluster information for each frame will be written with format \end_layout \begin_layout LyX-Code @@ -25592,9 +28134,7 @@ Frame CLUSTERNUM CLUSTERSIZE DIHEDRALBINID \end_layout \begin_layout Standard -where DIHEDRALBINID is a number that identifies the unique combination of - dihedral bins this cluster belongs to (specifically it is a 3*number-of-dihedra -l-characters long number composed of the individual dihedral bins). +where DIHEDRALBINID is a number that identifies the unique combination of dihedral bins this cluster belongs to (specifically it is a 3*number-of-dihedral-characters long number composed of the individual dihedral bins). \end_layout \begin_layout Standard @@ -25602,12 +28142,12 @@ If specified by the \series bold clusterinfo \series default - keyword, a file containing information on each dihedral and each cluster - will be printed. - This file can be read by SANDER for use with REMD with a structure reservoir - (-rremd=3). - The file, which is essentially a simplified version of the main output - file, has the following format: + keyword, + a file containing information on each dihedral and each cluster will be printed. + This file can be read by SANDER for use with REMD with a structure reservoir (-rremd=3). + The file, + which is essentially a simplified version of the main output file, + has the following format: \end_layout \begin_layout LyX-Code @@ -25647,7 +28187,8 @@ contacts [ first | reference | ref <ref> | refindex <#> ] [byresidue] \end_layout \begin_layout Standard -NOTE: Users are encouraged to try the +NOTE: + Users are encouraged to try the \series bold \emph on nativecontacts @@ -25657,10 +28198,12 @@ nativecontacts \begin_inset CommandInset ref LatexCommand vpageref reference "subsec:cpptraj-nativecontacts" +nolink "false" \end_inset -), an update version of this command. +), + an update version of this command. \end_layout \begin_layout Standard @@ -25668,7 +28211,8 @@ For each atom given in \shape italic mask \shape default -, calculate the number of other atoms (contacts) within the distance +, + calculate the number of other atoms (contacts) within the distance \shape italic cutoff \shape default @@ -25678,8 +28222,8 @@ cutoff \shape italic mask \shape default - are potential interaction partners (e.g., a mask @CA will evaluate only contacts - between CA atoms). + are potential interaction partners (e.g., + a mask @CA will evaluate only contacts between CA atoms). The results are dumped to \shape italic filename @@ -25697,15 +28241,15 @@ out \end_inset is specified. - Thereby, the time between snapshots is taken to be + Thereby, + the time between snapshots is taken to be \shape italic interval \shape default . - In addition to the number of overall contacts, the number of native contacts - is also determined. - Native contacts are those that have been found either in the first snapshot - of the trajectory (if the keyword + In addition to the number of overall contacts, + the number of native contacts is also determined. + Native contacts are those that have been found either in the first snapshot of the trajectory (if the keyword \begin_inset Quotes eld \end_inset @@ -25730,7 +28274,8 @@ reference \end_inset is specified). - Finally, if the keyword + Finally, + if the keyword \begin_inset Quotes eld \end_inset @@ -25742,7 +28287,8 @@ byresidue \begin_inset Quotes erd \end_inset - is provided, results are output on a per-residue basis for each snapshot, + is provided, + results are output on a per-residue basis for each snapshot, whereby the number of native contacts is written to \shape italic filename @@ -25766,13 +28312,12 @@ createcrd [<name>] [ parm <name> | parmindex <#> ] \end_layout \begin_layout Standard -This command creates a COORDS data set named <name> using trajectory frames - that are associated with the specified topology. +This command creates a COORDS data set named <name> using trajectory frames that are associated with the specified topology. \end_layout \begin_layout Standard -For example, to save frames that have been previously RMS-fit to a reference - structure into a COORDS set named MyCrd you would use the input: +For example, + to save frames that have been previously RMS-fit to a reference structure into a COORDS set named MyCrd you would use the input: \end_layout \begin_layout LyX-Code @@ -25794,8 +28339,7 @@ Note that here the strip \series default \emph default - command will have no effect on the coordinates saved in MyCrd since it - occurs after the + command will have no effect on the coordinates saved in MyCrd since it occurs after the \series bold \emph on createcrd @@ -25809,8 +28353,7 @@ createreservoir \end_layout \begin_layout LyX-Code -createreservoir <filename> ene <energy data set> [bin <cluster bin data - set>] +createreservoir <filename> ene <energy data set> [bin <cluster bin data set>] \end_layout \begin_layout LyX-Code @@ -25916,12 +28459,11 @@ parmindex \end_deeper \begin_layout Standard -Create structure reservoir for use with reservoir REMD simulations using - energies in <energy data set>, temperature <temp0> and random seed <iseed> - Include velocities if [velocity] is specified. +Create structure reservoir for use with reservoir REMD simulations using energies in <energy data set>, + temperature <temp0> and random seed <iseed> Include velocities if [velocity] is specified. If <cluster bin data set> is specified from e.g. - a previous 'clusterdihedral' command, the reservoir can be used for non-Boltzma -nn reservoir REMD (rremd==3). + a previous 'clusterdihedral' command, + the reservoir can be used for non-Boltzmann reservoir REMD (rremd==3). \end_layout \begin_layout Subsection @@ -25980,8 +28522,8 @@ name>] Output data set name. \begin_inset space ~ \end_inset -<maskN> Arbitrary number of masks for atom selection; a dataset is created - and the output will contain entries for each mask. +<maskN> Arbitrary number of masks for atom selection; + a dataset is created and the output will contain entries for each mask. \end_layout \begin_deeper @@ -25990,7 +28532,8 @@ name>] Output data set name. \begin_inset space ~ \end_inset -<resolution>] Resolution, i.e. +<resolution>] Resolution, + i.e. determines number of slices (i.e. histogram bins). (default 0.25 Å) @@ -26002,16 +28545,15 @@ name>] Output data set name. \end_layout \begin_layout Description -[{number|mass|charge|electron}] Number, mass, partial charge (q) or electron - (Ne - q) density. - Electron density will be converted to e-/Å3 by dividing the average area - spanned by the other two dimensions. +[{number|mass|charge|electron}] Number, + mass, + partial charge (q) or electron (Ne - q) density. + Electron density will be converted to e-/Å3 by dividing the average area spanned by the other two dimensions. (default number) \end_layout \begin_layout Description -[{bincenter|binedge}] Determine whether histogram bin coordinates will be - based on bin center (default) or bin edges. +[{bincenter|binedge}] Determine whether histogram bin coordinates will be based on bin center (default) or bin edges. \end_layout \begin_layout Description @@ -26023,8 +28565,8 @@ name>] Output data set name. \series bold 'restrict' \series default - is specified, only calculate the density that is within a cylinder or square - shape from the specified axis as defined by a distance cutoff. + is specified, + only calculate the density that is within a cylinder or square shape from the specified axis as defined by a distance cutoff. \end_layout \begin_deeper @@ -26059,8 +28601,7 @@ name>[avg]:<idx> Average density over coordinate for mask number <idx>. \begin_inset space ~ \end_inset -name>[sd]:<idx> Standard deviation of density over coordinate for mask number - <idx>. +name>[sd]:<idx> Standard deviation of density over coordinate for mask number <idx>. \end_layout \begin_layout Standard @@ -26077,14 +28618,14 @@ name> Total system density each frame. \end_deeper \begin_layout Standard -If no atom masks are specified, calculate the total system density. - Otherwise, calculate specified density along the given axis for atoms in - specified mask(s). +If no atom masks are specified, + calculate the total system density. + Otherwise, + calculate specified density along the given axis for atoms in specified mask(s). Defaults are shown in parentheses above. The format of the file is as follows. Comments are lines starting with '#' or empty lines. - All other lines must contain the atom type followed by an integer number - for the electron number. + All other lines must contain the atom type followed by an integer number for the electron number. Entries must be separated by spaces or '='. Example input: \end_layout @@ -26144,8 +28685,8 @@ See also $AMBERHOME/AmberTools/test/cpptraj/Test_Density. \end_layout \begin_layout Standard -It can be useful to write out the average and standard deviation as an XYDY - set to a Grace data file, e.g. +It can be useful to write out the average and standard deviation as an XYDY set to a Grace data file, + e.g. \end_layout \begin_layout LyX-Code @@ -26170,12 +28711,12 @@ Note that although the syntax for \series bold diffusion \series default - has changed as of version 16, the old syntax is still supported. + has changed as of version 16, + the old syntax is still supported. \end_layout \begin_layout LyX-Code -diffusion [{out <filename>|separateout <suffix>}] [time <time per frame>] - [noimage] +diffusion [{out <filename>|separateout <suffix>}] [time <time per frame>] [noimage] \end_layout \begin_layout LyX-Code @@ -26200,8 +28741,7 @@ diffusion [{out <filename>|separateout <suffix>}] [time <time per frame>] \begin_inset space ~ \end_inset -<filename>] Write mean-square displacement (MSD) data set output to file - specified by <filename>. +<filename>] Write mean-square displacement (MSD) data set output to file specified by <filename>. \end_layout \begin_layout Description @@ -26209,8 +28749,8 @@ diffusion [{out <filename>|separateout <suffix>}] [time <time per frame>] \begin_inset space ~ \end_inset -<suffix>] Write each MSD data set type to files with suffix <suffix>; see - description below. +<suffix>] Write each MSD data set type to files with suffix <suffix>; + see description below. \end_layout \begin_layout Description @@ -26218,8 +28758,8 @@ diffusion [{out <filename>|separateout <suffix>}] [time <time per frame>] \begin_inset space ~ \end_inset -<time_per_frame>] Time in-between each coordinate frame in ps; default is - 1.0. +<time_per_frame>] Time in-between each coordinate frame in ps; + default is 1.0. \end_layout \begin_layout Description @@ -26228,7 +28768,8 @@ diffusion [{out <filename>|separateout <suffix>}] [time <time per frame>] \end_layout \begin_layout Description -[<mask>] Mask of atoms to calculate diffusion for; default all atoms. +[<mask>] Mask of atoms to calculate diffusion for; + default all atoms. \end_layout \begin_layout Description @@ -26240,8 +28781,7 @@ name>] MSD data set name. \end_layout \begin_layout Description -[individual] Write diffusion for each individual atom as well as average - diffusion for atoms in mask. +[individual] Write diffusion for each individual atom as well as average diffusion for atoms in mask. \end_layout \begin_layout Description @@ -26249,8 +28789,7 @@ name>] MSD data set name. \begin_inset space ~ \end_inset -<filename>] Write diffusion contants calculated from fits of MSD data sets - to <filename>. +<filename>] Write diffusion contants calculated from fits of MSD data sets to <filename>. \end_layout \begin_layout Description @@ -26258,14 +28797,13 @@ name>] MSD data set name. \end_layout \begin_layout Description -[avgucell] Remove periodic box fluctuations from imaged NPT trajectories - using average unit cell vectors. +[avgucell] Remove periodic box fluctuations from imaged NPT trajectories using average unit cell vectors. \end_layout \begin_layout Description [allowmultipleorigins] (MPI only). - For imaged trajectories in parallel, calculate diffusion by averaging over - multiple time origins. + For imaged trajectories in parallel, + calculate diffusion by averaging over multiple time origins. Should be used with caution. \end_layout @@ -26373,8 +28911,8 @@ individual \end_deeper \begin_layout Standard -Compute mean-squared displacement (MSD, in Angstroms squared) plots (using - distance traveled from initial position) for the atoms in +Compute mean-squared displacement (MSD, + in Angstroms squared) plots (using distance traveled from initial position) for the atoms in \series bold <mask> \series default @@ -26383,7 +28921,8 @@ Compute mean-squared displacement (MSD, in Angstroms squared) plots (using \series bold <mask> \series default - is calculated; if + is calculated; + if \series bold individual \series default @@ -26392,10 +28931,9 @@ individual \end_layout \begin_layout Standard -In order to correctly calculate diffusion molecules should take continuous - paths, so imaging of atoms is autoimatically performed. - If the trajectory is already unwrapped (or the unwrap command is used prior - to this command) the +In order to correctly calculate diffusion molecules should take continuous paths, + so imaging of atoms is autoimatically performed. + If the trajectory is already unwrapped (or the unwrap command is used prior to this command) the \series bold noimage \series default @@ -26408,12 +28946,13 @@ noise \begin_inset Quotes erd \end_inset - caused by box fluctuations in NPT trajectories, the average unit cell vectors - describing the average box can be provided with the + caused by box fluctuations in NPT trajectories, + the average unit cell vectors describing the average box can be provided with the \series bold avgucell \series default - keyword; see the + keyword; + see the \series bold \emph on avgbox @@ -26426,28 +28965,33 @@ reference "subsec:cpptraj_avgbox" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset ). - Alternatively, the trajectory can be unwrapped prior using the + Alternatively, + the trajectory can be unwrapped prior using the \series bold \emph on unwrap \series default \emph default - command, + command, + \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_unwrap" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset . - If the trajectory is unwrapped, the + If the trajectory is unwrapped, + the \series bold noimage \series default @@ -26455,10 +28999,9 @@ noimage \end_layout \begin_layout Standard -Note that in parallel, imaging becomes difficult because there is no way - to correct for any wrapping that has been done on preceding MPI ranks. - Therefore this command will not work on imaged trajectories in parallel - by default. +Note that in parallel, + imaging becomes difficult because there is no way to correct for any wrapping that has been done on preceding MPI ranks. + Therefore this command will not work on imaged trajectories in parallel by default. There are two workarounds. 1) Unwrap the trajectory prior to \series bold @@ -26472,19 +29015,20 @@ diffusion unwrap \series default \emph default - command, then run the diffusion calculation with the + command, + then run the diffusion calculation with the \series bold noimage \series default - keyword (this is the recommended way), or 2) specify the + keyword (this is the recommended way), + or 2) specify the \series bold allowmultipleorigins \series default - keyword to calculate MSD separately on each MPI rank, then averaging over - all MSD plots. - This means the maximum length of any given MSD plot will be <# frames> - / <# MPI ranks>, and the calculated diffusion constants will not be as - accurate. + keyword to calculate MSD separately on each MPI rank, + then averaging over all MSD plots. + This means the maximum length of any given MSD plot will be <# frames> / <# MPI ranks>, + and the calculated diffusion constants will not be as accurate. \end_layout \begin_layout Standard @@ -26560,15 +29104,17 @@ Where n \series default \shape default - is the number of dimensions; for overall MSD n = 3, for single dimension - MSD (e.g. - X) n = 1, etc. + is the number of dimensions; + for overall MSD n = 3, + for single dimension MSD (e.g. + X) n = 1, + etc. Unless \series bold nocalc \series default - is specified, the diffusion constant is calculated automatically from MSD - data sets (and written to the file specified by + is specified, + the diffusion constant is calculated automatically from MSD data sets (and written to the file specified by \series bold diffout \series default @@ -26596,18 +29142,19 @@ diffout \end_inset -/s, the slope is multiplied by 10.0/(2n). - Both the calculated diffusion constants as well as the results of the fit - are reported. +/s, + the slope is multiplied by 10.0/(2n). + Both the calculated diffusion constants as well as the results of the fit are reported. \end_layout \begin_layout Standard -Due to the fact that diffusion is currently calculated from initial positions - only, diffusion calculated for small numbers of atoms will be inherently - stochastic, so the results are most sensible when averaged over many atoms; - for example, the diffusion of water should be calculated using all waters - in the system. - If more averaging is needed, the +Due to the fact that diffusion is currently calculated from initial positions only, + diffusion calculated for small numbers of atoms will be inherently stochastic, + so the results are most sensible when averaged over many atoms; + for example, + the diffusion of water should be calculated using all waters in the system. + If more averaging is needed, + the \series bold \emph on calcdiffusion @@ -26620,6 +29167,7 @@ reference "subsec:cpptraj-calcdiffusion" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -26627,7 +29175,8 @@ noprefix "false" \end_layout \begin_layout Standard -For example, to calculate the diffusion of water in a system: +For example, + to calculate the diffusion of water in a system: \end_layout \begin_layout LyX-Code @@ -26641,6 +29190,8 @@ dihedral \begin_layout LyX-Code dihedral \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -26653,8 +29204,7 @@ dihedral \end_layout \begin_layout LyX-Code - [type {alpha|beta|gamma|delta|epsilon|zeta|chi|c2p|h1p|phi|psi|omega|pc -hi}] + [type {alpha|beta|gamma|delta|epsilon|zeta|chi|c2p|h1p|phi|psi|omega|pchi}] \end_layout \begin_layout LyX-Code @@ -26683,12 +29233,12 @@ hi}] \end_layout \begin_layout Description -[mass] Use center of mass of atoms in <maskX>; default is geometric center. +[mass] Use center of mass of atoms in <maskX>; + default is geometric center. \end_layout \begin_layout Description -[range360] Output dihedral angle values from 0 to 360 degrees instead of - -180 to 180 degrees. +[range360] Output dihedral angle values from 0 to 360 degrees instead of -180 to 180 degrees. \end_layout \begin_layout Description @@ -26702,13 +29252,17 @@ hi}] statistics \series default \shape default - analysis; note 'chi' is nucleic acid chi and 'pchi' is protein chi. + analysis; + note 'chi' is nucleic acid chi and 'pchi' is protein chi. \end_layout \end_deeper \begin_layout Standard -Calculate dihedral angle (in degrees) between the planes defined by atoms - in <mask1>, <mask2>, <mask3> and <mask2>, <mask3>, <mask4>. +Calculate dihedral angle (in degrees) between the planes defined by atoms in <mask1>, + <mask2>, + <mask3> and <mask2>, + <mask3>, + <mask4>. To calculate multiple dihedral angles see the \series bold \emph on @@ -26722,6 +29276,7 @@ reference "subsec:cpptraj_multidihedral" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -26737,8 +29292,7 @@ dihedralrms | dihrms \end_layout \begin_layout LyX-Code - [ first | reference | ref <name> | refindex <#> | previous - | + [ first | reference | ref <name> | refindex <#> | previous | \end_layout \begin_layout LyX-Code @@ -26764,7 +29318,8 @@ dihedralrms | dihrms \end_inset types> Dihedral types to look for. - Note that chip is 'protein chi', chin is 'nucleic chi'. + Note that chip is 'protein chi', + chin is 'nucleic chi'. \end_layout \begin_layout Description @@ -26780,8 +29335,10 @@ types> Dihedral types to look for. \begin_inset space ~ \end_inset -<name>:<a0>:<a1>:<a2>:<a3>[:<offset>] Search for a custom dihedral type - called <name> using atom names <a0>, <a1>, <a2>, and <a3>. +<name>:<a0>:<a1>:<a2>:<a3>[:<offset>] Search for a custom dihedral type called <name> using atom names <a0>, + <a1>, + <a2>, + and <a3>. \begin_inset Separator latexpar \end_inset @@ -26790,8 +29347,12 @@ types> Dihedral types to look for. \begin_deeper \begin_layout Standard -Offset: -2=<a0><a1> in previous res, -1=<a0> in previous res, 0=All <aX> - in single res, 1=<a3> in next res, 2=<a2><a3> in next res. +Offset: + -2=<a0><a1> in previous res, + -1=<a0> in previous res, + 0=All <aX> in single res, + 1=<a3> in next res, + 2=<a2><a3> in next res. \end_layout \end_deeper @@ -26810,7 +29371,8 @@ Offset: -2=<a0><a1> in previous res, -1=<a0> in previous res, 0=All <aX> \end_inset <range>] Residues range to look for reference dihedrals in. - If not specified, use target range. + If not specified, + use target range. \end_layout \end_deeper @@ -26829,6 +29391,7 @@ reference "subsec:cpptraj_multidihedral" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -26846,10 +29409,12 @@ This command has been replaced by permutedihedrals \series default \emph default -; see +; + see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_permutedihedrals" +nolink "false" \end_inset @@ -26919,7 +29484,8 @@ dipole [out <filename>] \begin_inset Quotes erd \end_inset - extension for XPLOR format, + extension for XPLOR format, + \begin_inset Quotes eld \end_inset @@ -26964,8 +29530,7 @@ name/tag> \begin_inset space ~ \end_inset -<nz> Set up grid using box information from a previously loaded reference - structure. +<nz> Set up grid using box information from a previously loaded reference structure. Currently the only way to set up non-orthogonal grids. \end_layout @@ -27006,7 +29571,10 @@ name/tag> \begin_inset space ~ \end_inset -<cz>] Location of grid center, default is origin (0.0, 0.0, 0.0). +<cz>] Location of grid center, + default is origin (0.0, + 0.0, + 0.0). \end_layout \begin_layout Description @@ -27026,16 +29594,14 @@ name/tag> \begin_inset space ~ \end_inset -<mask>] Perform a best-fit rotation of the grid using the coordinates selected - by <mask>. +<mask>] Perform a best-fit rotation of the grid using the coordinates selected by <mask>. \end_layout \begin_deeper \begin_layout Description -[noxalign] If specified, grid will not be re-oriented to align with Cartesian - axes once binning is finished. - Will affect file formats that do not store full unit cell vectors (like - Xplor). +[noxalign] If specified, + grid will not be re-oriented to align with Cartesian axes once binning is finished. + Will affect file formats that do not store full unit cell vectors (like Xplor). \end_layout \end_deeper @@ -27095,7 +29661,8 @@ percent>] Only keep density >= to <max_percent> of the maximum density. \end_deeper \begin_layout Standard -NOTE: This command is not well-tested and may be obsolete. +NOTE: + This command is not well-tested and may be obsolete. \end_layout \begin_layout Standard @@ -27109,12 +29676,12 @@ grid \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_grid" +nolink "false" \end_inset below) except that dipoles of the solvent molecules are binned. - The output file format is for Chris Bayly's discern delegate program that - comes with Midas/Plus. + The output file format is for Chris Bayly's discern delegate program that comes with Midas/Plus. Consult the code in Action_Dipole.cpp for more information. \shape italic @@ -27128,6 +29695,8 @@ distance \begin_layout LyX-Code distance \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -27152,8 +29721,7 @@ distance \end_layout \begin_layout LyX-Code - [bound <lower> bound <upper>] [rexp <expected>] [noe_strong] [noe_medium] - [noe_weak] + [bound <lower> bound <upper>] [rexp <expected>] [noe_strong] [noe_medium] [noe_weak] \begin_inset Separator latexpar \end_inset @@ -27170,8 +29738,8 @@ distance \end_layout \begin_layout Description -<mask2> If specified, second atom mask selection atom(s) to calculate distance - from <mask1>. +<mask2> If specified, + second atom mask selection atom(s) to calculate distance from <mask1>. \end_layout \begin_layout Description @@ -27187,8 +29755,8 @@ point \begin_inset space ~ \end_inset -<Z> If specified instead of second mask, calculate distance between <mask1> - and specified XYZ coordinates. +<Z> If specified instead of second mask, + calculate distance between <mask1> and specified XYZ coordinates. \end_layout \begin_layout Description @@ -27216,8 +29784,8 @@ refindex \begin_inset space ~ \end_inset -<#> If specified, calculate distance between <mask1> in each input frame - and <mask2> in the specified reference. +<#> If specified, + calculate distance between <mask1> in each input frame and <mask2> in the specified reference. \end_layout \begin_layout Description @@ -27229,8 +29797,8 @@ refindex \end_layout \begin_layout Description -[geom] Use geometric center of atoms in <mask1>/<mask2>; default is to use - center of mass. +[geom] Use geometric center of atoms in <mask1>/<mask2>; + default is to use center of mass. \end_layout \begin_layout Description @@ -27269,7 +29837,8 @@ bound \begin_inset space ~ \end_inset -<upper>] Lower and upper bounds for NOE (in Angstroms); must specify both. +<upper>] Lower and upper bounds for NOE (in Angstroms); + must specify both. \end_layout \begin_layout Description @@ -27277,8 +29846,8 @@ bound \begin_inset space ~ \end_inset -<expected>] Expected value for NOE (in Angstroms); if not given '(<lower> - + <upper>)' / 2.0 is used. +<expected>] Expected value for NOE (in Angstroms); + if not given '(<lower> + <upper>)' / 2.0 is used. \end_layout \begin_layout Description @@ -27296,15 +29865,16 @@ bound \end_deeper \end_deeper \begin_layout Standard -Calculate distance between the center of mass of atoms in <mask1> to atoms - in <mask2>, between atoms in <mask1> from each input frame and atoms in - <mask2> in specified reference, or atoms in <mask1> and the specified point. +Calculate distance between the center of mass of atoms in <mask1> to atoms in <mask2>, + between atoms in <mask1> from each input frame and atoms in <mask2> in specified reference, + or atoms in <mask1> and the specified point. If \series bold geom \series default is specified use the geometric center instead. - For periodic systems imaging is turned on by default; the + For periodic systems imaging is turned on by default; + the \series bold noimage \series default @@ -27326,6 +29896,7 @@ type noe \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_statistics" +nolink "false" \end_inset @@ -27339,6 +29910,8 @@ drms | drmsd (distance RMSD) \begin_layout LyX-Code drmsd \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -27376,7 +29949,8 @@ name>] Output data set name. \end_layout \begin_layout Description -[<refmask>] Mask corresponding to atoms in reference; if not specified, +[<refmask>] Mask corresponding to atoms in reference; + if not specified, <mask> is used. \end_layout @@ -27421,8 +29995,7 @@ name>] Output data set name. \begin_inset space ~ \end_inset -<#>] Use previously read in reference structure specified by <#> (based - on order read in). +<#>] Use previously read in reference structure specified by <#> (based on order read in). \end_layout \begin_layout Description @@ -27438,13 +30011,12 @@ reftraj \begin_inset space ~ \end_inset -<name> Use frames from COORDS set <name> or read in from trajectory file - <name> as references. - Each frame from <name> is used in turn, so that frame 1 is compared to - frame 1 from <name>, frame 2 is compared to frame 2 from <name> and so - on. - If <trajname> runs out of frames before processing is complete, the last - frame of <trajname> continues to be used as the reference. +<name> Use frames from COORDS set <name> or read in from trajectory file <name> as references. + Each frame from <name> is used in turn, + so that frame 1 is compared to frame 1 from <name>, + frame 2 is compared to frame 2 from <name> and so on. + If <trajname> runs out of frames before processing is complete, + the last frame of <trajname> continues to be used as the reference. \begin_inset Separator latexpar \end_inset @@ -27473,16 +30045,15 @@ parmindex \series bold reftraj \series default - specifies a file associate trajectory <name> with specified topology; if - not specified the first topology is used. + specifies a file associate trajectory <name> with specified topology; + if not specified the first topology is used. \end_layout \end_deeper \end_deeper \begin_layout Standard Calculate the distance RMSD (i.e. - the RMSD of all pairs of internal distances) between atoms in the frame - defined by + the RMSD of all pairs of internal distances) between atoms in the frame defined by \series bold <mask> \series default @@ -27511,15 +30082,16 @@ Calculate the distance RMSD (i.e. \series bold <refmask> \series default - must specify the same number of atoms, otherwise an error will occur. + must specify the same number of atoms, + otherwise an error will occur. \end_layout \begin_layout Standard -Because this method compares pairs of internal distances and not absolute - coordinates, it is not sensitive to translations and rotations the way - that a no-fit RMSD calculation is. - It can be more time consuming however, as (N +Because this method compares pairs of internal distances and not absolute coordinates, + it is not sensitive to translations and rotations the way that a no-fit RMSD calculation is. + It can be more time consuming however, + as (N \begin_inset script superscript \begin_layout Plain Layout @@ -27528,14 +30100,13 @@ Because this method compares pairs of internal distances and not absolute \end_inset --N)/2 distances must be calculated and compared for both the target and - reference structures. +-N)/2 distances must be calculated and compared for both the target and reference structures. \end_layout \begin_layout Standard -For example, to get the DRMSD of a residue named LIG to its structure in - the first frame read in: +For example, + to get the DRMSD of a residue named LIG to its structure in the first frame read in: \end_layout \begin_layout LyX-Code @@ -27551,6 +30122,7 @@ See \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-secstruct" +nolink "false" \end_inset @@ -27595,13 +30167,16 @@ enedecomp [<name>] [<mask>] [out <filename>] [savecomponents] \end_layout \begin_layout Description -[savecomponents] If specified, also save the individual components of the - total energy (bond, angle, dihedral, etc.). +[savecomponents] If specified, + also save the individual components of the total energy (bond, + angle, + dihedral, + etc.). \end_layout \begin_layout Description -[pme] Use particle mesh Ewald for electrostatics; van der Waals energy will - be calculated using a long-range correction for periodicity. +[pme] Use particle mesh Ewald for electrostatics; + van der Waals energy will be calculated using a long-range correction for periodicity. \end_layout \begin_deeper @@ -27639,8 +30214,8 @@ erfcdx \end_layout \begin_layout Description -skinnb Used to determine pairlist atoms (added to cut, so pairlist cutoff - is +skinnb Used to determine pairlist atoms (added to cut, + so pairlist cutoff is \series bold cut \series default @@ -27648,7 +30223,8 @@ cut \series bold skinnb \series default -); included in order to maintain consistency with results from sander. +); + included in order to maintain consistency with results from sander. \end_layout \begin_layout Description @@ -27656,8 +30232,8 @@ ljswidth \begin_inset space ~ \end_inset -<width> If specified, use a force-switching form for the Lennard-Jones calculati -on from <cutoff>-<width> to <cutoff>. +<width> If specified, + use a force-switching form for the Lennard-Jones calculation from <cutoff>-<width> to <cutoff>. \end_layout \begin_layout Description @@ -27673,8 +30249,7 @@ nfft \begin_inset space ~ \end_inset -<nfft1>,<nfft2>,<nfft3> Explicitly set the number of FFT grid points in - each dimension. +<nfft1>,<nfft2>,<nfft3> Explicitly set the number of FFT grid points in each dimension. Will be determined automatically from unit cell dimensions if not specified. \end_layout @@ -27684,8 +30259,7 @@ DataSets created: \end_layout \begin_layout Description -<name> Set containing atom index and the corresponding average total energy - over frames. +<name> Set containing atom index and the corresponding average total energy over frames. \end_layout \begin_layout Standard @@ -27709,45 +30283,42 @@ If \end_layout \begin_layout Description -<name>[vdw14] Set containing atom index and average 1-4 van der Waals energy - over frames. +<name>[vdw14] Set containing atom index and average 1-4 van der Waals energy over frames. \end_layout \begin_layout Description -<name>[elec14] Set containing atom index and average 1-4 electrostatic energy - over frames. +<name>[elec14] Set containing atom index and average 1-4 electrostatic energy over frames. \end_layout \begin_layout Description -<name>[elec] Set containing atom index and average electrostatic energy - over frames. +<name>[elec] Set containing atom index and average electrostatic energy over frames. \end_layout \begin_layout Description -<name>[vdw] Set containing atom index and average van der Waals energy over - frames. +<name>[vdw] Set containing atom index and average van der Waals energy over frames. \end_layout \end_deeper \begin_layout Standard Perform per-atom energy decomposition for selected atoms. - The energy is calculated for the entire system but only the energies for - selected atoms will be reported. - The energy is composed of the regular bond, angle, torsion, 1-4 nonbonded, + The energy is calculated for the entire system but only the energies for selected atoms will be reported. + The energy is composed of the regular bond, + angle, + torsion, + 1-4 nonbonded, and nonbonded terms. If \series bold 'savecomponents' \series default - is specified, each of the energy components will be saved in addition to - the total energy for each atom. + is specified, + each of the energy components will be saved in addition to the total energy for each atom. If \series bold 'pme' \series default - is specified the non-bonded terms will us PME for electrostatics and a - long-range periodic correction for van der Waals, otherwise a simple model - with no cutoff will be used. + is specified the non-bonded terms will us PME for electrostatics and a long-range periodic correction for van der Waals, + otherwise a simple model with no cutoff will be used. \end_layout \begin_layout Subsection @@ -27760,11 +30331,14 @@ energy [<name>] [<mask1>] [out <filename>] [nobondstoh] [openmm [<mdopts>]] \begin_layout LyX-Code [bond] [angle] [dihedral] {[nb14]|[e14]|[v14]} {[nonbond]|[elec] [vdw]} - \end_layout \begin_layout LyX-Code - [{nokinetic|kinetic [ketype {vel|vv}] [dt <dt>]}] + [cmap] +\end_layout + +\begin_layout LyX-Code + [{nokinetic|kinetic [ketype {vel|vv}] [dt <dt>]}] [lj1264] \end_layout \begin_layout LyX-Code @@ -27784,8 +30358,7 @@ energy [<name>] [<mask1>] [out <filename>] [nobondstoh] [openmm [<mdopts>]] \end_layout \begin_layout LyX-Code - [rsumtol <rtol>] [maxexp <max>] [mlimits <X>,<Y>,<Z>] - | + [rsumtol <rtol>] [maxexp <max>] [mlimits <X>,<Y>,<Z>] | \end_layout \begin_layout LyX-Code @@ -27834,17 +30407,19 @@ energy [<name>] [<mask1>] [out <filename>] [nobondstoh] [openmm [<mdopts>]] \end_layout \begin_layout Description -[openmm] If specified and CPPTRAJ is compiled with OpenMM support, use OpenMM - to calculate energy. - Note this will only calculate total energy; any keywords pertaining to - individual energy components are not available. - For a list of potential options that can be used with 'openmm', see +[openmm] If specified and CPPTRAJ is compiled with OpenMM support, + use OpenMM to calculate energy. + Note this will only calculate total energy; + any keywords pertaining to individual energy components are not available. + For a list of potential options that can be used with 'openmm', + see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-emin" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -27888,8 +30463,11 @@ noprefix "false" \end_layout \begin_layout Description -[nokinetic] Do not calculate kinetic energy even if velocity/force information - present. +[cmap] Calculate CMAP energy. +\end_layout + +\begin_layout Description +[nokinetic] Do not calculate kinetic energy even if velocity/force information present. \end_layout \begin_layout Description @@ -27904,15 +30482,16 @@ ketype \end_inset {vel|vv} Specify kinetic energy type. - If not specified, if velocity and force information use a velocity verlet-type - calculation ( + If not specified, + if velocity and force information use a velocity verlet-type calculation ( \series bold vv \series default -), i.e. +), + i.e. assume velocities are a half-step ahead of the forces. - If only velocity information is present, calculate from on-step velocities - ( + If only velocity information is present, + calculate from on-step velocities ( \series bold vel \series default @@ -27932,6 +30511,10 @@ vv \end_layout \end_deeper +\begin_layout Description +[lj1264] Turn on LJ 12-6-4 contribution if topology contains LJ C coefficients. +\end_layout + \begin_layout Description [etype \begin_inset space ~ @@ -27941,7 +30524,8 @@ vv \end_layout \begin_layout Description -[simple] Use simple Coulomb term for electrostatics, no cutoff. +[simple] Use simple Coulomb term for electrostatics, + no cutoff. \end_layout \begin_layout Description @@ -27960,8 +30544,7 @@ vv \end_deeper \begin_layout Description [ewald] Use Ewald summation for electrostatics. - If van der Waals energy will be calculated a long-range correction for - periodicity will be applied. + If van der Waals energy will be calculated a long-range correction for periodicity will be applied. \end_layout \begin_deeper @@ -27999,8 +30582,8 @@ erfcdx \end_layout \begin_layout Description -skinnb Used to determine pairlist atoms (added to cut, so pairlist cutoff - is +skinnb Used to determine pairlist atoms (added to cut, + so pairlist cutoff is \series bold cut \series default @@ -28008,7 +30591,8 @@ cut \series bold skinnb \series default -); included in order to maintain consistency with results from sander. +); + included in order to maintain consistency with results from sander. \end_layout \begin_layout Description @@ -28016,8 +30600,8 @@ ljswidth \begin_inset space ~ \end_inset -<width> If specified, use a force-switching form for the Lennard-Jones calculati -on from <cutoff>-<width> to <cutoff>. +<width> If specified, + use a force-switching form for the Lennard-Jones calculation from <cutoff>-<width> to <cutoff>. \end_layout \begin_layout Description @@ -28034,16 +30618,14 @@ mlimits \begin_inset space ~ \end_inset -<X>,<Y>,<Z> Explicitly set the number of reciprocal space vectors in each - dimension. +<X>,<Y>,<Z> Explicitly set the number of reciprocal space vectors in each dimension. Will be determined automatically if not specified. \end_layout \end_deeper \begin_layout Description [pme] Use particle mesh Ewald for electrostatics. - If van der Waals energy will be calculated a long-range correction for - periodicity will be applied. + If van der Waals energy will be calculated a long-range correction for periodicity will be applied. \end_layout \begin_deeper @@ -28081,8 +30663,8 @@ erfcdx \end_layout \begin_layout Description -skinnb Used to determine pairlist atoms (added to cut, so pairlist cutoff - is +skinnb Used to determine pairlist atoms (added to cut, + so pairlist cutoff is \series bold cut \series default @@ -28090,7 +30672,8 @@ cut \series bold skinnb \series default -); included in order to maintain consistency with results from sander. +); + included in order to maintain consistency with results from sander. \end_layout \begin_layout Description @@ -28098,8 +30681,8 @@ ljswidth \begin_inset space ~ \end_inset -<width> If specified, use a force-switching form for the Lennard-Jones calculati -on from <cutoff>-<width> to <cutoff>. +<width> If specified, + use a force-switching form for the Lennard-Jones calculation from <cutoff>-<width> to <cutoff>. \end_layout \begin_layout Description @@ -28115,14 +30698,12 @@ nfft \begin_inset space ~ \end_inset -<nfft1>,<nfft2>,<nfft3> Explicitly set the number of FFT grid points in - each dimension. +<nfft1>,<nfft2>,<nfft3> Explicitly set the number of FFT grid points in each dimension. Will be determined automatically from unit cell dimensions if not specified. \end_layout \begin_layout Description -ljpme If specified use particle mesh Ewald for calculating Lennard-Jones - interactions. +ljpme If specified use particle mesh Ewald for calculating Lennard-Jones interactions. \end_layout \begin_layout Description @@ -28150,6 +30731,10 @@ DataSet Aspects: [dih] Dihedral energy. \end_layout +\begin_layout Description +[cmap] CMAP energy. +\end_layout + \begin_layout Description [vdw14] 1-4 van der Waals energy. \end_layout @@ -28177,31 +30762,39 @@ DataSet Aspects: \end_deeper \begin_layout Standard Calculate the energy for atoms in <mask>. - If no terms are specified, all terms are calculated. + If no terms are specified, + all terms are calculated. Note that the non-bonded energy terms for \series bold 'simple' \series default do not take into account periodicity and there is no distance cut-off. - Electrostatics can also be determined via the direct sum, Ewald, or particle-me -sh Ewald summation procedures. - The particle mesh Ewald functionality requires that CPPTRAJ be compiled - with FFTW and a C++11 compliant compiler. + Electrostatics can also be determined via the direct sum, + Ewald, + or particle-mesh Ewald summation procedures. + The particle mesh Ewald functionality requires that CPPTRAJ be compiled with FFTW and a C++11 compliant compiler. \end_layout \begin_layout Standard -Calculation of energy terms requires that the associated topology file have - parameters for any of the calculated terms, so for example angle calculations - are not possible when using a PDB file as a topology, etc. +Calculation of energy terms requires that the associated topology file have parameters for any of the calculated terms, + so for example angle calculations are not possible when using a PDB file as a topology, + etc. All nonbonded calculations methods other than \series bold simple \series default require unit cell parameters. + By default, + to match SANDER/PMEMD behavior the LJ 12-6-4 contribution is not included in the van der Waals energy term unless the +\series bold +lj1264 +\series default + keyword is specified. \end_layout \begin_layout Standard -For example, to calculate all energy terms and write to a Grace-format file: +For example, + to calculate all energy terms and write to a Grace-format file: \end_layout \begin_layout LyX-Code @@ -28246,7 +30839,8 @@ esander [<name>] [out <filename>] [saveforces] [parmname <file>] [keepfiles] \end_layout \begin_layout Description -[saveforces] If specified, save forces to frames. +[saveforces] If specified, + save forces to frames. Requires writing frames in NetCDF format. \end_layout @@ -28255,7 +30849,8 @@ esander [<name>] [out <filename>] [saveforces] [parmname <file>] [keepfiles] \begin_inset space ~ \end_inset -<file>] Name of temporary topology file (default: 'CpptrajEsander.parm7'). +<file>] Name of temporary topology file (default: + 'CpptrajEsander.parm7'). \end_layout \begin_layout Description @@ -28275,73 +30870,89 @@ vars>] Namelist variables supported by the sander API in format 'var <value>'; \begin_layout Standard Calculate energies for input frames using the sander API. It requires compilation with the SANDER API (sanderlib). - This can be considered as a faster alternative to energy post-processing - with sander (imin = 5). - Currently the following sander namelist variables are supported: + This can be considered as a faster alternative to energy post-processing with sander (imin = 5). + Currently the following sander namelist variables are supported: + \series bold extidel \series default -, +, + \series bold intdiel \series default -, +, + \series bold rgbmax \series default -, +, + \series bold saltcon \series default -, +, + \series bold cut \series default -, +, + \series bold dielc \series default -, +, + \series bold igb \series default -, +, + \series bold alpb \series default -, +, + \series bold gbsa \series default -, +, + \series bold lj1264 \series default -, +, + \series bold ipb \series default -, +, + \series bold inp \series default -, +, + \series bold vdwmeth \series default -, +, + \series bold ew_type \series default -, +, + \series bold ntb \series default -, +, + \series bold ntf \series default -, +, + \series bold ntc \series default @@ -28350,6 +30961,7 @@ ntc \begin_inset CommandInset ref LatexCommand vref reference "chap:sander" +nolink "false" \end_inset @@ -28357,12 +30969,15 @@ reference "chap:sander" \end_layout \begin_layout Standard -If ntb/cut/igb are not specified cpptraj will attempt to pick reasonable - values based on the input system. - The defaults for a non-periodic system are ntb=0, cut=9999.0, igb=1. - The defaults for a periodic system are ntb=1, cut=8.0, igb=0. - This currently requires writing a temporary Amber topology, the name of - which can be set by +If ntb/cut/igb are not specified cpptraj will attempt to pick reasonable values based on the input system. + The defaults for a non-periodic system are ntb=0, + cut=9999.0, + igb=1. + The defaults for a periodic system are ntb=1, + cut=8.0, + igb=0. + This currently requires writing a temporary Amber topology, + the name of which can be set by \series bold parmname \series default @@ -28375,8 +30990,8 @@ keepfiles \end_layout \begin_layout Standard -For example, to calculate energies for a non-periodic system using igb=1 - (the default) with GB surface area turned on (gbsa=1): +For example, + to calculate energies for a non-periodic system using igb=1 (the default) with GB surface area turned on (gbsa=1): \end_layout \begin_layout LyX-Code @@ -28444,8 +31059,8 @@ max \begin_inset space ~ \end_inset -<file>] File containing 1 for frames that were allowed, 0 for frames that - were filtered. +<file>] File containing 1 for frames that were allowed, + 0 for frames that were filtered. \end_layout \begin_layout Description @@ -28453,13 +31068,12 @@ max \begin_inset space ~ \end_inset -<setname>] Filtered data set name containing 1 for allowed frames, 0 for - filtered frames. +<setname>] Filtered data set name containing 1 for allowed frames, + 0 for filtered frames. \end_layout \begin_layout Description -[multi] Filter each set separately instead of all together (creates filter - set for each input set). +[multi] Filter each set separately instead of all together (creates filter set for each input set). Cannot be used with 'filterset'. \end_layout @@ -28468,8 +31082,8 @@ max \begin_inset space ~ \end_inset -<set>] If specified, <set> will be filtered to only contain data that satisfies - cutoffs. +<set>] If specified, + <set> will be filtered to only contain data that satisfies cutoffs. Cannot be used with 'multi'. \end_layout @@ -28479,8 +31093,7 @@ max \begin_inset space ~ \end_inset -<newname>] If specified a new set will be created from 'filterset' instead - of replacing 'filterset'. +<newname>] If specified a new set will be created from 'filterset' instead of replacing 'filterset'. \end_layout \end_deeper @@ -28489,8 +31102,8 @@ max \begin_inset space ~ \end_inset -<count>] If specified, write number of elements passed and filtered to <countfil -e>. +<count>] If specified, + write number of elements passed and filtered to <countfile>. Cannot be used with 'multi'. \end_layout @@ -28507,7 +31120,8 @@ passed \begin_inset Quotes erd \end_inset -, 0 otherwise. +, + 0 otherwise. \end_layout \begin_layout Description @@ -28523,8 +31137,8 @@ Sets Created ('multi') \end_layout \begin_layout Description -<setname>:<idx> For each input set (number with <idx>, starting from 0) - contains 1 for elements that +<setname>:<idx> For each input set (number with <idx>, + starting from 0) contains 1 for elements that \begin_inset Quotes eld \end_inset @@ -28532,12 +31146,14 @@ passed \begin_inset Quotes erd \end_inset -, 0 otherwise. +, + 0 otherwise. \end_layout \end_deeper \begin_layout Standard -For all following actions, only include frames that are between +For all following actions, + only include frames that are between \series bold <min> \series default @@ -28558,7 +31174,8 @@ For all following actions, only include frames that are between \series bold <max> \series default - argument, and there must be as many + argument, + and there must be as many \series bold <min> \series default @@ -28571,14 +31188,14 @@ For all following actions, only include frames that are between \series bold 'multi' \series default - is specified then only filter data sets will be created for each data set - instead. + is specified then only filter data sets will be created for each data set instead. If \series bold 'filterset' \series default - is specified, the specified <set> will be modified to only contain '1' - frames; cannot be used with + is specified, + the specified <set> will be modified to only contain '1' frames; + cannot be used with \series bold 'multi' \series default @@ -28587,8 +31204,8 @@ For all following actions, only include frames that are between \series bold 'newset' \series default - is also specified, a new set will be created containing the '1' frames - instead. + is also specified, + a new set will be created containing the '1' frames instead. The \series bold 'filterset' @@ -28598,13 +31215,13 @@ For all following actions, only include frames that are between \series bold 'countout' \series default - is specified, the final number of elements passed and filtered out will - be written to <countfile>. + is specified, + the final number of elements passed and filtered out will be written to <countfile>. \end_layout \begin_layout Standard -For example, to write only frames in-between an RMSD of 0.7-0.8 Angstroms - for a given input trajectory: +For example, + to write only frames in-between an RMSD of 0.7-0.8 Angstroms for a given input trajectory: \end_layout \begin_layout LyX-Code @@ -28650,6 +31267,7 @@ datafilter \begin_inset CommandInset ref LatexCommand pageref reference "subsec:cpptraj-datafilter" +nolink "false" \end_inset @@ -28658,6 +31276,13 @@ reference "subsec:cpptraj-datafilter" \begin_layout Subsection fixatomorder +\begin_inset CommandInset label +LatexCommand label +name "subsec:cpptraj-fixatomorder" + +\end_inset + + \end_layout \begin_layout LyX-Code @@ -28711,21 +31336,22 @@ hetatm \begin_inset space ~ \end_inset -<mask> Mark atoms in mask as HETATM, order them after other atoms. +<mask> Mark atoms in mask as HETATM, + order them after other atoms. \end_layout \end_deeper \end_deeper \begin_layout Standard -Cpptraj (and most of Amber) expects that atom indices in molecules to increase - monotonically. - However, occasionally atom indices in molecules can become disordered or - non-sequential, in which case cpptraj will print an error message such - as the following: +Cpptraj (and most of Amber) expects that atom indices in molecules to increase monotonically. + However, + occasionally atom indices in molecules can become disordered or non-sequential, + in which case cpptraj will print an error message such as the following: \end_layout \begin_layout LyX-Code -Error: Atom 45 was assigned a lower molecule # (1) than previous atom (2). +Error: + Atom 45 was assigned a lower molecule # (1) than previous atom (2). \end_layout \begin_layout Standard @@ -28733,7 +31359,8 @@ and: \end_layout \begin_layout LyX-Code -Error: Could not determine molecule information for <topology file>. +Error: + Could not determine molecule information for <topology file>. \end_layout \begin_layout Standard @@ -28751,10 +31378,9 @@ outprefix \end_layout \begin_layout Standard -For example, given an out of order topology named 'outoforder.parm7' and - a corresponding trajectory 'min1.crd', the following will produce a reordered - topology named 'reorder.outoforder.parm7' and a reordered trajectory named - 'reorder.mdcrd': +For example, + given an out of order topology named 'outoforder.parm7' and a corresponding trajectory 'min1.crd', + the following will produce a reordered topology named 'reorder.outoforder.parm7' and a reordered trajectory named 'reorder.mdcrd': \end_layout \begin_layout LyX-Code @@ -28778,8 +31404,11 @@ If \series bold 'pdborder' \series default - is specified, attempt to organize atoms by PDB information (i.e. - Chain ID, original residue numbering, and insertion codes). + is specified, + attempt to organize atoms by PDB information (i.e. + Chain ID, + original residue numbering, + and insertion codes). Atoms optionally specified by \series bold 'hetatm @@ -28791,8 +31420,8 @@ If ' will be placed after all other atoms. \emph on -Note that the 'pdborder' keyword is still experimental, and requires that - the Topology have PDB-type information present. +Note that the 'pdborder' keyword is still experimental, + and requires that the Topology have PDB-type information present. \end_layout \begin_layout Subsection @@ -28827,6 +31456,8 @@ gist (Grid Inhomogeneous Solvation Theory) \begin_layout LyX-Code gist \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -28859,8 +31490,7 @@ gist \end_layout \begin_layout LyX-Code - [floatfmt {double|scientific|general}] [floatwidth <fw>] [floatprec - <fp>] + [floatfmt {double|scientific|general}] [floatwidth <fw>] [floatprec <fp>] \end_layout \begin_layout LyX-Code @@ -28914,8 +31544,8 @@ literal "true" \begin_deeper \begin_layout Description -[nopl] If specified, do not use the pair list for the order calculation - (may be much slower). +[nopl] If specified, + do not use the pair list for the order calculation (may be much slower). \end_layout \begin_layout Description @@ -28932,8 +31562,7 @@ literal "true" \series bold [doeij] \series default - Calculate the triangular matrix representing the water-water interactions - between pairs of voxels (see below). + Calculate the triangular matrix representing the water-water interactions between pairs of voxels (see below). \end_layout \begin_layout Description @@ -28957,15 +31586,18 @@ literal "true" rdval>] \series default - Reference density of bulk water, used in computing + Reference density of bulk water, + used in computing \series bold g_O \series default , + \series bold g_H \series default -, and the translational entropy. +, + and the translational entropy. Default is 0.0334 molecules/Å \begin_inset Formula $^{3}$ \end_inset @@ -29002,7 +31634,9 @@ rdval>] <zval>] \series default - Coordinates (Å) of the center of the grid (default 0.0, 0.0, 0.0). + Coordinates (Å) of the center of the grid (default 0.0, + 0.0, + 0.0). \end_layout \begin_layout Description @@ -29010,8 +31644,8 @@ rdval>] \begin_inset space ~ \end_inset -<fitmask>] If specified, grid will be centered and rotated to follow atoms - selected by <fitmask>. +<fitmask>] If specified, + grid will be centered and rotated to follow atoms selected by <fitmask>. \end_layout \begin_layout Description @@ -29031,8 +31665,9 @@ rdval>] <nz>] \series default - Grid dimensions (number of bins/voxels) along each coordinate axis (default - 40, 40, 40). + Grid dimensions (number of bins/voxels) along each coordinate axis (default 40, + 40, + 40). \end_layout \begin_layout Description @@ -29106,7 +31741,8 @@ extension>] Output grid file name extension (default <output suffix>] \series default Suffix for main GIST output file name. - If not specified, output file will be set to '<prefix>-output.dat'. + If not specified, + output file will be set to '<prefix>-output.dat'. \end_layout \begin_layout Description @@ -29114,9 +31750,12 @@ extension>] Output grid file name extension (default \begin_inset space ~ \end_inset -{double|scientific|general}] Format for floating point values in GIST output - file: double (regular fixed decimal point), scientific, or general (default, - chooses fixed or scientific, whichever fits better). +{double|scientific|general}] Format for floating point values in GIST output file: + double (regular fixed decimal point), + scientific, + or general (default, + chooses fixed or scientific, + whichever fits better). \end_layout \begin_layout Description @@ -29156,7 +31795,8 @@ extension>] Output grid file name extension (default \end_inset suffix>] Suffix for main GIST info file name. - If not specified, info will be written to standard output. + If not specified, + info will be written to standard output. \end_layout \begin_layout Description @@ -29169,12 +31809,10 @@ suffix>] Suffix for main GIST info file name. \begin_inset space ~ \end_inset -<nlayers>] Number of layers of neighboring voxels that should be used when - searching for nearest neighbors. +<nlayers>] Number of layers of neighboring voxels that should be used when searching for nearest neighbors. This has to be at least 1 to obtain the correct entropy. - Higher values can help to obtain better convergence of the translational - and 6D entropy with little sampling or fine grid spacings, but increase - the calculation time (default 1). + Higher values can help to obtain better convergence of the translational and 6D entropy with little sampling or fine grid spacings, + but increase the calculation time (default 1). \end_layout \begin_layout Description @@ -29184,7 +31822,8 @@ suffix>] Suffix for main GIST info file name. <mask>] Selection mask for the solute. All other molecules will be solvent. - If this is omitted, the standard solute/solvent assignment will be used. + If this is omitted, + the standard solute/solvent assignment will be used. \end_layout \begin_layout Description @@ -29194,8 +31833,11 @@ suffix>] Suffix for main GIST info file name. <MOLS>] Comma-separated list of names of solvent molecules. Energies will be computed per solvent molecule. - For the entropy, only the main solvent (the first one) will be used. - Use, e.g., + For the entropy, + only the main solvent (the first one) will be used. + Use, + e.g., + \series bold solventmols WAT,NA,CL \series default @@ -29205,7 +31847,8 @@ solventmols WAT,NA,CL \begin_layout Description [nocom] Do not use the center of mass to define the molecular position. - Instead, use the first atom in + Instead, + use the first atom in \series bold rigidatoms \series default @@ -29227,16 +31870,19 @@ rigidatoms \end_inset <SUBST2>] Specifies how to define the molecular orientation for the entropy. - By default, a simple heuristic will be used. - This works for water, but not for all solvents. - The atoms should be representative of the molecular orientation and should - not be collinear. + By default, + a simple heuristic will be used. + This works for water, + but not for all solvents. + The atoms should be representative of the molecular orientation and should not be collinear. Note that the central atom goes first. - For water, the default is equivalent to + For water, + the default is equivalent to \series bold rigidatoms O H1 H2 \series default -, corresponding to H1-O-H2 as the rigid substructure. +, + corresponding to H1-O-H2 as the rigid substructure. \end_layout \begin_layout Description @@ -29245,8 +31891,7 @@ rigidatoms O H1 H2 \begin_layout Description [pme] Use particle mesh Ewald for the non-bonded electrostatics calculation. - The van der Waals energy will be calculated using a long-range correction - for periodicity. + The van der Waals energy will be calculated using a long-range correction for periodicity. Does not support \series bold doeij @@ -29289,8 +31934,8 @@ erfcdx \end_layout \begin_layout Description -skinnb Used to determine pairlist atoms (added to cut, so pairlist cutoff - is +skinnb Used to determine pairlist atoms (added to cut, + so pairlist cutoff is \series bold cut \series default @@ -29298,7 +31943,8 @@ cut \series bold skinnb \series default -); included in order to maintain consistency with results from sander. +); + included in order to maintain consistency with results from sander. \end_layout \begin_layout Description @@ -29306,8 +31952,8 @@ ljswidth \begin_inset space ~ \end_inset -<width> If specified, use a force-switching form for the Lennard-Jones calculati -on from <cutoff>-<width> to <cutoff>. +<width> If specified, + use a force-switching form for the Lennard-Jones calculation from <cutoff>-<width> to <cutoff>. \end_layout \begin_layout Description @@ -29323,8 +31969,7 @@ nfft \begin_inset space ~ \end_inset -<nfft1>,<nfft2>,<nfft3> Explicitly set the number of FFT grid points in - each dimension. +<nfft1>,<nfft2>,<nfft3> Explicitly set the number of FFT grid points in each dimension. Will be determined automatically if not specified. \end_layout @@ -29334,13 +31979,12 @@ DataSet Aspects: \end_layout \begin_layout Description -[gO] Number density of oxygen centers found in the voxel, in units of the - bulk density. +[gO] Number density of oxygen centers found in the voxel, + in units of the bulk density. \end_layout \begin_layout Description -[gH] Number density of hydrogen centers found in the voxel in units of the - reference bulk density. +[gH] Number density of hydrogen centers found in the voxel in units of the reference bulk density. \end_layout \begin_layout Description @@ -29364,8 +32008,7 @@ DataSet Aspects: \end_layout \begin_layout Description -[neighbor] Mean number of waters neighboring the water molecules found in - this voxel multiplied by the voxel number density. +[neighbor] Mean number of waters neighboring the water molecules found in this voxel multiplied by the voxel number density. \end_layout \begin_layout Description @@ -29409,7 +32052,9 @@ DataSets if the main solvent is not water: \series bold ELEM \series default - in the main solvent, the atomic density relative to rho0 (e.g., + in the main solvent, + the atomic density relative to rho0 (e.g., + \series bold gC \series default @@ -29429,7 +32074,8 @@ DataSets if there are multiple solvents: \series bold NAME \series default - (e.g., + (e.g., + \series bold g_mol_WAT \series default @@ -29449,7 +32095,8 @@ solventmols WAT,NA \series bold NAME \series default - (e.g., + (e.g., + \series bold Esw_mol_WAT \series default @@ -29469,7 +32116,8 @@ solventmols WAT,NA \series bold NAME \series default - (e.g., + (e.g., + \series bold Eww_mol_WAT \series default @@ -29494,21 +32142,20 @@ literal "true" \end_inset - (GIST) is a method for analyzing the structure and thermodynamics of solvent - in the vicinity of a solute molecule. - The current implementation works for only water, but the method can be - generalized to other solvents whose molecules are rigid like water, such - as chloroform or dimethylsulfoxide (DMSO). - GIST post-processes explicit solvent simulation data to create a three-dimensio -nal mapping of water density and thermodynamic properties within a region - of interest, which is defined by a user-specified 3D rectangular grid. - The small grid boxes are referred to as voxels, and each voxel is associated - with solvent properties. + (GIST) is a method for analyzing the structure and thermodynamics of solvent in the vicinity of a solute molecule. + The current implementation works for only water, + but the method can be generalized to other solvents whose molecules are rigid like water, + such as chloroform or dimethylsulfoxide (DMSO). + GIST post-processes explicit solvent simulation data to create a three-dimensional mapping of water density and thermodynamic properties within a region of interest, + which is defined by a user-specified 3D rectangular grid. + The small grid boxes are referred to as voxels, + and each voxel is associated with solvent properties. (See Fig. \begin_inset CommandInset ref LatexCommand ref reference "gist-1-1" +nolink "false" \end_inset @@ -29516,30 +32163,32 @@ reference "gist-1-1" \emph on cpptraj \emph default - also calculates a number of other local water properties, as listed below. + also calculates a number of other local water properties, + as listed below. GIST works for the nonpolarizable water models currently supported by AMBER. \end_layout \begin_layout Standard -In order to carry out a GIST calculation, you must have a trajectory file - generated with explicit water, as well as the corresponding topology file. - To generate the most readily interpretable results, it is recommended that - the solute (e.g., a protein) be restrained into essentially one conformation. - GIST will then provide information about the structure and thermodynamics - of the solvent for that conformation. - For a room-temperature simulation of a solvent-exposed binding site, and - a grid-spacing of 0.5 Å, it is recommended that the simulation be at least - 10-20 ns in duration, and it is also a good idea to check for convergence - of the GIST properties you are interested in by loading and then processing - successively more frames of your trajectory file. - Because GIST assumes that the solute of interest comprises all molecules - in the simulation that are not waters, it is a good idea to remove all - counterions and cosolutes with cpptraj's strip command before running GIST. +In order to carry out a GIST calculation, + you must have a trajectory file generated with explicit water, + as well as the corresponding topology file. + To generate the most readily interpretable results, + it is recommended that the solute (e.g., + a protein) be restrained into essentially one conformation. + GIST will then provide information about the structure and thermodynamics of the solvent for that conformation. + For a room-temperature simulation of a solvent-exposed binding site, + and a grid-spacing of 0.5 Å, + it is recommended that the simulation be at least 10-20 ns in duration, + and it is also a good idea to check for convergence of the GIST properties you are interested in by loading and then processing successively more frames of your trajectory file. + Because GIST assumes that the solute of interest comprises all molecules in the simulation that are not waters, + it is a good idea to remove all counterions and cosolutes with cpptraj's strip command before running GIST. A sample series of cpptraj commands for running GIST is provided below. \end_layout \begin_layout Standard \begin_inset Float figure +placement document +alignment document wide false sideways false status open @@ -29568,7 +32217,9 @@ centering \begin_inset Caption Standard \begin_layout Plain Layout -Diagram, in 2D, of GIST's gridded water properties in a binding site. +Diagram, + in 2D, + of GIST's gridded water properties in a binding site. \end_layout \end_inset @@ -29596,7 +32247,8 @@ Although it is not mandatory to supply values of \series bold gridcntr \series default -, +, + \series bold griddim \series default @@ -29604,8 +32256,9 @@ griddim \series bold gridspcn \series default -, these parameters should be carefully chosen, because they determine the - region to be analyzed ( +, + these parameters should be carefully chosen, + because they determine the region to be analyzed ( \series bold gridcntr \series default @@ -29618,13 +32271,13 @@ griddim gridspcn \series default ). - In particular, although smaller grid spacings will give finer spatial resolutio -n, longer simulation times will be needed to converge the properties in - the smaller voxels that result. - A larger grid spacing will allow earlier convergence, but will smooth the - spatial distributions. - When computing the sum over voxel values in a larger region, the result - is independent of the grid spacing as long as + In particular, + although smaller grid spacings will give finer spatial resolution, + longer simulation times will be needed to converge the properties in the smaller voxels that result. + A larger grid spacing will allow earlier convergence, + but will smooth the spatial distributions. + When computing the sum over voxel values in a larger region, + the result is independent of the grid spacing as long as \series bold nlayers \series default @@ -29636,38 +32289,45 @@ The reference density of water ( \series bold rdval \series default -) is taken by default to be the experimental number density of pure water - at 300 K and 1 atm. - However, different water models may yield slightly different bulk densities - under these conditions, and the density also depends on T and P. - If you know that the bulk density of the water model you are using, at - the T and P of your simulation, deviates significantly from 0.0334 water - molecules/Å +) is taken by default to be the experimental number density of pure water at 300 K and 1 atm. + However, + different water models may yield slightly different bulk densities under these conditions, + and the density also depends on T and P. + If you know that the bulk density of the water model you are using, + at the T and P of your simulation, + deviates significantly from 0.0334 water molecules/Å \begin_inset Formula $^{3}$ \end_inset -, it would be advisable to supply the actual value with the +, + it would be advisable to supply the actual value with the \series bold refdens \series default - keyword, instead of allowing GIST to supply the default value. + keyword, + instead of allowing GIST to supply the default value. \end_layout \begin_layout Standard -For GIST, a GPU accelerated version is available, in which the interaction - energy is calculated using CUDA. - When using the GPU accelerated version of GIST, the +For GIST, + a GPU accelerated version is available, + in which the interaction energy is calculated using CUDA. + When using the GPU accelerated version of GIST, + the \series bold doeij \series default keyword is not available. - It is recommended to use a grid covering the entire box, when using the - GPU implementation. - You may also choose a smaller grid, but all interaction energies, i.e., each - atom with each atom, will always be calculated independent of the chosen - grid. + It is recommended to use a grid covering the entire box, + when using the GPU implementation. + You may also choose a smaller grid, + but all interaction energies, + i.e., + each atom with each atom, + will always be calculated independent of the chosen grid. This ensures optimum performance when calculating the interaction energies. - Thus, the additional time required to calculate the order parameters ( + Thus, + the additional time required to calculate the order parameters ( \series bold doorder \series default @@ -29675,8 +32335,7 @@ doorder \end_layout \begin_layout Standard -The nonbonded energy calculation can also be accelerated using particle - mesh Ewald via the pme keyword (CPU only). +The nonbonded energy calculation can also be accelerated using particle mesh Ewald via the pme keyword (CPU only). \begin_inset CommandInset citation LatexCommand citep key "Chen2021" @@ -29698,9 +32357,8 @@ GIST Output \end_layout \begin_layout Standard -GIST generates a main output file and a collection of grid data files that - by default are in Data Explorer format (.dx); this can be changed via the - +GIST generates a main output file and a collection of grid data files that by default are in Data Explorer format (.dx); + this can be changed via the \series bold ext \series default @@ -29719,47 +32377,53 @@ literal "true" \series bold doeij \series default - keyword is provided, GIST also writes out a matrix of water-water interactions - between pairs of voxels. - In addition, run details are written to stdout, which can be redirected - into a log file. + keyword is provided, + GIST also writes out a matrix of water-water interactions between pairs of voxels. + In addition, + run details are written to stdout, + which can be redirected into a log file. \end_layout \begin_layout Standard -Note that a number of quantities are written out as both densities and normalize -d quantities. - For example, the output file includes both the solute-water energy density - and the normalized (per water) solute-water energy. - In all cases, the normalized quantity at voxel +Note that a number of quantities are written out as both densities and normalized quantities. + For example, + the output file includes both the solute-water energy density and the normalized (per water) solute-water energy. + In all cases, + the normalized quantity at voxel \begin_inset Formula $i$ \end_inset -, +, + \begin_inset Formula $X_{i,norm}$ \end_inset - is related to the corresponding density, + is related to the corresponding density, + \begin_inset Formula $X_{i,dens}$ \end_inset -, by the relationship +, + by the relationship \begin_inset Formula $X_{i,norm}=\rho_{i}X_{i,dens}$ \end_inset -, where +, + where \begin_inset Formula $\rho_{i}$ \end_inset is the number density of water in the voxel. - The normalized quantity provides information regarding the nature of the - water found in the voxel. - The density has the property that, if the grid extended over the entire - simulation volume, the total system quantity would be given by + The normalized quantity provides information regarding the nature of the water found in the voxel. + The density has the property that, + if the grid extended over the entire simulation volume, + the total system quantity would be given by \begin_inset Formula $X_{tot}=V_{voxel}\sum_{i}X_{i,dens}$ \end_inset -, where +, + where \begin_inset Formula $V_{voxel}$ \end_inset @@ -29770,8 +32434,7 @@ d quantities. \begin_layout Standard The main output file takes the form of a space-delimited-variable file, where each row corresponds to one voxel of the grid. - This file can easily be opened with and manipulated with spreadsheet programs - like Excel and LibreOffice Calc. + This file can easily be opened with and manipulated with spreadsheet programs like Excel and LibreOffice Calc. The columns are as follows. \end_layout @@ -29781,7 +32444,8 @@ The main output file takes the form of a space-delimited-variable file, \series bold index \series default - - A unique, sequential integer assigned to each voxel + - A unique, + sequential integer assigned to each voxel \end_layout \begin_layout Itemize @@ -29813,15 +32477,15 @@ zcoord \series bold population \series default -- Number of water molecule, +- Number of water molecule, + \begin_inset Formula $n_{i}$ \end_inset -, found in the voxel over the entire simulation. - A water molecule is deemed to populate a voxel if its oxygen coordinates - are inside the voxel. - The expectation value of this quantity increases in proportion to the length - of the simulation. +, + found in the voxel over the entire simulation. + A water molecule is deemed to populate a voxel if its oxygen coordinates are inside the voxel. + The expectation value of this quantity increases in proportion to the length of the simulation. \end_layout \begin_layout Itemize @@ -29829,9 +32493,10 @@ population \series bold g_O \series default - - Number density of oxygen centers found in the voxel, in units of the - bulk density (rdval). - Thus, the expectation value of + - Number density of oxygen centers found in the voxel, + in units of the bulk density (rdval). + Thus, + the expectation value of \series bold g_O \series default @@ -29843,13 +32508,13 @@ g_O \series bold g_H \series default - - Number density of hydrogen centers found in the voxel in units of the - reference bulk density (2 + - Number density of hydrogen centers found in the voxel in units of the reference bulk density (2 \begin_inset Formula $\times$ \end_inset rdval). - Thus, the expectation value of + Thus, + the expectation value of \series bold g_H \series default @@ -29874,8 +32539,7 @@ ELEM \series bold g_mol_NAME \series default - - (if there is more than one solvent) Density of every solvent species - + - (if there is more than one solvent) Density of every solvent species \series bold NAME \series default @@ -29896,8 +32560,9 @@ dTStrans-dens \begin_inset Formula $^{3}$ \end_inset -), referenced to the translational entropy of bulk water, based on the value - rdval. +), + referenced to the translational entropy of bulk water, + based on the value rdval. \end_layout \begin_layout Itemize @@ -29906,8 +32571,8 @@ dTStrans-dens dTStrans-norm \series default - First order translational entropy per water molecule (kcal/mole/molecule), - referenced to the translational entropy of bulk water, based on the value - rdval. + referenced to the translational entropy of bulk water, + based on the value rdval. The quantity \series bold dTStrans-norm @@ -29932,7 +32597,8 @@ dTSorient-dens \begin_inset Formula $^{3}$ \end_inset -), referenced to bulk solvent (see below). +), + referenced to bulk solvent (see below). \end_layout \begin_layout Itemize @@ -29959,12 +32625,11 @@ Esw-dens \end_inset ). - This is the interaction of the solvent in a given voxel with the entire - solute. - Both Lennard-Jones and electrostatic interactions are computed without - any cutoff, within the minimum image convention but without Ewald summation. - This quantity is referenced to bulk, in the trivial sense that the solute-solve -nt interaction energy is zero in bulk. + This is the interaction of the solvent in a given voxel with the entire solute. + Both Lennard-Jones and electrostatic interactions are computed without any cutoff, + within the minimum image convention but without Ewald summation. + This quantity is referenced to bulk, + in the trivial sense that the solute-solvent interaction energy is zero in bulk. \end_layout \begin_layout Itemize @@ -29985,18 +32650,19 @@ Esw-norm \series bold Eww-dens \series default - - Mean water-water interaction energy density, scaled by ½ to prevent double-co -unting, and not referenced to the corresponding bulk value of this quantity - (see below). - This quantity is one half of the mean interaction energy of the water in - a given voxel with all other waters in the system, both on and off the - GIST grid, divided by the volume of the voxel (kcal/mole/Å + - Mean water-water interaction energy density, + scaled by ½ to prevent double-counting, + and not referenced to the corresponding bulk value of this quantity (see below). + This quantity is one half of the mean interaction energy of the water in a given voxel with all other waters in the system, + both on and off the GIST grid, + divided by the volume of the voxel (kcal/mole/Å \begin_inset Formula $^{3}$ \end_inset ). - Unless PME is used, both Lennard-Jones and electrostatic interactions are - computed without any cutoff, within the minimum image convention. + Unless PME is used, + both Lennard-Jones and electrostatic interactions are computed without any cutoff, + within the minimum image convention. \end_layout \begin_layout Itemize @@ -30008,12 +32674,12 @@ Esw_mol_NAME-dens \series bold Esw_mol_NAME-norm \series default - - (if there are multiple solvent species) Mean solute-solvent energy per - molecule of species + - (if there are multiple solvent species) Mean solute-solvent energy per molecule of species \series bold NAME \series default -, for each solvent specified in +, + for each solvent specified in \series bold solventmols \series default @@ -30034,12 +32700,12 @@ Eww_mol_NAME-dens \series bold Eww_mol_NAME-norm \series default - - (if there are multiple solvent species) Mean solvent-solvent energy per - molecule of species + - (if there are multiple solvent species) Mean solvent-solvent energy per molecule of species \series bold NAME \series default -, for each solvent specified in +, + for each solvent specified in \series bold solventmols \series default @@ -30056,8 +32722,7 @@ Eww \series bold PME-norm \series default - - (Only if PME was used) Mean PME solvent energy per water molecule (kcal/mole/ -molecule). + - (Only if PME was used) Mean PME solvent energy per water molecule (kcal/mole/molecule). This equals \series bold PME-dens @@ -30092,8 +32757,8 @@ Esw-norm \series bold Eww-norm \series default - - Mean water-water interaction energy, normalized to the mean number of - water molecules in the voxel (kcal/mole/water). + - Mean water-water interaction energy, + normalized to the mean number of water molecules in the voxel (kcal/mole/water). See prior column definition for details. \end_layout @@ -30150,12 +32815,10 @@ Dipole-dens \series bold Neighbor-dens \series default - - Mean number of waters neighboring the water molecules found in this voxel - multiplied by the voxel number density. - Two waters are considered neighbors if their oxygens are within 3.5 angstroms - of each other. - For any given frame, the contribution to the average is set to zero if - no water is found in the voxel (units of number/Å + - Mean number of waters neighboring the water molecules found in this voxel multiplied by the voxel number density. + Two waters are considered neighbors if their oxygens are within 3.5 angstroms of each other. + For any given frame, + the contribution to the average is set to zero if no water is found in the voxel (units of number/Å \begin_inset Formula $^{3}$ \end_inset @@ -30167,8 +32830,8 @@ Neighbor-dens \series bold Neighbor-norm \series default - - Mean number of neighboring water molecules, per water molecule found - in the voxel (units of number per water). + - Mean number of neighboring water molecules, + per water molecule found in the voxel (units of number per water). \end_layout \begin_layout Itemize @@ -30184,17 +32847,20 @@ literal "true" \end_inset -, +, + \begin_inset Formula $q_{tet}$ \end_inset -, for water molecules found in the voxel, normalized by the number of waters - in the voxel. +, + for water molecules found in the voxel, + normalized by the number of waters in the voxel. The order parameter for water \begin_inset Formula $i$ \end_inset - in a given frame is given by: + in a given frame is given by: + \begin_inset Formula $q_{tet}(i)=1-\frac{3}{8}\sum_{j=1}^{3}\sum_{k=j+1}^{4}(cos\phi_{ijk}+\frac{1}{3})^{2}$ \end_inset @@ -30210,7 +32876,8 @@ literal "true" \begin_inset Formula $i$ \end_inset -, and +, + and \begin_inset Formula $\phi_{ijk}$ \end_inset @@ -30218,34 +32885,48 @@ literal "true" \begin_inset Formula $i$ \end_inset -, +, + \begin_inset Formula $j$ \end_inset -, and +, + and \begin_inset Formula $k$ \end_inset . - If the doorder keyword is not provided or is set to FALSE, then this calculatio -n will not be done, and the entries in this column will be set to zero. -\end_layout - -\begin_layout Standard -Grid files are provided for all computed quantities listed above, except - that the normalized quantities are not included. - The filenames are as follows: gist-gO.dx, gist-gH.dx, gist-dTStrans-dens.dx, - gist-dTSorient-dens.dx, gist-Esw-dens.dx, gist-Eww-dens.dx, gist-dipolex-dens.dx, - gist-dipoley-dens.dx, gist-dipolez-dens.dx, gist-dipole-dens.dx, gist-neighbor-den -s.dx, gist-neighbor-norm.dx, gist-order-norm.dx. + If the doorder keyword is not provided or is set to FALSE, + then this calculation will not be done, + and the entries in this column will be set to zero. +\end_layout + +\begin_layout Standard +Grid files are provided for all computed quantities listed above, + except that the normalized quantities are not included. + The filenames are as follows: + gist-gO.dx, + gist-gH.dx, + gist-dTStrans-dens.dx, + gist-dTSorient-dens.dx, + gist-Esw-dens.dx, + gist-Eww-dens.dx, + gist-dipolex-dens.dx, + gist-dipoley-dens.dx, + gist-dipolez-dens.dx, + gist-dipole-dens.dx, + gist-neighbor-dens.dx, + gist-neighbor-norm.dx, + gist-order-norm.dx. If the \series bold doorder \series default - keyword is not provided, then the data in gist-order-norm.dx will all be - zeroes. - Note that the file of voxel water densities, gist-gO.dx, can be used as - input to the program Placevent + keyword is not provided, + then the data in gist-order-norm.dx will all be zeroes. + Note that the file of voxel water densities, + gist-gO.dx, + can be used as input to the program Placevent \begin_inset CommandInset citation LatexCommand citep key "Sindhikara" @@ -30253,7 +32934,8 @@ literal "true" \end_inset -, in order to define spherical hydration sites based on the density distribution. +, + in order to define spherical hydration sites based on the density distribution. More detailed descriptions of the files follows: \end_layout @@ -30295,10 +32977,10 @@ gist-dipolez-dens.dx gist-dTSorient-dens.dx \series default - Density weighted first order orientational entropy (kcal/mole/Å3). - The more negative the isovalue, the more restricted or unfavorable the - orientation of the water is. - The value at bulk density is expected to be zero, most values will fall - between 0 and -1. + The more negative the isovalue, + the more restricted or unfavorable the orientation of the water is. + The value at bulk density is expected to be zero, + most values will fall between 0 and -1. \end_layout \begin_layout Itemize @@ -30307,9 +32989,10 @@ gist-dTSorient-dens.dx gist-dTStrans-dens.dx \series default - Density weighted first order tranlational entropy (kcal/mole/Å3). - The more negative isovalue, the more restricted the water is positionally. - The value at bulk density is expected to be zero, most values will fall - between 0 and -1. + The more negative isovalue, + the more restricted the water is positionally. + The value at bulk density is expected to be zero, + most values will fall between 0 and -1. \end_layout @@ -30320,10 +33003,10 @@ gist-Esw-dens.dx \series default - Density weighted Solute-Water interaction energy (kcal/mole/Å3). This is the interaction of the water with the entire solute. - Both Lennard-Jones and electrostatic interactions are computed without - any cutoff, within the minimum image convention. - The more negative the number, the more favorable the interaction between - the water and solute is. + Both Lennard-Jones and electrostatic interactions are computed without any cutoff, + within the minimum image convention. + The more negative the number, + the more favorable the interaction between the water and solute is. Isovalues will be negative numbers. \end_layout @@ -30335,10 +33018,10 @@ gist-Eww-dens.dx \series default - Density weighted Water-Water interaction energy (kcal/mole/Å3). This is the interaction of the water with the entire solvent. - Both Lennard-Jones and electrostatic interactions are computed without - any cutoff, within the minimum image convention. - The more negative the number, the more favorable the interaction between - water within this voxel and all other water molucules is. + Both Lennard-Jones and electrostatic interactions are computed without any cutoff, + within the minimum image convention. + The more negative the number, + the more favorable the interaction between water within this voxel and all other water molucules is. Isovalues will be negative numbers. \end_layout @@ -30348,12 +33031,11 @@ gist-Eww-dens.dx \series bold gist-gH.dx \series default - - Number density of hydrogen centers found in the voxel, in units of the - bulk density. + - Number density of hydrogen centers found in the voxel, + in units of the bulk density. The expectation value of g_H for a neat water system is unity. The units of this dx file are the density/bulk density. - Therefore an isovalue of 1 represents every voxel at or greater than bulk - density. + Therefore an isovalue of 1 represents every voxel at or greater than bulk density. \end_layout @@ -30362,12 +33044,11 @@ gist-gH.dx \series bold gist-gO.dx \series default - - Number density of oxygen centers found in the voxel, in units of the - bulk density. + - Number density of oxygen centers found in the voxel, + in units of the bulk density. The expectation value of g_O for a neat water system is unity. The units of this dx file are the density/bulk density. - Therefore an isovalue of 1 represents every voxel at or greater than bulk - density. + Therefore an isovalue of 1 represents every voxel at or greater than bulk density. \end_layout @@ -30376,10 +33057,9 @@ gist-gO.dx \series bold gist-neighbor-norm.dx \series default - - Mean number of neighboring water molecules, per water molecule found - in the voxel (units of number per water). - Two waters are considered neighbors if their oxygens are within 3.5 Angstroms - of each other. + - Mean number of neighboring water molecules, + per water molecule found in the voxel (units of number per water). + Two waters are considered neighbors if their oxygens are within 3.5 Angstroms of each other. \end_layout @@ -30388,8 +33068,8 @@ gist-neighbor-norm.dx \series bold gist-order-norm.dx \series default - - Average Tetrahedral Order Parameter for water molecules found in the - voxel, normalized by the number of waters in the voxel. + - Average Tetrahedral Order Parameter for water molecules found in the voxel, + normalized by the number of waters in the voxel. \series bold doorder @@ -30398,14 +33078,16 @@ doorder \end_layout \begin_layout Standard -Similar grid files with other computed quantities can be generated by reading - the gist.out file into a spreadsheet program, processing the numbers to - generate a new column of voxel data of interest, and writing this column - to an ascii text file. - Then the Perl script write_dx_file.pl, which should be available on the - GIST tutorial web-site, may be used to read in the column of data and create - the corresponding dx file. - The input format, and an example, are as follows: +Similar grid files with other computed quantities can be generated by reading the gist.out file into a spreadsheet program, + processing the numbers to generate a new column of voxel data of interest, + and writing this column to an ascii text file. + Then the Perl script write_dx_file.pl, + which should be available on the GIST tutorial web-site, + may be used to read in the column of data and create the corresponding dx file. + The input format, + and an example, + are as follows: + \end_layout \begin_layout LyX-Code @@ -30421,24 +33103,30 @@ Similar grid files with other computed quantities can be generated by reading \end_layout \begin_layout Standard -If the doeij keyword is provided, GIST also writes a large file, Eww_ij.dat, +If the doeij keyword is provided, + GIST also writes a large file, + Eww_ij.dat, containing the mean water-water interaction energies between pairs of voxels, scaled by ½. (See below.) This file has three columns. - The first two columns are voxel indexes, + The first two columns are voxel indexes, + \begin_inset Formula $i$ \end_inset -, +, + \begin_inset Formula $j$ \end_inset -, where +, + where \begin_inset Formula $j>i$ \end_inset -, so that no pair appears more than once, and the third column is the mean - interaction energy (kcal/mole) of water in voxels +, + so that no pair appears more than once, + and the third column is the mean interaction energy (kcal/mole) of water in voxels \begin_inset Formula $i$ \end_inset @@ -30446,10 +33134,13 @@ If the doeij keyword is provided, GIST also writes a large file, Eww_ij.dat, \begin_inset Formula $j$ \end_inset -, scaled by ½. - If the occupancy of either voxel is 0, such as for voxels covered by solute - atoms, then the interaction energy is zero. - In order to save space, such interactions are omitted from the file. +, + scaled by ½. + If the occupancy of either voxel is 0, + such as for voxels covered by solute atoms, + then the interaction energy is zero. + In order to save space, + such interactions are omitted from the file. \end_layout @@ -30462,16 +33153,21 @@ Sample cpptraj input file to run GIST \end_layout \begin_layout Standard -The following input file, gist.in, causes cpptraj to read a parameter file - named topology.top; read in the first 5000 frames of the trajectory file - named trajectoryfile.mdcrd; strip out all Na and Cl ions; and carry out - a GIST run which computes order parameters, uses a 41x41x45 grid centered - at (25.0, 31.0, 30.0) with a spacing of 0.5 Å, uses the default bulk water - density of 0.0334 molecules/Å +The following input file, + gist.in, + causes cpptraj to read a parameter file named topology.top; + read in the first 5000 frames of the trajectory file named trajectoryfile.mdcrd; + strip out all Na and Cl ions; + and carry out a GIST run which computes order parameters, + uses a 41x41x45 grid centered at (25.0, + 31.0, + 30.0) with a spacing of 0.5 Å, + uses the default bulk water density of 0.0334 molecules/Å \begin_inset Formula $^{3}$ \end_inset -, and generates the main output file gist.out. +, + and generates the main output file gist.out. \end_layout @@ -30504,7 +33200,8 @@ go \end_layout \begin_layout Standard -To execute this run in the background, use +To execute this run in the background, + use \end_layout \begin_layout LyX-Code @@ -30522,31 +33219,34 @@ Referencing GIST results to unperturbed (bulk) water \end_layout \begin_layout Standard -Inhomogeneous fluid solvation theory, which is the basis of GIST, is designed - to provide information on how water structure and thermodynamics around - a solute molecule, such as a protein, are changed relative to the structure - and thermodynamics of unperturbed (bulk) water. - Accordingly, the quantities reported by GIST are most informative when - the results are referenced to the corresponding bulk water properties. - For the orientational entropy, the reference value is the same regardless - of water model or conditions, because the first order orientational distributio -n of water in the bulk is always uniform. - Therefore, the GIST results for orientational entropies are already referenced - to bulk. - However, cpptraj reports unreferenced values for those GIST quantities - whose reference values depend upon the water model and the simulation condition -s; i.e., the energies. - The translational entropy as well as the number densities will be referenced - to bulk using the input referenced density or the default density value - of 0.0334. +Inhomogeneous fluid solvation theory, + which is the basis of GIST, + is designed to provide information on how water structure and thermodynamics around a solute molecule, + such as a protein, + are changed relative to the structure and thermodynamics of unperturbed (bulk) water. + Accordingly, + the quantities reported by GIST are most informative when the results are referenced to the corresponding bulk water properties. + For the orientational entropy, + the reference value is the same regardless of water model or conditions, + because the first order orientational distribution of water in the bulk is always uniform. + Therefore, + the GIST results for orientational entropies are already referenced to bulk. + However, + cpptraj reports unreferenced values for those GIST quantities whose reference values depend upon the water model and the simulation conditions; + i.e., + the energies. + The translational entropy as well as the number densities will be referenced to bulk using the input referenced density or the default density value of 0.0334. The table below provides useful reference values for these quantities, - computed for various water models at P=1atm, T=300K, using GIST in order - to ensure a consistent minimum image treatment of periodic boundary conditions. + computed for various water models at P=1atm, + T=300K, + using GIST in order to ensure a consistent minimum image treatment of periodic boundary conditions. \end_layout \begin_layout Standard \begin_inset Float table +placement document +alignment document wide false sideways false status open @@ -30826,21 +33526,22 @@ Water model energy and density. \end_layout \begin_layout Standard -Users running calculations under significantly different conditions, or - with different water models, should consider generating their own reference - quantities by applying GIST to a simulation of pure water under their condition -s of interest. - The quantities of interest can then be obtained in their most precise available - form by averaging over voxels, for the pure water simulation. +Users running calculations under significantly different conditions, + or with different water models, + should consider generating their own reference quantities by applying GIST to a simulation of pure water under their conditions of interest. + The quantities of interest can then be obtained in their most precise available form by averaging over voxels, + for the pure water simulation. If the quantity of interest is \begin_inset Formula $Q$ \end_inset -, then its average reference value is +, + then its average reference value is \begin_inset Formula $Q_{reference}=\frac{\sum n_{i}Q_{i}}{\sum n_{i}}$ \end_inset -, where +, + where \begin_inset Formula $Q_{i}$ \end_inset @@ -30848,31 +33549,35 @@ s of interest. \begin_inset Formula $n_{i}$ \end_inset - are, respectively, GIST's reported values of the quantity and the population - in voxel + are, + respectively, + GIST's reported values of the quantity and the population in voxel \begin_inset Formula $i$ \end_inset . - The densities, + The densities, + \begin_inset Formula $\rho_{i}$ \end_inset -, are referenced to the corresponding bulk densities, +, + are referenced to the corresponding bulk densities, + \begin_inset Formula $\rho^{o}$ \end_inset -, as +, + as \begin_inset Formula $g_{i}=\rho_{i}/\rho^{o}$ \end_inset -, while the energy and entropy terms are referenced by subtracting their - bulk values. +, + while the energy and entropy terms are referenced by subtracting their bulk values. \end_layout \begin_layout Standard -Note that the Eww reference needs to be subtracted from the normalized water-wat -er energy +Note that the Eww reference needs to be subtracted from the normalized water-water energy \series bold Eww-norm \series default @@ -30889,7 +33594,8 @@ Eww-norm \begin_inset Formula $\rho=g_{O}\rho^{o}=\frac{N_{w}}{N_{f}V_{vox}}$ \end_inset -, where +, + where \begin_inset Formula $N_{w}$ \end_inset @@ -30897,11 +33603,13 @@ Eww-norm \series bold population \series default -), +), + \begin_inset Formula $N_{f}$ \end_inset - is the number of frames, and + is the number of frames, + and \begin_inset Formula $V_{vox}$ \end_inset @@ -30919,28 +33627,31 @@ Interpreting GIST results \end_layout \begin_layout Standard -GIST provides access to the first order entropies and the first- and second-orde -r energies of inhomogeneous fluid solvation theory. - Non-zero higher-order entropies exist but are not yet computationally accessibl -e. - However, for a pairwise additive force-field, such as those listed in the - Table above, the energy is fully described at the second order provided - by GIST. +GIST provides access to the first order entropies and the first- and second-order energies of inhomogeneous fluid solvation theory. + Non-zero higher-order entropies exist but are not yet computationally accessible. + However, + for a pairwise additive force-field, + such as those listed in the Table above, + the energy is fully described at the second order provided by GIST. \end_layout \begin_layout Standard -GIST is a research tool, and its applications (to, for example, protein-ligand - binding and protein function) are still being explored. +GIST is a research tool, + and its applications (to, + for example, + protein-ligand binding and protein function) are still being explored. The following general comments may be helpful to users studying GIST results. \end_layout \begin_layout Standard 1. - The water in voxels near a solute (e.g., a protein) almost always has unfavorable - water-water interaction energies, relative to bulk, simply because the - solute displaces water, resulting in fewer proximal water-water interactions. + The water in voxels near a solute (e.g., + a protein) almost always has unfavorable water-water interaction energies, + relative to bulk, + simply because the solute displaces water, + resulting in fewer proximal water-water interactions. \end_layout @@ -30955,10 +33666,11 @@ literal "true" \end_inset may be balanced by favorable water-solute interactions. - If they are not, as may occur especially for voxels in small, hydrophobic - pockets, then the net energy of the water in the voxel may be unfavorable - relative to bulk, in which case a ligand which displaces water from the - voxel into bulk may get a boost in affinity. + If they are not, + as may occur especially for voxels in small, + hydrophobic pockets, + then the net energy of the water in the voxel may be unfavorable relative to bulk, + in which case a ligand which displaces water from the voxel into bulk may get a boost in affinity. \end_layout @@ -30966,51 +33678,49 @@ literal "true" 3. Because the first order orientational distribution of bulk water is uniform, and a nonuniform distribution always has lower entropy than a uniform one, - the solute can only lower the orientational entropy of water, relative - to bulk. - Thus, this term always opposes solvation, and displacing oriented water - into the bulk is always favorable from the standpoint of orientational - entropy. + the solute can only lower the orientational entropy of water, + relative to bulk. + Thus, + this term always opposes solvation, + and displacing oriented water into the bulk is always favorable from the standpoint of orientational entropy. \end_layout \begin_layout Standard 4. - Localized water, which corresponds to voxels with high water density, has - a low first order translational entropy, and the translational entropy - around a solute is lower than that in bulk, as a nonuniform translational - distribution takes the place of the uniform translational distribution - of bulk water. + Localized water, + which corresponds to voxels with high water density, + has a low first order translational entropy, + and the translational entropy around a solute is lower than that in bulk, + as a nonuniform translational distribution takes the place of the uniform translational distribution of bulk water. \end_layout \begin_layout Standard 5. - The displacement of highly oriented (low orientational entropy) and localized - (low translational entropy) water into bulk leads to a favorable increase - in these entropy terms. + The displacement of highly oriented (low orientational entropy) and localized (low translational entropy) water into bulk leads to a favorable increase in these entropy terms. \end_layout \begin_layout Standard 6. - However, highly oriented and localized water is often the consequence of - strongly favorable polar interactions, such as hydrogen-bonding, between - water and the solute. - As a consequence, the net favorability of displacing such water is frequently - a balance between favorable entropic consequences and unfavorable energetic - consequences. + However, + highly oriented and localized water is often the consequence of strongly favorable polar interactions, + such as hydrogen-bonding, + between water and the solute. + As a consequence, + the net favorability of displacing such water is frequently a balance between favorable entropic consequences and unfavorable energetic consequences. \end_layout \begin_layout Standard 7. - The water-water energy associated with a given voxel accounts for the interacti -ons of the waters in this voxel with all other waters in the system, including - waters in other voxels. - This quantity is multiplied by ½, so that, in a pure-water system where - the GIST grid covers the entire simulation box, the sum over all voxels - equals the correct mean water-water interaction energy. + The water-water energy associated with a given voxel accounts for the interactions of the waters in this voxel with all other waters in the system, + including waters in other voxels. + This quantity is multiplied by ½, + so that, + in a pure-water system where the GIST grid covers the entire simulation box, + the sum over all voxels equals the correct mean water-water interaction energy. Note that Reference \begin_inset CommandInset citation LatexCommand citep @@ -31025,9 +33735,10 @@ literal "true" \begin_layout Standard 8. - For a typical GIST application, in which the grid occupies only part of - the simulation box, the energy bookkeeping can become complicated, as discussed - in Section II.B.3 (page 044101-6) of Reference + For a typical GIST application, + in which the grid occupies only part of the simulation box, + the energy bookkeeping can become complicated, + as discussed in Section II.B.3 (page 044101-6) of Reference \begin_inset CommandInset citation LatexCommand citep key "Nguyen-gist" @@ -31036,18 +33747,19 @@ literal "true" \end_inset . - That section also explains how one can compute the water-water energy associate -d with a region + That section also explains how one can compute the water-water energy associated with a region \begin_inset Formula $R$ \end_inset - defined by a set of voxels, + defined by a set of voxels, + \begin_inset Formula $E_{WW}^{R}$ \end_inset . - The regional water-water energy, on a normalized (per water) basis, is - given by + The regional water-water energy, + on a normalized (per water) basis, + is given by \begin_inset Formula $E_{WW}^{R}=2(\sum_{i\in R}E_{i,WW}-\sum_{i\in R}\sum_{j\in R,j>i}E_{i,j,WW})$ \end_inset @@ -31063,7 +33775,8 @@ d with a region \begin_inset Formula $R$ \end_inset -, +, + \begin_inset Formula $E_{i,WW}$ \end_inset @@ -31071,7 +33784,8 @@ d with a region \begin_inset Formula $i$ \end_inset -, and +, + and \begin_inset Formula $E_{i,j,WW}$ \end_inset @@ -31083,27 +33797,28 @@ d with a region \begin_inset Formula $j$ \end_inset -, taken from the file Eww_ij.dat. - The extra factor of 2 in the present formula, relative to that in the paper, - results from application of an extra factor of ½ to the reported water-water - interaction energies here. +, + taken from the file Eww_ij.dat. + The extra factor of 2 in the present formula, + relative to that in the paper, + results from application of an extra factor of ½ to the reported water-water interaction energies here. \end_layout \begin_layout Standard 9. - If the GIST grid contains the entire solute and the calculation is sufficently - converged, the energy and first-order entropy of hydration can be calculated - by numerical integration. - E.g., the energy of hydration is + If the GIST grid contains the entire solute and the calculation is sufficently converged, + the energy and first-order entropy of hydration can be calculated by numerical integration. + E.g., + the energy of hydration is \begin_inset Formula $\Delta E_{hyd}=\sum^{voxels}(E_{sw}^{dens}+E_{ww}^{dens})\times V_{vox}$ \end_inset . - For this, Eww has to be referenced carefully, since numerical inaccuracies - can add up quickly. - It can be advisable to omit all voxels above a certain distance to the - solute to obtain more stable results. + For this, + Eww has to be referenced carefully, + since numerical inaccuracies can add up quickly. + It can be advisable to omit all voxels above a certain distance to the solute to obtain more stable results. \end_layout @@ -31189,7 +33904,8 @@ grid [out <filename>] \begin_inset Quotes erd \end_inset - extension for XPLOR format, + extension for XPLOR format, + \begin_inset Quotes eld \end_inset @@ -31234,8 +33950,7 @@ name/tag> \begin_inset space ~ \end_inset -<nz> Set up grid using box information from a previously loaded reference - structure. +<nz> Set up grid using box information from a previously loaded reference structure. Currently the only way to set up non-orthogonal grids. \end_layout @@ -31276,7 +33991,10 @@ name/tag> \begin_inset space ~ \end_inset -<cz>] Location of grid center, default is origin (0.0, 0.0, 0.0). +<cz>] Location of grid center, + default is origin (0.0, + 0.0, + 0.0). \end_layout \begin_layout Description @@ -31296,16 +34014,14 @@ name/tag> \begin_inset space ~ \end_inset -<mask>] Perform a best-fit rotation of the grid using the coordinates selected - by <mask>. +<mask>] Perform a best-fit rotation of the grid using the coordinates selected by <mask>. \end_layout \begin_deeper \begin_layout Description -[noxalign] If specified, grid will not be re-oriented to align with Cartesian - axes once binning is finished. - Will affect file formats that do not store full unit cell vectors (like - Xplor). +[noxalign] If specified, + grid will not be re-oriented to align with Cartesian axes once binning is finished. + Will affect file formats that do not store full unit cell vectors (like Xplor). \end_layout \end_deeper @@ -31364,8 +34080,8 @@ Other options: \begin_inset space ~ \end_inset -<density>]] Normalize grid bins by density: GridBin = GridBin / (Nframes - * BinVolume * density). +<density>]] Normalize grid bins by density: + GridBin = GridBin / (Nframes * BinVolume * density). Default particle density (molecules/Ang^3) for water based on 1.0 g/mL. \end_layout @@ -31382,13 +34098,11 @@ Other options: \begin_inset space ~ \end_inset -<fraction>]] Write a pseudo-PDB of grid points that have density greater - than <fraction> (default 0.80) of the grid max value. +<fraction>]] Write a pseudo-PDB of grid points that have density greater than <fraction> (default 0.80) of the grid max value. \end_layout \begin_layout Description -[{byres|bymol}] Grid the centers of mass of residues or molecules selected - by <mask>. +[{byres|bymol}] Grid the centers of mass of residues or molecules selected by <mask>. \end_layout \begin_layout Standard @@ -31401,8 +34115,8 @@ Less common options: \end_inset <smooth>] Used to smooth density. - The smoothing takes the form of GridBin = 0 if GridBin < smooth, otherwise - GridBin = GridBin - (GridBin * exp[-(GridBin - smooth)^2 / (0.2 * smooth^2)]). + The smoothing takes the form of GridBin = 0 if GridBin < smooth, + otherwise GridBin = GridBin - (GridBin * exp[-(GridBin - smooth)^2 / (0.2 * smooth^2)]). \end_layout \begin_layout Description @@ -31415,8 +34129,8 @@ Less common options: \begin_inset space ~ \end_inset -<madura>] Grid values lower than <madura> become flipped in sign, exposes - low density. +<madura>] Grid values lower than <madura> become flipped in sign, + exposes low density. \end_layout \begin_layout Standard @@ -31471,8 +34185,8 @@ box \series bold center <mask> \series default -); if either of these options are used the grid must be centered at the - origin. +); + if either of these options are used the grid must be centered at the origin. Note that the \series bold \shape italic @@ -31483,6 +34197,7 @@ bounds \begin_inset CommandInset ref LatexCommand vpageref reference "subsec:cpptraj-bounds" +nolink "false" \end_inset @@ -31491,8 +34206,8 @@ reference "subsec:cpptraj-bounds" \begin_layout Standard Note that when calculating grid densities for things like solvent/ions, - the solute of interest (about which the atomic densities are binned) should - be rms fit, centered and imaged prior to the + the solute of interest (about which the atomic densities are binned) should be rms fit, + centered and imaged prior to the \family sans \series bold \shape italic @@ -31507,7 +34222,8 @@ grid negative \family default \series default - is also specified, then these density will be stored as negative numbers. + is also specified, + then these density will be stored as negative numbers. Output can be in the XPLOR or OpenDX data formats. \end_layout @@ -31516,7 +34232,8 @@ Examples \end_layout \begin_layout Standard -Example 1: Grid water density around a solute. +Example 1: + Grid water density around a solute. The solute is imaged to the origin and rms fit to the first frame. The grid will be centered on the origin as well. \end_layout @@ -31546,7 +34263,8 @@ grid out.dx 20 0.5 20 0.5 20 0.5 :WAT@O \end_layout \begin_layout Standard -Example 2: Grid water density around a solute. +Example 2: + Grid water density around a solute. The grid is centered on the solute. \end_layout @@ -31563,7 +34281,8 @@ grid out.dx 20 0.5 20 0.5 20 0.5 :WAT@O maskcenter :1-13 \end_layout \begin_layout Standard -Example 3: Grid water density around a solute. +Example 3: + Grid water density around a solute. The grid is centered on the solute and rms-fit. The density obtained should be equivalent to the first example. \end_layout @@ -31581,7 +34300,8 @@ grid out.dx 20 0.5 20 0.5 20 0.5 :WAT@O rmsfit :1-13 \end_layout \begin_layout Standard -Example 4: Generate grid from bounds command. +Example 4: + Generate grid from bounds command. \end_layout \begin_layout LyX-Code @@ -31625,7 +34345,8 @@ crdaction MyCoords grid bounds.xplor data MyGrid :WAT@O \end_layout \begin_layout Standard -Example 5: Create non-orthogonal grid based on the box. +Example 5: + Create non-orthogonal grid based on the box. \end_layout \begin_layout LyX-Code @@ -31658,6 +34379,8 @@ name "subsec:cpptraj-hbond" \begin_layout LyX-Code hbond \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -31715,13 +34438,10 @@ hbond \begin_inset space ~ \end_inset -<filename>] Write # of solute-solute hydrogen bonds (aspect [UU]) vs time - to this file. - If searching for solute-solvent hydrogen bonds, write # of solute-solvent - hydrogen bonds (aspect [UV]) and # of bridging solvent molecules (aspect - [Bridge]), as well as the residue # of the bridging solvent and the solute - residues being bridged with format '<solvent resnum>(<solute res1>+<solute - res2>+...+),...' (aspect [ID]). +<filename>] Write # of solute-solute hydrogen bonds (aspect [UU]) vs time to this file. + If searching for solute-solvent hydrogen bonds, + write # of solute-solvent hydrogen bonds (aspect [UV]) and # of bridging solvent molecules (aspect [Bridge]), + as well as the residue # of the bridging solvent and the solute residues being bridged with format '<solvent resnum>(<solute res1>+<solute res2>+...+),...' (aspect [ID]). \end_layout \begin_layout Description @@ -31752,8 +34472,7 @@ hbond \end_inset <dmask>] Use atoms in <dmask> as solute donor heavy atoms. - If 'donorhmask' not specified only atoms bonded to hydrogen will be considered - donors. + If 'donorhmask' not specified only atoms bonded to hydrogen will be considered donors. \end_layout \begin_layout Description @@ -31783,7 +34502,8 @@ hbond \end_layout \begin_layout Description -[printatomnum] Add atom numbers to the output, in addtion to residue name, +[printatomnum] Add atom numbers to the output, + in addtion to residue name, residue number and atom name. \end_layout @@ -31819,8 +34539,8 @@ hbond \end_inset <filename>] Write solute-solvent hydrogen bond averages to <filename>. - If not specified and 'avgout' is, solute-solvent hydrogen bonds averages - will be written to that file. + If not specified and 'avgout' is, + solute-solvent hydrogen bonds averages will be written to that file. \end_layout \begin_layout Description @@ -31829,7 +34549,8 @@ hbond \end_inset <filename>] Write information on detected solvent bridges to <filename>. - If not specified, will be written to same place as 'solvout'. + If not specified, + will be written to same place as 'solvout'. \end_layout \begin_layout Description @@ -31837,10 +34558,9 @@ hbond \end_layout \begin_layout Description -[series] Save hydrogen bond formed (1.0) or not formed (0.0) per frame for - any detected hydrogen bond. - Solute-solute hydrogen bonds are saved with aspect [solutehb], solute-solvent - hydrogen bonds are saved with aspect [solventhb]. +[series] Save hydrogen bond formed (1.0) or not formed (0.0) per frame for any detected hydrogen bond. + Solute-solute hydrogen bonds are saved with aspect [solutehb], + solute-solvent hydrogen bonds are saved with aspect [solventhb]. \begin_inset Separator latexpar \end_inset @@ -31866,11 +34586,9 @@ hbond \end_deeper \begin_layout Description -[bseries] Save bridge formed (1.0) or not formed (0.0) per frame for any detected - bridge. - Bridges are saved with aspect [bridge_<indexlist>], where <indexlist> is - an underscore ('_') delimited list of bridged atom/residue numbers (depending - on +[bseries] Save bridge formed (1.0) or not formed (0.0) per frame for any detected bridge. + Bridges are saved with aspect [bridge_<indexlist>], + where <indexlist> is an underscore ('_') delimited list of bridged atom/residue numbers (depending on \series bold bridgebyatom \series default @@ -31888,8 +34606,8 @@ bridgebyatom \end_deeper \begin_layout Description -[uuresmatrix] If specified, create a matrix with aspect [UUresmat] containing - # of hydrogen bonds between each possible solute residue pair. +[uuresmatrix] If specified, + create a matrix with aspect [UUresmat] containing # of hydrogen bonds between each possible solute residue pair. \end_layout \begin_deeper @@ -31898,7 +34616,8 @@ bridgebyatom \begin_inset space ~ \end_inset -{none|frames}] Control how matrix is normalized: none=no normalization, +{none|frames}] Control how matrix is normalized: + none=no normalization, frames=normalize by total # frames. \end_layout @@ -31907,7 +34626,8 @@ bridgebyatom \begin_inset space ~ \end_inset -<file>] If specified, write matrix data to specified file. +<file>] If specified, + write matrix data to specified file. \end_layout \end_deeper @@ -31916,21 +34636,27 @@ bridgebyatom \begin_inset space ~ \end_inset -<comma-separated-list>] If specified, aplit the average hydrogen bond ( +<comma-separated-list>] If specified, + aplit the average hydrogen bond ( \series bold avgout \series default -, +, + \series bold solvout \series default -, +, + \series bold bridgeout \series default ) analysis into sections delimited by the frame numbers. - For example, 'splitframe 250,500,1000' will divide analysis into frames - 1-249, 250-499, 500-999, and 1000 to end. + For example, + 'splitframe 250,500,1000' will divide analysis into frames 1-249, + 250-499, + 500-999, + and 1000 to end. \end_layout \begin_layout Standard @@ -31974,8 +34700,7 @@ solventdonor \series bold solventacceptor \series default -) String identifying bridging solvent residues and the solute residues they - bridge. +) String identifying bridging solvent residues and the solute residues they bridge. \end_layout \begin_layout Description @@ -31983,8 +34708,9 @@ solventacceptor \series bold series \series default - only) Time series for solute-solute hydrogen bonds; 1 for present, 0 for - not present. + only) Time series for solute-solute hydrogen bonds; + 1 for present, + 0 for not present. \end_layout \begin_layout Description @@ -31992,8 +34718,9 @@ series \series bold series \series default - only) Time series for solute-solvent hydrogen bonds; 1 for present, 0 for - not present. + only) Time series for solute-solvent hydrogen bonds; + 1 for present, + 0 for not present. \end_layout \begin_layout Description @@ -32001,9 +34728,10 @@ series \series bold bseries \series default - only) Time series for bridge; 1 for present, 0 for not present. - The <indexlist> is an underscore ('_') delimited list of bridged atom/residue - numbers (depending on + only) Time series for bridge; + 1 for present, + 0 for not present. + The <indexlist> is an underscore ('_') delimited list of bridged atom/residue numbers (depending on \series bold bridgebyatom \series default @@ -32026,8 +34754,7 @@ Note that \series bold series \series default - data sets are not generated until hydrogen bonds are actually determined - (i.e. + data sets are not generated until hydrogen bonds are actually determined (i.e. \series bold run @@ -32036,15 +34763,13 @@ run \end_layout \begin_layout Standard -Determine hydrogen bonds in each coordinate frame using simple geometric - criteria. - A hydrogen bond is defined as being between an acceptor heavy atom A, a - donor hydrogen atom H, and a donor heavy atom D. - If the A to D distance is less than or equal to the distance cutoff and - the A-H-D angle is greater than or equal to the angle cutoff a hydrogen - bond is considered formed. - Imaging of distances/angles is not performed by default, but can be turned - on using the +Determine hydrogen bonds in each coordinate frame using simple geometric criteria. + A hydrogen bond is defined as being between an acceptor heavy atom A, + a donor hydrogen atom H, + and a donor heavy atom D. + If the A to D distance is less than or equal to the distance cutoff and the A-H-D angle is greater than or equal to the angle cutoff a hydrogen bond is considered formed. + Imaging of distances/angles is not performed by default, + but can be turned on using the \series bold image \series default @@ -32060,8 +34785,7 @@ If just \series bold <mask> \series default - is specified donors and acceptors will be automatically determined from - + is specified donors and acceptors will be automatically determined from \series bold <mask> \series default @@ -32078,7 +34802,8 @@ donormask <dmask> \series default (only atoms bonded to hydrogen will be considered valid). - Optionally, + Optionally, + \series bold donorhmask \series default @@ -32128,7 +34853,8 @@ donormask \series bold <dmask> \series default - will be used; no searching will occur in + will be used; + no searching will occur in \series bold <mask> \series default @@ -32136,8 +34862,7 @@ donormask \end_layout \begin_layout Standard -Automatic determination of hydrogen bond donors/acceptors uses the simplistic - criterion that +Automatic determination of hydrogen bond donors/acceptors uses the simplistic criterion that \begin_inset Quotes eld \end_inset @@ -32145,8 +34870,14 @@ hydrogen bonds are FON \begin_inset Quotes erd \end_inset -, i.e., hydrogens bonded to F, O, and N atoms are considered donors, and F, - O, and N atoms are considered acceptors. +, + i.e., + hydrogens bonded to F, + O, + and N atoms are considered donors, + and F, + O, + and N atoms are considered acceptors. Intra-molecular hydrogen bonds can be ignored using the \series bold nointramol @@ -32155,13 +34886,13 @@ nointramol \end_layout \begin_layout Standard -The number of hydrogen bonds present at each frame will be determined and - written to the file specified by +The number of hydrogen bonds present at each frame will be determined and written to the file specified by \series bold out \series default . - If desired, the bridge [ID] data can be used in conjunction with the + If desired, + the bridge [ID] data can be used in conjunction with the \series bold \emph on keep @@ -32174,6 +34905,7 @@ reference "subsec:cpptraj-keep" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -32190,19 +34922,20 @@ series lifetime \series default \shape default -, see +, + see \begin_inset CommandInset ref LatexCommand vpageref reference "subsec:cpptraj-lifetime" +nolink "false" \end_inset -); solute-solute hydrogen bonds will be saved to '<dataset name>[solutehb]' - and solute-solvent hydrogen bonds will be saved to '<dataset name>[solventhb]'. - The data set legends are set with the residues and atoms involved in the - hydrogen bonds. - In the case of solute to non-specific solvent hydrogen bonds, a V is used - in place of solvent. +); + solute-solute hydrogen bonds will be saved to '<dataset name>[solutehb]' and solute-solvent hydrogen bonds will be saved to '<dataset name>[solventhb]'. + The data set legends are set with the residues and atoms involved in the hydrogen bonds. + In the case of solute to non-specific solvent hydrogen bonds, + a V is used in place of solvent. \end_layout \begin_layout Standard @@ -32210,9 +34943,7 @@ If \series bold avgout \series default - is specified the average of each solute-solute hydrogen bond (sorted by - population) formed over the course of the trajectory is printed with the - format: + is specified the average of each solute-solute hydrogen bond (sorted by population) formed over the course of the trajectory is printed with the format: \end_layout \begin_layout LyX-Code @@ -32224,11 +34955,13 @@ where \shape italic Acceptor \shape default -, +, + \shape italic DonorH \shape default -, and +, + and \shape italic Donor \shape default @@ -32237,15 +34970,18 @@ Donor \shape italic Frames \shape default - is the number of frames the bond is present, + is the number of frames the bond is present, + \shape italic Frac \shape default - is the fraction of frames the bond is present, + is the fraction of frames the bond is present, + \shape italic AvgDist \shape default - is the average distance of the bond when present, and + is the average distance of the bond when present, + and \shape italic AvgAng \shape default @@ -32258,8 +34994,7 @@ printatomnum \end_layout \begin_layout Standard -Solute to non-specific solvent hydrogen bonds can be tracked by using the - +Solute to non-specific solvent hydrogen bonds can be tracked by using the \series bold solventdonor \series default @@ -32277,14 +35012,12 @@ bridging \end_inset solvent molecules (i.e. - solvent that is hydrogen bonded to two or more different solute residues - at the same time) will also be written to the file specified by + solvent that is hydrogen bonded to two or more different solute residues at the same time) will also be written to the file specified by \series bold out \series default . - These keywords can also be used to track non-specific interactions with - ions. + These keywords can also be used to track non-specific interactions with ions. If \series bold avgout @@ -32293,8 +35026,7 @@ avgout \series bold solvavg \series default - is specified the average of each solute solvent hydrogen bond will be printed - with the format: + is specified the average of each solute solvent hydrogen bond will be printed with the format: \end_layout \begin_layout LyX-Code @@ -32306,11 +35038,13 @@ where \shape italic Acceptor \shape default -, +, + \shape italic DonorH \shape default -, and +, + and \shape italic Donor \shape default @@ -32338,18 +35072,18 @@ SolventDnr \begin_inset Quotes erd \end_inset - representing solvent, + representing solvent, + \shape italic Count \shape default - is the total number of interactions between solute and solvent (note this - can be greater than the total number of frames since for any given frame - more than one solvent molecule can hydrogen bond to the same place on solute - and vice versa), + is the total number of interactions between solute and solvent (note this can be greater than the total number of frames since for any given frame more than one solvent molecule can hydrogen bond to the same place on solute and vice versa), + \shape italic AvgDist \shape default - is the average distance of the bond when present, and + is the average distance of the bond when present, + and \shape italic AvgAng \shape default @@ -32362,18 +35096,17 @@ avgout \series bold bridgeout \series default - is specified information on residues that were bridged by a solvent molecule - over the course of the trajectory will be written to <bfilename> with format: + is specified information on residues that were bridged by a solvent molecule over the course of the trajectory will be written to <bfilename> with format: \end_layout \begin_layout LyX-Code Bridge Res <N0:RES0> <N1:RES1> ... - , <X> frames. + , + <X> frames. \end_layout \begin_layout Standard -where '<N0:RES0> ...' is a list of residues that were bridged (residue # followed - by residue name) and <X> is the number of frames the residues were bridged. +where '<N0:RES0> ...' is a list of residues that were bridged (residue # followed by residue name) and <X> is the number of frames the residues were bridged. \end_layout \begin_layout Subsubsection* @@ -32381,8 +35114,8 @@ hbond Examples \end_layout \begin_layout Standard -To search for all hydrogen bonds within residues 1-22, writing the number - of hydrogen bonds per frame to +To search for all hydrogen bonds within residues 1-22, + writing the number of hydrogen bonds per frame to \begin_inset Quotes eld \end_inset @@ -32406,8 +35139,7 @@ hbond :1-22 out nhb.dat avgout avghb.dat \end_layout \begin_layout Standard -To search for all hydrogen bonds formed between donors in residue 1 and - acceptors in residue 2: +To search for all hydrogen bonds formed between donors in residue 1 and acceptors in residue 2: \end_layout \begin_layout LyX-Code @@ -32415,8 +35147,8 @@ hbond donormask :1 acceptormask :2 out nhb.dat avgout avghb.dat \end_layout \begin_layout Standard -To search for all intermolecular hydrogen bonds only and solute-solvent - hydrogen bonds, saving time series data to HB: +To search for all intermolecular hydrogen bonds only and solute-solvent hydrogen bonds, + saving time series data to HB: \end_layout \begin_layout LyX-Code @@ -32442,8 +35174,7 @@ hbond HB out nhb.dat avgout solute_avg.dat \end_layout \begin_layout Standard -To search for non-specific hydrogen bonds between solute and ions named - Na+: +To search for non-specific hydrogen bonds between solute and ions named Na+: \end_layout \begin_layout LyX-Code @@ -32463,6 +35194,8 @@ image \begin_layout LyX-Code image \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -32484,13 +35217,16 @@ image \begin_deeper \begin_layout Description -[origin] Image to coordinate origin (0.0, 0.0, 0.0); default is to image to - box center. +[origin] Image to coordinate origin (0.0, + 0.0, + 0.0); + default is to image to box center. \end_layout \begin_layout Description -[center] For bymol/byres, image by center of mass; default is to image by - first atom position. +[center] For bymol/byres, + image by center of mass; + default is to image by first atom position. \end_layout \begin_layout Description @@ -32508,8 +35244,8 @@ image \end_inset <commask>]] Image to truncated octahedron shape. - If 'com <commask>' is given, image with respect to the center of mass of - atoms in <commask>. + If 'com <commask>' is given, + image with respect to the center of mass of atoms in <commask>. \end_layout \begin_layout Description @@ -32554,7 +35290,8 @@ image \end_deeper \begin_layout Standard -Note this command is intended for advanced use; for most cases the +Note this command is intended for advanced use; + for most cases the \series bold \shape italic autoimage @@ -32564,8 +35301,8 @@ autoimage \end_layout \begin_layout Standard -For periodic systems only, image molecules/residues/atoms that are outside - of the box back into the box. +For periodic systems only, + image molecules/residues/atoms that are outside of the box back into the box. Currently both orthorhombic and non-orthorhombic boxes are supported. A typical use of \series bold @@ -32580,9 +35317,9 @@ center \series default \shape default . - For example, the following commands move all atoms so that the center of - residue 1 is at the center of the box, then image so that all molecules - that are outside the box after centering are wrapped back inside: + For example, + the following commands move all atoms so that the center of residue 1 is at the center of the box, + then image so that all molecules that are outside the box after centering are wrapped back inside: \end_layout \begin_layout LyX-Code @@ -32595,11 +35332,11 @@ image \begin_layout Standard The xoffset etc. - keywords can be used to shift the entire unit cell in a certain direction - by the given factor, which can be useful for visualizing trajectories with - periodic boundary conditions. - For example, to generate a trajectory that is offset by 1.0 box length in - the X direction, one could use: + keywords can be used to shift the entire unit cell in a certain direction by the given factor, + which can be useful for visualizing trajectories with periodic boundary conditions. + For example, + to generate a trajectory that is offset by 1.0 box length in the X direction, + one could use: \end_layout \begin_layout LyX-Code @@ -32617,6 +35354,8 @@ jcoupling \begin_layout LyX-Code jcoupling \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -32659,8 +35398,9 @@ jcoupling \end_inset file>] File containing Karplus parameters. - If not specified will check CPPTRAJHOME, AMBERHOME, and KARPLUS environment - variables (see below). + If not specified will check CPPTRAJHOME, + AMBERHOME, + and KARPLUS environment variables (see below). \end_layout \begin_layout Description @@ -32696,14 +35436,14 @@ Calculate J-coupling values for all dihedrals found within <mask> \series default (all atoms if no mask given). - In order to use this function, Karplus parameters for all dihedrals which - will be calculated must be loaded. + In order to use this function, + Karplus parameters for all dihedrals which will be calculated must be loaded. By default \shape italic cpptraj \shape default - will use the data found in either $CPPTRAJHOME/dat/Karplus.txt or $AMBERHOME/dat -/Karplus.txt; if this is not found + will use the data found in either $CPPTRAJHOME/dat/Karplus.txt or $AMBERHOME/dat/Karplus.txt; + if this is not found \shape italic cpptraj \shape default @@ -32712,8 +35452,7 @@ cpptraj \end_layout \begin_layout Standard -In the Karplus parameter file each parameter set consists of two lines for - each dihedral with the format: +In the Karplus parameter file each parameter set consists of two lines for each dihedral with the format: \end_layout \begin_layout LyX-Code @@ -32726,8 +35465,8 @@ In the Karplus parameter file each parameter set consists of two lines for \begin_layout Standard The first line defines the parameter set for a dihedral. - <Type> is optional; if not given the form for calculating the J-coupling - will be as described by Chou et al. + <Type> is optional; + if not given the form for calculating the J-coupling will be as described by Chou et al. \begin_inset CommandInset citation LatexCommand citep key "Chou03" @@ -32735,7 +35474,8 @@ literal "true" \end_inset -; if 'C' the form will be as described by Perez et al. +; + if 'C' the form will be as described by Perez et al. \begin_inset CommandInset citation LatexCommand citep key "Perez01" @@ -32745,16 +35485,23 @@ literal "true" . The <NameX> parameters define the four atoms involved in the dihedral. - Each <NameX> parameter is 5 characters wide, starting with a plus '+', + Each <NameX> parameter is 5 characters wide, + starting with a plus '+', minus '-' or space ' ' character indicating the atom belongs to the next, - previous, or current residue. + previous, + or current residue. The remaining 4 characters are the atom name. - The parameters <A>, <B>, <C>, and <D> are floating point values 6 characters - wide describing the Karplus parameters. - For the 'C' form A, B, and C correspond to C0, C1, and C2; D is unused - and should not be specified. - The second line is a list of residue names (4 characters each) to which - the dihedral applies. + The parameters <A>, + <B>, + <C>, + and <D> are floating point values 6 characters wide describing the Karplus parameters. + For the 'C' form A, + B, + and C correspond to C0, + C1, + and C2; + D is unused and should not be specified. + The second line is a list of residue names (4 characters each) to which the dihedral applies. For example: \end_layout @@ -32768,7 +35515,9 @@ ILE VAL \begin_layout Standard Describes a dihedral between atoms HA-CA-CB-HB using the Perez et al. - form with constants C0=5.40, C1=-1.37, C2=3.61 applied to ILE and VAL residues. + form with constants C0=5.40, + C1=-1.37, + C2=3.61 applied to ILE and VAL residues. \end_layout \begin_layout Standard @@ -32785,7 +35534,8 @@ out <filename> \series bold <mask1> \series default - printed along with its calculated J-coupling value for each frame, e.g.: + printed along with its calculated J-coupling value for each frame, + e.g.: \end_layout \begin_layout LyX-Code @@ -32805,8 +35555,12 @@ out <filename> \end_layout \begin_layout Standard -First the frame number is printed, then for each dihedral: Residue number, - residue name, atom names 1-4 in the dihedral, the value of the dihedral, +First the frame number is printed, + then for each dihedral: + Residue number, + residue name, + atom names 1-4 in the dihedral, + the value of the dihedral, the J-coupling value. \end_layout @@ -32817,7 +35571,8 @@ In cpptraj \family default \shape default - format, only the J-coupling value is written. + format, + only the J-coupling value is written. \end_layout \begin_layout Subsection @@ -32878,6 +35633,7 @@ reference "subsec:cpptraj-hbond" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -32894,8 +35650,8 @@ nbridge \end_layout \begin_layout Description -nobridgewarn If specified, suppress warnings for when active # bridges does - not equal requested number. +nobridgewarn If specified, + suppress warnings for when active # bridges does not equal requested number. \end_layout \begin_layout Description @@ -32915,8 +35671,8 @@ bridgeresonly \begin_inset space ~ \end_inset -<range> If specified, only keep bridges that bridge residues in the <resrange> - list. +<range> If specified, + only keep bridges that bridge residues in the <resrange> list. \end_layout \end_deeper @@ -32945,8 +35701,7 @@ charge \begin_inset space ~ \end_inset -charge> Scale charges so total charge of remaining atoms matches the specified - <new charge>. +charge> Scale charges so total charge of remaining atoms matches the specified <new charge>. \end_layout \begin_layout Description @@ -32994,14 +35749,15 @@ hbond \emph default command to retain solute and only bridging residues (e.g. bridging waters). - For example, the following run generates bridging data with the + For example, + the following run generates bridging data with the \series bold \emph on 'hbond' \series default \emph default - command in a first pass, then uses the bridge ID data to retain only 1 - single bridging water between residues 10 and 11: + command in a first pass, + then uses the bridge ID data to retain only 1 single bridging water between residues 10 and 11: \end_layout \begin_layout LyX-Code @@ -33013,7 +35769,8 @@ trajin tz2.ortho.nc \end_layout \begin_layout LyX-Code -# First pass, generate bridge time series +# First pass, + generate bridge time series \end_layout \begin_layout LyX-Code @@ -33025,7 +35782,8 @@ run \end_layout \begin_layout LyX-Code -# Second pass, retain only frames where the bridge is present +# Second pass, + retain only frames where the bridge is present \end_layout \begin_layout LyX-Code @@ -33049,8 +35807,9 @@ run \end_layout \begin_layout Standard -This run reads in bridge ID data from a previous hbond run and uses it to - keep only residues 10, 11, and a bridging water: +This run reads in bridge ID data from a previous hbond run and uses it to keep only residues 10, + 11, + and a bridging water: \end_layout \begin_layout LyX-Code @@ -33105,8 +35864,8 @@ lessplit [out <filename prefix>] [average <avg filename>] <trajout args> \begin_inset space ~ \end_inset -prefix>] Write split LES trajectories to <filename prefix>.X, where X is - an integer. +prefix>] Write split LES trajectories to <filename prefix>.X, + where X is an integer. \end_layout \begin_layout Description @@ -33151,6 +35910,8 @@ lie \begin_layout LyX-Code lie \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -33185,17 +35946,15 @@ DataSet Aspects: \end_deeper \begin_layout Standard -For each frame, calculate the non-bonded interactions between all atoms - in <Ligand mask> with all atoms in <Surroundings mask>. - Electrostatic and van der Waals interactions will be calculated for all - atom pairs. - A separate electrostatic and van der Waals cutoff can be applied, the default - is 12.0 Angstroms for both. +For each frame, + calculate the non-bonded interactions between all atoms in <Ligand mask> with all atoms in <Surroundings mask>. + Electrostatic and van der Waals interactions will be calculated for all atom pairs. + A separate electrostatic and van der Waals cutoff can be applied, + the default is 12.0 Angstroms for both. <dielc> is an optional dielectric constant. - Either the electrostatic or van der Waals calculations can be suppressed - via the keywords noelec and novdw, respectively. - Periodic boundary conditions (and the minimum image convention) can be - abandoned with the + Either the electrostatic or van der Waals calculations can be suppressed via the keywords noelec and novdw, + respectively. + Periodic boundary conditions (and the minimum image convention) can be abandoned with the \begin_inset Quotes eld \end_inset @@ -33204,19 +35963,18 @@ nopbc \end_inset keyword. - Note, however, that no prior imaging is performed if the frames contain - periodic boundaries. - This may be useful for instances when you are simulating a microscopic - droplets. + Note, + however, + that no prior imaging is performed if the frames contain periodic boundaries. + This may be useful for instances when you are simulating a microscopic droplets. \end_layout \begin_layout Standard -The electrostatic interactions are calculated according to a simple shifting - function shown below. - The data file will contain two data sets—one for electrostatic interactions - and one for van der Waals interactions. - Periodic topologies and trajectories are required (i.e., explicit solvent - is necessary). +The electrostatic interactions are calculated according to a simple shifting function shown below. + The data file will contain two data sets— +one for electrostatic interactions and one for van der Waals interactions. + Periodic topologies and trajectories are required (i.e., + explicit solvent is necessary). The minimum image convention is followed. \end_layout @@ -33254,11 +36012,12 @@ order out <filename> [x|y|z] [scd] [unsat <mask>] \begin_deeper \begin_layout Description -out Output file for order parameters: Sx, Sy, Sz (each succeeded by the - standard deviation), and two estimates for the deuterium-order parameter - |SCD| = 0.5Sz and |SCD| = -(2Sx + Sy)/3. - If scd is set then the order parameter directly computed from the C-H vectors - is output. +out Output file for order parameters: + Sx, + Sy, + Sz (each succeeded by the standard deviation), + and two estimates for the deuterium-order parameter |SCD| = 0.5Sz and |SCD| = -(2Sx + Sy)/3. + If scd is set then the order parameter directly computed from the C-H vectors is output. \end_layout \begin_layout Description @@ -33269,16 +36028,16 @@ x|y|z Reference axis. \begin_layout Description unsat Mask for unsaturated bonds. Sz is calculated for vector Cn-Cn+1. - This is only relevant if scd (below) is not set, i.e. + This is only relevant if scd (below) is not set, + i.e. order parameters are calculated from carbon position only. \end_layout \begin_layout Description -scd Calculate the deuterium-order parameter |SCD| directly from the C-H - vectors (masks must contain C-H-H triplets, see below). - Otherwise the order parameter is estimated from carbon positions only (masks - must contain only relevant carbons). +scd Calculate the deuterium-order parameter |SCD| directly from the C-H vectors (masks must contain C-H-H triplets, + see below). + Otherwise the order parameter is estimated from carbon positions only (masks must contain only relevant carbons). (false) \end_layout @@ -33315,11 +36074,13 @@ The order parameters \begin_inset Formula $S_{x}$ \end_inset -, +, + \begin_inset Formula $S_{y}$ \end_inset -, +, + \begin_inset Formula $S_{z}$ \end_inset @@ -33329,9 +36090,8 @@ The order parameters \series bold scd \series default - the masks must be made up of C-H-H triples, hence hydrogens to double bonds - must be enumerated twice while methyl groups require an additional mask - which will also create two entries in the output. + the masks must be made up of C-H-H triples, + hence hydrogens to double bonds must be enumerated twice while methyl groups require an additional mask which will also create two entries in the output. \end_layout \begin_layout Standard @@ -33346,7 +36106,8 @@ is the vector joining carbons \begin_inset Formula $C_{n+1}$ \end_inset -, +, + \begin_inset Formula $S_{x}$ \end_inset @@ -33367,7 +36128,8 @@ is the vector joining carbons \begin_inset Formula $Sc=0.5<3\cos(2\theta)>-1$ \end_inset -, where +, + where \begin_inset Formula $\theta$ \end_inset @@ -33381,15 +36143,18 @@ Example input (all atom names according to CHARMM27 force field for POPC). \end_layout \begin_layout Standard -sn1 chain: order parameters +sn1 chain: + order parameters \begin_inset Formula $S_{x}$ \end_inset -, +, + \begin_inset Formula $S_{y}$ \end_inset -, +, + \begin_inset Formula $S_{z}$ \end_inset @@ -33476,7 +36241,8 @@ out \end_layout \begin_layout Description -p2 If specified, report raw <P2> values. +p2 If specified, + report raw <P2> values. \end_layout \begin_layout Standard @@ -33490,28 +36256,28 @@ DataSets Generated: \begin_layout Description <name>[H2]:<idx> Hold lipid order parameters for each C-H2. - If no H2, the C-H1 value will be used. + If no H2, + the C-H1 value will be used. \end_layout \begin_layout Description <name>[H3]:<idx> Hold lipid order parameters for each C-H3. - If no H3, the C-H2/C-H1 value will be used. + If no H3, + the C-H2/C-H1 value will be used. \end_layout \begin_layout Description -<name>[SDHX]:<idx> Hold standard deviation of lipid order parameters for - each C-HX. +<name>[SDHX]:<idx> Hold standard deviation of lipid order parameters for each C-HX. \end_layout \end_deeper \begin_layout Standard -Calculate lipid order parameters SCD (|<P2>|) for lipid chains in mask - <mask>. - Lipid chains are identified by carboxyl groups, i.e. - O-(C=O)-C1-...-CN, where C1 is the first carbon in the acyl chain and - CN is the last. - Order parameters will be determined for each hydrogen bonded to each - carbon. +Calculate lipid order parameters SCD (|<P2>|) for lipid chains in mask <mask>. + Lipid chains are identified by carboxyl groups, + i.e. + O-(C=O)-C1-...-CN, + where C1 is the first carbon in the acyl chain and CN is the last. + Order parameters will be determined for each hydrogen bonded to each carbon. If 'p2' is specified the raw <P2> values will be reported. \end_layout @@ -33524,8 +36290,9 @@ makestructure <List of Args> \end_layout \begin_layout Standard -Apply dihedrals to specified residues using arguments found in <List of - Args>, where an argument is 1 or more of the following arg types: +Apply dihedrals to specified residues using arguments found in <List of Args>, + where an argument is 1 or more of the following arg types: + \end_layout \begin_layout Subsubsection* @@ -33537,10 +36304,9 @@ range> \end_layout \begin_layout Standard -Apply secondary structure type (via phi/psi backbone angles) to residues - in given range. - If the secondary structure type is a turn, the residue range must correspond - to a multiple of 2 residues. +Apply secondary structure type (via phi/psi backbone angles) to residues in given range. + If the secondary structure type is a turn, + the residue range must correspond to a multiple of 2 residues. \end_layout \begin_layout Standard @@ -33569,7 +36335,8 @@ Keyword \begin_layout Plain Layout \series bold -phi, psi (deg.) +phi, + psi (deg.) \end_layout \end_inset @@ -33600,7 +36367,8 @@ alpha \begin_inset Text \begin_layout Plain Layout --57.8, -47.0 +-57.8, + -47.0 \end_layout \end_inset @@ -33629,7 +36397,8 @@ left \begin_inset Text \begin_layout Plain Layout --57.8, 47.0 +-57.8, + 47.0 \end_layout \end_inset @@ -33658,7 +36427,8 @@ pp2 \begin_inset Text \begin_layout Plain Layout --75.0, 145.0 +-75.0, + 145.0 \end_layout \end_inset @@ -33687,7 +36457,8 @@ hairpin \begin_inset Text \begin_layout Plain Layout --100.0, 130.0 +-100.0, + 130.0 \end_layout \end_inset @@ -33716,7 +36487,8 @@ extended \begin_inset Text \begin_layout Plain Layout --150.0, 155.0 +-150.0, + 155.0 \end_layout \end_inset @@ -33745,7 +36517,9 @@ typeI \begin_inset Text \begin_layout Plain Layout --60.0, -30.0 | -90.0, 0.0 +-60.0, + -30.0 | -90.0, + 0.0 \end_layout \end_inset @@ -33774,7 +36548,9 @@ typeII \begin_inset Text \begin_layout Plain Layout --60.0, 120.0 | 80.0, 0.0 +-60.0, + 120.0 | 80.0, + 0.0 \end_layout \end_inset @@ -33803,7 +36579,9 @@ typeVIII \begin_inset Text \begin_layout Plain Layout --60.0, -30.0 | -120.0, 120.0 +-60.0, + -30.0 | -120.0, + 120.0 \end_layout \end_inset @@ -33832,7 +36610,9 @@ typeI' \begin_inset Text \begin_layout Plain Layout -60.0, 30.0 | 90.0, 0.0 +60.0, + 30.0 | 90.0, + 0.0 \end_layout \end_inset @@ -33861,7 +36641,9 @@ typeII \begin_inset Text \begin_layout Plain Layout -60.0, -120.0 | -80.0, 0.0 +60.0, + -120.0 | -80.0, + 0.0 \end_layout \end_inset @@ -33890,7 +36672,9 @@ typeVIa1 \begin_inset Text \begin_layout Plain Layout --60.0, 120.0 | -90.0, 0.0 +-60.0, + 120.0 | -90.0, + 0.0 \end_layout \end_inset @@ -33919,7 +36703,9 @@ typeVIa2 \begin_inset Text \begin_layout Plain Layout --120.0, 120.0 | -60.0, 0.0 +-120.0, + 120.0 | -60.0, + 0.0 \end_layout \end_inset @@ -33948,7 +36734,9 @@ typeVIb \begin_inset Text \begin_layout Plain Layout --135.0, 135.0 | -75.0, 160.0 +-135.0, + 135.0 | -75.0, + 160.0 \end_layout \end_inset @@ -33987,10 +36775,9 @@ range>[:<phi>:<psi>] \end_layout \begin_layout Standard -If <phi> and <psi> are given, define a custom secondary structure conformation - named <custom_ss> and apply to residues in range. - If <custom_ss> has been previously defined then apply it to residues in - range. +If <phi> and <psi> are given, + define a custom secondary structure conformation named <custom_ss> and apply to residues in range. + If <custom_ss> has been previously defined then apply it to residues in range. \end_layout \begin_layout Subsubsection* @@ -34010,11 +36797,12 @@ range>[:<phi1>:<psi1>:<phi2>:<psi2>] \end_layout \begin_layout Standard -If <phi1>, <psi1>, <phi2>, and <psi2> are given, defined a custom turn conformat -ion named <custom_turn> and apply to residues in range (range must correspond - to a multiple of 2 residues). - If <custom_turn> has been previously defined then apply it to residues - in range. +If <phi1>, + <psi1>, + <phi2>, + and <psi2> are given, + defined a custom turn conformation named <custom_turn> and apply to residues in range (range must correspond to a multiple of 2 residues). + If <custom_turn> has been previously defined then apply it to residues in range. \end_layout \begin_layout Subsubsection* @@ -34046,10 +36834,9 @@ type>:<angle>] \end_layout \begin_layout Standard -If <dih type> and <angle> are given, apply <angle> to selected dihedrals - of type in range. - If <custom dih> has been previously defined then apply it to residues in - range. +If <dih type> and <angle> are given, + apply <angle> to selected dihedrals of type in range. + If <custom dih> has been previously defined then apply it to residues in range. \end_layout \begin_layout Subsubsection* @@ -34069,7 +36856,10 @@ range>[:<at0>:<at1>:<at2>:<at3>:<angle>[:<offset>]] \end_layout \begin_layout Standard -Apply <angle> to dihedral defined by atoms <at1>, <at2>, <at3>, and <at4>, +Apply <angle> to dihedral defined by atoms <at1>, + <at2>, + <at3>, + and <at4>, or use previously defined <custom_dih>. \end_layout @@ -34215,17 +37005,18 @@ range>[:<dih types>]] [refvalsout <file>] [founddihout <file>] \end_layout \begin_layout Standard -Apply dihedrals from residues <ref_range> in previously loaded reference - structure <refname> to dihedrals in <range>. - If <ref range> is specified, use those residues from reference. +Apply dihedrals from residues <ref_range> in previously loaded reference structure <refname> to dihedrals in <range>. + If <ref range> is specified, + use those residues from reference. The dihedral types to be used (see \series bold <dih_type> \series default - above) can be specified in a comma-separated list; default is phi/psi. - Note that in order to specify <dih types>, <ref range> must be specified. - The 'refvalsout' and 'founddihout' keywords can be used to print dihedrals - found in the reference and target structures respectively to files. + above) can be specified in a comma-separated list; + default is phi/psi. + Note that in order to specify <dih types>, + <ref range> must be specified. + The 'refvalsout' and 'founddihout' keywords can be used to print dihedrals found in the reference and target structures respectively to files. \end_layout \begin_layout Subsubsection* @@ -34241,9 +37032,11 @@ makestructure pp2:1-13 \end_layout \begin_layout Standard -Make residues 1 and 12 'extended', residues 6 and 7 a type I' turn, and - two custom assignments, one (custom1) for residues 2-5, the other (custom2) - for residues 8-11: +Make residues 1 and 12 'extended', + residues 6 and 7 a type I' turn, + and two custom assignments, + one (custom1) for residues 2-5, + the other (custom2) for residues 8-11: \end_layout \begin_layout LyX-Code @@ -34269,7 +37062,8 @@ makestructure extended:1,12 \end_layout \begin_layout Standard -Assign residue 5 phi 90 degrees, residues 6 and 7 phi=-70 and psi=60 degrees: +Assign residue 5 phi 90 degrees, + residues 6 and 7 phi=-70 and psi=60 degrees: \end_layout \begin_layout LyX-Code @@ -34277,8 +37071,7 @@ makestructure customdih:5:phi:90 custom:6,7:-70:60 \end_layout \begin_layout Standard -Create a new dihedral named chi1 and assign it a value of 35 degrees in - residue 8: +Create a new dihedral named chi1 and assign it a value of 35 degrees in residue 8: \end_layout \begin_layout LyX-Code @@ -34286,8 +37079,9 @@ makestructure chi1:8:N:CA:CB:CG:35 \end_layout \begin_layout Standard -Assign 'extended' structure to residues 1 and 12, a custom turn to residues - 2-5 and 8-11, and a typeI' turn to residues 6-7: +Assign 'extended' structure to residues 1 and 12, + a custom turn to residues 2-5 and 8-11, + and a typeI' turn to residues 6-7: \end_layout \begin_layout LyX-Code @@ -34343,6 +37137,8 @@ mask \begin_layout LyX-Code mask \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -34380,8 +37176,12 @@ out \begin_inset space ~ \end_inset -<filename> Write the frame, atom number, atom name, residue number, residue - name, and molecule number for each selected atom to file. +<filename> Write the frame, + atom number, + atom name, + residue number, + residue name, + and molecule number for each selected atom to file. \end_layout \begin_layout Description @@ -34425,8 +37225,8 @@ trajargs \begin_inset space ~ \end_inset -args> When writing output PDB/Mol2, additional trajectory arguments to pass - to the output trajectory. +args> When writing output PDB/Mol2, + additional trajectory arguments to pass to the output trajectory. \end_layout \begin_layout Standard @@ -34468,14 +37268,13 @@ For each frame determine all atoms that correspond to <mask> \series default . - This is most useful when using distance-based masks, since the atoms in - the mask are updated for every frame read in. + This is most useful when using distance-based masks, + since the atoms in the mask are updated for every frame read in. If \series bold maskout \series default - is specified information on all atoms in <mask> will be written to <filename> - with format: + is specified information on all atoms in <mask> will be written to <filename> with format: \end_layout \begin_layout LyX-Code @@ -34487,23 +37286,28 @@ where \family typewriter #Frame \family default - is the frame number, + is the frame number, + \family typewriter AtomNum \family default - is the number of the selected atom, + is the number of the selected atom, + \family typewriter Atom \family default - is the name of the selected atom, + is the name of the selected atom, + \family typewriter ResNum \family default - is the residue number of the selected atom, + is the residue number of the selected atom, + \family typewriter Res \family default - is the residue name, and + is the residue name, + and \family typewriter MolNum \family default @@ -34519,8 +37323,7 @@ maskpdb \series bold maskmol2 \series default - are specified a PDB/Mol2 file corresponding to <mask> will be written out - every frame with name + are specified a PDB/Mol2 file corresponding to <mask> will be written out every frame with name \begin_inset Quotes eld \end_inset @@ -34536,8 +37339,8 @@ maskmol2 \end_layout \begin_layout Standard -For example, to write out all residues within 3.0 Angstroms of residue 195 - that are named WAT to +For example, + to write out all residues within 3.0 Angstroms of residue 195 that are named WAT to \begin_inset Quotes eld \end_inset @@ -34545,7 +37348,8 @@ Res195WAT.dat \begin_inset Quotes erd \end_inset -, as well as write out corresponding PDB files: +, + as well as write out corresponding PDB files: \end_layout \begin_layout LyX-Code @@ -34561,8 +37365,7 @@ mask \end_layout \begin_layout Standard -To write all out atoms outside of 5.0 Angstroms of residues named ARG to - PDB files with a chain ID of 'B': +To write all out atoms outside of 5.0 Angstroms of residues named ARG to PDB files with a chain ID of 'B': \end_layout \begin_layout LyX-Code @@ -34619,7 +37422,8 @@ matrix [out <filename>] [start <#>] [stop|end <#>] [offset <#>] <filename>] \series default - If specified, write matrix to <filename>. + If specified, + write matrix to <filename>. \end_layout \begin_layout Description @@ -34647,7 +37451,9 @@ matrix [out <filename>] [start <#>] [stop|end <#>] [offset <#>] <#>] \series default - Start, stop, and offset frames to use (as a subset of all frames read in). + Start, + stop, + and offset frames to use (as a subset of all frames read in). \end_layout \begin_layout Description @@ -34672,11 +37478,13 @@ byatom \family typewriter covar \family default -, +, + \family typewriter mwcovar \family default -, and +, + and \family typewriter ired \family default @@ -34688,8 +37496,7 @@ ired \series bold byres \series default - Write results by calculating an average for each residue (mass weighted - if + Write results by calculating an average for each residue (mass weighted if \series bold mass \series default @@ -34701,8 +37508,8 @@ mass \series bold bymask \series default - Write average over <mask1>, and if <mask2> is specified <mask1> x <mask2> - and <mask2> as well (mass weighted if + Write average over <mask1>, + and if <mask2> is specified <mask1> x <mask2> and <mask2> as well (mass weighted if \series bold mass \series default @@ -34827,6 +37634,7 @@ ired \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-vector" +nolink "false" \end_inset @@ -34874,23 +37682,28 @@ Matrix dimensions will be of the order of N x M for \series bold dist \series default -, +, + \series bold correl \series default -, +, + \series bold idea \series default -, and +, + and \series bold ired \series default -, 2N x 2N for +, + 2N x 2N for \series bold dihcovar \series default -, 3N x 3M for +, + 3N x 3M for \series bold covar \series default @@ -34898,7 +37711,8 @@ covar \series bold mwcovar \series default -, and N(N-1) x N(N-1) / 4 for +, + and N(N-1) x N(N-1) / 4 for \series bold distcovar \series default @@ -34918,7 +37732,8 @@ dihcovar \series default \shape default \emph default - otherwise, and M being the number of atoms in + otherwise, + and M being the number of atoms in \series bold <mask2> \series default @@ -34935,8 +37750,8 @@ dihcovar \series bold ired \series default -; the matrix will be made up of previously defined IRED vectors (see the - +; + the matrix will be made up of previously defined IRED vectors (see the \series bold \shape italic vector @@ -34946,12 +37761,13 @@ vector \begin_inset CommandInset ref LatexCommand vpageref reference "subsec:cpptraj-vector" +nolink "false" \end_inset ). - Similarly no mask is required for dihcovar; dihedral data sets must have - been previously defined. + Similarly no mask is required for dihcovar; + dihedral data sets must have been previously defined. Only one mask can be used with \series bold distcovar @@ -34961,8 +37777,8 @@ distcovar idea \series default matrices (i.e. - they can be symmetric only), otherwise one or two masks can be used (for - symmetric and full matrices respectively). + they can be symmetric only), + otherwise one or two masks can be used (for symmetric and full matrices respectively). If two masks are specified the number of atoms covered by \shape italic mask1 @@ -34970,6 +37786,7 @@ mask1 must be greater than or equal to the number of atoms covered by \shape italic mask2, + \shape default and on output \series bold @@ -34986,7 +37803,8 @@ corresponds to columns while \end_layout \begin_layout Standard -Note that for backwards compatibility, output files written with ' +Note that for backwards compatibility, + output files written with ' \series bold out <filename> \series default @@ -35001,19 +37819,23 @@ reference "sec:Datafile-Commands" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset for more details). - To prevent any of these from taking effect, simply specify ' + To prevent any of these from taking effect, + simply specify ' \series bold header \series default -', ' +', + ' \series bold xcol \series default -', and/or ' +', + and/or ' \series bold nosquare2d \series default @@ -35025,8 +37847,8 @@ out <filename> \end_layout \begin_layout Standard -As a simple example, a distance matrix of all CA atoms is generated and - output to 'distmat.dat'. +As a simple example, + a distance matrix of all CA atoms is generated and output to 'distmat.dat'. \end_layout \begin_layout LyX-Code @@ -35068,14 +37890,13 @@ mask1 \begin_deeper \begin_layout Description -byatom Report the minimum or maximum distance between atoms in <mask1> or - between atoms in <mask1> and atoms in <mask2>. +byatom Report the minimum or maximum distance between atoms in <mask1> or between atoms in <mask1> and atoms in <mask2>. \end_layout \begin_layout Description -byres Report the minimum or maximum distance between all residue pairs selected - by <mask1>, or pairs of residues selected by <mask1> and residues selected - by <mask2> (excluding certain pairs, see +byres Report the minimum or maximum distance between all residue pairs selected by <mask1>, + or pairs of residues selected by <mask1> and residues selected by <mask2> (excluding certain pairs, + see \series bold resoffset \series default @@ -35083,9 +37904,8 @@ resoffset \end_layout \begin_layout Description -bymol Report the minimum or maximum distance between all molecule pairs - selected by <mask1>, or pairs of molecules selected by <mask1> and molecules - selected by <mask2>. +bymol Report the minimum or maximum distance between all molecule pairs selected by <mask1>, + or pairs of molecules selected by <mask1> and molecules selected by <mask2>. \end_layout \end_deeper @@ -35118,8 +37938,8 @@ bymol Report the minimum or maximum distance between all molecule pairs \series bold byres \series default -, ignore residue pairs if the difference in residue numbers is greater than - the cutoff (default 1). +, + ignore residue pairs if the difference in residue numbers is greater than the cutoff (default 1). \end_layout \begin_layout Standard @@ -35131,7 +37951,8 @@ Data Sets Created: \series bold byatom \series default -, a set containing the minimum or maximum distance for each frame. +, + a set containing the minimum or maximum distance for each frame. \end_layout \begin_layout Description @@ -35143,8 +37964,9 @@ byres \series bold b \series default -ymol, a set containing the minimum or maximum distance between the residue/molec -ule pair specified by the numbers in the aspect, e.g. +ymol, + a set containing the minimum or maximum distance between the residue/molecule pair specified by the numbers in the aspect, + e.g. '<name>[1_3]' for \series bold byres @@ -35154,8 +37976,7 @@ byres \end_deeper \begin_layout Standard -Calculate the minimum or maximum distance in Angstroms between atoms or - residue/molecule pairs. +Calculate the minimum or maximum distance in Angstroms between atoms or residue/molecule pairs. \end_layout \begin_layout Subsection @@ -35196,12 +38017,12 @@ geom ( \series bold maskcenter \series default - only) If specified, use geometric center instead of center of mass. + only) If specified, + use geometric center instead of center of mass. \end_layout \begin_layout Description -maskcenter Calculate distance from center of masks instead of between each - atom. +maskcenter Calculate distance from center of masks instead of between each atom. \end_layout \begin_layout Standard @@ -35222,17 +38043,18 @@ Data Sets Created: \end_deeper \begin_layout Standard -Calculate the shortest distance to an image, i.e. - the distance to a neighboring unit cell, as well as the numbers of the - atoms involved in the distance. +Calculate the shortest distance to an image, + i.e. + the distance to a neighboring unit cell, + as well as the numbers of the atoms involved in the distance. By default the distance between each atom in <mask1> and <mask2> is considered; if \series bold maskcenter \series default is specified the center of the masks is used. - By convention, the lower atom number is saved as A1 and the higher is saved - as A2. + By convention, + the lower atom number is saved as A1 and the higher is saved as A2. \end_layout \begin_layout Subsection @@ -35242,6 +38064,8 @@ molsurf \begin_layout LyX-Code molsurf \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -35330,15 +38154,14 @@ literal "true" \end_inset - of atoms in <mask> (default all atoms if no mask specified) using routines - from molsurf (originally developed by Paul Beroza) using the probe radius - specified by + of atoms in <mask> (default all atoms if no mask specified) using routines from molsurf (originally developed by Paul Beroza) using the probe radius specified by \series bold probe \series default (1.4 Å if not specified). Note that if GB/VDW radii are not present in the topology file (e.g. - for PDB files), then PARSE + for PDB files), + then PARSE \begin_inset CommandInset citation LatexCommand citep key "Sitkoff94" @@ -35347,9 +38170,10 @@ literal "true" \end_inset radii can be used. - Also note that this routine only calculate absolute surface areas, i.e. - it cannot be used to get the contribution of a subset of atoms to overall - surface area; if such functionality is needed try the + Also note that this routine only calculate absolute surface areas, + i.e. + it cannot be used to get the contribution of a subset of atoms to overall surface area; + if such functionality is needed try the \series bold \emph on surf @@ -35359,6 +38183,7 @@ surf \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_surf" +nolink "false" \end_inset @@ -35377,8 +38202,7 @@ name "subsec:cpptraj_multidihedral" \end_layout \begin_layout LyX-Code -multidihedral [<name>] <dihedral types> [resrange <range/mask>] [out <filename>] - [range360] +multidihedral [<name>] <dihedral types> [resrange <range/mask>] [out <filename>] [range360] \end_layout \begin_layout LyX-Code @@ -35386,8 +38210,8 @@ multidihedral [<name>] <dihedral types> [resrange <range/mask>] [out <filename>] \end_layout \begin_layout LyX-Code - Offset -2=<at0><at1> in previous res, -1=<at0> in previous - res, + Offset -2=<at0><at1> in previous res, + -1=<at0> in previous res, \end_layout \begin_layout LyX-Code @@ -35395,7 +38219,8 @@ multidihedral [<name>] <dihedral types> [resrange <range/mask>] [out <filename>] \end_layout \begin_layout LyX-Code - 1=<at3> in next res, 2=<at2><at3> in next res. + 1=<at3> in next res, + 2=<at2><at3> in next res. \end_layout \begin_layout LyX-Code @@ -35425,7 +38250,8 @@ multidihedral [<name>] <dihedral types> [resrange <range/mask>] [out <filename>] \end_inset types> Dihedral types to look for. - Note that chip is 'protein chi', chin is 'nucleic chi'. + Note that chip is 'protein chi', + chin is 'nucleic chi'. \end_layout \begin_layout Description @@ -35435,7 +38261,8 @@ types> Dihedral types to look for. <range/mask>] Residue range to look for dihedrals in. Default is all solute residues. - If a mask expression is given, use residues selected by the mask expression; + If a mask expression is given, + use residues selected by the mask expression; if any part of a residue is selcted it will be used. \end_layout @@ -35456,8 +38283,10 @@ types> Dihedral types to look for. \begin_inset space ~ \end_inset -<name>:<a0>:<a1>:<a2>:<a3>[:<offset>] Search for a custom dihedral type - called <name> using atom names <a0>, <a1>, <a2>, and <a3>. +<name>:<a0>:<a1>:<a2>:<a3>[:<offset>] Search for a custom dihedral type called <name> using atom names <a0>, + <a1>, + <a2>, + and <a3>. \begin_inset Separator latexpar \end_inset @@ -35466,8 +38295,12 @@ types> Dihedral types to look for. \begin_deeper \begin_layout Standard -Offset: -2=<a0><a1> in previous res, -1=<a0> in previous res, 0=All <aX> - in single res, 1=<a3> in next res, 2=<a2><a3> in next res. +Offset: + -2=<a0><a1> in previous res, + -1=<a0> in previous res, + 0=All <aX> in single res, + 1=<a3> in next res, + 2=<a2><a3> in next res. \end_layout \end_deeper @@ -35481,7 +38314,9 @@ DataSets Generated: \end_inset type>]:<#> Aspect corresponds to the dihedral type name (e.g. - [phi], [psi], etc). + [phi], + [psi], + etc). The index is the residue number. \end_layout @@ -35498,13 +38333,13 @@ run \begin_layout Standard Calculate specified dihedral angle types for residues in given range/mask. - By default, dihedral angles are identified based on standard Amber atom - names. - The resulting data sets will have aspect equal to [<dihedral type>] and - index equal to residue #. - To differentiate the chi angle, chip is used for proteins and chin for - nucleic acids. - For example, to calculate all phi/psi dihedrals for residues 6 to 9: + By default, + dihedral angles are identified based on standard Amber atom names. + The resulting data sets will have aspect equal to [<dihedral type>] and index equal to residue #. + To differentiate the chi angle, + chip is used for proteins and chin for nucleic acids. + For example, + to calculate all phi/psi dihedrals for residues 6 to 9: \end_layout \begin_layout LyX-Code @@ -35512,8 +38347,10 @@ multidihedral MyTorsions phi psi resrange 6-9 out PhiPsi_6-9.dat \end_layout \begin_layout Standard -This will generate data sets named MyTorsions[phi]:6, MyTorsions[psi]:6, - MyTorsions[phi]:7, etc. +This will generate data sets named MyTorsions[phi]:6, + MyTorsions[psi]:6, + MyTorsions[phi]:7, + etc. Dihedrals other than those defined in \series bold <dihedral types> @@ -35524,8 +38361,10 @@ dihtype \series default . For example to create a custom dihedral type called chi1 using atoms N, - CA, CB, and CG (all in the same residue), then search for and calculate - the dihedral in all residues: + CA, + CB, + and CG (all in the same residue), + then search for and calculate the dihedral in all residues: \end_layout \begin_layout LyX-Code @@ -35541,8 +38380,7 @@ multipucker [<name>] [<pucker types>] [out <filename>] [resrange <range>] \end_layout \begin_layout LyX-Code - [altona|cremer] [puckertype <name>:<a0>:<a1>:<a2>:<a3>:<a4>[:<a5>] - ...] + [altona|cremer] [puckertype <name>:<a0>:<a1>:<a2>:<a3>:<a4>[:<a5>] ...] \end_layout \begin_layout LyX-Code @@ -35593,9 +38431,11 @@ types> Pucker types to look for. \begin_inset space ~ \end_inset -<name>:<a0>:<a1>:<a2>:<a3>:<a4>[:<a5>] Search for a custom pucker type called - <name> using atom names <a0>, <a1>, <a2>, <a3>, and <a4> (also <a5> for - 6 atom puckers). +<name>:<a0>:<a1>:<a2>:<a3>:<a4>[:<a5>] Search for a custom pucker type called <name> using atom names <a0>, + <a1>, + <a2>, + <a3>, + and <a4> (also <a5> for 6 atom puckers). \end_layout \begin_layout Description @@ -35658,7 +38498,9 @@ DataSets Generated: \end_inset type>]:<#> Aspect corresponds to the pucker type name (e.g. - [nucleic], [furanose], etc). + [nucleic], + [furanose], + etc). The index is the residue number. \end_layout @@ -35701,16 +38543,17 @@ run \begin_layout Standard Calculate specified pucker types for residues in given range. - By default, puckers are identified based on standard Amber atom names. - The resulting data sets will have aspect equal to [<pucker type>] and index - equal to residue #. - In order to be identified as a pucker, all consecutive atoms in the pucker - must be bonded, and the last atom of the pucker must be bonded to the first. + By default, + puckers are identified based on standard Amber atom names. + The resulting data sets will have aspect equal to [<pucker type>] and index equal to residue #. + In order to be identified as a pucker, + all consecutive atoms in the pucker must be bonded, + and the last atom of the pucker must be bonded to the first. \end_layout \begin_layout Standard -For example, to calculate all nucleic acid ribose puckers for residues 6 - to 9: +For example, + to calculate all nucleic acid ribose puckers for residues 6 to 9: \end_layout \begin_layout LyX-Code @@ -35718,7 +38561,8 @@ multipucker MyPuckers nucleic resrange 6-9 out Pucker_6-9.dat \end_layout \begin_layout Standard -This will generate data sets named MyPuckers[nucleic]:6, MyPuckers[nucleic]:7, +This will generate data sets named MyPuckers[nucleic]:6, + MyPuckers[nucleic]:7, etc. Puckers other than those defined in \series bold @@ -35729,9 +38573,12 @@ This will generate data sets named MyPuckers[nucleic]:6, MyPuckers[nucleic]:7, puckertype \series default . - For example to create a custom pucker type called furanoid using atoms - C2, C3, C4, C5, and O2, then search for and calculate that pucker (with - amplitudes) using the method of Cremer and Pople in all residues: + For example to create a custom pucker type called furanoid using atoms C2, + C3, + C4, + C5, + and O2, + then search for and calculate that pucker (with amplitudes) using the method of Cremer and Pople in all residues: \end_layout \begin_layout LyX-Code @@ -35749,8 +38596,7 @@ multivector \end_layout \begin_layout LyX-Code -multivector [<name>] [resrange <range>] name1 <name1> name2 <name2> [out - <filename>] +multivector [<name>] [resrange <range>] name1 <name1> name2 <name2> [out <filename>] \end_layout \begin_layout LyX-Code @@ -35800,9 +38646,8 @@ name2 \end_deeper \begin_layout Standard -Search for and calculate atomic vectors between atoms named <name1> and - <name2> in residues specified by the given <range>; each one is equivalent - to the command ' +Search for and calculate atomic vectors between atoms named <name1> and <name2> in residues specified by the given <range>; + each one is equivalent to the command ' \family typewriter \series bold vector @@ -35810,9 +38655,9 @@ vector <name1> <name2> \family default '. - For example, to calculate all vectors between atoms named 'N' and atoms - named 'H' in residues 5-20, storing the results in data sets named NH and - writing to NH.dat: + For example, + to calculate all vectors between atoms named 'N' and atoms named 'H' in residues 5-20, + storing the results in data sets named NH and writing to NH.dat: \end_layout \begin_layout LyX-Code @@ -35826,6 +38671,8 @@ nastruct \begin_layout LyX-Code nastruct \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -35870,8 +38717,7 @@ nastruct \end_layout \begin_layout LyX-Code - [axisnameo <name>] [axisnamex <name>] [axisnamey <name>] [axisnamez - <name>] + [axisnameo <name>] [axisnamex <name>] [axisnamey <name>] [axisnamez <name>] \end_layout \begin_layout LyX-Code @@ -35913,14 +38759,16 @@ name>] Output data set name. \begin_inset space ~ \end_inset -<suffix>] File name suffix for output files; BP.<suffix> for base pair parameters -, BPstep.<suffix> for base pair step parameters, and Helix.<suffix> for base - pair step helical parameters. +<suffix>] File name suffix for output files; + BP.<suffix> for base pair parameters, + BPstep.<suffix> for base pair step parameters, + and Helix.<suffix> for base pair step helical parameters. If \series bold sscalc \series default - is specified, also SS.<suffix> for parameters of consecutive bases in strands. + is specified, + also SS.<suffix> for parameters of consecutive bases in strands. \end_layout \begin_layout Description @@ -35936,20 +38784,21 @@ naout \begin_inset space ~ \end_inset -<ResName>:{A,C,G,T,U}] Attempt to treat residues named <ResName> as if it - were A, C, G, T, or U; useful for residues with modifications or non-standard - residue names. +<ResName>:{A,C,G,T,U}] Attempt to treat residues named <ResName> as if it were A, + C, + G, + T, + or U; + useful for residues with modifications or non-standard residue names. This will only work if enough reference atoms are present in <ResName>. \end_layout \begin_layout Description -[calcnohb] Calculate parameters between bases in base pairs even if no hydrogen - bonds present between them. +[calcnohb] Calculate parameters between bases in base pairs even if no hydrogen bonds present between them. \end_layout \begin_layout Description -[noframespaces] If specified there will be no spaces between frames in the - +[noframespaces] If specified there will be no spaces between frames in the \series bold naout \series default @@ -35962,7 +38811,8 @@ naout \end_inset <file>] Specify a custom nucleic acid base reference. - One file per custom residue; multiple 'baseref' keywords may be present. + One file per custom residue; + multiple 'baseref' keywords may be present. See below for details. \end_layout @@ -35972,7 +38822,8 @@ naout \end_inset {3dna|babcock}] Specify axis conventions for calculating base pair parameters. - If '3dna' (default), use conventions of 3DNA + If '3dna' (default), + use conventions of 3DNA \begin_inset CommandInset citation LatexCommand citep key "Lu2003" @@ -35980,8 +38831,10 @@ literal "true" \end_inset -; flip Y and Z of complimentary base for antiparallel. - If 'babcock', use conventions of Babcock et al. +; + flip Y and Z of complimentary base for antiparallel. + If 'babcock', + use conventions of Babcock et al. \begin_inset CommandInset citation LatexCommand citep key "Babcock94" @@ -35989,13 +38842,13 @@ literal "true" \end_inset - ; flip Y and Z of complimentary base for antiparallel, flip X and Y for - parallel. + ; + flip Y and Z of complimentary base for antiparallel, + flip X and Y for parallel. \end_layout \begin_layout Description -[allhb] Report the total number of hydrogen bonds detected instead of just - the number of Watson-Crick-Franklin hydrogen bonds. +[allhb] Report the total number of hydrogen bonds detected instead of just the number of Watson-Crick-Franklin hydrogen bonds. \end_layout \begin_layout Description @@ -36003,8 +38856,7 @@ literal "true" \begin_inset space ~ \end_inset -<hbcut>] Distance cutoff (in Angstroms) for determining hydrogen bonds between - bases (default 3.5). +<hbcut>] Distance cutoff (in Angstroms) for determining hydrogen bonds between bases (default 3.5). \end_layout \begin_layout Description @@ -36012,13 +38864,12 @@ literal "true" \begin_inset space ~ \end_inset -<origincut>] Distance cutoff (in Angstroms) between base pair axis origins - for determining which bases are eligible for base-pairing (default 2.5). +<origincut>] Distance cutoff (in Angstroms) between base pair axis origins for determining which bases are eligible for base-pairing (default 2.5). \end_layout \begin_layout Description -[altona] Use method of Altona & Sundaralingam to calculate sugar pucker - (default, see +[altona] Use method of Altona & Sundaralingam to calculate sugar pucker (default, + see \series bold \shape italic pucker @@ -36038,14 +38889,12 @@ pucker \end_layout \begin_layout Description -[zcut] Distance cutoff (in Angstroms) between base reference axes along - the Z axis (i.e. +[zcut] Distance cutoff (in Angstroms) between base reference axes along the Z axis (i.e. stagger) for determining base pairing (default 2). \end_layout \begin_layout Description -[zanglecut] Angle cutoff (in degrees) between base reference Z axes for - determining base pairing (default 65). +[zanglecut] Angle cutoff (in degrees) between base reference Z axes for determining base pairing (default 65). \end_layout \begin_layout Description @@ -36058,7 +38907,8 @@ pucker \begin_deeper \begin_layout Description -simple Use P-P distance for major groove, O4-O4 distance for minor groove. +simple Use P-P distance for major groove, + O4-O4 distance for minor groove. Output to 'BP.<suffix>'. \end_layout @@ -36090,8 +38940,7 @@ literal "true" \begin_inset space ~ \end_inset -<arg>] Trajectory argument to pass to base axes trajectory file (can specify - more than once). +<arg>] Trajectory argument to pass to base axes trajectory file (can specify more than once). \end_layout \begin_layout Description @@ -36117,8 +38966,7 @@ literal "true" \begin_inset space ~ \end_inset -<arg>] Trajectory argument to pass to base pair axes trajectory file (can - specify more than once). +<arg>] Trajectory argument to pass to base pair axes trajectory file (can specify more than once). \end_layout \begin_layout Description @@ -36144,8 +38992,7 @@ literal "true" \begin_inset space ~ \end_inset -<arg>] Trajectory argument to pass to base pair step axes trajectory file - (can specify more than once). +<arg>] Trajectory argument to pass to base pair step axes trajectory file (can specify more than once). \end_layout \begin_layout Description @@ -36239,9 +39086,9 @@ pairs \end_inset <b1>-<b2>,...] User specified base pairing. - Base pairs are specified in a comma-separated list after the 'pairs' keyword - as <b1>-<b2>, where <b1> and <b2> are the residue numbers of bases in the - base pair, e.g. + Base pairs are specified in a comma-separated list after the 'pairs' keyword as <b1>-<b2>, + where <b1> and <b2> are the residue numbers of bases in the base pair, + e.g. 'pairs 1-16,2-15,3-14,4-13'. Can specify 'pairs' multiple times. \end_layout @@ -36287,17 +39134,16 @@ Base pairs: \end_layout \begin_layout Description -<name>[bp]:X Contain 1 if bases are base paired, 0 otherwise. +<name>[bp]:X Contain 1 if bases are base paired, + 0 otherwise. \end_layout \begin_layout Description -<name>[major]:X (If groovecalc simple) Major groove width calculated between - P atoms of each base. +<name>[major]:X (If groovecalc simple) Major groove width calculated between P atoms of each base. \end_layout \begin_layout Description -<name>[minor]:X (If groovecalc simple) Minor groove width calculated between - O4 atoms of each base. +<name>[minor]:X (If groovecalc simple) Minor groove width calculated between O4 atoms of each base. \end_layout \begin_layout Standard @@ -36333,11 +39179,13 @@ Base pair steps: \end_layout \begin_layout Description -<name>[major]:X (If groovecalc 3dna) Major groove width, El Hassan and Calladine. +<name>[major]:X (If groovecalc 3dna) Major groove width, + El Hassan and Calladine. \end_layout \begin_layout Description -<name>[minor]:X (If groovecalc 3dna) Minor groove width, El Hassan and Calladine. +<name>[minor]:X (If groovecalc 3dna) Minor groove width, + El Hassan and Calladine. \end_layout \begin_layout Standard @@ -36404,22 +39252,37 @@ Note that base pair data sets are not created until base pairing is determined. \end_layout \begin_layout Standard -Calculate basic nucleic acid (NA) structure parameters for all residues - in the range specified by +Calculate basic nucleic acid (NA) structure parameters for all residues in the range specified by \series bold resrange \series default (or all NA residues if no range specified). - Residue names are recognized with the following priority: standard Amber - residue names DA, DG, DC, DT, RA, RG, RC, and RU; 3 letter residue names - ADE, GUA, CYT, THY, and URA; and finally 1 letter residue names A, G, C, - T, and U. + Residue names are recognized with the following priority: + standard Amber residue names DA, + DG, + DC, + DT, + RA, + RG, + RC, + and RU; + 3 letter residue names ADE, + GUA, + CYT, + THY, + and URA; + and finally 1 letter residue names A, + G, + C, + T, + and U. Non-standard/modified NA bases can be recognized by using the \series bold resmap \series default keyword. - For example, to make + For example, + to make \shape italic cpptraj \shape default @@ -36435,19 +39298,18 @@ The \series bold resmap \series default - keyword can be specified multiple times, but only one mapping per unique - residue name is allowed. + keyword can be specified multiple times, + but only one mapping per unique residue name is allowed. Note that \series bold resmap \series default - may fail if the residue is missing heavy atoms normally present in the - specified base type. + may fail if the residue is missing heavy atoms normally present in the specified base type. \end_layout \begin_layout Standard -Base pairs are determined either once from the first frame or from a reference - structure, or can be determined each frame if +Base pairs are determined either once from the first frame or from a reference structure, + or can be determined each frame if \series bold allframes \series default @@ -36462,17 +39324,17 @@ pairs \series default keywords. Base pairing is determined first by base reference axis origin distance, - then by stagger, then by angle between base Z axes, then finally by hydrogen - bonding (at least one hydrogen bond must be present). + then by stagger, + then by angle between base Z axes, + then finally by hydrogen bonding (at least one hydrogen bond must be present). Base pair parameters will only be written for determined base pairs. Both Watson-Crick and other types of base pairing can be detected. - Note that although all possible hydrogen bonds are searched for, only WC - hydrogen bonds are reported in the BP.<suffix> file. + Note that although all possible hydrogen bonds are searched for, + only WC hydrogen bonds are reported in the BP.<suffix> file. \end_layout \begin_layout Standard -The procedure used to calculate NA structural parameters is the same as - 3DNA +The procedure used to calculate NA structural parameters is the same as 3DNA \begin_inset CommandInset citation LatexCommand citep key "Lu2003" @@ -36480,7 +39342,8 @@ literal "true" \end_inset -, with algorithms adapted from Babcok et al. +, + with algorithms adapted from Babcok et al. \begin_inset CommandInset citation LatexCommand citep key "Babcock94" @@ -36497,7 +39360,8 @@ literal "true" \end_inset . - Given the same base pairs are determined, + Given the same base pairs are determined, + \shape italic cpptraj \shape default @@ -36518,22 +39382,39 @@ Calculated NA structure parameters are written to three separate files, naout \series default . - Base pair parameters (shear, stretch, stagger, buckle, propeller twist, - opening, # WC hydrogen bonds, base pairing, and simple groove widths) are - written to BP.<suffix>, along with the number of WC hydrogen bonds detected. - Base pair step parameters (shift, slide, rise, tilt, roll, twist, Zp, and - El Hassan and Calladine groove widths) are written to BPstep.<suffix>, and - helical parameters (X-displacement, Y-displacement, rise, inclination, - tip, and twist) are written to Helix.<suffix>. + Base pair parameters (shear, + stretch, + stagger, + buckle, + propeller twist, + opening, + # WC hydrogen bonds, + base pairing, + and simple groove widths) are written to BP.<suffix>, + along with the number of WC hydrogen bonds detected. + Base pair step parameters (shift, + slide, + rise, + tilt, + roll, + twist, + Zp, + and El Hassan and Calladine groove widths) are written to BPstep.<suffix>, + and helical parameters (X-displacement, + Y-displacement, + rise, + inclination, + tip, + and twist) are written to Helix.<suffix>. If \series bold noheader \series default is specified a header will not be written to the output files. - Note that although base puckering is calculated, it is not written to an - output file by default. - You can output pucker to a file via the create or write/writedata commands - after the data has been generated, e.g.: + Note that although base puckering is calculated, + it is not written to an output file by default. + You can output pucker to a file via the create or write/writedata commands after the data has been generated, + e.g.: \end_layout \begin_layout LyX-Code @@ -36549,9 +39430,8 @@ writedata NApucker.dat NA[pucker] \end_layout \begin_layout Standard -Note that while the underlying procedure is geared towards calculating parameter -s for base pairs, the code can be made to calculate parameters between consecuti -ve bases in single strands by specifying +Note that while the underlying procedure is geared towards calculating parameters for base pairs, + the code can be made to calculate parameters between consecutive bases in single strands by specifying \series bold sscalc \series default @@ -36559,35 +39439,42 @@ sscalc \end_layout \begin_layout Standard -Base axes, base pair axes, and base pair step axes can be written to trajectory - files using the +Base axes, + base pair axes, + and base pair step axes can be written to trajectory files using the \series bold axesout \series default -, +, + \series bold bpaxesout \series default -, and +, + and \series bold stepaxesout \series default and related keywords. - The axes are written using 4 points: an origin, and X Y and Z which are - bonded to the origin. + The axes are written using 4 points: + an origin, + and X Y and Z which are bonded to the origin. The names of these pseudo atoms can be changed using the \series bold axisnameo \series default -, +, + \series bold axisnamex \series default -, +, + \series bold axisnamey \series default -, and +, + and \series bold axisnamez \series default @@ -36604,8 +39491,9 @@ Users can now specify baseref <file> \series default to load a custom nucleic acid base reference. - The base reference files are white-space delimited, begin with the line - NASTRUCT REFERENCE, and have the following format: + The base reference files are white-space delimited, + begin with the line NASTRUCT REFERENCE, + and have the following format: \end_layout \begin_layout LyX-Code @@ -36634,9 +39522,10 @@ There is a line for each reference atom. \begin_inset space ~ \end_inset -character> Used to identify the underlying base type: A G C T or U. - If none of these, it will be considered an unknown residue (which just - means WC hydrogen bonding will not be identified). +character> Used to identify the underlying base type: + A G C T or U. + If none of these, + it will be considered an unknown residue (which just means WC hydrogen bonding will not be identified). \end_layout \begin_layout Description @@ -36679,7 +39568,11 @@ name> A reference atom name. \end_inset type> Denotes if and how the atom participates in hydrogen bonding. - Can be 'd'onor, 'a'cceptor, or 'n'one (or the numbers 1, 2, 0 respectively). + Can be 'd'onor, + 'a'cceptor, + or 'n'one (or the numbers 1, + 2, + 0 respectively). Only the first character of the word actually matters. \end_layout @@ -36779,8 +39672,7 @@ nativecontacts [<mask1> [<mask2>]] [writecontacts <outfile>] [resout <resfile>] \end_layout \begin_layout LyX-Code - [resoffset <n>] [contactpdb <file>] [pdbcut <cut>] [mindist] - [maxdist] + [resoffset <n>] [contactpdb <file>] [pdbcut <cut>] [mindist] [maxdist] \end_layout \begin_layout LyX-Code @@ -36841,8 +39733,7 @@ nativecontacts [<mask1> [<mask2>]] [writecontacts <outfile>] [resout <resfile>] \begin_inset space ~ \end_inset -<cut>] Distance cutoff for determining native contacts in Angstroms (default - 7.0 Ang). +<cut>] Distance cutoff for determining native contacts in Angstroms (default 7.0 Ang). \end_layout \begin_layout Description @@ -36854,8 +39745,8 @@ nativecontacts [<mask1> [<mask2>]] [writecontacts <outfile>] [resout <resfile>] \end_layout \begin_layout Description -[includesolvent] By default solvent molecules are ignored; this will explicitly - include solvent molecules. +[includesolvent] By default solvent molecules are ignored; + this will explicitly include solvent molecules. \end_layout \begin_layout Description @@ -36903,8 +39794,7 @@ refindex \series bold byresidue \series default - only) Ignore contacts between residues spaced less than <n> residues apart - in sequence. + only) Ignore contacts between residues spaced less than <n> residues apart in sequence. \end_layout \begin_layout Description @@ -36912,8 +39802,7 @@ byresidue \begin_inset space ~ \end_inset -<file>] Write PDB with B-factor column containing relative contact strength - for native contacts (strongest is 100.0). +<file>] Write PDB with B-factor column containing relative contact strength for native contacts (strongest is 100.0). \end_layout \begin_layout Description @@ -36925,7 +39814,8 @@ byresidue \series bold contactpdb \series default -, only write contacts with relative contact strength greater than +, + only write contacts with relative contact strength greater than \series bold <cut> \series default @@ -36933,13 +39823,13 @@ contactpdb \end_layout \begin_layout Description -[mindist] If specified, determine the minimum distance between any atoms - in the mask(s). +[mindist] If specified, + determine the minimum distance between any atoms in the mask(s). \end_layout \begin_layout Description -[maxdist] If specified, determine the maximum distance between any atoms - in the mask(s). +[maxdist] If specified, + determine the maximum distance between any atoms in the mask(s). \end_layout \begin_layout Description @@ -36955,10 +39845,9 @@ contactpdb \end_layout \begin_layout Description -[map] Calculate matrices of native contacts ([nativemap]) and non-native - contacts ([nonnatmap]). - These matrices are normalized by the total number of frames, so that a - value of 1.0 means +[map] Calculate matrices of native contacts ([nativemap]) and non-native contacts ([nonnatmap]). + These matrices are normalized by the total number of frames, + so that a value of 1.0 means \begin_inset Quotes eld \end_inset @@ -36971,8 +39860,8 @@ contact always present \series bold byresidue \series default - specified, the values for each individual atom pair are summed over the - residues they belong to (this means for + specified, + the values for each individual atom pair are summed over the residues they belong to (this means for \series bold byresidue \series default @@ -36984,13 +39873,12 @@ byresidue \begin_inset space ~ \end_inset -<mapfile>] Write native/non-native matrices to 'native.<mapfile>' and 'nonnative.< -mapfile>' respectively. +<mapfile>] Write native/non-native matrices to 'native.<mapfile>' and 'nonnative.<mapfile>' respectively. \end_layout \begin_layout Description -[series] Calculate native contact time series data, 1 for contact present - and 0 otherwise. +[series] Calculate native contact time series data, + 1 for contact present and 0 otherwise. \end_layout \begin_layout Description @@ -37002,7 +39890,8 @@ mapfile>' respectively. \end_layout \begin_layout Description -[savenonnative] Save non-native contacts; +[savenonnative] Save non-native contacts; + \series bold series \series default @@ -37028,8 +39917,7 @@ skipnative \begin_inset space ~ \end_inset -<file>] Write PDB with B-factor column containing relative contact strength - for non-native contacts (strongest is 100.0). +<file>] Write PDB with B-factor column containing relative contact strength for non-native contacts (strongest is 100.0). \end_layout \end_deeper @@ -37046,7 +39934,8 @@ skipnative \begin_inset space ~ \end_inset -sum} Create contacts time series by residue; +sum} Create contacts time series by residue; + \series bold series \series default @@ -37076,7 +39965,9 @@ sum The sum of all individual contacts is recorded for the residue pair. \end_deeper \begin_layout Description -[skipnative] If specified, skip native contacts determination, i.e. +[skipnative] If specified, + skip native contacts determination, + i.e. treat all sonctacts as non-native contacts. Implies \series bold @@ -37137,18 +40028,21 @@ native \begin_inset Quotes erd \end_inset - contacts as determined by a simple distance cut-off, i.e. + contacts as determined by a simple distance cut-off, + i.e. any atoms which are closer than \series bold <cut> \series default - in the specified reference frame (the first frame if no reference specified) - are considered a native contact. - If one mask is provided, contacts are looked for within + in the specified reference frame (the first frame if no reference specified) are considered a native contact. + If one mask is provided, + contacts are looked for within \series bold <mask1> \series default -; if two masks are provided, only contacts between atoms in +; + if two masks are provided, + only contacts between atoms in \series bold <mask1> \series default @@ -37171,19 +40065,18 @@ skipnative \series bold series \series default - keyword; these can be further consolidated by residue using the + keyword; + these can be further consolidated by residue using the \series bold resseries \series default keyword. - When using <resseries> the data set index is calculated as (r2 * nres) - + r1 so that indices can be matched between native/non-native contact pairs. + When using <resseries> the data set index is calculated as (r2 * nres) + r1 so that indices can be matched between native/non-native contact pairs. Non-native residue contact legends have an nn_ prefix. \end_layout \begin_layout Standard -Native contacts that are found are written to the file specified by writecontact -s (or STDOUT) with format: +Native contacts that are found are written to the file specified by writecontacts (or STDOUT) with format: \end_layout \begin_layout LyX-Code @@ -37201,16 +40094,19 @@ Contact \family typewriter Nframes \family default - is the number of frames the contact is present, + is the number of frames the contact is present, + \family typewriter Frac. \family default - is the total fraction of frames the contact is present, + is the total fraction of frames the contact is present, + \family typewriter Avg \family default - is the average distance of the contact when present, and + is the average distance of the contact when present, + and \family typewriter Stdev \family default @@ -37219,8 +40115,7 @@ Stdev \series bold resout \series default - is specified the total fraction of contacts is printed for all residue - pairs having native contacts with format: + is specified the total fraction of contacts is printed for all residue pairs having native contacts with format: \end_layout \begin_layout LyX-Code @@ -37232,15 +40127,18 @@ Where \family typewriter #Res1 \family default - is the first residue number, + is the first residue number, + \family typewriter #Res2 \family default - is the second residue number, + is the second residue number, + \family typewriter TotalFrac \family default - is the total fraction of contacts for the residue pair, and + is the total fraction of contacts for the residue pair, + and \family typewriter Contacts \family default @@ -37249,8 +40147,8 @@ Contacts \family typewriter TotalFrac \family default - is calculated for each pair as the sum of each contact involving that pair - divided by the total number of frames, it is possible to have + is calculated for each pair as the sum of each contact involving that pair divided by the total number of frames, + it is possible to have \family typewriter TotalFrac \family default @@ -37258,11 +40156,11 @@ TotalFrac \end_layout \begin_layout Standard -During trajectory processing, non-native contacts (i.e. - any pair satisfying the distance cut-off which is not already a native - contact) are also searched for. - The time series for native contacts can be saved as well, with 1 for contact - present and 0 otherwise (similar to the +During trajectory processing, + non-native contacts (i.e. + any pair satisfying the distance cut-off which is not already a native contact) are also searched for. + The time series for native contacts can be saved as well, + with 1 for contact present and 0 otherwise (similar to the \series bold \emph on hbond @@ -37273,6 +40171,7 @@ hbond \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-lifetime" +nolink "false" \end_inset @@ -37285,8 +40184,9 @@ Contact maps (matrices) are generated for native and non-native contacts. \series bold byresidue \series default - is specified, contact maps are summed over residues, and contacts between - residues spaced + is specified, + contact maps are summed over residues, + and contacts between residues spaced \series bold <resoffset> \series default @@ -37298,15 +40198,13 @@ If \series bold contactpdb \series default - is specified a PDB is generated containing relative contact strengths in - the B-factor column. - The relative contact strength is normalized so that a value of 100 means - that atom participated in the most contacts with other atoms. + is specified a PDB is generated containing relative contact strengths in the B-factor column. + The relative contact strength is normalized so that a value of 100 means that atom participated in the most contacts with other atoms. \end_layout \begin_layout Standard -Example command looking for contacts between residues 210 to 260 and residue - named NDP, using reference structure 'FtuFabI.WT.pdb' to define native contacts: +Example command looking for contacts between residues 210 to 260 and residue named NDP, + using reference structure 'FtuFabI.WT.pdb' to define native contacts: \end_layout \begin_layout LyX-Code @@ -37363,6 +40261,8 @@ name "subsec:cpptraj_outtraj" \begin_layout LyX-Code outtraj \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -37396,6 +40296,7 @@ args] Output trajectory arguments (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-trajout" +nolink "false" \end_inset @@ -37423,8 +40324,7 @@ max \begin_inset space ~ \end_inset -<max>] Only write frames to <filename> if values in <dataset> for those - frames are between <min> and <max>. +<max>] Only write frames to <filename> if values in <dataset> for those frames are between <min> and <max>. Can be specified for one or more data sets. \end_layout @@ -37436,10 +40336,12 @@ The outtraj command is similar in function to trajout \series default \emph default -, and takes all of the same arguments. - However, instead of writing a trajectory frame after all actions are complete - outtraj writes the trajectory frame at its position in the Action queue. - For example, given the input: +, + and takes all of the same arguments. + However, + instead of writing a trajectory frame after all actions are complete outtraj writes the trajectory frame at its position in the Action queue. + For example, + given the input: \end_layout \begin_layout LyX-Code @@ -37463,17 +40365,18 @@ outtraj AfterRmsd.crd \end_layout \begin_layout Standard -three trajectories will be written: output.crd, BeforeRmsd.crd, and AfterRmsd.crd. - The output.crd and AfterRmsd.crd trajectories will be identical, but the - BeforeRmsd.crd trajectory will contain the coordinates of mdcrd.crd before - they are RMS-fit. +three trajectories will be written: + output.crd, + BeforeRmsd.crd, + and AfterRmsd.crd. + The output.crd and AfterRmsd.crd trajectories will be identical, + but the BeforeRmsd.crd trajectory will contain the coordinates of mdcrd.crd before they are RMS-fit. \end_layout \begin_layout Standard -The maxmin keyword can be used to restrict output using one more more data - sets. - For example, to only write frames for which the RMSD value is between 0.7 - and 0.8: +The maxmin keyword can be used to restrict output using one more more data sets. + For example, + to only write frames for which the RMSD value is between 0.7 and 0.8: \end_layout \begin_layout LyX-Code @@ -37498,12 +40401,16 @@ pairdist out <filename> mask <mask> [delta <resolution>] \begin_layout Standard Calculate pair distribution function. - In the following, defaults are given in parentheses. + In the following, + defaults are given in parentheses. The \series bold out \series default - keyword specifies output file for histogram: distance, P(r), s(P(r)). + keyword specifies output file for histogram: + distance, + P(r), + s(P(r)). The \series bold mask @@ -37522,8 +40429,7 @@ pairwise \end_layout \begin_layout LyX-Code -pairwise [<name>] [<mask>] [out <filename>] [cuteelec <ecut>] [cutevdw <vcut>] - +pairwise [<name>] [<mask>] [out <filename>] [cuteelec <ecut>] [cutevdw <vcut>] \end_layout \begin_layout LyX-Code @@ -37535,8 +40441,7 @@ pairwise [<name>] [<mask>] [out <filename>] [cuteelec <ecut>] [cutevdw <vcut>] \end_layout \begin_layout LyX-Code - [eout <eout file>] [pdbout <pdb file>] [scalepdbe] [printmode {only|or|and -|}] + [eout <eout file>] [pdbout <pdb file>] [scalepdbe] [printmode {only|or|and|}] \begin_inset Separator latexpar \end_inset @@ -37545,8 +40450,8 @@ pairwise [<name>] [<mask>] [out <filename>] [cuteelec <ecut>] [cutevdw <vcut>] \begin_deeper \begin_layout Description -[<name>] Data set name; van der Waals energy will get aspect [EVDW] and - electrostatic energy will get aspect [EELEC]. +[<name>] Data set name; + van der Waals energy will get aspect [EVDW] and electrostatic energy will get aspect [EELEC]. \end_layout \begin_layout Description @@ -37611,8 +40516,7 @@ refindex \begin_inset space ~ \end_inset -<cut>] Only report interaction EELEC (or delta EELEC) if absolute value - is greater than <ecut> (default 1.0 kcal/mol). +<cut>] Only report interaction EELEC (or delta EELEC) if absolute value is greater than <ecut> (default 1.0 kcal/mol). \end_layout \begin_layout Description @@ -37620,8 +40524,7 @@ refindex \begin_inset space ~ \end_inset -<cutv>] Only report interaction EVDW (or delta EVDW) if absolute value is - greater than <vcut> (default 1.0 kcal/mol). +<cutv>] Only report interaction EVDW (or delta EVDW) if absolute value is greater than <vcut> (default 1.0 kcal/mol). \end_layout \begin_layout Description @@ -37637,8 +40540,7 @@ mol2 \begin_inset space ~ \end_inset -prefix>] Write out mol2 containing only atom pairs which satisfy <ecut> - and <vcut>. +prefix>] Write out mol2 containing only atom pairs which satisfy <ecut> and <vcut>. \end_layout \begin_layout Description @@ -37662,8 +40564,7 @@ map>] Write out interaction EVDW (or delta EVDW) matrix to file <vdw map>. \begin_inset space ~ \end_inset -map>] Write out interaction EELEC (or delta EELEC) matrix to file <elec - map>. +map>] Write out interaction EELEC (or delta EELEC) matrix to file <elec map>. \end_layout \begin_layout Description @@ -37675,8 +40576,7 @@ map>] Write out interaction EELEC (or delta EELEC) matrix to file <elec \begin_inset space ~ \end_inset -file>] Print average interaction EVDW|EELEC (or average delta EVDW|EELC) - to <avg file>. +file>] Print average interaction EVDW|EELEC (or average delta EVDW|EELC) to <avg file>. \end_layout \begin_layout Description @@ -37725,22 +40625,26 @@ Data Sets Created: \end_deeper \begin_layout Standard -This action has two related functions: 1) Calculate pairwise (i.e. +This action has two related functions: + 1) Calculate pairwise (i.e. non-bonded) energy (in kcal/mol) for atoms in \series bold <mask> \series default -, or 2) Compare pairwise energy of frames to a reference frame. +, + or 2) Compare pairwise energy of frames to a reference frame. This calculation does use an exclusion list but is not periodic. \end_layout \begin_layout Standard -When comparing to a reference frame, the +When comparing to a reference frame, + the \series bold eout \series default file will contain the differences for each individual interaction (i.e. - Eref - Eframe), otherwise the + Eref - Eframe), + otherwise the \series bold eout \series default @@ -37753,21 +40657,20 @@ cuteelc \series bold cutevdw \series default - keywords can be used to restrict printing of individual interactions to - those for which the absolute value is above a cutoff. - The VMAP and EMAP matrix elements will contain these values as well (difference -s for reference, absolute value otherwise) averaged over all frames. + keywords can be used to restrict printing of individual interactions to those for which the absolute value is above a cutoff. + The VMAP and EMAP matrix elements will contain these values as well (differences for reference, + absolute value otherwise) averaged over all frames. The \series bold avgout \series default - file will contain only these values averaged over all frames that satisfy - the cutoffs. + file will contain only these values averaged over all frames that satisfy the cutoffs. The \series bold printmode \series default - keyword controls when the average energies are written: + keyword controls when the average energies are written: + \series bold only \series default @@ -37776,13 +40679,12 @@ only \series bold or \series default - means that both energy components will be printed if either satistfy a - cutoff, and + means that both energy components will be printed if either satistfy a cutoff, + and \series bold and \series default - means that both energy components will be written only if both satisfy - the cutoffs. + means that both energy components will be written only if both satisfy the cutoffs. \end_layout \begin_layout Standard @@ -37790,17 +40692,15 @@ The \series bold cutout \series default - keyword can be used to write out MOL2 files each frame named '<cut mol2 - prefix>.evdw.mol2.X' and '<cut mol2 prefix>.eelec.mol2.X' (where X is the frame - number) containing only atoms with energies that satisfy the cutoffs. - Similarly, the + keyword can be used to write out MOL2 files each frame named '<cut mol2 prefix>.evdw.mol2.X' and '<cut mol2 prefix>.eelec.mol2.X' (where X is the frame number) containing only atoms with energies that satisfy the cutoffs. + Similarly, + the \series bold pdbout \series default keyword can be used to write out a PDB file (with 1 MODEL per frame). - The occupancy and B-factor columns will contain the total van der Waals - and electrostatic energy for each atom if cutoffs are satisfied, or 0.0 - otherwise. + The occupancy and B-factor columns will contain the total van der Waals and electrostatic energy for each atom if cutoffs are satisfied, + or 0.0 otherwise. \end_layout \begin_layout Subsection @@ -37849,7 +40749,8 @@ name \end_layout \begin_layout Description -<dsname>[evec] Eigenvectors (3x3 matrix, row-major). +<dsname>[evec] Eigenvectors (3x3 matrix, + row-major). \end_layout \begin_layout Description @@ -37858,17 +40759,18 @@ name \end_deeper \begin_layout Standard -Determine principal axes of each frame determined by diagonalization of - the inertial matrix from the coordinates of the specified atoms. +Determine principal axes of each frame determined by diagonalization of the inertial matrix from the coordinates of the specified atoms. At least one of \series bold dorotation \series default -, +, + \series bold out \series default -, or +, + or \series bold name \series default @@ -37889,28 +40791,32 @@ vector principal \series default '). - If out is specified the eigenvectors and eigenvalues will be written for - each frame N with format: + If out is specified the eigenvectors and eigenvalues will be written for each frame N with format: \end_layout \begin_layout LyX-Code -<N> EIGENVALUES: <EX> <EY> <EZ> +<N> EIGENVALUES: + <EX> <EY> <EZ> \end_layout \begin_layout LyX-Code -<N> EIGENVECTOR 0: <Xx> <Xy> <Xz> +<N> EIGENVECTOR 0: + <Xx> <Xy> <Xz> \end_layout \begin_layout LyX-Code -<N> EIGENVECTOR 1: <Yx> <Yy> <Yz> +<N> EIGENVECTOR 1: + <Yx> <Yy> <Yz> \end_layout \begin_layout LyX-Code -<N> EIGENVECTOR 2: <Zx> <Zy> <Zz> +<N> EIGENVECTOR 2: + <Zx> <Zy> <Zz> \end_layout \begin_layout Standard -NOTE: The eigenvector 3x3 matrix data set could subsequently be used e.g. +NOTE: + The eigenvector 3x3 matrix data set could subsequently be used e.g. with the \series bold \emph on @@ -37921,7 +40827,8 @@ rotate \end_layout \begin_layout Standard -Example: Align system (residues 1-76) along principle axes: +Example: + Align system (residues 1-76) along principle axes: \end_layout \begin_layout LyX-Code @@ -37948,8 +40855,7 @@ name "subsec:cpptraj-projection" \end_layout \begin_layout LyX-Code -projection [<name>] evecs <dataset name> [out <outfile>] [beg <beg>] [end - <end>] +projection [<name>] evecs <dataset name> [out <outfile>] [beg <beg>] [end <end>] \end_layout \begin_layout LyX-Code @@ -38006,8 +40912,8 @@ name> Data set containing eigenvectors (modes). \end_layout \begin_layout Description -[<mask>] (Not dihedral covariance) Mask of atoms to use in projection; MUST - CORRESPOND TO HOW EIGENVECTORS WERE GENERATED. +[<mask>] (Not dihedral covariance) Mask of atoms to use in projection; + MUST CORRESPOND TO HOW EIGENVECTORS WERE GENERATED. \end_layout \begin_layout Description @@ -38032,10 +40938,11 @@ arg>] (Dihedral covariance only) Dihedral data sets to use in projection; \begin_inset space ~ \end_inset -arg>] (Data covariance only, e.g. +arg>] (Data covariance only, + e.g. from TICA). - 1D data sets to use in projection; MUST CORRESPOND TO HOW EIGENVECTORS - WERE GENERATED. + 1D data sets to use in projection; + MUST CORRESPOND TO HOW EIGENVECTORS WERE GENERATED. \end_layout \begin_layout Description @@ -38092,8 +40999,7 @@ DataSet indices correspond to mode #. \end_deeper \begin_layout Standard -Projects snapshots onto eigenvectors obtained by diagonalizing covariance - or mass-weighted covariance matrices. +Projects snapshots onto eigenvectors obtained by diagonalizing covariance or mass-weighted covariance matrices. Eigenvectors are taken from previously generated (e.g. with \series bold @@ -38119,8 +41025,8 @@ readdata \series bold <mask> \series default - agree with the ones used to calculate the modes (i.e., if mask = '@CA' was - used in the + agree with the ones used to calculate the modes (i.e., + if mask = '@CA' was used in the \begin_inset Quotes eld \end_inset @@ -38136,11 +41042,13 @@ matrix \begin_inset Quotes erd \end_inset - command, mask = '@CA' needs to be set here as well). + command, + mask = '@CA' needs to be set here as well). See \begin_inset CommandInset ref LatexCommand vref reference "sec:cpptraj-Matrix-Vector-Analysis-Examples" +nolink "false" \end_inset @@ -38151,19 +41059,22 @@ projection \series default \emph default command. - If only 1D data sets need to be projected, see the + If only 1D data sets need to be projected, + see the \series bold \emph on projectdata \series default \emph default - analysis command, + analysis command, + \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-projectdata" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -38177,6 +41088,8 @@ pucker \begin_layout LyX-Code pucker \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -38206,8 +41119,7 @@ pucker \end_layout \begin_layout Description -<maskX> Five (optionally six) atom masks selecting atom(s) to calculate - pucker for. +<maskX> Five (optionally six) atom masks selecting atom(s) to calculate pucker for. \end_layout \begin_layout Description @@ -38277,8 +41189,11 @@ theta \end_deeper \begin_layout Standard -Calculate the pucker (in degrees) for atoms in <mask1>, <mask2>, <mask3>, - <mask4>, <mask5> using the method of Altona & Sundarlingam +Calculate the pucker (in degrees) for atoms in <mask1>, + <mask2>, + <mask3>, + <mask4>, + <mask5> using the method of Altona & Sundarlingam \begin_inset CommandInset citation LatexCommand citep key "Altona1972,Harvey1986" @@ -38286,11 +41201,13 @@ literal "true" \end_inset - (default for 5 masks, or if + (default for 5 masks, + or if \series bold altona \series default - specified), or the method of Cremer & Pople + specified), + or the method of Cremer & Pople \begin_inset CommandInset citation LatexCommand citep key "Cremer1975" @@ -38298,7 +41215,8 @@ literal "true" \end_inset - (default for 6 masks, or if + (default for 6 masks, + or if \series bold cremer \series default @@ -38311,8 +41229,8 @@ amplitude \series bold theta \series default - keywords are given, amplitudes/thetas (also in degrees) will be calculated - in addition to pucker. + keywords are given, + amplitudes/thetas (also in degrees) will be calculated in addition to pucker. The results from \series bold \shape italic @@ -38329,20 +41247,21 @@ statistics \end_layout \begin_layout Standard -By default, pucker values are wrapped to range from -180 to 180 degrees. +By default, + pucker values are wrapped to range from -180 to 180 degrees. If the \series bold range360 \series default keyword is specified values will be wrapped to range from 0 to 360 degrees. - Note that the Cremer & Pople convention is offset from Altona & Sundarlingam - convention (with nucleic acids) by +90.0 degrees; the + Note that the Cremer & Pople convention is offset from Altona & Sundarlingam convention (with nucleic acids) by +90.0 degrees; + the \series bold offset \series default - keyword will add an offset to the final value and so can be used to convert - between the two. - For example, to convert from Cremer to Altona specify + keyword will add an offset to the final value and so can be used to convert between the two. + For example, + to convert from Cremer to Altona specify \begin_inset Quotes eld \end_inset @@ -38358,11 +41277,13 @@ offset \end_layout \begin_layout Standard -To calculate nucleic acid pucker specify C1' first, followed by C2', C3', +To calculate nucleic acid pucker specify C1' first, + followed by C2', + C3', C4' and O4'. - For example, to calculate the sugar pucker for nucleic acid residues 1 - and 2 using the method of Altona & Sundarlingam, with final pseudorotation - values ranging from 0 to 360: + For example, + to calculate the sugar pucker for nucleic acid residues 1 and 2 using the method of Altona & Sundarlingam, + with final pseudorotation values ranging from 0 to 360: \end_layout \begin_layout LyX-Code @@ -38380,6 +41301,8 @@ radgyr | rog \begin_layout LyX-Code radgyr \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -38401,7 +41324,8 @@ radgyr \end_layout \begin_layout Description -[<mask>] Atoms to calculate radius of gyration for; default all atoms. +[<mask>] Atoms to calculate radius of gyration for; + default all atoms. \end_layout \begin_layout Description @@ -38421,8 +41345,8 @@ radgyr \end_layout \begin_layout Description -[tensor] Calculate radius of gyration tensor, output format 'XX YY ZZ XY - XZ YZ'. +[tensor] Calculate radius of gyration tensor, + output format 'XX YY ZZ XY XZ YZ'. \end_layout \begin_layout Standard @@ -38438,15 +41362,15 @@ Data Sets Created: \end_layout \begin_layout Description -<name>[Tensor] Radius of gyration tensor; format 'XX YY ZZ XY XZ YZ'. +<name>[Tensor] Radius of gyration tensor; + format 'XX YY ZZ XY XZ YZ'. \end_layout \end_deeper \begin_layout Standard Calculate the radius of gyration of specified atoms. - For example, to calculate only the mass-weighted radius of gyration (not - the maximum) of the non-hydrogen atoms of residues 4 to 10 and print the - results to + For example, + to calculate only the mass-weighted radius of gyration (not the maximum) of the non-hydrogen atoms of residues 4 to 10 and print the results to \begin_inset Quotes eld \end_inset @@ -38468,6 +41392,8 @@ radial | rdf \begin_layout LyX-Code radial \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -38484,8 +41410,7 @@ radial \end_layout \begin_layout LyX-Code - [density <density> | volume] [<dataset name>] [intrdf <file>] [rawrdf - <file>] + [density <density> | volume] [<dataset name>] [intrdf <file>] [rawrdf <file>] \end_layout \begin_layout LyX-Code @@ -38510,11 +41435,13 @@ radial \end_layout \begin_layout Description -<spacing> Bin spacing, required. +<spacing> Bin spacing, + required. \end_layout \begin_layout Description -<maximum> Max bin value, required. +<maximum> Max bin value, + required. \end_layout \begin_layout Description @@ -38522,7 +41449,8 @@ radial \begin_inset space ~ \end_inset -mask1> Atoms to calculate RDF for, required. +mask1> Atoms to calculate RDF for, + required. \end_layout \begin_layout Description @@ -38530,8 +41458,7 @@ mask1> Atoms to calculate RDF for, required. \begin_inset space ~ \end_inset -mask2>] (Optional) If specified calculate RDF of all atoms in <solvent mask1> - to each atom in <solute mask2>. +mask2>] (Optional) If specified calculate RDF of all atoms in <solvent mask1> to each atom in <solute mask2>. \end_layout \begin_layout Description @@ -38539,8 +41466,8 @@ mask2>] (Optional) If specified calculate RDF of all atoms in <solvent mask1> \end_layout \begin_layout Description -[mass] Use center of mass for centerX/byresX/bymolX keywords, otherwise - use geometric center. +[mass] Use center of mass for centerX/byresX/bymolX keywords, + otherwise use geometric center. \end_layout \begin_layout Description @@ -38548,8 +41475,7 @@ mask2>] (Optional) If specified calculate RDF of all atoms in <solvent mask1> \begin_inset space ~ \end_inset -<density>] Use density value of <density> for normalization (default 0.033456 - molecules +<density>] Use density value of <density> for normalization (default 0.033456 molecules \begin_inset space ~ \end_inset @@ -38561,8 +41487,7 @@ mask2>] (Optional) If specified calculate RDF of all atoms in <solvent mask1> \end_layout \begin_layout Description -[volume] Determine density for normalization from average volume of input - frames. +[volume] Determine density for normalization from average volume of input frames. \end_layout \begin_layout Description @@ -38574,9 +41499,7 @@ mask2>] (Optional) If specified calculate RDF of all atoms in <solvent mask1> \begin_inset space ~ \end_inset -<file>] Calculate integral of RDF bin values (averaged over # of frames - but otherwise not normalized) and write to <file> (can be same as <output_filen -ame>). +<file>] Calculate integral of RDF bin values (averaged over # of frames but otherwise not normalized) and write to <file> (can be same as <output_filename>). \end_layout \begin_layout Description @@ -38588,13 +41511,11 @@ ame>). \end_layout \begin_layout Description -[center1] Calculate RDF from center of atoms in <solvent mask1> to all atoms - in <solute mask2>. +[center1] Calculate RDF from center of atoms in <solvent mask1> to all atoms in <solute mask2>. \end_layout \begin_layout Description -[center2] Calculate RDF from center of atoms in <solute mask2> to all atoms - in <solvent mask1>. +[center2] Calculate RDF from center of atoms in <solute mask2> to all atoms in <solvent mask1>. \end_layout \begin_layout Description @@ -38606,8 +41527,7 @@ ame>). \begin_inset space ~ \end_inset -<x>,<y>,<z>] Calculate RDF from atoms selected by <solvent mask1> to point - specified by <x> <y> and <z> (in Ang.). +<x>,<y>,<z>] Calculate RDF from atoms selected by <solvent mask1> to point specified by <x> <y> and <z> (in Ang.). \end_layout \begin_layout Description @@ -38652,18 +41572,19 @@ rawrdf \end_deeper \begin_layout Standard -Calculate the radial distribution function (RDF, aka pair correlation function) - of atoms in +Calculate the radial distribution function (RDF, + aka pair correlation function) of atoms in \series bold <solvent mask1> \series default - (note that this mask does not need to be solvent, but this nomenclature - is used for clarity). + (note that this mask does not need to be solvent, + but this nomenclature is used for clarity). If an optional second mask ( \series bold <solute mask2> \series default -) is given, calculate the RDF of ALL atoms in +) is given, + calculate the RDF of ALL atoms in \series bold <solvent mask1> \series default @@ -38672,7 +41593,8 @@ Calculate the radial distribution function (RDF, aka pair correlation function) <solute mask2> \series default . - If desired, the geometric center of atoms in + If desired, + the geometric center of atoms in \series bold <solvent mask1> \series default @@ -38688,8 +41610,8 @@ center1 \series bold center2 \series default - keywords respectively, or alternatively intra-molecular distances can be - ignored by specifying the + keywords respectively, + or alternatively intra-molecular distances can be ignored by specifying the \series bold nointramol \series default @@ -38702,8 +41624,8 @@ byresX \series bold bymolX \series default - are specified, distances will be between the centers of residues/molecules - selected by + are specified, + distances will be between the centers of residues/molecules selected by \series bold <solvent mask1> \series default @@ -38728,13 +41650,13 @@ byresX \series bold bymolX \series default -, otherwise use geometric center. +, + otherwise use geometric center. \end_layout \begin_layout Standard -The RDF is calculated from the histogram of the number of particles found - as a function of distance R, normalized by the expected number of particles - at that distance. +The RDF is calculated from the histogram of the number of particles found as a function of distance R, + normalized by the expected number of particles at that distance. The normalization is calculated from: \begin_inset Separator latexpar \end_inset @@ -38761,7 +41683,8 @@ where dR is equal to the bin spacing. \begin_inset Formula $^{-\text{3}}$ \end_inset -, which corresponds to a density of water approximately equal to 1.0 g +, + which corresponds to a density of water approximately equal to 1.0 g \begin_inset space ~ \end_inset @@ -38778,37 +41701,37 @@ mL \begin_inset Formula $^{-\text{1}}$ \end_inset -, multiply the density by +, + multiply the density by \begin_inset Formula $\frac{0.6022}{M_{r}}$ \end_inset -, where +, + where \begin_inset Formula $M_{r}$ \end_inset is the mass of the molecule in atomic mass units. - Alternatively, if the + Alternatively, + if the \series bold volume \series default - keyword is specified the density is determined from the average volume - of the system over all Frames. + keyword is specified the density is determined from the average volume of the system over all Frames. \end_layout \begin_layout Standard -Note that correct normalization of the RDF depends on the number of atoms - in each mask; if multiple topology files are being processed that result - in changes in the number of atoms in each mask, the normalization will - be off. +Note that correct normalization of the RDF depends on the number of atoms in each mask; + if multiple topology files are being processed that result in changes in the number of atoms in each mask, + the normalization will be off. \end_layout \begin_layout Standard The basic (i.e. - no center1/center2/byres1/byres2/bymol1/bymol2) RDF calculations are now - CUDA parallelized. - However, the calculation is done in single-precision on GPUs so the resulting - histograms may differ slightly from the CPU (on the order of 0.0002 - 0.0004). + no center1/center2/byres1/byres2/bymol1/bymol2) RDF calculations are now CUDA parallelized. + However, + the calculation is done in single-precision on GPUs so the resulting histograms may differ slightly from the CPU (on the order of 0.0002 - 0.0004). \end_layout \begin_layout Subsection @@ -38816,8 +41739,7 @@ randomizeions \end_layout \begin_layout LyX-Code -randomizeions <mask> [around <ardoundmask> by <distance>] [{allowoverlap|overlap - <value>}] +randomizeions <mask> [around <ardoundmask> by <distance>] [{allowoverlap|overlap <value>}] \end_layout \begin_layout LyX-Code @@ -38872,14 +41794,13 @@ overlap \end_layout \begin_layout Description -[originalalgorithm] Use the original, slower algorithm (from versions before - 5.1.0). +[originalalgorithm] Use the original, + slower algorithm (from versions before 5.1.0). \end_layout \end_deeper \begin_layout Standard -This can be used to randomly swap the positions of solvent and single atom - ions. +This can be used to randomly swap the positions of solvent and single atom ions. The \begin_inset Quotes eld \end_inset @@ -38892,7 +41813,8 @@ overlap \begin_inset Quotes erd \end_inset - specifies the minimum distance between ions, and the + specifies the minimum distance between ions, + and the \begin_inset Quotes eld \end_inset @@ -38904,8 +41826,7 @@ around \begin_inset Quotes erd \end_inset - keyword can be used to specify a solute (or set of atoms) around which - the ions can get no closer than the distance specified. + keyword can be used to specify a solute (or set of atoms) around which the ions can get no closer than the distance specified. The optional keywords \begin_inset Quotes eld \end_inset @@ -38983,8 +41904,9 @@ data \begin_inset space ~ \end_inset -<setname> Data set to use for remapping; should be a 1D integer data set - with X= reference (old) atom index, Y = target (new) atom index. +<setname> Data set to use for remapping; + should be a 1D integer data set with X= reference (old) atom index, + Y = target (new) atom index. \end_layout \begin_layout Description @@ -39036,7 +41958,7 @@ replicatecell \end_layout \begin_layout LyX-Code -replicatecell [out <traj filename>] [name <dsname>] +replicatecell [out <traj filename>] [name <dsname>] [verbose <#>] \end_layout \begin_layout LyX-Code @@ -39076,6 +41998,14 @@ name <dsname> If specified save replicated cell to COORDS data set. \end_layout +\begin_layout Description +[verbose +\begin_inset space ~ +\end_inset + +<#>] Verbosity during parameter assignment. +\end_layout + \begin_layout Description all Replicate cell once in all possible directions. \end_layout @@ -39086,8 +42016,9 @@ dir \end_inset <XYZ> Repicate cell once in specified directions. - <XYZ> should consist of 3 numbers with no spaces in between them and are - restricted to values of -1, 1, and 0. + <XYZ> should consist of 3 numbers with no spaces in between them and are restricted to values of -1, + 1, + and 0. May be specified more than once. \end_layout @@ -39125,10 +42056,8 @@ parmopts \end_deeper \begin_layout Standard -Create a trajectory where the unit cell is replicated in 1 or more directions - (up to 27). - The resulting coordinates and topology can be written to a trajectory/topology - file. +Create a trajectory where the unit cell is replicated in 1 or more directions (up to 27). + The resulting coordinates and topology can be written to a trajectory/topology file. They can also be saved as a COORDS data set for subsequent processing. Currently replication is only allowed 1 axis length in either direction. The @@ -39140,17 +42069,20 @@ all \series bold dir \series default - keyword can be used to restrict replication to specific directions, e.g. + keyword can be used to restrict replication to specific directions, + e.g. ' \family typewriter dir 10-1 \family default -' would replicate the cell once in the +X, -Z directions. +' would replicate the cell once in the +X, + -Z directions. \end_layout \begin_layout Standard -For example, to replicate a cell in all directions, writing out to NetCDF - trajectory cell.nc: +For example, + to replicate a cell in all directions, + writing out to NetCDF trajectory cell.nc: \end_layout \begin_layout LyX-Code @@ -39179,6 +42111,8 @@ name "subsec:cpptraj-rmsd" \begin_layout LyX-Code rmsd \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -39232,12 +42166,15 @@ rmsd \end_layout \begin_layout Description -[<mask>] Mask of atoms to calculate RMSD for; if not specified, calculate - for all atoms. +[<mask>] Mask of atoms to calculate RMSD for; + if not specified, + calculate for all atoms. \end_layout \begin_layout Description -[<refmask>] Reference mask; if not specified, use +[<refmask>] Reference mask; + if not specified, + use \series bold <mask> \series default @@ -39261,16 +42198,17 @@ rmsd \end_layout \begin_layout Description -[norotate] If calculating best-fit RMSD, translate but do not rotate coordinates. +[norotate] If calculating best-fit RMSD, + translate but do not rotate coordinates. \end_layout \begin_layout Description -[nomod] If calculating best-fit RMSD, do not modify coordinates. +[nomod] If calculating best-fit RMSD, + do not modify coordinates. \end_layout \begin_layout Description -[savematrices] If specified save rotation matrices to data set with aspect - [RM]. +[savematrices] If specified save rotation matrices to data set with aspect [RM]. \end_layout \begin_deeper @@ -39288,7 +42226,8 @@ matricesout \begin_inset space ~ \end_inset -{combined|separate}] If specified save translation vectors: +{combined|separate}] If specified save translation vectors: + \series bold combined \series default @@ -39297,8 +42236,9 @@ combined \series bold separate \series default - means save target-to-origin as Vx, Vy, Vz and save origin-to-reference - as Ox Oy Oz in the output vector data set. + means save target-to-origin as Vx, + Vy, + Vz and save origin-to-reference as Ox Oy Oz in the output vector data set. \end_layout \begin_deeper @@ -39352,8 +42292,7 @@ refindex <#> \series default - Use previously read in reference structure specified by <#> (based on order - read in). + Use previously read in reference structure specified by <#> (based on order read in). \end_layout \begin_layout Description @@ -39369,13 +42308,12 @@ reftraj \begin_inset space ~ \end_inset -<name> Use frames from COORDS set <name> or read in from trajectory file - <name> as references. - Each frame from <name> is used in turn, so that frame 1 is compared to - frame 1 from <name>, frame 2 is compared to frame 2 from <name> and so - on. - If <trajname> runs out of frames before processing is complete, the last - frame of <trajname> continues to be used as the reference. +<name> Use frames from COORDS set <name> or read in from trajectory file <name> as references. + Each frame from <name> is used in turn, + so that frame 1 is compared to frame 1 from <name>, + frame 2 is compared to frame 2 from <name> and so on. + If <trajname> runs out of frames before processing is complete, + the last frame of <trajname> continues to be used as the reference. \begin_inset Separator latexpar \end_inset @@ -39404,8 +42342,9 @@ parmindex \series bold reftraj \series default - specifies a trajectory file, associate it with specified topology; if not - specified the first topology is used. + specifies a trajectory file, + associate it with specified topology; + if not specified the first topology is used. \end_layout \end_deeper @@ -39442,8 +42381,7 @@ range \begin_inset space ~ \end_inset -range> Calculate per-residue RMSDs for residues in <res range> (default - all solute residues). +range> Calculate per-residue RMSDs for residues in <res range> (default all solute residues). \end_layout \begin_layout Description @@ -39455,8 +42393,7 @@ refrange \begin_inset space ~ \end_inset -range> Calculate per-residue RMSDs to reference residues in <ref range> - (use <res range> if not specified). +range> Calculate per-residue RMSDs to reference residues in <ref range> (use <res range> if not specified). \end_layout \begin_layout Description @@ -39468,13 +42405,12 @@ perresmask \begin_inset space ~ \end_inset -mask> By default residues are selected using the mask ':X' where X is residue - number; this appends <additional mask> to the mask expression. +mask> By default residues are selected using the mask ':X' where X is residue number; + this appends <additional mask> to the mask expression. \end_layout \begin_layout Description -perrescenter Translate residues to a common center of mass prior to calculating - RMSD. +perrescenter Translate residues to a common center of mass prior to calculating RMSD. \end_layout \begin_layout Description @@ -39502,7 +42438,8 @@ Data Sets Created: \series bold perres \series default - only) Per-residue RMSDs; index is residue number. + only) Per-residue RMSDs; + index is residue number. \end_layout \begin_layout Description @@ -39537,21 +42474,22 @@ run \end_layout \begin_layout Standard -Calculate the coordinate RMSD of input frames to a reference frame (or reference - trajectory). - Both <mask> and <refmask> must specify the same number of atoms, otherwise - an error will occur. +Calculate the coordinate RMSD of input frames to a reference frame (or reference trajectory). + Both <mask> and <refmask> must specify the same number of atoms, + otherwise an error will occur. \end_layout \begin_layout Standard -For example, say you have a trajectory and you want to calculate RMSD to - two separate reference structures. - To calculate the best-fit RMSD of the C, CA, and N atoms of residues 1 - to 20 in each frame to the C, CA, and N atoms of residues 3 to 23 in StructX.crd -, and then calculate the no-fit RMSD of residue 7 to residue 7 in another - structure named Struct-begin.rst7, writing both results to Grace-format - file +For example, + say you have a trajectory and you want to calculate RMSD to two separate reference structures. + To calculate the best-fit RMSD of the C, + CA, + and N atoms of residues 1 to 20 in each frame to the C, + CA, + and N atoms of residues 3 to 23 in StructX.crd, + and then calculate the no-fit RMSD of residue 7 to residue 7 in another structure named Struct-begin.rst7, + writing both results to Grace-format file \begin_inset Quotes eld \end_inset @@ -39589,27 +42527,28 @@ If the perres \series default \color inherit - keyword is specified, after the initial RMSD calculation the no-fit RMSD - of specified residues is also calculated. + keyword is specified, + after the initial RMSD calculation the no-fit RMSD of specified residues is also calculated. So for example: \end_layout \begin_layout LyX-Code -rmsd :10-260 reference perres perresout PRMS.dat range 190-211 perresmask - &!(@H=) +rmsd :10-260 reference perres perresout PRMS.dat range 190-211 perresmask &!(@H=) \end_layout \begin_layout Standard \family roman -will first perform a best-fit RMSD calculation to the first specified reference - structure using residues 10 to 260, then calculate the no-fit RMSD of residues - 190 to 211 (excluding any hydrogen atoms), writing the results to PRMS.dat. - Two additional recommendations for the 'perres' option: 1) try not including - backbone atoms by using the 'perresmask' keyword, e.g. - "perresmask &!@H,N,CA,HA,C,O", and 2) try using the 'perrescenter' keyword, - which centers each residue prior to the 'nofit' calculation; this is useful - for isolating changes in residue conformation. +will first perform a best-fit RMSD calculation to the first specified reference structure using residues 10 to 260, + then calculate the no-fit RMSD of residues 190 to 211 (excluding any hydrogen atoms), + writing the results to PRMS.dat. + Two additional recommendations for the 'perres' option: + 1) try not including backbone atoms by using the 'perresmask' keyword, + e.g. + "perresmask &!@H,N,CA,HA,C,O", + and 2) try using the 'perrescenter' keyword, + which centers each residue prior to the 'nofit' calculation; + this is useful for isolating changes in residue conformation. \end_layout \begin_layout Subsection @@ -39623,11 +42562,13 @@ Although the 'rms2d' \series default \emph default - command can still be specified as an action, it is now considered an analysis. + command can still be specified as an action, + it is now considered an analysis. See \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-rms2d" +nolink "false" \end_inset @@ -39645,11 +42586,13 @@ Although the 'rmsavgcorr' \series default \emph default - command can still be specified as an action, it is now considered an analysis. + command can still be specified as an action, + it is now considered an analysis. See \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-rmsavgcorr" +nolink "false" \end_inset @@ -39665,6 +42608,7 @@ See \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_atomicfluct" +nolink "false" \end_inset @@ -39759,8 +42703,8 @@ usedata \begin_inset space ~ \end_inset -name> If specified, use 3x3 rotation matrices in specified data set to rotate - coordinates. +name> If specified, + use 3x3 rotation matrices in specified data set to rotate coordinates. \end_layout \begin_deeper @@ -39778,9 +42722,8 @@ calcfrom \begin_inset space ~ \end_inset -name> Instead of rotating coordinates, calculate rotations around the X - Y and Z axes (as well as total rotation) in degrees from existing rotation - matrices specified by <set name>. +name> Instead of rotating coordinates, + calculate rotations around the X Y and Z axes (as well as total rotation) in degrees from existing rotation matrices specified by <set name>. \end_layout \begin_deeper @@ -39863,13 +42806,16 @@ name>[T] (caclfrom only) Total rotation in degrees. \end_deeper \begin_layout Standard -Rotate specified atoms around the X, Y, and/or Z axes by the specified amounts, - around a user-defined axis (specified by <mask0> and <mask1>), or use a - previously read in or generated data set of 3x3 matrices to perform rotations. +Rotate specified atoms around the X, + Y, + and/or Z axes by the specified amounts, + around a user-defined axis (specified by <mask0> and <mask1>), + or use a previously read in or generated data set of 3x3 matrices to perform rotations. \end_layout \begin_layout Standard -For example, to rotate the entire system 90 degrees around the X axis: +For example, + to rotate the entire system 90 degrees around the X axis: \end_layout \begin_layout LyX-Code @@ -39878,13 +42824,20 @@ rotate x 90 \begin_layout Standard To rotate residue 270 90 degrees around the axis defined between atoms C1, - C2, C3, C4, C5, and C6 in residue 270 and atoms C7, C8, C9, C10, C11, and - C12 in residue 270: + C2, + C3, + C4, + C5, + and C6 in residue 270 and atoms C7, + C8, + C9, + C10, + C11, + and C12 in residue 270: \end_layout \begin_layout LyX-Code -rotate :270 axis0 :270@C1,C2,C3,C4,C5,C6 axis1 :270@C7,C8,C9,C10,C11,C12 - 90.0 +rotate :270 axis0 :270@C1,C2,C3,C4,C5,C6 axis1 :270@C7,C8,C9,C10,C11,C12 90.0 \end_layout \begin_layout Standard @@ -39904,8 +42857,7 @@ rotate usedata RM \end_layout \begin_layout Standard -To calculate rotations from rotation matrices generated by a previous RMSD - calculation: +To calculate rotations from rotation matrices generated by a previous RMSD calculation: \end_layout \begin_layout LyX-Code @@ -39943,10 +42895,12 @@ The \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-rotdif" +nolink "false" \end_inset -), and requires that rotation matrices be generated via an +), + and requires that rotation matrices be generated via an \series bold \emph on rmsd @@ -39991,6 +42945,8 @@ runavg | runningaverage \begin_layout LyX-Code runavg \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -40017,15 +42973,13 @@ runningaverage \end_layout \begin_layout Standard -Replaces the current frame with a running average over a number of frames - specified by +Replaces the current frame with a running average over a number of frames specified by \series bold window \series default <window_size> (5 if not specified). - This means that in order to build up the correct number of frames to calculate - the average, the first <window_size> minus one frames will not be processed - by subsequent actions. + This means that in order to build up the correct number of frames to calculate the average, + the first <window_size> minus one frames will not be processed by subsequent actions. So for example given the input: \end_layout @@ -40038,9 +42992,13 @@ rms first out rmsd.dat \end_layout \begin_layout Standard -the rms command will not take effect until frame 3 since that is the first - time 3 frames are available for averaging (1, 2, and 3). - The next frame processed would be an average of frames 2, 3, and 4, etc. +the rms command will not take effect until frame 3 since that is the first time 3 frames are available for averaging (1, + 2, + and 3). + The next frame processed would be an average of frames 2, + 3, + and 4, + etc. \end_layout \begin_layout Subsection @@ -40069,6 +43027,8 @@ name "subsec:cpptraj-secstruct" \begin_layout LyX-Code secstruct \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -40122,8 +43082,8 @@ secstruct \begin_inset space ~ \end_inset -<sumfilename>] Write average secondary structure values for each residue - to <sumfilename>; if not specified <filename>.sum is used. +<sumfilename>] Write average secondary structure values for each residue to <sumfilename>; + if not specified <filename>.sum is used. \end_layout \begin_layout Description @@ -40131,18 +43091,16 @@ secstruct \begin_inset space ~ \end_inset -<filename>] Write overall secondary structure assignment (based on dominant - secondary structure type for each residue) to file. +<filename>] Write overall secondary structure assignment (based on dominant secondary structure type for each residue) to file. \end_layout \begin_layout Description -[ptrajformat] Write secondary structure as a string of characters for each - frame, similar to ptraj output. +[ptrajformat] Write secondary structure as a string of characters for each frame, + similar to ptraj output. \end_layout \begin_layout Description -[betadetail] Record anti-parallel beta and parallel beta in place of extended - and bridge secondary structure. +[betadetail] Record anti-parallel beta and parallel beta in place of extended and bridge secondary structure. If a residue could be both only anti-parallel is reported. \end_layout @@ -40215,8 +43173,8 @@ name>] Backbone carbonyl oxygen atom name (default 'O'). \begin_inset space ~ \end_inset -name>] Cysteine sulfur atom name, used to ignore disulfide connectivity - (default 'SG'). +name>] Cysteine sulfur atom name, + used to ignore disulfide connectivity (default 'SG'). \end_layout \begin_layout Standard @@ -40224,18 +43182,20 @@ Data Sets Created: \end_layout \begin_layout Description -<name>[res] Residue secondary structure per frame; index corresponds to - residue number. +<name>[res] Residue secondary structure per frame; + index corresponds to residue number. If \series bold ptrajformat \series default - specified these will be characters, otherwise integers (see table below). + specified these will be characters, + otherwise integers (see table below). \end_layout \begin_layout Description -<name>[avgss] Average of each type of secondary structure; index corresponds - to secondary structure type (see table below; no index for +<name>[avgss] Average of each type of secondary structure; + index corresponds to secondary structure type (see table below; + no index for \begin_inset Quotes eld \end_inset @@ -40251,13 +43211,11 @@ None \end_layout \begin_layout Description -<name>[Para] Total fraction of residues with parallel beta structure vs - time. +<name>[Para] Total fraction of residues with parallel beta structure vs time. \end_layout \begin_layout Description -<name>[Anti] Total fraction of residues with anti-parallel beta structure - vs time. +<name>[Anti] Total fraction of residues with anti-parallel beta structure vs time. \end_layout \begin_layout Description @@ -40284,12 +43242,11 @@ None \begin_layout Standard \series bold -As of version 4.18.0, this command now produces output that better conforms - with the original definitions in Kabsch and Sander 1983; namely that Extended - beta (i.e. +As of version 4.18.0, + this command now produces output that better conforms with the original definitions in Kabsch and Sander 1983; + namely that Extended beta (i.e. 2 or more consecutive beta bridges of the same type) and beta Bridge (i.e. - an isolated beta bridge) are now reported instead of anti-parallel and - parallel beta. + an isolated beta bridge) are now reported instead of anti-parallel and parallel beta. To restore the original behavior the 'betadetail' keyword must be specified. \end_layout @@ -40308,8 +43265,7 @@ Calculate secondary structural propensities for residues in \series bold <mask> \series default - (or all solute residues if no mask given) using the DSSP method of Kabsch - and Sander + (or all solute residues if no mask given) using the DSSP method of Kabsch and Sander \begin_inset CommandInset citation LatexCommand citep key "Kabsch83" @@ -40317,8 +43273,8 @@ literal "true" \end_inset -, which assigns secondary structure types for residues based on backbone - amide (N-H) and carbonyl (C=O) atom positions. +, + which assigns secondary structure types for residues based on backbone amide (N-H) and carbonyl (C=O) atom positions. By default \shape italic cpptraj @@ -40331,7 +43287,8 @@ N \begin_inset Quotes erd \end_inset -, +, + \begin_inset Quotes eld \end_inset @@ -40339,7 +43296,8 @@ H \begin_inset Quotes erd \end_inset -, +, + \begin_inset Quotes eld \end_inset @@ -40347,7 +43305,8 @@ C \begin_inset Quotes erd \end_inset -, and +, + and \begin_inset Quotes eld \end_inset @@ -40371,14 +43330,15 @@ nameX \series default keywords (e.g. 'nameH HN'). - Note that it is expected that some residues will not have all of these - atoms (such as proline); in this case + Note that it is expected that some residues will not have all of these atoms (such as proline); + in this case \shape italic cpptraj \shape default will print an informational message but the calculation will proceed normally. If a residue has no atoms selected it will be skipped. - When determining residue connecivity, disulfide bonds will be ignored; + When determining residue connecivity, + disulfide bonds will be ignored; \emph on cpptraj @@ -40412,13 +43372,13 @@ out \end_layout \begin_layout Standard -where <#Frame> is the frame number and <ResX SS> is an integer representing - the calculated secondary structure type for residue X. +where <#Frame> is the frame number and <ResX SS> is an integer representing the calculated secondary structure type for residue X. If the keyword \series bold ptrajformat \series default - is specified, the output format will instead be: + is specified, + the output format will instead be: \end_layout \begin_layout LyX-Code @@ -40426,17 +43386,13 @@ ptrajformat \end_layout \begin_layout Standard -where STRING is a string of characters (one for each residue) where each - character represents a different structural type (this format is similar - to what +where STRING is a string of characters (one for each residue) where each character represents a different structural type (this format is similar to what \shape italic ptraj \shape default had outputed and is retained for backwards compatibility). - The various secondary structure types and their corresponding integer/character - are listed below. - If 'betadetail' is specified what is reported and the characters used change - slightly. + The various secondary structure types and their corresponding integer/character are listed below. + If 'betadetail' is specified what is reported and the characters used change slightly. \begin_inset Separator latexpar \end_inset @@ -40802,8 +43758,7 @@ Bend \end_layout \begin_layout Standard -Average structural propensities over all frames for each residue will be - written to the file specified by +Average structural propensities over all frames for each residue will be written to the file specified by \series bold sumout \series default @@ -40824,17 +43779,16 @@ sumout sumout \series default is not specified). - The total structural propensity over all residues for each secondary structure - type will be written to the file specified by + The total structural propensity over all residues for each secondary structure type will be written to the file specified by \series bold totalout \series default . - If assignout is specified, the overall secondary structure assignment for - each residue will be printed in two line chunks of 50 residues, with the - first line containing the residue number the line starts with and one character - residue names, and the second line containing secondary structure assignment - using DSSP-style characters, like so: + If assignout is specified, + the overall secondary structure assignment for each residue will be printed in two line chunks of 50 residues, + with the first line containing the residue number the line starts with and one character residue names, + and the second line containing secondary structure assignment using DSSP-style characters, + like so: \end_layout \begin_layout LyX-Code @@ -40847,8 +43801,8 @@ totalout \begin_layout Standard The output of secstruct command is amenable to visualization with gnuplot. - To generate a 2D map-style plot of secondary structure vs time, with each - residue on the Y axis simply give the output file a + To generate a 2D map-style plot of secondary structure vs time, + with each residue on the Y axis simply give the output file a \begin_inset Quotes eld \end_inset @@ -40857,9 +43811,9 @@ The output of secstruct command is amenable to visualization with gnuplot. \end_inset extension. - For example, to generate a 2D map of secondary structure vs time, with - different colors representing different secondary structure types for residues - 1-22: + For example, + to generate a 2D map of secondary structure vs time, + with different colors representing different secondary structure types for residues 1-22: \end_layout \begin_layout LyX-Code @@ -40875,7 +43829,8 @@ gnuplot dssp.gnu \end_layout \begin_layout Standard -Similarly, the +Similarly, + the \series bold sumout \series default @@ -40911,8 +43866,7 @@ dgbulk \series bold dhbulk \series default - for different water models can be calculated from pure water simulations - with the + for different water models can be calculated from pure water simulations with the \series bold purewater \series default @@ -40932,8 +43886,7 @@ setvelocity [<mask>] \end_layout \begin_layout LyX-Code - scale [factor <fac>] [sx <xfac>] [sy <yfac>] [sz <zfac>] - | + scale [factor <fac>] [sx <xfac>] [sy <yfac>] [sz <zfac>] | \end_layout \begin_layout LyX-Code @@ -41050,8 +44003,9 @@ none Remove any velocities. \end_layout \begin_layout Description -modify If specified, do not set, just modify any existing velocities (via - 'ntc' or 'zeromomentum'). +modify If specified, + do not set, + just modify any existing velocities (via 'ntc' or 'zeromomentum'). \end_layout \begin_layout Description @@ -41072,8 +44026,10 @@ ntc \end_inset <#> Correct set velocities for SHAKE constraints. - Numbers match sander/pmemd: 1 = no SHAKE, 2 = SHAKE on hydrogens, 3 = SHAKE - on all atoms. + Numbers match sander/pmemd: + 1 = no SHAKE, + 2 = SHAKE on hydrogens, + 3 = SHAKE on all atoms. \end_layout \begin_layout Description @@ -41093,17 +44049,16 @@ epsilon \end_layout \begin_layout Description -zeromomentum If specified adjust velocities so the total momentum of atoms - in <mask> is zero. +zeromomentum If specified adjust velocities so the total momentum of atoms in <mask> is zero. \end_layout \end_deeper \begin_layout Standard -Set velocities in frame for atoms in <mask> using Maxwellian distribution - based on given temperature, optionally adjusted for SHAKE constraints. +Set velocities in frame for atoms in <mask> using Maxwellian distribution based on given temperature, + optionally adjusted for SHAKE constraints. Can also be used to modify existing velocity information or remove it entirely. - The total momentum of the system can be set to zero as well, which can - be useful for NVE simulations. + The total momentum of the system can be set to zero as well, + which can be useful for NVE simulations. \end_layout \begin_layout Subsection @@ -41166,18 +44121,18 @@ solv \begin_layout Description [purewater] The system is pure water. Used to parametrize the bulk values. - If this is specified, none of the below options are relevant. + If this is specified, + none of the below options are relevant. \end_layout \begin_layout Description -<peaksname> Data set or file (XYZ- format: see below) with the peak locations - present . +<peaksname> Data set or file (XYZ- format: + see below) with the peak locations present . \end_layout \begin_layout Description -[reorder] The solvent should be re-ordered so the same solvent molecule - is always in the same site. +[reorder] The solvent should be re-ordered so the same solvent molecule is always in the same site. \end_layout \begin_layout Description @@ -41194,12 +44149,12 @@ summary \end_inset <summary> File with the summary of all SPAM results. - If not specified, no SPAM energies will be calculated. + If not specified, + no SPAM energies will be calculated. \end_layout \begin_layout Description -site_size <size> Size of the water site around each density peak (sphere - diameter/box edge length) in Ang. +site_size <size> Size of the water site around each density peak (sphere diameter/box edge length) in Ang. \end_layout \begin_layout Description @@ -41219,8 +44174,8 @@ dgbulk \begin_inset space ~ \end_inset -<dgbulk> SPAM free energy of the bulk solvent in kcal/mol; default is -30.3 - kcal/mol (SPC/E water). +<dgbulk> SPAM free energy of the bulk solvent in kcal/mol; + default is -30.3 kcal/mol (SPC/E water). \end_layout \begin_layout Description @@ -41228,8 +44183,8 @@ dhbulk \begin_inset space ~ \end_inset -<dhbulk> SPAM enthalpy of the bulk solvent in kcal/mol; default is -22.2 - kcal/mol (SPC/E water). +<dhbulk> SPAM enthalpy of the bulk solvent in kcal/mol; + default is -22.2 kcal/mol (SPC/E water). \end_layout \begin_layout Standard @@ -41271,18 +44226,17 @@ literal "true" \end_inset . - Briefly, this method identifies and estimates the free energy profiles - of bound waters via calculation of the distribution of interaction energies - between the water and it's environment from explicit solvent MD trajectories. - The interaction energies are calculated using a force- and energy-shifted - electrostatic term with a hard cutoff. - For a given peak, SPAM energies will only be calculated for peaks where - the peak is singly-occupied (i.e. + Briefly, + this method identifies and estimates the free energy profiles of bound waters via calculation of the distribution of interaction energies between the water and it's environment from explicit solvent MD trajectories. + The interaction energies are calculated using a force- and energy-shifted electrostatic term with a hard cutoff. + For a given peak, + SPAM energies will only be calculated for peaks where the peak is singly-occupied (i.e. a multiple-occupied peak is not considered valid). \end_layout \begin_layout Standard -Prior to this command, the +Prior to this command, + the \series bold \emph on volmap @@ -41296,6 +44250,7 @@ peakfile \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_volmap" +nolink "false" \end_inset @@ -41306,7 +44261,8 @@ reference "subsec:cpptraj_volmap" volmap \series default \emph default - command, the peaks file should have one line per peak with format: + command, + the peaks file should have one line per peak with format: \end_layout \begin_layout LyX-Code @@ -41359,7 +44315,8 @@ mask Atoms for which MSDs will be computed. \end_layout \begin_layout Description -out Output file: time vs. +out Output file: + time vs. MSD. \end_layout @@ -41371,7 +44328,9 @@ time Time step in the trajectory. \begin_layout Description mask2 Compute MSDs only within the lower and upper limit of mask2. - IMPORTANT: may be very slow!!! + IMPORTANT: + may be very slow!!! + \end_layout \begin_layout Description @@ -41396,8 +44355,7 @@ avout Output file containing average distances. \end_layout \begin_layout Description -x|y|z|xy|xz|yz|xyz Computation of the mean square displacement in the chosen - dimension. +x|y|z|xy|xz|yz|xyz Computation of the mean square displacement in the chosen dimension. (xyz) \end_layout @@ -41414,8 +44372,7 @@ com Calculate MSD for centre of mass. \end_deeper \begin_layout Standard -Calculate diffusion for selected atoms using code based on the 'diffusion' - routine developed by Hannes Loeffler at STFC (http://www.stfc.ac.uk/CSE). +Calculate diffusion for selected atoms using code based on the 'diffusion' routine developed by Hannes Loeffler at STFC (http://www.stfc.ac.uk/CSE). \end_layout \begin_layout Subsection @@ -41425,6 +44382,8 @@ strip \begin_layout LyX-Code strip \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -41462,8 +44421,7 @@ charge \begin_inset space ~ \end_inset -charge> Scale charges so total charge of remaining atoms matches the specified - <new charge>. +charge> Scale charges so total charge of remaining atoms matches the specified <new charge>. \end_layout \begin_layout Description @@ -41471,8 +44429,7 @@ charge> Scale charges so total charge of remaining atoms matches the specified \begin_inset space ~ \end_inset -<prefix>] Write out stripped topology file with name '<prefix>.<Original - Topology Name>'. +<prefix>] Write out stripped topology file with name '<prefix>.<Original Topology Name>'. \end_layout \begin_layout Description @@ -41506,8 +44463,8 @@ Strip all atoms specified by \series bold outprefix \series default - keyword can be used to write stripped topologies; stripped Amber topologies - are fully-functional. + keyword can be used to write stripped topologies; + stripped Amber topologies are fully-functional. Available options for \series bold <parmopts> @@ -41523,8 +44480,8 @@ help Formats parmwrite \end_layout \begin_layout Standard -Note that stripping a system renumbers all atoms and residues, so for example - after this command: +Note that stripping a system renumbers all atoms and residues, + so for example after this command: \end_layout \begin_layout LyX-Code @@ -41532,13 +44489,14 @@ strip :1 \end_layout \begin_layout Standard -residue 1 will be gone, and the former second residue will now be the first, +residue 1 will be gone, + and the former second residue will now be the first, and so on. \end_layout \begin_layout Standard -For example, to strip all residues named WAT from each topology/coordinate - frame: +For example, + to strip all residues named WAT from each topology/coordinate frame: \end_layout \begin_layout LyX-Code @@ -41553,9 +44511,10 @@ The next example uses a distance-based mask to strip atoms in a single frame. mask \series default \shape default - command, distance-based masks do not update on a per-frame basis. - To strip all residues outside of 6.0 from any atom in residues 1 to 14 and - write out the stripped topology and coordinates, both with no box information: + command, + distance-based masks do not update on a per-frame basis. + To strip all residues outside of 6.0 from any atom in residues 1 to 14 and write out the stripped topology and coordinates, + both with no box information: \end_layout \begin_layout LyX-Code @@ -41592,6 +44551,8 @@ name "subsec:cpptraj_surf" \begin_layout LyX-Code surf \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -41629,7 +44590,8 @@ solutemask \begin_inset space ~ \end_inset -<mask> If specified, calculate the contribution of <mask1> to <mask>. +<mask> If specified, + calculate the contribution of <mask1> to <mask>. \end_layout \begin_layout Description @@ -41637,7 +44599,8 @@ offset \begin_inset space ~ \end_inset -<offset> Increment van der Waals radii by <offset>; 1.4 Ang. +<offset> Increment van der Waals radii by <offset>; + 1.4 Ang. is the default (as used by Amber). \end_layout @@ -41646,8 +44609,7 @@ nbrcut \begin_inset space ~ \end_inset -<cut> Only atoms with van der Waals radii greater than <cut> are considered - to have neighbors (2.5 Ang Amber default). +<cut> Only atoms with van der Waals radii greater than <cut> are considered to have neighbors (2.5 Ang Amber default). \end_layout \end_deeper @@ -41656,9 +44618,8 @@ Calculate the surface area in Å \begin_inset Formula $^{\text{2}}$ \end_inset - of atoms in <mask> (if no mask specified, all atoms not marked as 'solvent' - that are part of a molecule > 1 atom in size) using the LCPO algorithm - of Weiser et al. + of atoms in <mask> (if no mask specified, + all atoms not marked as 'solvent' that are part of a molecule > 1 atom in size) using the LCPO algorithm of Weiser et al. \begin_inset CommandInset citation LatexCommand citep key "Weiser99" @@ -41667,24 +44628,24 @@ literal "true" \end_inset . - In order for this to work, the topology needs to have bond information - and atom type information. + In order for this to work, + the topology needs to have bond information and atom type information. \end_layout \begin_layout Standard -Note that even if <mask> does not include all solute atoms, the neighbor - list is still calculated for all solute atoms so the surface area calculated - reflects the contribution of atoms in <mask> to the overall surface area, +Note that even if <mask> does not include all solute atoms, + the neighbor list is still calculated for all solute atoms so the surface area calculated reflects the contribution of atoms in <mask> to the overall surface area, not the surface area of <mask> as an isolated system. - As a result, it may be possible to obtain a negative surface area if only - a small fraction of the solute is selected. + As a result, + it may be possible to obtain a negative surface area if only a small fraction of the solute is selected. \end_layout \begin_layout Standard -For example, to calculate the overall surface area of all solute atoms, - as well as the contribution of residue 1 to the overall surface area, writing - both results to +For example, + to calculate the overall surface area of all solute atoms, + as well as the contribution of residue 1 to the overall surface area, + writing both results to \begin_inset Quotes eld \end_inset @@ -41715,8 +44676,7 @@ name "subsec:cpptraj_symmrmsd" \end_layout \begin_layout LyX-Code -symmrmsd [<name>] [<mask>] [<refmask>] [out <filename>] [nofit] [mass] - [remap] +symmrmsd [<name>] [<mask>] [<refmask>] [out <filename>] [nofit] [mass] [remap] \end_layout \begin_layout LyX-Code @@ -41737,12 +44697,15 @@ symmrmsd [<name>] [<mask>] [<refmask>] [out <filename>] [nofit] [mass] \end_layout \begin_layout Description -[<mask>] Mask of atoms to calculate RMSD for; if not specified, calculate - for all atoms. +[<mask>] Mask of atoms to calculate RMSD for; + if not specified, + calculate for all atoms. \end_layout \begin_layout Description -[<refmask>] Reference mask; if not specified, use +[<refmask>] Reference mask; + if not specified, + use \series bold <mask> \series default @@ -41811,8 +44774,7 @@ refindex <#> \series default - Use previously read in reference structure specified by <#> (based on order - read in). + Use previously read in reference structure specified by <#> (based on order read in). \end_layout \begin_layout Description @@ -41828,13 +44790,12 @@ reftraj \begin_inset space ~ \end_inset -<name> Use frames from COORDS set <name> or read in from trajectory file - <name> as references. - Each frame from <name> is used in turn, so that frame 1 is compared to - frame 1 from <name>, frame 2 is compared to frame 2 from <name> and so - on. - If <trajname> runs out of frames before processing is complete, the last - frame of <trajname> continues to be used as the reference. +<name> Use frames from COORDS set <name> or read in from trajectory file <name> as references. + Each frame from <name> is used in turn, + so that frame 1 is compared to frame 1 from <name>, + frame 2 is compared to frame 2 from <name> and so on. + If <trajname> runs out of frames before processing is complete, + the last frame of <trajname> continues to be used as the reference. \begin_inset Separator latexpar \end_inset @@ -41863,8 +44824,8 @@ parmindex \series bold reftraj \series default - specifies a file associate trajectory <name> with specified topology; if - not specified the first topology is used. + specifies a file associate trajectory <name> with specified topology; + if not specified the first topology is used. \end_layout \end_deeper @@ -41872,25 +44833,22 @@ reftraj \begin_layout Standard Perform symmetry-corrected RMSD calculation. This is done by identifying potential symmetric atoms in each residue, - performing an initial best-fit, then determining which configuration of - symmetric atoms will give the lowest RMSD using atomic distance to reference - atoms. + performing an initial best-fit, + then determining which configuration of symmetric atoms will give the lowest RMSD using atomic distance to reference atoms. \end_layout \begin_layout Standard \series bold -Note that when re-mapping, all atoms in the residues of interest should - be selected to prevent cases where selected symmetric atoms are swapped - but the atoms they are bonded to are not +Note that when re-mapping, + all atoms in the residues of interest should be selected to prevent cases where selected symmetric atoms are swapped but the atoms they are bonded to are not \series default . - Also, occasionally larger symmetric structures (e.g. - 6 membered rings) may become distorted due to only part of the residue - being corrected for symmetry. - This appears to happen about 4% of the time but does not overly inflate - the RMSD. + Also, + occasionally larger symmetric structures (e.g. + 6 membered rings) may become distorted due to only part of the residue being corrected for symmetry. + This appears to happen about 4% of the time but does not overly inflate the RMSD. The \series bold \shape italic @@ -41907,9 +44865,9 @@ symmrmsd \end_layout \begin_layout Standard -Warning: the symmetry correction is generally robust enough to account for - symmetries in the standard amino and nucleic acid residues, but has not - been extensively tested on residues with more extended types of symmetry. +Warning: + the symmetry correction is generally robust enough to account for symmetries in the standard amino and nucleic acid residues, + but has not been extensively tested on residues with more extended types of symmetry. \end_layout \begin_layout Subsection @@ -41946,7 +44904,8 @@ temperature [<name>] [out <filename>] \end_layout \begin_layout Description -frame Do not calculate temperature; use existing frame temperature. +frame Do not calculate temperature; + use existing frame temperature. \end_layout \begin_layout Description @@ -41958,8 +44917,10 @@ frame Do not calculate temperature; use existing frame temperature. \begin_inset space ~ \end_inset -<#>] Value of SHAKE bond constraint: 1 - none, 2 - bonds to H, 3- all bonds - (equivalent to SANDER/PMEMD). +<#>] Value of SHAKE bond constraint: + 1 - none, + 2 - bonds to H, + 3- all bonds (equivalent to SANDER/PMEMD). \end_layout \begin_layout Description @@ -41971,8 +44932,9 @@ frame Do not calculate temperature; use existing frame temperature. \begin_inset space ~ \end_inset -{trans|rot|both}] Correct for removed translational, rotational, or both - kinds of degrees of freedom. +{trans|rot|both}] Correct for removed translational, + rotational, + or both kinds of degrees of freedom. \end_layout \end_deeper @@ -41982,7 +44944,8 @@ Calculate temperature in frame based on velocity information. \series bold update \series default -' is specified, update frame temperature too. +' is specified, + update frame temperature too. If ' \series bold frame @@ -41992,16 +44955,17 @@ frame \end_layout \begin_layout Standard -The 'ntc' keyword can be used to correct for lost degrees of freedom due - to SHAKE constraints (2 = bonds to hydrogen, 3 = all bonds). - The 'remove' keyword can be used to account for removed translational and/or - rotational degrees of freedom. +The 'ntc' keyword can be used to correct for lost degrees of freedom due to SHAKE constraints (2 = bonds to hydrogen, + 3 = all bonds). + The 'remove' keyword can be used to account for removed translational and/or rotational degrees of freedom. \end_layout \begin_layout Standard -For example, if using a trajectory that has been generated with SHAKE on - hydrogens, no periodic boundary conditions (i.e. - no box), and has had the center of mass periodically removed: +For example, + if using a trajectory that has been generated with SHAKE on hydrogens, + no periodic boundary conditions (i.e. + no box), + and has had the center of mass periodically removed: \end_layout \begin_layout LyX-Code @@ -42009,9 +44973,10 @@ temperature T1 ntc 2 remove both out T1.dat \end_layout \begin_layout Standard -If using a trajectory that has been generated with SHAKE on hydrogens, periodic - boundary conditions (i.e. - with a box), and has had the center of mass periodically removed: +If using a trajectory that has been generated with SHAKE on hydrogens, + periodic boundary conditions (i.e. + with a box), + and has had the center of mass periodically removed: \end_layout \begin_layout LyX-Code @@ -42019,8 +44984,9 @@ temperature T1 ntc 2 remove trans out T1.dat \end_layout \begin_layout Standard -If using a trajectory that has been generated with SHAKE on all bonds, periodic - boundary conditions, and no center of mass motion removal: +If using a trajectory that has been generated with SHAKE on all bonds, + periodic boundary conditions, + and no center of mass motion removal: \end_layout \begin_layout LyX-Code @@ -42057,7 +45023,8 @@ dt \end_layout \begin_layout Description -[update] If specified, modify any existing time info. +[update] If specified, + modify any existing time info. \end_layout \begin_layout Description @@ -42066,10 +45033,11 @@ remove Remove any time info from frame. \end_deeper \begin_layout Standard -Either add time information to frames, modify existing time information - in frames, or remove existing time information from frames. - Note that currently COORDS data sets do not store time information, so - using this command with the +Either add time information to frames, + modify existing time information in frames, + or remove existing time information from frames. + Note that currently COORDS data sets do not store time information, + so using this command with the \series bold \emph on crdaction @@ -42083,8 +45051,7 @@ tordiff \end_layout \begin_layout LyX-Code -tordiff [<set name>] [<mask>] [mass] [out <file>] [diffout <file>] [time - <dt>] +tordiff [<set name>] [<mask>] [mass] [out <file>] [diffout <file>] [time <dt>] \end_layout \begin_deeper @@ -42117,8 +45084,7 @@ name>] Output mean-squared-displacement data sets name. \begin_inset space ~ \end_inset -<file>] Write diffusion contants calculated from fits of mean-squared-displacent - data sets to <filename>. +<file>] Write diffusion contants calculated from fits of mean-squared-displacent data sets to <filename>. \end_layout \begin_layout Description @@ -42197,8 +45163,7 @@ Calculate the diffusion via mean-squared displacement (in Å \begin_inset Formula $^{\text{2}}$ \end_inset -/ps) of specified molecules using the toroidal-view-preserving (TOR) scheme - of Hummer et al. +/ps) of specified molecules using the toroidal-view-preserving (TOR) scheme of Hummer et al. \series bold Note that currently this only works for orthogonal boxes @@ -42229,6 +45194,7 @@ reference "subsec:cpptraj-diffusion" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -42245,13 +45211,12 @@ reference "subsec:cpptraj_unwrap" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset ) commands which correct for box fluctuations via fractional coordinates, - the TOR scheme corrects for box fluctuations by tracking the displacement - of each molecule with respect to its position in the previous frame in - Cartesian space. + the TOR scheme corrects for box fluctuations by tracking the displacement of each molecule with respect to its position in the previous frame in Cartesian space. \end_layout \begin_layout Standard @@ -42261,13 +45226,15 @@ Diffusion constants are calculated in the same manner as the diffusion \series default \emph default - command; for more details see + command; + for more details see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-diffusion" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -42275,8 +45242,8 @@ noprefix "false" \end_layout \begin_layout Standard -For example, to calculate the diffusion (with data set name TOR) of waters - (name WAT) in an orthogonal box using the toroidal scheme: +For example, + to calculate the diffusion (with data set name TOR) of waters (name WAT) in an orthogonal box using the toroidal scheme: \end_layout \begin_layout LyX-Code @@ -42333,14 +45300,16 @@ topoint \begin_inset space ~ \end_inset -<x>,<y>,<z> If specified, translate center of specified atoms to a specific - point defined by <x>, <y>, and <z> in the given comma-separated list instead - of by deltas. +<x>,<y>,<z> If specified, + translate center of specified atoms to a specific point defined by <x>, + <y>, + and <z> in the given comma-separated list instead of by deltas. \end_layout \begin_deeper \begin_layout Description -mass If specified, translate center of mass of specified atoms ( +mass If specified, + translate center of mass of specified atoms ( \series bold topoint \series default @@ -42358,11 +45327,13 @@ Translate atoms in \series bold <dx> \series default - Å in the X direction, + Å in the X direction, + \series bold <dy> \series default - Å in the Y direction, and + Å in the Y direction, + and \series bold <dz> \series default @@ -42371,8 +45342,8 @@ Translate atoms in \series bold 'topoint \series default -' is specified, translate atoms in <mask> to the specified coordinates (also - in Å). +' is specified, + translate atoms in <mask> to the specified coordinates (also in Å). \end_layout \begin_layout Subsection @@ -42382,6 +45353,8 @@ unstrip \begin_layout LyX-Code unstrip \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -42394,13 +45367,14 @@ unstrip \end_layout \begin_layout Standard -Requests that the original topology and frame be used for all following - actions. - This has the effect of undoing any command that modifies the state (such - as strip). - For example, the following code takes a solvated complex and uses a combination - of strip, unstrip, and outtraj commands to write out separate dry complex, - receptor, and ligand files: +Requests that the original topology and frame be used for all following actions. + This has the effect of undoing any command that modifies the state (such as strip). + For example, + the following code takes a solvated complex and uses a combination of strip, + unstrip, + and outtraj commands to write out separate dry complex, + receptor, + and ligand files: \end_layout \begin_layout LyX-Code @@ -42412,7 +45386,8 @@ trajin Complex.WAT.pdb \end_layout \begin_layout LyX-Code -# Remove water, write complex +# Remove water, + write complex \end_layout \begin_layout LyX-Code @@ -42432,7 +45407,8 @@ unstrip \end_layout \begin_layout LyX-Code -# Remove water and ligand, write receptor +# Remove water and ligand, + write receptor \end_layout \begin_layout LyX-Code @@ -42452,7 +45428,8 @@ unstrip \end_layout \begin_layout LyX-Code -# Remove water and receptor, write ligand +# Remove water and receptor, + write ligand \end_layout \begin_layout LyX-Code @@ -42496,8 +45473,8 @@ unwrap [center] [{byatom | byres | bymol}] [avgucell <avg ucell set>] \begin_deeper \begin_layout Description -[center] Unwrap by center of mass; otherwise unwrap by first atom position - (byres and bymol). +[center] Unwrap by center of mass; + otherwise unwrap by first atom position (byres and bymol). \end_layout \begin_layout Description @@ -42525,7 +45502,8 @@ ucell \begin_inset space ~ \end_inset -set>] Average unit cell data set; useful when unwrapping NPT trajectories. +set>] Average unit cell data set; + useful when unwrapping NPT trajectories. \end_layout \begin_layout Description @@ -42586,15 +45564,18 @@ oidal-view-preserving scheme (orthogonal boxes only). \end_deeper \begin_layout Standard -Under periodic boundary conditions, MD trajectories are not continuous if - molecules are wrapped(imaged) into the central unit cell. - Especially, in sander, with +Under periodic boundary conditions, + MD trajectories are not continuous if molecules are wrapped(imaged) into the central unit cell. + Especially, + in sander, + with \emph on iwrap \emph default -=1, molecular trajectories become discontinuous when a molecule crosses - the boundary of the unit cell. - This command, +=1, + molecular trajectories become discontinuous when a molecule crosses the boundary of the unit cell. + This command, + \family sans \series bold \emph on @@ -42606,8 +45587,7 @@ unwrap \shape italic mask \shape default -ed molecules continuous by translating the molecules into the neighboring - unit cells. +ed molecules continuous by translating the molecules into the neighboring unit cells. It is the opposite function of \family sans \series bold @@ -42616,20 +45596,25 @@ image \family default \series default \emph default -, but this command can also be used to place molecules side by side, for - example, two strands of a DNA duplex. - However, this command may fail if the +, + but this command can also be used to place molecules side by side, + for example, + two strands of a DNA duplex. + However, + this command may fail if the \shape italic mask \shape default ed entities travel more than half of the box size within a single frame. - Note that uwrapping by atom (the default behavior) is slower than unwrapping - by residue or molecule, but is usually the safer method, especially if - it is unknown if the original imaging was done by atom, by residue, or - by molecule. - If the optional reference arguments are specified, then the first frame - is unwrapped according to the reference structure. - Otherwise, the first frame is not modified. + Note that uwrapping by atom (the default behavior) is slower than unwrapping by residue or molecule, + but is usually the safer method, + especially if it is unknown if the original imaging was done by atom, + by residue, + or by molecule. + If the optional reference arguments are specified, + then the first frame is unwrapped according to the reference structure. + Otherwise, + the first frame is not modified. \end_layout \begin_layout Standard @@ -42641,12 +45626,13 @@ noise \begin_inset Quotes erd \end_inset - caused by box fluctuations in NPT trajectories, the average unit cell vectors - describing the average box can be provided with the + caused by box fluctuations in NPT trajectories, + the average unit cell vectors describing the average box can be provided with the \series bold avgucell \series default - keyword; see the + keyword; + see the \series bold \emph on avgbox @@ -42659,6 +45645,7 @@ reference "subsec:cpptraj_avgbox" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -42684,20 +45671,18 @@ https://arxiv.org/abs/2303.09418 scheme tor. \series default - However, note that this currently + However, + note that this currently \series bold only works for orthogonal boxes \series default - and may result in unrealistic trajectories (particularly at long times - when molecules have had the chance to traverse multiple box lengths) and - is only currently recommended for calculating diffusion. + and may result in unrealistic trajectories (particularly at long times when molecules have had the chance to traverse multiple box lengths) and is only currently recommended for calculating diffusion. \end_layout \begin_layout Standard -As an example, assume that :1-10 is the first strand of a DNA duplex and - :11-20 is the other strand of the duplex. - Then the following commands could be used to create system where the two - strands are not separated artificially: +As an example, + assume that :1-10 is the first strand of a DNA duplex and :11-20 is the other strand of the duplex. + Then the following commands could be used to create system where the two strands are not separated artificially: \end_layout \begin_layout LyX-Code @@ -42713,8 +45698,8 @@ image origin center familiar \end_layout \begin_layout Standard -To unwrap an NPT trajectory by using the average unit cell (box), the calculate - diffusion from the unwrapped trajectory: +To unwrap an NPT trajectory by using the average unit cell (box), + the calculate diffusion from the unwrapped trajectory: \end_layout \begin_layout LyX-Code @@ -42798,7 +45783,8 @@ vector [<name>] <Type> [out <filename> [ptrajoutput]] [<mask1>] [<mask2>] \end_layout \begin_layout Description -<Type> Vector type; see below. +<Type> Vector type; + see below. \end_layout \begin_layout Description @@ -42810,8 +45796,7 @@ vector [<name>] <Type> [out <filename> [ptrajoutput]] [<mask1>] [<mask2>] \series bold <filename> \series default - with format 'Vx Vy Vz Ox Oy Oz' where V denotes vector coordinates and - 'O' denotes origin coordinates. + with format 'Vx Vy Vz Ox Oy Oz' where V denotes vector coordinates and 'O' denotes origin coordinates. \end_layout \begin_layout Description @@ -42832,7 +45817,8 @@ ptraj \end_layout \begin_layout Description -[<mask1>] Atom mask, required for all types except +[<mask1>] Atom mask, + required for all types except \series bold 'box' \series default @@ -42840,7 +45826,8 @@ ptraj \end_layout \begin_layout Description -[<mask2>] Second atom mask, only required for type +[<mask2>] Second atom mask, + only required for type \series bold 'mask' \series default @@ -42852,12 +45839,12 @@ ptraj \end_layout \begin_layout Description -[geom] If specified, use geometric centers instead of centers of mass. +[geom] If specified, + use geometric centers instead of centers of mass. \end_layout \begin_layout Description -[ired] Mark this vector for subsequent IRED analysis with commands 'matrix - ired' and 'ired'. +[ired] Mark this vector for subsequent IRED analysis with commands 'matrix ired' and 'ired'. \end_layout \begin_layout Description @@ -42865,16 +45852,17 @@ ptraj \begin_inset space ~ \end_inset -<grid>] Name of grid data set to get box info from instead of frame for - +<grid>] Name of grid data set to get box info from instead of frame for \series bold box \series default -, +, + \series bold boxcenter \series default -, and +, + and \series bold ucell[x|y|z] \series default @@ -42907,8 +45895,8 @@ magnitude \end_deeper \begin_layout Standard -This command will keep track of a vector value (and its origin) over the - trajectory; the data can be referenced for later use based on the +This command will keep track of a vector value (and its origin) over the trajectory; + the data can be referenced for later use based on the \shape italic name \shape default @@ -42952,8 +45940,7 @@ dipole Store the dipole and center of mass of the atoms specified in \series default is specified for units of Debye. The center is always stored as simply Ang (since it is just coordinates). - Note that the value may not be well-defined if the atoms in the mask are - not overall charge neutral. + Note that the value may not be well-defined if the atoms in the mask are not overall charge neutral. \end_layout \begin_layout Description @@ -42962,12 +45949,13 @@ center Store the center of mass of atoms in <mask1> \series default . - The reference point is the origin (0.0, 0.0, 0.0). + The reference point is the origin (0.0, + 0.0, + 0.0). \end_layout \begin_layout Description -corrplane This defines a vector perpendicular to the (least-squares best) - plane through the atoms in +corrplane This defines a vector perpendicular to the (least-squares best) plane through the atoms in \series bold <mask1> \series default @@ -42981,7 +45969,9 @@ corrplane This defines a vector perpendicular to the (least-squares best) \begin_layout Description box (No mask needed) Store the box lengths of the trajectory. - The reference point is the origin (0.0, 0.0, 0.0). + The reference point is the origin (0.0, + 0.0, + 0.0). \end_layout @@ -42990,7 +45980,8 @@ boxcenter (No mask needed) Store the center of the box as a vector. \end_layout \begin_layout Description -ucell{x|y|z}: (No mask needed) Store specified unit cell (i.e. +ucell{x|y|z}: + (No mask needed) Store specified unit cell (i.e. box) vector. \end_layout @@ -43003,8 +45994,7 @@ principal \begin_inset space ~ \end_inset -[x|y|z] Store one of the principal axis vectors determined by diagonalization - of the inertial matrix from the coordinates of the atoms specified by +[x|y|z] Store one of the principal axis vectors determined by diagonalization of the inertial matrix from the coordinates of the atoms specified by \series bold <mask1> \series default @@ -43021,8 +46011,8 @@ x \begin_inset Quotes erd \end_inset - (i.e., the hardest axis to rotate around) and the eigenvector with the smallest - eigenvalue is considered + (i.e., + the hardest axis to rotate around) and the eigenvector with the smallest eigenvalue is considered \begin_inset Quotes eld \end_inset @@ -43047,7 +46037,8 @@ y \family typewriter z \family default - are specified, then the + are specified, + then the \begin_inset Quotes eld \end_inset @@ -43072,21 +46063,20 @@ force Store force of atoms in <mask1> (requires forces). \end_layout \begin_layout Standard -Cpptraj supports writing out vector data in a pseudo-trajectory format for - easy visualization. - Once a vector data set has been generated the writedata command can be - used with the vectraj keyword (see +Cpptraj supports writing out vector data in a pseudo-trajectory format for easy visualization. + Once a vector data set has been generated the writedata command can be used with the vectraj keyword (see \begin_inset CommandInset ref LatexCommand vref reference "sec:Datafile-Commands" +nolink "false" \end_inset for more details) to write a pseudo trajectory consisting of two atoms, one for the vector origin and one for the vector from the origin (i.e. V+O). - For example, to create a MOL2 containing a pseudo-trajectory of the minimum-ima -ged vector from residue 4 to residue 11: + For example, + to create a MOL2 containing a pseudo-trajectory of the minimum-imaged vector from residue 4 to residue 11: \end_layout \begin_layout LyX-Code @@ -43106,8 +46096,7 @@ writedata v8.mol2 vectraj v8 trajfmt mol2 \end_layout \begin_layout Standard -Auto-correlation or cross-correlation functions can be calculated subsequently - for vectors using either the +Auto-correlation or cross-correlation functions can be calculated subsequently for vectors using either the \series bold \emph on corr @@ -43127,8 +46116,7 @@ velocityautocorr \end_layout \begin_layout LyX-Code -velocityautocorr [<set name>] [<mask>] [usevelocity] [out <filename>] [diffout - <file>] +velocityautocorr [<set name>] [<mask>] [usevelocity] [out <filename>] [diffout <file>] \end_layout \begin_layout LyX-Code @@ -43154,8 +46142,7 @@ name>] Data set name. \begin_layout Description [usevelocity] Use velocity information in frame if present. - This will only give sensible results if the velocities are recorded close - to the order of the simulation time step. + This will only give sensible results if the velocities are recorded close to the order of the simulation time step. \end_layout \begin_layout Description @@ -43192,8 +46179,7 @@ name>] Data set name. \end_layout \begin_layout Description -[direct] Calculate VAC function directly instead of via FFT (will be much - slower). +[direct] Calculate VAC function directly instead of via FFT (will be much slower). \end_layout \begin_layout Description @@ -43228,15 +46214,12 @@ DataSet Aspects: \end_deeper \begin_layout Standard -Calculate the velocity autocorrelation (VAC) function averaged over the - atoms in <mask>. - Pseudo-velocities are calculated using coordinates and the specified time - step. - As with all time correlation functions the statistical noise will increase - if the maximum lag is greater than half the total number of frames. - In addition to calculating the velocity autocorrelation function, the self-diff -usion coefficient will be reported in the output, calculated from the integral - over the VAC function. +Calculate the velocity autocorrelation (VAC) function averaged over the atoms in <mask>. + Pseudo-velocities are calculated using coordinates and the specified time step. + As with all time correlation functions the statistical noise will increase if the maximum lag is greater than half the total number of frames. + In addition to calculating the velocity autocorrelation function, + the self-diffusion coefficient will be reported in the output, + calculated from the integral over the VAC function. \end_layout \begin_layout Subsection @@ -43317,8 +46300,8 @@ radscale <factor> \family default Factor by which to scale radii (by division). - To match the atomic radius of Oxygen used by the VMD volmap tool, a scaling - factor of 1.36 should be used. + To match the atomic radius of Oxygen used by the VMD volmap tool, + a scaling factor of 1.36 should be used. Default 1.0. \end_layout @@ -43327,8 +46310,8 @@ stepfac \begin_inset space ~ \end_inset -<factor> Factor for determining how many voxels to smear Gaussian (default - 4.1, 1.0 for +<factor> Factor for determining how many voxels to smear Gaussian (default 4.1, + 1.0 for \series bold sphere \series default @@ -43336,7 +46319,8 @@ sphere \end_layout \begin_layout Description -sphere When smearing Gaussian, skip voxels farther than radii/2. +sphere When smearing Gaussian, + skip voxels farther than radii/2. \end_layout \begin_layout Description @@ -43344,8 +46328,7 @@ radii \begin_inset space ~ \end_inset -{vdw|element} Specify either van der Waals radii (default) or elemental - radii. +{vdw|element} Specify either van der Waals radii (default) or elemental radii. \end_layout \begin_layout Description @@ -43357,8 +46340,8 @@ splinedx \end_layout \begin_layout Description -calcpeaks If specified, peaks in the grid density will be calculated and - saved to set <setname> with aspect +calcpeaks If specified, + peaks in the grid density will be calculated and saved to set <setname> with aspect \begin_inset Quotes eld \end_inset @@ -43378,8 +46361,7 @@ peakcut <cutoff> \family default -The minimum density required to consider a local maximum a 'density peak' - in the outputted peak file (default 0.05). +The minimum density required to consider a local maximum a 'density peak' in the outputted peak file (default 0.05). \end_layout \begin_layout Description @@ -43391,8 +46373,7 @@ peakfile <xyzfile> \family default -A file in XYZ-format that contains a carbon atom centered at the grid point - of every local density maximum. +A file in XYZ-format that contains a carbon atom centered at the grid point of every local density maximum. This file is necessary input to the spam action command. \end_layout @@ -43433,7 +46414,10 @@ dy, dz \family default -The grid spacing (Angstroms) in the X-, Y-, and Z-dimensions, respectively. +The grid spacing (Angstroms) in the X-, + Y-, + and Z-dimensions, + respectively. \end_layout \begin_layout Description @@ -43445,7 +46429,9 @@ size <x,y,z> \family default -Specify the size of the grid in the X-, Y-, and Z-dimensions. +Specify the size of the grid in the X-, + Y-, + and Z-dimensions. Must be used alongside the center argument. \end_layout @@ -43460,7 +46446,8 @@ center <x,y,z> \family default Specify the grid center explicitly. - Note, the size argument must be present in this case. + Note, + the size argument must be present in this case. Default is the origin. \end_layout @@ -43475,8 +46462,8 @@ centermask <mask> \family default The mask around which the grid should be centered (via geometric center). - If this is omitted and the center and size are not specified, the default - <mask> entered (see above) is used in its place. + If this is omitted and the center and size are not specified, + the default <mask> entered (see above) is used in its place. \end_layout \begin_deeper @@ -43489,9 +46476,9 @@ buffer <buffer> \family default -A buffer distance, in Angstroms, by which the edges of the grid should clear - every atom of the centermask (or default mask if centermask is omitted) - in every direction. +A buffer distance, + in Angstroms, + by which the edges of the grid should clear every atom of the centermask (or default mask if centermask is omitted) in every direction. The default value is 3. The buffer is ignored if the center and size are specified (see below). \end_layout @@ -43523,17 +46510,17 @@ calcpeaks \end_deeper \begin_layout Standard -Grid data as a volumetric map, similar to the 'volmap' command in VMD. - The density is calculated by treating each atom as a 3-dimensional Gaussian - function whose standard deviation is equal to the van der Waals radius. - The density calculated is the number density averaged over the entire simulatio -n. +Grid data as a volumetric map, + similar to the 'volmap' command in VMD. + The density is calculated by treating each atom as a 3-dimensional Gaussian function whose standard deviation is equal to the van der Waals radius. + The density calculated is the number density averaged over the entire simulation. The grid can be specified in one of three ways: \end_layout \begin_layout Enumerate An existing grid data set (from e.g. - bounds), specified with the + bounds), + specified with the \series bold data \series default @@ -43549,7 +46536,8 @@ size \series bold center \series default - keywords (comma-separated strings, e.g. + keywords (comma-separated strings, + e.g. '20,20,20'). \end_layout @@ -43566,8 +46554,7 @@ buffer \end_layout \begin_layout Standard -The calculation is sped up by using cubic splines to interpolate the exponential - function when calculating the Gaussians. +The calculation is sped up by using cubic splines to interpolate the exponential function when calculating the Gaussians. \begin_inset CommandInset citation LatexCommand citep key "Roe2021" @@ -43613,8 +46600,7 @@ watershell \end_layout \begin_layout LyX-Code -watershell <solutemask> [out <filename>] [lower <lower cut>] [upper <upper - cut>] +watershell <solutemask> [out <filename>] [lower <lower cut>] [upper <upper cut>] \end_layout \begin_layout LyX-Code @@ -43684,9 +46670,7 @@ DataSet Aspects: \end_deeper \begin_layout Standard -This option will count the number of waters within a certain distance of - the atoms in the <solutemask> in order to represent the first and second - solvation shells. +This option will count the number of waters within a certain distance of the atoms in the <solutemask> in order to represent the first and second solvation shells. The optional <solventmask> can be used to consider other atoms as the solvent; the default is \begin_inset Quotes eld @@ -43706,8 +46690,7 @@ This action is often used prior to the closest \series default \shape default - command in order to determine how many waters around a solute should be - retained to maintain the first and/or second water shells. + command in order to determine how many waters around a solute should be retained to maintain the first and/or second water shells. \end_layout \begin_layout Standard @@ -43732,8 +46715,7 @@ xtalsymm <mask> group <space group> [collect [centroid]] \begin_deeper \begin_layout Description -<mask> Atom mask defining the asymmetric unit within the larger system (required -). +<mask> Atom mask defining the asymmetric unit within the larger system (required). \end_layout \begin_layout Description @@ -43747,7 +46729,8 @@ group group> The space group to which the system belongs. Omit spaces in the name. - Example: + Example: + \begin_inset Quotes eld \end_inset @@ -43759,10 +46742,10 @@ P22(1)2(1) \end_layout \begin_layout Description -[collect] Optional flag to have all solvent particles, not just the asymmetric - units, re-imaged. - This will trigger cpptraj to compute the unit cell volume that constitutes - the aymmetric unit and thereby classify all particles for re-imaging. +[collect] Optional flag to have all solvent particles, + not just the asymmetric units, + re-imaged. + This will trigger cpptraj to compute the unit cell volume that constitutes the aymmetric unit and thereby classify all particles for re-imaging. \end_layout \begin_deeper @@ -43771,7 +46754,9 @@ P22(1)2(1) \series bold collect \series default -, re-image solvent molecules by centroids, not individual atom coordinates. +, + re-image solvent molecules by centroids, + not individual atom coordinates. This is useful for keeping water molecules intact. \end_layout @@ -43833,41 +46818,38 @@ refindex \begin_inset space ~ \end_inset -<nc>] The number of times the crystal unit cell is replicated along the - “a,” “b,” or “c” axes (for orthorhombic unti cells, these are the x, y, - and z axes) of the simulation; default is 1. - Many crystal unit cells are too small in one or more dimensions for our - simulation cutoffs, and replicating the unit cell is an effective way to - counter imaging artifacts even for larger unit cells. +<nc>] The number of times the crystal unit cell is replicated along the “a,” “b,” or “c” axes (for orthorhombic unti cells, + these are the x, + y, + and z axes) of the simulation; + default is 1. + Many crystal unit cells are too small in one or more dimensions for our simulation cutoffs, + and replicating the unit cell is an effective way to counter imaging artifacts even for larger unit cells. \end_layout \end_deeper \begin_layout Standard -Calculate the optimal approach for superimposing symmetry-related subunits - of the simulation back onto one another. - The calculation assumes that the system is a simulation of an X-ray structure - in its native crystal lattice, finds all copies of the asymmetric unit - among the entire system, and devises plans for re-imagining their coordinates - to superimpose them back on the original asymmetric unit. - The space group information can be found in a PDB X-ray structure used - as the initial coordinates for a simulation. - All 230 space groups are supported, and a scan of the PDB was made to ensure - that common variants of the names are included (P2(1)22(1) is the same - as P22(1)2(1), but with different axis conventions). - If your space group is not understood, contact the Amber mailing list. - This command is compute intensive, especially for simulations that are - “supercells” containing many crystallographic unit cells. +Calculate the optimal approach for superimposing symmetry-related subunits of the simulation back onto one another. + The calculation assumes that the system is a simulation of an X-ray structure in its native crystal lattice, + finds all copies of the asymmetric unit among the entire system, + and devises plans for re-imagining their coordinates to superimpose them back on the original asymmetric unit. + The space group information can be found in a PDB X-ray structure used as the initial coordinates for a simulation. + All 230 space groups are supported, + and a scan of the PDB was made to ensure that common variants of the names are included (P2(1)22(1) is the same as P22(1)2(1), + but with different axis conventions). + If your space group is not understood, + contact the Amber mailing list. + This command is compute intensive, + especially for simulations that are “supercells” containing many crystallographic unit cells. \end_layout \begin_layout Standard -This command will cause cpptraj to locate all asymmetric units from within - the topology, then determine what wrapping, if any, has occurred in order - to bring about an optimal re-alignment based on the space group symmetry - operations. - The user need not worry about wrapping or drift of the simulation over - time–the asymmetric units will be re-imaged frame by frame. - Coordinate modifications due to this action are permanent and will affect - the results of subsequent actions and analyses. +This command will cause cpptraj to locate all asymmetric units from within the topology, + then determine what wrapping, + if any, + has occurred in order to bring about an optimal re-alignment based on the space group symmetry operations. + The user need not worry about wrapping or drift of the simulation over time–the asymmetric units will be re-imaged frame by frame. + Coordinate modifications due to this action are permanent and will affect the results of subsequent actions and analyses. \end_layout \begin_layout Section @@ -43879,8 +46861,7 @@ Analyses in \emph on cpptraj \emph default - operate on data sets which have been generated by Actions in a prior Run - or read in with a + operate on data sets which have been generated by Actions in a prior Run or read in with a \series bold \emph on readdata @@ -43890,6 +46871,7 @@ readdata \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_readdata" +nolink "false" \end_inset @@ -43898,7 +46880,8 @@ reference "subsec:cpptraj_readdata" \emph on ptraj \emph default -, Analysis commands in +, + Analysis commands in \emph on cpptraj \emph default @@ -43919,7 +46902,8 @@ analyze matrix matrix \series default \emph default - Action command; users are encouraged to use the new command + Action command; + users are encouraged to use the new command \series bold \emph on diagmatrix @@ -43929,11 +46913,9 @@ diagmatrix \end_layout \begin_layout Standard -Like Actions, when an Analysis command is issued it is by default added - to the Analysis queue and is not executed until after trajectory processing - is completed; a complete list of data sets available for analysis is shown - after trajectory processing (prefaced by 'DATASETS') or can be shown with - the ' +Like Actions, + when an Analysis command is issued it is by default added to the Analysis queue and is not executed until after trajectory processing is completed; + a complete list of data sets available for analysis is shown after trajectory processing (prefaced by 'DATASETS') or can be shown with the ' \series bold \emph on list dataset @@ -43950,6 +46932,7 @@ runanalysis \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_runanalysis" +nolink "false" \end_inset @@ -43957,9 +46940,8 @@ reference "subsec:cpptraj_runanalysis" \end_layout \begin_layout Standard -Note that for Analysis commands that use COORDS data sets, if no COORDS - data set is specified then a default one will be automatically created - from frames read in by +Note that for Analysis commands that use COORDS data sets, + if no COORDS data set is specified then a default one will be automatically created from frames read in by \series bold \emph on trajin @@ -44058,7 +47040,10 @@ avg \begin_inset Text \begin_layout Plain Layout -Calculate average, standard deviation, min, and max for (or over) data sets. +Calculate average, + standard deviation, + min, + and max for (or over) data sets. \end_layout \end_inset @@ -44154,7 +47139,8 @@ Perform cluster analysis. \begin_inset Text \begin_layout Plain Layout -COORDS, N 1D scalar +COORDS, + N 1D scalar \end_layout \end_inset @@ -44183,7 +47169,8 @@ Calculate auto or cross correlation for 1 or 2 data sets. \begin_inset Text \begin_layout Plain Layout -1D scalar, vector +1D scalar, + vector \end_layout \end_inset @@ -44252,7 +47239,8 @@ pH data sets \begin_inset Text \begin_layout Plain Layout -crank, +crank, + \end_layout \end_inset @@ -44571,7 +47559,8 @@ N 2D matrices \begin_inset Text \begin_layout Plain Layout -hist, histogram +hist, + histogram \end_layout \end_inset @@ -44783,7 +47772,8 @@ lowestcurve \begin_inset Text \begin_layout Plain Layout -For each given data set, calculate a curve that traces +For each given data set, + calculate a curve that traces \end_layout \end_inset @@ -44993,8 +47983,7 @@ phipsi \begin_inset Text \begin_layout Plain Layout -Calculate and plot the average phi and psi values from input dihedral data - sets. +Calculate and plot the average phi and psi values from input dihedral data sets. \end_layout \end_inset @@ -45032,7 +48021,8 @@ Project data along eigenmodes. \begin_inset Text \begin_layout Plain Layout -eigenmodes, N 1D scalar +eigenmodes, + N 1D scalar \end_layout \end_inset @@ -45101,7 +48091,8 @@ replica log \begin_inset Text \begin_layout Plain Layout -rms2d, 2drms +rms2d, + 2drms \end_layout \end_inset @@ -45253,7 +48244,8 @@ N 1D scalar \begin_inset Text \begin_layout Plain Layout -stat, statistics +stat, + statistics \end_layout \end_inset @@ -45329,7 +48321,8 @@ Perform time-independent correlation analysis. \begin_inset Text \begin_layout Plain Layout -COORDS, N 1D scalar +COORDS, + N 1D scalar \end_layout \end_inset @@ -45541,14 +48534,16 @@ autocorr [name <dsetname>] <dsetarg0> [<dsetarg1> ...] [out <filename>] \series bold [direct] \series default - Do not use FFTs to calculate correlation; this will be much slower. + Do not use FFTs to calculate correlation; + this will be much slower. \end_layout \end_deeper \begin_layout Standard \shape italic -This is for integer/double/float datasets only; for vectors see the +This is for integer/double/float datasets only; + for vectors see the \series bold 'timecorr' \series default @@ -45556,8 +48551,7 @@ This is for integer/double/float datasets only; for vectors see the \end_layout \begin_layout Standard -Calculate auto-correlation (actually auto-covariance by default) function - for datasets specified by one or more dataset arguments. +Calculate auto-correlation (actually auto-covariance by default) function for datasets specified by one or more dataset arguments. The datasets must have the same # of data points. \end_layout @@ -45584,7 +48578,8 @@ avg <dset0> [<dset1> ...] [torsion] [out <file>] [oversets] \begin_layout Description [torsion] If the data sets are not already marked periodic (e.g. - if read in via 'readdata'), treat them as periodic torsion. + if read in via 'readdata'), + treat them as periodic torsion. \end_layout \begin_layout Description @@ -45596,8 +48591,8 @@ avg <dset0> [<dset1> ...] [torsion] [out <file>] [oversets] \end_layout \begin_layout Description -[oversets] If specified, calculate the average over all inpout sets instead - of each input set. +[oversets] If specified, + calculate the average over all inpout sets instead of each input set. \end_layout \begin_layout Description @@ -45609,8 +48604,7 @@ avg <dset0> [<dset1> ...] [torsion] [out <file>] [oversets] \end_layout \begin_layout Description -[nostdout] If 'nostdout' specified do not write averages to STDOUT when - 'out' not specified. +[nostdout] If 'nostdout' specified do not write averages to STDOUT when 'out' not specified. \end_layout \begin_layout Standard @@ -45667,19 +48661,22 @@ DataSets Created (oversets) \end_layout \begin_layout Standard -Calculate the average, standard deviation, min, and max of given 1D data - sets. - Alternatively, if +Calculate the average, + standard deviation, + min, + and max of given 1D data sets. + Alternatively, + if \series bold oversets \series default - is specified the average over each set for each point is calculated; this - requires all input sets be the same size. + is specified the average over each set for each point is calculated; + this requires all input sets be the same size. \end_layout \begin_layout Standard -For example, to read in data from a file named perres.peptide.dat and calculate - the averages etc for all the input sets: +For example, + to read in data from a file named perres.peptide.dat and calculate the averages etc for all the input sets: \end_layout \begin_layout LyX-Code @@ -45760,8 +48757,7 @@ set>] Input COORDS set to calculate diffusion for. \begin_inset space ~ \end_inset -<file>] Write diffusion contants calculated from fits of MSD data sets to - <filename>. +<file>] Write diffusion contants calculated from fits of MSD data sets to <filename>. \end_layout \begin_layout Standard @@ -45842,25 +48838,28 @@ reference "subsec:cpptraj-diffusion" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset -), which calculates MSD from a single time origin, the +), + which calculates MSD from a single time origin, + the \series bold \emph on calcdiffusion \series default \emph default - command calculates diffusion from multiple time origins up to a user-specified - lag (in frames). - Note that no imaging is performed for this command, so any unwrapping should - be performed prior to this command (see + command calculates diffusion from multiple time origins up to a user-specified lag (in frames). + Note that no imaging is performed for this command, + so any unwrapping should be performed prior to this command (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_unwrap" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -45871,13 +48870,15 @@ noprefix "false" diffusion \series default \emph default - command; for more details see + command; + for more details see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-diffusion" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -45885,18 +48886,18 @@ noprefix "false" \end_layout \begin_layout Standard -This command is both OpenMP- and MPI-parallelized; either or both can be - active. - In order to keep per-process memory requirements low, it is recommended - that TRAJ (i.e. - on-disk) data sets be used with MPI instead of CRD (in-memory) sets (see - +This command is both OpenMP- and MPI-parallelized; + either or both can be active. + In order to keep per-process memory requirements low, + it is recommended that TRAJ (i.e. + on-disk) data sets be used with MPI instead of CRD (in-memory) sets (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-loadtraj" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -45904,9 +48905,8 @@ noprefix "false" \end_layout \begin_layout Standard -For example, to calculate diffusion from multiple time origins (with a maximum - lag of half the number of trajectrory frames) from an input trajectory - in memory (unwrapping first): +For example, + to calculate diffusion from multiple time origins (with a maximum lag of half the number of trajectrory frames) from an input trajectory in memory (unwrapping first): \end_layout \begin_layout LyX-Code @@ -45926,9 +48926,9 @@ runanalysis calcdiffusion crdset TZ2 out tz2.diff.dat :WAT@O \end_layout \begin_layout Standard -To do the same calculation using MPI parallelism, it will first be necessary - to unwrap the trajectory (non-MPI parallel, but OpenMP parallelism can - be used): +To do the same calculation using MPI parallelism, + it will first be necessary to unwrap the trajectory (non-MPI parallel, + but OpenMP parallelism can be used): \end_layout \begin_layout LyX-Code @@ -45968,8 +48968,7 @@ calcstate \end_layout \begin_layout LyX-Code -calcstate {state <ID>,<dataset>,<min>,<max>[,<dataset1>,<min1>,<max1>]} - ... +calcstate {state <ID>,<dataset>,<min>,<max>[,<dataset1>,<min1>,<max1>]} ... \end_layout \begin_layout LyX-Code @@ -45994,13 +48993,13 @@ state \begin_inset space ~ \end_inset -<ID>,<dataset>,<min>,<max> Define a state according to given data set and - criteria. - Multiple states can be given, and each state can have multiple criteria. - If multiple criteria are specified, each one must be satisfied in order - to assign the state. - If the same state is defined multiple times, the state will be assigned - if either criteria match. +<ID>,<dataset>,<min>,<max> Define a state according to given data set and criteria. + Multiple states can be given, + and each state can have multiple criteria. + If multiple criteria are specified, + each one must be satisfied in order to assign the state. + If the same state is defined multiple times, + the state will be assigned if either criteria match. \begin_inset Separator latexpar \end_inset @@ -46027,8 +49026,7 @@ undefined state \end_layout \begin_layout Description -<min>,<max> Frames with data set value above <min> and below <max> will - be assigned <ID>. +<min>,<max> Frames with data set value above <min> and below <max> will be assigned <ID>. \end_layout \end_deeper @@ -46146,22 +49144,20 @@ DataSets Created: \end_layout \begin_layout Description -<setname>[Xlifetimes] Number of times each state transitioned to each other - state. +<setname>[Xlifetimes] Number of times each state transitioned to each other state. \end_layout \begin_layout Description -<setname>[Xavglife] Average lifetime of each state before transitioning - to each other state. +<setname>[Xavglife] Average lifetime of each state before transitioning to each other state. \end_layout \begin_layout Description -<setname>[Xmaxlife] Maximum lifetime of each state before transitioning - to each other state. +<setname>[Xmaxlife] Maximum lifetime of each state before transitioning to each other state. \end_layout \begin_layout Description -<setname>[Xname] Name of each transition, format +<setname>[Xname] Name of each transition, + format \begin_inset Quotes eld \end_inset @@ -46173,19 +49169,18 @@ StateA->StateB \end_layout \begin_layout Description -<setname>[sCurve]:X State curves; lifetime curve for transitions from given - state to any other state. +<setname>[sCurve]:X State curves; + lifetime curve for transitions from given state to any other state. \end_layout \begin_layout Description -<setname>[tCurve]:X Transition curves; lifetime curve for transitions from - given state to other specific state. +<setname>[tCurve]:X Transition curves; + lifetime curve for transitions from given state to other specific state. \end_layout \end_deeper \begin_layout Standard -Data for the specified data set(s) that matches the given criteria will - be assigned a state index. +Data for the specified data set(s) that matches the given criteria will be assigned a state index. State indices start from 0 and match the order in which \series bold state @@ -46200,7 +49195,8 @@ undefined state \end_inset . - For example, the following input: + For example, + the following input: \end_layout \begin_layout LyX-Code @@ -46220,8 +49216,7 @@ angle a1 :19@O :12@H :12@N \end_layout \begin_layout LyX-Code -calcstate state D,d1,3.0,4.0 state A,a1,100,120 out state.dat curveout curve.agr - +calcstate state D,d1,3.0,4.0 state A,a1,100,120 out state.dat curveout curve.agr \backslash \end_layout @@ -46244,8 +49239,7 @@ D \begin_inset Quotes erd \end_inset - based on the distance from ':19@O' to ':12@N' (data set d1) being between - 3 and 4 Angstroms. + based on the distance from ':19@O' to ':12@N' (data set d1) being between 3 and 4 Angstroms. State index 1 is defined as a state named \begin_inset Quotes eld \end_inset @@ -46254,8 +49248,9 @@ A \begin_inset Quotes erd \end_inset - based on the angle between ':19@O', ':12@H', and ':12@N' (data set a1) - being between 100 and 120 degrees. + based on the angle between ':19@O', + ':12@H', + and ':12@N' (data set a1) being between 100 and 120 degrees. The output in state.dat might look like: \end_layout @@ -46304,7 +49299,8 @@ A \end_layout \begin_layout Standard -where the values in column d1_a1 refer to state index: -1 is undefined, +where the values in column d1_a1 refer to state index: + -1 is undefined, 0 is state \begin_inset Quotes eld \end_inset @@ -46313,7 +49309,8 @@ D \begin_inset Quotes erd \end_inset -, and 1 is state +, + and 1 is state \begin_inset Quotes eld \end_inset @@ -46368,46 +49365,51 @@ Lifetime curves (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-lifetime" +nolink "false" \end_inset - for further explanation) are calculated for transitions from each state - to any other state (aspect [sCurve]) and each state to each other state - (aspect [tCurve]). + for further explanation) are calculated for transitions from each state to any other state (aspect [sCurve]) and each state to each other state (aspect [tCurve]). In this case there will be 3 sCurves and 4 tCurves: \end_layout \begin_layout LyX-Code -d1_a1[sCurve]:0 "Undefined" (double), size is 10 +d1_a1[sCurve]:0 "Undefined" (double), + size is 10 \end_layout \begin_layout LyX-Code -d1_a1[sCurve]:1 "D" (double), size is 3 +d1_a1[sCurve]:1 "D" (double), + size is 3 \end_layout \begin_layout LyX-Code -d1_a1[sCurve]:2 "A" (double), size is 1 +d1_a1[sCurve]:2 "A" (double), + size is 1 \end_layout \begin_layout LyX-Code -d1_a1[tCurve]:0 "Undefined->D" (double), size is 10 +d1_a1[tCurve]:0 "Undefined->D" (double), + size is 10 \end_layout \begin_layout LyX-Code -d1_a1[tCurve]:1 "D->Undefined" (double), size is 3 +d1_a1[tCurve]:1 "D->Undefined" (double), + size is 3 \end_layout \begin_layout LyX-Code -d1_a1[tCurve]:2 "Undefined->A" (double), size is 1 +d1_a1[tCurve]:2 "Undefined->A" (double), + size is 1 \end_layout \begin_layout LyX-Code -d1_a1[tCurve]:3 "A->Undefined" (double), size is 1 +d1_a1[tCurve]:3 "A->Undefined" (double), + size is 1 \end_layout \begin_layout Standard -Lifetime analysis from each state to any other state is directed to the - file specified by +Lifetime analysis from each state to any other state is directed to the file specified by \series bold stateout \series default @@ -46423,15 +49425,18 @@ Where \family typewriter #Index \family default - is the state index, + is the state index, + \family typewriter N \family default - is the number of lifetimes in that state, + is the number of lifetimes in that state, + \family typewriter Average \family default - is the average lifetime while in that state (in frames), + is the average lifetime while in that state (in frames), + \family typewriter Max \family default @@ -46443,8 +49448,8 @@ State \end_layout \begin_layout Standard -Finally, lifetime analysis of transitions from each state to each other - state is directory to the file specified by transout and has format: +Finally, + lifetime analysis of transitions from each state to each other state is directory to the file specified by transout and has format: \end_layout \begin_layout LyX-Code @@ -46456,12 +49461,13 @@ Where \family typewriter #N \family default - is the number of transitions, + is the number of transitions, + \family typewriter Average \family default - is the average lifetime (in frames) in the first state before transitioning - to the second state, + is the average lifetime (in frames) in the first state before transitioning to the second state, + \family typewriter Max \family default @@ -46486,6 +49492,8 @@ cluster \begin_layout LyX-Code cluster \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -46515,7 +49523,8 @@ cluster \end_layout \begin_layout LyX-Code - Algorithm Args: [{hieragglo|dbscan|kmeans|dpeaks}] + Algorithm Args: + [{hieragglo|dbscan|kmeans|dpeaks}] \end_layout \begin_layout LyX-Code @@ -46555,8 +49564,7 @@ cluster \end_layout \begin_layout LyX-Code - [{dme|rms|srmsd|qrmsd} [mass] [nofit] [<mask>]] [{euclid|manhattan}] [wgt - <list>] + [{dme|rms|srmsd|qrmsd} [mass] [nofit] [<mask>]] [{euclid|manhattan}] [wgt <list>] \end_layout \begin_layout LyX-Code @@ -46658,8 +49666,7 @@ cluster \end_inset set>] Name of COORDS data set to cluster on and/or use for coordinate output. - If not specified the default COORDS set will be generated and used unless - + If not specified the default COORDS set will be generated and used unless \series bold nocoords \series default @@ -46671,15 +49678,14 @@ nocoords \begin_inset space ~ \end_inset -<dset0>[,<dset1>,...] Distance between frames calculated using specified data - set(s). +<dset0>[,<dset1>,...] Distance between frames calculated using specified data set(s). Currently 1D scalar sets and COORDS sets are supported. \end_layout \begin_deeper \begin_layout Description -[nocoords] Do not use a COORDS data set; distance metrics that require coordinat -es and coordinate output will be disabled. +[nocoords] Do not use a COORDS data set; + distance metrics that require coordinates and coordinate output will be disabled. \end_layout \end_deeper @@ -46720,8 +49726,8 @@ cnvtset \end_deeper \begin_layout Description -[useframesincache] If a pairwise cache is specified, cluster on the frames - stored in the cache. +[useframesincache] If a pairwise cache is specified, + cluster on the frames stored in the cache. \end_layout \begin_layout Standard @@ -46742,8 +49748,7 @@ hieragglo (Default) Use hierarchical agglomerative (bottom-up) approach. \begin_inset space ~ \end_inset -<e>] Finish clustering when minimum distance between clusters is greater - than +<e>] Finish clustering when minimum distance between clusters is greater than \series bold <e> \series default @@ -46767,7 +49772,8 @@ hieragglo (Default) Use hierarchical agglomerative (bottom-up) approach. \series bold linkage] \series default - Single-linkage; use the shortest distance between members of two clusters. + Single-linkage; + use the shortest distance between members of two clusters. \end_layout \begin_layout Description @@ -46775,8 +49781,8 @@ linkage] \series bold averagelinkage] \series default - Average-linkage (default); use the average distance between members of - two clusters. + Average-linkage (default); + use the average distance between members of two clusters. \end_layout \begin_layout Description @@ -46784,7 +49790,8 @@ averagelinkage] \series bold [complete] \series default - Complete-linkage; use the maximum distance between members of two clusters. + Complete-linkage; + use the maximum distance between members of two clusters. \end_layout \begin_layout Description @@ -46838,8 +49845,7 @@ epsilon \begin_inset space ~ \end_inset -<k>] Generate K-dist plot for help in determining DBSCAN parameters (see - below). +<k>] Generate K-dist plot for help in determining DBSCAN parameters (see below). \end_layout \begin_layout Description @@ -46877,8 +49883,8 @@ epsilon \end_layout \begin_layout Description -[noise] If specified, treat all points within epsilon of another cluster - as noise. +[noise] If specified, + treat all points within epsilon of another cluster as noise. \end_layout \begin_layout Description @@ -46886,10 +49892,8 @@ epsilon \begin_inset space ~ \end_inset -<density_vs_dist_file>] File to write density versus minimum distance to - point with next highest density. - This can be used to determine appropriate cutoffs for distance and density - in a subsequent step with +<density_vs_dist_file>] File to write density versus minimum distance to point with next highest density. + This can be used to determine appropriate cutoffs for distance and density in a subsequent step with \series bold choosepoints \series default @@ -46913,10 +49917,9 @@ manual \begin_inset space ~ \end_inset -auto}] Specify whether clusters will be chosen based on specified distance/densi -ty cutoffs, or automatically. - If not specified only the density vs distance file will be written and - no clustering will be performed. +auto}] Specify whether clusters will be chosen based on specified distance/density cutoffs, + or automatically. + If not specified only the density vs distance file will be written and no clustering will be performed. Currently \series bold manual @@ -46945,8 +49948,8 @@ choosepoints \series bold manual \series default -, points with minimum distance greather than or equal to <distcut> and density - greater than or equal to <densitycut> will be chosen. +, + points with minimum distance greather than or equal to <distcut> and density greater than or equal to <densitycut> will be chosen. \end_layout \begin_layout Description @@ -46966,8 +49969,8 @@ choosepoints \series bold automatic \series default -, the calculated running average of density versus distance will be written - to <runavg file>. +, + the calculated running average of density versus distance will be written to <runavg file>. \end_layout \begin_layout Description @@ -46983,13 +49986,12 @@ choosepoints \series bold automatic \series default -, distance minus the running average for each point will be written to this - file. +, + distance minus the running average for each point will be written to this file. \end_layout \begin_layout Description -[gauss] Calculate density with Gaussian kernels instead of using discrete - density. +[gauss] Calculate density with Gaussian kernels instead of using discrete density. \end_layout \end_deeper @@ -47035,8 +50037,7 @@ randompoint \begin_inset space ~ \end_inset -<iteration>] Algorithm will run until frames no longer change clusters of - <iteration> iterations are reached (default 100). +<iteration>] Algorithm will run until frames no longer change clusters of <iteration> iterations are reached (default 100). \end_layout \end_deeper @@ -47061,8 +50062,8 @@ srmsd} \series bold rms \series default -) For COORDS data, distance between coordinate frames calculated via best-fit - coordinate RMSD using atoms in +) For COORDS data, + distance between coordinate frames calculated via best-fit coordinate RMSD using atoms in \series bold <mask> \series default @@ -47075,6 +50076,7 @@ srmsd \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_symmrmsd" +nolink "false" \end_inset @@ -47100,9 +50102,8 @@ qrmsd \begin_inset space ~ \end_inset -[<mask>] For COORDS data, distance between coordinate frames calculated - using best-fit quaternion RMSD (can be 15-20% faster than regular RMSD) - using atoms in +[<mask>] For COORDS data, + distance between coordinate frames calculated using best-fit quaternion RMSD (can be 15-20% faster than regular RMSD) using atoms in \series bold <mask> \series default @@ -47120,8 +50121,9 @@ dme \begin_inset space ~ \end_inset -[<mask>] For COORDS data, distance between coordinate frames calculated - using distance-RMSD (aka DME, +[<mask>] For COORDS data, + distance between coordinate frames calculated using distance-RMSD (aka DME, + \series bold \emph on distrmsd @@ -47135,13 +50137,11 @@ distrmsd \end_layout \begin_layout Description -euclid Use Euclidean distance (sqrt(SUM(distance^2))) when more than one - data set has been specified (default). +euclid Use Euclidean distance (sqrt(SUM(distance^2))) when more than one data set has been specified (default). \end_layout \begin_layout Description -manhatttan Use Manhattan distance (SUM(distance)) when more than one data - set has been specified. +manhatttan Use Manhattan distance (SUM(distance)) when more than one data set has been specified. \end_layout \begin_layout Description @@ -47149,16 +50149,14 @@ wgt \begin_inset space ~ \end_inset -<list> Factor to multiply distances from each metric by in a comma-separated - list. +<list> Factor to multiply distances from each metric by in a comma-separated list. Can be used to adjust the contribution from each metric. Default is 1 for each metric. Output from the \series bold metricstats \series default - keyword can be used to determine the relative contribution of each metric - to the distance. + keyword can be used to determine the relative contribution of each metric to the distance. \end_layout \begin_layout Standard @@ -47170,8 +50168,7 @@ Pairwise Distance Matrix Options: \begin_inset space ~ \end_inset -<name>] Pairwise cache DataSet/File name to use for loading/saving pairwise - distances. +<name>] Pairwise cache DataSet/File name to use for loading/saving pairwise distances. \end_layout \begin_deeper @@ -47180,11 +50177,13 @@ Pairwise Distance Matrix Options: \begin_inset space ~ \end_inset -<file>] File name to use for pairwise cache; if not specified and +<file>] File name to use for pairwise cache; + if not specified and \series bold 'pairdist' \series default - specified, uses + specified, + uses \series bold 'pairdist' \series default @@ -47193,8 +50192,8 @@ Pairwise Distance Matrix Options: \end_deeper \begin_layout Description -[pwrecalc] If the loaded pairwise distance matrix does not match the current - setup, force recalculation. +[pwrecalc] If the loaded pairwise distance matrix does not match the current setup, + force recalculation. \end_layout \begin_layout Description @@ -47219,7 +50218,8 @@ pairdist pairdist \series default not specified). - NOTE: If sieving was performed only the calculated distances are saved. + NOTE: + If sieving was performed only the calculated distances are saved. \end_layout \begin_layout Description @@ -47243,11 +50243,11 @@ disk \begin_inset space ~ \end_inset -none}] Cache pairwise distance data in memory (default), to disk, or disable - pairwise caching. +none}] Cache pairwise distance data in memory (default), + to disk, + or disable pairwise caching. No caching will save memory but be extremely slow. - Caching to disk will likely be slow unless writing to a fast storage device - (e.g. + Caching to disk will likely be slow unless writing to a fast storage device (e.g. SSD) - data is saved to a file named 'CpptrajPairwiseCache'. \end_layout @@ -47265,7 +50265,8 @@ Sieving Options: <#> \series default frame. - After clustering, all other frames will be added to clusters. + After clustering, + all other frames will be added to clusters. \end_layout \begin_layout Description @@ -47273,7 +50274,8 @@ Sieving Options: \series bold sieve \series default - is specified, select initial frames to cluster randomly. + is specified, + select initial frames to cluster randomly. \end_layout \begin_layout Description @@ -47281,12 +50283,12 @@ sieve \begin_inset space ~ \end_inset -<#>] Seed for random sieving; if not set the wallclock time will be used. +<#>] Seed for random sieving; + if not set the wallclock time will be used. \end_layout \begin_layout Description -[includesieved_cdist] Include sieved frames in final cluster distance calculatio -n ( +[includesieved_cdist] Include sieved frames in final cluster distance calculation ( \bar under may be very slow \bar default @@ -47294,8 +50296,7 @@ may be very slow \end_layout \begin_layout Description -[includesieveincalc] Include sieved frames when calculating within-cluster - average ( +[includesieveincalc] Include sieved frames when calculating within-cluster average ( \bar under may be very slow \bar default @@ -47303,8 +50304,8 @@ may be very slow \end_layout \begin_layout Description -[sievetoframe] When restoring sieved frames, compare frame to every frame - in a cluster using a cutoff of +[sievetoframe] When restoring sieved frames, + compare frame to every frame in a cluster using a cutoff of \series bold <restore epsilon> \series default @@ -47312,12 +50313,13 @@ may be very slow \series bold epsilon \series default - when using DPeaks/DBscan) instead of the centroid; slower but more accurate. + when using DPeaks/DBscan) instead of the centroid; + slower but more accurate. \end_layout \begin_layout Description -[sievetocentroid] When restoring sieved frames, compare frame to cluster - centroid using a cutoff of +[sievetocentroid] When restoring sieved frames, + compare frame to cluster centroid using a cutoff of \series bold <restore epsilon> \series default @@ -47330,8 +50332,8 @@ epsilon \end_layout \begin_layout Description -[closestcentroid] When restoring sieved frames, add each frame to its closest - centroid. +[closestcentroid] When restoring sieved frames, + add each frame to its closest centroid. Default method for hieragglo/kmeans. \end_layout @@ -47344,8 +50346,7 @@ epsilon \begin_inset space ~ \end_inset -epsilon>] Epsilon to use for sievetoframe/sievetocentroid (default is algorithm - +epsilon>] Epsilon to use for sievetoframe/sievetocentroid (default is algorithm \series bold epsilon \series default @@ -47361,8 +50362,7 @@ Best Representative Options: \begin_inset space ~ \end_inset -{cumulative|centroid|cumulative_nosieve}] Method for choosing cluster representa -tive frames. +{cumulative|centroid|cumulative_nosieve}] Method for choosing cluster representative frames. \end_layout \begin_deeper @@ -47410,8 +50410,8 @@ Output Options: \begin_deeper \begin_layout Description -[gracecolor] Instead of cluster # vs frame, write cluster# + 1 (corresponding - to colors used by XMGRACE) vs frame. +[gracecolor] Instead of cluster # vs frame, + write cluster# + 1 (corresponding to colors used by XMGRACE) vs frame. Cluster #s larger than 15 are given the same color. Algorithms that calculate noise (e.g. DBSCAN) will assign noise points a color of 0 (blank). @@ -47423,8 +50423,7 @@ Output Options: \begin_inset space ~ \end_inset -<summaryfile>] Summarize each cluster with format '#Cluster Frames Frac - AvgDist Stdev Centroid AvgCDist': +<summaryfile>] Summarize each cluster with format '#Cluster Frames Frac AvgDist Stdev Centroid AvgCDist': \begin_inset Separator latexpar \end_inset @@ -47453,11 +50452,9 @@ Stdev Standard deviation of points in the cluster. \end_layout \begin_layout Description -Centroid Frame # of structure in cluster that has the lowest cumulative - distance to every other point. - If multiple representatives are being saved this column is replaced with - two columns for each representative, 'Rep' (representative frame #) and - 'RepScore' (score according to current best representative metric). +Centroid Frame # of structure in cluster that has the lowest cumulative distance to every other point. + If multiple representatives are being saved this column is replaced with two columns for each representative, + 'Rep' (representative frame #) and 'RepScore' (score according to current best representative metric). \end_layout \begin_layout Description @@ -47479,7 +50476,8 @@ AvgCDist Average distance of this cluster to every other cluster. \begin_inset Newline newline \end_inset -#Clustering: <X> clusters <N> frames +#Clustering: + <X> clusters <N> frames \begin_inset Newline newline \end_inset @@ -47491,19 +50489,23 @@ AvgCDist Average distance of this cluster to every other cluster. \begin_inset Newline newline \end_inset -#DBI: <DBI> +#DBI: + <DBI> \begin_inset Newline newline \end_inset -#pSF: <PSF> +#pSF: + <PSF> \begin_inset Newline newline \end_inset -#SSR/SST: <SSR/SST> +#SSR/SST: + <SSR/SST> \begin_inset Newline newline \end_inset -#Algorithm: <algorithm-specific info> +#Algorithm: + <algorithm-specific info> \begin_inset Newline newline \end_inset @@ -47515,18 +50517,21 @@ AvgCDist Average distance of this cluster to every other cluster. \begin_inset Newline newline \end_inset -#Representative frames: <representative frame list> +#Representative frames: + <representative frame list> \begin_inset Newline newline \end_inset -Where <X> is the number of clusters, <N> is the number of frames clustered, - <I> ranges from 0 to <X>-1, <AVG> is the average distance of all frames - in that cluster to the centroid, <DBI> is the Davies-Bouldin Index, <pSF> - is the pseudo-F statistic, <SSR/SST> is the SSR/SST ratio, and <representative - frame list> contains the frame # of the representative frame (i.e. +Where <X> is the number of clusters, + <N> is the number of frames clustered, + <I> ranges from 0 to <X>-1, + <AVG> is the average distance of all frames in that cluster to the centroid, + <DBI> is the Davies-Bouldin Index, + <pSF> is the pseudo-F statistic, + <SSR/SST> is the SSR/SST ratio, + and <representative frame list> contains the frame # of the representative frame (i.e. closest to the centroid) for each cluster. - Each cluster has a line made up of characters (one for each frame) where - '.' means 'not in cluster' and 'X' means 'in cluster'. + Each cluster has a line made up of characters (one for each frame) where '.' means 'not in cluster' and 'X' means 'in cluster'. \end_layout \begin_layout Description @@ -47538,9 +50543,7 @@ Where <X> is the number of clusters, <N> is the number of frames clustered, \begin_inset space ~ \end_inset -<splitfile>] Summarize each cluster based on which of its frames fall in - portions of the trajectory specified by splitframe with format '#Cluster - Total Frac C# Color NumInX ... +<splitfile>] Summarize each cluster based on which of its frames fall in portions of the trajectory specified by splitframe with format '#Cluster Total Frac C# Color NumInX ... FracX ... FirstX ... RepX': @@ -47580,13 +50583,11 @@ FracX Fraction of frames in Xth portion of the trajectory. \end_layout \begin_layout Description -FirstX Frame in the Xth portion of the trajectory where the cluster is first - observed. +FirstX Frame in the Xth portion of the trajectory where the cluster is first observed. \end_layout \begin_layout Description -RepX Best representative frame in the Xth portion of the trajectory for - that cluster. +RepX Best representative frame in the Xth portion of the trajectory for that cluster. \end_layout \end_deeper @@ -47599,7 +50600,9 @@ RepX Best representative frame in the Xth portion of the trajectory for \series bold summarysplit \series default -, frame or comma-separated list of frames to split the trajectory at, e.g. +, + frame or comma-separated list of frames to split the trajectory at, + e.g. '100,200,300'. \end_layout @@ -47608,8 +50611,7 @@ summarysplit \begin_inset space ~ \end_inset -<filename>] Write number of unique clusters observed in a given time window - to <filename>. +<filename>] Write number of unique clusters observed in a given time window to <filename>. \end_layout \begin_deeper @@ -47631,9 +50633,7 @@ clustersvtime \begin_inset space ~ \end_inset -<prefix>] Write average cluster silhouette value for each cluster to '<prefix>.cl -uster.dat' and cluster silhouette value for each individual frame to '<prefix>.fra -me.dat'. +<prefix>] Write average cluster silhouette value for each cluster to '<prefix>.cluster.dat' and cluster silhouette value for each individual frame to '<prefix>.frame.dat'. \end_layout \begin_deeper @@ -47642,12 +50642,13 @@ me.dat'. \begin_inset space ~ \end_inset -{idx|frm}] Choose what indices to write to the cluster silhouette frame - file: +{idx|frm}] Choose what indices to write to the cluster silhouette frame file: + \series bold idx \series default - (the default) specifies the sorted index (starting from 0), + (the default) specifies the sorted index (starting from 0), + \series bold frm \series default @@ -47660,8 +50661,8 @@ frm \begin_inset space ~ \end_inset -<file>] When more than one metric in use, print the fraction contribution - of each metric to the total distance. +<file>] When more than one metric in use, + print the fraction contribution of each metric to the total distance. This information can be used in conjunction with the \series bold wgt @@ -47675,14 +50676,18 @@ wgt \begin_inset Newline newline \end_inset -Where #Metric is the metric number, FracAv and FracSD are the average and - standard devation of the fraction contribution of that metric to the total - distance (taking into account distance type and weights), Avg, SD, Min, - and Max are the average, standard devation, minimum, and maximum of the - unmodified distance contribution from that metric, and Description is the - metric description. - This may be slow for large numbers of frames, so it is advisable to run - this on a smaller (potentially sieved) number of frames. +Where #Metric is the metric number, + FracAv and FracSD are the average and standard devation of the fraction contribution of that metric to the total distance (taking into account distance type and weights), + Avg, + SD, + Min, + and Max are the average, + standard devation, + minimum, + and maximum of the unmodified distance contribution from that metric, + and Description is the metric description. + This may be slow for large numbers of frames, + so it is advisable to run this on a smaller (potentially sieved) number of frames. \end_layout \begin_layout Description @@ -47706,11 +50711,13 @@ normframe]] Write cluster population vs time to \series bold <file> \series default -; if +; + if \series bold normpop \series default - specified normalize each cluster to 1.0; if + specified normalize each cluster to 1.0; + if \series bold normframe \series default @@ -47722,8 +50729,9 @@ normframe \emph on [Lifetime] \emph default - for each cluster; for each frame, have 1 if the cluster is present and - 0 otherwise. + for each cluster; + for each frame, + have 1 if the cluster is present and 0 otherwise. Can be used with \series bold \emph on @@ -47737,6 +50745,7 @@ reference "subsec:cpptraj-lifetime" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -47771,8 +50780,7 @@ singlerepout \begin_inset space ~ \end_inset -<trajfilename> Write all representative frames to single trajectory named - <trajfilename>. +<trajfilename> Write all representative frames to single trajectory named <trajfilename>. \end_layout \begin_deeper @@ -47790,9 +50798,8 @@ repout \begin_inset space ~ \end_inset -<repprefix> Write representative frames to separate files named <repprefix>.X.<ext ->, where X is the cluster number and <ext> is a format-specific filename - extension. +<repprefix> Write representative frames to separate files named <repprefix>.X.<ext>, + where X is the cluster number and <ext> is a format-specific filename extension. \end_layout \begin_deeper @@ -47818,9 +50825,8 @@ avgout \begin_inset space ~ \end_inset -<avgprefix> Write average structure for each cluster to separate files named - <avgprefix>.X.<ext>, where X is the cluster number and <ext> is a format-specific - filename extension. +<avgprefix> Write average structure for each cluster to separate files named <avgprefix>.X.<ext>, + where X is the cluster number and <ext> is a format-specific filename extension. \end_layout \begin_deeper @@ -47842,8 +50848,8 @@ summary \series bold summarysplit \series default -, assign clusters to loaded reference structures if RMSD to that reference - is less than specified cutoff. +, + assign clusters to loaded reference structures if RMSD to that reference is less than specified cutoff. This will be printed in \series bold summary @@ -47852,8 +50858,8 @@ summary \series bold summarysplit \series default - files as 2 extra columns: 'Name' (reference name) and 'RMS' (RMS to cluster - centroid). + files as 2 extra columns: + 'Name' (reference name) and 'RMS' (RMS to cluster centroid). \end_layout \begin_deeper @@ -47909,8 +50915,8 @@ clustersvtime \end_layout \begin_layout Description -<name>[Pop]:<X> Cluster X population vs time; index X corresponds to cluster - number. +<name>[Pop]:<X> Cluster X population vs time; + index X corresponds to cluster number. \end_layout \begin_layout Description @@ -47919,36 +50925,37 @@ clustersvtime lifetime \series default only). - For each cluster X, contain 1 if cluster present that frame, 0 otherwise. + For each cluster X, + contain 1 if cluster present that frame, + 0 otherwise. \end_layout \end_deeper \begin_layout Standard \shape italic -Note cluster population vs time data sets are not generated until the analysis - has been run. +Note cluster population vs time data sets are not generated until the analysis has been run. \end_layout \begin_layout Standard -Cluster input frames using the specified input data sets (can be any combination - of coordinates/COORDS and/or 1D scalar data) with the specified clustering - algorithm. - For COORDS sets, the distance metric can be RMSD, symmetry-corrected RMSD, +Cluster input frames using the specified input data sets (can be any combination of coordinates/COORDS and/or 1D scalar data) with the specified clustering algorithm. + For COORDS sets, + the distance metric can be RMSD, + symmetry-corrected RMSD, or DME. - When multiple data sets are present, the total distance can be determined - either via the Euclidean (default) or Manhattan method. + When multiple data sets are present, + the total distance can be determined either via the Euclidean (default) or Manhattan method. \end_layout \begin_layout Standard -In order to speed up clustering of large trajectories, the +In order to speed up clustering of large trajectories, + the \series bold sieve \series default keyword can be used. - In addition, subsequent clustering calculations can be sped up by writing/readi -ng calculated pair distances between each frame to/from a file specified - by + In addition, + subsequent clustering calculations can be sped up by writing/reading calculated pair distances between each frame to/from a file specified by \series bold pairdist \series default @@ -47968,7 +50975,8 @@ pairdist \end_layout \begin_layout Standard -Example: cluster on a specific distance: +Example: + cluster on a specific distance: \end_layout \begin_layout LyX-Code @@ -47980,10 +50988,10 @@ cluster data endToEnd clusters 10 epsilon 3.0 summary summary.dat info info.dat \end_layout \begin_layout Standard -Example: two clustering commands on the CA atoms of residues 2-10 using - average-linkage, stopping when either 3 clusters are reached or the minimum - distance between clusters is 4.0 for the first, and 8 clusters or minimum - distance 2.0 for the second. +Example: + two clustering commands on the CA atoms of residues 2-10 using average-linkage, + stopping when either 3 clusters are reached or the minimum distance between clusters is 4.0 for the first, + and 8 clusters or minimum distance 2.0 for the second. The first command will write the cluster number vs time to \begin_inset Quotes eld \end_inset @@ -48001,13 +51009,11 @@ avg.summary.dat \end_inset . - The second clustering command will use the pairwise distance matrix from - the first to speed things up: + The second clustering command will use the pairwise distance matrix from the first to speed things up: \end_layout \begin_layout LyX-Code -cluster C1 :2-10 clusters 3 epsilon 4.0 info C1.info out cnumvtime.dat summary - avg.summary.dat pairdist PW +cluster C1 :2-10 clusters 3 epsilon 4.0 info C1.info out cnumvtime.dat summary avg.summary.dat pairdist PW \end_layout \begin_layout LyX-Code @@ -48019,43 +51025,54 @@ Clustering Success Metrics \end_layout \begin_layout Standard -The Davies-Bouldin Index (DBI, reported in the +The Davies-Bouldin Index (DBI, + reported in the \series bold info \series default - file) measures sum over all clusters of the within cluster scatter to the - between cluster separation; + file) measures sum over all clusters of the within cluster scatter to the between cluster separation; + \series bold -the smaller the DBI, the better +the smaller the DBI, + the better \series default . - The DBI is defined as the average, for all clusters X, of fred, where fred(X) - = max, across other clusters Y, of (Cx + Cy)/dXY. - Here Cx is the average distance from points in X to the centroid, similarly - Cy, and dXY is the distance between cluster centroids. + The DBI is defined as the average, + for all clusters X, + of fred, + where fred(X) = max, + across other clusters Y, + of (Cx + Cy)/dXY. + Here Cx is the average distance from points in X to the centroid, + similarly Cy, + and dXY is the distance between cluster centroids. \end_layout \begin_layout Standard -The pseudo-F statistic (pSF, reported in the +The pseudo-F statistic (pSF, + reported in the \series bold info \series default file) is another measure of clustering goodness. - It is intended to capture the 'tightness' of clusters, and is in essence - a ratio of the mean sum of squares between groups to the mean sum of squares - within group. + It is intended to capture the 'tightness' of clusters, + and is in essence a ratio of the mean sum of squares between groups to the mean sum of squares within group. \series bold Higher values of pseudo-F are good \series default . - Generally, one selects a cluster-count that gives a peak in the pseudo-f - statistic. - Formula: A/B, where A = (T - P)/(G-1), and B = P / (n-G). - Here n is the number of points, G is the number of clusters, T is the total - distance from the all-data centroid, and P is the sum (for all clusters) - of the distances from the cluster centroid. + Generally, + one selects a cluster-count that gives a peak in the pseudo-f statistic. + Formula: + A/B, + where A = (T - P)/(G-1), + and B = P / (n-G). + Here n is the number of points, + G is the number of clusters, + T is the total distance from the all-data centroid, + and P is the sum (for all clusters) of the distances from the cluster centroid. \end_layout @@ -48064,23 +51081,19 @@ The SSR/SST (reported in the \series bold info \series default - file) is the ratio of the sum of squares regression (SSR or between sum - of squares) and the total sum of squares (SST). - The SSR is calculated via the sum of the squared distances of all points - within a given cluster to its centroid, and summed together for all clusters. - The total sum of squares is the sum of squared distances for all frames - to the overall mean. - The ratio lies between 0 and 1 and is supposed to give the fraction of - explained variance by the data. + file) is the ratio of the sum of squares regression (SSR or between sum of squares) and the total sum of squares (SST). + The SSR is calculated via the sum of the squared distances of all points within a given cluster to its centroid, + and summed together for all clusters. + The total sum of squares is the sum of squared distances for all frames to the overall mean. + The ratio lies between 0 and 1 and is supposed to give the fraction of explained variance by the data. The ratio should increase with cluster count. \series bold -There should be a point at which adding more clusters does not substantially - increase SSR/SST +There should be a point at which adding more clusters does not substantially increase SSR/SST \series default -, i.e. - the point where increasing the cluster count does not add new information - and should not increase further. +, + i.e. + the point where increasing the cluster count does not add new information and should not increase further. \end_layout \begin_layout Standard @@ -48096,15 +51109,16 @@ silidx Values of 1 indicate the point is very similar to other points in the cluster, i.e. it is well-clustered. - Values of -1 indicate the point is dissimilar and may fit better in a neighbori -ng cluster. + Values of -1 indicate the point is dissimilar and may fit better in a neighboring cluster. Values of 0 indicate the point is on a border between two clusters. The \series bold sil <prefix> \series default keyword will write two files. - The first, <prefix>.cluster.dat, which has the format: + The first, + <prefix>.cluster.dat, + which has the format: \end_layout \begin_layout LyX-Code @@ -48112,15 +51126,18 @@ sil <prefix> \end_layout \begin_layout Standard -Where #Cluster is the cluster number, <Si> is the average silhouette value - for all frames in the cluster, and StdDev is the standard deviation of - the silhouette value for all frames in the cluster. - The second, <prefix>.frame.dat, will contain the silhouette value for each - frame grouped by cluster, with indices controlled by the +Where #Cluster is the cluster number, + <Si> is the average silhouette value for all frames in the cluster, + and StdDev is the standard deviation of the silhouette value for all frames in the cluster. + The second, + <prefix>.frame.dat, + will contain the silhouette value for each frame grouped by cluster, + with indices controlled by the \series bold silidx \series default - keyword (default sorted by ascending silhouette value), e.g.: + keyword (default sorted by ascending silhouette value), + e.g.: \end_layout \begin_layout LyX-Code @@ -48194,11 +51211,10 @@ silidx \begin_layout Standard The last two lines will contain the overall average silhouette value twice, one at the lowest index and one at the highest. - The file is formatted in this way to make it easy to visualize each cluster - silhouette relative to the average value in e.g. + The file is formatted in this way to make it easy to visualize each cluster silhouette relative to the average value in e.g. the XMGRACE plotting program. - If the clustering results in one or more cluster with silhouette values - completely below the average line, the clustering is likely poor. + If the clustering results in one or more cluster with silhouette values completely below the average line, + the clustering is likely poor. \end_layout \begin_layout Subsubsection* @@ -48214,30 +51230,26 @@ name "subsec:cpptraj_dbscan_Hints" \begin_layout Standard It is not always obvious what parameters to set for DBSCAN. - You can get a rough idea of what to set 'mindist' and 'epsilon' to by generatin -g a so-called "K-dist" plot with the 'kidst <k>' option. - The K-dist plot shows for each point (X axis) the Kth farthest distance - (Y axis), sorted by decreasing distance. - You supply the same distance metric and sieve parameters you want to use - for the actual clustering, but nothing else. + You can get a rough idea of what to set 'mindist' and 'epsilon' to by generating a so-called "K-dist" plot with the 'kidst <k>' option. + The K-dist plot shows for each point (X axis) the Kth farthest distance (Y axis), + sorted by decreasing distance. + You supply the same distance metric and sieve parameters you want to use for the actual clustering, + but nothing else. For example: \end_layout \begin_layout LyX-Code -cluster C0 dbscan kdist 4 rms :1-4@CA sieve 10 loadpairdist pairdist CpptrajPair -Dist +cluster C0 dbscan kdist 4 rms :1-4@CA sieve 10 loadpairdist pairdist CpptrajPairDist \end_layout \begin_layout Standard -The K-dist plot will be named <prefix>.<k>.dat, with the default prefix being - 'Kdist' (in this case the file name would be Kdist.4.dat). - The K-dist plot usually looks like a curve with an initially steep slope - that gradually decreases. - Around where the initial part of the curve starts to flatten out (indicating - an increase in density) is around where epsilon should be set; minpoints - is set to whatever <k> was. - It has been suggested that the shape of the K-dist curve doesn't change - too much after Kdist=4, but users are encouraged to experiment. +The K-dist plot will be named <prefix>.<k>.dat, + with the default prefix being 'Kdist' (in this case the file name would be Kdist.4.dat). + The K-dist plot usually looks like a curve with an initially steep slope that gradually decreases. + Around where the initial part of the curve starts to flatten out (indicating an increase in density) is around where epsilon should be set; + minpoints is set to whatever <k> was. + It has been suggested that the shape of the K-dist curve doesn't change too much after Kdist=4, + but users are encouraged to experiment. \end_layout \begin_layout Subsubsection* @@ -48245,9 +51257,7 @@ Using 'dpeaks' clustering \end_layout \begin_layout Standard -The 'dpeaks' (density peaks) algorithm attempts to find clusters by identifying - points in high density regions which are far from other points of high - density +The 'dpeaks' (density peaks) algorithm attempts to find clusters by identifying points in high density regions which are far from other points of high density \begin_inset CommandInset citation LatexCommand citep key "Rodriguez2014" @@ -48258,16 +51268,14 @@ literal "true" . There are two ways these points can be chosen. The first and recommended way is manually. - In this method, clustering if first run with + In this method, + clustering if first run with \series bold choosepoints \series default - not specified to generate a plot containing density versus minimum distance - to point with next highest density (the decision graph). - Appropriate cut offs for distance and density can then be chosen based - on visual inspection; cutoffs should be chosen so that they select points - that have both a high density and a high distance to point with next highest - density. + not specified to generate a plot containing density versus minimum distance to point with next highest density (the decision graph). + Appropriate cut offs for distance and density can then be chosen based on visual inspection; + cutoffs should be chosen so that they select points that have both a high density and a high distance to point with next highest density. Clustering can then be run again with \series bold distancecut @@ -48280,10 +51288,10 @@ densitycut \end_layout \begin_layout Standard -The second way is automatically; cpptraj will attempt to identify outliers - in the density vs distance plot based on distance from the running average. - Although this only requires a single pass, this method of choosing points - is not well-tested and currently not recommended. +The second way is automatically; + cpptraj will attempt to identify outliers in the density vs distance plot based on distance from the running average. + Although this only requires a single pass, + this method of choosing points is not well-tested and currently not recommended. \end_layout \begin_layout Subsubsection* @@ -48291,14 +51299,12 @@ The Binary pairwise matrix file format \end_layout \begin_layout Standard -When NetCDF is not present, the pairwise matrix file will be written in - binary. - The exact format depends on what version of cpptraj generated the file - (since earlier versions had no concept of 'sieve'). - The CpptrajPairDist file starts with a 4 byte header containing the characters - 'C' 'T' 'M' followed by the version number. - A quick way to figure out the version is to use the linux 'od' command - to output the first 4 bytes as hexadecimal, e.g.: +When NetCDF is not present, + the pairwise matrix file will be written in binary. + The exact format depends on what version of cpptraj generated the file (since earlier versions had no concept of 'sieve'). + The CpptrajPairDist file starts with a 4 byte header containing the characters 'C' 'T' 'M' followed by the version number. + A quick way to figure out the version is to use the linux 'od' command to output the first 4 bytes as hexadecimal, + e.g.: \end_layout \begin_layout LyX-Code @@ -48318,7 +51324,9 @@ Version \begin_inset space ~ \end_inset -0: Two 4-byte integers: # of rows and # of elements. +0: + Two 4-byte integers: + # of rows and # of elements. \end_layout @@ -48327,7 +51335,8 @@ Version \begin_inset space ~ \end_inset -1: Two 8-byte unsigned integers (equivalent to size_t on most systems): +1: + Two 8-byte unsigned integers (equivalent to size_t on most systems): # of rows and # of elements. \end_layout @@ -48337,15 +51346,19 @@ Version \begin_inset space ~ \end_inset -2: Three 8 byte unsigned integers: original # of rows, actual # of rows, +2: + Three 8 byte unsigned integers: + original # of rows, + actual # of rows, and sieve value. \end_layout \begin_layout Standard -This is followed by the actual matrix data, stored as a single array of - floats (4 bytes). +This is followed by the actual matrix data, + stored as a single array of floats (4 bytes). For versions 1 and 2 the number of elements is explicitly stored. - For version 2, to calculate the number of matrix elements you need to read: + For version 2, + to calculate the number of matrix elements you need to read: \end_layout \begin_layout LyX-Code @@ -48353,22 +51366,22 @@ Elements = (actual_rows * (actual_rows - 1)) / 2 \end_layout \begin_layout Standard -The cluster pair-distance matrix is an upper-right triangle matrix without - the diagonal (in row-major order), so the first element is the distance - between elements 0 and 1, the second is between elements 0 and 2, etc. +The cluster pair-distance matrix is an upper-right triangle matrix without the diagonal (in row-major order), + so the first element is the distance between elements 0 and 1, + the second is between elements 0 and 2, + etc. \end_layout \begin_layout Standard -In version 2 files, if the sieve value is greater than 1 that means original_row -s > actual_rows and there is an additional array of characters original_nrows - long, with 'T' if the row is being ignored (i.e. +In version 2 files, + if the sieve value is greater than 1 that means original_rows > actual_rows and there is an additional array of characters original_nrows long, + with 'T' if the row is being ignored (i.e. it was sieved out) and 'F' if the row is active (i.e. is active in the actual pairwise-distance matrix). \end_layout \begin_layout Standard -The code that cpptraj uses to read in CpptrajPairDist files is in ClusterMatrix: -:LoadFile() (ClusterMatrix.cpp). +The code that cpptraj uses to read in CpptrajPairDist files is in ClusterMatrix::LoadFile() (ClusterMatrix.cpp). \end_layout \begin_layout Subsubsection* @@ -48376,8 +51389,7 @@ The NetCDF pairwise matrix format \end_layout \begin_layout Standard -The default way to write pairwise matrix files as of version 6.0.0 is with - NetCDF. +The default way to write pairwise matrix files as of version 6.0.0 is with NetCDF. This will be set up with the following parameters: \end_layout @@ -48422,7 +51434,8 @@ n_rows Number of rows in the upper-triangle pairwise matrix. \end_layout \begin_layout Description -msize Actual size of the matrix; should be (nRows_ * (nRows_-1)) / 2; +msize Actual size of the matrix; + should be (nRows_ * (nRows_-1)) / 2; \end_layout \end_deeper @@ -48432,15 +51445,19 @@ Variables: \begin_deeper \begin_layout Description -sieve (integer, no dimension). +sieve (integer, + no dimension). Sieve value. \end_layout \begin_layout Description -matrix (float, dimension msize). - The pairwise matrix, flattened to 1 dimension. - Index calc is: i1 = i + 1; index = (((nRows_ * i) - ((i1 * i) / 2)) + j - - i1); +matrix (float, + dimension msize). + The pairwise matrix, + flattened to 1 dimension. + Index calc is: + i1 = i + 1; + index = (((nRows_ * i) - ((i1 * i) / 2)) + j - i1); \end_layout \begin_layout Description @@ -48448,7 +51465,8 @@ actual \begin_inset space ~ \end_inset -frames (integer, dimension n_rows). +frames (integer, + dimension n_rows). The actual frame numbers for which pairwise distances were calculated. \end_layout @@ -48491,11 +51509,13 @@ statsout \end_layout \begin_layout Description -deprot If specified, calculate fraction deprotonated instead of protonated. +deprot If specified, + calculate fraction deprotonated instead of protonated. \end_layout \begin_layout Description -fracplot If specified, calculate fraction protonated/deprotonated vs pH. +fracplot If specified, + calculate fraction protonated/deprotonated vs pH. \end_layout \begin_deeper @@ -48518,8 +51538,7 @@ Data Sets Generated \end_deeper \begin_layout Standard -Calculate statistics for constant pH simulation data previously read in - with +Calculate statistics for constant pH simulation data previously read in with \series bold \emph on readdata @@ -48529,6 +51548,7 @@ readdata \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_cphdatafile" +nolink "false" \end_inset @@ -48542,8 +51562,8 @@ Solvent pH is <pH> \end_layout \begin_layout LyX-Code -<res name> <res num> : Offset <off> Pred <pred> Frac Prot <frac> Transitions - <#trans> +<res name> <res num> : + Offset <off> Pred <pred> Frac Prot <frac> Transitions <#trans> \end_layout \begin_layout LyX-Code @@ -48555,7 +51575,8 @@ Solvent pH is <pH> \end_layout \begin_layout LyX-Code -Average total molecular protonation: <avg> +Average total molecular protonation: + <avg> \end_layout \begin_layout Standard @@ -48563,11 +51584,13 @@ Where \series bold <off> \series default - is offset from predicted, + is offset from predicted, + \series bold <pred> \series default - is predicted pH, and <#trans> is the number of transitions. + is predicted pH, + and <#trans> is the number of transitions. A line is printed for each residue. This functionality is similar to the \series bold @@ -48577,6 +51600,7 @@ cphstats \begin_inset CommandInset ref LatexCommand vref reference "sec:cphstats" +nolink "false" \end_inset @@ -48601,6 +51625,7 @@ readensembledata \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_readensembledata" +nolink "false" \end_inset @@ -48614,6 +51639,7 @@ sortensembledata \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_sortensembledata" +nolink "false" \end_inset @@ -48621,8 +51647,9 @@ reference "subsec:cpptraj_sortensembledata" \end_layout \begin_layout Standard -For example, to read in constant pH data from constant pH REMD, sort and - analyze: +For example, + to read in constant pH data from constant pH REMD, + sort and analyze: \end_layout \begin_layout LyX-Code @@ -48634,8 +51661,7 @@ sortensembledata PH \end_layout \begin_layout LyX-Code -runanalysis cphstats PH[*] statsout stats.dat fracplot fracplotout frac.agr - deprot +runanalysis cphstats PH[*] statsout stats.dat fracplot fracplotout frac.agr deprot \end_layout \begin_layout Subsection @@ -48645,6 +51671,8 @@ corr | correlationcoe \begin_layout LyX-Code corr \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -48688,8 +51716,9 @@ out [<dataset2>] \series default Data set(s) to calculate correlation for. - If one dataset or the same dataset is given twice, the auto-correlation - will be calculated, otherwise cross-correlation. + If one dataset or the same dataset is given twice, + the auto-correlation will be calculated, + otherwise cross-correlation. \end_layout \begin_layout Description @@ -48714,7 +51743,8 @@ out \series bold [direct] \series default - Do not use FFTs to calculate correlation; this will be much slower. + Do not use FFTs to calculate correlation; + this will be much slower. \end_layout \begin_layout Standard @@ -48722,13 +51752,11 @@ DataSet Aspects: \end_layout \begin_layout Description -[<dataset1>] (Auto-correlation) The aspect will be the name of each of the - input data set. +[<dataset1>] (Auto-correlation) The aspect will be the name of each of the input data set. \end_layout \begin_layout Description -[<dataset1>-<dataset2>] (Cross-correlation) The aspect will be the names - of each of the input data sets joined by a dash ('-'). +[<dataset1>-<dataset2>] (Cross-correlation) The aspect will be the names of each of the input data sets joined by a dash ('-'). \end_layout \begin_layout Standard @@ -48741,13 +51769,12 @@ DataSet Aspects: \end_deeper \begin_layout Standard -Calculate the auto-correlation function for data set named <dataset1> or - the cross-correlation function for data sets named <dataset1> and <dataset2> - up to <lagmax> frames (all if +Calculate the auto-correlation function for data set named <dataset1> or the cross-correlation function for data sets named <dataset1> and <dataset2> up to <lagmax> frames (all if \series bold lagmax \series default - not specified), writing the result to file specified by + not specified), + writing the result to file specified by \series bold out \series default @@ -48840,13 +51867,14 @@ Calculate atomic positional fluctuations for atoms in \series bold bfactor \series default - is specified, the fluctuations are weighted by + is specified, + the fluctuations are weighted by \begin_inset Formula $\frac{8}{3}\pi^{2}$ \end_inset -(similar but not necessarily equivalent to crystallographic B-factor calculation -). - Units are Å, or Å +(similar but not necessarily equivalent to crystallographic B-factor calculation). + Units are Å, + or Å \begin_inset script superscript \begin_layout Plain Layout @@ -48921,8 +51949,7 @@ crosscorr [name <dsetname>] <dsetarg0> [<dsetarg1> ...] [out <filename>] \end_deeper \begin_layout Standard -Calculate the Pearson product-moment correlation coefficients between all - specified datasets. +Calculate the Pearson product-moment correlation coefficients between all specified datasets. \end_layout \begin_layout Subsection @@ -48941,8 +51968,7 @@ curvefit <dset> { <equation> | \end_layout \begin_layout LyX-Code - name <dsname> {gauss | nexp <m> [form {mexp|mexpk|mexpk_penalt -y}} } + name <dsname> {gauss | nexp <m> [form {mexp|mexpk|mexpk_penalty}} } \end_layout \begin_layout LyX-Code @@ -48972,6 +51998,7 @@ y}} } \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-Data-Set-Math" +nolink "false" \end_inset @@ -49029,23 +52056,23 @@ form \begin_deeper \begin_layout Description -mexp Multi-exponential, SUM(m)[ An * exp(An+1 * X)] +mexp Multi-exponential, + SUM(m)[ An * exp(An+1 * X)] \end_layout \begin_layout Description -mexpk Multi-exponential plus constant, A0 + SUM(m)[An * exp(An+1 * X)] +mexpk Multi-exponential plus constant, + A0 + SUM(m)[An * exp(An+1 * X)] \end_layout \begin_layout Description -mexpk_penalty Same as mexpk except sum of prefactors constrained to 1.0 and - exponential constants constrained to < 0.0. +mexpk_penalty Same as mexpk except sum of prefactors constrained to 1.0 and exponential constants constrained to < 0.0. \end_layout \end_deeper \end_deeper \begin_layout Description -AX=<value> Value of any constants in specified equation with X starting - from 0 (can specify more than one). +AX=<value> Value of any constants in specified equation with X starting from 0 (can specify more than one). \end_layout \begin_layout Description @@ -49073,8 +52100,7 @@ maxit \begin_inset space ~ \end_inset -iterations> Number of iterations to run curve fitting algorithm (default - 50). +iterations> Number of iterations to run curve fitting algorithm (default 50). \end_layout \begin_layout Description @@ -49090,8 +52116,7 @@ outxbins \begin_inset space ~ \end_inset -<NX> Number of points to use when generating final curve (default same number - of points as input data set). +<NX> Number of points to use when generating final curve (default same number of points as input data set). \end_layout \begin_layout Description @@ -49099,8 +52124,7 @@ outxmin \begin_inset space ~ \end_inset -<xmin> Minimum X value to use for final curve (default same number of points - as input data set). +<xmin> Minimum X value to use for final curve (default same number of points as input data set). \end_layout \begin_layout Description @@ -49108,28 +52132,28 @@ outxmax \begin_inset space ~ \end_inset -<xmax> Maximum X value to use for final curve (default same number of points - as input data set). +<xmax> Maximum X value to use for final curve (default same number of points as input data set). \end_layout \end_deeper \begin_layout Standard -Perform non-linear curve fitting for the specified data set using the Levenberg- -Marquardt algorithm. +Perform non-linear curve fitting for the specified data set using the Levenberg-Marquardt algorithm. Any equation form that cpptraj understands (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-Data-Set-Math" +nolink "false" \end_inset -) can be used, or several preset forms can be used. - Similar to Grace (http://plasma-gate.weizmann.ac.il/Grace/), an equation can - contain constants for curve fitting termed AX (with X being a numerical - digit, one for each constant), and is assigned to a variable which then - becomes a data set. - For example, to fit a curve to data from a file named Data.dat to a data - set named 'FitY': +) can be used, + or several preset forms can be used. + Similar to Grace (http://plasma-gate.weizmann.ac.il/Grace/), + an equation can contain constants for curve fitting termed AX (with X being a numerical digit, + one for each constant), + and is assigned to a variable which then becomes a data set. + For example, + to fit a curve to data from a file named Data.dat to a data set named 'FitY': \end_layout \begin_layout LyX-Code @@ -49248,15 +52272,15 @@ name> <filename>]] \series default Mass-weighted covariance (mwcovar) matrix only. - Calculate entropy, heat capacity, and internal energy from the structure - of a molecule (average coordinates, see above) and its vibrational frequencies - using standard statistical mechanical formulas for an ideal gas. - Results are written to <filename> if specified, otherwise results are written - to STDOUT. + Calculate entropy, + heat capacity, + and internal energy from the structure of a molecule (average coordinates, + see above) and its vibrational frequencies using standard statistical mechanical formulas for an ideal gas. + Results are written to <filename> if specified, + otherwise results are written to STDOUT. \series bold -Note that this converts the units of the calculated eigenvalues to frequencies - (cm +Note that this converts the units of the calculated eigenvalues to frequencies (cm \begin_inset script superscript \begin_layout Plain Layout @@ -49280,7 +52304,8 @@ Note that this converts the units of the calculated eigenvalues to frequencies <#>] \series default Number of eigenvectors to calculate. - Default is 0, which is only allowed when 'thermo' is specified. + Default is 0, + which is only allowed when 'thermo' is specified. \end_layout \begin_layout Description @@ -49301,13 +52326,14 @@ Note that this converts the units of the calculated eigenvalues to frequencies [reduce] \series default Covariance (covar/mwcovar/distcovar) matrices only. - For coordinate covariance (covar/mwcovar) matrices, each eigenvector element - is reduced via Ei = Eix^2 + Eiy^2 + Eiz^2. - For distance covariance (distcovar) the eigenvectors are reduced by taking - the sum of the squares of each row. - See Abseher & Nilges, JMB 1998, 279, 911-920 for further details. - They may be used to compare results from PCA in distance space with those - from PCA in cartesian-coordinate space. + For coordinate covariance (covar/mwcovar) matrices, + each eigenvector element is reduced via Ei = Eix^2 + Eiy^2 + Eiz^2. + For distance covariance (distcovar) the eigenvectors are reduced by taking the sum of the squares of each row. + See Abseher & Nilges, + JMB 1998, + 279, + 911-920 for further details. + They may be used to compare results from PCA in distance space with those from PCA in cartesian-coordinate space. \end_layout \begin_layout Description @@ -49337,8 +52363,8 @@ literal "true" \begin_inset space ~ \end_inset -<#>] Number of vectors to write out for nmwiz output, starting with the - lowest frequency mode (default 20). +<#>] Number of vectors to write out for nmwiz output, + starting with the lowest frequency mode (default 20). \end_layout \begin_layout Description @@ -49354,38 +52380,37 @@ literal "true" \begin_inset space ~ \end_inset -<mask>] Mask of atoms corresponding to eigenvectors - should be the same - one used to generate the matrix. +<mask>] Mask of atoms corresponding to eigenvectors - should be the same one used to generate the matrix. \end_layout \end_deeper \end_deeper \begin_layout Standard Calculate eigenvectors and eigenvalues for the specified symmetric matrix. - This is followed by Principal Component Analysis (in cartesian coordinate - space in the case of a covariance matrix or in distance space in the case - of a distance-covariance matrix), or Quasiharmonic Analysis (in the case - of a mass-weighted covariance matrix). - Diagonalization of distance, correlation, idea, and ired matrices are also - possible. + This is followed by Principal Component Analysis (in cartesian coordinate space in the case of a covariance matrix or in distance space in the case of a distance-covariance matrix), + or Quasiharmonic Analysis (in the case of a mass-weighted covariance matrix). + Diagonalization of distance, + correlation, + idea, + and ired matrices are also possible. Eigenvalues are given in cm \begin_inset Formula $^{-1}$ \end_inset - in the case of a mass-weighted covariance matrix and in the units of the - matrix elements in all other cases. - In the case of a mass-weighted covariance matrix, the eigenvectors are - mass-weighted. + in the case of a mass-weighted covariance matrix and in the units of the matrix elements in all other cases. + In the case of a mass-weighted covariance matrix, + the eigenvectors are mass-weighted. \end_layout \begin_layout Standard -For quasi-harmonic analysis the input must be a mass-weighted covariance - matrix. - Thermodynamic quantities are calculated based on statistical mechanical - formulae that assume the input system is oscillating in a single energy - well: see Statistical Thermodynamics by D. +For quasi-harmonic analysis the input must be a mass-weighted covariance matrix. + Thermodynamic quantities are calculated based on statistical mechanical formulae that assume the input system is oscillating in a single energy well: + see Statistical Thermodynamics by D. A. - McQuarrie, particularly chapters 4, 5, and 6 for more details. + McQuarrie, + particularly chapters 4, + 5, + and 6 for more details. \begin_inset CommandInset citation LatexCommand citep key "McQuarrie1973" @@ -49393,8 +52418,7 @@ literal "true" \end_inset - For an in-depth discussion of the accuracy of thermodynamic parameters - obtained via quasi-harmonic analysis see Chang et al.. + For an in-depth discussion of the accuracy of thermodynamic parameters obtained via quasi-harmonic analysis see Chang et al.. \begin_inset CommandInset citation LatexCommand citep key "Chang2005" @@ -49406,24 +52430,27 @@ literal "true" \end_layout \begin_layout Standard -Note that the maximum number of non-zero eigenvalues obtainable depends - on the number of frames used to generate the input matrix; the number of - frames should be equal to or greater than the number of columns in the - matrix in order to obtain all eigenmodes. +Note that the maximum number of non-zero eigenvalues obtainable depends on the number of frames used to generate the input matrix; + the number of frames should be equal to or greater than the number of columns in the matrix in order to obtain all eigenmodes. \end_layout \begin_layout Standard -Results may include average coordinates (in the case of covar, mwcovar, - correl), average distances (in the case of distcovar), main diagonal elements - (in the case of idea and ired), eigenvalues, and eigenvectors. +Results may include average coordinates (in the case of covar, + mwcovar, + correl), + average distances (in the case of distcovar), + main diagonal elements (in the case of idea and ired), + eigenvalues, + and eigenvectors. \end_layout \begin_layout Standard -For example, in the following a mass-weighted covariance matrix of all atoms - is generated and stored internally with the name mwcvmat; the matrix itself - is written to mwcvmat.dat. - Subsequently, the first 20 eigenmodes of the matrix are calculated and - written to evecs.dat, and quasiharmonic analysis is performed at 300.0 K, +For example, + in the following a mass-weighted covariance matrix of all atoms is generated and stored internally with the name mwcvmat; + the matrix itself is written to mwcvmat.dat. + Subsequently, + the first 20 eigenmodes of the matrix are calculated and written to evecs.dat, + and quasiharmonic analysis is performed at 300.0 K, with the results written to thermo.dat. \end_layout @@ -49466,7 +52493,8 @@ evecs \end_layout \begin_layout LyX-Code - [Reduced] Eigenvector file: <Type> nmodes <#> width <width> + [Reduced] Eigenvector file: + <Type> nmodes <#> width <width> \end_layout \begin_layout LyX-Code @@ -49478,10 +52506,10 @@ evecs \end_layout \begin_layout Standard -Where <Type> is a string identifying what kind of matrix the eigenvectors/eigenv -alues were determined from, nmodes is how many eigenvectors are in the file, - and <Average Coordinates> are in lines 7 columns wide, with each element - having width specified by <width>. +Where <Type> is a string identifying what kind of matrix the eigenvectors/eigenvalues were determined from, + nmodes is how many eigenvectors are in the file, + and <Average Coordinates> are in lines 7 columns wide, + with each element having width specified by <width>. Then for each eigenvector: \end_layout @@ -49502,8 +52530,8 @@ alues were determined from, nmodes is how many eigenvectors are in the file, \end_layout \begin_layout Standard -Where <Eigenvector Coordinates> are in lines 7 columns wide, with each element - having width specified by <width>. +Where <Eigenvector Coordinates> are in lines 7 columns wide, + with each element having width specified by <width>. \end_layout \begin_layout Subsection @@ -49698,8 +52726,7 @@ Data Sets Created \end_layout \begin_layout Description -<name>[vala] Difference between last half average of data vs final density - (A2). +<name>[vala] Difference between last half average of data vs final density (A2). \end_layout \begin_layout Description @@ -49719,7 +52746,10 @@ Data Sets Created \end_layout \begin_layout Description -<name>[result] Final result: yes, no, err (error). +<name>[result] Final result: + yes, + no, + err (error). \end_layout \end_deeper @@ -49732,10 +52762,10 @@ plateaued \begin_inset Quotes erd \end_inset -, i.e. +, + i.e. stopped changing significantly by the end of the set. - Currently the defaults are set up to evaluate density data as part of the - system preparation protocol described by Roe & Brooks. + Currently the defaults are set up to evaluate density data as part of the system preparation protocol described by Roe & Brooks. \begin_inset CommandInset citation LatexCommand citep key "Roe2020" @@ -49814,7 +52844,8 @@ fft <dset0> [<dset1> ...] [out <outfile>] [name <outsetname>] [dt <samp_int>] \end_deeper \begin_layout Standard Perform fast Fourier transform (FFT) on specified data set(s). - If more than 1 data set, they must all have the same size. + If more than 1 data set, + they must all have the same size. \end_layout \begin_layout Subsection @@ -49833,13 +52864,11 @@ hausdorff <set arg0> [<set arg1> ...] \end_layout \begin_layout LyX-Code - [outtype {basic|trimatrix nrows <#>|fullmatrix nrows <#> [ncols - <#>]}] + [outtype {basic|trimatrix nrows <#>|fullmatrix nrows <#> [ncols <#>]}] \end_layout \begin_layout LyX-Code - [name <output set name>] [out <file>] [outab <file>] [outba <file>] - + [name <output set name>] [out <file>] [outab <file>] [outba <file>] \end_layout \begin_deeper @@ -49874,8 +52903,7 @@ nrows \begin_inset space ~ \end_inset -<#> Output Hausdorff distances for each input matrix as a 2D upper-triangular - matrix with the given number of rows. +<#> Output Hausdorff distances for each input matrix as a 2D upper-triangular matrix with the given number of rows. Must have (nrows * (nrows-1)) / 2 input sets. \end_layout @@ -49896,13 +52924,13 @@ ncols \begin_inset space ~ \end_inset -<#> Output Hausdorff distances for each input matrix as a full matrix with - the given number of columns and rows. +<#> Output Hausdorff distances for each input matrix as a full matrix with the given number of columns and rows. If \series bold ncols \series default - is not given, use + is not given, + use \series bold nrows \series default @@ -49954,24 +52982,24 @@ name>] Name of output data sets. \end_deeper \begin_layout Standard Calculate the symmetric Hausdorff distance for one or more matrices. - The results can be saved as an array or as a full or upper-triangular matrix - with the specified dimensions. + The results can be saved as an array or as a full or upper-triangular matrix with the specified dimensions. The Hausdorff distance H is determined from: \end_layout \begin_layout LyX-Code -H = max{dH(A,B), dH(B,A)] +H = max{dH(A,B), + dH(B,A)] \end_layout \begin_layout Standard -Where dH(A,B) is the directed Hausdorff distance between sets A and B, etc. - Colloquially speaking, the directed Hausdorff distance between A and B - is determined as follows: +Where dH(A,B) is the directed Hausdorff distance between sets A and B, + etc. + Colloquially speaking, + the directed Hausdorff distance between A and B is determined as follows: \end_layout \begin_layout Enumerate -What is the closest approach (distance) of each point in A to any point - in B? +What is the closest approach (distance) of each point in A to any point in B? \end_layout \begin_layout Enumerate @@ -49979,12 +53007,14 @@ Choose the largest distance from among those distances. \end_layout \begin_layout Standard -If desired, the output can be formed into a matrix, which can be useful - e.g. +If desired, + the output can be formed into a matrix, + which can be useful e.g. when doing multiple 2D rms calculations on different regions of a trajectory. - For example, the following input divides a 100 frame trajectory into 10 - frame chunks, calcultes the 2D RMS matrix for each chunk, then performs - Hausdorff analysis on the resulting matrices and forms a full output matrix. + For example, + the following input divides a 100 frame trajectory into 10 frame chunks, + calcultes the 2D RMS matrix for each chunk, + then performs Hausdorff analysis on the resulting matrices and forms a full output matrix. \end_layout \begin_layout LyX-Code @@ -50127,8 +53157,7 @@ parallelanalysis sync \end_layout \begin_layout LyX-Code -runanalysis hausdorff M* out hausdorff.fullmatrix.gnu title hausdorff.matrix.gnu - +runanalysis hausdorff M* out hausdorff.fullmatrix.gnu title hausdorff.matrix.gnu \backslash \end_layout @@ -50144,6 +53173,8 @@ hist | histogram \begin_layout LyX-Code hist \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -50182,10 +53213,13 @@ hist <dataset_name>[,<min>,<max>,<step>,<bins>] \series default Dataset(s) to be histogrammed. - Optionally, the min, max, step, and/or number of bins can be specified - for this dimension after the dataset name separated by commas. - It is only necessary to specify the step or number of bins, an asterisk - '*' indicates the value should be calculated from available data. + Optionally, + the min, + max, + step, + and/or number of bins can be specified for this dimension after the dataset name separated by commas. + It is only necessary to specify the step or number of bins, + an asterisk '*' indicates the value should be calculated from available data. \end_layout @@ -50198,11 +53232,13 @@ hist <temperature>] \series default - If specified, estimate free energy from bin populations using + If specified, + estimate free energy from bin populations using \begin_inset Formula $G_{i}=-k_{B}T\ln\left(\frac{N_{i}}{N_{Max}}\right)$ \end_inset -, where K +, + where K \begin_inset script subscript \begin_layout Plain Layout @@ -50211,7 +53247,8 @@ B \end_inset - is Boltzmann's constant, T is the temperature specified by <temperature>, + is Boltzmann's constant, + T is the temperature specified by <temperature>, N \begin_inset script subscript @@ -50231,8 +53268,7 @@ Max \end_inset is the population of the most populated bin. - Bins with no population are given an artificial barrier equivalent to a - population of 0.5. + Bins with no population are given an artificial barrier equivalent to a population of 0.5. \end_layout \begin_layout Description @@ -50240,8 +53276,8 @@ Max \series bold [norm] \series default - If specified, normalize bin populations so the sum over all bins equals - 1.0. + If specified, + normalize bin populations so the sum over all bins equals 1.0. \end_layout \begin_layout Description @@ -50253,7 +53289,9 @@ Max \series bold [gnu] \series default - Internal output only; data will be gnuplot-readable, i.e. + Internal output only; + data will be gnuplot-readable, + i.e. a space will be printed after the highest order coordinate cycles. \end_layout @@ -50262,7 +53300,9 @@ Max \series bold [circular] \series default - Internal output only; data will wrap, i.e. + Internal output only; + data will wrap, + i.e. an extra bin will be printed before min and after max in each direction. Useful for e.g. dihedral angles. @@ -50285,8 +53325,7 @@ out \begin_inset space ~ \end_inset -<amdboost_data>] Reweight bins using AMD boost energies in data set <amdboost_da -ta> (in KT). +<amdboost_data>] Reweight bins using AMD boost energies in data set <amdboost_data> (in KT). \end_layout \begin_layout Description @@ -50314,8 +53353,7 @@ name>] Output histogram data set name. \begin_inset space ~ \end_inset -<format>]] (3D histograms only) Write a pseudo-trajectory of the 3 data - sets (1 atom) to <file> with format <format>. +<format>]] (3D histograms only) Write a pseudo-trajectory of the 3 data sets (1 atom) to <file> with format <format>. \end_layout \begin_layout Description @@ -50323,8 +53361,7 @@ name>] Output histogram data set name. \begin_inset space ~ \end_inset -<file>] (3D histograms only) Write a topology corresponding to the pseudo-trajec -tory to <file>. +<file>] (3D histograms only) Write a topology corresponding to the pseudo-trajectory to <file>. \end_layout \begin_layout Description @@ -50376,17 +53413,18 @@ tory to <file>. \end_layout \begin_layout Description -[nativeout] Do not use cpptraj data file framework; only necessary for writing - out histograms with > 3 dimensions. +[nativeout] Do not use cpptraj data file framework; + only necessary for writing out histograms with > 3 dimensions. \end_layout \end_deeper \begin_layout Standard -Create an N-dimensional histrogram, where N is the number of datasets specified. +Create an N-dimensional histrogram, + where N is the number of datasets specified. For 1-dimensional histograms the xmgrace '.agr' file format is recommended; for 2-dimensional hisograms the gnuplot '.gnu' file format is recommended; - for all other dimensions plot formatting is disabled and the routine uses - its own internal output format; this is also enabled if + for all other dimensions plot formatting is disabled and the routine uses its own internal output format; + this is also enabled if \series bold gnu \series default @@ -50398,8 +53436,8 @@ circular \end_layout \begin_layout Standard -For example, to create a two dimensional histogram of two datasets 'phi' - and 'psi': +For example, + to create a two dimensional histogram of two datasets 'phi' and 'psi': \end_layout \begin_layout LyX-Code @@ -50415,9 +53453,8 @@ hist phi,-180,180,*,72 psi,-180,180,*,72 out hist.gnu \end_layout \begin_layout Standard -In this case the number of bins (72) has been specified for each dimension - and '*' has been given for the step size, indicating it should be calculated - based on min/max/bins. +In this case the number of bins (72) has been specified for each dimension and '*' has been given for the step size, + indicating it should be calculated based on min/max/bins. The following 'hist' command is equivalent: \end_layout @@ -50455,7 +53492,8 @@ integrate <dset0> [<dset1> ...] [out <outfile>] [intout <intfile>] \begin_inset space ~ \end_inset -<outfile>] If specified, write cumulative sum curves to <outfile>. +<outfile>] If specified, + write cumulative sum curves to <outfile>. \end_layout \begin_layout Description @@ -50463,7 +53501,8 @@ integrate <dset0> [<dset1> ...] [out <outfile>] [intout <intfile>] \begin_inset space ~ \end_inset -<intfile>] If specified, write final integral values to <intfile>. +<intfile>] If specified, + write final integral values to <intfile>. \end_layout \begin_layout Description @@ -50479,7 +53518,8 @@ DataSets Created: \end_layout \begin_layout Description -<name> Final integral values, 1 for each input data set (indexed from 0). +<name> Final integral values, + 1 for each input data set (indexed from 0). \end_layout \begin_layout Description @@ -50487,7 +53527,8 @@ DataSets Created: \series bold out \series default - was specified, 1 for each input data set (indexed from 0). + was specified, + 1 for each input data set (indexed from 0). \end_layout \end_deeper @@ -50543,8 +53584,8 @@ freq <MHz>] \series default - Should only be used when ired vectors represent N-H bonds; calculate correlatio -n times + Should only be used when ired vectors represent N-H bonds; + calculate correlation times \family roman \series medium \shape up @@ -50587,7 +53628,9 @@ for each eigenmode and relaxation rates and NOEs for each N-H vector. \begin_inset space ~ \end_inset -<noefilename>] File to write the T1, T2, and NOE data to. +<noefilename>] File to write the T1, + T2, + and NOE data to. \end_layout \end_deeper @@ -50596,8 +53639,7 @@ for each eigenmode and relaxation rates and NOEs for each N-H vector. \begin_inset space ~ \end_inset -<order>] Order of the Legendre polynomials to use when calculating spherical - harmonics (default 2). +<order>] Order of the Legendre polynomials to use when calculating spherical harmonics (default 2). \end_layout \begin_layout Description @@ -50650,7 +53692,9 @@ for each eigenmode and relaxation rates and NOEs for each N-H vector. \series bold [norm] \series default - Normalize all correlation functions, i.e., + Normalize all correlation functions, + i.e., + \begin_inset Formula $C_{l}(t=0)=P_{l}(t=0)=1.0$ \end_inset @@ -50662,8 +53706,8 @@ for each eigenmode and relaxation rates and NOEs for each N-H vector. \series bold [drct] \series default - Use the direct method to calculate correlations instead of FFT; this will - be much slower. + Use the direct method to calculate correlations instead of FFT; + this will be much slower. \end_layout \begin_layout Description @@ -50691,8 +53735,8 @@ modes \begin_inset space ~ \end_inset -<file>] If specified, write full delta*S^2 matrix (# IRED vector rows by - # eigenmodes columns) to <file>. +<file>] If specified, + write full delta*S^2 matrix (# IRED vector rows by # eigenmodes columns) to <file>. \end_layout \begin_layout Standard @@ -50745,12 +53789,9 @@ literal "true" \end_inset - analysis on previously defined IRED vectors (see vector ired) using eigenmodes - calculated from those vectors with a previous 'diagmatrix' command. - The number of defined IRED vectors should match the number of eigenmodes - calculated. - Autocorrelation functions for each mode and the corresponding correlation - time + analysis on previously defined IRED vectors (see vector ired) using eigenmodes calculated from those vectors with a previous 'diagmatrix' command. + The number of defined IRED vectors should match the number of eigenmodes calculated. + Autocorrelation functions for each mode and the corresponding correlation time \family roman \series medium \shape up @@ -50777,8 +53818,7 @@ literal "true" \lang english will be written to <filename>.cmt. Autocorrelation functions for each vector will be written to <filename>.cjt. - Relaxation rates and NOEs for each N-H vector will be written to <filename> - or added to the the end of the standard output. + Relaxation rates and NOEs for each N-H vector will be written to <filename> or added to the the end of the standard output. For the calculation of \lang american @@ -50807,10 +53847,11 @@ will be written to <filename>.cmt. \lang american \lang english -the normalized correlation functions and only the first third of the analyzed - time steps will be used. - For further information on the convergence of correlation functions see - [Schneider, Brünger, Nilges, +the normalized correlation functions and only the first third of the analyzed time steps will be used. + For further information on the convergence of correlation functions see [Schneider, + Brünger, + Nilges, + \emph on J. Mol. @@ -50821,7 +53862,8 @@ J. \series bold 285 \series default -, 727 (1999)]. +, + 727 (1999)]. \end_layout \begin_layout Subsubsection* @@ -50833,7 +53875,8 @@ In \shape italic cpptraj \shape default -, IRED analysis +, + IRED analysis \begin_inset CommandInset citation LatexCommand citep key "Prompers02a" @@ -50841,16 +53884,14 @@ literal "true" \end_inset - can now be performed in one pass (as opposed to the two passes previously - required in + can now be performed in one pass (as opposed to the two passes previously required in \shape italic ptraj \shape default ). - First, IRED vectors are defined (in this case for N-H bonds) and an IRED - matrix is calculated and analyzed. - The IRED vectors are then projected onto the calculated IRED eigenvectors - in the + First, + IRED vectors are defined (in this case for N-H bonds) and an IRED matrix is calculated and analyzed. + The IRED vectors are then projected onto the calculated IRED eigenvectors in the \series bold \shape italic ired @@ -50861,14 +53902,15 @@ ired \shape italic order \shape default - is specified, order parameters based on IRED are calculated. + is specified, + order parameters based on IRED are calculated. By specifying the \shape italic relax \shape default - parameter, relaxation rates and NOEs can be obtained for each N-H vector. - Note that the order of the IRED matrix should be the same as the one specified - for IRED analysis. + parameter, + relaxation rates and NOEs can be obtained for each N-H vector. + Note that the order of the IRED matrix should be the same as the one specified for IRED analysis. \end_layout \begin_layout LyX-Code @@ -50951,8 +53993,8 @@ kde <dataset> [bandwidth <bw>] [out <file>] [name <dsname>] \begin_inset space ~ \end_inset -<bw>] Bandwidth to use for KDE; if not specified bandwidth will be estimated - using the normal distribution approximation. +<bw>] Bandwidth to use for KDE; + if not specified bandwidth will be estimated using the normal distribution approximation. \end_layout \begin_layout Description @@ -51020,8 +54062,7 @@ kde <dataset> [bandwidth <bw>] [out <file>] [name <dsname>] \begin_inset space ~ \end_inset -<outfile>]] Calculate Kullback-Leibler divergence over time of <dataset> - distribution to <dsname2> distribution. +<outfile>]] Calculate Kullback-Leibler divergence over time of <dataset> distribution to <dsname2> distribution. Output to <outfile> if \series bold klout @@ -51034,8 +54075,7 @@ klout \begin_inset space ~ \end_inset -<amdboost_data>] Reweight histogram using AMD boost data from data set <amdboost -_data> (in KT). +<amdboost_data>] Reweight histogram using AMD boost data from data set <amdboost_data> (in KT). \end_layout \end_deeper @@ -51085,11 +54125,15 @@ lifetime [out <filename>] <dsetarg0> [ <dsetarg1> ... <filename>] \series default - Write results to file named <filename>, and lifetime curves to 'crv.<filename>'. - If performing windowed lifetime analysis, <filename> contains the fraction - present over time windows, and 2 additional files are written: 'max.<filename>', - containing max lifetime over windows, and 'avg.<filename>', containing average - lifetime over windows. + Write results to file named <filename>, + and lifetime curves to 'crv.<filename>'. + If performing windowed lifetime analysis, + <filename> contains the fraction present over time windows, + and 2 additional files are written: + 'max.<filename>', + containing max lifetime over windows, + and 'avg.<filename>', + containing average lifetime over windows. \end_layout \begin_layout Description @@ -51182,8 +54226,7 @@ Just calculate averages (no lifetime analysis). \begin_inset space ~ \end_inset -<fuzzcut>] Ignore changes in lifetime state that are less than <fuzzcut> - frames. +<fuzzcut>] Ignore changes in lifetime state that are less than <fuzzcut> frames. \end_layout \begin_layout Description @@ -51195,7 +54238,8 @@ Data Sets Created: \end_layout \begin_layout Description -<setname> Number of lifetimes for each set, or if +<setname> Number of lifetimes for each set, + or if \series bold window \series default @@ -51203,7 +54247,8 @@ window \end_layout \begin_layout Description -<setname>[max] Maximum lifetime for each set, or if +<setname>[max] Maximum lifetime for each set, + or if \series bold window \series default @@ -51211,7 +54256,8 @@ window \end_layout \begin_layout Description -<setname>[avg] Average lifetime for each set, or if +<setname>[avg] Average lifetime for each set, + or if \series bold window \series default @@ -51241,8 +54287,8 @@ window \end_deeper \begin_layout Standard Perform lifetime analysis for specified data sets. - Lifetime data can either be determined for the entire set, or for time - windows of specified size within the set if + Lifetime data can either be determined for the entire set, + or for time windows of specified size within the set if \series bold window \series default @@ -51258,26 +54304,33 @@ lifetime \begin_inset Quotes erd \end_inset - is defined as the length of time something remains 'present'; data is considere -d present when above or below a certain cutoff (the default is greater than - 0.5, useful for analysis of + is defined as the length of time something remains 'present'; + data is considered present when above or below a certain cutoff (the default is greater than 0.5, + useful for analysis of \series bold \shape italic hbond \series default \shape default time series data). - For example, in the case of a hydrogen bond + For example, + in the case of a hydrogen bond \series bold 'series' \series default - data set, if a hydrogen bond is present during a frame the value is 1, + data set, + if a hydrogen bond is present during a frame the value is 1, otherwise it is 0. - Given the hbond time series data set {1 1 1 0 1 0 0 0 1 1}, the overall - fraction present is 0.6. - However, there are 3 lifetimes of lengths 3, 1, and 2 ({1 1 1}, {1}, and - {1 1}). - The maximum lifetime is 3 and the average lifetime is 2.0, i.e. + Given the hbond time series data set {1 1 1 0 1 0 0 0 1 1}, + the overall fraction present is 0.6. + However, + there are 3 lifetimes of lengths 3, + 1, + and 2 ({1 1 1}, + {1}, + and {1 1}). + The maximum lifetime is 3 and the average lifetime is 2.0, + i.e. (3 + 1 + 2) / 3 lifetimes = 2.0. One can also construct a \begin_inset Quotes eld @@ -51287,15 +54340,15 @@ lifetime curve \begin_inset Quotes erd \end_inset -, which is constructed as the sum of all individual lifetimes. - By default these curves are normalized to 1.0, but the raw curve can be - obtained using the +, + which is constructed as the sum of all individual lifetimes. + By default these curves are normalized to 1.0, + but the raw curve can be obtained using the \series bold rawcurve \series default keyword. - For the example data set here the raw lifetime curve would be 3 frames - long: + For the example data set here the raw lifetime curve would be 3 frames long: \end_layout \begin_layout LyX-Code @@ -51311,7 +54364,8 @@ rawcurve \end_layout \begin_layout LyX-Code -Curve: 3 2 1 +Curve: + 3 2 1 \end_layout \begin_layout Standard @@ -51320,16 +54374,14 @@ By default data sets are sorted by name unless nosort \series default is specified. - The lifetime command can calculate lifetimes over specific time windows - by using the + The lifetime command can calculate lifetimes over specific time windows by using the \series bold window \series default keyword. - This can be particularly useful if one wants to get a sense for how lifetimes - are changing over the course of very long time series data. - In addition, averages can be calculated instead of lifetimes by specifying - + This can be particularly useful if one wants to get a sense for how lifetimes are changing over the course of very long time series data. + In addition, + averages can be calculated instead of lifetimes by specifying \series bold averageonly \series default @@ -51338,8 +54390,8 @@ averageonly \series bold cumulative \series default - keyword, or the change from the average value in the previous window can - be obtained using the + keyword, + or the change from the average value in the previous window can be obtained using the \series bold delta \series default @@ -51351,16 +54403,13 @@ The \series bold fuzz \series default - keyword can be used to try and smooth the input data by ignoring changes - in state that occur for fewer frames than <fuzzcut>. - For example, in the above example hbond time series data set there is a - one frame change in state between the first and second lifetimes which - could be interpreted as a transient breaking of the hydrogen bond. - Using a <fuzzcut> value of 1, this one frame change in state would be ignored, - and the data set would effectively appear to lifetime as {1 1 1 1 1 0 0 - 0 1 1}. - The state change between the second and third lifetimes is longer than - <fuzzcut> (3 frames) and so it would remain. + keyword can be used to try and smooth the input data by ignoring changes in state that occur for fewer frames than <fuzzcut>. + For example, + in the above example hbond time series data set there is a one frame change in state between the first and second lifetimes which could be interpreted as a transient breaking of the hydrogen bond. + Using a <fuzzcut> value of 1, + this one frame change in state would be ignored, + and the data set would effectively appear to lifetime as {1 1 1 1 1 0 0 0 1 1}. + The state change between the second and third lifetimes is longer than <fuzzcut> (3 frames) and so it would remain. \end_layout \begin_layout Standard @@ -51368,7 +54417,9 @@ If \series bold window \series default - is not specified, two files are output: <filename> and crv.<filename>. + is not specified, + two files are output: + <filename> and crv.<filename>. The file <filename> contains overall lifetime stats for each set with format: \end_layout @@ -51381,19 +54432,23 @@ where \family typewriter <setname> \family default - denotes the total number of lifetimes, + denotes the total number of lifetimes, + \family typewriter <setname>[max] \family default - denotes the maximum lifetime, + denotes the maximum lifetime, + \family typewriter <setname>[avg] \family default -denotes the average lifetime, +denotes the average lifetime, + \family typewriter <setname>[frames] \family default - denotes the total number of frames present in all lifetimes, and + denotes the total number of frames present in all lifetimes, + and \family typewriter <setname>[name] \family default @@ -51406,7 +54461,11 @@ If \series bold window \series default - is specified, four files are output: <filename>, max.<filename>, avg.<filename>, + is specified, + four files are output: + <filename>, + max.<filename>, + avg.<filename>, and crv.<filename>. <filename> contains the fraction \begin_inset Quotes eld @@ -51416,15 +54475,17 @@ present \begin_inset Quotes erd \end_inset - over each time window for each set, max.<filename> contains the maximum - lifetime in each time window for each set, avg.<filename> contains the average - lifetime over each window for each set, and crv.<filename> contains the - overall lifetime curves for each set. - For window output, Gnuplot format is recommended. + over each time window for each set, + max.<filename> contains the maximum lifetime in each time window for each set, + avg.<filename> contains the average lifetime over each window for each set, + and crv.<filename> contains the overall lifetime curves for each set. + For window output, + Gnuplot format is recommended. \end_layout \begin_layout Subsubsection* -Example: hbond lifetime analysis +Example: + hbond lifetime analysis \end_layout \begin_layout LyX-Code @@ -51541,8 +54602,8 @@ lowest> Number of lowest points in each bin to average over. \end_deeper \begin_layout Standard Calculate a curve of the average of the # lowest points in bins of stepsize. - Essentially each input data set is binned over bins of stepsize, then the - lowest <#> points are averaged over for each bin. + Essentially each input data set is binned over bins of stepsize, + then the lowest <#> points are averaged over for each bin. \end_layout \begin_layout Subsection @@ -51555,8 +54616,8 @@ meltcurve <dset0> [<dset1> ...] [out <outfile>] [name <outsetname>] cut <cut> \begin_layout Standard Calculate melting curve from input data sets (i.e. - fraction 'folded' for each data set) assuming a simple 2-state transition - model, using data below <cut>as 'folded' and data above <cut> as 'unfolded'. + fraction 'folded' for each data set) assuming a simple 2-state transition model, + using data below <cut>as 'folded' and data above <cut> as 'unfolded'. \end_layout \begin_layout Subsection @@ -51564,8 +54625,7 @@ modes \end_layout \begin_layout LyX-Code -modes {fluct|displ|corr|eigenval|trajout|rmsip} name <modesname> [name2 - <modesname>] +modes {fluct|displ|corr|eigenval|trajout|rmsip} name <modesname> [name2 <modesname>] \end_layout \begin_layout LyX-Code @@ -51577,7 +54637,8 @@ modes {fluct|displ|corr|eigenval|trajout|rmsip} name <modesname> [name2 \end_layout \begin_layout LyX-Code - Options for 'trajout': (Generate pseudo-trajectory) + Options for 'trajout': + (Generate pseudo-trajectory) \end_layout \begin_layout LyX-Code @@ -51593,7 +54654,8 @@ modes {fluct|displ|corr|eigenval|trajout|rmsip} name <modesname> [name2 \end_layout \begin_layout LyX-Code - Options for 'corr': (Calculate dipole correlation) + Options for 'corr': + (Calculate dipole correlation) \end_layout \begin_layout LyX-Code @@ -51618,8 +54680,10 @@ Types of Calculations: \series bold fluct \series default - RMS fluctuations (X, Y, Z, and total) for each atom across specified normal - modes. + RMS fluctuations (X, + Y, + Z, + and total) for each atom across specified normal modes. \end_layout \begin_layout Description @@ -51627,8 +54691,8 @@ fluct \series bold displ \series default - Displacement of cartesian coordinates in the X, Y and Z directions for - each atom across specified normal modes. + Displacement of cartesian coordinates in the X, + Y and Z directions for each atom across specified normal modes. \end_layout \begin_layout Description @@ -51649,13 +54713,11 @@ eigenval Calculate eigenvalue fractions. \end_layout \begin_layout Description -trajout Create a pseudo-trajectory along the given mode from the average - structure. +trajout Create a pseudo-trajectory along the given mode from the average structure. \end_layout \begin_layout Description -rmsip Calculate the root-mean-square inner product between modes specified - by +rmsip Calculate the root-mean-square inner product between modes specified by \series bold name \series default @@ -51699,13 +54761,14 @@ name <end>] \series default - If modes taken from datafile, beginning and end modes to read. + If modes taken from datafile, + beginning and end modes to read. Default for \shape italic beg \shape default - is 7 (which skips the first 6 zero-frequency modes in the case of a normal - mode analysis); for + is 7 (which skips the first 6 zero-frequency modes in the case of a normal mode analysis); + for \shape italic end \shape default @@ -51734,8 +54797,8 @@ end \end_layout \begin_layout Description -[calcall] If specified use all eigenvectors; otherwise eigenvectors associated - with zero or negative eigenvalues will be skipped. +[calcall] If specified use all eigenvectors; + otherwise eigenvectors associated with zero or negative eigenvalues will be skipped. \end_layout \begin_layout Description @@ -51800,8 +54863,7 @@ Options for 'trajout': \begin_inset space ~ \end_inset -<pcmin>] Lowest principal component projection value to use for output trajector -y. +<pcmin>] Lowest principal component projection value to use for output trajectory. \end_layout \begin_layout Description @@ -51809,8 +54871,7 @@ y. \begin_inset space ~ \end_inset -<pcmax>] Highest principal component projection value to use for output - trajectory. +<pcmax>] Highest principal component projection value to use for output trajectory. \end_layout \begin_layout Description @@ -51846,15 +54907,18 @@ Options for 'corr': \series bold corr \series default -, pairs of atom masks ( +, + pairs of atom masks ( \shape italic mask1 \shape default -, +, + \shape italic mask2 \shape default -; each pair preceded by +; + each pair preceded by \begin_inset Quotes eld \end_inset @@ -51866,8 +54930,7 @@ maskp \begin_inset Quotes erd \end_inset - and each mask defining only a single atom) have to be given that specify - the atoms for which the correlation functions are desired. + and each mask defining only a single atom) have to be given that specify the atoms for which the correlation functions are desired. \end_layout \begin_layout Description @@ -51887,8 +54950,9 @@ mask2 \series bold maskp \series default -, specify two masks; atoms from the first mask will be paired up with atoms - from the second mask. +, + specify two masks; + atoms from the first mask will be paired up with atoms from the second mask. \end_layout \begin_layout Standard @@ -51953,9 +55017,7 @@ DataSets Created (rmsip) \end_deeper \begin_layout Standard -Analyze previously calculated eigenmodes obtained from principal component - analyses (of covariance matrices) or quasiharmonic analyses (diagmatrix - analysis command). +Analyze previously calculated eigenmodes obtained from principal component analyses (of covariance matrices) or quasiharmonic analyses (diagmatrix analysis command). Modes are taken from a previously generated data set (i.e. from \series bold @@ -51970,8 +55032,8 @@ readdata \series default \shape default . - By default, classical (Boltzmann) statistics are used in populating the - modes. + By default, + classical (Boltzmann) statistics are used in populating the modes. A possible series of commands would be \begin_inset Quotes eld \end_inset @@ -51996,7 +55058,8 @@ mwcovar \begin_inset Quotes erd \end_inset - to generate the matrix, + to generate the matrix, + \begin_inset Quotes eld \end_inset @@ -52010,7 +55073,10 @@ diagmatrix \begin_inset Quotes erd \end_inset - to calculate the modes, and, finally, + to calculate the modes, + and, + finally, + \begin_inset Quotes eld \end_inset @@ -52029,8 +55095,8 @@ modes \end_layout \begin_layout Standard -For example, to calculate the RMS fluctuations or displacements of the first - 3 eigenmodes caluclated from a mass-weighted covariance matrix: +For example, + to calculate the RMS fluctuations or displacements of the first 3 eigenmodes caluclated from a mass-weighted covariance matrix: \end_layout \begin_layout LyX-Code @@ -52050,8 +55116,8 @@ modes displ out resdispl.dat name evecs beg 1 end 3 \end_layout \begin_layout Standard -Additionally, dipole-dipole correlation functions for modes obtained from - principle component analysis or quasiharmonic analysis can be computed. +Additionally, + dipole-dipole correlation functions for modes obtained from principle component analysis or quasiharmonic analysis can be computed. \end_layout \begin_layout LyX-Code @@ -52077,8 +55143,8 @@ If \series bold eigenval \series default - is specified, the fraction contribution of each eigenvector to the total - motion is calculated and output with format: + is specified, + the fraction contribution of each eigenvector to the total motion is calculated and output with format: \end_layout \begin_layout LyX-Code @@ -52091,12 +55157,14 @@ where \family typewriter #Mode \family default - is the eigenvector number, + is the eigenvector number, + \family typewriter Frac. \family default - is the eigenvalue over the sum of all eigenvalues, + is the eigenvalue over the sum of all eigenvalues, + \family typewriter Cumulative \family default @@ -52104,27 +55172,25 @@ Cumulative \family typewriter Frac. \family default -, and +, + and \family typewriter Eigenval \family default is the eigenvalue itself. - Note that in order to get an idea for how much each eigenvector contributes - to all motion, this is best used when all possible eigenvectors have been - determined for a system. + Note that in order to get an idea for how much each eigenvector contributes to all motion, + this is best used when all possible eigenvectors have been determined for a system. \end_layout \begin_layout Standard -In order to visualize eigenvectors, pseudo-trajectories along eigenvectors - can be created using average coordinates with the +In order to visualize eigenvectors, + pseudo-trajectories along eigenvectors can be created using average coordinates with the \series bold trajout \series default keyword. - For example, to write a pseudo-trajectory of the first principal component - from principal component value of -100 to 100 for a previously calculated - Modes data set corresponding to heavy atoms (no hydrogens) for residues - 1 to 36: + For example, + to write a pseudo-trajectory of the first principal component from principal component value of -100 to 100 for a previously calculated Modes data set corresponding to heavy atoms (no hydrogens) for residues 1 to 36: \end_layout \begin_layout LyX-Code @@ -52158,8 +55224,7 @@ multicurve set <dset> [set <dset> ...] \end_layout \begin_layout LyX-Code - name <dsname> nexp <m> [form {mexp|mexpk|mexpk_penalty} - } + name <dsname> nexp <m> [form {mexp|mexpk|mexpk_penalty} } \end_layout \begin_layout LyX-Code @@ -52205,6 +55270,7 @@ set \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-Data-Set-Math" +nolink "false" \end_inset @@ -52249,22 +55315,22 @@ form \begin_deeper \begin_layout Description -mexp Multi-exponential, SUM(m)[ An * exp(An+1 * X)] +mexp Multi-exponential, + SUM(m)[ An * exp(An+1 * X)] \end_layout \begin_layout Description -mexpk Multi-exponential plus constant, A0 + SUM(m)[An * exp(An+1 * X)] +mexpk Multi-exponential plus constant, + A0 + SUM(m)[An * exp(An+1 * X)] \end_layout \begin_layout Description -mexpk_penalty Same as mexpk except sum of prefactors constrained to 1.0 and - exponential constants constrained to < 0.0. +mexpk_penalty Same as mexpk except sum of prefactors constrained to 1.0 and exponential constants constrained to < 0.0. \end_layout \end_deeper \begin_layout Description -AX=<value> Value of any constants in specified equation with X starting - from 0 (can specify more than one). +AX=<value> Value of any constants in specified equation with X starting from 0 (can specify more than one). \end_layout \begin_layout Description @@ -52292,8 +55358,7 @@ maxit \begin_inset space ~ \end_inset -iterations> Number of iterations to run curve fitting algotrithm (default - 50). +iterations> Number of iterations to run curve fitting algotrithm (default 50). \end_layout \begin_layout Description @@ -52309,8 +55374,7 @@ outxbins \begin_inset space ~ \end_inset -<NX> Number of points to use when generating final curve (default same number - of points as input data set). +<NX> Number of points to use when generating final curve (default same number of points as input data set). \end_layout \begin_layout Description @@ -52318,8 +55382,7 @@ outxmin \begin_inset space ~ \end_inset -<xmin> Minimum X value to use for final curve (default same number of points - as input data set). +<xmin> Minimum X value to use for final curve (default same number of points as input data set). \end_layout \begin_layout Description @@ -52327,8 +55390,7 @@ outxmax \begin_inset space ~ \end_inset -<xmax> Maximum X value to use for final curve (default same number of points - as input data set). +<xmax> Maximum X value to use for final curve (default same number of points as input data set). \end_layout \end_deeper @@ -52344,6 +55406,7 @@ curvefit \begin_inset CommandInset ref LatexCommand vpageref reference "subsec:cpptraj_curvefit" +nolink "false" \end_inset @@ -52437,8 +55500,7 @@ free \begin_inset space ~ \end_inset -<T> Calculate free energy from bin populations as G = -R * <T> * ln( Ni - / Nmax ). +<T> Calculate free energy from bin populations as G = -R * <T> * ln( Ni / Nmax ). \end_layout \begin_layout Description @@ -52495,8 +55557,8 @@ resrange \end_deeper \begin_layout Standard -Calculate the average and standard deviation of [phi] and [psi] data set - pairs, write to <file> with format: +Calculate the average and standard deviation of [phi] and [psi] data set pairs, + write to <file> with format: \end_layout \begin_layout LyX-Code @@ -52504,14 +55566,13 @@ Calculate the average and standard deviation of [phi] and [psi] data set \end_layout \begin_layout Standard -Where Phi is the average value of phi, Psi is the average value of psi, - SD(Phi) is the standard deviation of phi, SD(psi) is the standard deviation - of psi, and Legend contains text describing the phi and psi data sets used - in the calculation. +Where Phi is the average value of phi, + Psi is the average value of psi, + SD(Phi) is the standard deviation of phi, + SD(psi) is the standard deviation of psi, + and Legend contains text describing the phi and psi data sets used in the calculation. Periodicity is taken into account during averaging. - The data sets must have been internally labeled as type 'phi'/'psi' and - must have a data set index set (actions like dihedral and multidihedral - do this automatically). + The data sets must have been internally labeled as type 'phi'/'psi' and must have a data set index set (actions like dihedral and multidihedral do this automatically). For example: \end_layout @@ -52547,8 +55608,7 @@ name "subsec:cpptraj-projectdata" \end_layout \begin_layout LyX-Code -projectdata evecs <evecs dataset> [name <name>] [out <outfile>] [beg <beg>] - [end <end>] +projectdata evecs <evecs dataset> [name <name>] [out <outfile>] [beg <beg>] [end <end>] \end_layout \begin_layout LyX-Code @@ -52622,10 +55682,11 @@ arg>] (Dihedral covariance only) Dihedral data sets to use in projection; \begin_inset space ~ \end_inset -arg>] (Data covariance only, e.g. +arg>] (Data covariance only, + e.g. from TICA). - 1D data sets to use in projection; MUST CORRESPOND TO HOW EIGENVECTORS - WERE GENERATED. + 1D data sets to use in projection; + MUST CORRESPOND TO HOW EIGENVECTORS WERE GENERATED. \end_layout \begin_layout Standard @@ -52653,6 +55714,7 @@ reference "subsec:cpptraj-projection" plural "false" caps "false" noprefix "false" +nolink "false" \end_inset @@ -52693,9 +55755,9 @@ nx \begin_inset space ~ \end_inset -<nxvals> Number of X values to use in output data set(s) (ranging from input - set min to max X). - If not specified, input X values used. +<nxvals> Number of X values to use in output data set(s) (ranging from input set min to max X). + If not specified, + input X values used. \end_layout \begin_layout Description @@ -52719,8 +55781,7 @@ DataSets Generated: \end_layout \begin_layout Description -<name>:<idx> Output fit line(s) (indexed by input set order if more than - one input set). +<name>:<idx> Output fit line(s) (indexed by input set order if more than one input set). \end_layout \begin_layout Description @@ -52748,8 +55809,8 @@ statsout \end_layout \begin_layout Standard -For example, to fit data read in from a file and then create a set using - the fit parameters: +For example, + to fit data read in from a file and then create a set using the fit parameters: \end_layout \begin_layout LyX-Code @@ -52780,8 +55841,7 @@ name "subsec:cpptraj-remlog" \end_layout \begin_layout LyX-Code -remlog {<remlog dataset> | <remlog filename>} [out <filename>] [crdidx | - repidx] +remlog {<remlog dataset> | <remlog filename>} [out <filename>] [crdidx | repidx] \end_layout \begin_layout LyX-Code @@ -52789,8 +55849,7 @@ remlog {<remlog dataset> | <remlog filename>} [out <filename>] [crdidx | \end_layout \begin_layout LyX-Code - [reptimeslope <n> reptimeslopeout <file>] [acceptout <file>] [name <setname> -] + [reptimeslope <n> reptimeslopeout <file>] [acceptout <file>] [name <setname>] \begin_inset Separator latexpar \end_inset @@ -52832,12 +55891,14 @@ filename> REM log file name to read in. \begin_deeper \begin_layout Description -crdidx Print coordinate index vs exchange; output sets contain replica indices. +crdidx Print coordinate index vs exchange; + output sets contain replica indices. \end_layout \begin_layout Description -repidx Print replica index vs exchange; output sets contain coordinate indices. +repidx Print replica index vs exchange; + output sets contain coordinate indices. \end_layout @@ -52919,7 +55980,8 @@ reptimeslope \begin_inset space ~ \end_inset -<file>]] Extract energy data from replica log, optionally write to file. +<file>]] Extract energy data from replica log, + optionally write to file. \end_layout \begin_layout Standard @@ -52931,7 +55993,8 @@ DataSets created: \end_layout \begin_layout Description -<setname>[E]:<idx> If 'edata' specified, energy data from replica log. +<setname>[E]:<idx> If 'edata' specified, + energy data from replica log. \end_layout \end_deeper @@ -52943,11 +56006,11 @@ readdata \series default \emph default ) M-REMD/T-REMD/H-REMD replica log data. - Statistics calculated include round-trip time, which is the time needed - for a coordinate set to travel from the lowest replica to the highest and - back, and the number of exchanges each coordinate spent at each replica. - For example, to read in REM log data from an Amber M-REMD run and analyze - it: + Statistics calculated include round-trip time, + which is the time needed for a coordinate set to travel from the lowest replica to the highest and back, + and the number of exchanges each coordinate spent at each replica. + For example, + to read in REM log data from an Amber M-REMD run and analyze it: \end_layout \begin_layout LyX-Code @@ -52965,7 +56028,8 @@ For an example of remlog \series default \emph default - analysis applied to actual REMD data, see Roe et al. + analysis applied to actual REMD data, + see Roe et al. \begin_inset CommandInset citation LatexCommand citep key "Roe2014" @@ -52990,6 +56054,8 @@ name "subsec:cpptraj-rms2d" \begin_layout LyX-Code rms2d \begin_inset Index idx +range none +pageformat default status collapsed \begin_layout Plain Layout @@ -53045,8 +56111,8 @@ set>] Name of previously generated COORDS DataSet. \end_layout \begin_layout Description -[dme] Calculate distance RMSD instead of coordinate RMSD; this is substantially - slower. +[dme] Calculate distance RMSD instead of coordinate RMSD; + this is substantially slower. \end_layout \begin_layout Description @@ -53058,6 +56124,7 @@ set>] Name of previously generated COORDS DataSet. \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_symmrmsd" +nolink "false" \end_inset @@ -53077,8 +56144,7 @@ reference "subsec:cpptraj_symmrmsd" \begin_inset space ~ \end_inset -<traj>] Calculate 2D RMSD to frames in trajectory <traj> instead (can also - be another COORDS set). +<traj>] Calculate 2D RMSD to frames in trajectory <traj> instead (can also be another COORDS set). \end_layout \begin_layout Description @@ -53098,7 +56164,8 @@ parmindex \begin_inset space ~ \end_inset -<#>] Topology to use for <traj>; only useful in conjunction with +<#>] Topology to use for <traj>; + only useful in conjunction with \series bold reftraj \series default @@ -53106,8 +56173,8 @@ reftraj \end_layout \begin_layout Description -[<refmask>] Mask of atoms in reference; only useful in conjunction with - +[<refmask>] Mask of atoms in reference; + only useful in conjunction with \series bold reftraj \series default @@ -53127,21 +56194,23 @@ C \begin_inset Formula $C(i)=\frac{\sum_{j=0}^{j<N-i}\exp(-RMSD(j,j+i))}{N-i}$ \end_inset -, where +, + where \shape italic i \shape default - is the lag, + is the lag, + \shape italic j \shape default - is the frame #, and + is the frame #, + and \shape italic N \shape default is the total number of frames. - An exponential is used to weight the RMSD since 0.0 RMSD is equivalent to - correlation of 1.0. + An exponential is used to weight the RMSD since 0.0 RMSD is equivalent to correlation of 1.0. This can only be done if \series bold reftraj @@ -53165,23 +56234,21 @@ corr \begin_layout Standard \shape italic -Note: For backwards compatibility with ptraj the command '2drms' will also - work. +Note: + For backwards compatibility with ptraj the command '2drms' will also work. \end_layout \begin_layout Standard -Calculate the best-fit RMSD of each frame in <crd set> (the default COORDS - set if none specified) to each other frame. - This creates an upper-triangle matrix named <name> (or a full matrix if - +Calculate the best-fit RMSD of each frame in <crd set> (the default COORDS set if none specified) to each other frame. + This creates an upper-triangle matrix named <name> (or a full matrix if \series bold reftraj \series default specified). - The output of the rms2d command can be best-viewed using gnuplot; a gnuplot-for -matted file can be produced by giving <filename> a '.gnu' extension. - For example, to calculate the RMSD of non-hydrogen atoms of each frame - in trajectory + The output of the rms2d command can be best-viewed using gnuplot; + a gnuplot-formatted file can be produced by giving <filename> a '.gnu' extension. + For example, + to calculate the RMSD of non-hydrogen atoms of each frame in trajectory \begin_inset Quotes eld \end_inset @@ -53189,7 +56256,8 @@ test.nc \begin_inset Quotes erd \end_inset - to each other frame, writing to a gnuplot-viewable file + to each other frame, + writing to a gnuplot-viewable file \begin_inset Quotes eld \end_inset @@ -53250,6 +56318,8 @@ name "subsec:cpptraj-rmsavgcorr" \begin_layout LyX-Code rmsavgcorr \begin_inset Index idx +range none +pageformat default status open \begin_layout Plain Layout @@ -53283,8 +56353,7 @@ rmsavgcorr \begin_inset space ~ \end_inset -set>] COORDS data set to use (if not specified the default COORDS set will - be used). +set>] COORDS data set to use (if not specified the default COORDS set will be used). \end_layout \begin_layout Description @@ -53344,8 +56413,7 @@ file> \begin_inset space ~ \end_inset -<parmfile>] Use reference file (with specified parm) as reference for each - window. +<parmfile>] Use reference file (with specified parm) as reference for each window. \end_layout \end_deeper @@ -53358,8 +56426,7 @@ literal "true" \end_inset - (RAC) is calculated as the average RMSD of running-averaged coordinates - over increasing window sizes (or lag). + (RAC) is calculated as the average RMSD of running-averaged coordinates over increasing window sizes (or lag). Output has format: \end_layout @@ -53368,27 +56435,26 @@ literal "true" \end_layout \begin_layout Standard -The first entry has a window size of 1, and so is just the average RMSD - of all frames to the specified reference structure. - The second entry has a window size of two, so it is the average RMSD of - all frames averaged over two adjacent windows to the specified reference, +The first entry has a window size of 1, + and so is just the average RMSD of all frames to the specified reference structure. + The second entry has a window size of two, + so it is the average RMSD of all frames averaged over two adjacent windows to the specified reference, and so on. - The RAC will be calculated up to the number of frames minus 1 or the value - specified by + The RAC will be calculated up to the number of frames minus 1 or the value specified by \series bold stop \series default -, whichever is lower. +, + whichever is lower. The offset can be used to speed up the calculation by skipping window sizes. To calculate mass-weighted RMSD specify \series bold mass \series default . - Note that to reduce memory costs it can be useful to strip all coordinates - not involved in the RMS fit from the system prior to specifying 'rmsavgcorr'. - For example, to calculate the correlation of C-alpha RMSD of residues 2 - to 12: + Note that to reduce memory costs it can be useful to strip all coordinates not involved in the RMS fit from the system prior to specifying 'rmsavgcorr'. + For example, + to calculate the correlation of C-alpha RMSD of residues 2 to 12: \end_layout \begin_layout LyX-Code @@ -53401,27 +56467,23 @@ rmsavgcorr out rmscorr.dat \begin_layout Standard The curve generated by RAC decays towards zero due to the way RAC is defined. - By the time the "lag" is N-1 (where N is the total number of frames) you - have only two averaged coordinates: call them Avg1 (averaged over 1 though - N-1 frames) and Avg2 (averaged over 2 through N frames). - Barring any extraordinary circumstances the RMSD between Avg1 and Avg2 - will almost certainly be quite low. + By the time the "lag" is N-1 (where N is the total number of frames) you have only two averaged coordinates: + call them Avg1 (averaged over 1 though N-1 frames) and Avg2 (averaged over 2 through N frames). + Barring any extraordinary circumstances the RMSD between Avg1 and Avg2 will almost certainly be quite low. \end_layout \begin_layout Standard The RAC is a way to probe the time scales of interesting events. - Any deviation from a smoothly decaying curve is an indication that there - are some significant structural differences occurring over that time interval. - RAC curves can be particularly useful when comparing independent simulations - of the same system. + Any deviation from a smoothly decaying curve is an indication that there are some significant structural differences occurring over that time interval. + RAC curves can be particularly useful when comparing independent simulations of the same system. \end_layout \begin_layout Standard -One thing to keep in mind that since the underlying metric is RMSD, it can - be sensitive to the reference frame you choose. - It may be useful to try looking at both RAC from the first frame, as well - as an averaged reference frame. +One thing to keep in mind that since the underlying metric is RMSD, + it can be sensitive to the reference frame you choose. + It may be useful to try looking at both RAC from the first frame, + as well as an averaged reference frame. For an example of use see Galindo-Murillo et al. \begin_inset CommandInset citation LatexCommand citep @@ -53430,7 +56492,8 @@ literal "true" \end_inset -, in particular Figure 2. +, + in particular Figure 2. \end_layout \begin_layout Subsection @@ -53474,7 +56537,8 @@ rotdif [outfile <outfilename>] [usefft] \end_layout \begin_layout LyX-Code - Options for calculating local effective D, small anisotropy: + Options for calculating local effective D, + small anisotropy: \end_layout \begin_layout LyX-Code @@ -53551,7 +56615,8 @@ rvecin \begin_inset space ~ \end_inset -<randvecIn> File to read random vectors from (format is 1 per line, 4 columns, +<randvecIn> File to read random vectors from (format is 1 per line, + 4 columns, <#> <VX> <VY> <VZ>). \end_layout @@ -53573,7 +56638,8 @@ rvecout \begin_inset space ~ \end_inset -<randvecOut> File to write random vectors to (format is 1 per line, 4 columns, +<randvecOut> File to write random vectors to (format is 1 per line, + 4 columns, <#> <VX> <VY> <VZ>). \end_layout @@ -53595,8 +56661,9 @@ rmout \begin_inset space ~ \end_inset -<rmOut> Write rotation matrices to file, 1 per line, frame # followed by - matrix in row-major order. +<rmOut> Write rotation matrices to file, + 1 per line, + frame # followed by matrix in row-major order. \end_layout \end_deeper @@ -53619,8 +56686,7 @@ order \begin_inset space ~ \end_inset -<olegendre> The order of Legendre polynomials to use when calculating vector - time correlation functions (default 2). +<olegendre> The order of Legendre polynomials to use when calculating vector time correlation functions (default 2). \end_layout \begin_layout Description @@ -53649,8 +56715,8 @@ corrout \begin_inset space ~ \end_inset -<corrOut> If specified write vector time correlation functions to <corrOut>.X - with format: <Time> <Px> +<corrOut> If specified write vector time correlation functions to <corrOut>.X with format: + <Time> <Px> \end_layout \end_deeper @@ -53658,7 +56724,8 @@ corrout \family roman \emph on -Options for calculating local effective D, small anisotropy: +Options for calculating local effective D, + small anisotropy: \family default \begin_inset Separator latexpar @@ -53673,8 +56740,7 @@ deffout \begin_inset space ~ \end_inset -<deffOut> File to write out local effective diffusion constants determined - in the limit of small anisotropy. +<deffOut> File to write out local effective diffusion constants determined in the limit of small anisotropy. \end_layout \begin_layout Description @@ -53682,9 +56748,7 @@ itmax \begin_inset space ~ \end_inset -<itmax> Maximum number of iterations to determine each local effective diffusion - constant (small anisotropy) assuming fit to single exponential form (default - 500). +<itmax> Maximum number of iterations to determine each local effective diffusion constant (small anisotropy) assuming fit to single exponential form (default 500). \end_layout \begin_layout Description @@ -53692,8 +56756,7 @@ tol \begin_inset space ~ \end_inset -<tolerance> Tolerance for determining local effective diffusion constant - (small anisotropy) assuming fit to single exponential form (default 1E-6). +<tolerance> Tolerance for determining local effective diffusion constant (small anisotropy) assuming fit to single exponential form (default 1E-6). \end_layout \begin_layout Description @@ -53701,8 +56764,7 @@ d0 \begin_inset space ~ \end_inset -<d0> Initial guess for small anisotropy diffusion constant in radians^2/ns - (default 0.03). +<d0> Initial guess for small anisotropy diffusion constant in radians^2/ns (default 0.03). \end_layout \begin_layout Description @@ -53710,8 +56772,7 @@ nmesh \begin_inset space ~ \end_inset -<NmeshPoints> Number of points per frame to use when creating cubic-splined-smoo -thed forms of vector time correlation curves (default 2). +<NmeshPoints> Number of points per frame to use when creating cubic-splined-smoothed forms of vector time correlation curves (default 2). \end_layout \begin_layout Description @@ -53719,8 +56780,7 @@ dt \begin_inset space ~ \end_inset -<tfac> Time interval between frames (used in integrating vector time correlation - curves) in ns. +<tfac> Time interval between frames (used in integrating vector time correlation curves) in ns. \end_layout \begin_layout Description @@ -53728,8 +56788,7 @@ ti \begin_inset space ~ \end_inset -<ti> Initial time value in ns for integrating the time correlation functions - (default 0.0). +<ti> Initial time value in ns for integrating the time correlation functions (default 0.0). \end_layout \begin_layout Description @@ -53738,8 +56797,7 @@ tf \end_inset <tf> Final time value in ns for integrating the time correlation functions. - It is recommended this be less than the maximum simulation time since the - tails of time correlation functions tend to be noisy. + It is recommended this be less than the maximum simulation time since the tails of time correlation functions tend to be noisy. \end_layout \end_deeper @@ -53770,8 +56828,7 @@ amoeba_itmax \begin_inset space ~ \end_inset -<iterations> Number of iterations to run downhill-simplex minimizer (default - 10000). +<iterations> Number of iterations to run downhill-simplex minimizer (default 10000). \end_layout \begin_layout Description @@ -53779,8 +56836,7 @@ amoeba_nsearch \begin_inset space ~ \end_inset -<n> Number of searches to perform with downhill-simplex minimizer (default - 1). +<n> Number of searches to perform with downhill-simplex minimizer (default 1). \end_layout \begin_layout Description @@ -53792,15 +56848,13 @@ scalesimplex \end_layout \begin_layout Description -gridsearch If specified, perform a brute-force grid search to attempt to - find a better solution for diffusion tensor with full anisotropy (may be - expensive). +gridsearch If specified, + perform a brute-force grid search to attempt to find a better solution for diffusion tensor with full anisotropy (may be expensive). \end_layout \end_deeper \begin_layout Standard -Evaluate rotational diffusion properties of a molecule over a trajectory - according to an expanded version of the procedure laid out by Wong & Case +Evaluate rotational diffusion properties of a molecule over a trajectory according to an expanded version of the procedure laid out by Wong & Case \begin_inset CommandInset citation LatexCommand citep key "wong2008" @@ -53809,48 +56863,42 @@ literal "true" \end_inset . - Briefly, random vectors (representing the orientation of the molecule) - are rotated according to rotation matrices obtained from an RMS fit to - a reference structure (typically an averaged structure). - For each random vector the time correlation function of the rotated vector - is calculated using Legendre polynomials of the specified order. - The integral over this time correlation function (which may be smoothed - using cubic splines to improve the integration) is then used to find the - effective diffusion constant (D) in the limit of small anisotropy. - Then, using each calculated D, the diffusion tensor is determined with - full anisotropy. - Finally, a downhill simplex minimizer is used to optimize D with full anisotrop -y; (this last step is not described in the original paper). -\end_layout - -\begin_layout Standard -Rotation matrices are generated via an RMS fit to a reference structure - (see + Briefly, + random vectors (representing the orientation of the molecule) are rotated according to rotation matrices obtained from an RMS fit to a reference structure (typically an averaged structure). + For each random vector the time correlation function of the rotated vector is calculated using Legendre polynomials of the specified order. + The integral over this time correlation function (which may be smoothed using cubic splines to improve the integration) is then used to find the effective diffusion constant (D) in the limit of small anisotropy. + Then, + using each calculated D, + the diffusion tensor is determined with full anisotropy. + Finally, + a downhill simplex minimizer is used to optimize D with full anisotropy; + (this last step is not described in the original paper). +\end_layout + +\begin_layout Standard +Rotation matrices are generated via an RMS fit to a reference structure (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-rmsd" +nolink "false" \end_inset ). - It is recommended that the RMS fit be done to an average structure (see - + It is recommended that the RMS fit be done to an average structure (see \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj-average" +nolink "false" \end_inset ). - These rotation matrices are used to rotate each random vector M times (where - M is the total number of frames), which creates a time series for each - random vector. - The time correlation functions are calculated for each random vector time - series using Legendre polynomials of the specified order (default 2). - Calculation of time correlation functions can be sped up by using the OpenMP - version of CPPTRAJ. - The maximum length of the correlation function (or lag) can be specified - by + These rotation matrices are used to rotate each random vector M times (where M is the total number of frames), + which creates a time series for each random vector. + The time correlation functions are calculated for each random vector time series using Legendre polynomials of the specified order (default 2). + Calculation of time correlation functions can be sped up by using the OpenMP version of CPPTRAJ. + The maximum length of the correlation function (or lag) can be specified by \series bold ncorr \series default @@ -53859,26 +56907,27 @@ ncorr \series bold ncorr \series default - is not specified it will be set internally based on the specified values - of + is not specified it will be set internally based on the specified values of \series bold ti \series default -, +, + \series bold tf \series default -, and +, + and \series bold dt \series default -; this is recommended. +; + this is recommended. Note that if \series bold ncorr \series default - is specified it should be set to a number less than the total number of - frames since noise in time correlation functions increases as + is specified it should be set to a number less than the total number of frames since noise in time correlation functions increases as \series bold ncorr \series default @@ -53891,7 +56940,9 @@ ti \series bold dt \series default -, generally ns; 0.0 ns if not specified) to +, + generally ns; + 0.0 ns if not specified) to \series bold tf \series default @@ -53899,14 +56950,14 @@ tf \series bold ti \series default -), with the time between frames specified by +), + with the time between frames specified by \series bold dt \series default -; the final time should be less than the total simulation time (see example - below). - The relative size of the mesh used with cubic spline interpolation for - integration is controlled by +; + the final time should be less than the total simulation time (see example below). + The relative size of the mesh used with cubic spline interpolation for integration is controlled by \series bold nmesh \series default @@ -53918,46 +56969,49 @@ ncorr \series bold nmesh \series default -); +); + \series bold nmesh \series default - = 1 means no interpolation, default is 2. + = 1 means no interpolation, + default is 2. Note that if the integral of the correlation function for a vector is negative, - that vector will be skipped in subsequent calculations (since it would - imply a negative value for effective diffusion). + that vector will be skipped in subsequent calculations (since it would imply a negative value for effective diffusion). \end_layout \begin_layout Standard -The iterative solver for effective value of the diffusion constant from - the correlation functions is controlled by +The iterative solver for effective value of the diffusion constant from the correlation functions is controlled by \series bold itmax \series default -, +, + \series bold tol \series default -, and +, + and \series bold d0 \series default -, where +, + where \series bold itmax \series default - specifies the number of iterations to perform (default 500), + specifies the number of iterations to perform (default 500), + \series bold tol \series default - specifies the tolerance (default 1E-6), and + specifies the tolerance (default 1E-6), + and \series bold d0 \series default - specifies the initial guess for the diffusion constant in radians^2 / ns - (default 0.03). - Effective diffusion constants for each random vector can be written out - to a file specified by + specifies the initial guess for the diffusion constant in radians^2 / ns (default 0.03). + Effective diffusion constants for each random vector can be written out to a file specified by \series bold deffout \series default @@ -53967,13 +57021,14 @@ deffout outfile \series default . - Details on the Q and D tensors are given, as well as observed and calculated - tau for each random vector. - First, results are printed for analysis in the limit of small anisotropy. - Next, results are printed for analysis with full anisotropy. - The results of the full anisotropic calculation are first given using results - from the small anisotropic analysis as an initial guess, followed by the - final results after minimization using the downhill simplex (amoeba) minimizer. + Details on the Q and D tensors are given, + as well as observed and calculated tau for each random vector. + First, + results are printed for analysis in the limit of small anisotropy. + Next, + results are printed for analysis with full anisotropy. + The results of the full anisotropic calculation are first given using results from the small anisotropic analysis as an initial guess, + followed by the final results after minimization using the downhill simplex (amoeba) minimizer. \end_layout \begin_layout Subsubsection* @@ -53985,27 +57040,22 @@ There are two important things to keep in mind when using rotdif analysis: \end_layout \begin_layout Enumerate -When calculating any kind of diffusive property it is best to simulate in - the microcanonical (NVE) ensemble with a shorter time step and increased - SHAKE tolerance; thermostats and barostats will effect diffusion calculations. +When calculating any kind of diffusive property it is best to simulate in the microcanonical (NVE) ensemble with a shorter time step and increased SHAKE tolerance; + thermostats and barostats will effect diffusion calculations. \end_layout \begin_layout Enumerate -Time correlation functions become noisier as the length of the function - approaches the maximum. - Therefore in general one should choose parameters for the time correlation - function that are much shorter than the total simulation length. +Time correlation functions become noisier as the length of the function approaches the maximum. + Therefore in general one should choose parameters for the time correlation function that are much shorter than the total simulation length. \end_layout \begin_layout Standard -For example, given a trajectory 'mdcrd.nc' containing 10000 frames with a - total simulation time of 200 ns (so the time between frames is 0.02 ns), - to calculate rotational diffusion using 100 vectors using rotation matrices - generated via an RMS fit to 'avgstruct.pdb', computing and integrating the - time correlation function for each vector from 0 to 5 ns (1/40th of the - simulation), and writing out the effective diffusion constants and results - to 'deffs.dat' and 'rotdif.out' respectively: +For example, + given a trajectory 'mdcrd.nc' containing 10000 frames with a total simulation time of 200 ns (so the time between frames is 0.02 ns), + to calculate rotational diffusion using 100 vectors using rotation matrices generated via an RMS fit to 'avgstruct.pdb', + computing and integrating the time correlation function for each vector from 0 to 5 ns (1/40th of the simulation), + and writing out the effective diffusion constants and results to 'deffs.dat' and 'rotdif.out' respectively: \end_layout \begin_layout LyX-Code @@ -54095,8 +57145,7 @@ runningavg <dset1> [<dset2> ...] [name <dsetname>] [out <filename>] \end_deeper \begin_layout Standard -Calculate running average over windows of given size for data in selected - data set(s). +Calculate running average over windows of given size for data in selected data set(s). \end_layout \begin_layout Subsection @@ -54145,8 +57194,7 @@ slope <dset0> [<dset1> ...] [out <outfile>] [name <name>] \begin_inset space ~ \end_inset -{forward|backward|central}] Specify type of finite difference to calculate - (default forward). +{forward|backward|central}] Specify type of finite difference to calculate (default forward). \end_layout \begin_layout Standard @@ -54154,8 +57202,7 @@ DataSets generated: \end_layout \begin_layout Description -<name>:<idx> Output finite difference curves for each input data set (indexed - from 0). +<name>:<idx> Output finite difference curves for each input data set (indexed from 0). \end_layout \end_deeper @@ -54201,7 +57248,8 @@ spline <dset0> [<dset1> ...] [out <outfile>] [meshsize <n> | meshfactor <x>] \begin_inset space ~ \end_inset -<x>] If meshsize is not given, use a mesh of data set size * <x>. +<x>] If meshsize is not given, + use a mesh of data set size * <x>. \end_layout \begin_layout Description @@ -54328,23 +57376,26 @@ distance for each set. \end_deeper \begin_layout Standard -Analyze angles, dihedrals, distances, and/or puckers and calculate various - properties. - More specific analyses can be obtained by labelling distances/dihedrals/puckers - (from e.g. +Analyze angles, + dihedrals, + distances, + and/or puckers and calculate various properties. + More specific analyses can be obtained by labelling distances/dihedrals/puckers (from e.g. the \series bold \shape italic distance \series default \shape default -, +, + \series bold \shape italic dihedral \series default \shape default -, +, + \series bold \shape italic pucker @@ -54368,8 +57419,19 @@ type \begin_inset space ~ \end_inset -labels: alpha, beta, gamma, delta, epsilon, zeta, chi, c2p h1p, phi, psi, - omega, pchi +labels: + alpha, + beta, + gamma, + delta, + epsilon, + zeta, + chi, + c2p h1p, + phi, + psi, + omega, + pchi \end_layout \begin_layout Description @@ -54381,7 +57443,8 @@ type \begin_inset space ~ \end_inset -labels: noe +labels: + noe \end_layout \begin_layout Description @@ -54393,14 +57456,16 @@ type \begin_inset space ~ \end_inset -labels: pucker +labels: + pucker \end_layout \begin_layout Standard -For each input data set, the average, standard deviation, initial and final - values will be reported. - The cyclic nature of dihedral/pucker data sets is taken into consideration - when averaging. +For each input data set, + the average, + standard deviation, + initial and final values will be reported. + The cyclic nature of dihedral/pucker data sets is taken into consideration when averaging. \end_layout \begin_layout Subsubsection @@ -54408,10 +57473,10 @@ Torsion Analysis \end_layout \begin_layout Standard -A table will be written in ASCII format showing the distribution of torsion - values for each data set. +A table will be written in ASCII format showing the distribution of torsion values for each data set. More specific information may be printed based on the set type. - Values in the output marked SNB are from those defined by Schneider, Neidle, + Values in the output marked SNB are from those defined by Schneider, + Neidle, and Berman. \begin_inset CommandInset citation LatexCommand citep @@ -54420,8 +57485,7 @@ literal "true" \end_inset - For more information on nucleic acid torsion as pertains to RNA see further - work by Schneider et al.. + For more information on nucleic acid torsion as pertains to RNA see further work by Schneider et al.. \begin_inset CommandInset citation LatexCommand citep key "Schneider2004" @@ -54433,8 +57497,8 @@ literal "true" \end_layout \begin_layout Standard -For example, to perform in-depth analysis on some nucleic acid dihedral - angles: +For example, + to perform in-depth analysis on some nucleic acid dihedral angles: \end_layout \begin_layout LyX-Code @@ -54458,17 +57522,18 @@ Distance Analysis \end_layout \begin_layout Standard -A table will be written in ASCII format showing the distribution of distance - values < 6.5. - If a distance is labled as 'type noe' a compact time series will be printed - in ASCII format showing the NOE as strong, medium, or weak. - In addition the <r^-6>^(-1/6) averaged value will be reported, as well - as the number of upper/lower bound violations. +A table will be written in ASCII format showing the distribution of distance values < 6.5. + If a distance is labled as 'type noe' a compact time series will be printed in ASCII format showing the NOE as strong, + medium, + or weak. + In addition the <r^-6>^(-1/6) averaged value will be reported, + as well as the number of upper/lower bound violations. If \series bold 'noeout' \series default - is specified, a summary of these results will be written with format: + is specified, + a summary of these results will be written with format: \end_layout \begin_layout LyX-Code @@ -54476,23 +57541,26 @@ A table will be written in ASCII format showing the distribution of distance \end_layout \begin_layout Standard -Where <#NOE> is an index, <R6> is the <r^-6>^(-1/6) averaged distance, <Nviolati -on> is the total number of bounds violations, <AvgViolation> is the average - difference from expected distance +Where <#NOE> is an index, + <R6> is the <r^-6>^(-1/6) averaged distance, + <Nviolation> is the total number of bounds violations, + <AvgViolation> is the average difference from expected distance \shape italic Rexp \shape default - when the distance is violated (note that if not explicitly set, + when the distance is violated (note that if not explicitly set, + \shape italic Rexp \shape default - is set to the upper bound when the lower bound is 0.0, or the average of - upper and lower bounds otherwise), and <Name> is the data set legend. + is set to the upper bound when the lower bound is 0.0, + or the average of upper and lower bounds otherwise), + and <Name> is the data set legend. \end_layout \begin_layout Standard -For example, the following input could be used to check certain distances - for NOE violations: +For example, + the following input could be used to check certain distances for NOE violations: \end_layout \begin_layout LyX-Code @@ -54524,8 +57592,7 @@ Pucker Analysis \end_layout \begin_layout Standard -A table will be written in ASCII format showing the distribution of pucker - phases for each data set. +A table will be written in ASCII format showing the distribution of pucker phases for each data set. \end_layout \begin_layout Subsection @@ -54649,7 +57716,8 @@ to \end_inset skip> Comma separated list of number of points to skip. - For each number given, the TI integration will be repeated. + For each number given, + the TI integration will be repeated. \end_layout \begin_layout Description @@ -54673,9 +57741,11 @@ avgincrement \begin_inset space ~ \end_inset -<#>] Starting from point 'avgskip' (default 0), repeat the TI integration - calculation in increments of <#> up to 'avgmax' (default all points), so - 'avgincrement 10' will do points 0-10, 0-20, etc. +<#>] Starting from point 'avgskip' (default 0), + repeat the TI integration calculation in increments of <#> up to 'avgmax' (default all points), + so 'avgincrement 10' will do points 0-10, + 0-20, + etc. \end_layout \begin_layout Description @@ -54703,9 +57773,8 @@ bs_samples \begin_inset space ~ \end_inset -<factor>] Estimate error via bootstrap analysis, repeating the TI integration - <samples> times using <points> points or <factor> times the total number - of points. +<factor>] Estimate error via bootstrap analysis, + repeating the TI integration <samples> times using <points> points or <factor> times the total number of points. Randomize with given seed. \end_layout @@ -54716,13 +57785,14 @@ DataSet Aspects: \begin_layout Description [TIcurve] Raw TI curve. If 'nskip' index is number of points skipped. - If bootstrapping, index is sample index. + If bootstrapping, + index is sample index. If 'avgincrement' the index is the number of points. \end_layout \begin_layout Description -[SD] For bootstrap analysis, standard deviation of average free energy over - samples. +[SD] For bootstrap analysis, + standard deviation of average free energy over samples. \end_layout \end_deeper @@ -54732,7 +57802,8 @@ Calculate free energy using DV/DL energies from thermodynamic integration. \series bold <file> \series default -, while the curves themselves will be written to +, + while the curves themselves will be written to \series bold <ti curve file> \series default @@ -54741,12 +57812,13 @@ Calculate free energy using DV/DL energies from thermodynamic integration. \series bold nq \series default - to specify number of Gaussian quadrature points; otherwise the lambda values - should be specified by + to specify number of Gaussian quadrature points; + otherwise the lambda values should be specified by \series bold xvals \series default -, where +, + where \series bold <x values> \series default @@ -54754,14 +57826,13 @@ xvals \end_layout \begin_layout Standard -For example, to perform Gaussian quadrature integration using data sets - named 'TIdata', repeating the calculation for various number of skipped - data points: +For example, + to perform Gaussian quadrature integration using data sets named 'TIdata', + repeating the calculation for various number of skipped data points: \end_layout \begin_layout LyX-Code -ti TIdata nq 9 name Curve out skip.agr curveout curve.agr nskip 0,5,10,15,20,30,40 -,50 +ti TIdata nq 9 name Curve out skip.agr curveout curve.agr nskip 0,5,10,15,20,30,40,50 \end_layout \begin_layout Subsection @@ -54825,8 +57896,10 @@ set \begin_inset space ~ \end_inset -arg1> Input 1D data set name(s), may specify more than once. - If any data set is periodic, all need to be periodic. +arg1> Input 1D data set name(s), + may specify more than once. + If any data set is periodic, + all need to be periodic. \end_layout \begin_layout Description @@ -54851,15 +57924,14 @@ map \begin_deeper \begin_layout Description -kinetic (default) Scale eigenvectors by eigenvalues so that distances in - the transformed data approximate kinetic distances; particularly useful - if using the projections to cluster. +kinetic (default) Scale eigenvectors by eigenvalues so that distances in the transformed data approximate kinetic distances; + particularly useful if using the projections to cluster. \end_layout \begin_layout Description -commute Scale eigenvectors by regularized time scales, sqrt(timescale_i - / 2), so that distances in the transformed data will approximate commute - distances. +commute Scale eigenvectors by regularized time scales, + sqrt(timescale_i / 2), + so that distances in the transformed data will approximate commute distances. Timescales smaller than the lag time are dampened. \begin_inset CommandInset citation LatexCommand citep @@ -54911,13 +57983,11 @@ cumvarout \end_deeper \begin_layout Standard Perform time-independent correlation analysis (TICA). - Similar to principal component analysis (PCA), TICA calculates eigenvectors/eig -envalues (i.e. - eigenmodes) from input data sets (either coordinates or a combination of - other 1D data sets). + Similar to principal component analysis (PCA), + TICA calculates eigenvectors/eigenvalues (i.e. + eigenmodes) from input data sets (either coordinates or a combination of other 1D data sets). Whereas the eigenvectors from PCA describe the variance in the input data, - the eigenvectors from TICA describe the maximal autocorrelation in the - input data at the given lag time. + the eigenvectors from TICA describe the maximal autocorrelation in the input data at the given lag time. \begin_inset CommandInset citation LatexCommand citep key "Perez2013" @@ -54925,9 +57995,8 @@ literal "true" \end_inset - The analysis can be performed on either coordinates or 1D data sets; the - data sets can either be all periodic (in which case they will be converted - to cos/sin form) or not. + The analysis can be performed on either coordinates or 1D data sets; + the data sets can either be all periodic (in which case they will be converted to cos/sin form) or not. \end_layout \begin_layout Subsection @@ -54969,9 +58038,8 @@ vec1 <vecname2>] \series default Vector(s) on which to operate. - By default the auto-correlation function will be calculated if one vector - is specified, and the cross-correlation function will be calculated if - two vectors are specified. + By default the auto-correlation function will be calculated if one vector is specified, + and the cross-correlation function will be calculated if two vectors are specified. \end_layout \begin_layout Description @@ -55003,7 +58071,8 @@ out <order>] \series default - Order of Legendre polynomials to use; default 2. + Order of Legendre polynomials to use; + default 2. \end_layout \begin_layout Description @@ -55055,7 +58124,9 @@ out \series bold [norm] \series default - Normalize all correlation functions, i.e., + Normalize all correlation functions, + i.e., + \begin_inset Formula $C_{l}(t=0)=P_{l}(t=0)=1.0$ \end_inset @@ -55067,8 +58138,8 @@ out \series bold [drct] \series default - Use the direct method to calculate correlations instead of FFT; this will - be much slower. + Use the direct method to calculate correlations instead of FFT; + this will be much slower. \end_layout \begin_layout Description @@ -55084,8 +58155,7 @@ dplr \end_layout \begin_layout Description -[ptrajformat] Write output in ptraj style (prevents use of data formatting - options). +[ptrajformat] Write output in ptraj style (prevents use of data formatting options). \end_layout \begin_layout Standard @@ -55156,10 +58226,9 @@ r(t) \end_deeper \begin_layout Standard -Calculate time auto/cross-correlation functions for vectors using spherical - harmonics theory. - NOTE: To calculate direct correlation functions for vectors just use the - +Calculate time auto/cross-correlation functions for vectors using spherical harmonics theory. + NOTE: + To calculate direct correlation functions for vectors just use the \series bold \emph on corr @@ -55175,9 +58244,12 @@ norm \series bold dplr \series default - is specified, several additional data sets with aspects [R], [RRIG], [R3], - [R6], and [Name] will be created containing either 1 or 2 values depending - on how many vectors were specified. + is specified, + several additional data sets with aspects [R], + [RRIG], + [R3], + [R6], + and [Name] will be created containing either 1 or 2 values depending on how many vectors were specified. \end_layout @@ -55186,8 +58258,8 @@ Examples \end_layout \begin_layout Standard -Vectors between atoms 5 and 6 as well as 7 and 8 are calculated below, for - which auto and cross time correlation functions are obtained. +Vectors between atoms 5 and 6 as well as 7 and 8 are calculated below, + for which auto and cross time correlation functions are obtained. \end_layout \begin_layout LyX-Code @@ -55211,8 +58283,10 @@ timecorr vec1 v0 vec2 v1 tstep 1.0 tcorr 100.0 out v0_v1.out order 2 \end_layout \begin_layout Standard -Similarly, a vector perpendicular to the plane through atoms 18, 19, and - 20 is obtained and further analyzed. +Similarly, + a vector perpendicular to the plane through atoms 18, + 19, + and 20 is obtained and further analyzed. \end_layout \begin_layout LyX-Code @@ -55228,13 +58302,11 @@ vectormath \end_layout \begin_layout LyX-Code -vectormath vec1 <vecname1> vec2 <vecname2> [out <filename>] [norm] [name - <setname>] +vectormath vec1 <vecname1> vec2 <vecname2> [out <filename>] [norm] [name <setname>] \end_layout \begin_layout LyX-Code - [ dotproduct | dotangle | crossproduct | magnitude | average - ] + [ dotproduct | dotangle | crossproduct | magnitude | average ] \begin_inset Separator latexpar \end_inset @@ -55275,8 +58347,8 @@ vec2 \end_layout \begin_layout Description -[norm] Normalize the vectors; this will affect any subsequent calculations - with the vectors. +[norm] Normalize the vectors; + this will affect any subsequent calculations with the vectors. This is turned on automatically if \series bold dotangle/magnitude @@ -55297,8 +58369,8 @@ dotangle/magnitude \end_layout \begin_layout Description -[dotangle] Calculate angle from dot-product between the two vectors; vectors - will be normalized. +[dotangle] Calculate angle from dot-product between the two vectors; + vectors will be normalized. \end_layout \begin_layout Description @@ -55375,14 +58447,15 @@ average \end_deeper \begin_layout Standard -Calculate dot product, angle from dot product (degrees), or cross product - for specified vectors. +Calculate dot product, + angle from dot product (degrees), + or cross product for specified vectors. Note that \series bold norm \series default - normalizes the vectors themselves; the vectors will remain normalized for - subsequent calculations or output. + normalizes the vectors themselves; + the vectors will remain normalized for subsequent calculations or output. Either \series bold vec1 @@ -55391,9 +58464,10 @@ vec1 \series bold vec2 \series default - can be of size 1; in that case each vector in the set with N frames operates - on the single vector. - For example, if + can be of size 1; + in that case each vector in the set with N frames operates on the single vector. + For example, + if \series bold vec1 \series default @@ -55401,13 +58475,13 @@ vec1 \series bold vec2 \series default - is size 1, then each frame of vec1 is operated on the single vector from - vec2. + is size 1, + then each frame of vec1 is operated on the single vector from vec2. \end_layout \begin_layout Standard -For example, to get the angles between two previously calculated vectors - v1 and v2: +For example, + to get the angles between two previously calculated vectors v1 and v2: \end_layout \begin_layout LyX-Code @@ -55473,7 +58547,8 @@ scaling \end_inset vals> Number of scales. - The smaller the number the better resolution, but slower to plot. + The smaller the number the better resolution, + but slower to plot. \end_layout @@ -55482,8 +58557,7 @@ vals> Number of scales. \begin_inset space ~ \end_inset -<s0>] The smallest scale of the wavelet function (default 2dt where dt is - time between snapshots in ps ) +<s0>] The smallest scale of the wavelet function (default 2dt where dt is time between snapshots in ps ) \end_layout \begin_layout Description @@ -55494,8 +58568,8 @@ vals> Number of scales. <ds>] Spacing between discrete scales. (Default is 0.25. Smaller value of ds gives finer resolution. - The largest values that give adequate sampling in scale for Morlet and - Paul are 0.5 and 1.5, respectively) + The largest values that give adequate sampling in scale for Morlet and Paul are 0.5 and 1.5, + respectively) \end_layout \begin_layout Description @@ -55503,8 +58577,8 @@ vals> Number of scales. \begin_inset space ~ \end_inset -<correction>] The scale-to-wavelength parameter (1.01 for Morlet, 1.389 for - Paul). +<correction>] The scale-to-wavelength parameter (1.01 for Morlet, + 1.389 for Paul). Automatically set based on wavelet if not otherwise specified. \end_layout @@ -55580,12 +58654,13 @@ at a particular confidence level \begin_inset space ~ \end_inset -<file>] Output cluster map (recommended gnuplot format, see below). +<file>] Output cluster map (recommended gnuplot format, + see below). \end_layout \begin_layout Description -[cmapdetail] Instead of the map being smoothed to cluster regions, show - full detail. +[cmapdetail] Instead of the map being smoothed to cluster regions, + show full detail. \end_layout \begin_layout Description @@ -55601,8 +58676,7 @@ at a particular confidence level \begin_inset space ~ \end_inset -prefix>] Output cluster region PDBs (only containing from minimum to maximum - atom and minimum to maximum frame) with given prefix. +prefix>] Output cluster region PDBs (only containing from minimum to maximum atom and minimum to maximum frame) with given prefix. \end_layout \begin_layout Description @@ -55610,10 +58684,8 @@ prefix>] Output cluster region PDBs (only containing from minimum to maximum \begin_inset space ~ \end_inset -<trajfile>] Create a trajectory that can be overlaid with the original trajector -y to highlight atoms of interest. - Atoms in cluster regions will get their normal coordinates - all others - are set to the common center of mass. +<trajfile>] Create a trajectory that can be overlaid with the original trajectory to highlight atoms of interest. + Atoms in cluster regions will get their normal coordinates - all others are set to the common center of mass. \end_layout @@ -55627,31 +58699,28 @@ y to highlight atoms of interest. \end_deeper \begin_layout Standard -<wavelet>: morlet, paul +<wavelet>: + morlet, + paul \end_layout \end_deeper \begin_layout Standard -Perform the wavelet analysis using fast Fourier transform (FFT) algorithm - on specified trajectory and write out to a gnuplot-formatted file named - <name.gnu>. - The created Wavelet map provides a clear picture of the significant motions - which are characterized both in time and space. - Note that typically the trajectory in question should have rotational and - translational movement removed (via e.g. +Perform the wavelet analysis using fast Fourier transform (FFT) algorithm on specified trajectory and write out to a gnuplot-formatted file named <name.gnu>. + The created Wavelet map provides a clear picture of the significant motions which are characterized both in time and space. + Note that typically the trajectory in question should have rotational and translational movement removed (via e.g. the \series bold \emph on rms \series default \emph default - command); otherwise these will be reflected in the wavelet analysis results. + command); + otherwise these will be reflected in the wavelet analysis results. \end_layout \begin_layout Standard -Wavelet analysis contains two main steps which performs continues wavelet - transform (CWT) and statistical significance testing as proposed by Torrence - and Compo +Wavelet analysis contains two main steps which performs continues wavelet transform (CWT) and statistical significance testing as proposed by Torrence and Compo \begin_inset CommandInset citation LatexCommand citep key "Torrence1998" @@ -55660,10 +58729,9 @@ literal "true" \end_inset . - Analysis is executed on one dimensional (1-D) coordinate which is defined - as the displacement from the starting position. - For each atom, CWT is calculated over a specified range of scales from - + Analysis is executed on one dimensional (1-D) coordinate which is defined as the displacement from the starting position. + For each atom, + CWT is calculated over a specified range of scales from \begin_inset Formula $S_{0}$ \end_inset @@ -55672,22 +58740,17 @@ up to \end_inset . - To obtain the CWT of the trajectory the Fourier transform of atom's displacemen -t and wavelets which scaled by S ( S is calculated from: + To obtain the CWT of the trajectory the Fourier transform of atom's displacement and wavelets which scaled by S ( S is calculated from: + \begin_inset Formula $S=S_{0}2^{jds};\:j=0,1,2,\ldots,nb-1$ \end_inset -) is computed and then the inverse Fourier transform of the product of Fourier - transforms will be calculated as the CWT. - After calculating the wavelet coordinates for all atoms, a significance - testing is performed to determine the significance of each wavelet coordinate. - For doing this test we need to have an appropriate background spectrum - to consider as a mean or expected spectrum and compare our wavelet coordinates - against this background. - In order to calculate the background spectrum since wavelet spectrum (according - to the convolution theorem) follows the Fourier spectrum, the Fourier coefficie -nts over every atom's displacement is calculated using the following formula - and a model ( +) is computed and then the inverse Fourier transform of the product of Fourier transforms will be calculated as the CWT. + After calculating the wavelet coordinates for all atoms, + a significance testing is performed to determine the significance of each wavelet coordinate. + For doing this test we need to have an appropriate background spectrum to consider as a mean or expected spectrum and compare our wavelet coordinates against this background. + In order to calculate the background spectrum since wavelet spectrum (according to the convolution theorem) follows the Fourier spectrum, + the Fourier coefficients over every atom's displacement is calculated using the following formula and a model ( \begin_inset Formula $\mu_{k}$ \end_inset @@ -55695,8 +58758,7 @@ nts over every atom's displacement is calculated using the following formula \begin_inset Formula $X_{n}$ \end_inset -) is the time series which is the atom’s displacement and k is the frequency - index +) is the time series which is the atom’s displacement and k is the frequency index \begin_inset CommandInset citation LatexCommand citep key "Benson2012" @@ -55719,12 +58781,10 @@ f_{k=\frac{1}{N}}\sum_{n=0}^{N-1}\exp\left(\frac{-2\pi ikn}{N}\right)X_{n} \end_layout \begin_layout Standard -This test is implemented based on the null hypothesis that the assumption - is that Fourier coordinates normally distributed around the expected value, +This test is implemented based on the null hypothesis that the assumption is that Fourier coordinates normally distributed around the expected value, then the wavelet coordinates should also be normally distributed. - Assuming the expected background spectrum and since the square of a normally - distributed variable is chi-square distributed, then the distribution for - the square of the absolute values of wavelet coordinates ( + Assuming the expected background spectrum and since the square of a normally distributed variable is chi-square distributed, + then the distribution for the square of the absolute values of wavelet coordinates ( \begin_inset Formula $|W_{i,k}|^{2}$ \end_inset @@ -55747,21 +58807,17 @@ is the variance of the atom's displacement). \end_layout \begin_layout Standard -Then choosing a confidence level we can determine the minimum acceptable - value for +Then choosing a confidence level we can determine the minimum acceptable value for \begin_inset Formula $|W_{i,k}|^{2}$ \end_inset -to be considered as a significant coordinates at that certain confidence - level. - In the final map the scales of only those wavelet coordinates which are - significantly above the expected distribution are stored. +to be considered as a significant coordinates at that certain confidence level. + In the final map the scales of only those wavelet coordinates which are significantly above the expected distribution are stored. \end_layout \begin_layout Standard -For example, to perform wavelet analysis on residues 1 to 17 with 40 scaling - values starting from scaling of 0.2 with a spacing of 0.25 using the Morlet - wavelet: +For example, + to perform wavelet analysis on residues 1 to 17 with 40 scaling values starting from scaling of 0.2 with a spacing of 0.25 using the Morlet wavelet: \end_layout \begin_layout LyX-Code @@ -55799,12 +58855,8 @@ literal "true" \end_inset - uses a density-based clustering algorithm (a modified version of the DBSCAN - algorithm) to highlight physical and temporal regions that have significant - motions from wavelet mapsand can extract the specific atoms and frames - involved in these motions for further analysis. - Cluster regions shown in the map will be smoother by default for easier - visualization (unless + uses a density-based clustering algorithm (a modified version of the DBSCAN algorithm) to highlight physical and temporal regions that have significant motions from wavelet mapsand can extract the specific atoms and frames involved in these motions for further analysis. + Cluster regions shown in the map will be smoother by default for easier visualization (unless \series bold cmapdetail \series default @@ -55851,8 +58903,8 @@ avgval Average value of points in the region. \end_deeper \begin_layout Standard -For example, to create a 2D gnuplot map highlight regions of interest called - 'cluster.gnu' one could use the following input. +For example, + to create a 2D gnuplot map highlight regions of interest called 'cluster.gnu' one could use the following input. \end_layout \begin_layout LyX-Code @@ -55911,6 +58963,7 @@ epsilon \begin_inset CommandInset ref LatexCommand vref reference "subsec:cpptraj_dbscan_Hints" +nolink "false" \end_inset @@ -55929,9 +58982,7 @@ name "sec:cpptraj-Matrix-Vector-Analysis-Examples" \end_layout \begin_layout Standard -Please note that typically for principal component analysis (PCA) the trajectory - needs to be aligned against a reference structure to remove overall global - and translation motion. +Please note that typically for principal component analysis (PCA) the trajectory needs to be aligned against a reference structure to remove overall global and translation motion. Use the \family sans \series bold @@ -55951,12 +59002,10 @@ Cartesian covariance matrix calculation and projection (PCA) \end_layout \begin_layout Standard -After calculating modes, snapshots can be projected onto these in an additional - pass through the trajectory. - It is very important that the snapshots used when projecting are exactly - the same as those used to generate the original covariance matrix. - This example takes advantage of the COORDS data set functionality in cpptraj - to save snapshots for the purposes of projection. +After calculating modes, + snapshots can be projected onto these in an additional pass through the trajectory. + It is very important that the snapshots used when projecting are exactly the same as those used to generate the original covariance matrix. + This example takes advantage of the COORDS data set functionality in cpptraj to save snapshots for the purposes of projection. \end_layout \begin_layout LyX-Code @@ -56045,8 +59094,7 @@ crdaction CRD1 projection evecs MyEvecs !@H= out project.dat beg 1 end 2 \end_layout \begin_layout Subsection -Dihedral covariance matrix calculation and projection for backbone phi/psi - (PCA) +Dihedral covariance matrix calculation and projection for backbone phi/psi (PCA) \end_layout \begin_layout LyX-Code @@ -56096,8 +59144,7 @@ run \end_layout \begin_layout LyX-Code -projection evecs DIHMODES out dih.project.dat beg 1 end 4 dihedrals BB[*] - +projection evecs DIHMODES out dih.project.dat beg 1 end 4 dihedrals BB[*] \end_layout \begin_layout LyX-Code diff --git a/src/Action_AutoImage.h b/src/Action_AutoImage.h index 83b54c3226..475c60feb4 100644 --- a/src/Action_AutoImage.h +++ b/src/Action_AutoImage.h @@ -11,10 +11,12 @@ class Action_AutoImage : public Action { ~Action_AutoImage(); DispatchObject* Alloc() const { return (DispatchObject*)new Action_AutoImage(); } void Help() const; - private: + Action::RetType Init(ArgList&, ActionInit&, int); Action::RetType Setup(ActionSetup&); Action::RetType DoAction(int, ActionFrame&); + + private: void Print() {} enum Mode { BY_DISTANCE=0, BY_VECTOR, UNSPECIFIED }; diff --git a/src/Action_CheckChirality.cpp b/src/Action_CheckChirality.cpp index b877d305b0..514a88da38 100644 --- a/src/Action_CheckChirality.cpp +++ b/src/Action_CheckChirality.cpp @@ -2,42 +2,67 @@ #include "CpptrajStdio.h" #include "TorsionRoutines.h" #include "DataSet_Mesh.h" +//#incl ude "Constants.h" +#include "Structure/Chirality.h" void Action_CheckChirality::Help() const { + //mprintf("\t[<name>] [<mask1>] [out <filename>] [byatom]\n" mprintf("\t[<name>] [<mask1>] [out <filename>]\n" - " Check the chirality of AA residues in <mask1>.\n"); + " Check the chirality of amino acid residues in <mask1>.\n"); +// " If 'byatom' is specified, check the chirality of any atoms in\n" +// " <mask1> that are chiral centers.\n"); } +/** CONSTRUCTOR */ +Action_CheckChirality::Action_CheckChirality() : + data_L_(0), + data_D_(0), + outfile_(0), + byatom_(false), + currentTop_(0), + debug_(0) +{} + // Action_CheckChirality::Init() Action::RetType Action_CheckChirality::Init(ArgList& actionArgs, ActionInit& init, int debugIn) { + debug_ = debugIn; // Get keywords - DataFile* outfile = init.DFL().AddDataFile( actionArgs.GetStringKey("out"), actionArgs ); + outfile_ = init.DFL().AddDataFile( actionArgs.GetStringKey("out"), actionArgs ); + //byatom_ = actionArgs.hasKey("byatom");i //FIXME - not ready for primetime, needs more testing + byatom_ = false; // Get Masks if (Mask1_.SetMaskString( actionArgs.GetMaskNext() )) return Action::ERR; // Set up DataSets setname_ = actionArgs.GetStringNext(); if (setname_.empty()) setname_ = init.DSL().GenerateDefaultName("CHIRAL"); - MetaData md(setname_, "L", MetaData::NOT_TS); - data_L_ = init.DSL().AddSet( DataSet::XYMESH, md); - md.SetAspect("D"); - data_D_ = init.DSL().AddSet( DataSet::XYMESH, md); - if (data_L_ == 0 || data_D_ == 0) return Action::ERR; - data_L_->SetupFormat().SetFormatWidthPrecision( 8, 0 ); - data_D_->SetupFormat().SetFormatWidthPrecision( 8, 0 ); - if (outfile != 0) { - outfile->AddDataSet( data_L_ ); - outfile->AddDataSet( data_D_ ); + if (!byatom_) { + MetaData md(setname_, "L", MetaData::NOT_TS); + data_L_ = init.DSL().AddSet( DataSet::XYMESH, md); + md.SetAspect("D"); + data_D_ = init.DSL().AddSet( DataSet::XYMESH, md); + if (data_L_ == 0 || data_D_ == 0) return Action::ERR; + data_L_->SetupFormat().SetFormatWidthPrecision( 8, 0 ); + data_D_->SetupFormat().SetFormatWidthPrecision( 8, 0 ); + if (outfile_ != 0) { + outfile_->AddDataSet( data_L_ ); + outfile_->AddDataSet( data_D_ ); + } +# ifdef MPI + data_L_->SetNeedsSync( false ); + data_D_->SetNeedsSync( false ); +# endif + } + if (!byatom_) { + mprintf(" CHECKCHIRALITY: Check chirality for AA residues in mask '%s'\n", + Mask1_.MaskString()); + } else { + mprintf(" CHECKCHIRALITY: Check chirality for atoms in mask '%s'\n", + Mask1_.MaskString()); } -# ifdef MPI - data_L_->SetNeedsSync( false ); - data_D_->SetNeedsSync( false ); -# endif - mprintf(" CHECKCHIRALITY: Check chirality for AA residues in mask '%s'\n", - Mask1_.MaskString()); - if (outfile != 0) - mprintf("\tOutput to file %s\n", outfile->DataFilename().full()); + if (outfile_ != 0) + mprintf("\tOutput to file %s\n", outfile_->DataFilename().full()); if (!setname_.empty()) mprintf("\tData set name: %s\n", setname_.c_str()); Init_ = init; @@ -48,97 +73,163 @@ Action::RetType Action_CheckChirality::Init(ArgList& actionArgs, ActionInit& ini // Action_CheckChirality::Setup() /** Set angle up for this parmtop. Get masks etc. */ Action::RetType Action_CheckChirality::Setup(ActionSetup& setup) { +// top_ = setup.TopAddress(); // DEBUG if (setup.Top().SetupCharMask(Mask1_)) return Action::ERR; if (Mask1_.None()) { mprinterr("Warning: Mask '%s' selects no atoms.\n", Mask1_.MaskString()); return Action::SKIP; } - // Reset any existing ResidueInfos to inactive - for (Rarray::iterator ri = resInfo_.begin(); ri != resInfo_.end(); ++ri) - ri->isActive_ = 0; - int Nactive = 0; - // Loop over all non-solvent residues - int resnum = 0; - std::vector<std::string> NotFound; - for (Topology::res_iterator res = setup.Top().ResStart(); - res != setup.Top().ResEnd(); ++res, ++resnum) - { - int firstAtom = res->FirstAtom(); - int molnum = setup.Top()[firstAtom].MolNum(); - // Skip solvent - if (!setup.Top().Mol(molnum).IsSolvent()) - { - if (Mask1_.AtomsInCharMask( firstAtom, res->LastAtom() )) - { - int n_atom = setup.Top().FindAtomInResidue(resnum, "N"); - int ca_atom = setup.Top().FindAtomInResidue(resnum, "CA"); - int c_atom = setup.Top().FindAtomInResidue(resnum, "C"); - int cb_atom = setup.Top().FindAtomInResidue(resnum, "CB"); - if (n_atom == -1 || ca_atom == -1 || c_atom == -1 || cb_atom == -1) - { - NotFound.push_back( setup.Top().TruncResNameNum(resnum) ); - continue; - } - Nactive++; - // See if a data set is already present - Rarray::iterator rinfo = resInfo_.end(); - for (Rarray::iterator ri = resInfo_.begin(); ri != resInfo_.end(); ++ri) - if (resnum == ri->num_) { - rinfo = ri; - break; + if (byatom_) { + currentTop_ = setup.TopAddress(); + if (atomChiralitySets_.empty()) { + // First time + atomChiralitySets_.assign( setup.Top().Natom(), 0 ); + } else if ((unsigned int)setup.Top().Natom() > atomChiralitySets_.size()) { + atomChiralitySets_.resize( setup.Top().Natom(), 0 ); + } + // For each selected atom, create a set + for (int at = 0; at != setup.Top().Natom(); ++at) { + if (Mask1_.AtomInCharMask(at)) { + std::string legend = setup.Top().AtomMaskName(at); + if ( atomChiralitySets_[at] == 0 ) { + if (setup.Top()[at].Nbonds() < 3) { + mprintf("Warning: Atom %s has < 3 bonds, not checking for chirality.\n", legend.c_str()); + } else { + // Initial set up + //atomChiralitySets_[at] = Init_.DSL().AddSet( DataSet::FLOAT, MetaData(setname_, at+1) ); + atomChiralitySets_[at] = Init_.DSL().AddSet( DataSet::STRING, MetaData(setname_, at+1) ); + if (atomChiralitySets_[at] == 0) { + mprinterr("Error: Could not allocate set for atom '%s'\n", legend.c_str()); + return Action::ERR; + } + atomChiralitySets_[at]->SetLegend( legend ); + if (outfile_ != 0) outfile_->AddDataSet( atomChiralitySets_[at] ); } - if (rinfo != resInfo_.end()) { - // Update coord indices in ResidueInfo - rinfo->isActive_ = 1; - rinfo->n_ = n_atom * 3; - rinfo->ca_ = ca_atom * 3; - rinfo->c_ = c_atom * 3; - rinfo->cb_ = cb_atom * 3; } else { - // New ResidueInfo - ResidueInfo RI; - RI.num_ = resnum; - RI.isActive_ = 1; - RI.n_ = n_atom * 3; - RI.ca_ = ca_atom * 3; - RI.c_ = c_atom * 3; - RI.cb_ = cb_atom * 3; - RI.N_L_ = 0; - RI.N_D_ = 0; - resInfo_.push_back( RI ); + // Check an already set up dataset + if (legend != atomChiralitySets_[at]->Meta().Legend()) { + mprintf("Warning: After topology change, atom %i has changed from %s to %s\n", + at+1, atomChiralitySets_[at]->legend(), legend.c_str()); + } } - } // END atoms in mask - } // END not solvent - } // END loop over residues + } // END atom is selected + } // END loop over atoms + mprintf("\tChecking chirality for %i atoms.\n", Mask1_.Nselected()); + } else { + // Reset any existing ResidueInfos to inactive + for (Rarray::iterator ri = resInfo_.begin(); ri != resInfo_.end(); ++ri) + ri->isActive_ = 0; + int Nactive = 0; + // Loop over all non-solvent residues + int resnum = 0; + std::vector<std::string> NotFound; + for (Topology::res_iterator res = setup.Top().ResStart(); + res != setup.Top().ResEnd(); ++res, ++resnum) + { + int firstAtom = res->FirstAtom(); + int molnum = setup.Top()[firstAtom].MolNum(); + // Skip solvent + if (!setup.Top().Mol(molnum).IsSolvent()) + { + if (Mask1_.AtomsInCharMask( firstAtom, res->LastAtom() )) + { + int n_atom = setup.Top().FindAtomInResidue(resnum, "N"); + int ca_atom = setup.Top().FindAtomInResidue(resnum, "CA"); + int c_atom = setup.Top().FindAtomInResidue(resnum, "C"); + int cb_atom = setup.Top().FindAtomInResidue(resnum, "CB"); + if (n_atom == -1 || ca_atom == -1 || c_atom == -1 || cb_atom == -1) + { + NotFound.push_back( setup.Top().TruncResNameNum(resnum) ); + continue; + } + Nactive++; + // See if a data set is already present + Rarray::iterator rinfo = resInfo_.end(); + for (Rarray::iterator ri = resInfo_.begin(); ri != resInfo_.end(); ++ri) + if (resnum == ri->num_) { + rinfo = ri; + break; + } + if (rinfo != resInfo_.end()) { + // Update coord indices in ResidueInfo + rinfo->isActive_ = 1; + rinfo->n_ = n_atom * 3; + rinfo->ca_ = ca_atom * 3; + rinfo->c_ = c_atom * 3; + rinfo->cb_ = cb_atom * 3; + } else { + // New ResidueInfo + ResidueInfo RI; + RI.num_ = resnum; + RI.isActive_ = 1; + RI.n_ = n_atom * 3; + RI.ca_ = ca_atom * 3; + RI.c_ = c_atom * 3; + RI.cb_ = cb_atom * 3; + RI.N_L_ = 0; + RI.N_D_ = 0; + resInfo_.push_back( RI ); + } + } // END atoms in mask + } // END not solvent + } // END loop over residues - if (Nactive == 0) { - mprintf("Warning: No valid residues selected from '%s'\n", setup.Top().c_str()); - return Action::SKIP; - } - mprintf("\tChecking chirality for %i residues\n", Nactive); - if (!NotFound.empty()) { - mprintf("\tSome atoms not found for %zu residues (this is expected for e.g. GLY)\n\t", - NotFound.size()); - for (std::vector<std::string>::const_iterator rn = NotFound.begin(); - rn != NotFound.end(); ++rn) - mprintf(" %s", rn->c_str()); - mprintf("\n"); - } + if (Nactive == 0) { + mprintf("Warning: No valid residues selected from '%s'\n", setup.Top().c_str()); + return Action::SKIP; + } + mprintf("\tChecking chirality for %i residues\n", Nactive); + if (!NotFound.empty()) { + mprintf("\tSome atoms not found for %zu residues (this is expected for e.g. GLY)\n\t", + NotFound.size()); + for (std::vector<std::string>::const_iterator rn = NotFound.begin(); + rn != NotFound.end(); ++rn) + mprintf(" %s", rn->c_str()); + mprintf("\n"); + } + } // END residue setup return Action::OK; } // Action_CheckChirality::DoAction() Action::RetType Action_CheckChirality::DoAction(int frameNum, ActionFrame& frm) { - for (Rarray::iterator ri = resInfo_.begin(); ri != resInfo_.end(); ++ri) - { - double torsion = Torsion( frm.Frm().CRD(ri->n_), - frm.Frm().CRD(ri->ca_), - frm.Frm().CRD(ri->c_), - frm.Frm().CRD(ri->cb_) ); - if (torsion < 0.0) - ri->N_L_++; - else - ri->N_D_++; + if (byatom_) { + for (std::vector<DataSet*>::const_iterator it = atomChiralitySets_.begin(); + it != atomChiralitySets_.end(); ++it) + { + if (*it != 0) { + DataSet* ds = *it; + int iat = ds->Meta().Idx() - 1; + Cpptraj::Structure::ChiralType chirality = + Cpptraj::Structure::DetermineChirality(iat, *currentTop_, frm.Frm(), debug_); + if (chirality == Cpptraj::Structure::CHIRALITY_ERR) + return Action::ERR; + //double tval_degrees = AtomC.TorsionVal() * Constants::RADDEG; + //float ftval = (float)tval_degrees; + //ds->Add( frameNum, &ftval ); + const char* chiralstr = Cpptraj::Structure::chiralStr( chirality ); + ds->Add( frameNum, chiralstr ); + } + } + } else { + for (Rarray::iterator ri = resInfo_.begin(); ri != resInfo_.end(); ++ri) + { + double torsion = Torsion( frm.Frm().CRD(ri->n_), + frm.Frm().CRD(ri->ca_), + frm.Frm().CRD(ri->c_), + frm.Frm().CRD(ri->cb_) ); + if (torsion < 0.0) + ri->N_L_++; + else + ri->N_D_++; +// DEBUG +// int at = ri->ca_ / 3; +// Cpptraj::Structure::ChiralType chirality = Cpptraj::Structure::IS_UNKNOWN_CHIRALITY; +// if (top_->Atoms()[at].Nbonds() > 2) +// chirality = Cpptraj::Structure::DetermineChirality(at, *top_, frm.Frm(), 0); +// mprintf("Chirality around %s is %s\n", top_->AtomMaskName(at).c_str(), Cpptraj::Structure::chiralStr(chirality)); +// DEBUG + } } return Action::OK; @@ -146,6 +237,7 @@ Action::RetType Action_CheckChirality::DoAction(int frameNum, ActionFrame& frm) #ifdef MPI int Action_CheckChirality::SyncAction() { + if (byatom_) return 0; int total_L, total_D; for (Rarray::iterator ri = resInfo_.begin(); ri != resInfo_.end(); ++ri) { Init_.TrajComm().ReduceMaster( &total_L, &(ri->N_L_), 1, MPI_INT, MPI_SUM ); @@ -160,6 +252,7 @@ int Action_CheckChirality::SyncAction() { #endif void Action_CheckChirality::Print() { + if (byatom_) return; data_L_->ModifyDim(Dimension::X).SetLabel("Res"); data_D_->ModifyDim(Dimension::X).SetLabel("Res"); DataSet_Mesh& dsetL = static_cast<DataSet_Mesh&>( *data_L_ ); diff --git a/src/Action_CheckChirality.h b/src/Action_CheckChirality.h index b145703501..3e3a1b0599 100644 --- a/src/Action_CheckChirality.h +++ b/src/Action_CheckChirality.h @@ -5,7 +5,7 @@ /// Determine if amino acids are D or L class Action_CheckChirality: public Action { public: - Action_CheckChirality() {} + Action_CheckChirality(); DispatchObject* Alloc() const { return (DispatchObject*)new Action_CheckChirality(); } void Help() const; private: @@ -35,6 +35,12 @@ class Action_CheckChirality: public Action { DataSet* data_L_; ///< Hold number of times each residue was L DataSet* data_D_; ///< Hold number of times each residue was D std::string setname_; ///< Data set name + DataFile* outfile_; ///< Output file + std::vector<DataSet*> atomChiralitySets_; ///< For each atom, hold chirality each frame ActionInit Init_; ///< Master DSL/DFL + bool byatom_; + Topology* currentTop_; + int debug_; +// Topology* top_; // DEBUG }; #endif diff --git a/src/Action_CheckStructure.cpp b/src/Action_CheckStructure.cpp index deb38aca38..6a41fa7701 100644 --- a/src/Action_CheckStructure.cpp +++ b/src/Action_CheckStructure.cpp @@ -21,6 +21,9 @@ void Action_CheckStructure::Help() const { mprintf("\t[<mask>] [around <mask2>] [reportfile <report>] [noimage]\n" "\t[skipbadframes] [offset <offset>] [minoffset <minoffset>]\n" "\t[cut <cut>] [nobondcheck] [silent] [plcut <cut>]\n" + "\t[{noringcheck | [ringshortdist <rsdist>] [ringdcut <ringdcut>]\n" + "\t [ringacut <ringacut>]}]\n" + "\t[{checkxp | xpmask <xpmask>}]\n" " Check atoms in <mask> for atomic overlaps less than <cut> (default 0.8 Ang)\n" " and unusual bond lengths greater than equilibrium length + <offset>\n" " (default 1.15 Ang) or less than equilibrium length - <minoffset>\n" @@ -29,6 +32,14 @@ void Action_CheckStructure::Help() const { " specified a pair list will be used to speed up the calculation. The\n" " cutoff used to build the pair list can be adjusted with 'plcut'\n" " (default 4.0 Ang. or <cut>, whichever is greater).\n" + " Check for ring-bond intersections unless 'noringcheck' is specified.\n" + " Ring-bond intersections are detected when the ring center to bond\n" + " center is less than <rsdist>, or less than <ringdcut> and the angle\n" + " between the bond vector and ring perpendicular vector is less than\n" + " <ringacut>.\n" + " By default, extra points will be ignored as determined by 'xpmask'; the\n" + " default mask to select extra points is '&@/XP'. If 'checkxp' is specified\n", + " extra points will also be checked.\n" " Warnings will go to the file specified by 'reportfile', STDOUT,\n" " or will be suppressed if 'silent' is specified. If 'skipbadframes'\n" " is specified, subsequent Actions will be skipped if any problems\n" @@ -48,19 +59,33 @@ Action::RetType Action_CheckStructure::Init(ArgList& actionArgs, ActionInit& ini "Structure check", DataFileList::TEXT, true); else outfile_ = 0; - double nonbondcut = actionArgs.getKeyDouble("cut",0.8); + double nonbondcut = actionArgs.getKeyDouble("cut",0.8); + double plcut = actionArgs.getKeyDouble("plcut", -1); + // actionArgs.getKeyDouble("plcut", std::max(8.0, nonbondcut)) + bool checkxp = false; + std::string xpmask = ""; + if (actionArgs.hasKey("checkxp")) + checkxp = true; + else + xpmask = actionArgs.GetStringKey("xpmask"); // Structure checker setup int err = check_.SetOptions( !(actionArgs.hasKey("noimage")), !actionArgs.hasKey("nobondcheck"), (outfile_ != 0), // saveProblems + checkxp, debugIn, actionArgs.GetMaskNext(), around, + xpmask, nonbondcut, actionArgs.getKeyDouble("offset",1.15), actionArgs.getKeyDouble("minoffset", 0.5), - actionArgs.getKeyDouble("plcut", std::max(4.0, nonbondcut)) + plcut, + !actionArgs.hasKey("noringcheck"), + actionArgs.getKeyDouble("ringshortdist", 0), // 0 means use StructureCheck default + actionArgs.getKeyDouble("ringdcut", 0), // 0 means use StructureCheck default + actionArgs.getKeyDouble("ringacut", 0) // 0 means use StructureCheck default ); if (err != 0) return Action::ERR; // Remaining keywords @@ -108,12 +133,21 @@ Action::RetType Action_CheckStructure::Init(ArgList& actionArgs, ActionInit& ini mprintf("\tNumber of problems each frame will be written to '%s'\n", dfile->DataFilename().full()); if (!check_.CheckBonds()) - mprintf("\tChecking inter-atomic distances only.\n"); + mprintf("\tNot checking bond lengths.\n"); else mprintf("\tChecking for bond lengths greater than eq. length + %.2f Ang and\n" "\t less than eq. length - %.2f Ang.\n", check_.BondOffset(), check_.BondMinOffset()); - + if (!check_.CheckRings()) + mprintf("\tNot checking for bond-ring intersections.\n"); + else { + mprintf("\tChecking for bond-ring intersections.\n"); + mprintf("\t Ring center to bond center distance < %g Ang. is considered intersecting.\n", + check_.RingShortDist()); + mprintf("\t Ring center to bond center distance < %g Ang. is considered intersecting\n" + "\t if the angle between the bond and perpendicular ring vectors is < %g deg.\n", + check_.RingDist(), check_.RingAngleCut_Deg()); + } mprintf("\tChecking for inter-atomic distances < %.2f Ang.\n", nonbondcut); if (skipBadFrames_) { @@ -128,7 +162,10 @@ Action::RetType Action_CheckStructure::Init(ArgList& actionArgs, ActionInit& ini } if (silent_) mprintf("\tStructure warning messages will be suppressed.\n"); - mprintf("\tCutoff for building pair list is %f Ang.\n", check_.PairListCut()); + if ( check_.PairListCut() < 0.0 ) + mprintf("\tPair list cutoff will be determined from system size.\n"); + else + mprintf("\tCutoff for building pair list is %f Ang.\n", check_.PairListCut()); # ifdef _OPENMP mprintf("\tParallelizing calculation with %u threads.\n", check_.Nthreads()); # endif @@ -138,6 +175,10 @@ Action::RetType Action_CheckStructure::Init(ArgList& actionArgs, ActionInit& ini // Action_CheckStructure::Setup() Action::RetType Action_CheckStructure::Setup(ActionSetup& setup) { CurrentParm_ = setup.TopAddress(); + if (check_.Debug() > 0) { + if (setup.CoordInfo().HasBox()) + setup.CoordInfo().TrajBox().PrintInfo(); + } if (check_.Setup( setup.Top(), setup.CoordInfo().TrajBox() )) return Action::ERR; check_.Mask1().MaskInfo(); if (check_.Mask2().MaskStringSet()) @@ -153,16 +194,10 @@ Action::RetType Action_CheckStructure::Setup(ActionSetup& setup) { return Action::OK; } -/// Output format strings for warnings. -const char* Action_CheckStructure::Fmt_[] = { - "%i\t Warning: Atoms %i:%s and %i:%s are close (%.2f)\n", - "%i\t Warning: Unusual bond length %i:%s to %i:%s (%.2f)\n" -}; - /** Consolidate problems from different threads if necessary and write out. */ -void Action_CheckStructure::WriteProblems(FmtType ft, int frameNum, Topology const& top) { +void Action_CheckStructure::WriteProblems(StructureCheck::FmtType ft, int frameNum, Topology const& top) { +# ifdef MPI for (StructureCheck::const_iterator p = check_.begin(); p != check_.end(); ++p) { -# ifdef MPI int atom1 = p->A1() + 1; int atom2 = p->A2() + 1; ds_fn_->Add(idx_, &frameNum); @@ -173,25 +208,48 @@ void Action_CheckStructure::WriteProblems(FmtType ft, int frameNum, Topology con ds_n2_->Add(idx_, top.TruncResAtomName(p->A2()).c_str()); ds_d_->Add(idx_, p->Dptr()); idx_++; -# else - outfile_->Printf(Fmt_[ft], frameNum, - p->A1()+1, top.TruncResAtomName(p->A1()).c_str(), - p->A2()+1, top.TruncResAtomName(p->A2()).c_str(), p->D()); -# endif } +# else + check_.WriteProblemsToFile(outfile_, frameNum, top); +# endif } // Action_CheckStructure::DoAction() Action::RetType Action_CheckStructure::DoAction(int frameNum, ActionFrame& frm) { +# ifdef TIMER + t_total_.Start(); +# endif int fnum = frm.TrajoutNum() + 1; - +# ifdef TIMER + t_overlap_.Start(); +# endif int total_problems = check_.CheckOverlaps(frm.Frm()); - if (outfile_ != 0) WriteProblems(F_ATOM, fnum, *CurrentParm_); +# ifdef TIMER + t_overlap_.Stop(); +# endif + if (outfile_ != 0) WriteProblems(StructureCheck::F_ATOM, fnum, *CurrentParm_); if (check_.CheckBonds()) { +# ifdef TIMER + t_bonds_.Start(); +# endif total_problems += check_.CheckBonds(frm.Frm()); - if (outfile_ != 0) WriteProblems(F_BOND, fnum, *CurrentParm_); +# ifdef TIMER + t_bonds_.Stop(); +# endif + if (outfile_ != 0) WriteProblems(StructureCheck::F_BOND, fnum, *CurrentParm_); +# ifdef TIMER + t_rings_.Start(); +# endif + total_problems += check_.CheckRings(frm.Frm()); // FIXME +# ifdef TIMER + t_rings_.Stop(); +# endif + if (outfile_ != 0) WriteProblems(StructureCheck::F_RING, fnum, *CurrentParm_); } num_problems_->Add( frameNum, &total_problems ); +# ifdef TIMER + t_total_.Stop(); +# endif if (total_problems > 0 && skipBadFrames_) return Action::SUPPRESS_COORD_OUTPUT; return Action::OK; @@ -224,6 +282,12 @@ int Action_CheckStructure::SyncAction() { #endif void Action_CheckStructure::Print() { +# ifdef TIMER + t_overlap_.WriteTiming(2, "Check overlaps :", t_total_.Total()); + t_bonds_.WriteTiming (2, "Check bond lengths :", t_total_.Total()); + t_rings_.WriteTiming (2, "Check ring intersections :", t_total_.Total()); + t_total_.WriteTiming(1, "Total check time :"); +# endif # ifdef MPI if (outfile_ != 0) { mprintf(" CHECKSTRUCTURE: Writing to %s\n", outfile_->Filename().full()); @@ -236,7 +300,7 @@ void Action_CheckStructure::Print() { DataSet_integer const& A2 = static_cast<DataSet_integer const&>( *ds_a2_ ); DataSet_string const& N2 = static_cast<DataSet_string const&>( *ds_n2_ ); DataSet_double const& DV = static_cast<DataSet_double const&>( *ds_d_ ); - outfile_->Printf(Fmt_[PT[idx]], FN[idx], A1[idx], N1[idx].c_str(), + outfile_->Printf(StructureCheck::WriteFmt( PT[idx] ), FN[idx], A1[idx], N1[idx].c_str(), A2[idx], N2[idx].c_str(), DV[idx]); } } diff --git a/src/Action_CheckStructure.h b/src/Action_CheckStructure.h index 86661abfd2..94d85e532b 100644 --- a/src/Action_CheckStructure.h +++ b/src/Action_CheckStructure.h @@ -2,6 +2,9 @@ #define INC_ACTION_CHECKSTRUCTURE_H #include "Action.h" #include "StructureCheck.h" +#ifdef TIMER +# include "Timer.h" +#endif class Action_CheckStructure : public Action { public: Action_CheckStructure(); @@ -16,9 +19,7 @@ class Action_CheckStructure : public Action { int SyncAction(); # endif - enum FmtType { F_ATOM =0, F_BOND }; - - void WriteProblems(FmtType, int, Topology const&); + void WriteProblems(StructureCheck::FmtType, int, Topology const&); StructureCheck check_; ///< Structure checker CpptrajFile* outfile_; ///< Report file. @@ -26,7 +27,6 @@ class Action_CheckStructure : public Action { DataSet* num_problems_; ///< Save number of problems each frame bool silent_; ///< If true suppress output bool skipBadFrames_; ///< If true skip frames with problems - static const char* Fmt_[]; ///< Output format strings # ifdef MPI Parallel::Comm trajComm_; DataSet* ds_fn_; ///< Frame number @@ -38,5 +38,11 @@ class Action_CheckStructure : public Action { DataSet* ds_d_; ///< Distance int idx_; ///< Index into ds_X data sets. # endif +# ifdef TIMER + Timer t_total_; + Timer t_overlap_; + Timer t_bonds_; + Timer t_rings_; +# endif }; #endif diff --git a/src/Action_Energy.cpp b/src/Action_Energy.cpp index 2146d68be8..6c98b9a569 100644 --- a/src/Action_Energy.cpp +++ b/src/Action_Energy.cpp @@ -2,6 +2,7 @@ #include "CpptrajStdio.h" #include "PotentialFunction.h" #include "MdOpts.h" +#include "Energy/CMAP.h" using namespace Cpptraj::Energy; @@ -13,23 +14,28 @@ Action_Energy::Action_Energy() : npoints_(0), debug_(0), nbCalcType_(Ecalc_Nonbond::UNSPECIFIED), + cmap_(0), potential_(0), use_openmm_(false), dt_(0), need_lj_params_(false), needs_exclList_(false), - bondsToH_(true) + bondsToH_(true), + lj1264_(false), + useLj1264_(false) {} /// DESTRUCTOR Action_Energy::~Action_Energy() { if (potential_ != 0) delete potential_; + if (cmap_ != 0) delete cmap_; } void Action_Energy::Help() const { mprintf("\t[<name>] [<mask1>] [out <filename>] [nobondstoh] [openmm [<mdopts>]]\n" "\t[bond] [angle] [dihedral] {[nb14]|[e14]|[v14]} {[nonbond] | [elec] [vdw]}\n" - "\t[{nokinetic|kinetic [ketype {vel|vv}] [dt <dt>]}]\n" + "\t[cmap]\n" + "\t[{nokinetic|kinetic [ketype {vel|vv}] [dt <dt>]}] [lj1264]\n" "\t[ etype { simple |\n" "\t directsum [npoints <N>] |\n" "\t ewald %s\n" @@ -61,11 +67,11 @@ void Action_Energy::Help(ArgList& argIn) const { } /// Corresponds to Etype -static const char* AspectStr[] = {"bond", "angle", "dih", "vdw14", "elec14", +static const char* AspectStr[] = {"bond", "angle", "dih", "cmap", "vdw14", "elec14", "vdw", "elec", "kinetic", "total"}; /// Corresponds to Etype -static const char* EtypeStr[] = {"Bonds", "Angles", "Dihedrals", "1-4 VDW", "1-4 Elec.", +static const char* EtypeStr[] = {"Bonds", "Angles", "Dihedrals", "CMAP", "1-4 VDW", "1-4 Elec.", "VDW", "Elec.", "Kinetic", "Total"}; /// Corresponds to ElecType @@ -99,6 +105,8 @@ Action::RetType Action_Energy::Init(ArgList& actionArgs, ActionInit& init, int d return Action::ERR; # endif /* HAS_OPENMM */ } + // LJ 12-6-4 + useLj1264_ = actionArgs.hasKey("lj1264"); // Determine which energy terms are active std::vector<bool> termEnabled((int)TOTAL+1, false); if (use_openmm_) { @@ -108,6 +116,7 @@ Action::RetType Action_Energy::Init(ArgList& actionArgs, ActionInit& init, int d termEnabled[BOND] = actionArgs.hasKey("bond"); termEnabled[ANGLE] = actionArgs.hasKey("angle"); termEnabled[DIHEDRAL] = actionArgs.hasKey("dihedral"); + termEnabled[CMAP] = actionArgs.hasKey("cmap"); termEnabled[V14] = actionArgs.hasKey("v14"); termEnabled[Q14] = actionArgs.hasKey("e14"); termEnabled[VDW] = actionArgs.hasKey("vdw"); @@ -180,6 +189,13 @@ Action::RetType Action_Energy::Init(ArgList& actionArgs, ActionInit& init, int d return Action::ERR; if (ewaldOpts_.Type() == EwaldOptions::LJPME) nbCalcType_ = Ecalc_Nonbond::LJPME; + if (useLj1264_) { + if (nbCalcType_ != Ecalc_Nonbond::PME) { + mprinterr("Error: 'lj1264' is only compatible with regular PME.\n"); + return Action::ERR; + } + nbCalcType_ = Ecalc_Nonbond::LJCPME; + } # else mprinterr("Error: 'pme' requires compiling with LIBPME (FFTW3 and C++11 support).\n"); return Action::ERR; @@ -202,6 +218,10 @@ Action::RetType Action_Energy::Init(ArgList& actionArgs, ActionInit& init, int d Ecalcs_.push_back(C_ANG); if (termEnabled[DIHEDRAL]) Ecalcs_.push_back(C_DIH); + if (termEnabled[CMAP]) { + Ecalcs_.push_back(C_CMAP); + cmap_ = new Cpptraj::Energy::CMAP(); + } if (termEnabled[KE]) { if (KEtype_ == KE_AUTO) Ecalcs_.push_back(C_KEAUTO); @@ -290,6 +310,8 @@ Action::RetType Action_Energy::Init(ArgList& actionArgs, ActionInit& init, int d } else { if (termEnabled[BOND] && !bondsToH_) mprintf("\tNot calculating energy of bonds to hydrogen.\n"); + if (useLj1264_) + mprintf("\tWill use LJ 12-6-4 (C) coefficients if present.\n"); if (elecType_ != NO_ELE) mprintf("\tElectrostatics method: %s\n", ElecStr[elecType_]); if (elecType_ == DIRECTSUM) { @@ -342,12 +364,33 @@ Action::RetType Action_Energy::Setup(ActionSetup& setup) { } Imask_ = AtomMask(Mask1_.ConvertToIntMask(), Mask1_.Natom()); + // CMAP + if (cmap_ != 0) { + if (cmap_->Setup_CMAP_Ene(setup.Top(), Mask1_)) { + mprinterr("Error: CMAP setup failed.\n"); + return Action::ERR; + } + } // Check for LJ terms - if (need_lj_params_ && !setup.Top().Nonbond().HasNonbond()) - { - mprinterr("Error: LJ energy calc requested but topology '%s'\n" - "Error: does not have LJ parameters.\n", setup.Top().c_str()); - return Action::ERR; + lj1264_ = false; + if (need_lj_params_) { + if (!setup.Top().Nonbond().HasNonbond()) + { + mprinterr("Error: LJ energy calc requested but topology '%s'\n" + "Error: does not have LJ parameters.\n", setup.Top().c_str()); + return Action::ERR; + } + if (useLj1264_) { + if (setup.Top().Nonbond().Has_C_Coeff()) { + lj1264_ = true; + mprintf("\tLJ 12-6-4 (C) terms are active.\n"); + } else + mprintf("Warning: 'lj1264' specified but no LJ 12-6-4 (C) terms present in topology '%s'\n", setup.Top().c_str()); + } else { + if (setup.Top().Nonbond().Has_C_Coeff()) { + mprintf("Warning: Topology has LJ C coefficients. To use these, specify 'lj1264'\n"); + } + } } // Set up exclusion list if necessary. if (needs_exclList_) { @@ -438,9 +481,18 @@ Action::RetType Action_Energy::DoAction(int frameNum, ActionFrame& frm) { Energy_[DIHEDRAL]->Add(frameNum, &ene); Etot += ene; break; + case C_CMAP: + if (cmap_->HasCMAPs()) { + time_cmap_.Start(); + ene = cmap_->Ene_CMAP(frm.Frm()); + time_cmap_.Stop(); + Energy_[CMAP]->Add(frameNum, &ene); + Etot += ene; + } + break; case C_N14: time_14_.Start(); - ene = ENE_.E_14_Nonbond(frm.Frm(), *currentParm_, Mask1_, ene2); + ene = ENE_.E_14_Nonbond(frm.Frm(), *currentParm_, Mask1_, ene2, lj1264_); time_14_.Stop(); if (Energy_[V14] != 0) Energy_[V14]->Add(frameNum, &ene); if (Energy_[Q14] != 0) Energy_[Q14]->Add(frameNum, &ene2); @@ -448,7 +500,7 @@ Action::RetType Action_Energy::DoAction(int frameNum, ActionFrame& frm) { break; case C_NBD: // Both nonbond terms must be enabled time_NB_.Start(); - ene = ENE_.E_Nonbond(frm.Frm(), *currentParm_, Imask_, ene2, Excluded_); + ene = ENE_.E_Nonbond(frm.Frm(), *currentParm_, Imask_, ene2, Excluded_, lj1264_); time_NB_.Stop(); Energy_[VDW]->Add(frameNum, &ene); Energy_[ELEC]->Add(frameNum, &ene2); @@ -456,7 +508,7 @@ Action::RetType Action_Energy::DoAction(int frameNum, ActionFrame& frm) { break; case C_LJ: time_NB_.Start(); - ene = ENE_.E_VDW(frm.Frm(), *currentParm_, Imask_, Excluded_); + ene = ENE_.E_VDW(frm.Frm(), *currentParm_, Imask_, Excluded_, lj1264_); time_NB_.Stop(); Energy_[VDW]->Add(frameNum, &ene); Etot += ene; @@ -531,6 +583,8 @@ void Action_Energy::Print() { time_angle_.WriteTiming(1, "ANGLE :", time_total_.Total()); if (time_tors_.Total() > 0.0) time_tors_.WriteTiming(1, "TORSION :", time_total_.Total()); + if (time_cmap_.Total() > 0.0) + time_cmap_.WriteTiming(1, "CMAP :", time_total_.Total()); if (time_14_.Total() > 0.0) time_14_.WriteTiming(1, "1-4_NONBOND :", time_total_.Total()); if (nbCalcType_ != Ecalc_Nonbond::UNSPECIFIED) diff --git a/src/Action_Energy.h b/src/Action_Energy.h index 7d47a6a07b..c0026dc577 100644 --- a/src/Action_Energy.h +++ b/src/Action_Energy.h @@ -7,6 +7,11 @@ #include "ExclusionArray.h" #include "EwaldOptions.h" #include "Energy/Ecalc_Nonbond.h" +namespace Cpptraj { +namespace Energy { +class CMAP; +} +} class PotentialFunction; /// Calculate energy class Action_Energy: public Action { @@ -23,14 +28,15 @@ class Action_Energy: public Action { void Print(); /// Corresponds to data sets. - enum Etype { BOND = 0, ANGLE, DIHEDRAL, V14, Q14, VDW, ELEC, KE, TOTAL}; + enum Etype { BOND = 0, ANGLE, DIHEDRAL, CMAP, V14, Q14, VDW, ELEC, KE, TOTAL}; /// Add energy data set of specified type. int AddSet(Etype, DataSetList&, DataFile*, std::string const&); /// For debugging the direct sum convergence double Dbg_Direct(Frame const&,int); /// Corresponds to calculations. enum CalcType { C_BND = 0, C_ANG, C_DIH, C_N14, C_NBD, C_LJ, - C_COULOMB, C_DIRECT, C_EWALD, C_PME, C_KEAUTO, C_KEVEL, C_KEVV }; + C_COULOMB, C_DIRECT, C_EWALD, C_PME, C_KEAUTO, C_KEVEL, C_KEVV, + C_CMAP }; /// Corresponds to type of electrostatics. enum ElecType { NO_ELE = 0, SIMPLE, DIRECTSUM, EWALD, PME }; /// Corresponds to type of KE calc. @@ -54,6 +60,8 @@ class Action_Energy: public Action { Cpptraj::Energy::Ecalc_Nonbond::CalcType nbCalcType_; ///< Nonbond calculation type EwaldOptions ewaldOpts_; ///< Ewald options + Cpptraj::Energy::CMAP* cmap_; ///< For calculating cmap energies + PotentialFunction* potential_; ///< TODO currently just for openmm, use for everything bool use_openmm_; ///< If true use openmm for calculating total E @@ -61,6 +69,8 @@ class Action_Energy: public Action { bool need_lj_params_; ///< True if LJ parameters needed. bool needs_exclList_; ///< True if Excluded_ needs to be set up. bool bondsToH_; ///< True if we want to calculate energy of bonds with H + bool lj1264_; ///< True if LJ 12-6-4 (C) terms are active + bool useLj1264_; ///< True if we want to use LJ 12-6-4 (C) terms if present Timer time_total_; Timer time_bond_; Timer time_angle_; @@ -68,5 +78,6 @@ class Action_Energy: public Action { Timer time_14_; Timer time_NB_; Timer time_ke_; + Timer time_cmap_; }; #endif diff --git a/src/Action_FixAtomOrder.cpp b/src/Action_FixAtomOrder.cpp index 7fedf1f9da..5f77388272 100644 --- a/src/Action_FixAtomOrder.cpp +++ b/src/Action_FixAtomOrder.cpp @@ -55,13 +55,45 @@ Action::RetType Action_FixAtomOrder::Init(ArgList& actionArgs, ActionInit& init, return Action::OK; } +/** Separate routine that will just fix the atom order. */ +int Action_FixAtomOrder::FixMoleculeOrder(Topology& topOut, Frame& frameOut, int debugIn) +{ + debug_ = debugIn; + mode_ = FIX_MOLECULES; + if (FixMolecules(topOut) != Action::OK) { + mprinterr("Error: Fixing molecule order failed.\n"); + return 1; + } + if (debug_ > 0) { + mprintf("\tNew atom mapping:\n"); + for (MapType::const_iterator atom = atomMap_.begin(); + atom != atomMap_.end(); ++atom) + mprintf("\t\tNew atom %8li => old atom %8i\n", atom - atomMap_.begin() + 1, *atom + 1); + } + // Create new topology based on map + if (newParm_ != 0) delete newParm_; + newParm_ = topOut.ModifyByMap( atomMap_ ); + if (newParm_ == 0) { + mprinterr("Error: Could not create re-ordered topology.\n"); + return Action::ERR; + } + topOut = *newParm_; + + // Allocate space for new frame and reorder coords + newFrame_.SetupFrameV( newParm_->Atoms(), frameOut.CoordsInfo() ); + newFrame_.SetCoordinatesByMap( frameOut, atomMap_ ); + frameOut = newFrame_; + + return 0; +} + // Action_FixAtomOrder::setup() Action::RetType Action_FixAtomOrder::Setup(ActionSetup& setup) { Action::RetType ret; if (mode_ == FIX_MOLECULES) - ret = FixMolecules(setup); + ret = FixMolecules(setup.Top()); else if (mode_ == PDB_ORDER) - ret = PdbOrder(setup); + ret = PdbOrder(setup.Top()); else return Action::ERR; @@ -98,18 +130,18 @@ Action::RetType Action_FixAtomOrder::Setup(ActionSetup& setup) { } /** Try to make the order match original PDB info. */ -Action::RetType Action_FixAtomOrder::PdbOrder(ActionSetup& setup) { +Action::RetType Action_FixAtomOrder::PdbOrder(Topology const& topIn) { if (hetatm_.MaskStringSet()) { - if (setup.Top().SetupCharMask( hetatm_ )) return Action::ERR; + if (topIn.SetupCharMask( hetatm_ )) return Action::ERR; hetatm_.MaskInfo(); } else { - hetatm_ = CharMask( setup.Top().Natom() ); + hetatm_ = CharMask( topIn.Natom() ); } // Create array with PDB info. std::vector<AtomTopType> atoms; - for (int idx = 0; idx != setup.Top().Natom(); idx++) + for (int idx = 0; idx != topIn.Natom(); idx++) { - Residue const& res = setup.Top().Res( setup.Top()[idx].ResNum() ); + Residue const& res = topIn.Res( topIn[idx].ResNum() ); AtomTopType::PdbType pt; if (hetatm_.AtomInCharMask(idx)) pt = AtomTopType::HETATM; @@ -122,7 +154,7 @@ Action::RetType Action_FixAtomOrder::PdbOrder(ActionSetup& setup) { std::sort(atoms.begin(), atoms.end()); // Put indices in atomMap_ atomMap_.clear(); - atomMap_.reserve( setup.Top().Natom() ); + atomMap_.reserve( topIn.Natom() ); for (std::vector<AtomTopType>::const_iterator it = atoms.begin(); it != atoms.end(); ++it) atomMap_.push_back( it->AtomIdx() ); @@ -131,11 +163,11 @@ Action::RetType Action_FixAtomOrder::PdbOrder(ActionSetup& setup) { } /** Fix molecules that are not contiguous. */ -Action::RetType Action_FixAtomOrder::FixMolecules(ActionSetup& setup) { +Action::RetType Action_FixAtomOrder::FixMolecules(Topology const& topIn) { atomMap_.clear(); - atomMap_.reserve( setup.Top().Natom() ); - for (Topology::mol_iterator mol = setup.Top().MolStart(); - mol != setup.Top().MolEnd(); ++mol) + atomMap_.reserve( topIn.Natom() ); + for (Topology::mol_iterator mol = topIn.MolStart(); + mol != topIn.MolEnd(); ++mol) { for (Unit::const_iterator seg = mol->MolUnit().segBegin(); seg != mol->MolUnit().segEnd(); ++seg) diff --git a/src/Action_FixAtomOrder.h b/src/Action_FixAtomOrder.h index 926ed668a1..7b570ad756 100644 --- a/src/Action_FixAtomOrder.h +++ b/src/Action_FixAtomOrder.h @@ -11,6 +11,8 @@ class Action_FixAtomOrder: public Action { ~Action_FixAtomOrder(); DispatchObject* Alloc() const { return (DispatchObject*)new Action_FixAtomOrder(); } void Help() const; + /// Standalone routine for e.g. the Exec_Build command + int FixMoleculeOrder(Topology&, Frame&, int); private: Action::RetType Init(ArgList&, ActionInit&, int); Action::RetType Setup(ActionSetup&); @@ -18,8 +20,8 @@ class Action_FixAtomOrder: public Action { void Print() {} void VisitAtom(int,int,Topology const&); - Action::RetType PdbOrder(ActionSetup&); - Action::RetType FixMolecules(ActionSetup&); + Action::RetType PdbOrder(Topology const&); + Action::RetType FixMolecules(Topology const&); enum ModeType {FIX_MOLECULES = 0, PDB_ORDER}; diff --git a/src/Action_HydrogenBond.cpp b/src/Action_HydrogenBond.cpp index 572c13c8e8..65a116f539 100644 --- a/src/Action_HydrogenBond.cpp +++ b/src/Action_HydrogenBond.cpp @@ -379,7 +379,7 @@ Action::RetType Action_HydrogenBond::Setup(ActionSetup& setup) { if (!setup.Top().Mol(molnum).IsSolvent() && IsFON( setup.Top()[*at] )) AcceptorMask_.AddSelectedAtom( *at ); } - AcceptorMask_.SetNatoms( Mask_.NmaskAtoms() ); + AcceptorMask_.SetNatoms( Mask_.Natom() ); } int lastAcceptor = -1; if (!AcceptorMask_.None()) @@ -1594,7 +1594,7 @@ void Action_HydrogenBond::Print() { # ifdef TIMER t_uu_.WriteTiming( 2,"Solute-Solute :",t_action_.Total()); if (calcSolvent_) { - t_uv_.WriteTiming( 2,"Solute-Solvent :",t_uv_.Total()); + t_uv_.WriteTiming( 2,"Solute-Solvent :",t_action_.Total()); t_bridge_.WriteTiming(2,"Bridging waters :",t_action_.Total()); } t_action_.WriteTiming(1,"Total:"); diff --git a/src/Action_ReplicateCell.cpp b/src/Action_ReplicateCell.cpp index 9ee6d0b0b8..b40663fbb1 100644 --- a/src/Action_ReplicateCell.cpp +++ b/src/Action_ReplicateCell.cpp @@ -3,16 +3,13 @@ #include "DataSet_Coords.h" // CONSTRUCTOR -Action_ReplicateCell::Action_ReplicateCell() : coords_(0), ncopies_(0), writeTraj_(false) {} - -void Action_ReplicateCell::Help() const { - mprintf("\t[out <traj filename>] [name <dsname>]\n" - "\t{ all | dir <XYZ> [dir <XYZ> ...] } [<mask>]\n"); - mprintf("%s", ActionTopWriter::Keywords()); - mprintf(" Replicate unit cell in specified (or all) directions for atoms in <mask>.\n" - " <XYZ>: X= 1, 0, -1, replicate in specified direction (e.g. 100 is +X only)\n"); - mprintf("%s", ActionTopWriter::Options()); -} +Action_ReplicateCell::Action_ReplicateCell() : + coords_(0), + ncopies_(0), + debug_(0), + verbose_(0), + writeTraj_(false) +{} static inline int toDigit(char c) { switch (c) { @@ -30,9 +27,20 @@ static inline int toDigit(char c) { return 0; // SANITY CHECK } +void Action_ReplicateCell::Help() const { + mprintf("\t[out <traj filename>] [name <dsname>] [verbose <#>]\n" + "\t{ all | dir <XYZ> [dir <XYZ> ...] } [<mask>]\n"); + mprintf("%s", ActionTopWriter::Keywords()); + mprintf(" Replicate unit cell in specified (or all) directions for atoms in <mask>.\n" + " <XYZ>: X= 1, 0, -1, replicate in specified direction (e.g. 100 is +X only)\n"); + mprintf("%s", ActionTopWriter::Options()); +} + // Action_ReplicateCell::Init() Action::RetType Action_ReplicateCell::Init(ArgList& actionArgs, ActionInit& init, int debugIn) { + debug_ = debugIn; + verbose_ = actionArgs.getKeyInt("verbose", 0); // Set up output traj std::string trajfilename = actionArgs.GetStringKey("out"); topWriter_.InitTopWriter( actionArgs, "replicated cell", debugIn ); @@ -151,8 +159,10 @@ Action::RetType Action_ReplicateCell::Setup(ActionSetup& setup) { // Set up topology and frame. Topology* stripParm = setup.Top().modifyStateByMask( Mask1_ ); if (stripParm == 0) return Action::ERR; + combinedTop_.SetDebug( debug_ ); + // Merge topologies, reduce bond and angle params for (int cell = 0; cell != ncopies_; cell++) - combinedTop_.AppendTop( *stripParm ); + combinedTop_.AppendTop( *stripParm, verbose_, true, true ); combinedTop_.Brief("Combined parm:"); delete stripParm; topWriter_.ModifyTop( &combinedTop_ ); diff --git a/src/Action_ReplicateCell.h b/src/Action_ReplicateCell.h index fef43d4b85..562f1d92d1 100644 --- a/src/Action_ReplicateCell.h +++ b/src/Action_ReplicateCell.h @@ -24,6 +24,8 @@ class Action_ReplicateCell: public Action { DataSet_Coords* coords_; ///< Combined cell COORDS DataSet AtomMask Mask1_; ///< Mask of atoms to replicate int ncopies_; ///< Total # of replications to make + int debug_; + int verbose_; ///< Parameter assignment verbosity during merge bool writeTraj_; ///< If true, write output combined cell traj Topology combinedTop_; ///< Combined cell topology Frame combinedFrame_; ///< Combined cell frame diff --git a/src/Action_Vector.cpp b/src/Action_Vector.cpp index f1ee67d236..672c0662e1 100644 --- a/src/Action_Vector.cpp +++ b/src/Action_Vector.cpp @@ -1,6 +1,4 @@ -#include <cmath> -#include <algorithm> // sort -#include "Constants.h" // PI +#include <cmath> //sqrt #include "Action_Vector.h" #include "CharMask.h" #include "CpptrajStdio.h" @@ -13,7 +11,6 @@ Action_Vector::Action_Vector() : Vec_(0), Magnitude_(0), gridSet_(0), - vcorr_(0), ptrajoutput_(false), needBoxInfo_(false), useMass_(true), @@ -26,7 +23,6 @@ Action_Vector::Action_Vector() : // DESTRUCTOR Action_Vector::~Action_Vector() { - if (vcorr_!=0) delete[] vcorr_; if (cmask_ != 0) delete cmask_; } @@ -272,12 +268,6 @@ Action::RetType Action_Vector::Setup(ActionSetup& setup) { } } - // Allocate space for CORRPLANE. - if (mode_ == CORRPLANE) { - if (vcorr_!=0) delete[] vcorr_; - vcorr_ = new double[ 3 * mask_.Nselected() ]; - } - // Setup mask 2 if (mask2_.MaskStringSet()) { if (setup.Top().SetupIntegerMask(mask2_)) return Action::ERR; @@ -296,115 +286,6 @@ Action::RetType Action_Vector::Setup(ActionSetup& setup) { return Action::OK; } -// ----------------------------------------------------------------------------- -// Action_Vector::solve_cubic_eq() -/** Solves a cubic equation: ax^3 + bx^2 + cx + d = 0 using "Cardan's formula" - * (see: Bronstein, S.131f) - */ -double Action_Vector::solve_cubic_eq(double a, double b, double c, double d) { - const double one3 = 1.0 / 3.0; - const double one27 = 1.0 / 27.0; - double droot = 0; - - double r, s, t; - double p, q, rho, phi; - double D, u, v; - std::vector<double> dtmp(3); - - /* Coeff. for normal form x^3 + rx^2 + sx + t = 0 */ - r = b / a; - s = c / a; - t = d / a; - - /* Coeff. for red. eq. y^3 + py + q = 0 with y = x + r/3 bzw. (x = y - r/3) */ - p = s - r * r * one3; - q = 2.0 * r * r * r * one27 - r * s * one3 + t; - - /* Dummy variables */ - rho = sqrt(-p * p * p * one27); - phi = acos(-q / (2.0 * rho)); - - /* Discriminante(?) */ - D = pow((p * one3),3) + q * q * 0.25; - - if(D > 0){ /* x real -> one real solution */ - u = pow(-q * 0.5 + sqrt(D), one3); - v = -p / u * one3; - droot = (u + v) - r * one3; - } else { // D <= 0 - /* three real solutions (d < 0) | one real solution + one real double solution or - one real triple solution (d = 0) */ - dtmp[0] = 2.0 * pow(rho, one3) * cos(phi * one3) - r * one3; - dtmp[1] = 2.0 * pow(rho, one3) * cos((phi + Constants::TWOPI ) * one3) - r * one3; - dtmp[2] = 2.0 * pow(rho, one3) * cos((phi + Constants::FOURPI) * one3) - r * one3; - - sort(dtmp.begin(), dtmp.end()); - - //qsort((void *) dtmp, (size_t) 3, sizeof(double), cmpdouble); - droot = dtmp[0]; - } - return droot; -} - -// Action_Vector::leastSquaresPlane() -/** Calcs (least-squares best) plane through a series of points - * relative to their center of geom. (the latter has to be done outside this routine), - * returns (normalized) coeff. for plane eq. ax + by + cz = 0 - * following: Crystal Structure Analysis for Chem. and Biol., - * Glusker, Lewis, Rossi, S. 460ff - */ -Vec3 Action_Vector::leastSquaresPlane(int n, const double* vcorr) { - double Xout, Yout, Zout; - if (n == 9) { // Special case, only 3 coords - double x1 = vcorr[3] - vcorr[0]; - double y1 = vcorr[4] - vcorr[1]; - double z1 = vcorr[5] - vcorr[2]; - double x2 = vcorr[6] - vcorr[3]; - double y2 = vcorr[7] - vcorr[4]; - double z2 = vcorr[8] - vcorr[5]; - - Xout = y1 * z2 - z1 * y2; - Yout = z1 * x2 - x1 * z2; - Zout = x1 * y2 - y1 * x2; - } else { // General case - // Calc Var. - double dSumXX = 0.0; - double dSumYY = 0.0; - double dSumZZ = 0.0; - double dSumXY = 0.0; - double dSumXZ = 0.0; - double dSumYZ = 0.0; - - for (int i = 0; i < n; i+=3) { - dSumXX += vcorr[i ] * vcorr[i ]; - dSumYY += vcorr[i+1] * vcorr[i+1]; - dSumZZ += vcorr[i+2] * vcorr[i+2]; - - dSumXY += vcorr[i ] * vcorr[i+1]; - dSumXZ += vcorr[i ] * vcorr[i+2]; - dSumYZ += vcorr[i+1] * vcorr[i+2]; - } - - // Calc coeff. for -l^3 + o * l^2 + p * l + q = 0 - double o = dSumXX + dSumYY + dSumZZ; - double p = pow(dSumXY,2) + pow(dSumXZ,2) + pow(dSumYZ,2) - - (dSumXX * dSumYY + dSumXX * dSumZZ + dSumYY * dSumZZ); - double q = dSumXX * dSumYY * dSumZZ + 2.0 * dSumXY * dSumXZ * dSumYZ - - (dSumXX * dSumYZ * dSumYZ + dSumYY * dSumXZ * dSumXZ + dSumZZ * dSumXY * dSumXY); - - // Solve cubic eq. - double root = Action_Vector::solve_cubic_eq(-1.0, o, p, q); - - // Calc determinents - Xout = (dSumYY - root) * dSumXZ - dSumXY * dSumYZ; - Yout = (dSumXX - root) * dSumYZ - dSumXY * dSumXZ; - Zout = dSumXY * dSumXY - (dSumYY - root) * (dSumXX - root); - } - // Normalize - double dnorm = 1.0 / sqrt((Xout * Xout) + (Yout * Yout) + (Zout * Zout)); - return Vec3(Xout * dnorm, Yout * dnorm, Zout * dnorm); -} - // ----------------------------------------------------------------------------- Vec3 Action_Vector::GetVec(Frame const& currentFrame, AtomMask const& maskIn) const @@ -648,19 +529,8 @@ void Action_Vector::Principal(Frame const& currentFrame) { // Action_Vector::CorrPlane() void Action_Vector::CorrPlane(Frame const& currentFrame) { - Vec3 CXYZ = GetVec(currentFrame, mask_); - int idx = 0; - for (AtomMask::const_iterator atom = mask_.begin(); - atom != mask_.end(); ++atom) - { - Vec3 XYZ = currentFrame.XYZ( *atom ); - XYZ -= CXYZ; - vcorr_[idx++] = XYZ[0]; - vcorr_[idx++] = XYZ[1]; - vcorr_[idx++] = XYZ[2]; - } - Vec3 VXYZ = leastSquaresPlane(idx, vcorr_); - Vec_->AddVxyzo(VXYZ, CXYZ); + vcorr_.CalcLeastSquaresPlane( currentFrame, mask_, useMass_ ); + Vec_->AddVxyzo( vcorr_.Nxyz(), vcorr_.Cxyz() ); } // Action_Vector::UnitCell() diff --git a/src/Action_Vector.h b/src/Action_Vector.h index e3b4f0901a..f72c0741aa 100644 --- a/src/Action_Vector.h +++ b/src/Action_Vector.h @@ -1,6 +1,7 @@ #ifndef INC_ACTION_VECTOR_H #define INC_ACTION_VECTOR_H #include "Action.h" +#include "Structure/LeastSquaresPlane.h" // For CORRPLANE class DataSet_Vector; class DataSet_3D; class CharMask; @@ -26,8 +27,6 @@ class Action_Vector : public Action { Action::RetType DoAction(int, ActionFrame&); void Print(); - static double solve_cubic_eq(double,double,double,double); - static Vec3 leastSquaresPlane(int,const double*); /// \return Center of mass or geometric center of atoms in given mask inline Vec3 GetVec(Frame const&, AtomMask const&) const; void Mask(Frame const&); @@ -44,7 +43,7 @@ class Action_Vector : public Action { DataSet_Vector* Vec_; ///< Hold vector values DataSet* Magnitude_; ///< Hold vector magnitudes if requested DataSet_3D* gridSet_; ///< Hold grid set for getting box vectors from grid. - double* vcorr_; ///< Temp. space for calculating CorrPlane + Cpptraj::Structure::LeastSquaresPlane vcorr_; ///< Temp. space for calculating CorrPlane vectorMode mode_; ///< Vector calculation mode bool ptrajoutput_; ///< If true output in ptraj format bool needBoxInfo_; ///< If true box info required. diff --git a/src/AmberParamFile.cpp b/src/AmberParamFile.cpp new file mode 100644 index 0000000000..e838b111ef --- /dev/null +++ b/src/AmberParamFile.cpp @@ -0,0 +1,1144 @@ +#include "AmberParamFile.h" +#include "ArgList.h" +#include "BufferedLine.h" +#include "CpptrajStdio.h" +#include "DataSet_LeapOpts.h" +#include "StringRoutines.h" +#include "Parm/DihedralParmSet.h" +#include "Parm/ParameterSet.h" +#include "Parm/ParmHolder.h" +#include "Constants.h" +#include <cstdio> // sscanf +#include <cctype> // isspace + +using namespace Cpptraj::Parm; + +const int AmberParamFile::MAXSYMLEN = 16; + +/// CONSTRUCTOR +AmberParamFile::AmberParamFile() : + debug_(0), + default_scee_(1.2), // AMBER DEFAULT + default_scnb_(2.0) // AMBER DEFAULT +{} + +/** Set debug level */ +void AmberParamFile::SetAmberParamDebug(int d) { + debug_ = d; +} + +/** Set defaults from leap options */ +void AmberParamFile::SetDefaults(DataSet_LeapOpts* leapopts) { + if (leapopts == 0) return; + default_scee_ = leapopts->SCEE(); + default_scnb_ = leapopts->SCNB(); +} + +/** Read symbols delimited by - and space. */ +int AmberParamFile::read_symbols(const char* ptrIn, std::vector<std::string>& symbols, int nsymbols) +{ + int isymbol = 0; + bool char_has_been_read = false; + for (const char* ptr = ptrIn; *ptr != '\0'; ++ptr) + { + if (*ptr == '-') { + isymbol++; + char_has_been_read = false; + } else if ((*ptr == ' ' || *ptr == '\t') && isymbol + 1 == nsymbols && char_has_been_read) { + return (ptr - ptrIn); + } else { + symbols[isymbol] += *ptr; + if (*ptr != ' ') char_has_been_read = true; + } + } + return -1; +} + +/// Hold a set of nonbonded parameters +class AmberParamFile::NonbondSet { + public: + NonbondSet(std::string const& n) : name_(n) {} + + std::string name_; ///< Name of set parameters + ParmHolder<LJparmType> LJ_; ///< Hold LJ 6-12 parameters +}; + +/// Hold an off-diagonal NB modification +class AmberParamFile::OffdiagNB { + public: + OffdiagNB(NameType const& AT1, NameType const& AT2, double sig1, double eps1, double sig2, double eps2) : + types_(2), LJ1_(sig1, eps1), LJ2_(sig2, eps2) + { + types_.AddName(AT1); + types_.AddName(AT2); + } + + TypeNameHolder types_; + LJparmType LJ1_; + LJparmType LJ2_; +}; + +/** Read input for atom symbols and masses. */ +int AmberParamFile::read_atype(ParameterSet& prm, const char* ptr) +const +{ + // Format (A2,2X,F10.2x,f10.2) + if (debug_ > 1) mprintf("DEBUG: Atype: %s\n", ptr); + char kndsym[MAXSYMLEN]; + double amass = 0; + double atpol = 0; + // FIXME Atom class needs to be redone to make reading in elements easier. + int nscan = sscanf(ptr, "%s %lf %lf", kndsym, &amass, &atpol); + TypeNameHolder types(kndsym); + Cpptraj::Parm::RetType ret; + if (nscan > 3) + mprintf("Warning: CPPTRAJ currently only reads atomic symbol, mass, and polarizability.\n" + "Warning: Ignoring information after the third column: %s\n", ptr); + if (nscan >= 3) { + // Mass and polarization. Check polarization. + if (atpol < 0.0) { + bool pol_is_neg_one = (atpol < -0.99 && atpol > -1.01); // NOTE: To be consistent with LEAP behavior + if (!pol_is_neg_one) { + mprintf("Warning: %s negative polarization %g - omitting.\n", *(types[0]), atpol); + return 0; + } + } else if (atpol > 15.0) { + mprintf("Warning: %s polarization is large (%g).\n", *(types[0]), atpol); + } + ret = prm.AT().AddParm( types, + AtomType(amass, atpol), + true ); + } else if (nscan == 2) { + // Only mass + ret = prm.AT().AddParm( types, + AtomType(amass), + true ); + } else { + mprinterr("Error: Expected atom type, mass, polarizability, got only %i columns.\n", nscan); + return 1; + } + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", types.TypeNameStr("atom").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) { + AtomType const& prev = prm.AT().PreviousParm(); + bool diff_mass = (prev.Mass() != amass); + bool diff_pol = (prev.Polarizability() != atpol); + mprintf("Warning: Redefining %s", types.TypeNameStr("atom").c_str()); + //prm.AT().PreviousParm().Mass(), prm.AT().PreviousParm().Polarizability(), amass, atpol); + if (diff_mass) mprintf(" from mass %g to %g", prev.Mass(), amass); + if (diff_pol) mprintf(" from pol %g to %g", prev.Polarizability(), atpol); + mprintf("\n"); + } else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", types.TypeNameStr("atom").c_str()); + return 1; + } + + //if (ret == Cpptraj::Parm::UPDATED) + // mprintf("Warning: Redefining atom type %s\n", kndsym); + return 0; +} + +/** Read input for bond. */ +int AmberParamFile::read_bond(ParameterSet& prm, const char* ptr) +const +{ + // Bond parameters + // IBT , JBT , RK , REQ + // FORMAT(A2,1X,A2,2F10.2) + if (debug_ > 1) mprintf("DEBUG: Bond: %s\n", ptr); + std::vector<std::string> symbols(2); + int pos = read_symbols(ptr, symbols, 2); + if (pos < 0) { + mprinterr("Error: Could not read symbols for bond from %s\n", ptr); + return 1; + } + //mprintf("DEBUG: %s %s '%s'\n", symbols[0].c_str(), symbols[1].c_str(), ptr+pos); + double RK, REQ; + int nscan = sscanf(ptr+pos, "%lf %lf", &RK, &REQ); + if (nscan != 2) { + mprinterr("Error: Expected RK, REQ, got only %i elements\n", nscan); + return 1; + } + TypeNameHolder types(2); + types.AddName( symbols[0] ); + types.AddName( symbols[1] ); + Cpptraj::Parm::RetType ret = prm.BP().AddParm(types, BondParmType(RK, REQ), true); + + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", types.TypeNameStr("bond").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) + mprintf("Warning: Redefining %s from RK= %g REQ= %g to RK= %g REQ= %g\n", + types.TypeNameStr("bond").c_str(), + prm.BP().PreviousParm().Rk(), prm.BP().PreviousParm().Req(), RK, REQ); + else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", types.TypeNameStr("bond").c_str()); + return 1; + } + + return 0; +} + +/** Read input for angle. */ +int AmberParamFile::read_angle(ParameterSet& prm, const char* ptr) +const +{ + // Angle parameters + // ITT , JTT , KTT , TK , TEQ + // FORMAT(A2,1X,A2,1X,A2,2F10.2) + if (debug_ > 1) mprintf("DEBUG: Angle: %s\n", ptr); + std::vector<std::string> symbols(3); + int pos = read_symbols(ptr, symbols, 3); + if (pos < 0) { + mprinterr("Error: Could not read symbols for angle from %s\n", ptr); + return 1; + } + //mprintf("DEBUG: %s %s %s '%s'\n", symbols[0].c_str(), symbols[1].c_str(), symbols[2].c_str(), ptr+pos); + double TK, TEQ; + int nscan = sscanf(ptr+pos, "%lf %lf", &TK, &TEQ); + if (nscan != 2) { + mprinterr("Error: Expected TK, TEQ, got only %i elements\n", nscan); + return 1; + } + TypeNameHolder types(3); + types.AddName( symbols[0] ); + types.AddName( symbols[1] ); + types.AddName( symbols[2] ); + Cpptraj::Parm::RetType ret = prm.AP().AddParm(types, AngleParmType(TK, TEQ*Constants::DEGRAD), true); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", types.TypeNameStr("angle").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) + mprintf("Warning: Redefining %s from TK= %g TEQ= %g to RK= %g REQ= %g\n", + types.TypeNameStr("angle").c_str(), + prm.AP().PreviousParm().Tk(), prm.AP().PreviousParm().Teq()*Constants::RADDEG, TK, TEQ); + else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", types.TypeNameStr("angle").c_str()); + return 1; + } + //if (ret == Cpptraj::Parm::UPDATED) + // mprintf("Warning: Redefining angle type %s - %s - %s\n", *(types[0]), *(types[1]), *(types[2])); + + return 0; +} + +/** Read input for dihedral. + * IPT , JPT , KPT , LPT , IDIVF , PK , PHASE , PN + * FORMAT(A2,1X,A2,1X,A2,1X,A2,I4,3F15.2) + * If IPT .eq. 'X ' .and. LPT .eq. 'X ' then any dihedrals in the + * system involving the atoms "JPT" and and "KPT" are assigned + * the same parameters. This is called the general dihedral type + * and is of the form "X "-"JPT"-"KPT"-"X ". + * IDIVF is the factor by which the torsional barrier is divided. + * Consult Weiner, et al., JACS 106:765 (1984) p. 769 for + * details. Basically, the actual torsional potential is + * (PK/IDIVF) * (1 + cos(PN*phi - PHASE)) + * If PN .lt. 0.0 then the torsional potential is assumed to have more + * than one term, and the values of the rest of the terms are read from + * the next cards until a positive PN is encountered. The negative value + * of pn is used only for identifying the existence of the next term and + * only the absolute value of PN is kept. + */ +int AmberParamFile::read_dihedral(DihedralParmSet& prm, const char* ptr, + std::vector<std::string>& last_symbols, + bool first_char_is_space) +const +{ + // Dihedral parameters + if (debug_ > 1) + mprintf("DEBUG: Dihedral: %s\n", ptr); + std::vector<std::string> symbols(4); + int pos = 0; + if (first_char_is_space) { + // Assume no symbols on this line. Use previous symbols. + if (last_symbols.empty()) { + mprinterr("Error: No symbols in dihedral line: %s\n", ptr); + return 1; + } + symbols = last_symbols; + // Advance past the whitespace + while (ptr[pos] == ' ') pos++; + } else { + pos = read_symbols(ptr, symbols, 4); + if (pos < 0) { + mprinterr("Error: Could not read symbols for dihedral from %s\n", ptr); + return 1; + } + } + //mprintf("DEBUG: %s %s %s %s '%s'\n", symbols[0].c_str(), symbols[1].c_str(), symbols[2].c_str(), symbols[3].c_str(), ptr+pos); + int IDIVF; + double PK, PHASE, PN; + char sSCEE[128]; + char sSCNB[128]; + // TODO note when PN is negative and expect more terms? + int nscan = sscanf(ptr+pos, "%i %lf %lf %lf %s %s", &IDIVF, &PK, &PHASE, &PN, sSCEE, sSCNB); + if (nscan < 4) { + mprinterr("Error: Expected IDIVF, PK, PHASE, PN, got only %i elements\n", nscan); + return 1; + } + if (PN < 0.0) PN = -PN; + double scee = default_scee_; // AMBER DEFAULT + double scnb = default_scnb_; // AMBER DEFAULT + if (nscan == 6) { + // Check for SCEE/SCNB (GLYCAM) + if (sSCEE[0] == 'S' && sSCEE[1] == 'C' && sSCEE[2] == 'E' && sSCEE[3] == 'E') + sscanf( sSCEE, "SCEE=%lf", &scee); + if (sSCNB[0] == 'S' && sSCNB[1] == 'C' && sSCNB[2] == 'N' && sSCNB[3] == 'B') + sscanf( sSCNB, "SCNB=%lf", &scnb); + } + TypeNameHolder types(4); + types.AddName( symbols[0] ); + types.AddName( symbols[1] ); + types.AddName( symbols[2] ); + types.AddName( symbols[3] ); + Cpptraj::Parm::RetType ret = + prm.AddDihParm(types, DihedralParmType(PK / (double)IDIVF, PN, PHASE*Constants::DEGRAD, scee, scnb), true); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", types.TypeNameStr("dihedral").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) // TODO SCEE/SCNB? + mprintf("Warning: Redefining %s (PN=%g) from PK= %g Phase= %g to PK= %g Phase= %g\n", + types.TypeNameStr("dihedral").c_str(), PN, + prm.PreviousParm().Pk(), prm.PreviousParm().Phase()*Constants::RADDEG, PK/(double)IDIVF, PHASE); + else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", types.TypeNameStr("dihedral").c_str()); + return 1; + } + //if (ret == Cpptraj::Parm::UPDATED) { + // mprintf("Warning: Redefining dihedral type %s - %s - %s - %s (PN=%g)\n", + // *(types[0]), *(types[1]), *(types[2]), *(types[3]), PN); + //mprintf("DEBUG: %s\n", ptr); + //} + last_symbols = symbols; + return 0; +} + +/** Read input for improper. */ +int AmberParamFile::read_improper(DihedralParmSet& prm, const char* ptr) +const +{ + // Improper parameters + // IPT , JPT , KPT , LPT , IDIVF , PK , PHASE , PN + // FORMAT(A2,1X,A2,1X,A2,1X,A2,I4,3F15.2) + if (debug_ > 1) mprintf("DEBUG: Improper: %s\n", ptr); + std::vector<std::string> symbols(4); + int pos = read_symbols(ptr, symbols, 4); + if (pos < 0) { + mprinterr("Error: Could not read symbols for improper from %s\n", ptr); + return 1; + } + //mprintf("DEBUG: %s %s %s %s '%s'\n", symbols[0].c_str(), symbols[1].c_str(), symbols[2].c_str(), symbols[3].c_str(), ptr+pos); + double PK, PHASE, PN; + int nscan = sscanf(ptr+pos, "%lf %lf %lf", &PK, &PHASE, &PN); + if (nscan != 3) { + mprinterr("Error: Expected PK, PHASE, PN, got only %i elements\n", nscan); + return 1; + } + if (PN < 0.0) { + mprintf("Warning: Improper for %s-%s-%s-%s has negative phase (%g)\n", + symbols[0].c_str(), symbols[1].c_str(), symbols[2].c_str(), symbols[3].c_str(), PN); + PN = -PN; + } + TypeNameHolder types(4); + types.AddName( symbols[0] ); + types.AddName( symbols[1] ); + types.AddName( symbols[2] ); + types.AddName( symbols[3] ); + //types.SortImproperByAlpha("X"); // FIXME wildcard should be a static var + Cpptraj::Parm::RetType ret = + prm.AddDihParm(types, DihedralParmType(PK, PN, PHASE*Constants::DEGRAD), true); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", types.TypeNameStr("improper").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) + mprintf("Warning: Redefining %s from PK= %g Phase= %g to PK= %g Phase= %g\n", + types.TypeNameStr("improper").c_str(), + prm.PreviousParm().Pk(), prm.PreviousParm().Phase()*Constants::RADDEG, PK, PHASE); + else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", types.TypeNameStr("improper").c_str()); + return 1; + } + + //if (ret == Cpptraj::Parm::UPDATED) + // mprintf("Warning: Redefining improper type %s - %s - %s - %s\n", + // *(types[0]), *(types[1]), *(types[2]), *(types[3])); + + return 0; +} + +/** Read input for LJ 10-12 hbond. */ +int AmberParamFile::read_lj1012(ParameterSet& prm, const char* ptr) +const +{ + // Lennard-Jones 10-12 hydrogen bonding term. + // According to the docs, the format should be: + // KT1 , KT2 , A , B , ASOLN , BSOLN , HCUT , IC + // FORMAT(2X,A2,2X,A2,2x,5F10.2,I2) + // In practive (in e.g. parm91.dat), the actual format appears to be: + // KT1, KT2, A, B, HCUT + char KT1[MAXSYMLEN], KT2[MAXSYMLEN]; + double A, B, HCUT; + //double ASOLN, BSOLN, HCUT; + //int IC; + if (debug_ > 1) mprintf("DEBUG: LJ 10-12: %s\n", ptr); + //int nscan = sscanf(ptr, "%s %s %lf %lf %lf %lf %lf %i\n", + int nscan = sscanf(ptr, "%s %s %lf %lf %lf", KT1, KT2, &A, &B, &HCUT); + if (nscan < 5) { + mprinterr("Error: Expected at least KT1, KT2, A, B, HCUT, got only %i elements\n", nscan); + return 1; + } + TypeNameHolder types(2); + types.AddName( KT1 ); + types.AddName( KT2 ); + Cpptraj::Parm::RetType ret = prm.HB().AddParm(types, HB_ParmType(A, B, HCUT), true); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", types.TypeNameStr("LJ 10-12 hbond").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) { + mprintf("Warning: Redefining %s from Asol= %g Bsol= %g Cut= %g to Asol= %g Bsol= %g Cut=%g\n", + types.TypeNameStr("LJ 10-12 hbond").c_str(), + prm.HB().PreviousParm().Asol(), prm.HB().PreviousParm().Bsol(), prm.HB().PreviousParm().HBcut(), + A, B, HCUT); + } else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", types.TypeNameStr("LJ 10-12 hbond").c_str()); + return 1; + } + + //if (ret == Cpptraj::Parm::UPDATED) + // mprintf("Warning: Redefining LJ 10-12 hbond type %s %s\n", *(types[0]), *(types[1])); + return 0; +} + +/** Read IPOL section */ +int AmberParamFile::read_ipol(ParameterSet& prm, const char* ptr) +const +{ + //mprintf("DEBUG: Read IPOL.\n"); + int ipolIn = -1; + if (sscanf(ptr, "%i", &ipolIn) != 1) { + mprinterr("Error: Could not read IPOL value from line: %s\n", ptr); + return 1; + } + if (debug_ > 0) + mprintf("DEBUG: IPOL value is %i\n", ipolIn); + return 0; +} + +/** Read radius/depth input for LJ 6-12 nonbond. */ +int AmberParamFile::read_nb_RE(NonbondSet& nbset, const char* ptr) +const +{ + // ***** ONLY IF KINDNB .EQ. 'RE' ***** + // LTYNB , R , EDEP + if (debug_ > 1) mprintf("DEBUG: Nonbond: %s\n", ptr); + //char LTYNB[MAXSYMLEN]; + //double R, EDEP; + //double R14, E14; + // This section is a little tricky. Apparently CHARMM-style Amber FF + // files can have 14 LJ params here. Try to detect this. + ArgList nbargs( ptr, " " ); + if (nbargs.Nargs() < 3) { + mprinterr("Error: Expected at least TYPE, R, DEPTH, got %i elements.\n", nbargs.Nargs()); + return 1; + } + bool has_14 = false; + if (nbargs.Nargs() >= 5) { + if (validDouble( nbargs[3] ) && validDouble( nbargs[4] )) { + has_14 = true; + } + } + if (has_14) mprintf("DEBUG: NB HAS 1-4 LJ PARAMS.\n"); // FIXME save these + double R = convertToDouble( nbargs[1] ); + double EDEP = convertToDouble( nbargs[2] ); + TypeNameHolder types( nbargs[0] ); + Cpptraj::Parm::RetType ret = nbset.LJ_.AddParm( types, LJparmType(R, EDEP), true ); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated LJ 6-12 type %s\n", *(types[0])); + else if (ret == Cpptraj::Parm::UPDATED) + mprintf("Warning: Redefining LJ 6-12 type %s from R= %g depth= %g to R= %g depth= %g\n", *(types[0]), + nbset.LJ_.PreviousParm().Radius(), nbset.LJ_.PreviousParm().Depth(), R, EDEP); + else if (ret == Cpptraj::Parm::ERR) + mprinterr("Error: Adding LJ 6-12 type %s\n", *(types[0])); + return 0; +} + +/** Read A/C coefficient input for LJ 6-12 nonbond. */ +int AmberParamFile::read_nb_AC(NonbondSet& nbset, const char* ptr) +const +{ + // ***** ONLY IF KINDNB .EQ. 'AC' ***** + // LTYNB , A , C + if (debug_ > 1) mprintf("DEBUG: Nonbond: %s\n", ptr); + + ArgList nbargs( ptr, " " ); + if (nbargs.Nargs() < 3) { + mprinterr("Error: Expected at least TYPE, A, C, got %i elements.\n", nbargs.Nargs()); + return 1; + } + + double A = convertToDouble( nbargs[1] ); + double C = convertToDouble( nbargs[2] ); + TypeNameHolder types( nbargs[0] ); + + NonbondType nbt(A, C); + + Cpptraj::Parm::RetType ret = nbset.LJ_.AddParm( types, LJparmType(nbt.Radius(), nbt.Depth()), true ); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated AC LJ 6-12 type %s\n", *(types[0])); + else if (ret == Cpptraj::Parm::UPDATED) + mprintf("Warning: Redefining AC LJ 6-12 type %s from R= %g depth= %g to R= %g depth= %g\n", *(types[0]), + nbset.LJ_.PreviousParm().Radius(), nbset.LJ_.PreviousParm().Depth(), nbt.Radius(), nbt.Depth()); + else if (ret == Cpptraj::Parm::ERR) + mprinterr("Error: Adding AC LJ 6-12 type %s\n", *(types[0])); + return 0; +} + +/** Read LJ off-diagonal modifications */ +int AmberParamFile::read_ljedit(Oarray& Offdiag, const char* ptr) +const +{ + if (debug_ > 1) mprintf("DEBUG: LJedit: %s\n", ptr); + // Lennard-Jones sigma and epsilon of the first atom type when it + // interacts with anything under the normal rules, then the sigma + // and epsilon of the second atom type when it interacts with the first. + char AT1[MAXSYMLEN], AT2[MAXSYMLEN]; + double sig1, eps1, sig2, eps2; + int nscan = sscanf(ptr, "%s %s %lf %lf %lf %lf", AT1, AT2, &sig1, &eps1, &sig2, &eps2); + if (nscan != 6) { + //mprinterr("Error: Expected AT1, AT2, SIG1, EPS1, SIG2, EPS2, got %i elements.\n", nscan); + //return 1; + // NOTE: Change to a warning to match LEAP behavior + mprintf("Warning: Expected AT1, AT2, SIG1, EPS1, SIG2, EPS2, got %i elements. Skipping.\n", nscan); + mprintf("Warning: Incomplete LJEDIT line: %s\n", ptr); + return 0; + } + Offdiag.push_back( OffdiagNB(AT1, AT2, sig1, eps1, sig2, eps2) ); + return 0; +} + +/// \return 1 if problem detected with CMAP term +int AmberParamFile::check_cmap(int currentCmapIdx, CmapGridType const& cmap) const { + if (debug_ > 0) { + mprintf("DEBUG: Cmap %i '%s' (gridSize= %i) %zu res:", + currentCmapIdx, cmap.Title().c_str(), cmap.Size(), cmap.ResNames().size()); + for (std::vector<std::string>::const_iterator it = cmap.ResNames().begin(); + it != cmap.ResNames().end(); ++it) + mprintf(" %s", it->c_str()); + mprintf("\n"); + } + if (!cmap.CmapIsValid()) { + mprinterr("Error: CMAP term %i '%s' is not valid.\n", currentCmapIdx, cmap.Title().c_str()); + // Why not? + if (cmap.Resolution() < 1) mprinterr("Error: Resolution is 0.\n"); + if ((int)(cmap.Resolution() * cmap.Resolution()) != cmap.Size()) mprinterr("Error: Resolution %u*%u != grid size %i\n",cmap.Resolution(), cmap.Resolution(), cmap.Size()); + if (cmap.AtomNames().size() != 5) mprinterr("Error: Expected 5 atom names (got %zu)\n", cmap.AtomNames().size()); + if (cmap.NcmapResNames() < 1) mprinterr("Error: No residue names set up.\n"); + return 1; + } + if (!cmap.CmapNresIsValid()) { + mprintf("Warning: The number of expected residue names for CMAP %i '%s' (%i) is not equal to the actual number %zu\n", + currentCmapIdx, + cmap.Title().c_str(), + cmap.NcmapResNames(), + cmap.ResNames().size()); + } + return 0; +} + +/// Add default atom names to CMAP term +static inline void add_cmap_default_atoms(CmapGridType& cmap) { + cmap.AddAtomName("C"); + cmap.AddAtomName("N"); + cmap.AddAtomName("CA"); + cmap.AddAtomName("C"); + cmap.AddAtomName("N"); + cmap.AddResOffset( -1 ); + cmap.AddResOffset( 0 ); + cmap.AddResOffset( 0 ); + cmap.AddResOffset( 0 ); + cmap.AddResOffset( 1 ); +} + +/** Read CMAP section + * Default CMAP atoms are Amber phi/psi: + * Res : 0 1 1 1 2 + * Atom : C - N - CA - C - N + */ +int AmberParamFile::read_cmap(CmapGridType& currentCmap, ParameterSet& prm, CmapType& currentCmapFlag, + std::string const& line, int& cmap_count_is_index) +const +{ + if (line.empty()) return 0; + // At this point, line should have no leading whitespace + + if (line[0] == '%') { + ArgList argline(line); + if (argline.Nargs() > 1) { + // NOTE: CMAP_COUNT is used differently in different files. For example, + // in ff19SB it is used as an index of the current CMAP parameter + // being read. However, in ff12polL it is used to give a total + // count of CMAP parameters + if (argline[0] == "%FLAG") { + if (argline[1] == "CMAP_COUNT") { + // New CMAP term. Ignore the index for now. If a previous CMAP + // was read make sure its OK. + //if (!currentCmap.empty()) { + // if (currentCmap.AtomNames().empty()) add_cmap_default_atoms( currentCmap ); + // if (check_cmap(prm.CMAP().size()+1, currentCmap)) return 1; + // prm.CMAP().AddParm( currentCmap, true, debug_ ); + // currentCmap = CmapGridType(); + //} + int cmapcount = argline.getKeyInt("CMAP_COUNT", -1); + if (debug_ > 0) + mprintf("DEBUG: Cmap count: %i\n", cmapcount); + //if ( cmapcount != (int)prm.CMAP().size()+1 ) + // mprintf("Warning: CMAP term is not in numerical order. CMAP_COUNT %i, expected %zu\n", + // cmapcount, prm.CMAP().size()); + if (cmap_count_is_index == -1) { + if (cmapcount == (int)prm.CMAP().size()) { + if (debug_ > 0) + mprintf("DEBUG: Assuming CMAP count is based on index.\n"); + cmap_count_is_index = 1; + } else { + if (debug_ > 0) + mprintf("DEBUG: Assuming CMAP count is the total number of CMAPS\n"); + cmap_count_is_index = 0; + } + } else if (cmap_count_is_index == 1 && cmapcount != (int)prm.CMAP().size()) { + mprintf("Warning: CMAP term is not in numerical order. CMAP_COUNT %i, expected %zu\n", + cmapcount, prm.CMAP().size()); + + } + return 0; + } else if (argline[1] == "CMAP_TITLE") { + currentCmapFlag = CMAP_TITLE; + // New CMAP term. If a previous CMAP was read make sure it is OK. + if (!currentCmap.empty()) { + if (currentCmap.AtomNames().empty()) add_cmap_default_atoms( currentCmap ); + if (check_cmap(prm.CMAP().size()+1, currentCmap)) return 1; + prm.CMAP().AddParm( currentCmap, true, debug_ ); + currentCmap = CmapGridType(); + } + + return 0; + } else if (argline[1] == "CMAP_RESLIST") { + currentCmapFlag = CMAP_RESLIST; + int nres = argline.getKeyInt("CMAP_RESLIST", -1); + if (nres < 1) { + mprinterr("Error: Bad CMAP # residues: %s\n", line.c_str()); + return 1; + } + if (debug_ > 0) + mprintf("DEBUG: CMAP_RESLIST expect %i residues.\n", nres); + currentCmap.SetNumCmapRes( nres ); + return 0; + } else if (argline[1] == "CMAP_RESOLUTION") { + int cmapres = argline.getKeyInt("CMAP_RESOLUTION", -1); + if (debug_ > 0) + mprintf("DEBUG: Cmap resolution: %i\n", cmapres); + if (cmapres < 1) { + mprinterr("Error: Bad CMAP resolution: %s\n", line.c_str()); + return 1; + } + currentCmap.SetResolution( cmapres ); + return 0; + } else if (argline[1] == "CMAP_PARAMETER") { + currentCmapFlag = CMAP_PARAMETER; + return 0; + } else if (argline[1] == "CMAP_ATMLIST") { + currentCmapFlag = CMAP_ATMLIST; + // Remove any dashes as well + ArgList atmArgs(line, " -"); + if (atmArgs.Nargs() < 7) { + mprinterr("Error: Malformed CMAP_ATMLIST line; expected 5 elements, got %i\n", atmArgs.Nargs() - 2); + mprinterr("Error: %s\n", line.c_str()); + return 1; + } + if (debug_ > 0) + mprintf("DEBUG: Atom names: %s %s %s %s %s\n", + atmArgs[2].c_str(), + atmArgs[3].c_str(), + atmArgs[4].c_str(), + atmArgs[5].c_str(), + atmArgs[6].c_str()); + currentCmap.AddAtomName( atmArgs[2] ); + currentCmap.AddAtomName( atmArgs[3] ); + currentCmap.AddAtomName( atmArgs[4] ); + currentCmap.AddAtomName( atmArgs[5] ); + currentCmap.AddAtomName( atmArgs[6] ); + } else if (argline[1] == "CMAP_RESIDX") { + currentCmapFlag = CMAP_RESIDX; + if (argline.Nargs() < 7) { + mprinterr("Error: Malformed CMAP_RESIDX line; expected 5 elements, got %i\n", argline.Nargs() - 2); + mprinterr("Error: %s\n", line.c_str()); + return 1; + } + int residxs[5]; + for (int i = 0; i < 5; i++) + residxs[i] = argline.getNextInteger(0); + if (debug_ > 0) + mprintf("DEBUG: Residue offsets: %i %i %i %i %i\n", + residxs[0], residxs[1], residxs[2], residxs[3], residxs[4]); + for (int i = 0; i < 5; i++) + currentCmap.AddResOffset( residxs[i] ); + } else { + mprintf("Warning: Unhandled CMAP FLAG %s\n", argline[1].c_str()); + } + } else if (argline[0][0] == '%' && argline[0][1] == 'C' && argline[0][2] == 'O') { + // Assume comment + currentCmapFlag = CMAP_COMMENT; + if (debug_ > 0) mprintf("DEBUG: CMAP comment: %s\n", line.c_str()); + return 0; + } + } // END line args > 1 + } // END line starts with % + + if (currentCmapFlag == CMAP_PARAMETER) { + // Another annoyance; CMAP parameters can be in regular formatted + // 8 column F9.5, or comma-separated list + size_t found = line.find_first_of(","); + if (found != std::string::npos) { + // Comma-separated + ArgList termArgs(line, " ,\t\r"); + for (int i = 0; i != termArgs.Nargs(); i++) { + double term = termArgs.getNextDouble(0.0); + if (debug_ > 1) mprintf("DEBUG: cmap term %f\n", term); + currentCmap.AddToGrid( term ); + } + } else { + // Assume 8F9.5 + double terms[8]; + int nterms = sscanf(line.c_str(), "%9lf%9lf%9lf%9lf%9lf%9lf%9lf%9lf", + terms, terms+1, terms+2, terms+3, + terms+4, terms+5, terms+6, terms+7); + if (debug_ > 1) { + for (int i = 0; i != nterms; i++) + mprintf("DEBUG: cmap term %f\n", terms[i] ); + } + for (int i = 0; i != nterms; i++) { + currentCmap.AddToGrid( terms[i] ); + } + } + } else if (currentCmapFlag == CMAP_RESLIST) { + ArgList resnames( line ); + std::string rn = resnames.GetStringNext(); + while (!rn.empty()) { + currentCmap.AddResName( rn ); + rn = resnames.GetStringNext(); + } + } else if (currentCmapFlag == CMAP_TITLE) { + if (debug_ > 0) + mprintf("DEBUG: CMAP TITLE: %s\n", line.c_str()); + currentCmap.SetTitle( line ); + } + return 0; +} + +/** Assign nonbond parameters from a NonbondSet to ParameterSet */ +int AmberParamFile::assign_nb(ParameterSet& prm, NonbondSet const& nbset) const { + // Nonbonds + for (ParmHolder<LJparmType>::const_iterator it = nbset.LJ_.begin(); + it != nbset.LJ_.end(); ++it) + { + ParmHolder<AtomType>::iterator at = prm.AT().GetParam( it->first ); + if (at == prm.AT().end()) { + mprinterr("Error: Nonbond parameters defined for previously undefined type '%s'.\n", + *(it->first[0])); + return 1; + } + //mprintf("DEBUG: searched type %s hasLJ=%i\n", *(at->first[0]), (int)at->second.HasLJ()); + if (at->second.HasLJ() && at->second.LJ() != it->second) + mprintf("Warning: Changing type %s radius from %g to %g, depth from %g to %g\n", *(it->first[0]), + at->second.LJ().Radius(), it->second.Radius(), + at->second.LJ().Depth(), it->second.Depth()); + at->second.SetLJ( it->second ); + } + return 0; +} + +/** Assign off-diagonal nonbond parameters from an OffdiagNB array to ParameterSet */ +int AmberParamFile::assign_offdiag(ParameterSet& prm, Oarray const& Offdiag) const { + // Do off diagonal NB mods + if (!Offdiag.empty()) { + for (Oarray::const_iterator od = Offdiag.begin(); od != Offdiag.end(); ++od) + { + if (debug_ > 1) mprintf("DEBUG: Off diag %s %s\n", *(od->types_[0]), *(od->types_[1])); + // Set type 1 + ParmHolder<AtomType>::iterator it = prm.AT().GetParam( od->types_[0] ); + if (it == prm.AT().end()) { + mprinterr("Error: Off-diagonal nonbond parameters defined for previously undefined type '%s'.\n", + *(od->types_[0])); + return 1; + } + it->second.SetLJ( od->LJ1_ ); + // Set off-diagonal for type1-type2 + // FIXME different combine rules? + prm.NB().AddParm(od->types_, od->LJ1_.Combine_LB(od->LJ2_), false); + } + } // END off-diagonal NB mods + return 0; +} + +/** Read parameters from Amber frcmod file. */ +int AmberParamFile::ReadFrcmod(ParameterSet& prm, FileName const& fname) const +{ + int cmap_count_is_index = -1; + // Set wildcard character for dihedrals and impropers + prm.DP().SetWildcard('X'); + prm.IP().SetWildcard('X'); + // Read title + BufferedLine infile; + if (infile.OpenFileRead( fname )) { + mprinterr("Error: Could not open file '%s' as Amber FF.\n", fname.full()); + return 1; + } + const char* ptr = infile.Line(); + if (ptr == 0) { + mprinterr("Error: Could not read anything from Amber FF file %s\n", fname.full()); + return 1; + } + std::vector<std::string> last_symbols; + last_symbols.reserve(4); + std::string title(ptr); + mprintf("\tTitle: %s\n", title.c_str()); + prm.SetParamSetName( title ); + prm.SetParamSetFile( fname ); + NonbondSet nbset(title); + Oarray Offdiag; + DihedralParmSet dihPrm( debug_ ); + DihedralParmSet impPrm( debug_ ); + // Read file + SectionType section = UNKNOWN; + CmapType currentCmapFlag = CMAP_INITIAL; + CmapGridType currentCmap; + ptr = infile.Line(); + while (ptr != 0) { + bool first_char_is_space = (*ptr == ' '); + // Advance to first non-space char + while (isspace(*ptr) && *ptr != '\0') ++ptr; + // Is this a recognized section keyword? + if (*ptr != '\0') { + std::string line(ptr); + if (line.compare(0, 4, "MASS") == 0) section = ATYPE; + else if (line.compare(0, 4, "BOND") == 0) section = BOND; + else if (line.compare(0, 4, "ANGL") == 0) section = ANGLE; + else if (line.compare(0, 4, "DIHE") == 0) section = DIHEDRAL; + else if (line.compare(0, 4, "IMPR") == 0) section = IMPROPER; + else if (line.compare(0, 4, "HBON") == 0) section = LJ1012; + else if (line.compare(0, 4, "CMAP") == 0) section = CMAP; + else if (line.compare(0, 4, "IPOL") == 0) section = IPOL; + else if (line.compare(0, 6, "LJEDIT") == 0) { + section = LJEDIT; + prm.SetHasLJparams( true ); + } else if (line.compare(0, 4, "NONB") == 0) { + section = NONBOND; + prm.SetHasLJparams( true ); + // TODO check RE + } else { + //mprintf("DEBUG: Section %i: %s\n", (int)section, ptr); + int err = 0; + if (section == ATYPE) + err = read_atype(prm, ptr); + else if (section == BOND) + err = read_bond(prm, ptr); + else if (section == ANGLE) + err = read_angle(prm, ptr); + else if (section == DIHEDRAL) + err = read_dihedral(dihPrm, ptr, last_symbols, first_char_is_space); + else if (section == IMPROPER) + err = read_improper(impPrm, ptr); + else if (section == LJ1012) + err = read_lj1012(prm, ptr); + else if (section == NONBOND) + err = read_nb_RE(nbset, ptr); + else if (section == LJEDIT) + err = read_ljedit(Offdiag, ptr); + else if (section == CMAP) + err = read_cmap(currentCmap, prm, currentCmapFlag, line, cmap_count_is_index); + else if (section == IPOL) + err = read_ipol(prm, ptr); + if (err != 0) { + mprinterr("Error: Reading line: %s\n", ptr); + return 1; + } + } + } + ptr = infile.Line(); + } + // Check last cmap + if (!currentCmap.empty()) { + if (currentCmap.AtomNames().empty()) add_cmap_default_atoms( currentCmap ); + if (check_cmap(prm.CMAP().size(), currentCmap)) return 1; + prm.CMAP().AddParm( currentCmap, true, debug_ ); + } + // Add dihedrals + if (dihPrm.ToDihParm(prm.DP())) return 1; + if (impPrm.ToImpParm(prm.IP())) return 1; + // Nonbonds + if (assign_nb(prm, nbset)) return 1; + // Off-diagonal NB modifications + if (assign_offdiag(prm, Offdiag)) return 1; + + if (debug_ > 0) prm.Debug(); + infile.CloseFile(); + + return 0; +} + +/** Read parameters from Amber main FF parameter file. */ +int AmberParamFile::ReadParams(ParameterSet& prm, FileName const& fname, + std::string const& nbsetnameIn) const +{ + // Set wildcard character for dihedrals and impropers + prm.DP().SetWildcard('X'); + prm.IP().SetWildcard('X'); + // For files with > 1 set of NB params + typedef std::vector<NonbondSet> NbSetArrayType; + NbSetArrayType NBsets; + // For holding equivalent NB type names + typedef std::vector<NameType> Narray; + typedef std::vector<Narray> XNarray; + XNarray EquivalentNames; + // For holding off-diagonal mods + Oarray Offdiag; + + // Read title + BufferedLine infile; + if (infile.OpenFileRead( fname )) { + mprinterr("Error: Could not open file '%s' as Amber FF.\n", fname.full()); + return 1; + } + const char* ptr = infile.Line(); + if (ptr == 0) { + mprinterr("Error: Could not read anything from Amber FF file %s\n", fname.full()); + return 1; + } + std::string title(ptr); + mprintf("\tTitle: %s\n", title.c_str()); + prm.SetParamSetName( title ); + prm.SetParamSetFile( fname ); + std::vector<std::string> last_symbols; + last_symbols.reserve(4); + DihedralParmSet dihPrm( debug_ ); + DihedralParmSet impPrm( debug_ ); + // Read file + int readNbType = 0; + SectionType section = ATYPE; + ptr = infile.Line(); + while (ptr != 0) { + bool first_char_is_space = (*ptr == ' '); + // Advance to first non-space char + while (*ptr == ' ' && *ptr != '\0') ++ptr; + //mprintf("DEBUG: First char: %c (%i)\n", *ptr, (int)*ptr); + int read_err = 0; + if (*ptr == '\0') { + // Section Change + if (section != UNKNOWN) { + if (section == NONBOND) { + // Do a lookahead to see if there are multiple NB sets. + // It will either be another set, END, or LJEDIT + ptr = infile.Line(); + while (*ptr == ' ' && *ptr != '\0') ++ptr; + //mprintf("DEBUG: NONBOND First char: %c (%i)\n", *ptr, (int)*ptr); + std::string nbline(ptr); + if (nbline == "END") { + if (debug_ > 0) mprintf("END\n"); + section = UNKNOWN; + } else if (nbline == "LJEDIT") { + section = LJEDIT; + prm.SetHasLJparams( true ); + } // Otherwise assume another nonbond section + //else mprintf("DEBUG: Assuming another nonbond section.\n"); + } else { + if (debug_ > 0) mprintf("SECTION %i change to %i\n", (int)section, (int)section + 1); + section = (SectionType)((int)section + 1); + } + } + // Special cases + if (section == HYDROPHILIC) { + // Special case: hydrophilic atom types. Could be multiple lines. + // FORMAT(20(A2,2X)) + bool read_hydrophilic = true; + while (read_hydrophilic) { + ptr = infile.Line(); + if (debug_ > 1) mprintf("DEBUG: Hydrophilic: %s\n", ptr); + // Take advantage of the fact that we expect whitespace-delimiters + ArgList hsymbols( ptr, " " ); + for (int iarg = 0; iarg != hsymbols.Nargs(); ++iarg) + prm.AddHydrophilicAtomType( NameType( hsymbols[iarg] ) ); + read_hydrophilic = (hsymbols.Nargs() > 19); + } + if (debug_ > 0) mprintf("DEBUG: Read %u hydrophilic atom types.\n", prm.NhydrophilicAtomTypes()); + section = (SectionType)((int)section + 1); + // Look ahead. Older parm files have the hydrophilic section delimited + // with a newline. + ptr = infile.Line(); + while (*ptr == ' ' && *ptr != '\0') ++ptr; + if (*ptr != '\0') continue; + } else if (section == NONBOND) { + prm.SetHasLJparams( true ); + if (debug_ > 1) mprintf("DEBUG: Begin nonbond section.\n"); + // Special case: first read the line. + // LABEL , KINDNB + // FORMAT(A4,6X,A2) + if (NBsets.empty()) + ptr = infile.Line(); + ArgList nb_args(ptr); + //nb_args.PrintDebug(); + if (nb_args.Nargs() != 2) { + mprintf("Warning: Line %i: Expected 2 elements, nonbond label and kind, got %i elements: %s\n", infile.LineNumber(), nb_args.Nargs(), ptr); + section = UNKNOWN; + } else { + if (debug_ > 0) mprintf("DEBUG: NB label= %s NB kind = %s\n", nb_args[0].c_str(), nb_args[1].c_str()); + std::string const& nb_kind = nb_args[1]; + if (nb_kind[0] == 'R' && nb_kind[1] == 'E') + readNbType = 0; + else if (nb_kind[0] == 'A' && nb_kind[1] == 'C') + readNbType = 1; + else { + mprinterr("Error: Nonbond parameters are not of type 'RE' (Rmin, Epsilon) or 'AC' (A, C coefficients).\n"); + return 1; + } + NBsets.push_back( NonbondSet( nb_args[0] ) ); + } + } + } else if (section == ATYPE) { + read_err = read_atype(prm, ptr); + } else if (section == BOND) { + read_err = read_bond(prm, ptr); + } else if (section == ANGLE) { + read_err = read_angle(prm, ptr); + } else if (section == DIHEDRAL) { + read_err = read_dihedral(dihPrm, ptr, last_symbols, first_char_is_space); + } else if (section == IMPROPER) { + read_err = read_improper(impPrm, ptr); + } else if (section == LJ1012) { + read_err = read_lj1012(prm, ptr); + } else if (section == NB_EQUIV) { + // EQUIVALENCING ATOM SYMBOLS FOR THE NON-BONDED 6-12 POTENTIAL PARAMETERS + // IORG , IEQV(I) , I = 1 , 19 + // FORMAT(20(A2,2X)) + if (debug_ > 1) mprintf("DEBUG: Nonbond equiv: %s\n", ptr); + EquivalentNames.push_back( Narray() ); + ArgList equiv_line( ptr, " " ); + for (int iarg = 0; iarg != equiv_line.Nargs(); iarg++) + EquivalentNames.back().push_back( equiv_line[iarg] ); + } else if (section == NONBOND) { + /// Check for a badly formatted END + if (ptr[0] != '\0' && ptr[1] != '\0' && ptr[2] != '\0' && + ptr[0] == 'E' && ptr[1] == 'N' && ptr[2] == 'D') + { + mprintf("Warning: 'END' encountered before blank line in NONBOND section.\n"); + section = UNKNOWN; + } else if (readNbType == 0) + // ***** ONLY IF KINDNB .EQ. 'RE' ***** + read_err = read_nb_RE(NBsets.back(), ptr); + else if (readNbType == 1) + read_err = read_nb_AC(NBsets.back(), ptr); + } else if (section == LJEDIT) { + read_err = read_ljedit(Offdiag, ptr); + } + if (read_err != 0) { + mprinterr("Error: Reading line: %s\n", ptr); + return 1; + } + ptr = infile.Line(); + } // END loop over file. + + // Add dihedrals + if (dihPrm.ToDihParm(prm.DP())) return 1; + if (impPrm.ToImpParm(prm.IP())) return 1; + // Deal with nonbond and equivalence + if (!NBsets.empty()) { + int nbsetidx = 0; + if (NBsets.size() > 1 || !nbsetnameIn.empty()) { + // Choose from multiple nbsets + if (nbsetnameIn.empty()) { + mprintf("Warning: Parm set in file '%s' contains %zu nonbonded parameter sets\n" + "Warning: but no specific set has been specified. First set will be used.\n", fname.full(), NBsets.size()); + mprintf("Warning: Nonbonded sets:"); + for (NbSetArrayType::const_iterator it = NBsets.begin(); it != NBsets.end(); ++it) + mprintf(" %s", it->name_.c_str()); + mprintf("\n"); + } else { + nbsetidx = -1; + for (NbSetArrayType::const_iterator it = NBsets.begin(); it != NBsets.end(); ++it) { + if (it->name_ == nbsetnameIn) { + nbsetidx = it - NBsets.begin(); + break; + } + } + if (nbsetidx < 0) { + mprinterr("Error: Nonbonded set '%s' not found.\n", nbsetnameIn.c_str()); + mprinterr("Error: Need to specify one of"); + for (NbSetArrayType::const_iterator it = NBsets.begin(); it != NBsets.end(); ++it) + mprinterr(" %s", it->name_.c_str()); + mprinterr("\n"); + return 1; + } + } + } + mprintf("\tUsing nonbonded parm set: %s\n", NBsets[nbsetidx].name_.c_str()); + prm.SetNbParamName( NBsets[nbsetidx].name_ ); + if (assign_nb(prm, NBsets[nbsetidx])) return 1; + + // Do equivalent atoms. + for (XNarray::const_iterator equivAts = EquivalentNames.begin(); + equivAts != EquivalentNames.end(); ++equivAts) + { + // First name is the type to copy TODO check size? + Narray::const_iterator typeName = equivAts->begin(); + ParmHolder<AtomType>::const_iterator at0 = prm.AT().GetParam( *typeName ); + if (at0 == prm.AT().end()) { + mprinterr("Error: Equivalent atom type '%s' not found.\n", *(*typeName) ); + return 1; + } + ++typeName; + for (; typeName != equivAts->end(); ++typeName) { + ParmHolder<AtomType>::iterator at1 = prm.AT().GetParam( *typeName ); + if (at1 == prm.AT().end()) { + mprintf("Warning: Equivalent atom type '%s' (base type '%s') not found.\n", *(*typeName), *(at0->first[0])); + //return 1; + } else { + if (debug_ > 1) mprintf("DEBUG: Equiv '%s' => '%s'\n", *(at0->first[0]), *(*typeName)); + at1->second.SetLJ( at0->second.LJ() ); + } + } + } // END loop over EquivalentNames + } // END nonbond parameters + + // Do off diagonal NB mods + if (assign_offdiag(prm, Offdiag)) return 1; + + if (debug_ > 0) prm.Debug(); + infile.CloseFile(); + return 0; +} + +// DataIO_AmberFF::WriteData() +int AmberParamFile::WriteParams(ParameterSet& prm, FileName const& fname) const +{ + CpptrajFile outfile; + if (outfile.OpenWrite(fname)) return 1; + // 1 - Title + std::string title; + if (prm.ParamSetName().empty()) + title.assign("Parameters written from CPPTRAJ"); + else + title = prm.ParamSetName(); + outfile.Printf("%s\n", title.c_str()); + // 2 - Atom symbols and masses + for (ParmHolder<AtomType>::const_iterator at = prm.AT().begin(); at != prm.AT().end(); ++at) + { + std::string asym = at->first[0].Truncated(); + if (asym.size() > 2) + mprintf("Warning: Atom symbol %s is larger than 2 characters, which breaks Amber FF format.\n", asym.c_str()); + outfile.Printf("%-2s", asym.c_str()); + if (at->second.Mass() < 10.0) + outfile.Printf(" %-10.3f", at->second.Mass()); + else if (at->second.Mass() < 100.0) + outfile.Printf(" %-10.2f", at->second.Mass()); + else + outfile.Printf(" %-10.1f", at->second.Mass()); + outfile.Printf(" %10.3f\n", at->second.Polarizability()); + + //outfile.Printf("%-2s %-10.2f %-10.2f\n", asym.c_str(), at->second.Mass(), at->second.Polarizability()); + } + + return 0; +} diff --git a/src/AmberParamFile.h b/src/AmberParamFile.h new file mode 100644 index 0000000000..7b6c583806 --- /dev/null +++ b/src/AmberParamFile.h @@ -0,0 +1,79 @@ +#ifndef INC_AMBERPARAMFILE_H +#define INC_AMBERPARAMFILE_H +#include <vector> +#include <string> +class CmapGridType; +class DataSet_LeapOpts; +//class BufferedLine; +class FileName; +namespace Cpptraj { +namespace Parm { +class DihedralParmSet; +class ParameterSet; +} +} +/// Used to read in Amber parameters from Amber FF/FRCMOD file. +class AmberParamFile { + typedef Cpptraj::Parm::ParameterSet ParameterSet; + typedef Cpptraj::Parm::DihedralParmSet DihedralParmSet; + public: + AmberParamFile(); + /// Read main Amber FF file + int ReadParams(ParameterSet&, FileName const&, std::string const&) const; + /// Read Amber frcmod file + int ReadFrcmod(ParameterSet&, FileName const&) const; + /// Write main Amber FF file + int WriteParams(ParameterSet&, FileName const&) const; + /// Set debug level + void SetAmberParamDebug(int); + /// Set defaults from leap options + void SetDefaults(DataSet_LeapOpts*); + private: + static const int MAXSYMLEN; + + enum SectionType { ATYPE = 0, HYDROPHILIC, BOND, ANGLE, DIHEDRAL, IMPROPER, + LJ1012, NB_EQUIV, NONBOND, LJEDIT, CMAP, IPOL, UNKNOWN }; + enum CmapType { CMAP_INITIAL, CMAP_TITLE, CMAP_RESLIST, CMAP_PARAMETER, CMAP_COMMENT, + CMAP_RESIDX, CMAP_ATMLIST }; + + class NonbondSet; + class OffdiagNB; + typedef std::vector<OffdiagNB> Oarray; + + static int read_symbols(const char*, std::vector<std::string>&, int); + /// Read atom type line + int read_atype(ParameterSet&, const char*) const; + /// Read bond line + int read_bond(ParameterSet&, const char*) const; + /// Read angle line + int read_angle(ParameterSet&, const char*) const; + /// Read dihedral line + int read_dihedral(DihedralParmSet&, const char*, std::vector<std::string>&, bool) const; +// int dihparm_to_parmset(ParameterSet&, DihedralParmSet const&) const; + /// Read improper line + int read_improper(DihedralParmSet&, const char*) const; + /// Read LJ 10-12 hbond line + int read_lj1012(ParameterSet&, const char*) const; + /// Read IPOL line + int read_ipol(ParameterSet&, const char*) const; + /// Read LJ 6-12 R/depth line + int read_nb_RE(NonbondSet&, const char*) const; + /// Read LJ 6-12 A/C coefficient line + int read_nb_AC(NonbondSet&, const char*) const; + /// Read LJ 6-12 off-diagonal modifications + int read_ljedit(Oarray&, const char*) const; + /// Check for issues in CMAP section + inline int check_cmap(int, CmapGridType const&) const; + /// Read CMAP section + int read_cmap(CmapGridType&, ParameterSet&, CmapType&, std::string const&, int&) const; + /// Assign parameters from NonbondSet to ParameterSet + int assign_nb(ParameterSet&, NonbondSet const&) const; + /// Assign parameters from OffdiagNB array to ParameterSet + int assign_offdiag(ParameterSet&, Oarray const&) const; + //int ReadInput(std::string&, BufferedLine&) const; + + int debug_; + double default_scee_; + double default_scnb_; +}; +#endif diff --git a/src/ArgList.h b/src/ArgList.h index 16efad4cb4..2c2d6f1b3f 100644 --- a/src/ArgList.h +++ b/src/ArgList.h @@ -89,6 +89,8 @@ class ArgList { int NextDoubleToInt(int); /// \return the string following the given key std::string const& GetStringKey(const char *); + /// \return the string following the given key + std::string const& GetStringKey(std::string const& s) { return GetStringKey(s.c_str()); } /// \return ArgList containing N unmarked arguments following given key ArgList GetNstringKey(const char*, int); /// \return string following given key or default if not found. diff --git a/src/AssociatedData.h b/src/AssociatedData.h index f37af22d7c..9341769c49 100644 --- a/src/AssociatedData.h +++ b/src/AssociatedData.h @@ -6,7 +6,7 @@ class AssociatedData { /// Destructor. Virtual since this class is inherited. virtual ~AssociatedData() {} /// Associated data types - enum AssociatedType { NOE = 0, CONNECT }; + enum AssociatedType { NOE = 0, CONNECT, RESID }; /// CONSTRUCTOR - take associated data type AssociatedData(AssociatedType t) : type_(t) {} /// \return Associated data type diff --git a/src/Atom.cpp b/src/Atom.cpp index 90b6942f33..29e1d62620 100644 --- a/src/Atom.cpp +++ b/src/Atom.cpp @@ -102,14 +102,14 @@ const double Atom::PaulingElectroNeg_[NUMELEMENTS_] = { -1.0, }; // CONSTRUCTOR -Atom::Atom() : charge_(0.0), polar_(0.0), mass_(1.0), gb_radius_(0.0), +Atom::Atom() : charge_(0.0), polar_(0.0), mass_(0.0), gb_radius_(0.0), gb_screen_(0.0), aname_(""), atype_(""), atype_index_(0), element_(UNKNOWN_ELEMENT), resnum_(0), mol_(0) {} /** If no 2 char element name provided, try to guess from name. */ Atom::Atom(NameType const& aname, const char* elt) : - charge_(0.0), polar_(0.0), mass_(1.0), gb_radius_(0.0), gb_screen_(0.0), + charge_(0.0), polar_(0.0), mass_(0.0), gb_radius_(0.0), gb_screen_(0.0), aname_(aname), atype_(""), atype_index_(0), element_(UNKNOWN_ELEMENT), resnum_(0), mol_(0) { @@ -122,7 +122,7 @@ Atom::Atom(NameType const& aname, const char* elt) : /** Attempt to guess element from atom name. */ Atom::Atom( NameType const& aname, NameType const& atype, double q ) : - charge_(q), polar_(0.0), mass_(1.0), gb_radius_(0.0), gb_screen_(0.0), + charge_(q), polar_(0.0), mass_(0.0), gb_radius_(0.0), gb_screen_(0.0), aname_(aname), atype_(atype), atype_index_(0), element_(UNKNOWN_ELEMENT), resnum_(0), mol_(0) { @@ -132,7 +132,7 @@ Atom::Atom( NameType const& aname, NameType const& atype, double q ) : /** Set type and type index. Attempt to guess element from atom name. */ Atom::Atom( NameType const& aname, NameType const& atype, int atidx ) : - charge_(0.0), polar_(0.0), mass_(1.0), gb_radius_(0.0), gb_screen_(0.0), + charge_(0.0), polar_(0.0), mass_(0.0), gb_radius_(0.0), gb_screen_(0.0), aname_(aname), atype_(atype), atype_index_(atidx), element_(UNKNOWN_ELEMENT), resnum_(0), mol_(0) { @@ -316,6 +316,11 @@ void Atom::SetElementFromName() { case 'R' : if (c2=='b') element_ = RUBIDIUM; break; + // Check for extra points + case 'E' : + if (c2=='P') {element_ = EXTRAPT; break;} + case 'X' : + if (c2=='P') {element_ = EXTRAPT; break;} default: SetElementFromSymbol(c1, c2); if (element_ == UNKNOWN_ELEMENT) @@ -325,7 +330,7 @@ void Atom::SetElementFromName() { // Atom::SetElementFromSymbol() void Atom::SetElementFromSymbol(char c1, char c2) { - if (element_ != UNKNOWN_ELEMENT) return; + //if (element_ != UNKNOWN_ELEMENT) return; // Attempt to match up 1 or 2 char element name char en[2]; bool oneChar = true; diff --git a/src/Atom.h b/src/Atom.h index 63a51e6738..25200772b8 100644 --- a/src/Atom.h +++ b/src/Atom.h @@ -73,6 +73,7 @@ class Atom { void SetTypeIndex(int tin) { atype_index_ = tin; } void SetName(NameType const& nin) { aname_ = nin; } void SetTypeName(NameType const& tin) { atype_ = tin; } + void SetElementFromSymbol(char,char); // Internal vars ----------------------------- inline bool NoMol() const { return ( mol_ < 0 ); } inline const char *c_str() const { return *aname_; } @@ -84,6 +85,7 @@ class Atom { double PaulingElectroNeg() const { return PaulingElectroNeg_[element_]; } inline const NameType& Name() const { return aname_; } inline const NameType& Type() const { return atype_; } + inline bool HasType() const { return (atype_.len() > 0); } inline int TypeIndex() const { return atype_index_; } inline int MolNum() const { return mol_; } inline int Nbonds() const { return (int)bonds_.size(); } @@ -125,7 +127,6 @@ class Atom { static void WarnBondLengthDefault(AtomicElementType, AtomicElementType, double); void SetElementFromName(); - void SetElementFromSymbol(char,char); void SetElementFromMass(); }; #endif diff --git a/src/AtomMap.cpp b/src/AtomMap.cpp index c86340c54d..a459e8d410 100644 --- a/src/AtomMap.cpp +++ b/src/AtomMap.cpp @@ -3,7 +3,7 @@ #include "CpptrajStdio.h" // CONSTRUCTOR -AtomMap::AtomMap() : debug_(0) {} +AtomMap::AtomMap() : debug_(0), allowNoBonds_(false) {} /// Blank AtomMap for empty return of bracket operator MapAtom AtomMap::EMPTYMAPATOM = MapAtom(); @@ -123,16 +123,13 @@ bool AtomMap::BondIsRepeated(int atom, int bondedAtom) const { return false; } -// AtomMap::DetermineAtomIDs() /** Give each atom an identifier (atomID) based on what atoms are bonded to * it. The first part of the atomID is the atom itself, followed by an * alphabetized list of bonded atoms. So C in O=C-H2 would be CHHO. * Then create a 'unique string' comprised of this atomID and the - * atomIDs of all bonded atoms (sorted). Once that is done determine - * which unique strings are actually unique (i.e. they are not repeated - * in this map). + * atomIDs of all bonded atoms (sorted). */ -void AtomMap::DetermineAtomIDs() { +void AtomMap::AssignUniqueAtomIDs() { // Determine self IDs if (debug_>0) mprintf("ATOM IDs:\n"); unsigned int anum = 1; @@ -187,6 +184,15 @@ void AtomMap::DetermineAtomIDs() { // NOTE: SetUnique also resets the duplicated counter. matom.SetUnique( unique ); } +} + +// AtomMap::DetermineAtomIDs() +/** Assign each atom a unique ID. Once that is done determine + * which unique strings are actually unique (i.e. they are not repeated + * in this map). + */ +void AtomMap::DetermineAtomIDs() { + AssignUniqueAtomIDs(); // Determine which unique IDs are duplicated - set isUnique flag for (unsigned int i = 0; i < mapatoms_.size()-1; i++) { @@ -202,7 +208,7 @@ void AtomMap::DetermineAtomIDs() { // DEBUG if (debug_ > 0) { mprintf("UNIQUE IDs:\n"); - anum = 1; + unsigned int anum = 1; for (Marray::const_iterator matom = mapatoms_.begin(); matom != mapatoms_.end(); ++matom) { @@ -288,8 +294,10 @@ int AtomMap::CheckBonds() { } } if (total_bonds == 0 && mapatoms_.size() > 1) { - mprinterr("Error: No bond information present, required by AtomMap.\n"); - return 1; + if (!allowNoBonds_) { + mprinterr("Error: No bond information present, required by AtomMap.\n"); + return 1; + } } // DEBUG diff --git a/src/AtomMap.h b/src/AtomMap.h index 3705fc6aaa..5543967ce1 100644 --- a/src/AtomMap.h +++ b/src/AtomMap.h @@ -13,6 +13,8 @@ class AtomMap { int Natom() const { return (int)mapatoms_.size(); } /// Set the debug level of the AtomMap. void SetDebug(int d) { debug_ = d; } + /// Set whether we are allowing no bonds during Setup or not. + void SetAllowNoBonds(bool b) { allowNoBonds_ = b; } /// Setup AtomMap with all atoms from input Topology. int Setup(Topology const&, Frame const&); /// Setup AtomMap with just atoms from specified Residue. @@ -22,6 +24,9 @@ class AtomMap { /// Clear the map void ClearMap(); bool BondIsRepeated(int,int) const; + /// Assign unique atom IDs + void AssignUniqueAtomIDs(); + /// Assign unique atom IDs and determine which ones are duplicated void DetermineAtomIDs(); void MarkAtomComplete(int,bool); void CheckForCompleteAtoms(); @@ -38,5 +43,6 @@ class AtomMap { typedef std::vector<MapAtom> Marray; Marray mapatoms_; int debug_; + bool allowNoBonds_; ///< If true, do not make having no bonds an error }; #endif diff --git a/src/AtomMask.h b/src/AtomMask.h index 2d4d8000f1..ff1f73df14 100644 --- a/src/AtomMask.h +++ b/src/AtomMask.h @@ -45,7 +45,7 @@ class AtomMask : public MaskTokenArray { /// \return selected atom at idx const int& operator[](int idx) const { return Selected_[idx]; } /// \return Number of atoms from corresponding topology. - int NmaskAtoms() const { return Natom_; } + int Natom() const { return Natom_; } /// Flip current mask expression. void InvertMaskExpression(); /// Invert current mask diff --git a/src/AtomType.h b/src/AtomType.h index b74de65677..b616e1256d 100644 --- a/src/AtomType.h +++ b/src/AtomType.h @@ -1,32 +1,117 @@ #ifndef INC_ATOMTYPE_H #define INC_ATOMTYPE_H #include "ParameterTypes.h" +//# incl ude "CpptrajStdio.h" // DEBUG /// Hold parameters for a unique atom type class AtomType { + void clearElt() { elt_[0] = ' '; elt_[1] = ' '; elt_[2] = '\0'; } public: - AtomType() : mass_(0.0), oidx_(-1) {} - AtomType(double r, double d, int o) : lj_(r, d), mass_(0.0), oidx_(o) {} // TODO deprecate - /// Mass only - AtomType(double m) : mass_(m), oidx_(-1) {} - /// Radius, well depth, mass - AtomType(double r, double d, double m) : lj_(r, d), mass_(m), oidx_(-1) {} + /// Atom hybridization types + enum HybridizationType { SP = 0, SP2, SP3, UNKNOWN_HYBRIDIZATION }; + /// CONSTRUCTOR + AtomType() : mass_(0.0), polarizability_(0.0), oidx_(-1), hybrid_(UNKNOWN_HYBRIDIZATION), hasLJ_(false), hasLJ14_(false) { clearElt(); } + /// CONSTRUCTOR - Mass only + AtomType(double m) : mass_(m), polarizability_(0.0), oidx_(-1), hybrid_(UNKNOWN_HYBRIDIZATION), hasLJ_(false), hasLJ14_(false) { clearElt(); } + /// CONSTRUCTOR - Mass, polarizability + AtomType(double m, double p) : mass_(m), polarizability_(p), oidx_(-1), hybrid_(UNKNOWN_HYBRIDIZATION), hasLJ_(false), hasLJ14_(false) { clearElt(); } + /// CONSTRUCTOR - Radius, well depth, mass, polarizability + AtomType(double r, double d, double m, double p) : lj_(r, d), mass_(m), polarizability_(p), oidx_(-1), hybrid_(UNKNOWN_HYBRIDIZATION), hasLJ_(true), hasLJ14_(false) { clearElt(); } + /// Set type index + void SetTypeIdx(int i) { oidx_ = i; } /// \return default LJ parameters - LJparmType const& LJ() const { return lj_; } + LJparmType const& LJ() const { return lj_; } + /// \return LJ 1-4 parameters + LJparmType const& LJ14() const { return lj14_; } + /// \return True if LJ parameters have been set + bool HasLJ() const { return hasLJ_; } + /// \return True if LJ 1-4 parameters have been set + bool HasLJ14() const { return hasLJ14_; } /// \return Atom mass in amu - double Mass() const { return mass_; } + double Mass() const { return mass_; } + /// \return Atomic polarizability in Ang^3 + double Polarizability() const { return polarizability_; } /// \return Original atom type index. Useful when checking for off-diagonal NB parameters. - int OriginalIdx() const { return oidx_; } - /// \return true if LJ params are less than incoming - bool operator<(AtomType const& rhs) const { return lj_ < rhs.lj_; } - /// \return true if LJ params are the same - bool operator==(AtomType const& rhs) const { return lj_ == rhs.lj_; } - /// Used to modify LJ params - LJparmType& SetLJ() { return lj_; } - /// \return data size - static size_t DataSize() { return (3*sizeof(double)) + sizeof(int); } + int OriginalIdx() const { return oidx_; } + /// \return Atom hybridization + HybridizationType Hybridization() const { return hybrid_; } + /// \return Atom type element string + const char* EltStr() const { return elt_; } + /// \return true if mass, polarizability, or LJ params are less than incoming + bool operator<(AtomType const& rhs) const { + if (FEQ(mass_, rhs.mass_)) { + if (FEQ(polarizability_, rhs.polarizability_)) { + if (lj_ == rhs.lj_) { + return lj14_ < rhs.lj14_; + } else { + return lj_ < rhs.lj_; + } + } else { + return polarizability_ < rhs.polarizability_; + } + } else { + return mass_ < rhs.mass_; + } + } + /// \return true if mass, polarizability, and LJ params are the same + bool operator==(AtomType const& rhs) const { + return (FEQ(mass_, rhs.mass_) && + FEQ(polarizability_, rhs.polarizability_) && + lj_ == rhs.lj_ && + lj14_ == rhs.lj14_); + } + /// Set LJ params + void SetLJ(LJparmType const& lj) { lj_ = lj; hasLJ_ = true; } + /// Set LJ 1-4 parameters + void SetLJ14(LJparmType const& lj) { lj14_ = lj; hasLJ14_ = true; } + /// Set atom hybridization + void SetHybridization(HybridizationType h) { hybrid_ = h; } + /// Set atom type element string + void SetEltStr(const char* elt) { elt_[0] = elt[0]; elt_[1] = elt[1]; } + /// \return data size (2 double for LJparmType) + static size_t DataSize() { return (4*sizeof(double)) + sizeof(int); } + /// Assign atom type. Do not overwrite LJ params/hybridization if incoming type does not have them set. + AtomType& operator=(AtomType const& rhs) { + if (this == &rhs) return *this; + //mprintf("DEBUG: Assign elt %c%c oldHasLj=%i oldR=%f newHasLj=%i newR=%f\n", elt_[0], elt_[1], (int)hasLJ_, lj_.Radius(), (int)rhs.hasLJ_, rhs.lj_.Radius()); + if (rhs.hasLJ_) { lj_ = rhs.lj_; hasLJ_ = true; } + if (rhs.hasLJ14_) { lj14_ = rhs.lj14_; hasLJ14_ = true; } + //mprintf("DEBUG: After Assign elt %c%c newR=%f\n", elt_[0], elt_[1], lj_.Radius()); + mass_ = rhs.mass_; + polarizability_ = rhs.polarizability_; + oidx_ = rhs.oidx_; + if (rhs.hybrid_ != UNKNOWN_HYBRIDIZATION) + hybrid_ = rhs.hybrid_; + elt_[0] = rhs.elt_[0]; + elt_[1] = rhs.elt_[1]; + //elt_[2] = rhs.elt_[2]; + //hasLJ_ = rhs.hasLJ_; + //hasLJ14_ = rhs.hasLJ14_; + return *this; + } + /// COPY CONSTRUCTOR + AtomType(AtomType const& rhs) : + lj_(rhs.lj_), + lj14_(rhs.lj14_), + mass_(rhs.mass_), + polarizability_(rhs.polarizability_), + oidx_(rhs.oidx_), + hybrid_(rhs.hybrid_), + hasLJ_(rhs.hasLJ_), + hasLJ14_(rhs.hasLJ14_) + { + elt_[0] = rhs.elt_[0]; + elt_[1] = rhs.elt_[1]; + elt_[2] = '\0'; + } private: - LJparmType lj_; ///< Default Lennard-Jones parameters (always valid for self). - double mass_; ///< Mass in amu - int oidx_; ///< Original atom type index. TODO deprecate + LJparmType lj_; ///< Default Lennard-Jones parameters (always valid for self). + LJparmType lj14_; ///< Lennard-Jones 1-4 parameters (optional). + double mass_; ///< Mass in amu + double polarizability_; ///< Atomic polarizability in Ang^3 + int oidx_; ///< Original atom type index, for indexing nonbond parameters. + HybridizationType hybrid_; ///< Atom hybridization + char elt_[3]; ///< 2 character atom type element string (and null char) + bool hasLJ_; ///< True if this type has LJ 1-4 parameters. + bool hasLJ14_; ///< True if this type has LJ 1-4 parameters. }; #endif diff --git a/src/Box.cpp b/src/Box.cpp index d7d67793eb..327d175fad 100644 --- a/src/Box.cpp +++ b/src/Box.cpp @@ -311,10 +311,15 @@ void Box::SetNoBox() { cellVolume_ = 0; } +/** Print box info to STDOUT preceded by text. */ +void Box::PrintInfo(const char* desc) const { + mprintf("%sBox: '%s' XYZ= { %8.3f %8.3f %8.3f } ABG= { %6.2f %6.2f %6.2f }\n", desc, + CellShapeName(), box_[0], box_[1], box_[2], box_[3], box_[4], box_[5]); +} + /** Print box info to STDOUT. */ void Box::PrintInfo() const { - mprintf("\tBox: '%s' XYZ= { %8.3f %8.3f %8.3f } ABG= { %6.2f %6.2f %6.2f }\n", - CellShapeName(), box_[0], box_[1], box_[2], box_[3], box_[4], box_[5]); + PrintInfo("\t"); } // ----------------------------------------------------------------------------- diff --git a/src/Box.h b/src/Box.h index 5ce56b23cd..b32c2abdf1 100644 --- a/src/Box.h +++ b/src/Box.h @@ -69,8 +69,10 @@ class Box { /// \return vector containing reciprocal lengths from fractional cell matrix Vec3 RecipLengths() const; - /// Print Box info to STDOUT + /// Print Box info to STDOUT preceded by a tab void PrintInfo() const; + /// Print Box info to STDOUT preceded by given text + void PrintInfo(const char*) const; /// Print box debug info to stdout void PrintDebug(const char*) const; /// \return Name of current cell shape diff --git a/src/BufferedFrame.cpp b/src/BufferedFrame.cpp index 9918ee9163..633ed4f8cf 100644 --- a/src/BufferedFrame.cpp +++ b/src/BufferedFrame.cpp @@ -144,7 +144,7 @@ int BufferedFrame::AttemptReadFrame() { */ bool BufferedFrame::ReadFrame() { int nread = Read(buffer_, frameSize_); - //mprintf("DEBUG: %i bytes read.\n", nread); + //mprintf("DEBUG: %i bytes read, frameSize %zu.\n", nread, frameSize_); if (nread != (int)frameSize_) { if (nread < 0) mprinterr("Error: Read %i bytes, expected %zu\n", nread, frameSize_); diff --git a/src/BufferedFrame.h b/src/BufferedFrame.h index 1745ae30d2..309fba4f20 100644 --- a/src/BufferedFrame.h +++ b/src/BufferedFrame.h @@ -68,6 +68,10 @@ class BufferedFrame : public CpptrajFile { const char* Buffer() const { return buffer_; } /// \return Total output file size for given number of frames. size_t OutputFileSize(unsigned int n) const { return offset_ + (frameSize_ * n); } + /// \return Number of errors since last time WriteFrame() was called. + int ErrorCount() const { return errorCount_; } + /// \return Number of character overflows since last time WriteFrame() was called. + int OverflowCount() const { return overflowCount_; } private: size_t CalcFrameSize(int) const; inline void AdvanceCol(); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9d5582c206..ee8ef30ee8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -115,6 +115,7 @@ endif() add_library(cpptraj_common_obj OBJECT ${CPPTRAJ_COMMON_SOURCES}) add_subdirectory(Cluster) add_subdirectory(Structure) +add_subdirectory(Parm) add_subdirectory(Energy) make_pic_if_needed(cpptraj_common_obj) diff --git a/src/CharmmParamFile.cpp b/src/CharmmParamFile.cpp index f89f9fe086..27f32dc43a 100644 --- a/src/CharmmParamFile.cpp +++ b/src/CharmmParamFile.cpp @@ -1,10 +1,11 @@ #include "CharmmParamFile.h" -#include "CpptrajStdio.h" -#include "StringRoutines.h" // RemoveTrailingWhitespace() #include "ArgList.h" -#include "Constants.h" #include "BufferedLine.h" -#include "ParameterSet.h" +#include "Constants.h" +#include "CpptrajStdio.h" +#include "StringRoutines.h" // RemoveTrailingWhitespace() +#include "Parm/DihedralParmSet.h" +#include "Parm/ParameterSet.h" static inline std::string Input(const char* line) { std::string input; @@ -62,7 +63,8 @@ static inline bool ChmCmd(std::string const& cmd, const char* key) { } /** Read CHARMM parameters from specified file into given parameter set. */ -int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int debugIn) const { +int CharmmParamFile::ReadParams(Cpptraj::Parm::ParameterSet& prm, FileName const& nameIn, int debugIn) const { + using namespace Cpptraj::Parm; BufferedLine infile; mprintf("\tReading CHARMM parameters from '%s'\n", nameIn.full()); @@ -82,6 +84,12 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d std::string currentResName; double currentResQ = 0.0; + // Set wildcard character for dihedrals and impropers + prm.DP().SetWildcard('X'); + prm.IP().SetWildcard('X'); + DihedralParmSet dihPrm( debugIn ); + DihedralParmSet impPrm( debugIn ); + while (ReadInput(input, infile)) { if (input.empty()) continue; if (input[0] == '*') { @@ -118,10 +126,10 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d args.MarkArg(0); args.MarkArg(1); args.MarkArg(2); - ParameterHolders::RetType ret = prm.AT().AddParm( TypeNameHolder(args[2]), + Cpptraj::Parm::RetType ret = prm.AT().AddParm( TypeNameHolder(args[2]), AtomType(args.getNextDouble(0)), true ); - if (ret == ParameterHolders::UPDATED) + if (ret == Cpptraj::Parm::UPDATED) mprintf("Warning: Redefining atom type %s\n", args[2].c_str()); } else if (ChmCmd(args[0], "ATOM")) { if (mode != TOP) { @@ -220,7 +228,8 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d if (args.Nargs() < 7) mprintf("Warning: Bad syntax for dihedral parameter on line %i: %s\n", infile.LineNumber(), line); else { - TypeNameHolder types(4, "X"); // X is wildcard character + //TypeNameHolder types(4, "X"); // X is wildcard character + TypeNameHolder types(4); types.AddName( args.GetStringNext() ); types.AddName( args.GetStringNext() ); types.AddName( args.GetStringNext() ); @@ -229,9 +238,9 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d double pn = args.getNextDouble(0); double phase = args.getNextDouble(0) * Constants::DEGRAD; if (currentSection == DIHEDRALS) - prm.DP().AddParm(types, DihedralParmType(pk, pn, phase, 1.0, 1.0), false); + dihPrm.AddDihParm(types, DihedralParmType(pk, pn, phase, 1.0, 1.0), false); else - prm.IP().AddParm(types, DihedralParmType(pk, pn, phase), false); + impPrm.AddDihParm(types, DihedralParmType(pk, pn, phase), false); } } else if (currentSection == NONBONDED) { // NONBONDED PARAMETERS TODO do not add if not already present @@ -265,8 +274,7 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d if (it->first[0].Match( at )) { if (debugIn > 0) mprintf("DEBUG: NB wildcard match: '%s' matches '%s'\n", *(it->first[0]), *at); - it->second.SetLJ().SetRadius( radius ); - it->second.SetLJ().SetDepth( -epsilon ); + it->second.SetLJ( LJparmType(radius, -epsilon) ); } } } else { @@ -276,8 +284,7 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d mprintf("Warning: Nonbond parameters defined for type '%s' without MASS card." " Skipping.\n", *at); } else { - it->second.SetLJ().SetRadius( radius ); - it->second.SetLJ().SetDepth( -epsilon ); + it->second.SetLJ( LJparmType(radius, -epsilon) ); } } } @@ -286,6 +293,9 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d } // END line not blank } // END if not title or comment } // END loop over file read + // Add dihedrals/impropers + if (dihPrm.ToDihParm(prm.DP())) return 1; + if (impPrm.ToImpParm(prm.IP())) return 1; if (debugIn > 0) prm.Debug(); @@ -293,7 +303,8 @@ int CharmmParamFile::ReadParams(ParameterSet& prm, FileName const& nameIn, int d } /** Write CHARMM parameters from specified set into given file. */ -int CharmmParamFile::WriteParams(ParameterSet& prm, FileName const& nameIn, int debugIn) const { +int CharmmParamFile::WriteParams(Cpptraj::Parm::ParameterSet& prm, FileName const& nameIn, int debugIn) const { + using namespace Cpptraj::Parm; CpptrajFile outfile; if (outfile.OpenWrite(nameIn)) return 1; // Title diff --git a/src/CharmmParamFile.h b/src/CharmmParamFile.h index b2b5cdaf73..e22424d136 100644 --- a/src/CharmmParamFile.h +++ b/src/CharmmParamFile.h @@ -1,15 +1,19 @@ #ifndef INC_CHARMMPARAMFILE_H #define INC_CHARMMPARAMFILE_H #include <string> -class ParameterSet; class BufferedLine; class FileName; +namespace Cpptraj { +namespace Parm { +class ParameterSet; +} +} /// Used to read in CHARMM parameters from CHARMM parameter file. class CharmmParamFile { public: CharmmParamFile() {} - int ReadParams(ParameterSet&, FileName const&, int) const; - int WriteParams(ParameterSet&, FileName const&, int) const; + int ReadParams(Cpptraj::Parm::ParameterSet&, FileName const&, int) const; + int WriteParams(Cpptraj::Parm::ParameterSet&, FileName const&, int) const; private: int ReadInput(std::string&, BufferedLine&) const; }; diff --git a/src/Cluster/CMakeLists.txt b/src/Cluster/CMakeLists.txt index d15bf6c1ed..81f908344b 100644 --- a/src/Cluster/CMakeLists.txt +++ b/src/Cluster/CMakeLists.txt @@ -21,8 +21,8 @@ target_sources(cpptraj_common_obj PRIVATE ${CMAKE_CURRENT_LIST_DIR}/Metric_Matrix2D.cpp ${CMAKE_CURRENT_LIST_DIR}/Metric_QuatRMSD.cpp ${CMAKE_CURRENT_LIST_DIR}/Metric_RMS.cpp - ${CMAKE_CURRENT_LIST_DIR}/Metric_SRMSD.cpp ${CMAKE_CURRENT_LIST_DIR}/Metric_Scalar.cpp + ${CMAKE_CURRENT_LIST_DIR}/Metric_SRMSD.cpp ${CMAKE_CURRENT_LIST_DIR}/Metric_Torsion.cpp ${CMAKE_CURRENT_LIST_DIR}/Node.cpp ${CMAKE_CURRENT_LIST_DIR}/Output.cpp diff --git a/src/Cluster/Control.h b/src/Cluster/Control.h index 557da5a7e1..27e0262a9d 100644 --- a/src/Cluster/Control.h +++ b/src/Cluster/Control.h @@ -15,6 +15,10 @@ class DataFile; class DataFileList; class DataSetList; namespace Cpptraj { +/** @brief The namespace for all clustering-related classes. + * + * All cluster classes and related functions belong in this namespace. + */ namespace Cluster { class Algorithm; class Results; diff --git a/src/Cluster/Makefile b/src/Cluster/Makefile index b437803b63..7d7838da1f 100644 --- a/src/Cluster/Makefile +++ b/src/Cluster/Makefile @@ -8,6 +8,11 @@ DEL_FILE = /bin/rm -f # Objects OBJECTS=$(CLUSTER_SOURCES:.cpp=.o) +# General rules +.cpp.o: + $(VB)echo CXX $< + $(VB)$(CXX) $(DIRECTIVES) $(CPPTRAJ_INC) $(CXXFLAGS) -c -o $@ $< + # Default target: objects all: $(OBJECTS) diff --git a/src/Cluster/clusterdepend b/src/Cluster/clusterdepend index fc231bff85..77b22ca3a2 100644 --- a/src/Cluster/clusterdepend +++ b/src/Cluster/clusterdepend @@ -1,5 +1,5 @@ Algorithm.o : Algorithm.cpp ../CpptrajStdio.h Algorithm.h CentroidArray.h Cframes.h Metric.h MetricArray.h Node.h -Algorithm_DBscan.o : Algorithm_DBscan.cpp ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../AtomType.h ../BaseIOtype.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataSet.h ../DataSetList.h ../DataSet_2D.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_MatrixDbl.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../ProgressBar.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Algorithm.h Algorithm_DBscan.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h +Algorithm_DBscan.o : Algorithm_DBscan.cpp ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../BaseIOtype.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataSet.h ../DataSetList.h ../DataSet_2D.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_MatrixDbl.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../ProgressBar.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../Unit.h ../Vec3.h Algorithm.h Algorithm_DBscan.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h Algorithm_DPeaks.o : Algorithm_DPeaks.cpp ../ArgList.h ../AssociatedData.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_1D.h ../DataSet_Mesh.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../Parallel.h ../ProgressBar.h ../Range.h ../Spline.h ../TextFormat.h Algorithm.h Algorithm_DPeaks.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h Algorithm_HierAgglo.o : Algorithm_HierAgglo.cpp ../ArgList.h ../ArrayIterator.h ../CpptrajFile.h ../CpptrajStdio.h ../FileIO.h ../FileName.h ../Matrix.h ../Parallel.h ../ProgressBar.h ../Timer.h Algorithm.h Algorithm_HierAgglo.h CentroidArray.h Cframes.h DynamicMatrix.h List.h Metric.h MetricArray.h Node.h Algorithm_Kmeans.o : Algorithm_Kmeans.cpp ../ArgList.h ../CpptrajFile.h ../CpptrajStdio.h ../FileIO.h ../FileName.h ../Parallel.h ../ProgressBar.h ../Random.h Algorithm.h Algorithm_Kmeans.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h @@ -9,22 +9,22 @@ Centroid_Coord.o : Centroid_Coord.cpp ../Atom.h ../AtomMask.h ../Box.h ../Coordi Cframes.o : Cframes.cpp Cframes.h Cmatrix_Binary.o : Cmatrix_Binary.cpp ../CpptrajFile.h ../CpptrajStdio.h ../FileIO.h ../FileName.h ../Parallel.h Cframes.h Cmatrix_Binary.h Cmatrix_NC.o : Cmatrix_NC.cpp ../CpptrajStdio.h ../FileName.h ../NC_Routines.h Cframes.h Cmatrix_NC.h -Control.o : Control.cpp ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../AtomType.h ../BaseIOtype.h ../Box.h ../BufferedLine.h ../Cluster/Cframes.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataFileList.h ../DataSet.h ../DataSetList.h ../DataSet_1D.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_PairwiseCache.h ../DataSet_float.h ../DataSet_integer.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../OnlineVarT.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Random.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../TrajectoryFile.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Algorithm.h Algorithm_DBscan.h Algorithm_DPeaks.h Algorithm_HierAgglo.h Algorithm_Kmeans.h BestReps.h CentroidArray.h Cframes.h Control.h DBI.h DrawGraph.h DynamicMatrix.h List.h Metric.h MetricArray.h Node.h Output.h PseudoF.h Results.h Results_Coords.h Sieve.h Silhouette.h +Control.o : Control.cpp ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../BaseIOtype.h ../Box.h ../BufferedLine.h ../Cluster/Cframes.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataFileList.h ../DataSet.h ../DataSetList.h ../DataSet_1D.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_PairwiseCache.h ../DataSet_float.h ../DataSet_integer.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../OnlineVarT.h ../Parallel.h ../ParameterTypes.h ../Random.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../TrajectoryFile.h ../Unit.h ../Vec3.h Algorithm.h Algorithm_DBscan.h Algorithm_DPeaks.h Algorithm_HierAgglo.h Algorithm_Kmeans.h BestReps.h CentroidArray.h Cframes.h Control.h DBI.h DrawGraph.h DynamicMatrix.h List.h Metric.h MetricArray.h Node.h Output.h PseudoF.h Results.h Results_Coords.h Sieve.h Silhouette.h DBI.o : DBI.cpp CentroidArray.h Cframes.h DBI.h List.h Metric.h MetricArray.h Node.h DrawGraph.o : DrawGraph.cpp ../AssociatedData.h ../Atom.h ../Constants.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_1D.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../NameType.h ../PDBfile.h ../Parallel.h ../Range.h ../Residue.h ../SymbolExporting.h ../TextFormat.h ../Vec3.h Cframes.h DrawGraph.h Metric.h MetricArray.h DynamicMatrix.o : DynamicMatrix.cpp ../ArrayIterator.h ../CpptrajStdio.h ../Matrix.h DynamicMatrix.h List.o : List.cpp ../AssociatedData.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_1D.h ../DataSet_integer.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../Parallel.h ../ProgressBar.h ../Range.h ../TextFormat.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h -MetricArray.o : MetricArray.cpp ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMap.h ../AtomMask.h ../AtomType.h ../BaseIOtype.h ../Box.h ../Cluster/Cframes.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataFileList.h ../DataSet.h ../DataSetList.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_PairwiseCache.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../Hungarian.h ../MapAtom.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../OnlineVarT.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../ProgressBar.h ../QuaternionRMSD.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../SymmetricRmsdCalc.h ../TextFormat.h ../Timer.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h CentroidArray.h Metric.h MetricArray.h Metric_DME.h Metric_QuatRMSD.h Metric_RMS.h Metric_SRMSD.h Metric_Scalar.h Metric_Torsion.h -Metric_DME.o : Metric_DME.cpp ../AssociatedData.h ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_DME.h +MetricArray.o : MetricArray.cpp ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMap.h ../AtomMask.h ../BaseIOtype.h ../Box.h ../Cluster/Cframes.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataFileList.h ../DataSet.h ../DataSetList.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_PairwiseCache.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../Hungarian.h ../MapAtom.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../OnlineVarT.h ../Parallel.h ../ParameterTypes.h ../ProgressBar.h ../QuaternionRMSD.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../SymmetricRmsdCalc.h ../TextFormat.h ../Timer.h ../Topology.h ../Unit.h ../Vec3.h CentroidArray.h Metric.h MetricArray.h Metric_DME.h Metric_QuatRMSD.h Metric_RMS.h Metric_SRMSD.h Metric_Scalar.h Metric_Torsion.h +Metric_DME.o : Metric_DME.cpp ../AssociatedData.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Topology.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_DME.h Metric_Matrix2D.o : Metric_Matrix2D.cpp ../AssociatedData.h ../CpptrajFile.h ../DataSet.h ../DataSet_2D.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../Parallel.h ../Range.h ../TextFormat.h Metric.h Metric_Matrix2D.h -Metric_QuatRMSD.o : Metric_QuatRMSD.cpp ../AssociatedData.h ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../QuaternionRMSD.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_QuatRMSD.h -Metric_RMS.o : Metric_RMS.cpp ../AssociatedData.h ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_RMS.h -Metric_SRMSD.o : Metric_SRMSD.cpp ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMap.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../Hungarian.h ../MapAtom.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../SymmetricRmsdCalc.h ../TextFormat.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_SRMSD.h +Metric_QuatRMSD.o : Metric_QuatRMSD.cpp ../AssociatedData.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../QuaternionRMSD.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Topology.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_QuatRMSD.h +Metric_RMS.o : Metric_RMS.cpp ../AssociatedData.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Topology.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_RMS.h +Metric_SRMSD.o : Metric_SRMSD.cpp ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMap.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_Coords.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../Hungarian.h ../MapAtom.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../SymmetricRmsdCalc.h ../TextFormat.h ../Topology.h ../Unit.h ../Vec3.h Centroid.h Centroid_Coord.h Cframes.h Metric.h Metric_SRMSD.h Metric_Scalar.o : Metric_Scalar.cpp ../AssociatedData.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_1D.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../Parallel.h ../Range.h ../TextFormat.h Centroid.h Centroid_Num.h Cframes.h Metric.h Metric_Scalar.h Metric_Torsion.o : Metric_Torsion.cpp ../AssociatedData.h ../Constants.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSet_1D.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../Parallel.h ../Range.h ../TextFormat.h Centroid.h Centroid_Num.h Cframes.h Metric.h Metric_Torsion.h Node.o : Node.cpp ../AssociatedData.h ../CpptrajFile.h ../DataSet.h ../DataSet_1D.h ../DataSet_float.h ../DataSet_integer.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../Parallel.h ../Range.h ../TextFormat.h CentroidArray.h Cframes.h Metric.h MetricArray.h Node.h Output.o : Output.cpp ../ArrayIterator.h ../CpptrajFile.h ../CpptrajStdio.h ../FileIO.h ../FileName.h ../Matrix.h ../Parallel.h ../Timer.h Algorithm.h BestReps.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h Output.h PseudoF.o : PseudoF.cpp ../Constants.h ../CpptrajStdio.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h PseudoF.h -Results_Coords.o : Results_Coords.cpp ../ActionFrameCounter.h ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMap.h ../AtomMask.h ../AtomType.h ../BaseIOtype.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSetList.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../Hungarian.h ../MapAtom.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../OutputTrajCommon.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../SymmetricRmsdCalc.h ../TextFormat.h ../Timer.h ../Topology.h ../TrajectoryFile.h ../Trajout_Single.h ../TypeNameHolder.h ../Unit.h ../Vec3.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Metric_DME.h Metric_RMS.h Metric_SRMSD.h Node.h Results.h Results_Coords.h +Results_Coords.o : Results_Coords.cpp ../ActionFrameCounter.h ../ArgList.h ../ArrayIterator.h ../AssociatedData.h ../Atom.h ../AtomMap.h ../AtomMask.h ../BaseIOtype.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSetList.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../Dimension.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../Hungarian.h ../MapAtom.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../OutputTrajCommon.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../SymmetricRmsdCalc.h ../TextFormat.h ../Timer.h ../Topology.h ../TrajectoryFile.h ../Trajout_Single.h ../Unit.h ../Vec3.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Metric_DME.h Metric_RMS.h Metric_SRMSD.h Node.h Results.h Results_Coords.h Sieve.o : Sieve.cpp ../AssociatedData.h ../Cluster/Cframes.h ../CpptrajFile.h ../DataSet.h ../DataSet_PairwiseCache.h ../Dimension.h ../FileIO.h ../FileName.h ../MetaData.h ../Parallel.h ../Random.h ../Range.h ../TextFormat.h Cframes.h Sieve.h Silhouette.o : Silhouette.cpp ../CpptrajFile.h ../CpptrajStdio.h ../FileIO.h ../FileName.h ../OnlineVarT.h ../Parallel.h CentroidArray.h Cframes.h List.h Metric.h MetricArray.h Node.h Silhouette.h diff --git a/src/Cluster/clusterfiles b/src/Cluster/clusterfiles index f32ae977db..4706ea9a0b 100644 --- a/src/Cluster/clusterfiles +++ b/src/Cluster/clusterfiles @@ -21,8 +21,8 @@ CLUSTER_SOURCES= \ Metric_Matrix2D.cpp \ Metric_QuatRMSD.cpp \ Metric_RMS.cpp \ - Metric_SRMSD.cpp \ Metric_Scalar.cpp \ + Metric_SRMSD.cpp \ Metric_Torsion.cpp \ Node.cpp \ Output.cpp \ diff --git a/src/CmapParmHolder.cpp b/src/CmapParmHolder.cpp new file mode 100644 index 0000000000..ec985b5985 --- /dev/null +++ b/src/CmapParmHolder.cpp @@ -0,0 +1,89 @@ +#include "CmapParmHolder.h" +#include "CpptrajStdio.h" +#include "ParameterTypes.h" + +//using namespace Cpptraj::Parm; + +/** CONSTRUCTOR */ +CmapParmHolder::CmapParmHolder() {} + +/** Update/add to CMAP parameters. + * CMAP terms are different in that they are applied via residue name instead + * of atom type, hence the separate routine. + */ +Cpptraj::Parm::RetType CmapParmHolder::AddParm(CmapGridType const& cmap1, bool allowUpdate, int debugIn) { + typedef std::vector<std::string> Sarray; + enum ResMatchType { NO_MATCH = 0, FULL_MATCH, PARTIAL_MATCH }; + // Does a CMAP for any of the residues exist? + ResMatchType mtype = NO_MATCH; + CmapGridArray::iterator currentCmap = CMAP_.end(); + for (CmapGridArray::iterator jt = CMAP_.begin(); jt != CMAP_.end(); ++jt) + { + // First check if atom names match. + // Order is important. + bool atomNamesMatch = true; + if (cmap1.AtomNames().size() != jt->AtomNames().size()) + atomNamesMatch = false; + else { + for (unsigned int idx = 0; idx != cmap1.AtomNames().size(); idx++) { + if (cmap1.AtomNames()[idx] != jt->AtomNames()[idx]) { + atomNamesMatch = false; + break; + } + } + } + if (!atomNamesMatch) continue; + // How many residue names in the incoming cmap match this cmap (jt)? + // Order not important. + int nMatch = 0; + for (Sarray::const_iterator rni = cmap1.ResNames().begin(); rni != cmap1.ResNames().end(); ++rni) + { + for (Sarray::const_iterator rnj = jt->ResNames().begin(); rnj != jt->ResNames().end(); ++rnj) + { + if (*rni == *rnj) { + nMatch++; + break; + } + } // END loop over cmap j res names + } // END loop over cmap i res names + if (nMatch == (int)jt->ResNames().size()) { + mtype = FULL_MATCH; + currentCmap = jt; + break; + } else if (nMatch > 0) { + mtype = PARTIAL_MATCH; + currentCmap = jt; + break; + } + } // END loop over existing CMAP terms + // TODO match atom types? + if (mtype == PARTIAL_MATCH) { + mprinterr("Internal Error: Partial match between new CMAP '%s' and existing CMAP '%s'\n" + "Internal Error: Not yet set up to handle this kind of parameter update.\n", + cmap1.Title().c_str(), currentCmap->Title().c_str()); + return Cpptraj::Parm::ERR; + } else if (mtype == FULL_MATCH) { + mprintf("DEBUG: Potential match between new CMAP '%s' and existing CMAP '%s'\n", + cmap1.Title().c_str(), currentCmap->Title().c_str()); + // Is this parameter the same? + if (currentCmap->GridMatches( cmap1 )) { + mprintf("DEBUG: CMAP parameter already present.\n"); + return Cpptraj::Parm::SAME; + } else { + if (allowUpdate) { + mprintf("DEBUG: Update of CMAP parameter.\n"); + *currentCmap = cmap1; + return Cpptraj::Parm::UPDATED; + } else { + mprintf("DEBUG: Update of CMAP parameter NOT ALLOWED.\n"); + return Cpptraj::Parm::ERR; + } + } + } + // NO_MATCH + if (debugIn > 0) + mprintf("DEBUG: CMAP '%s' is a new CMAP.\n", cmap1.Title().c_str()); + CMAP_.push_back( cmap1 ); + return Cpptraj::Parm::ADDED; +} + diff --git a/src/CmapParmHolder.h b/src/CmapParmHolder.h new file mode 100644 index 0000000000..96545e461a --- /dev/null +++ b/src/CmapParmHolder.h @@ -0,0 +1,36 @@ +#ifndef INC_PARM_CMAPPARMHOLDER_H +#define INC_PARM_CMAPPARMHOLDER_H +class CmapGridType; +#include <vector> +#include "Parm/ParmEnum.h" +//namespace Cpptraj { +//namespace Parm { +/// Hold CMAP terms +class CmapParmHolder { + typedef std::vector<CmapGridType> Carray; + public: + CmapParmHolder(); + + /// const iterator + typedef Carray::const_iterator const_iterator; + /// const begin iterator + const_iterator begin() const { return CMAP_.begin(); } + /// const end iterator + const_iterator end() const { return CMAP_.end(); } + /// \return Number of CMAP terms + Carray::size_type size() const { return CMAP_.size(); } + /// \return true if no CMAP terms + bool empty() const { return CMAP_.empty(); } + /// \return CMAP at index + CmapGridType const& operator[](int idx) const { return CMAP_[idx]; } + + /// \return Modifiable CMAP at index + + /// Add/update cmap term; optionally allow update, pass in debug level + Cpptraj::Parm::RetType AddParm(CmapGridType const&, bool, int); + private: + Carray CMAP_; +}; +//} +//} +#endif diff --git a/src/Command.cpp b/src/Command.cpp index fd1f8521e2..5fb2f4d163 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -33,6 +33,7 @@ #include "Exec_ReadInput.h" #include "Exec_RunAnalysis.h" #include "Exec_SortEnsembleData.h" +#include "Exec_Source.h" #include "Exec_SequenceAlign.h" #include "Exec_ViewRst.h" #include "Exec_Set.h" @@ -58,6 +59,8 @@ #include "Exec_ExtendedComparison.h" #include "Exec_Zmatrix.h" #include "Exec_Sequence.h" +#include "Exec_Build.h" +#include "Exec_Mutate.h" // ----- TRAJECTORY ------------------------------------------------------------ #include "Exec_Traj.h" // ----- TOPOLOGY -------------------------------------------------------------- @@ -71,6 +74,7 @@ #include "Exec_ScaleDihedralK.h" #include "Exec_Top.h" #include "Exec_UpdateParameters.h" +#include "Exec_Desc.h" // ----- ACTION ---------------------------------------------------------------- #include "Action_Angle.h" #include "Action_Distance.h" @@ -265,6 +269,7 @@ void Command::Init() { Command::AddCmd( new Exec_SilenceActions(), Cmd::EXE, 1, "silenceactions" ); Command::AddCmd( new Exec_SequenceAlign(), Cmd::EXE, 1, "sequencealign" ); // hidden Command::AddCmd( new Exec_SortEnsembleData(),Cmd::EXE, 1, "sortensembledata" ); + Command::AddCmd( new Exec_Source(), Cmd::EXE, 1, "source" ); Command::AddCmd( new Exec_WriteDataFile(), Cmd::EXE, 2, "write", "writedata" ); Command::AddCmd( new Exec_UseDiskCache(), Cmd::EXE, 1, "usediskcache" ); Command::AddCmd( new Exec_ViewRst(), Cmd::EXE, 1, "viewrst" ); // hidden @@ -274,6 +279,7 @@ void Command::Init() { // SYSTEM Command::AddCmd( new Exec_System(), Cmd::EXE, 6, "gnuplot", "head", "less", "ls", "pwd", "xmgrace" ); // COORDS + Command::AddCmd( new Exec_Build(), Cmd::EXE, 1, "build" ); Command::AddCmd( new Exec_CatCrd(), Cmd::EXE, 1, "catcrd" ); Command::AddCmd( new Exec_CombineCoords(), Cmd::EXE, 1, "combinecrd" ); Command::AddCmd( new Exec_CrdAction(), Cmd::EXE, 1, "crdaction" ); @@ -284,6 +290,7 @@ void Command::Init() { Command::AddCmd( new Exec_Graft(), Cmd::EXE, 1, "graft"); Command::AddCmd( new Exec_LoadCrd(), Cmd::EXE, 1, "loadcrd" ); Command::AddCmd( new Exec_LoadTraj(), Cmd::EXE, 1, "loadtraj" ); + Command::AddCmd( new Exec_Mutate(), Cmd::EXE, 1, "mutate" ); Command::AddCmd( new Exec_PermuteDihedrals(), Cmd::EXE, 1, "permutedihedrals" ); Command::AddCmd( new Exec_PrepareForLeap(), Cmd::EXE, 1, "prepareforleap" ); Command::AddCmd( new Exec_RotateDihedral(), Cmd::EXE, 1, "rotatedihedral" ); @@ -304,6 +311,7 @@ void Command::Init() { Command::AddCmd( new Exec_Change(), Cmd::EXE, 1, "change" ); Command::AddCmd( new Exec_ChargeInfo(), Cmd::EXE, 1, "charge" ); Command::AddCmd( new Exec_CompareTop(), Cmd::EXE, 1, "comparetop" ); + Command::AddCmd( new Exec_Desc(), Cmd::EXE, 1, "desc" ); // HIDDEN Command::AddCmd( new Exec_DihedralInfo(),Cmd::EXE, 3,"dihedrals","dihedralinfo","printdihedrals"); Command::AddCmd( new Exec_HmassRepartition(),Cmd::EXE, 1, "hmassrepartition" ); Command::AddCmd( new Exec_ImproperInfo(),Cmd::EXE, 3,"impropers","improperinfo","printimpropers"); diff --git a/src/Constants.h b/src/Constants.h index f835a2aca2..5cc7c371fb 100644 --- a/src/Constants.h +++ b/src/Constants.h @@ -12,16 +12,25 @@ */ namespace Constants { // Various incarnations of PI - const double PI = 3.141592653589793; +# ifdef CPPTRAJ_USE_LEAP_PI + // NOTE: This lower-precision value of PI is ONLY for comparing results + // directly to LEaP output. It is obtained from LEaP's DEGTORAD + // constant 0.0174533 * 180. + const double PI = 3.141594; + const double DEGRAD = 0.0174533; + const double RADDEG = 1 / DEGRAD; +# else + const double PI = 3.141592653589793; + /// Convert degrees to radians + const double DEGRAD = 0.017453292519943295; // may have precision loss + /// Convert radians to degrees + const double RADDEG = 57.29577951308232; // may have precision loss +# endif const double TWOPI = 6.283185307179586; // may have precision loss const double FOURPI = 12.566370614359172; // may have precision loss const double FOURTHIRDSPI = 4.1887902047863909; // may have precision loss const double FOURFIFTHSPI = 2.5132741228718345; // may have precision loss const double PIOVER2 = 1.5707963267948966; // may have precision loss - /// Convert degrees to radians - const double DEGRAD = 0.017453292519943295; // may have precision loss - /// Convert radians to degrees - const double RADDEG = 57.29577951308232; // may have precision loss /// For checking floating point zero const double SMALL = 0.00000000000001; /// Gas constant in J/mol*K diff --git a/src/Cpptraj.cpp b/src/Cpptraj.cpp index c59b25f478..12f1f5ca78 100644 --- a/src/Cpptraj.cpp +++ b/src/Cpptraj.cpp @@ -139,6 +139,11 @@ void Cpptraj::Intro() const { } # endif mprintf("\n"); +#ifdef CPPTRAJ_USE_LEAP_PI + mprintf("Warning: CPPTRAJ was compiled with LEaP's value of PI.\n" + "Warning: This should only be used to compare directly to LEaP.\n" + "Warning: This will cause some test cases to fail.\n\n"); +#endif } void Cpptraj::Finalize() { @@ -270,6 +275,21 @@ std::string Cpptraj::Defines() { #endif #ifdef HAS_OPENMM defined_str.append(" -DHAS_OPENMM"); +#endif +#ifdef CPPTRAJ_USE_LEAP_PI + defined_str.append(" -DCPPTRAJ_USE_LEAP_PI"); +#endif +#ifdef NO_READLINE + defined_str.append(" -DNO_READLINE"); +#endif +#ifdef __HIP_PLATFORM_HCC__ + defined_str.append(" -D__HIP_PLATFORM_HCC__"); +#endif +#ifdef HAVE_FFTWD + defined_str.append(" -DHAVE_FFTWD"); +#endif +#ifdef ENABLE_DTR + defined_str.append(" -DENABLE_DTR"); #endif return defined_str; } diff --git a/src/DataFile.cpp b/src/DataFile.cpp index fdff22684b..1062f8b7fe 100644 --- a/src/DataFile.cpp +++ b/src/DataFile.cpp @@ -34,6 +34,10 @@ #include "DataIO_Numpy.h" #include "DataIO_AmberPrep.h" #include "DataIO_AmberLib.h" +#include "DataIO_AmberFF.h" +#include "DataIO_AmberFrcmod.h" +#include "DataIO_LeapRC.h" +#include "DataIO_Coords.h" // CONSTRUCTOR DataFile::DataFile() : @@ -88,7 +92,11 @@ const FileTypes::AllocToken DataFile::DF_AllocArray[] = { { "Amber Energy File", 0, 0, DataIO_AmberEne::Alloc}, { "Numpy array", 0, 0, DataIO_Numpy::Alloc}, { "Amber Prep File", DataIO_AmberPrep::ReadHelp, 0, DataIO_AmberPrep::Alloc}, - { "Amber OFF File", 0, 0, DataIO_AmberLib::Alloc}, + { "Amber OFF File", DataIO_AmberLib::ReadHelp, 0, DataIO_AmberLib::Alloc}, + { "Amber Force Field", DataIO_AmberFF::ReadHelp, 0, DataIO_AmberFF::Alloc}, + { "Amber Frcmod File", 0, 0, DataIO_AmberFrcmod::Alloc}, + { "Amber LEaP RC File", 0, 0, DataIO_LeapRC::Alloc}, + { "Coordinates", 0, 0, DataIO_Coords::Alloc}, { "Unknown Data file", 0, 0, 0 } }; @@ -118,6 +126,10 @@ const FileTypes::KeyToken DataFile::DF_KeyArray[] = { { AMBERPREP, "prepin", ".prepin" }, { AMBERLIB, "off", ".off" }, { AMBERLIB, "off", ".lib" }, + { AMBERFF, "amberff", ".parm" }, + { AMBERFRCMOD, "frcmod", ".frcmod" }, + { AMBERLEAPRC, "leaprc", ".leaprc" }, + { COORDSDATA, "coords", ".coords" }, { UNKNOWN_DATA, 0, 0 } }; @@ -139,6 +151,7 @@ const FileTypes::KeyToken DataFile::DF_WriteKeyArray[] = { { CHARMMRTFPRM, "charmmrtfprm", ".prm" }, { PEAKS, "peaks", ".peaks" }, { NETCDFDATA, "netcdf", ".nc" }, + { AMBERFF, "amberff",".parm"}, { UNKNOWN_DATA, 0, 0 } }; diff --git a/src/DataFile.h b/src/DataFile.h index f5f6b0b92a..c5ce78126b 100644 --- a/src/DataFile.h +++ b/src/DataFile.h @@ -18,7 +18,8 @@ class DataFile { DATAFILE=0, XMGRACE, GNUPLOT, XPLOR, OPENDX, REMLOG, MDOUT, EVECS, VECTRAJ, XVG, CCP4, CHARMMREPD, CHARMMFASTREP, CHARMMOUT, CPOUT, CHARMMRTFPRM, CMATRIX_BINARY, CMATRIX_NETCDF, PEAKS, - NETCDFDATA, AMBERENE, NUMPY, AMBERPREP, AMBERLIB, + NETCDFDATA, AMBERENE, NUMPY, AMBERPREP, AMBERLIB, AMBERFF, AMBERFRCMOD, + AMBERLEAPRC, COORDSDATA, UNKNOWN_DATA }; DataFile(); diff --git a/src/DataIO.cpp b/src/DataIO.cpp index c4bef3771e..4c46d76bde 100644 --- a/src/DataIO.cpp +++ b/src/DataIO.cpp @@ -238,3 +238,13 @@ DataSet* DataIO::DetermineMatrixType(std::vector<double> const& matrixArray, int } return ds; } + +/** Clear any sets added by AddedByMe() */ +void DataIO::ClearAddedByMe() { + mySets_.clear(); +} + +/** Note a set added by this DataIO */ +void DataIO::AddedByMe(DataSet* ds) { + mySets_.push_back( ds ); +} diff --git a/src/DataIO.h b/src/DataIO.h index 3f36d18b7b..f57fbf8054 100644 --- a/src/DataIO.h +++ b/src/DataIO.h @@ -31,7 +31,21 @@ class DataIO : public BaseIOtype { int XcolWidth() const { return xcol_width_; } /// \return Current x column precision int XcolPrec() const { return xcol_prec_; } + + typedef std::vector<DataSet*>::const_iterator set_iterator; + /// \return iterator to beginning of sets added by last ReadData() call + set_iterator added_begin() const { return mySets_.begin(); } + /// \return iterator to end of sets added by last ReadData() call + set_iterator added_end() const { return mySets_.end(); } + /// \return the last set added by last ReadData() call + DataSet* added_back() const { return mySets_.back(); } + /// \return Number of sets added by last ReadData() call + unsigned int Nadded() const { return mySets_.size(); } protected: + /// Note a set that has been added to a DataSetList by this DataIO + void AddedByMe(DataSet*); + /// Clear list of sets added by this DataIO + void ClearAddedByMe(); /// Indicate this DataIO is valid for given DataSet type void SetValid(DataSet::DataType t) { valid_.push_back( t ); } /// Check that all sets in given list have given dimension. @@ -52,6 +66,7 @@ class DataIO : public BaseIOtype { int debug_; private: std::vector<DataSet::DataType> valid_; ///< Data sets for which DataIO is valid writer. + std::vector<DataSet*> mySets_; ///< Can be used by child class to note sets that have been added TextFormat::FmtType xcol_fmt_; ///< X column format type int xcol_width_; ///< X column width int xcol_prec_; ///< X column precision diff --git a/src/DataIO_AmberFF.cpp b/src/DataIO_AmberFF.cpp new file mode 100644 index 0000000000..592cd7f84c --- /dev/null +++ b/src/DataIO_AmberFF.cpp @@ -0,0 +1,114 @@ +#include "DataIO_AmberFF.h" +#include "CpptrajStdio.h" +#include "AmberParamFile.h" +#include "DataSet_Parameters.h" + +/// CONSTRUCTOR +DataIO_AmberFF::DataIO_AmberFF() +{ + SetValid( DataSet::PARAMETERS ); + // TODO Topology too? +} + +// DataIO_AmberFF::ID_DataFormat() +bool DataIO_AmberFF::ID_DataFormat(CpptrajFile& infile) +{ + //if (infile.OpenFile()) return false; + //std::string line = infile.GetLine(); // Title + //infile.CloseFile(); + //bool isLib = (line == "!!index array str"); + return false; +} + +// DataIO_AmberFF::ReadHelp() +void DataIO_AmberFF::ReadHelp() +{ + mprintf("\tnbset <nonbond set name> : Nonbonded set name to use when multiple nonbond parameter sets are present.\n"); +} + +// DataIO_AmberFF::processReadArgs() +int DataIO_AmberFF::processReadArgs(ArgList& argIn) +{ + nbsetname_ = argIn.GetStringKey("nbset"); + return 0; +} + +int DataIO_AmberFF::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname) +{ + return ReadData(fname, dsl, dsname, 0); +} + +// DataIO_AmberFF::ReadData() +int DataIO_AmberFF::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname, DataSet_LeapOpts* leapopts) +{ + ClearAddedByMe(); + // Allocate data set + MetaData md( dsname ); + DataSet* ds = dsl.CheckForSet( md ); + if (ds != 0) { + if (ds->Type() != DataSet::PARAMETERS) { + mprinterr("Error: Set '%s' does not have parameters, cannot append.\n", ds->legend()); + return 1; + } + mprintf("\tAdding to existing set %s\n", ds->legend()); + } else { + ds = dsl.AddSet( DataSet::PARAMETERS, md ); + if (ds == 0) return 1; + } + AddedByMe( ds ); + DataSet_Parameters& prm = static_cast<DataSet_Parameters&>( *ds ); + + AmberParamFile infile; + infile.SetAmberParamDebug( debug_ ); + infile.SetDefaults( leapopts ); + int err = infile.ReadParams(prm, fname, nbsetname_); + if (err != 0) { + mprinterr("Error: Could not read '%s'\n", fname.full()); + } + + return err; +} + +// DataIO_AmberFF::WriteHelp() +void DataIO_AmberFF::WriteHelp() +{ + +} + +// DataIO_AmberFF::processWriteArgs() +int DataIO_AmberFF::processWriteArgs(ArgList& argIn) +{ + + return 0; +} + +// DataIO_AmberFF::WriteData() +int DataIO_AmberFF::WriteData(FileName const& fname, DataSetList const& dsl) +{ + AmberParamFile outfile; + outfile.SetAmberParamDebug( debug_ ); + std::vector<DataSet_Parameters*> toWrite; + for (DataSetList::const_iterator it = dsl.begin(); it != dsl.end(); ++it) + { + if ( (*it)->Type() == DataSet::PARAMETERS ) + toWrite.push_back( (DataSet_Parameters*)(*it) ); + } + if (toWrite.empty()) { + mprinterr("Error: No parameter sets to write.\n"); + return 1; + } else if (toWrite.size() == 1) { + return outfile.WriteParams( *(toWrite.front()), fname ); + } else { + // Create a combined parameter set + Cpptraj::Parm::ParameterSet prm; + for (std::vector<DataSet_Parameters*>::const_iterator it = toWrite.begin(); + it != toWrite.end(); ++it) + { + Cpptraj::Parm::ParameterSet::UpdateCount UC; + prm.UpdateParamSet( *(*it), UC, debug_, debug_ ); // FIXME verbose + } + return outfile.WriteParams( prm, fname ); + } + + return 1; +} diff --git a/src/DataIO_AmberFF.h b/src/DataIO_AmberFF.h new file mode 100644 index 0000000000..7768e3c9c2 --- /dev/null +++ b/src/DataIO_AmberFF.h @@ -0,0 +1,23 @@ +#ifndef INC_DATAIO_AMBERFF_H +#define INC_DATAIO_AMBERFF_H +#include "DataIO.h" +class DataSet_LeapOpts; +/// <Enter description of DataIO_AmberFF here> +class DataIO_AmberFF : public DataIO { + public: + DataIO_AmberFF(); + static void ReadHelp(); + static void WriteHelp(); + static BaseIOtype* Alloc() { return (BaseIOtype*)new DataIO_AmberFF(); } + int processReadArgs(ArgList&); + int ReadData(FileName const&, DataSetList&, std::string const&); + int processWriteArgs(ArgList&); + int WriteData(FileName const&, DataSetList const&); + bool ID_DataFormat(CpptrajFile&); + /// Read in data with leap options + int ReadData(FileName const&, DataSetList&, std::string const&, DataSet_LeapOpts*); + private: + + std::string nbsetname_; ///< Nonbonded parameter set name to use +}; +#endif diff --git a/src/DataIO_AmberFrcmod.cpp b/src/DataIO_AmberFrcmod.cpp new file mode 100644 index 0000000000..cc826d534e --- /dev/null +++ b/src/DataIO_AmberFrcmod.cpp @@ -0,0 +1,85 @@ +#include "DataIO_AmberFrcmod.h" +#include "CpptrajStdio.h" +#include "DataSet_Parameters.h" +#include "AmberParamFile.h" + +/// CONSTRUCTOR +DataIO_AmberFrcmod::DataIO_AmberFrcmod() +{ + +} + +// DataIO_AmberFrcmod::ID_DataFormat() +bool DataIO_AmberFrcmod::ID_DataFormat(CpptrajFile& infile) +{ + + return false; +} + +// DataIO_AmberFrcmod::ReadHelp() +void DataIO_AmberFrcmod::ReadHelp() +{ + +} + +// DataIO_AmberFrcmod::processReadArgs() +int DataIO_AmberFrcmod::processReadArgs(ArgList& argIn) +{ + + return 0; +} + +int DataIO_AmberFrcmod::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname) { + return ReadData(fname, dsl, dsname, 0); +} + +// DataIO_AmberFrcmod::ReadData() +int DataIO_AmberFrcmod::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname, DataSet_LeapOpts* leapopts) +{ + ClearAddedByMe(); + // Allocate data set + MetaData md( dsname ); + DataSet* ds = dsl.CheckForSet( md ); + if (ds != 0) { + if (ds->Type() != DataSet::PARAMETERS) { + mprinterr("Error: Set '%s' does not have parameters, cannot append.\n", ds->legend()); + return 1; + } + mprintf("\tAdding to existing set %s\n", ds->legend()); + } else { + ds = dsl.AddSet( DataSet::PARAMETERS, md ); + if (ds == 0) return 1; + } + AddedByMe( ds ); + DataSet_Parameters& prm = static_cast<DataSet_Parameters&>( *ds ); + + AmberParamFile infile; + infile.SetAmberParamDebug( debug_ ); + infile.SetDefaults( leapopts ); + if (infile.ReadFrcmod(prm, fname)) { + mprinterr("Error: Could not read Amber frcmod file '%s'\n", fname.full()); + return 1; + } + + return 0; +} + +// DataIO_AmberFrcmod::WriteHelp() +void DataIO_AmberFrcmod::WriteHelp() +{ + +} + +// DataIO_AmberFrcmod::processWriteArgs() +int DataIO_AmberFrcmod::processWriteArgs(ArgList& argIn) +{ + + return 0; +} + +// DataIO_AmberFrcmod::WriteData() +int DataIO_AmberFrcmod::WriteData(FileName const& fname, DataSetList const& dsl) +{ + + return 1; +} diff --git a/src/DataIO_AmberFrcmod.h b/src/DataIO_AmberFrcmod.h new file mode 100644 index 0000000000..545b991ab4 --- /dev/null +++ b/src/DataIO_AmberFrcmod.h @@ -0,0 +1,20 @@ +#ifndef INC_DATAIO_AMBERFRCMOD_H +#define INC_DATAIO_AMBERFRCMOD_H +#include "DataIO.h" +class DataSet_LeapOpts; +/// <Enter description of DataIO_AmberFrcmod here> +class DataIO_AmberFrcmod : public DataIO { + public: + DataIO_AmberFrcmod(); + static void ReadHelp(); + static void WriteHelp(); + static BaseIOtype* Alloc() { return (BaseIOtype*)new DataIO_AmberFrcmod(); } + int processReadArgs(ArgList&); + int ReadData(FileName const&, DataSetList&, std::string const&); + int processWriteArgs(ArgList&); + int WriteData(FileName const&, DataSetList const&); + bool ID_DataFormat(CpptrajFile&); + // Read in data with leap options + int ReadData(FileName const&, DataSetList&, std::string const&, DataSet_LeapOpts*); +}; +#endif diff --git a/src/DataIO_AmberLib.cpp b/src/DataIO_AmberLib.cpp index 45ef078395..f93c8e2af4 100644 --- a/src/DataIO_AmberLib.cpp +++ b/src/DataIO_AmberLib.cpp @@ -4,7 +4,8 @@ #include "AssociatedData_Connect.h" /// CONSTRUCTOR -DataIO_AmberLib::DataIO_AmberLib() +DataIO_AmberLib::DataIO_AmberLib() : + allowOverwrite_(false) { } @@ -23,19 +24,20 @@ bool DataIO_AmberLib::ID_DataFormat(CpptrajFile& infile) // DataIO_AmberLib::ReadHelp() void DataIO_AmberLib::ReadHelp() { - + mprintf("\tallowoverwrite : Allow existing sets to be overwritten.\n"); } // DataIO_AmberLib::processReadArgs() int DataIO_AmberLib::processReadArgs(ArgList& argIn) { - + allowOverwrite_ = argIn.hasKey("allowoverwrite"); return 0; } // DataIO_AmberLib::ReadData() int DataIO_AmberLib::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname) { + ClearAddedByMe(); BufferedLine infile; if (infile.OpenFileRead( fname )) { mprinterr("Error: Could not open Amber lib file '%s' for reading.\n", fname.full()); @@ -60,27 +62,74 @@ int DataIO_AmberLib::ReadData(FileName const& fname, DataSetList& dsl, std::stri line = infile.GetLine(); } // Now should be at first unit - if (debug_ > 0) mprintf("DEBUG: Units:\n"); - for (Sarray::const_iterator it = UnitNames.begin(); it != UnitNames.end(); ++it) + unsigned int units_read = 0; + if (debug_ > 0) { + mprintf("DEBUG: Units:"); + for (Sarray::const_iterator it = UnitNames.begin(); it != UnitNames.end(); ++it) + mprintf(" %s", it->c_str()); + mprintf("\n"); + } + while (units_read < UnitNames.size()) { - if (debug_ > 0) mprintf("DEBUG: Reading unit %s\n", it->c_str()); - std::string entryColumn = "!entry." + *it + ".unit.atoms"; - ArgList tmparg( line ); - if (tmparg.Nargs() < 1 || tmparg[0] != entryColumn) { - mprinterr("Error: Expected '%s', got '%s'\n", entryColumn.c_str(), line.c_str()); - return 1; + int is_unit = -1; + // Which unit are we reading: !entry.<name>.unit.atoms most likely + ArgList tmparg( line, " !." ); + if (tmparg.Nargs() >= 3) { + if (tmparg[2] == "unit") + is_unit = 1; + else if (tmparg[2] == "parm") + is_unit = 0; + } + std::string currentName = tmparg.GetStringKey("entry"); + if (debug_ > 0) { + if (is_unit == 1) + mprintf("DEBUG: Reading unit %s\n", currentName.c_str()); + else if (is_unit == 0) + mprintf("DEBUG: Reading parameter set %s\n", currentName.c_str()); + else + mprintf("Warning: Unknown '!entry' : %s\n", tmparg[2].c_str()); } - DataSet_Coords* ds = (DataSet_Coords*)dsl.AddSet( DataSet::COORDS, MetaData(dsname, *it) ); - if (ds == 0) { - mprinterr("Error: Could not create data set for unit %s\n", it->c_str()); + // Ensure this is in the list of entries + bool found = false; + for (Sarray::const_iterator it = UnitNames.begin(); it != UnitNames.end(); ++it) { + if (*it == currentName) { + found = true; + break; + } + } + if (!found) { + mprinterr("Error: Entry %s was not found in the initial list of names in lib file.\n", + currentName.c_str()); return 1; } - if (read_unit( ds, infile, line, *it )) { - mprinterr("Error: Reading unit '%s'\n", it->c_str()); + + DataSet_Coords* ds = 0; + if (is_unit == 1) { + MetaData meta(dsname, currentName); + DataSet* set = dsl.CheckForSet( meta ); + if (set == 0) { + ds = (DataSet_Coords*)dsl.AddSet( DataSet::COORDS, meta ); + } else if (allowOverwrite_) { + mprintf("Warning: Overwriting existing set %s\n", set->legend()); + dsl.RemoveSet( set ); + ds = (DataSet_Coords*)dsl.AddSet( DataSet::COORDS, meta ); + } else { + mprinterr("Error: Set %s already exists and 'allowoverwrite' not specified.\n", dsname.c_str()); + return 1; + } + if (ds == 0) { + mprinterr("Error: Could not create data set for unit %s\n", currentName.c_str()); + return 1; + } + } + if (read_unit( ds, infile, line, currentName, (is_unit==1) )) { + mprinterr("Error: Reading unit '%s'\n", currentName.c_str()); return 1; } + AddedByMe( ds ); + units_read++; } - mprintf("\tRead %zu units from Amber OFF file.\n", UnitNames.size()); + mprintf("\tRead %zu units from Amber OFF file %s.\n", UnitNames.size(), fname.base()); return 0; } @@ -89,12 +138,13 @@ int DataIO_AmberLib::ReadData(FileName const& fname, DataSetList& dsl, std::stri const char* DataIO_AmberLib::sectionStr_[] = { "atoms", "atomspertinfo", "boundbox", "childsequence", "connect", "connectivity", "hierarchy", "name", "positions", "residueconnect", - "residues", "solventcap", "velocities", 0 }; + "residues", "residuesPdbSequenceNumber", "solventcap", "velocities", "unknown" }; /** \return Section type from entry line. */ DataIO_AmberLib::SectionType DataIO_AmberLib::id_section(std::string const& line, std::string const& unitName) { + //mprintf("DEBUG: id_section %s : %s\n", unitName.c_str(), line.c_str()); std::string entry = "!entry." + unitName + ".unit."; for (int idx = 0; idx < (int)UNKNOWN_SECTION; idx++) { std::string sectionName = entry + std::string(sectionStr_[idx]); @@ -137,17 +187,18 @@ int DataIO_AmberLib::read_atoms(Topology& topOut, std::string const& line, std:: return 1; } // Sanity check - if (seq-1 != topOut.Natom()) { - mprinterr("Error: For unit %s expected sequence %i, got %i\n", unitName.c_str(), topOut.Natom()+1, seq); - return 1; - } + //if (seq-1 != topOut.Natom()) { + // mprinterr("Error: For unit %s expected sequence %i, got %i\n", unitName.c_str(), topOut.Natom()+1, seq); + // return 1; + //} Atom atm; atm.SetName( NameType(noquotes(aname)) ); atm.SetTypeName( NameType(noquotes(atype)) ); atm.DetermineElement( elt ); atm.SetMassFromElement(); atm.SetCharge( charge ); - Residue res( unitName, resx, ' ', "" ); + // We dont know the actual residue name yet + Residue res( "TMP", resx, ' ', "" ); topOut.AddTopAtom( atm, res ); return 0; } @@ -176,7 +227,7 @@ int DataIO_AmberLib::read_bonds(Topology& topOut, std::string const& line) { } /** Read connections line */ -int DataIO_AmberLib::read_connect(AssociatedData_Connect& ConnectAtoms, std::string const& line) { +int DataIO_AmberLib::read_connect(AssociatedData_Connect& ConnectAtoms, std::string const& line) const { int connectAtom = -1; if (sscanf(line.c_str(), "%i", &connectAtom) != 1) { mprinterr("Error: Expected 1 column for connect line: %s\n", line.c_str()); @@ -184,32 +235,129 @@ int DataIO_AmberLib::read_connect(AssociatedData_Connect& ConnectAtoms, std::str } // Amber lib atoms start from 1 if (connectAtom < 1) { - mprintf("Warning: Atom index < 1 in connect line: %s\n", line.c_str()); + // This may be legit when only one connect atom + if (debug_ > 0) + mprintf("Warning: Atom index < 1 in connect line: %s\n", line.c_str()); } ConnectAtoms.AddConnectAtom( connectAtom-1 ); return 0; } +/** Hold information for a unit entry. */ +class unitEntry { + public: + /// CONSTRUCTOR - Take unit name + unitEntry(std::string const& unitName) : ridx_(0) { + top_.SetParmName(unitName, FileName()); + boundbox_.reserve(5); + } + /// \return Reference to topology + Topology& Top() { return top_; } + /// \return Reference to Positions + std::vector<Vec3>& Positions() { return positions_; } + /// \return Reference to connect atoms + AssociatedData_Connect& ConnectAtoms() { return ConnectAtoms_; } + /// Add residue + int AddResname( std::string const& resname ) { + if (ridx_ >= top_.Nres()) { + mprinterr("Error: Too many residues in residues section, or residues section before atom table.\n"); + return 1; + } + top_.SetRes( ridx_++ ).SetName( resname ); + return 0; + } + /// Add box value + void AddBoxVal(double d) { boundbox_.push_back( d ); } + /// Finish setting up the unit + int FinishUnit(DataSet_Coords* crd, int debug_) { + // Set up topology; determine molecules, but no residue renumber + top_.CommonSetup(true, false); + if (debug_ > 1) top_.Summary(); + Frame frm; + frm.SetupFrameV( top_.Atoms(), CoordinateInfo() ); + frm.ClearAtoms(); + for (std::vector<Vec3>::const_iterator it = positions_.begin(); it != positions_.end(); ++it) + frm.AddVec3( *it ); + // Set up box if needed + if (!boundbox_.empty()) { + if (boundbox_.size() != 5) { + mprinterr("Error: Expected 5 values for boundbox entry for %s, got %zu\n", top_.c_str(), boundbox_.size()); + return 1; + } + // hasbox, angle, x, y, z + if (boundbox_[0] > 0) { + double boxcrd[6]; + boxcrd[0] = boundbox_[2]; + boxcrd[1] = boundbox_[3]; + boxcrd[2] = boundbox_[4]; + // determine angles + double beta = boundbox_[1]; + if (beta < 3.15) { + // Assume the angle is given in radians + beta = beta * Constants::RADDEG; + //mprintf("DEBUG: Converted beta: %f\n", beta); + // Fix imperfectly converted orthorhombic + double deltaBeta = 90.0 - beta; + if (deltaBeta < 0) deltaBeta = -deltaBeta; + if (deltaBeta < 0.0001) { + beta = 90.0; + //mprintf("DEBUG: Fixed beta.\n"); + } + } + boxcrd[3] = beta; + boxcrd[4] = beta; + boxcrd[5] = beta; + if ( Box::IsTruncOct( beta ) ) { + // Use trunc oct angle from Box; higher precision + boxcrd[3] = Box::TruncatedOctAngle(); + boxcrd[4] = boxcrd[3]; + boxcrd[5] = boxcrd[3]; + } else if (beta == 60.0) { + // Special case - rhombic dodecahedron + boxcrd[3] = 60.0; + boxcrd[4] = 90.0; + boxcrd[5] = 60.0; + } + frm.ModifyBox().SetupFromXyzAbg( boxcrd ); + if (debug_ > 0) + frm.BoxCrd().PrintInfo(); // DEBUG + } else { + frm.ModifyBox().SetNoBox(); + } + } + crd->CoordsSetup(top_, frm.CoordsInfo()); + crd->AddFrame( frm ); + crd->AssociateData( &ConnectAtoms_ ); + if (debug_ > 1) ConnectAtoms_.Ainfo(); + if (debug_ > 0) mprintf("\n"); + return 0; + } + private: + AssociatedData_Connect ConnectAtoms_; + Topology top_; + std::vector<Vec3> positions_; + int ridx_; + std::vector<double> boundbox_; ///< hold values from box entry: hasbox, angle, x, y, zi +}; + /** Read a unit from OFF file. It is expected that the next line from * infile is the first entry in the unit.atoms table. */ int DataIO_AmberLib::read_unit(DataSet_Coords* crd, BufferedLine& infile, std::string& Line, - std::string const& unitName) + std::string const& unitName, + bool isUnit) const { - AssociatedData_Connect ConnectAtoms; SectionType currentSection = id_section( Line, unitName ); - if (currentSection == UNKNOWN_SECTION) { - mprinterr("Error: Could not ID first section: %s\n", Line.c_str()); - return 1; - } - if (debug_ > 1) mprintf("DEBUG: First section is %s\n", sectionStr_[currentSection]); + //if (currentSection == UNKNOWN_SECTION) { + // mprinterr("Error: Could not ID first section for entry '%s': %s\n", unitName.c_str(), Line.c_str()); + // return 1; + //} + //if (debug_ > 1) mprintf("DEBUG: First section is %s\n", sectionStr_[currentSection]); - Topology top; - top.SetParmName( unitName, FileName() ); - std::vector<Vec3> positions; - Frame frm; + //Frame frm; + unitEntry currentUnit( unitName ); bool readUnit = true; while (readUnit) { @@ -218,17 +366,34 @@ const readUnit = false; break; } - Line.assign(lineptr); + // Advance past any leading whitespace + while (*lineptr != 0 && (*lineptr == ' ' || *lineptr == '\t')) + ++lineptr; + if (*lineptr == 0) + Line.clear(); + else + Line.assign(lineptr); if (!Line.empty()) { - if (debug_ > 2) mprintf("DEBUG: Line: %s\n", Line.c_str()); + if (debug_ > 2) mprintf("DEBUG: Section '%s' Line: '%s'\n", sectionStr_[currentSection], Line.c_str()); //ArgList cols( Line, " \t\n" ); if (Line[0] == '!') { // See if we are at another unit ArgList tmparg( Line, ". " ); - if (tmparg[2] == "unit" && tmparg[3] == "atoms" && tmparg[4] == "table") { + if (tmparg[1] != unitName) { + //mprintf("DEBUG: New entry %s detected.\n", tmparg[1].c_str()); readUnit = false; break; } +/* if (tmparg[2] == "parm" && tmparg[4] == "table") { + // This is a PARM table, not a unit. + mprintf("Parm section %s detected.\n", tmparg[3].c_str()); + readUnit = false; + break; + } + if (tmparg[2] == "unit" && tmparg[3] == "atoms" && tmparg[4] == "table") { + readUnit = false; + break; + }*/ currentSection = id_section( Line, unitName ); if (currentSection == UNKNOWN_SECTION) { mprintf("Warning: Could not ID section: %s\n", Line.c_str()); @@ -236,29 +401,38 @@ const if (debug_ > 1) mprintf("DEBUG: Section is %s\n", sectionStr_[currentSection]); } } else if (currentSection == ATOMTABLE) { - if (read_atoms(top, Line, unitName)) return 1; + if (read_atoms(currentUnit.Top(), Line, unitName)) return 1; } else if (currentSection == CONNECTIVITY) { - if (read_bonds(top, Line)) return 1; + if (read_bonds(currentUnit.Top(), Line)) return 1; } else if (currentSection == POSITIONS) { - if (read_positions(positions, Line)) return 1; + if (read_positions(currentUnit.Positions(), Line)) return 1; } else if (currentSection == CONNECT) { - if (read_connect(ConnectAtoms, Line)) return 1; + if (read_connect(currentUnit.ConnectAtoms(), Line)) return 1; + } else if (currentSection == RESIDUES) { + // Rely on ArgList to remove quotes + ArgList tmpArg( Line ); + if (tmpArg.Nargs() < 1) { + mprinterr("Error: Could not read residue from residues section.\n"); + mprinterr("Error: Line: %s\n", Line.c_str()); + return 1; + } + if (currentUnit.AddResname( tmpArg[0] )) return 1; + } else if (currentSection == BOUNDBOX) { + // hasbox, angle, x, y, z + double bval = 0; + sscanf( Line.c_str(), "%lf", &bval ); + currentUnit.AddBoxVal( bval ); } + // else { + // mprintf("Warning: Unhandled section for %s: %s\n", unitName.c_str(), sectionStr_[currentSection]); + //} } } - top.CommonSetup(); - if (debug_ > 1) top.Summary(); - frm.SetupFrameV( top.Atoms(), CoordinateInfo() ); - frm.ClearAtoms(); - for (std::vector<Vec3>::const_iterator it = positions.begin(); it != positions.end(); ++it) - frm.AddVec3( *it ); - crd->CoordsSetup(top, frm.CoordsInfo()); - crd->AddFrame( frm ); - crd->AssociateData( &ConnectAtoms ); - if (debug_ > 1) ConnectAtoms.Ainfo(); - mprintf("\n"); - + if (isUnit) { + if (currentUnit.FinishUnit(crd, debug_)) return 1; + } + return 0; } diff --git a/src/DataIO_AmberLib.h b/src/DataIO_AmberLib.h index 9f8952fa37..52384a0997 100644 --- a/src/DataIO_AmberLib.h +++ b/src/DataIO_AmberLib.h @@ -19,18 +19,20 @@ class DataIO_AmberLib : public DataIO { // Keep in sync with sectionStr_ enum SectionType { ATOMTABLE = 0, PERTINFO, BOUNDBOX, CHILDSEQUENCE, CONNECT, CONNECTIVITY, HIERARCHY, UNITNAME, POSITIONS, RESCONNECT, - RESIDUES, SOLVENTCAP, VELOCITIES, UNKNOWN_SECTION }; + RESIDUES, RESPDBSEQUENCE, SOLVENTCAP, VELOCITIES, UNKNOWN_SECTION }; /// Strings corresponding to section type static const char* sectionStr_[]; /// ID OFF section from line static inline SectionType id_section(std::string const&, std::string const&); /// Read unit from OFF file - int read_unit(DataSet_Coords*, BufferedLine&, std::string&, std::string const&) const; + int read_unit(DataSet_Coords*, BufferedLine&, std::string&, std::string const&, bool) const; static int read_atoms(Topology&, std::string const&, std::string const&); static int read_bonds(Topology&, std::string const&); static int read_positions(std::vector<Vec3>&, std::string const&); - static int read_connect(AssociatedData_Connect&, std::string const&); + int read_connect(AssociatedData_Connect&, std::string const&) const; + + bool allowOverwrite_; ///< If true, allow existing sets to be overwritten }; #endif diff --git a/src/DataIO_AmberPrep.cpp b/src/DataIO_AmberPrep.cpp index c0765325ae..58f785d0d8 100644 --- a/src/DataIO_AmberPrep.cpp +++ b/src/DataIO_AmberPrep.cpp @@ -5,6 +5,7 @@ #include "DataSet_Coords.h" #include "StringRoutines.h" #include "Structure/Zmatrix.h" +#include <stack> /// CONSTRUCTOR DataIO_AmberPrep::DataIO_AmberPrep() : @@ -76,11 +77,19 @@ int DataIO_AmberPrep::readIMPROPER(BufferedLine& infile) const { return 0; } +/// For constructing the tree +class TREENODE { + public: + TREENODE(int i) : aIdx_(i), iUnfilled_(-1), iBack_(-1) {} + int aIdx_; + int iUnfilled_; + int iBack_; +}; + /** Read 1 or more PREP residue sections (cards 3-10). * \return 1 if error, -1 if STOP/EOF, 0 if more residues to be read. */ int DataIO_AmberPrep::readAmberPrep(BufferedLine& infile, DataSetList& dsl, std::string const& dsname) -const { // 3 - Title // Descriptive header for the residue @@ -117,7 +126,7 @@ const std::string coordFlag = args.GetStringNext(); int kform = args.getNextInteger(-1); if (debug_ > 0) - mprintf("DEBUG: %s %s %i\n", resName.c_str(), coordFlag.c_str(), kform); + mprintf("DEBUG: Res=%s CoordType=%s Format=%i\n", resName.c_str(), coordFlag.c_str(), kform); // 6 - IFIXC , IOMIT , ISYMDU , IPOS // FORMAT (4A) // IFIXC Flag for the type of input geometry of the residue(s) @@ -160,7 +169,9 @@ const std::string IPOS = args.GetStringNext(); if (debug_ > 0) mprintf("DEBUG: %s %s %s %s\n", IFIXC.c_str(), IOMIT.c_str(), ISYMDU.c_str(), IPOS.c_str()); + bool do_distance_search = false; if (IFIXC != "CORRECT") { + // NOTE: If IFIXC = CHANGE ever implemented, set do_distance_search to true here. mprinterr("Error: IFIXC is not 'CORRECT' (%s=); only internal coordinates currently supported.\n", IFIXC.c_str()); return 1; @@ -175,9 +186,6 @@ const double bondCutoff = 0; if (line[0] != '\0') bondCutoff = convertToDouble( std::string(line) ); - if (bondCutoff > 0.0) - mprintf("Warning: Non-zero cutoff in prep file (%g); will search for additional\n" - "Warning: bonds based on distances.\n", bondCutoff); // 0 1 2 3 4 5 6 7 8 9 10 // 8 - I IGRAPH(I) ISYMBL(I) ITREE(I) NA(I) NB(I) NC(I) R(I) THETA(I) PHI(I) CHG(I) [I = 1, NATOM] // FORMAT(I,3A,3I,4F) @@ -196,10 +204,16 @@ const top.SetParmName( resName, infile.Filename() ); // Residue Residue res(resName, 1, ' ', ""); + // For constructing the tree + typedef std::stack<TREENODE> TreeStack; + TreeStack Tree; + Tree.push( TREENODE(-1) ); +// mprintf( "DEBUG: Prep: Reading atom records\n" ); // Loop over entries line = infile.Line(); if (CheckLine(line)) return 1; - int atIdx = 0; + int atIdx = 0; // The prep file atom index + std::vector<int> topAtomIndices; while (line[0] != '\0') { if (debug_ > 1) mprintf("DEBUG: '%s'\n", line); @@ -208,6 +222,40 @@ const mprinterr("Error: Expected 11 columns in prep line, got %i\n", args.Nargs()); return 1; } + // Define the node type + TREENODE ipair(atIdx); + switch (args[3][0]) { + case 'M' : ipair.iUnfilled_ = 10000; break; + case 'B' : ipair.iUnfilled_ = 2; break; + case '3' : ipair.iUnfilled_ = 3; break; + case 'S' : ipair.iUnfilled_ = 1; break; + case 'E' : ipair.iUnfilled_ = 0; break; + case '4' : ipair.iUnfilled_ = 4; break; + case '5' : ipair.iUnfilled_ = 5; break; + case '6' : ipair.iUnfilled_ = 6; break; + default: + mprinterr("Error: Atom %s: Illegal chain specified [%s] in PREP file.\n", args[1].c_str(), args[3][0]); + return 1; + } + ipair.iBack_ = Tree.top().aIdx_; +// printf("DEBUG: Prep: iTREETOP %i\n", Tree.top().aIdx_); + if (Tree.top().aIdx_ >= 0) { +// printf("DEBUG: Prep: iTREETOP %i iUnfilled %i\n", Tree.top().aIdx_, Tree.top().iUnfilled_); + Tree.top().iUnfilled_--; + if (Tree.top().iUnfilled_ == 0) { + Tree.pop(); + if (Tree.empty()) { + mprinterr("Internal Error: Prep stack is empty.\n"); + return 1; + } + } + } + if (ipair.iUnfilled_ != 0) { + Tree.push( ipair ); +// mprintf("DEBUG: Prep: TREEPUSH %i\n", ipair.aIdx_); } + } + int iBond = ipair.iBack_; + // Convert charge double charge = convertToDouble(args[10]); // Add top atom if (args[2] == "EP") { @@ -215,9 +263,14 @@ const Atom atm(args[1], "XP"); atm.SetTypeName(args[2]); atm.SetCharge(charge); + topAtomIndices.push_back( top.Natom() ); top.AddTopAtom(atm, res); - } else + } else if (args[2] != ISYMDU) { + topAtomIndices.push_back( top.Natom() ); top.AddTopAtom( Atom(args[1], args[2], charge), res ); + //mprintf("DEBUG: Prep:\t Creating atom: %s (%i)\n", args[1].c_str(), topAtomIndices.back()); + } else + topAtomIndices.push_back( -1 ); // Add zmatrix entry. In prep file, indices start from 1. int atI = convertToInteger(args[0]) - 1; if (atI != atIdx) { @@ -230,15 +283,32 @@ const double dist = convertToDouble(args[7]); double theta = convertToDouble(args[8]); double phi = convertToDouble(args[9]); - //if (args[2] == ISYMDU) { - if (zmatrix.AddIC( InternalCoords(atIdx, atJ, atK, atL, dist, theta, phi) )) - return 1; - //} else - // zmatrix.AddIC( InternalCoords(atIdx, atJ, atK, atL, dist, theta, phi) ); +// if (args[2] != ISYMDU) { +// mprintf("DEBUG: Prep: B/A/T= %f %f %f\n", dist, theta, phi); +// mprintf("DEBUG: Prep:\t Creating atom: %s\n", args[1].c_str()); +// } + if (zmatrix.AddIC( InternalCoords(atIdx, atJ, atK, atL, dist, theta, phi) )) + return 1; + // Add bond if present + if (atJ > 0) { + if (topAtomIndices[atI] > -1 && topAtomIndices[atJ] > -1) { +// mprintf("DEBUG: Prep:\t\t Created bond between: %s - %s (%i)\n", +// *(top[ topAtomIndices[atI] ].Name()), +// *(top[ topAtomIndices[iBond] ].Name()), iBond); + top.AddBond( topAtomIndices[atI], topAtomIndices[iBond] ); + } + } atIdx++; line = infile.Line(); if (line == 0) break; } + //mprintf("DEBUG: Prep: TREE"); + //while (!Tree.empty()) { + // mprintf(" %i", Tree.top().aIdx_); + // Tree.pop(); + //} + //mprintf("\n"); + // 9 - Read additional information about the residue. // CHARGE - Read additional partial atomic charges. FORMAT (5f) // LOOP - Read explicit loop closing bonds @@ -265,9 +335,9 @@ const } // ----------------------------------- // Add bonds to topology - for (Zmatrix::const_iterator it = zmatrix.begin(); it != zmatrix.end(); ++it) - if (it->AtJ() != InternalCoords::NO_ATOM) - top.AddBond( it - zmatrix.begin(), it->AtJ() ); + //for (Zmatrix::const_iterator it = zmatrix.begin(); it != zmatrix.end(); ++it) + // if (it->AtJ() != InternalCoords::NO_ATOM) + // top.AddBond( it - zmatrix.begin(), it->AtJ() ); for (AtPairArray::const_iterator it = BondPairs.begin(); it != BondPairs.end(); ++it) { int idx1 = top.FindAtomInResidue(0, it->first); if (idx1 < 0) { @@ -282,14 +352,26 @@ const top.AddBond( idx1, idx2 ); } // Frame - Frame frm( top.Natom() ); + Frame frm_with_duatoms( topAtomIndices.size() ); // Internal coords to cart - if (zmatrix.SetToFrame( frm )) { + if (zmatrix.SetToFrame( frm_with_duatoms )) { mprinterr("Error: IC to Cartesian coords failed.\n"); return 1; } - // Bond search - if (bondCutoff > 0) { + // DEBUG + //mprintf("DEBUG: Zmatrix -> Cartesian:\n"); + //for (int ii = 0; ii < frm_with_duatoms.Natom(); ii++) + // frm_with_duatoms.printAtomCoord(ii); + Frame frm( top.Natom() ); + frm.ClearAtoms(); + for (unsigned int pidx = 0; pidx != topAtomIndices.size(); ++pidx) { + if (topAtomIndices[pidx] != -1) + frm.AddXYZ( frm_with_duatoms.XYZ( pidx ) ); + } + // Bond search. NOTE: Using 0.01 here to match LEaP's behavior + if (do_distance_search && bondCutoff > 0.01) { + mprintf("Warning: Non-zero cutoff in prep file (%g); will search for additional\n" + "Warning: bonds based on distances.\n", bondCutoff); BondSearch bondSearch; bondSearch.FindBonds( top, BondSearch::SEARCH_REGULAR, frm, 0.2, debug_ ); } @@ -301,7 +383,7 @@ const zmatrix.print(); // Create COORDS set //ds = dsl.AddSet( DataSet::REF_FRAME, MetaData(dsname, "crd") ); - DataSet* ds = dsl.AddSet( DataSet::REF_FRAME, MetaData(dsname, resName) ); + DataSet* ds = dsl.AddSet( DataSet::COORDS, MetaData(dsname, resName) ); if (ds == 0) { mprinterr("Error: Could not create coordinates for prep.\n"); return 1; @@ -309,7 +391,7 @@ const DataSet_Coords* CRD = static_cast<DataSet_Coords*>( ds ); // Delete dummy atoms if needed - if (removeDummyAtoms_) { +/* if (removeDummyAtoms_) { AtomMask keepAtoms; if (keepAtoms.SetMaskString( "!@%" + ISYMDU )) { mprinterr("Error: Could not set up mask string to remove dummy atoms.\n"); @@ -334,7 +416,7 @@ const frm = newFrame; if (debug_ > 0) top.Summary(); } - } + }*/ // DEBUG - back convert /* mprintf("DEBUG: BACK CONVERT %s\n", resName.c_str()); mprinterr("DEBUG: BACK CONVERT %s\n", resName.c_str()); @@ -360,6 +442,7 @@ const return 1; } CRD->SetCRD(0, frm); + AddedByMe( ds ); return 0; } @@ -367,6 +450,7 @@ const // DataIO_AmberPrep::ReadData() int DataIO_AmberPrep::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname) { + ClearAddedByMe(); BufferedLine infile; if (infile.OpenFileRead(fname)) { diff --git a/src/DataIO_AmberPrep.h b/src/DataIO_AmberPrep.h index 2f86f4adab..e4d0e4f000 100644 --- a/src/DataIO_AmberPrep.h +++ b/src/DataIO_AmberPrep.h @@ -23,7 +23,7 @@ class DataIO_AmberPrep : public DataIO { int readCHARGE(BufferedLine&) const; int readLOOP(BufferedLine&, AtPairArray&) const; int readIMPROPER(BufferedLine&) const; - int readAmberPrep(BufferedLine&, DataSetList&, std::string const&) const; + int readAmberPrep(BufferedLine&, DataSetList&, std::string const&); bool removeDummyAtoms_; ///< Remove dummy atoms if true }; diff --git a/src/DataIO_CharmmRtfPrm.cpp b/src/DataIO_CharmmRtfPrm.cpp index 9fc751ac05..85022d8dca 100644 --- a/src/DataIO_CharmmRtfPrm.cpp +++ b/src/DataIO_CharmmRtfPrm.cpp @@ -4,6 +4,7 @@ #include "CharmmParamFile.h" #include "DataSet_Parameters.h" #include "DataSet_Topology.h" +#include "Parm/GetParams.h" /// CONSTRUCTOR DataIO_CharmmRtfPrm::DataIO_CharmmRtfPrm() @@ -71,22 +72,24 @@ int DataIO_CharmmRtfPrm::processWriteArgs(ArgList& argIn) // DataIO_CharmmRtfPrm::WriteData() int DataIO_CharmmRtfPrm::WriteData(FileName const& fname, DataSetList const& dsl) { - ParameterSet pout; - ParameterSet::UpdateCount ucount; + Cpptraj::Parm::ParameterSet pout; + Cpptraj::Parm::ParameterSet::UpdateCount ucount; for (DataSetList::const_iterator it = dsl.begin(); it != dsl.end(); ++it) { if ( (*it)->Type() == DataSet::PARAMETERS ) { mprintf("\tUsing parameter set '%s'\n", (*it)->legend()); DataSet_Parameters const& dsPrm = static_cast<DataSet_Parameters const&>( *(*it) ); - pout.UpdateParamSet( dsPrm, ucount, debug_ ); + pout.UpdateParamSet( dsPrm, ucount, debug_, debug_ ); // FIXME verbose } else if ( (*it)->Type() == DataSet::TOPOLOGY ) { mprintf("\tUsing parameters from topology '%s'\n", (*it)->legend()); // Convert topology to parameter set DataSet_Topology const& dsTop = static_cast<DataSet_Topology const&>( *(*it) ); - pout.UpdateParamSet( dsTop.Top().GetParameters(), ucount, debug_ ); + Cpptraj::Parm::GetParams GP; + GP.SetDebug( debug_ ); + pout.UpdateParamSet( GP.GetParameters(dsTop.Top()), ucount, debug_, debug_ ); // FIXME verbose } else { mprintf("Warning: '%s' is not a valid parameter/topology set, skipping.\n", (*it)->legend()); diff --git a/src/DataIO_Coords.cpp b/src/DataIO_Coords.cpp new file mode 100644 index 0000000000..eb6389c8a6 --- /dev/null +++ b/src/DataIO_Coords.cpp @@ -0,0 +1,167 @@ +#include "DataIO_Coords.h" +#include "CpptrajStdio.h" +#include "ParmFile.h" +#include "TrajectoryFile.h" +#include "Trajin_Single.h" + +/// CONSTRUCTOR +DataIO_Coords::DataIO_Coords() //: + //is_parm_fmt_(false), + //is_traj_fmt_(false) +{ + +} + +// DataIO_Coords::ID_DataFormat() +/** NOTE: This is disabled intentionally. The problem is that some + * data formats looks very similar to trajectory formats, + * so that e.g. a cpptraj vector data file can look like + * an Amber ASCII trajectory. + * Users can use commands like 'loadcrd', or force the read + * with the 'as' keyword. + */ +bool DataIO_Coords::ID_DataFormat(CpptrajFile& infile) +{ + return false; +} + +// DataIO_Coords::ReadHelp() +void DataIO_Coords::ReadHelp() +{ + +} + +// DataIO_Coords::processReadArgs() +int DataIO_Coords::processReadArgs(ArgList& argIn) +{ + + return 0; +} + +/// \return True if this is a COORDS set we can append to +static inline bool can_append(DataSet::DataType typeIn) { + return (typeIn == DataSet::COORDS || + typeIn == DataSet::FRAMES); +} + +// DataIO_Coords::ReadData() +int DataIO_Coords::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname) +{ + ClearAddedByMe(); + DataSet::DataType setType = DataSet::COORDS; // FIXME make user option + //if (!is_parm_fmt_ && !is_traj_fmt_) { + bool is_parm_fmt_ = false; + bool is_traj_fmt_ = false; + // Assume that ID_DataFormat() has not been called. + //CpptrajFile tmpfile; + //if (tmpfile.SetupWrite( fname, debug_ )) { + // mprinterr("Error: Could not setup check for parm/coords info in '%s'.\n", + // fname.full()); + // return 1; + //} + // Needs to be either a topology format or a coords format + ParmFile::ParmFormatType parm_format = ParmFile::DetectFormat( fname ); + TrajectoryFile::TrajFormatType traj_format = TrajectoryFile::DetectFormat( fname ); + is_parm_fmt_ = (parm_format != ParmFile::UNKNOWN_PARM); + is_traj_fmt_ = (traj_format != TrajectoryFile::UNKNOWN_TRAJ); + if (!is_parm_fmt_ && !is_traj_fmt_) { + mprinterr("Error: '%s' does not have parm/coords info.\n", fname.full()); + return 1; + } + //} + + DataSet* dset = 0; + if (!dsname.empty()) { + // Is this set already present? + DataSetList selectedDS = dsl.SelectSets( dsname ); + if (!selectedDS.empty()) { + dset = selectedDS[0]; + if (selectedDS.size() > 1) + mprintf("Warning: %s selects multiple data sets, only using the first (%s)\n", dsname.c_str(), dset->legend()); + } + if (dset != 0) { + if (!can_append(dset->Type())) { + mprinterr("Error: Cannot append coordinates to existing set '%s'\n", dset->legend()); + return 1; + } else + mprintf("\tAppending to set '%s'\n", dset->legend()); + } + } + + // Topology read/setup + Topology topIn; + Topology* topPtr = 0; + if (dset == 0) { + if (!is_parm_fmt_) { + mprinterr("Error: '%s' does not contain any topology information.\n", fname.full()); + return 1; + } + // No data set yet; read topology info + ParmFile pfile; + ArgList topargs; + if (pfile.ReadTopology( topIn, fname, topargs, debug_ )) { + mprinterr("Error: Could not read topology information from '%s'\n", fname.full()); + return 1; + } + topPtr = &topIn; + } else { + topPtr = ((DataSet_Coords*)dset)->TopPtr(); + } + + // Trajectory setup + Trajin_Single trajin; + if (is_traj_fmt_) { + trajin.SetDebug( debug_ ); + ArgList trajargs; + if (trajin.SetupTrajRead( fname, trajargs, topPtr )) { + mprinterr("Error: Could not set up trajectory info for '%s'\n", fname.full()); + return 1; + } + } + + // If no data set yet, set it up + if (dset == 0) { + MetaData md( fname, dsname, -1 ); + dset = dsl.AddSet(setType, md); + if (dset == 0) return 1; + DataSet_Coords* coords = static_cast<DataSet_Coords*>( dset ); + if (coords->CoordsSetup( *topPtr, trajin.TrajCoordInfo() )) { // FIXME is this ok for no traj info? + mprinterr("Error: Could not set up COORDS set %s\n", coords->legend()); + return 1; + } + } + + // Trajectory read + if (is_traj_fmt_) { + Frame frameIn; + frameIn.SetupFrameV(topPtr->Atoms(), trajin.TrajCoordInfo()); + trajin.BeginTraj(); + trajin.Traj().PrintInfoLine(); + while (trajin.GetNextFrame( frameIn )) + ((DataSet_Coords*)dset)->AddFrame( frameIn ); + trajin.EndTraj(); + } + AddedByMe( dset ); + + return 0; +} + +// DataIO_Coords::WriteHelp() +void DataIO_Coords::WriteHelp() +{ + +} + +// DataIO_Coords::processWriteArgs() +int DataIO_Coords::processWriteArgs(ArgList& argIn) +{ + + return 0; +} + +// DataIO_Coords::WriteData() +int DataIO_Coords::WriteData(FileName const& fname, DataSetList const& dsl) +{ + + return 1; +} diff --git a/src/DataIO_Coords.h b/src/DataIO_Coords.h new file mode 100644 index 0000000000..0310b9c20f --- /dev/null +++ b/src/DataIO_Coords.h @@ -0,0 +1,20 @@ +#ifndef INC_DATAIO_COORDS_H +#define INC_DATAIO_COORDS_H +#include "DataIO.h" +/// Load COORDS set from a file +class DataIO_Coords : public DataIO { + public: + DataIO_Coords(); + static void ReadHelp(); + static void WriteHelp(); + static BaseIOtype* Alloc() { return (BaseIOtype*)new DataIO_Coords(); } + int processReadArgs(ArgList&); + int ReadData(FileName const&, DataSetList&, std::string const&); + int processWriteArgs(ArgList&); + int WriteData(FileName const&, DataSetList const&); + bool ID_DataFormat(CpptrajFile&); + private: + //bool is_parm_fmt_; ///< Set to true if format contains topology info + //bool is_traj_fmt_; ///< Set to true if format contains coordinates +}; +#endif diff --git a/src/DataIO_LeapRC.cpp b/src/DataIO_LeapRC.cpp new file mode 100644 index 0000000000..9623c7e53c --- /dev/null +++ b/src/DataIO_LeapRC.cpp @@ -0,0 +1,1149 @@ +#include "DataIO_LeapRC.h" +#include "CpptrajStdio.h" +#include "BufferedLine.h" +#include "DataIO_AmberFF.h" +#include "DataIO_AmberFrcmod.h" +#include "DataIO_AmberLib.h" +#include "DataIO_AmberPrep.h" +#include "DataIO_Coords.h" +#include "DataSet_LeapOpts.h" +#include "DataSet_NameMap.h" +#include "DataSet_Parameters.h" +#include "DataSet_PdbResMap.h" +#include "Exec_Build.h" +#include "Parm_Amber.h" +#include "StringRoutines.h" // ToLower +#include "Trajout_Single.h" +#include "Parm/AssignParams.h" +#include "Structure/Creator.h" +#include <cstdlib> //getenv +#include <cstring> // strncmp + +// ----------------------------------------------------------------------------- +// LeapEltHybrid class +/// CONSTRUCTOR +DataIO_LeapRC::LeapEltHybrid::LeapEltHybrid() : hybrid_(AtomType::UNKNOWN_HYBRIDIZATION) { + elt_[0]=' '; + elt_[1]=' '; + elt_[2]='\0'; +} + +/// COPY CONSTRUCTOR +DataIO_LeapRC::LeapEltHybrid::LeapEltHybrid(LeapEltHybrid const& rhs) : hybrid_(rhs.hybrid_) { + elt_[0] = rhs.elt_[0]; + elt_[1] = rhs.elt_[1]; +} + +/// ASSIGNMENT +DataIO_LeapRC::LeapEltHybrid& DataIO_LeapRC::LeapEltHybrid::operator=(const LeapEltHybrid& rhs) { + if (&rhs == this) return *this; + hybrid_ = rhs.hybrid_; + elt_[0] = rhs.elt_[0]; + elt_[1] = rhs.elt_[1]; + return *this; +} + +/** Print a list of supported leap commands to stdout. */ +void DataIO_LeapRC::PrintSupportedLeapCommands() { + mprintf(" Supported leap commands: addatomtypes, addpath, addpdbatommap, addpdbresmap,\n" + " loadamberparams, loadamberprep, loadmol2, loadoff,\n" + " loadpdb, quit, saveamberparm, set, source\n"); +} + +/// \return true if not equal. +bool DataIO_LeapRC::LeapEltHybrid::operator!=(const LeapEltHybrid& rhs) const { + return ( hybrid_ != rhs.hybrid_ || + elt_[0] != rhs.elt_[0] || + elt_[1] != rhs.elt_[1] ); +} + +/// Set from hybridization string, element string +void DataIO_LeapRC::LeapEltHybrid::SetEltHybrid(std::string const& eltStr, std::string const& hybStr) { + // Hybridization + if (hybStr == "sp3") + hybrid_ = AtomType::SP3; + else if (hybStr == "sp2") + hybrid_ = AtomType::SP2; + else if (hybStr == "sp") + hybrid_ = AtomType::SP; + else { + mprintf("Warning: Unknown hybridization in addAtomTypes entry %s\n", hybStr.c_str()); + hybrid_ = AtomType::UNKNOWN_HYBRIDIZATION; + } + elt_[0] = ' '; + elt_[1] = ' '; + elt_[2] = '\0'; + if (eltStr.empty()) { + // Assume extra point + elt_[0] = 'X'; elt_[1] = 'P'; + } else if (eltStr.size() == 1) { + elt_[0] = eltStr[0]; + } else { + // 2 or more characters + elt_[0] = eltStr[0]; + elt_[1] = eltStr[1]; + if (eltStr.size() > 2) + mprintf("Warning: Element string '%s' has more than 2 chars. Only using first 2 chars.\n", eltStr.c_str()); + } +} + +/// \return Atom type hybridization +AtomType::HybridizationType DataIO_LeapRC::LeapEltHybrid::AtypeHybridization() const { return hybrid_; } + +/// \return Atom type element string +const char* DataIO_LeapRC::LeapEltHybrid::AtypeElementStr() const { return elt_; } + +// ----------------------------------------------------------------------------- +/// CONSTRUCTOR +DataIO_LeapRC::DataIO_LeapRC() : + leapopts_(0), + pdbResidueMap_(0) +{} + +/** Track already loaded parm files. */ +DataIO_LeapRC::Sarray DataIO_LeapRC::paramFiles_ = Sarray(); + +/** Track already loaded lib/prep files. */ +DataIO_LeapRC::Sarray DataIO_LeapRC::libFiles_ = Sarray(); + +// DataIO_LeapRC::ID_DataFormat() +bool DataIO_LeapRC::ID_DataFormat(CpptrajFile& infile) +{ + if (infile.OpenFile()) return false; + bool isLeaprc = false; + // Scan the first 5 non-blank non-comment lines + int nLinesScanned = 0; + while (nLinesScanned < 5 && !isLeaprc) { + const char* ptr = infile.NextLine(); + if (ptr == 0) break; + if (ptr[0] == '\0' || ptr[0] == '#') continue; + nLinesScanned++; + // LEaP commands are case-insensitive + ArgList line(ToLower(std::string(ptr)), " \t"); + if (line.Nargs() > 0) { + if (line[0] == "logfile") + isLeaprc = true; + else if (line[0] == "source") + isLeaprc = true; + else if (line[0] == "addatomtypes") + isLeaprc = true; + // TODO more commands + } + } + infile.CloseFile(); + return isLeaprc; +} + +// DataIO_LeapRC::ReadHelp() +void DataIO_LeapRC::ReadHelp() +{ + +} + +// DataIO_LeapRC::processReadArgs() +int DataIO_LeapRC::processReadArgs(ArgList& argIn) +{ + + return 0; +} + +/** Check if file already loaded. */ +bool DataIO_LeapRC::check_already_loaded(Sarray const& files, std::string const& filename) { + for (Sarray::const_iterator it = files.begin(); it != files.end(); ++it) + if (*it == filename) return true; + return false; +} + +/** First look for filename, then look for AMBERHOME/dir/filename. */ +std::string DataIO_LeapRC::find_path(std::string const& filename, + std::string const& dir) +const +{ + if (File::Exists( filename )) return filename; + // Check searchPaths_ next + for (Sarray::const_iterator it = searchPaths_.begin(); it != searchPaths_.end(); ++it) { + std::string spath = *it + "/" + filename; + if (File::Exists( spath )) return spath; + } + // Check AMBERHOME last + if (amberhome_.empty()) { + mprinterr("Error: '%s' not found.\n", filename.c_str()); + return filename; + } + std::string amberpath = amberhome_ + dir + filename; + if (File::Exists( amberpath )) return amberpath; + mprinterr("Error: '%s' not found.\n", amberpath.c_str()); + return amberpath; +} + +/** LEaP addPath command. */ +int DataIO_LeapRC::AddPath(std::string const& path) { + mprintf("%s added to file search path.\n", path.c_str()); + searchPaths_.push_back( path ); + return 0; +} + +/** Detect whether a file is an Amber main FF file or frcmod. + * \return 1 if frcmod, 0 if FF, -1 if an error occurred. + */ +int DataIO_LeapRC::is_frcmod(std::string const& filename, bool& hasMass, bool& hasNonBond) { + hasMass = false; + hasNonBond = false; + BufferedLine infile; + if (infile.OpenFileRead( filename )) { + mprinterr("Error: Could not open '%s' to determine if Amber FF/frcmod.\n", filename.c_str()); + return -1; + } + int stat = 0; + const char* ptr = infile.Line(); + while (ptr != 0) { + if ( strncmp( ptr, "MASS", 4 ) == 0 ) { + stat = 1; + hasMass = true; + } else if ( strncmp( ptr, "BOND", 4 ) == 0 ) { + stat = 1; + } else if ( strncmp( ptr, "ANGL", 4 ) == 0 ) { + stat = 1; + } else if ( strncmp( ptr, "DIHE", 4 ) == 0 ) { + stat = 1; + } else if ( strncmp( ptr, "IMPR", 4 ) == 0 ) { + stat = 1; + } else if ( strncmp( ptr, "HBON", 4 ) == 0 ) { + stat = 1; + } else if ( strncmp( ptr, "NONB", 4 ) == 0 ) { + stat = 1; + hasNonBond = true; + } + ptr = infile.Line(); + } + return stat; +} + +/** LEaP loadAmberParams command. */ +int DataIO_LeapRC::LoadAmberParams(std::string const& filename, DataSetList& dsl, + std::string const& dsname, + AtypeEltHybridPairMap const& atomHybridizations) +const +{ + DataSet* paramSet = 0; + // Detect whether we have a frcmod file or not. Need to scan entire file. + bool hasMass = false; + bool hasNonBond = false; + std::string full_path = find_path( filename, "parm/" ); + int stat = is_frcmod( full_path, hasMass, hasNonBond ); + if (stat == 1) { + // Amber frcmod file + mprintf("\tLoading force field modifications from '%s'\n", filename.c_str()); + if ( hasMass != hasNonBond ) { + mprinterr("Error: Modified force field files must have both MASS and NONBOND entries or neither.\n" + "Error: Could not load parameter set from %s.\n", filename.c_str()); + return 1; + } + DataIO_AmberFrcmod infile; + infile.SetDebug( debug_ ); + if (infile.ReadData( full_path, dsl, dsname, static_cast<DataSet_LeapOpts*>(leapopts_))) { + mprinterr("Error: Could not load force field modifications from '%s'\n", filename.c_str()); + return 1; + } + if (infile.Nadded() != 1) { + mprinterr("Internal Error: DataIO_LeapRC::LoadAmberParams(): Expected only 1 parameter set added, got %u\n", infile.Nadded()); + return 1; + } + paramSet = infile.added_back(); + } else if (stat == 0) { + // Amber FF file + if (check_already_loaded(paramFiles_, filename)) { + mprintf("Warning: Force field %s has already been loaded, skipping.\n", filename.c_str()); + return 0; + } else { + mprintf("\tLoading force field from '%s'\n", filename.c_str()); + DataIO_AmberFF infile; + if (infile.ReadData( full_path, dsl, dsname, static_cast<DataSet_LeapOpts*>(leapopts_))) { + mprinterr("Error: Could not load force field from '%s'\n", filename.c_str()); + return 1; + } + paramFiles_.push_back( filename ); + if (infile.Nadded() != 1) { + mprinterr("Internal Error: DataIO_LeapRC::LoadAmberParams(): Expected only 1 parameter set added, got %u\n", infile.Nadded()); + return 1; + } + paramSet = infile.added_back(); + } + } else { + mprinterr("Error: loadamberparams failed for '%s'\n", filename.c_str()); + return 1; + } + if (paramSet == 0) { + mprinterr("Internal Error: DataIO_LeapRC::LoadAmberParams(): Parameter set is null.\n"); + return 1; + } + // Update hybridizations for parameter atom types + //for (DataIO::set_iterator ds = paramDSL.begin(); ds != paramDSL.end(); ++ds) + //{ + if ( paramSet->Type() == DataSet::PARAMETERS ) { + DataSet_Parameters& param = static_cast<DataSet_Parameters&>( *paramSet ); + mprintf("\tUpdating atom hybridizations and elements in set %s\n", param.legend()); + for (Cpptraj::Parm::ParmHolder<AtomType>::iterator it = param.AT().begin(); + it != param.AT().end(); ++it) + { + AtypeEltHybridPairMap::const_iterator ah = atomHybridizations.find( it->first[0] ); + if (ah == atomHybridizations.end()) + mprintf("Warning: No element/hybridization set for atom type '%s'\n", *(it->first[0])); + else { + it->second.SetHybridization( ah->second.AtypeHybridization() ); + it->second.SetEltStr( ah->second.AtypeElementStr() ); + } + } + } else { + mprinterr("Internal Error: DataIO_LeapRC::LoadAmberParams(): Set %s is not parameter set.\n", + paramSet->legend()); + } + //} + return 0; +} + +/** LEaP loadOff command. */ +int DataIO_LeapRC::LoadOFF(std::string const& filename, DataSetList& dsl, std::string const& dsname, DSarray& units) const { + if (check_already_loaded(libFiles_, filename)) { + mprintf("Warning: Library %s has already been loaded, skipping.\n", filename.c_str()); + } else { + DataIO_AmberLib infile; + infile.SetDebug( debug_ ); + // Allow lib to overwrite e.g. something from previous prep + ArgList tmpArgs("allowoverwrite"); + infile.processReadArgs(tmpArgs); + if (infile.ReadData( find_path(filename, "lib/"), dsl, dsname)) { + mprinterr("Error: Could not load library file '%s'\n", filename.c_str()); + return 1; + } + if (infile.Nadded() < 1) { + mprinterr("Internal Error: DataIO_LeapRC::LoadOFF(): No unit sets added.\n"); + return 1; + } + for (DataIO::set_iterator it = infile.added_begin(); it != infile.added_end(); ++it) + units.push_back( *it ); + libFiles_.push_back( filename ); + } + return 0; +} + +/** LEaP loadAmberPrep command. */ +int DataIO_LeapRC::LoadAmberPrep(std::string const& filename, DataSetList& dsl, std::string const& dsname, DSarray& units) const { + if (check_already_loaded(libFiles_, filename)) { + mprintf("Warning: Prep file %s has already been loaded, skipping.\n", filename.c_str()); + } else { + DataIO_AmberPrep infile; + infile.SetDebug( debug_ ); + if (infile.ReadData( find_path(filename, "prep/"), dsl, dsname)) { + mprinterr("Error: Could not load prep file '%s'\n", filename.c_str()); + return 1; + } + if (infile.Nadded() < 1) { + mprinterr("Internal Error: DataIO_LeapRC::LoadAmberPrep(): No unit sets added.\n"); + return 1; + } + for (DataIO::set_iterator it = infile.added_begin(); it != infile.added_end(); ++it) + units.push_back( *it ); + libFiles_.push_back( filename ); + } + return 0; +} + +/** LEaP addAtomTypes command. */ +int DataIO_LeapRC::AddAtomTypes(AtypeEltHybridPairMap& atomHybridizations, BufferedLine& infile) +const +{ + int bracketCount = 0; + // Count duplicate entries + Sarray duplicateEntries; + Sarray overwrittenEntries; + // First line should contain the command + const char* line = infile.CurrentLine(); + while (line != 0) { + // Process the line + std::string tmp; + for (const char* ptr = line; *ptr != '\0'; ++ptr) + { + if (*ptr == '#') { + // Comment - skip everything else + break; + } else if (*ptr == '{') + bracketCount++; + else if (*ptr == '}') { + bracketCount--; + if (bracketCount == 1) { + if (debug_ > 0) mprintf("DEBUG: addAtomTypes: %s\n", tmp.c_str()); + ArgList aline( tmp ); + // Some entries (like LP and EP) are not required to have elements. + // Set the hybridization index to 1 or 2. + LeapEltHybrid eltHybrid; + if (aline.Nargs() == 3) + eltHybrid.SetEltHybrid( aline[1], aline[2] ); + else if (aline.Nargs() == 2) + eltHybrid.SetEltHybrid( "", aline[1] ); + else { + mprinterr("Error: Malformed addAtomTypes entry %s\n", tmp.c_str()); + return 1; + } + NameType atype(aline[0]); + AtypeEltHybridPairMap::iterator it = atomHybridizations.lower_bound( atype ); + if (it == atomHybridizations.end() || it->first != atype) { + it = atomHybridizations.insert( it, AtypeEltHybridPairType(atype, eltHybrid) ); + } else { + //mprintf("Warning: Duplicate entry for '%s' in addAtomTypes.", *atype); + if (it->second != eltHybrid) { + //mprintf(" Overwriting.\n"); + overwrittenEntries.push_back( atype.Truncated() ); + if (debug_ > 0) mprintf("Warning: Line is %s\n", tmp.c_str()); + it->second = eltHybrid; + } else + duplicateEntries.push_back( atype.Truncated() ); + //mprintf("\n"); + } + tmp.clear(); + } + } else { + if (bracketCount == 2) + tmp += *ptr; + } + } + if (bracketCount < 0) { + mprinterr("Error: Too many close brackets '}' in addAtomTypes command.\n"); + return 1; + } else if (bracketCount == 0) { + break; + } //else { + //mprintf("DEBUG: addAtomTypes: %s\n", tmp.c_str()); + //} + line = infile.Line(); + } + if (bracketCount != 0) { + mprinterr("Error: Not enough close brackets '}' in addAtomTypes command.\n"); + return 1; + } + mprintf("\tRead %zu atom hybridizations.\n", atomHybridizations.size()); + if (!duplicateEntries.empty()) { + mprintf("Warning: %zu duplicate entries in addAtomTypes; this is expected if other leaprc files have been loaded.\n", + duplicateEntries.size()); + //if (debug_ > 0) { + mprintf("Warning: Duplicates:"); + for (Sarray::const_iterator it = duplicateEntries.begin(); it != duplicateEntries.end(); ++it) + mprintf(" %s", it->c_str()); + mprintf("\n"); + //} + } + if (!overwrittenEntries.empty()) { + mprintf("Warning: %zu entries were overwritten in addAtomTypes:", overwrittenEntries.size()); + for (Sarray::const_iterator it = overwrittenEntries.begin(); it != overwrittenEntries.end(); ++it) + mprintf(" %s", it->c_str()); + mprintf("\n"); + } + return 0; +} + +/** LEaP addPdbResMap command. */ +int DataIO_LeapRC::AddPdbResMap(BufferedLine& infile) +const +{ + int bracketCount = 0; + // First line should contain the command + const char* line = infile.CurrentLine(); + while (line != 0) { + // Process the line + std::string tmp; + for (const char* ptr = line; *ptr != '\0'; ++ptr) + { + if (*ptr == '#') { + // Comment - skip everything else + break; + } else if (*ptr == '{') + bracketCount++; + else if (*ptr == '}') { + bracketCount--; + if (bracketCount == 1) { + if (debug_ > 0) mprintf("DEBUG: addPdbResMap: %s\n", tmp.c_str()); + ArgList aline( tmp ); + // 3 tokens: terminal type (0=beg 1=end), PDB name, unit name + if (aline.Nargs() < 2 || aline.Nargs() > 3) { + mprinterr("Error: Malformed entry in addPdbResMap: %s\n", tmp.c_str()); + return 1; + } + Cpptraj::Structure::TerminalType termType = Cpptraj::Structure::NON_TERMINAL; + int pdbidx = 0; + int unitidx = 1; + if (aline.Nargs() == 3) { + if (aline[0] == "0") + termType = Cpptraj::Structure::BEG_TERMINAL; + else if (aline[0] == "1") + termType = Cpptraj::Structure::END_TERMINAL; + else + mprintf("Warning: Unrecognized terminal type in addPdbResMap: %s\n", aline[0].c_str()); + pdbidx = 1; + unitidx = 2; + } + ((DataSet_PdbResMap*)pdbResidueMap_)->AddPdbResMap( Cpptraj::PdbResMapType(aline[unitidx], aline[pdbidx], termType) ); + tmp.clear(); + } + } else { + if (bracketCount == 2) + tmp += *ptr; + } + } + if (bracketCount < 0) { + mprinterr("Error: Too many close brackets '}' in addPdbResMap command.\n"); + return 1; + } else if (bracketCount == 0) { + break; + } //else { + //mprintf("DEBUG: END OF LINE: addPdbResMap: %s\n", tmp.c_str()); + //} + line = infile.Line(); + } + if (bracketCount != 0) { + mprinterr("Error: Not enough close brackets '}' in addPdbResMap command.\n"); + return 1; + } + return 0; +} +/** LEaP addPdbAtomMap command. */ +int DataIO_LeapRC::AddPdbAtomMap(std::string const& dsname, DataSetList& DSL, BufferedLine& infile) +const +{ + MetaData meta(dsname, "atommap"); + DataSet* ds = DSL.CheckForSet(meta); + if (ds == 0) { + ds = DSL.AddSet(DataSet::NAMEMAP, meta); + if (ds == 0) return 1; + } + DataSet_NameMap& namemap = static_cast<DataSet_NameMap&>( *ds ); + if (debug_ > 0) + mprintf("DEBUG: Name map set: %s\n", namemap.legend()); + int bracketCount = 0; + // First line should contain the command + const char* line = infile.CurrentLine(); + while (line != 0) { + // Process the line + std::string tmp; + for (const char* ptr = line; *ptr != '\0'; ++ptr) + { + if (*ptr == '#') { + // Comment - skip everything else + break; + } else if (*ptr == '{') + bracketCount++; + else if (*ptr == '}') { + bracketCount--; + if (bracketCount == 1) { + if (debug_ > 0) + mprintf("DEBUG: addPdbAtomMap: %s\n", tmp.c_str()); + ArgList aline( tmp ); + // 2 tokens: Old name, new name + if (aline.Nargs() != 2) { + mprinterr("Error: Malformed entry in addPdbAtomMap: %s\n", tmp.c_str()); + return 1; + } + if (debug_ > 0) mprintf("DEBUG: old= %s new= %s\n", aline[0].c_str(), aline[1].c_str()); + namemap.AddNameMap( aline[0], aline[1] ); + tmp.clear(); + } + } else { + if (bracketCount == 2) + tmp += *ptr; + } + } + if (bracketCount < 0) { + mprinterr("Error: Too many close brackets '}' in addPdbAtomMap command.\n"); + return 1; + } else if (bracketCount == 0) { + break; + } //else { + //mprintf("DEBUG: END OF LINE: addPdbResMap: %s\n", tmp.c_str()); + //} + line = infile.Line(); + } + if (bracketCount != 0) { + mprinterr("Error: Not enough close brackets '}' in addPdbAtomMap command.\n"); + return 1; + } + return 0; +} + +/** Load mol2 as a COORDS set */ +int DataIO_LeapRC::LoadMol2(ArgList const& argIn, DataSetList& dsl) const { + ArgList args( argIn.ArgLineStr(), " =" ); + //mprintf("DEBUG: LoadMol2\n"); + //args.PrintList(); + // Should be at least 3 args: NAME loadmol2 FILE + if (args.Nargs() < 3) { + mprinterr("Error: Expected at least <NAME> = loadmol2 <FILE>, got: %s\n", argIn.ArgLine()); + return 1; + } + DataIO_Coords coordsIn; + coordsIn.SetDebug( debug_ ); + std::string mol2path = find_path( args[2], "" ); + if (mol2path.empty()) { + mprinterr("Error: Could not find mol2 %s\n", args[2].c_str()); + return 1; + } + if (coordsIn.ReadData( mol2path, dsl, args[0] )) { + mprinterr("Error: Could not load structure from '%s' into '%s'\n", + args[2].c_str(), args[0].c_str()); + return 1; + } + mprintf("\tLoaded file '%s' into '%s'\n", + args[2].c_str(), args[0].c_str()); + + // Assume we want the remaining args to be passed to the builder. + args.MarkArg(0); + args.MarkArg(1); + args.MarkArg(2); + ArgList tmparg = args.RemainingArgs(); + + Exec_Build build; + Exec::RetType ret = build.BuildStructure( coordsIn.added_back(), dsl, debug_, "", "default_name", tmparg.hasKey("prepareforleap"), static_cast<DataSet_LeapOpts*>(leapopts_) ); + if (ret == CpptrajState::ERR) { + mprinterr("Error: Build of '%s' failed.\n", args[2].c_str()); + return 1; + } + + return 0; +} + +/** Load PDB and build it. */ +int DataIO_LeapRC::LoadPDB(ArgList const& argIn, DataSetList& dsl) const { + ArgList args( argIn.ArgLineStr(), " =" ); + // Should be at least 3 args: NAME loadpdb FILE + if (args.Nargs() < 3) { + mprinterr("Error: Expected at least <NAME> = loadpdb <FILE>, got: %s\n", argIn.ArgLine()); + return 1; + } + DataIO_Coords coordsIn; + coordsIn.SetDebug( debug_ ); +// DataSetList tmpdsl; + std::string pdbpath = find_path( args[2], "" ); + if (pdbpath.empty()) { + mprinterr("Error: Could not find PDB %s\n", args[2].c_str()); + return 1; + } + if (coordsIn.ReadData( pdbpath, dsl, args[0] )) { + mprinterr("Error: Could not load structure from '%s' into '%s'\n", + args[2].c_str(), args[0].c_str()); + return 1; + } + if (coordsIn.Nadded() != 1) { + mprinterr("Internal Error: DataIO_LeapRC::LoadPDB(): Expected 1 COORDS set loaded from PDB, got %u\n", coordsIn.Nadded()); + return 1; + } + mprintf("\tLoaded file '%s' into '%s'\n", args[2].c_str(), args[0].c_str()); + + // Assume we want the remaining args to be passed to the builder. + args.MarkArg(0); + args.MarkArg(1); + args.MarkArg(2); + ArgList tmparg = args.RemainingArgs(); + + Exec_Build build; + Exec::RetType ret = build.BuildStructure( coordsIn.added_back(), dsl, debug_, "", "default_name", tmparg.hasKey("prepareforleap"), static_cast<DataSet_LeapOpts*>(leapopts_) ); + if (ret == CpptrajState::ERR) { + mprinterr("Error: Build of '%s' failed.\n", args[2].c_str()); + return 1; + } + + return 0; +} + +/** Leap options data set default name. */ +const char* DataIO_LeapRC::LEAPOPTSNAME_ = "_LEAP_OPTIONS_"; + +/** Leap pdb residue map data set default name. */ +const char* DataIO_LeapRC::PDBRESMAPNAME_ = "_LEAP_PDBRESMAP_"; + +/// \return 1 if 'on', 0 if 'off', -1 otherwise. +static inline int on_off_opt(const char* desc, std::string const& opt) { + if (opt == "off") return 0; + else if (opt == "on") return 1; + mprinterr("Error: Expected 'on' or 'off' for %s, got %s\n", desc, opt.c_str()); + return -1; +} + +/** LEaP 'set' command. */ +int DataIO_LeapRC::LeapSet(ArgList const& argIn, DataSetList& dsl) const { + if (leapopts_ == 0) { + mprinterr("Internal Error: DataIO_LeapRC::LeapSet(): LeapSet() called before ReadData().\n"); + return 1; + } + DataSet_LeapOpts& OPTS = static_cast<DataSet_LeapOpts&>( *leapopts_ ); + + if (argIn.Nargs() > 3 && ToLower(argIn[2]) == "name") { + // set <unit> name <name> + // Get the unit + DataSet* ds = getUnit( argIn[1], dsl ); + if (ds == 0) { + return 1; + } + DataSet_Coords& crd = static_cast<DataSet_Coords&>( *ds ); + crd.TopPtr()->SetParmTitle( argIn[3] ); + } else if (argIn.Nargs() > 3 && ToLower(argIn[1]) == "default") { + // set default <parameter> <value> + if ( ToLower(argIn[2]) == "pbradii" ) { + if ( OPTS.SetGbRadii( ToLower(argIn[3]) ) ) { + mprinterr("Error: Could not set default pbradii %s\n", argIn[3].c_str()); + return 1; + } + } else if ( ToLower(argIn[2]) == "cmap" ) { + int iopt = on_off_opt(argIn.ArgLine(), ToLower(argIn[3])); + if ( iopt == 1 ) { + mprintf("Warning: LEaP 'set default cmap on' command ignored; CMAP terms will always be added if present.\n"); + } else if ( iopt == 0 ) { + mprinterr("Error: LEaP 'set default cmap off' is not supported; CMAP terms will always be added if present.\n"); + return 1; + } else + mprintf("Warning: Skipping unrecognized 'set default cmap' mode: %s\n", argIn[3].c_str()); + } else if ( ToLower(argIn[2]) == "flexiblewater" ) { + int iopt = on_off_opt(argIn.ArgLine(), ToLower(argIn[3])); + if (iopt < 0) return 1; + OPTS.SetFlexibleWater( (bool)iopt ); + } else if ( ToLower(argIn[2]) == "deleteextrapointangles" ) { + int iopt = on_off_opt(argIn.ArgLine(), ToLower(argIn[3])); + if (iopt < 0) return 1; + OPTS.SetDeleteExtraPointAngles( (bool)iopt ); + } else if ( ToLower(argIn[2]) == "dipole_damp_factor" ) { + if (OPTS.SetDipoleDampFactor( convertToDouble(argIn[3]) )) { + mprinterr("Error: Could not set dipole_damp_factor.\n"); + return 1; + } + } else if ( ToLower(argIn[2]) == "sceescalefactor" ) { + if (OPTS.SetSCEE( convertToDouble(argIn[3]) )) { + mprinterr("Error: Could not set sceescalefactor.\n"); + return 1; + } + } else if ( ToLower(argIn[2]) == "scnbscalefactor" ) { + if (OPTS.SetSCNB( convertToDouble(argIn[3]) )) { + mprinterr("Error: Could not set scnbscalefactor.\n"); + return 1; + } + } else if (ToLower(argIn[2]) == "ipol" ) { + if (OPTS.SetIpol( convertToInteger(argIn[3]) )) { + mprinterr("Error: Could not set IPOL\n"); + return 1; + } + } else { + mprinterr("Error: Unhandled 'set default' command: %s\n", argIn.ArgLine()); + return 1; + } + } else { + mprinterr("Error: Unhandled 'set' command: %s\n", argIn.ArgLine()); + return 1; + } + + return 0; +} + +/** Get COORDS unit from data set list */ +DataSet* DataIO_LeapRC::getUnit(std::string const& unitName, DataSetList const& dsl) const { + //DataSet* ds = dsl.CheckForSet( MetaData(unitName) ); + DataSet* ds = dsl.GetDataSet( unitName ); + if (ds == 0) { + mprinterr("Error: Set '%s' not found.\n", unitName.c_str()); + return 0; + } + if (ds->Group() != DataSet::COORDINATES) { + mprinterr("Error: Set '%s' is not COORDINATES.\n", ds->legend()); + return 0; + } + mprintf("\tCOORDINATES set %s\n", ds->legend()); + return ds; +} + +/** Save specified unit to a topology and restart file. */ +int DataIO_LeapRC::SaveAmberParm(std::string const& unitName, ArgList& line, DataSetList& dsl) +const +{ + // saveamberparm <unit> <topfile> <restartfile> + if (unitName.empty()) { + mprinterr("Error: 'saveamberparm' : Unit name missing.\n"); + return 1; + } + std::string topName = line.GetStringNext(); + if (topName.empty()) { + mprinterr("Error: 'saveamberparm' : Topology name missing.\n"); + return 1; + } + std::string crdName = line.GetStringNext(); + if (crdName.empty()) { + mprinterr("Error: 'saveamberparm' : Coordinates name missing.\n"); + return 1; + } + mprintf("\tSaving unit '%s' to topology '%s' and coordinates '%s'\n", + unitName.c_str(), topName.c_str(), crdName.c_str()); + // Get the unit + DataSet* ds = getUnit( unitName, dsl ); +// DataSet* ds = dsl.CheckForSet( MetaData(unitName) ); + if (ds == 0) { +// mprinterr("Error: Set '%s' not found.\n", unitName.c_str()); + return 1; + } +// if (ds->Group() != DataSet::COORDINATES) { +// mprinterr("Error: Set '%s' is not COORDINATES.\n", ds->legend()); +// return 1; +// } +// mprintf("\tCOORDINATES set %s\n", ds->legend()); + if (ds->Size() < 1) { + mprinterr("Error: '%s' is empty.\n", ds->legend()); + return 1; + } + DataSet_Coords& crd = static_cast<DataSet_Coords&>( *ds ); // FIXME this really should be const + + // Give the Topology parameters + ArgList buildarg = line.RemainingArgs(); + // Default GB radii + DataSet_LeapOpts& OPTS = static_cast<DataSet_LeapOpts&>( *leapopts_ ); + Cpptraj::Parm::GB_Params gbradii; + if (gbradii.Init_GB_Radii(OPTS.PbRadii())) return 1; + // Get parameters + Cpptraj::Structure::Creator creator; + if (creator.InitCreator(buildarg, dsl, debug_)) { + return 1; + } + if (!creator.HasMainParmSet()) { + mprinterr("Error: No parameter sets.\n"); + return 1; + } + // Assign parameters + Cpptraj::Parm::AssignParams AP; + AP.SetDebug( debug_ ); + AP.SetVerbose( debug_ ); + Topology& topOut = *(crd.TopPtr()); + int nmissing = 0; + if ( AP.AssignParameters( topOut, *(creator.MainParmSetPtr()), nmissing ) ) { + mprinterr("Error: Could not assign parameters for '%s'.\n", topOut.c_str()); + return 1; + } + if (nmissing != 0) { + mprinterr("Error: Missing %i parameters for '%s'\n", nmissing, topOut.c_str()); + return 1; + } + // Assign GB parameters + gbradii.GB_Info(); + if (gbradii.Assign_GB_Radii(topOut)) { + mprinterr("Error: Could not assign GB parameters for '%s'\n", topOut.c_str()); + return 1; + } + + Parm_Amber parmOut; + parmOut.SetDebug( debug_ ); + if (parmOut.WriteParm( topName, crd.Top() )) { + mprinterr("Error: Write of '%s' failed.\n", topName.c_str()); + return 1; + } + + if (crd.Size() > 1) + mprintf("Warning: '%s' has more than 1 frame. Only using first frame.\n", crdName.c_str()); + + Trajout_Single trajOut; + ArgList tmpargs; + if (trajOut.PrepareTrajWrite( crdName, tmpargs, dsl, crd.TopPtr(), crd.CoordsInfo(), + 1, TrajectoryFile::UNKNOWN_TRAJ )) + { + mprinterr("Error: Could not set up '%s' for write.\n", crdName.c_str()); + return 1; + } + trajOut.PrintInfo(0); + Frame currentFrame = crd.AllocateFrame(); + crd.GetFrame( 0, currentFrame ); + if ( trajOut.WriteSingle( 0, currentFrame )) { + mprinterr("Error: Could not write frame to '%s'\n", crdName.c_str()); + return 1; + } + trajOut.EndTraj(); + + return 0; +} + +/// Move sets from paramDSL to dsl +/*static inline int addSetsToList(DataSetList& dsl, DataSetList& paramDSL) +{ + // Add data sets to the main data set list + for (DataSetList::const_iterator ds = paramDSL.begin(); ds != paramDSL.end(); ++ds) { + DataSet* dtmp = dsl.CheckForSet( (*ds)->Meta() ); + if (dtmp != 0) { + mprinterr("Error: Set '%s' already exists.\n", (*ds)->legend()); + return 1; + } + dsl.AddSet( *ds ); + } + paramDSL.SetHasCopies( true ); + return 0; +}*/ + +/** Read (source) a leaprc (input) file. */ +int DataIO_LeapRC::ReadData(FileName const& fname, DataSetList& dsl, std::string const& dsname) +{ + atomHybridizations_.clear(); + units_.clear(); + // Get/allocate leap options + leapopts_ = dsl.FindSetOfType( std::string(LEAPOPTSNAME_), DataSet::LEAPOPTS ); + if ( leapopts_ == 0) + leapopts_ = dsl.AddSet( DataSet::LEAPOPTS, MetaData( std::string(LEAPOPTSNAME_) ) ); + if (leapopts_ == 0) { + mprinterr("Internal Error: DataIO_LeapRC::ReadData(): Could not allocate leap options data set.\n"); + return 1; + } + if (debug_ > 0) + mprintf("DEBUG: Leap options set: %s\n", leapopts_->legend()); + // Get/allocate pdb residue map + pdbResidueMap_ = dsl.FindSetOfType( std::string(PDBRESMAPNAME_), DataSet::PDBRESMAP ); + if (pdbResidueMap_ == 0) + pdbResidueMap_ = dsl.AddSet( DataSet::PDBRESMAP, MetaData( std::string(PDBRESMAPNAME_) ) ); + if (pdbResidueMap_ == 0) { + mprinterr("Internal Error: DataIO_LeapRC::ReadData(): Could not allocate leap PDB residue map data set.\n"); + return 1; + } + if (debug_ > 0) + mprintf("DEBUG: Leap PDB residue map set: %s\n", pdbResidueMap_->legend()); + + // First, need to determine where the Amber FF files are + const char* env = getenv("AMBERHOME"); + if (env != 0) + amberhome_ = std::string(env) + "/dat/leap/"; + else { + mprintf("Warning: AMBERHOME is not set. Determining FF file location based on leaprc file.\n"); + // Try to guess based on where the leaprc file is + FileName leapcmddir( fname.DirPrefix_NoSlash() ); + if (leapcmddir.Base() == "oldff") { + FileName leapcmddir2( leapcmddir.DirPrefix_NoSlash() ); + amberhome_ = leapcmddir2.DirPrefix(); + } else + amberhome_ = leapcmddir.DirPrefix(); + } + if (!amberhome_.empty()) + mprintf("\tForce field files located in '%s'\n", amberhome_.c_str()); + + if (Source(fname, dsl, dsname)) { + mprinterr("Error: Could not read LEaP input from '%s'\n", fname.full()); + return 1; + } + + // DEBUG + if (debug_ > 0) + ((DataSet_PdbResMap*)pdbResidueMap_)->PrintPdbResMap(); + return 0; +} + +/** Copy rhs to lhs */ +int DataIO_LeapRC::unitAlias(std::string const& lhs, std::string const& rhs, + DataSetList& dsl, std::string const& dsname) +const +{ + if (debug_ > 0) + mprintf("DEBUG: %s = %s\n", lhs.c_str(), rhs.c_str()); + // Check if lhs already exists. + DataSet* existing = dsl.CheckForSet( MetaData(dsname, lhs) ); + if (existing != 0) { + // Set already exists. Is it the correct type? + if (existing->Type() == DataSet::COORDS) { + mprintf("Warning: Overwriting existing unit '%s' with '%s'\n", existing->legend(), rhs.c_str()); + // Do not overwrite yet in case we can't find a set to copy. + } else { + mprinterr("Error: '%s' exists but is not COORDS, cannot overwrite with '%s'\n", existing->legend(), rhs.c_str()); + return 1; + } + } + // Find the unit to make a copy of + DataSet* ds0 = dsl.CheckForSet( MetaData(dsname, rhs) ); + if (ds0 == 0) { + // Its possible the unit in question is loaded by a previous command. + ds0 = dsl.GetDataSet( "*[" + rhs + "]" ); + if (ds0 != 0) { + mprintf("Info: Using unit '%s' from previously loaded set '%s'\n", + rhs.c_str(), ds0->Meta().Name().c_str()); + } + } + if (ds0 == 0) { + //mprinterr("Error: Could not find unit '%s' to copy to '%s'\n", rhs.c_str(), lhs.c_str()); + //return 1; + // NOTE: Make only a warning to replicate LEAP behavior + mprintf("Warning: Could not find unit '%s' to copy to '%s' - skipping.\n", rhs.c_str(), lhs.c_str()); + return 0; + } + // Remove set if it already exists + if (existing != 0) { + dsl.RemoveSet( existing ); + existing = 0; + } + DataSet_Coords& crd0 = static_cast<DataSet_Coords&>( *ds0 ); + // Allocate copy + DataSet* ds1 = dsl.AddSet( DataSet::COORDS, MetaData(dsname, lhs) ); + if (ds1 == 0) { + mprinterr("Error: Could not allocate unit '%s' for '%s'\n", lhs.c_str(), rhs.c_str()); + return 1; + } + DataSet_Coords& crd1 = static_cast<DataSet_Coords&>( *ds1 ); + if (crd1.CoordsSetup( crd0.Top(), crd0.CoordsInfo() )) { + mprinterr("Error: Could not set up unit '%s' for '%s'\n", lhs.c_str(), rhs.c_str()); + return 1; + } + crd1.Allocate( DataSet::SizeArray(1, 1) ); + // Copy + Frame tmpFrm = crd0.AllocateFrame(); + crd0.GetFrame(0, tmpFrm); + crd1.SetCRD(0, tmpFrm ); + // Copy associated data + crd1.CopyAssociatedDataFrom( crd0 ); + if (debug_ > 0) + mprintf("DEBUG: Created unit set %s\n", crd1.legend()); + return 0; +} + +/** Execute leap source command */ +int DataIO_LeapRC::Source(FileName const& fname, DataSetList& dsl, std::string const& dsname) +{ + BufferedLine infile; + if (infile.OpenFileRead( find_path(fname.Full(), "cmd/") )) { + mprinterr("Error: Could not open leaprc file '%s'\n", fname.full()); + return 1; + } + mprintf("\tReading LEaP input from '%s'\n", fname.base()); + enum LeapCmdType { LOADAMBERPARAMS = 0, LOADOFF, LOADAMBERPREP, ADDATOMTYPES, + ADDPDBRESMAP, ADDPDBATOMMAP, LOADMOL2, LOADPDB, SOURCE, + QUIT, SAVEAMBERPARM, ADDPATH, SET, UNKNOWN_CMD }; + int err = 0; + const char* ptr = infile.Line(); + // FIXME need to convert to all lowercase for matching commands; leap allows + // mixed case + typedef std::vector<std::string> Sarray; + Sarray aliasPairs; + while (ptr != 0) { + // Use lineBuf to store all non-comment characters + std::string lineBuf; + if (ptr[0] != '\0' && ptr[0] != '#') { + // Note if this line contains an equals sign. + bool has_equals = false; + for (const char* p = ptr; *p != '\0'; ++p) { + if (*p == '=') { + has_equals = true; + //break; + } else if (*p == '#' && p != ptr && *(p-1) != '\\') { + // Ignore comments + break; + } + lineBuf += *p; + } + + //ArgList line( ptr, " =\t" ); + ArgList line( lineBuf, " =\t" ); + if (debug_ > 0) + mprintf("\tLEAP> %s\n", ptr); + //line.PrintDebug(); // DEBUG + + LeapCmdType leapcmd = UNKNOWN_CMD; + // Look through all args, lowercase, for recognized commands. + int pos = -1; + for (int arg = 0; arg != line.Nargs(); arg++) { + std::string argStr = ToLower( line[arg] ); + if (argStr == "loadamberparams") { pos = arg; leapcmd = LOADAMBERPARAMS; break; } + else if (argStr == "loadoff" ) { pos = arg; leapcmd = LOADOFF; break; } + else if (argStr == "loadamberprep" ) { pos = arg; leapcmd = LOADAMBERPREP; break; } + else if (argStr == "addatomtypes" ) { pos = arg; leapcmd = ADDATOMTYPES; break; } + else if (argStr == "addpdbresmap" ) { pos = arg; leapcmd = ADDPDBRESMAP; break; } + else if (argStr == "addpdbatommap" ) { pos = arg; leapcmd = ADDPDBATOMMAP; break; } + else if (argStr == "loadmol2" ) { pos = arg; leapcmd = LOADMOL2; break; } + else if (argStr == "loadpdb" ) { pos = arg; leapcmd = LOADPDB; break; } + else if (argStr == "source" ) { pos = arg; leapcmd = SOURCE; break; } + else if (argStr == "quit" ) { pos = arg; leapcmd = QUIT; break; } + else if (argStr == "saveamberparm" ) { pos = arg; leapcmd = SAVEAMBERPARM; break; } + else if (argStr == "addpath" ) { pos = arg; leapcmd = ADDPATH; break; } + else if (argStr == "set" ) { pos = arg; leapcmd = SET; break; } + } + + err = 0; + if (leapcmd == LOADAMBERPARAMS) + err = LoadAmberParams(line.GetStringKey(line[pos]), dsl, dsname, atomHybridizations_ ); + else if (leapcmd == SAVEAMBERPARM) + err = SaveAmberParm(line.GetStringKey(line[pos]), line, dsl); + else if (leapcmd == LOADOFF) + err = LoadOFF( line.GetStringKey(line[pos]), dsl, dsname, units_ ); + else if (leapcmd == LOADAMBERPREP) + err = LoadAmberPrep( line.GetStringKey(line[pos]), dsl, dsname, units_ ); + else if (leapcmd == ADDATOMTYPES) + err = AddAtomTypes(atomHybridizations_, infile); + else if (leapcmd == ADDPDBRESMAP) { + err = AddPdbResMap(infile); + } else if (leapcmd == ADDPDBATOMMAP) + err = AddPdbAtomMap(dsname, dsl, infile); + else if (leapcmd == LOADMOL2) + err = LoadMol2(line, dsl); + else if (leapcmd == LOADPDB) + err = LoadPDB(line, dsl); + else if (leapcmd == SOURCE) { + std::string fname1 = line.GetStringKey("source"); + if (fname1.empty()) { + mprinterr("Error: No filename given for 'source'\n"); + return 1; + } else if (fname1 == fname.Full()) { + mprinterr("Error: File '%s' attempting to source itself '%s'\n", + fname.full(), fname1.c_str()); + return 1; + } + err = Source(fname1, dsl, dsname); + } else if (leapcmd == QUIT) { + // Do not read any more. + mprintf("\tEncountered 'quit' in leaprc file, not reading any more.\n"); + break; + } else if (leapcmd == ADDPATH) { + // Add path to directories to search for files specified by other commands. + err = AddPath( line.GetStringKey(line[pos]) ); + } else if (leapcmd == SET) { + err = LeapSet(line, dsl); + } else { + // Unrecognized so far. See if this is a unit alias (interpret as 'alias = unit') + if (has_equals && line.Nargs() == 2) { + //err = unitAlias( line[0], line[1], dsl, dsname ); + aliasPairs.push_back( line[0] ); + aliasPairs.push_back( line[1] ); + } else { + mprintf("Warning: Skipping unhandled LEaP command line: %s\n", ptr); + } + } + } + if (err != 0) break; + ptr = infile.Line(); + } + infile.CloseFile(); + + // Do any unit aliases + for (unsigned int idx = 0; idx < aliasPairs.size(); idx += 2) + { + if ( unitAlias( aliasPairs[idx], aliasPairs[idx+1], dsl, dsname ) ) { + mprinterr("Error: Creating unit alias %s = %s\n", aliasPairs[idx].c_str(), aliasPairs[idx+1].c_str()); + err++; + } + } + + // Add data sets to the main data set list + //if (addSetsToList(dsl, paramDSL)) return err+1; + + //if (addSetsToList(dsl, unitDSL)) return err+1; + + return err; +} + +// DataIO_LeapRC::WriteHelp() +void DataIO_LeapRC::WriteHelp() +{ + +} + +// DataIO_LeapRC::processWriteArgs() +int DataIO_LeapRC::processWriteArgs(ArgList& argIn) +{ + + return 0; +} + +// DataIO_LeapRC::WriteData() +int DataIO_LeapRC::WriteData(FileName const& fname, DataSetList const& dsl) +{ + + return 1; +} diff --git a/src/DataIO_LeapRC.h b/src/DataIO_LeapRC.h new file mode 100644 index 0000000000..925bc16c79 --- /dev/null +++ b/src/DataIO_LeapRC.h @@ -0,0 +1,85 @@ +#ifndef INC_DATAIO_LEAPRC_H +#define INC_DATAIO_LEAPRC_H +#include "DataIO.h" +#include "AtomType.h" // AtomType::HybridizationType +#include <map> +class BufferedLine; +/// Read parameters and units from a leap rc file +class DataIO_LeapRC : public DataIO { + public: + DataIO_LeapRC(); + static void ReadHelp(); + static void WriteHelp(); + static BaseIOtype* Alloc() { return (BaseIOtype*)new DataIO_LeapRC(); } + int processReadArgs(ArgList&); + int ReadData(FileName const&, DataSetList&, std::string const&); + int processWriteArgs(ArgList&); + int WriteData(FileName const&, DataSetList const&); + bool ID_DataFormat(CpptrajFile&); + + static void PrintSupportedLeapCommands(); + private: + /// Store atom type hybridization and element from leaprc addAtomTypes + class LeapEltHybrid { + public: + /// CONSTRUCTOR + LeapEltHybrid(); + /// COPY CONSTRUCTOR + LeapEltHybrid(LeapEltHybrid const&); + /// ASSIGNMENT + LeapEltHybrid& operator=(const LeapEltHybrid&); + /// \return true if not equal. + bool operator!=(const LeapEltHybrid& rhs) const; + /// Set from hybridization string, element string + void SetEltHybrid(std::string const&, std::string const&); + /// \return Atom type hybridization + AtomType::HybridizationType AtypeHybridization() const; + /// \return Atom type element string + const char* AtypeElementStr() const; + private: + AtomType::HybridizationType hybrid_; + char elt_[3]; ///< Hold 2 char element name (plus null) + }; + + /// Pair atom type name to element/hybridization + typedef std::pair<NameType, LeapEltHybrid> AtypeEltHybridPairType; + /// Map atom type name to element/hybridization + typedef std::map<NameType, LeapEltHybrid> AtypeEltHybridPairMap; + /// Array of strings + typedef std::vector<std::string> Sarray; + /// Array of data sets + typedef std::vector<DataSet*> DSarray; + + int AddPath(std::string const&); + static int is_frcmod(std::string const&, bool&, bool&); + int LoadAmberParams(std::string const&, DataSetList&, std::string const&, AtypeEltHybridPairMap const&) const; + int LoadOFF(std::string const&, DataSetList&, std::string const&, DSarray&) const; + int LoadAmberPrep(std::string const&, DataSetList&, std::string const&, DSarray&) const; + int AddAtomTypes(AtypeEltHybridPairMap&, BufferedLine&) const; + int AddPdbResMap(BufferedLine&) const; + int AddPdbAtomMap(std::string const&, DataSetList&, BufferedLine&) const; + int LoadMol2(ArgList const&, DataSetList&) const; + int LoadPDB(ArgList const&, DataSetList&) const; + int LeapSet(ArgList const&, DataSetList&) const; + DataSet* getUnit(std::string const&, DataSetList const&) const; + int SaveAmberParm(std::string const&, ArgList&, DataSetList& dsl) const; + int unitAlias(std::string const&, std::string const&, DataSetList&, std::string const&) const; + int Source(FileName const&, DataSetList&, std::string const&); + + /// Used to check if a parm/lib file was already loaded. + static inline bool check_already_loaded(Sarray const&, std::string const&); + /// \return either file or Amberhome/dir/file + std::string find_path(std::string const&, std::string const&) const; + + std::string amberhome_; + AtypeEltHybridPairMap atomHybridizations_; ///< Store hybridizations for atom types + DSarray units_; ///< Hold COORDS sets which have been added as units + Sarray searchPaths_; + static Sarray paramFiles_; ///< Track amber FF param files loaded from leaprc files + static Sarray libFiles_; ///< Track amber library/prep files loaded from leaprc files + static const char* LEAPOPTSNAME_; ///< Leap options data set name + static const char* PDBRESMAPNAME_; ///< Leap PDB residue map data set name + DataSet* leapopts_; ///< DataSet holding leap options + DataSet* pdbResidueMap_; ///< DataSet holding the leap pdb residue map +}; +#endif diff --git a/src/DataIO_Mdout.cpp b/src/DataIO_Mdout.cpp index 152bf546f2..bcfd037449 100644 --- a/src/DataIO_Mdout.cpp +++ b/src/DataIO_Mdout.cpp @@ -37,6 +37,7 @@ DataIO_Mdout::DataIO_Mdout() { termIdxMap_.insert(NameIdxPair("TEMP(K)", TEMP)); termIdxMap_.insert(NameIdxPair("PRESS", PRESS)); termIdxMap_.insert(NameIdxPair("DV/DL", DVDL)); + termIdxMap_.insert(NameIdxPair("CMAP", CMAP)); } // DataIO_Mdout::ID_DataFormat() @@ -67,7 +68,7 @@ const char* DataIO_Mdout::Enames_[] = { "ANGLE", "DIHED", "VDW", "EELEC", "EGB", "EPB", "ECAVITY", "EDISPER", "VDW1-4", "EEL1-4", "RST", "EAMBER", "Density", "RMS", "EKtot", "ESURF", "EAMD_BOOST", "VOLUME", "TEMP", - "PRESS", "DVDL", 0 + "PRESS", "DVDL", "CMAP", 0 }; /** \return FieldType corresponding to given term name, or N_FIELDTYPES if diff --git a/src/DataIO_Mdout.h b/src/DataIO_Mdout.h index 8ad5c4e509..0d30c185ed 100644 --- a/src/DataIO_Mdout.h +++ b/src/DataIO_Mdout.h @@ -22,7 +22,7 @@ class DataIO_Mdout : public DataIO { ANGLE, DIHED, VDWAALS, EEL, EGB, EPB, ECAVITY, EDISPER, VDW14, EEL14, RESTRAINT, EAMBER, DENSITY, RMS, EKTOT, ESURF, EAMD_BOOST, VOLUME, TEMP, - PRESS, DVDL, N_FIELDTYPES }; + PRESS, DVDL, CMAP, N_FIELDTYPES }; FieldType getTermIdx(std::string const&) const; int GetAmberEterms(const char*, Darray&, std::vector<bool>&); diff --git a/src/DataIO_Std.cpp b/src/DataIO_Std.cpp index 8f1054eda5..400be4ff96 100644 --- a/src/DataIO_Std.cpp +++ b/src/DataIO_Std.cpp @@ -18,10 +18,12 @@ #include "DataSet_Vector.h" // For reading TODO remove dependency? #include "DataSet_Mat3x3.h" // For reading TODO remove dependency? #include "DataSet_PairwiseCache_MEM.h" // For reading +#include "DataSet_NameMap.h" // For reading #include "DataSet_2D.h" #include "DataSet_MatrixFlt.h" #include "DataSet_MatrixDbl.h" #include "DataSet_3D.h" +#include "DataSet_Parameters.h" // CONSTRUCTOR DataIO_Std::DataIO_Std() : @@ -46,7 +48,9 @@ DataIO_Std::DataIO_Std() : dims_[0] = 0; dims_[1] = 0; dims_[2] = 0; + SetValid( DataSet::PARAMETERS ); SetValid( DataSet::STRINGVAR ); + SetValid( DataSet::NAMEMAP ); } static void PrintColumnError(int idx) { @@ -94,8 +98,9 @@ void DataIO_Std::ReadHelp() { "\t\tbin {center|corner*} : Coords specify bin centers or corners (default corners).\n" "\tvector : Read data as vector: VX VY VZ [OX OY OZ]\n" "\t\tmagnitude : Assume vector data final column contains vector magnitude.\n" - "\tmat3x3 : Read data as 3x3 matrices: M(1,1) M(1,2) ... M(3,2) M(3,3)\n"); - + "\tmat3x3 : Read data as 3x3 matrices: M(1,1) M(1,2) ... M(3,2) M(3,3)\n" + "\tnamemap : Read data as atom name map ('#TgtAt Tgt RefAt Ref' or '#Tgt Ref')\n" + ); } @@ -107,6 +112,7 @@ int DataIO_Std::processReadArgs(ArgList& argIn) { else if (argIn.hasKey("read3d")) mode_ = READ3D; else if (argIn.hasKey("vector")) mode_ = READVEC; else if (argIn.hasKey("mat3x3")) mode_ = READMAT3X3; + else if (argIn.hasKey("namemap")) mode_ = READNAMEMAP; indexcol_ = argIn.getKeyInt("index", -1); // Column user args start from 1. if (indexcol_ == 0) { @@ -223,6 +229,7 @@ int DataIO_Std::ReadData(FileName const& fname, case READ3D: err = Read_3D(fname.Full(), dsl, dsname); break; case READVEC: err = Read_Vector(fname.Full(), dsl, dsname); break; case READMAT3X3: err = Read_Mat3x3(fname.Full(), dsl, dsname); break; + case READNAMEMAP: err = Read_NameMap(fname.Full(), dsl, dsname); break; } return err; } @@ -849,6 +856,7 @@ int DataIO_Std::Read_3D(std::string const& fname, // DataIO_Std::Read_Vector() int DataIO_Std::Read_Vector(std::string const& fname, DataSetList& datasetlist, std::string const& dsname) +const { // See if set exists DataSet* ds = datasetlist.CheckForSet( dsname ); @@ -996,6 +1004,7 @@ int DataIO_Std::Read_Vector(std::string const& fname, // DataIO_Std::Read_Mat3x3() int DataIO_Std::Read_Mat3x3(std::string const& fname, DataSetList& datasetlist, std::string const& dsname) +const { // Buffer file BufferedLine buffer; @@ -1048,6 +1057,72 @@ int DataIO_Std::Read_Mat3x3(std::string const& fname, return (datasetlist.AddOrAppendSets("", DataSetList::Darray(), DataSetList::DataListType(1, ds))); } +/** Read an atom name map. */ +int DataIO_Std::Read_NameMap(std::string const& fname, + DataSetList& dsl, std::string const& dsname) +const +{ + // Buffer file + BufferedLine buffer; + if (buffer.OpenFileRead( fname )) return 1; + mprintf("\tAttempting to read atom name map data.\n"); + // Read through file + const char* linebuffer = buffer.Line(); + int ncols = 0; + int tgtcol = 0; + int refcol = 0; + DataSet_NameMap* namemap = 0; + while (linebuffer != 0) { + // Skip comments + if (linebuffer[0] != '#') { + int ntokens = buffer.TokenizeLine(" \t\n\r"); + if (ncols == 0) { + // First non-comment line. Determine num columns + ncols = ntokens; + if (ncols == 4) { + tgtcol = 1; + refcol = 3; + } else if (ncols == 2) { + tgtcol = 0; + refcol = 1; + } else { + mprinterr("Error: For atom name map, expect 4 columns (#TgtAt Tgt RefAt Ref)\n" + "Error: or 2 columns (#TgtAt RefAt), got %i\n", ntokens); + return 1; + } + // Allocate the name map + namemap = (DataSet_NameMap*)dsl.AddSet(DataSet::NAMEMAP, MetaData(dsname)); + if (namemap == 0) { + mprinterr("Error: Could not allocate name map set '%s'\n", dsname.c_str()); + return 1; + } + } else if (ncols != ntokens) { + mprinterr("Error: Number of columns has changed at line %i from %i to %i\n", + buffer.LineNumber(), ncols, ntokens); + mprinterr("Error: '%s'\n", linebuffer); + return 1; + } + // Read map line + std::string tgt, ref; + for (int col = 0; col != ntokens; col++) { + const char* ptr = buffer.NextToken(); + if (col == tgtcol) + tgt.assign( ptr ); + else if (col == refcol) + ref.assign( ptr ); + } + // Skip mapping if tgt == ref + if (tgt != ref) { + if (debug_ > 0) + mprintf("DEBUG: Map ref %s to tgt %s\n", ref.c_str(), tgt.c_str()); + namemap->AddNameMap(ref, tgt); + } + } // END if not comment + linebuffer = buffer.Line(); + } // END loop over file + return 0; +} + // ----------------------------------------------------------------------------- void DataIO_Std::WriteHelp() { mprintf("\theader : Print header line.\n" @@ -1211,6 +1286,8 @@ int DataIO_Std::WriteData(FileName const& fname, DataSetList const& SetList) } else if (SetList[0]->Type() == DataSet::STRINGVAR) { // For debugging string variables err = WriteStringVars(file, SetList); + } else if (SetList[0]->Type() == DataSet::NAMEMAP) { + err = WriteNameMap(file, SetList); } else if (SetList[0]->Ndim() == 1) { if (group_ == NO_TYPE) { if (isInverted_) @@ -1223,11 +1300,39 @@ int DataIO_Std::WriteData(FileName const& fname, DataSetList const& SetList) err = WriteData2D(file, SetList); else if (SetList[0]->Ndim() == 3) err = WriteData3D(file, SetList); + else if (SetList[0]->Type() == DataSet::PARAMETERS) + err = WriteParameters(file, SetList); + else + mprintf("Warning: Could not determine how to write dat based on set '%s'\n", + SetList[0]->legend()); file.CloseFile(); } return err; } +/** Write parameters to data file. */ +int DataIO_Std::WriteParameters(CpptrajFile& file, DataSetList const& Sets) const { + if (Sets.size() == 1) { + DataSet_Parameters const& prm = static_cast<DataSet_Parameters const&>( *(Sets[0]) ); + prm.Print(file); + } else if (Sets.size() > 1) { + // Create a combined parameter set + Cpptraj::Parm::ParameterSet prm; + for (DataSetList::const_iterator it = Sets.begin(); it != Sets.end(); ++it) + { + if ((*it)->Type() == DataSet::PARAMETERS) { + DataSet_Parameters const& param = static_cast<DataSet_Parameters const&>( *(*it) ); + Cpptraj::Parm::ParameterSet::UpdateCount UC; + prm.UpdateParamSet( param, UC, debug_, debug_ ); // FIXME verbose + } else { + mprintf("Warning: Set '%s' is not a parameter set, skipping.\n", (*it)->legend()); + } + } + prm.Print(file); + } + return 0; +} + /** For debugging string variables, write out to a file. */ int DataIO_Std::WriteStringVars(CpptrajFile& file, DataSetList const& Sets) const { for (DataSetList::const_iterator ds = Sets.begin(); ds != Sets.end(); ++ds) @@ -1246,6 +1351,33 @@ int DataIO_Std::WriteStringVars(CpptrajFile& file, DataSetList const& Sets) cons return 0; } +/** Write atom name map to file. */ +int DataIO_Std::WriteNameMap(CpptrajFile& file, DataSetList const& Sets) const { + for (DataSetList::const_iterator ds = Sets.begin(); ds != Sets.end(); ++ds) + { + if ( (*ds)->Type() != DataSet::NAMEMAP ) { + mprintf("Warning: First variable written to %s was a name map, skipping '%s'\n", + file.Filename().full(), (*ds)->legend()); + } else { + DataSet_NameMap const& namemap = static_cast<DataSet_NameMap const&>( *(*ds) ); + // Figure out column widths + int colwidth = 4; + for (DataSet_NameMap::const_iterator it = namemap.begin(); it != namemap.end(); ++it) { + if ( (int)it->first.len() > colwidth ) + colwidth = it->first.len(); + if ( (int)it->second.len() > colwidth ) + colwidth = it->second.len(); + } + // Write header + if (writeHeader_) + file.Printf("%-*s %-*s\n", colwidth, "#Tgt", colwidth, "Ref"); + for (DataSet_NameMap::const_iterator it = namemap.begin(); it != namemap.end(); ++it) + file.Printf("%-*s %-*s\n", colwidth, *(it->second), colwidth, *(it->first)); + } + } + return 0; +} + // DataIO_Std::WriteCmatrix() int DataIO_Std::WriteCmatrix(CpptrajFile& file, DataSetList const& Sets) { for (DataSetList::const_iterator ds = Sets.begin(); ds != Sets.end(); ++ds) diff --git a/src/DataIO_Std.h b/src/DataIO_Std.h index c02469441b..ab13a3f06b 100644 --- a/src/DataIO_Std.h +++ b/src/DataIO_Std.h @@ -18,7 +18,7 @@ class DataIO_Std : public DataIO { static const int IS_ASCII_CMATRIX; enum GroupType { NO_TYPE = 0, BY_NAME, BY_ASPECT, BY_IDX, BY_ENS, BY_DIM }; - enum modeType {READ1D=0, READ2D, READ3D, READVEC, READMAT3X3}; + enum modeType {READ1D=0, READ2D, READ3D, READVEC, READMAT3X3, READNAMEMAP}; enum precType {UNSPEC, FLOAT, DOUBLE}; static int Get3Double(std::string const&, Vec3&, bool&); @@ -27,11 +27,13 @@ class DataIO_Std : public DataIO { int Read_2D(std::string const&,DataSetList&,std::string const&); int Read_2D_XYZ(FileName const&,DataSetList&,std::string const&); int Read_3D(std::string const&,DataSetList&,std::string const&); - int Read_Vector(std::string const&,DataSetList&,std::string const&); - int Read_Mat3x3(std::string const&,DataSetList&,std::string const&); + int Read_Vector(std::string const&,DataSetList&,std::string const&) const; + int Read_Mat3x3(std::string const&,DataSetList&,std::string const&) const; + int Read_NameMap(std::string const&,DataSetList&,std::string const&) const; static void WriteNameToBuffer(CpptrajFile&, std::string const&, int, bool); int WriteByGroup(CpptrajFile&, DataSetList const&, GroupType); int WriteStringVars(CpptrajFile&, DataSetList const&) const; + int WriteNameMap(CpptrajFile&, DataSetList const&) const; int WriteCmatrix(CpptrajFile&, DataSetList const&); int WriteDataNormal(CpptrajFile&,DataSetList const&); int writeDataNormal_MatchingXdim(CpptrajFile&, DataSetList const&); @@ -40,6 +42,7 @@ class DataIO_Std : public DataIO { int WriteData3D(CpptrajFile&, DataSetList const&); int WriteSet2D(DataSet const&, CpptrajFile&); int WriteSet3D(DataSet const&, CpptrajFile&); + int WriteParameters(CpptrajFile&, DataSetList const&) const; modeType mode_; ///< Read mode precType prec_; ///< 3d reads, data set precision diff --git a/src/DataSet.cpp b/src/DataSet.cpp index 90e294a8c3..9ed1cc36c6 100644 --- a/src/DataSet.cpp +++ b/src/DataSet.cpp @@ -33,6 +33,9 @@ const char* DataSet::Descriptions_[] = { "unsigned integer", // UNSIGNED_INTEGER "frames", // FRAMES "zmatrix", // ZMATRIX + "name map", // NAMEMAP + "LEaP options", // LEAPOPTS + "PDB residue map", // PDBRESMAP "unknown" // UNKNOWN_DATA }; @@ -91,6 +94,13 @@ void DataSet::ClearAssociatedData() { associatedData_.clear(); } +/** Copy all assocated data from the given data set. */ +void DataSet::CopyAssociatedDataFrom(DataSet const& dsIn) { + for (AdataArray::const_iterator ad = dsIn.associatedData_.begin(); + ad != dsIn.associatedData_.end(); ++ad) + associatedData_.push_back( (*ad)->Copy() ); +} + // DESTRUCTOR DataSet::~DataSet() { ClearAssociatedData(); } diff --git a/src/DataSet.h b/src/DataSet.h index 2a29a41ed3..a0943bc07a 100644 --- a/src/DataSet.h +++ b/src/DataSet.h @@ -29,7 +29,7 @@ class DataSet { COORDS, VECTOR, MODES, GRID_FLT, GRID_DBL, REMLOG, XYMESH, TRAJ, REF_FRAME, MAT3X3, TOPOLOGY, PH, PH_EXPL, PH_IMPL, PARAMETERS, PMATRIX_MEM, PMATRIX_NC, TENSOR, STRINGVAR, VECTOR_SCALAR, UNSIGNED_INTEGER, - FRAMES, ZMATRIX, + FRAMES, ZMATRIX, NAMEMAP, LEAPOPTS, PDBRESMAP, UNKNOWN_DATA }; /// Group DataSet belongs to. @@ -86,6 +86,8 @@ class DataSet { // ----------------------------------------------------- /// Associate additional data with this set. void AssociateData(AssociatedData const* a) { associatedData_.push_back( a->Copy() ); } + /// Copy associated data from given set to this set. + void CopyAssociatedDataFrom(DataSet const&); /// Set DataSet MetaData int SetMeta(MetaData const&); /// Set DataSet ensemble number. diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index b35c6f2744..e09fca4e0f 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -36,6 +36,9 @@ #include "DataSet_unsignedInt.h" #include "DataSet_Coords_FRM.h" #include "DataSet_Zmatrix.h" +#include "DataSet_NameMap.h" +#include "DataSet_LeapOpts.h" +#include "DataSet_PdbResMap.h" bool DataSetList::useDiskCache_ = false; @@ -95,6 +98,9 @@ DataSet* DataSetList::NewSet(DataSet::DataType typeIn) { case DataSet::STRINGVAR : ds = DataSet_StringVar::Alloc(); break; case DataSet::VECTOR_SCALAR : ds = DataSet_Vector_Scalar::Alloc(); break; case DataSet::ZMATRIX : ds = DataSet_Zmatrix::Alloc(); break; + case DataSet::NAMEMAP : ds = DataSet_NameMap::Alloc(); break; + case DataSet::LEAPOPTS : ds = DataSet_LeapOpts::Alloc(); break; + case DataSet::PDBRESMAP : ds = DataSet_PdbResMap::Alloc(); break; // Sanity check default: mprinterr("Internal Error: No allocator for DataSet type '%s'\n", diff --git a/src/DataSet_Coords.cpp b/src/DataSet_Coords.cpp index a573d2ab63..ed097df7ac 100644 --- a/src/DataSet_Coords.cpp +++ b/src/DataSet_Coords.cpp @@ -12,3 +12,25 @@ void DataSet_Coords::CommonInfo() const { if (cInfo_.HasVel()) mprintf(" Velocities,"); mprintf(" %i atoms", top_.Natom()); } + +/** Update coords info box */ +void DataSet_Coords::UpdateCoordsInfoBox( Box const& boxIn ) { + cInfo_.SetBox( boxIn ); +} + +/** Copy the incoming topology if different from current topology. */ +void DataSet_Coords::set_topology(Topology const& topIn) +{ + if (&topIn != &top_) { + top_ = topIn; + } +/* + if (&topIn == &top_) { + mprintf("DEBUG: set_topology called with existing topology (%s)\n", top_.c_str()); + } else { + if (top_.Natom() > 0) + mprintf("DEBUG: set_topology: overwriting top %s with top %s\n", top_.c_str(), topIn.c_str()); + top_ = topIn; + } +*/ +} diff --git a/src/DataSet_Coords.h b/src/DataSet_Coords.h index bcc2192e02..fe428ed697 100644 --- a/src/DataSet_Coords.h +++ b/src/DataSet_Coords.h @@ -32,8 +32,11 @@ class DataSet_Coords : public DataSet { inline Topology* TopPtr() { return &top_; } /// \return CoordinateInfo associated with these COORDS inline CoordinateInfo const& CoordsInfo() const { return cInfo_; } + /// Used to modify box in coords info + void UpdateCoordsInfoBox(Box const&); protected: void CommonInfo() const; + void set_topology(Topology const&); Topology top_; ///< Topology corresponding to coordinates. CoordinateInfo cInfo_; ///< Describes coordinate Frame }; diff --git a/src/DataSet_Coords_CRD.cpp b/src/DataSet_Coords_CRD.cpp index 4ff93f488f..736efceb1c 100644 --- a/src/DataSet_Coords_CRD.cpp +++ b/src/DataSet_Coords_CRD.cpp @@ -56,7 +56,7 @@ void DataSet_Coords_CRD::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_ /** Set up COORDS with given Topology and coordinate info. */ int DataSet_Coords_CRD::CoordsSetup(Topology const& topIn, CoordinateInfo const& cInfoIn) { - top_ = topIn; + set_topology( topIn ); cInfo_ = cInfoIn; if (frames_.SetupFrameArray(cInfo_, topIn.Natom(), framesToReserve_)) { diff --git a/src/DataSet_Coords_FRM.cpp b/src/DataSet_Coords_FRM.cpp index 505c78b3db..d6d262cb1a 100644 --- a/src/DataSet_Coords_FRM.cpp +++ b/src/DataSet_Coords_FRM.cpp @@ -115,7 +115,7 @@ void DataSet_Coords_FRM::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_ // ----------------------------------------------- /** Set up COORDS with given Topology and coordinate info. */ int DataSet_Coords_FRM::CoordsSetup(Topology const& topIn, CoordinateInfo const& cInfoIn) { - top_ = topIn; + set_topology( topIn ); cInfo_ = cInfoIn; //if (frames_.SetupFrameArray(cInfo_, topIn.Natom(), framesToReserve_)) { diff --git a/src/DataSet_Coords_REF.cpp b/src/DataSet_Coords_REF.cpp index 87922859c9..b1169b9559 100644 --- a/src/DataSet_Coords_REF.cpp +++ b/src/DataSet_Coords_REF.cpp @@ -14,7 +14,7 @@ void DataSet_Coords_REF::Info() const { /** Set up REF coords with given Topology and coordinate info. */ int DataSet_Coords_REF::CoordsSetup(Topology const& topIn, CoordinateInfo const& cInfoIn) { - top_ = topIn; + set_topology( topIn ); cInfo_ = cInfoIn; if (frame_.SetupFrameV( topIn.Atoms(), cInfoIn )) { diff --git a/src/DataSet_Coords_TRJ.cpp b/src/DataSet_Coords_TRJ.cpp index 0f6dfc0bbb..6b43eeb7e1 100644 --- a/src/DataSet_Coords_TRJ.cpp +++ b/src/DataSet_Coords_TRJ.cpp @@ -19,7 +19,7 @@ DataSet_Coords_TRJ::~DataSet_Coords_TRJ() { int DataSet_Coords_TRJ::CoordsSetup(Topology const& topIn, CoordinateInfo const& cInfoIn ) { if (trajinList_.empty()) { - top_ = topIn; + set_topology( topIn ); cInfo_ = cInfoIn; } else { if ( topIn.Natom() != top_.Natom() ) { diff --git a/src/DataSet_LeapOpts.cpp b/src/DataSet_LeapOpts.cpp new file mode 100644 index 0000000000..46937954c8 --- /dev/null +++ b/src/DataSet_LeapOpts.cpp @@ -0,0 +1,87 @@ +#include "DataSet_LeapOpts.h" +#include "CpptrajStdio.h" + +/// CONSTRUCTOR +DataSet_LeapOpts::DataSet_LeapOpts() : + // 0 dim indicates DataSet-specific write + DataSet(LEAPOPTS, GENERIC, TextFormat(TextFormat::STRING, 12, 0), 0), + pbradii_(Cpptraj::Parm::MBONDI), + scee_(1.2), // AMBER default + scnb_(2.0), // AMBER default + dipoleDampFactor_(0), + ipol_(0), + flexibleWater_(false), + deleteExtraPointAngles_(true) +{ + +} + +/** Set default GB radii from keyword. */ +int DataSet_LeapOpts::SetGbRadii(std::string const& keyword) { + Cpptraj::Parm::GB_RadiiType radType = Cpptraj::Parm::GbTypeFromKey( keyword ); + if (radType == Cpptraj::Parm::UNKNOWN_GB) { + mprinterr("Error: Unrecognized GB radii type: %s\n", keyword.c_str()); + return 1; + } + pbradii_ = radType; + mprintf("\tSet default GB radii: %s\n", Cpptraj::Parm::GbAmberFlag(pbradii_).c_str()); + return 0; +} + +/// Set double option, warn if negative +static inline int set_dopt(const char* desc, double& opt, double newVal) +{ + if (newVal < 0.0) { + mprintf("Warning: Illegal value: %s can not be < 0.0;\n" + "Warning: keeping value of %g\n", desc, opt); + return 1; + } else { + mprintf("\tSetting %s to %g\n", desc, newVal); + opt = newVal; + } + return 0; +} + +/** Set default SCEE */ +int DataSet_LeapOpts::SetSCEE(double sceeIn) { return set_dopt("1-4 SCEE factor", scee_, sceeIn); } + +/** Set default SCNB */ +int DataSet_LeapOpts::SetSCNB(double scnbIn) { return set_dopt("1-4 SCNB factor", scnb_, scnbIn); } + +/** Set dipole damping factor */ +int DataSet_LeapOpts::SetDipoleDampFactor(double ddfIn) { return set_dopt("Dipole damping factor", dipoleDampFactor_, ddfIn); } + +/** Set IPOL */ +int DataSet_LeapOpts::SetIpol(int ipolIn) { + if (ipolIn < 0 || ipolIn > 4) { + mprintf("Warning: Only IPOL = 0 to 4 is supported, resetting IPOL to %i.\n", ipol_); + return 1; + } + if (ipol_ > 0) { + mprintf("Warning: IPOL has already been set to %i by a previous force field.\n", ipol_); + return 1; + } + mprintf("\tSetting IPOL to %i\n", ipolIn); + ipol_ = ipolIn; + return 0; +} + +/** Set flexible water */ +int DataSet_LeapOpts::SetFlexibleWater(bool fIn) { + if (fIn) + mprintf("\tSetting flexible water to ON\n"); + else + mprintf("\tSetting flexible water to OFF\n"); + flexibleWater_ = fIn; + return 0; +} + +/** Set whether extra point angles should be deleted */ +int DataSet_LeapOpts::SetDeleteExtraPointAngles(bool fIn) { + if (fIn) + mprintf("\tSetting delete extra point angles to ON\n"); + else + mprintf("\tSetting delete extra point angles to OFF\n"); + deleteExtraPointAngles_ = fIn; + return 0; +} diff --git a/src/DataSet_LeapOpts.h b/src/DataSet_LeapOpts.h new file mode 100644 index 0000000000..d6f7c4739a --- /dev/null +++ b/src/DataSet_LeapOpts.h @@ -0,0 +1,46 @@ +#ifndef INC_DATASET_LEAPOPTS_H +#define INC_DATASET_LEAPOPTS_H +#include "DataSet.h" +#include "Parm/GB_Params.h" +/// Hold LEaP options read from 'sourcing' a leaprc file in DataIO_LeapRC +class DataSet_LeapOpts : public DataSet { + public: + DataSet_LeapOpts(); + static DataSet* Alloc() { return (DataSet*)new DataSet_LeapOpts(); } + // ----- DataSet functions ------------------- + size_t Size() const { return 0; } + void Info() const { return; } + int Allocate(SizeArray const&) { return 1; } + void Add(size_t, const void*) { return; } + void WriteBuffer(CpptrajFile&, SizeArray const&) const { return; } + int Append(DataSet*) { return 1; } + size_t MemUsageInBytes() const { return 0; } +# ifdef MPI + int Sync(size_t, std::vector<int> const&, Parallel::Comm const&) { return 1; } +# endif + // ------------------------------------------- + int SetGbRadii(std::string const&); + int SetSCEE(double); + int SetSCNB(double); + int SetDipoleDampFactor(double); + int SetIpol(int); + int SetFlexibleWater(bool); + int SetDeleteExtraPointAngles(bool); + + Cpptraj::Parm::GB_RadiiType PbRadii() const { return pbradii_; } + double SCEE() const { return scee_; } + double SCNB() const { return scnb_; } + double DipoleDampFactor() const { return dipoleDampFactor_; } + int IPOL() const { return ipol_; } + bool FlexibleWater() const { return flexibleWater_; } + bool DeleteExtraPointAngles() const { return deleteExtraPointAngles_; } + private: + Cpptraj::Parm::GB_RadiiType pbradii_; + double scee_; + double scnb_; + double dipoleDampFactor_; + int ipol_; + bool flexibleWater_; + bool deleteExtraPointAngles_; +}; +#endif diff --git a/src/DataSet_Modes.cpp b/src/DataSet_Modes.cpp index 5cfafe9efd..034f2d2001 100644 --- a/src/DataSet_Modes.cpp +++ b/src/DataSet_Modes.cpp @@ -341,8 +341,7 @@ int DataSet_Modes::CalcEigen(DataSet_2D const& mIn, int n_to_calc) { // for matrices/vectors used by the Lanczos iteration. int ipntr[11]; std::fill( ipntr, ipntr + 11, 0 ); - // Create copy of matrix since it will be modified - double* mat = mIn.MatrixArray(); + // Copy of matrix mat was created above since it will be modified by dsaupd_ // LOOP bool loop = false; do { diff --git a/src/DataSet_NameMap.cpp b/src/DataSet_NameMap.cpp new file mode 100644 index 0000000000..91c08221be --- /dev/null +++ b/src/DataSet_NameMap.cpp @@ -0,0 +1,9 @@ +#include "DataSet_NameMap.h" +#include "CpptrajStdio.h" + +/// CONSTRUCTOR +DataSet_NameMap::DataSet_NameMap() : + DataSet(NAMEMAP, GENERIC, TextFormat(), 0) +{ + +} diff --git a/src/DataSet_NameMap.h b/src/DataSet_NameMap.h new file mode 100644 index 0000000000..1e9eb646d9 --- /dev/null +++ b/src/DataSet_NameMap.h @@ -0,0 +1,45 @@ +#ifndef INC_DATASET_NAMEMAP_H +#define INC_DATASET_NAMEMAP_H +#include "DataSet.h" +#include "NameType.h" +#include <map> +/// Used to map old atom names to new atom names +class DataSet_NameMap : public DataSet { + typedef std::pair<NameType,NameType> AmapPair; + typedef std::map<NameType,NameType> AmapType; + public: + DataSet_NameMap(); + static DataSet* Alloc() { return (DataSet*)new DataSet_NameMap(); } + // ----- DataSet functions ------------------- + size_t Size() const { return nameMap_.size(); } + void Info() const { return; } + int Allocate(SizeArray const&) { return 1; } + void Add(size_t, const void*) { return; } + void WriteBuffer(CpptrajFile&, SizeArray const&) const { return; } + int Append(DataSet*) { return 1; } + size_t MemUsageInBytes() const { return Size() * (2*NameType::max()); } +# ifdef MPI + int Sync(size_t, std::vector<int> const&, Parallel::Comm const&) { return 1; } +# endif + // ------------------------------------------- + /// Add mapping of newName to oldName + void AddNameMap(NameType const& oldName, NameType const& newName) { + nameMap_.insert( AmapPair(oldName, newName) ); + } + /// \return True if oldName was found in map and newName is set, false otherwise. + bool GetName(NameType& newName, NameType const& oldName) const { + AmapType::const_iterator it = nameMap_.find( oldName ); + if (it == nameMap_.end()) return false; + newName = it->second; + return true; + } + /// Const iterator + typedef AmapType::const_iterator const_iterator; + /// Const iterator to beginning + const_iterator begin() const { return nameMap_.begin(); } + /// Const interator to end + const_iterator end() const { return nameMap_.end(); } + private: + AmapType nameMap_; +}; +#endif diff --git a/src/DataSet_Parameters.cpp b/src/DataSet_Parameters.cpp index 45535f063b..200aa79ad1 100644 --- a/src/DataSet_Parameters.cpp +++ b/src/DataSet_Parameters.cpp @@ -18,13 +18,15 @@ size_t DataSet_Parameters::Size() const { void DataSet_Parameters::Info() const { if (Size() > 0) { mprintf(" ("); - if (AT().size() > 0) mprintf(" types=%zu", AT().size()); - if (NB().size() > 0) mprintf(" LJ pairs=%zu", NB().size()); - if (BP().size() > 0) mprintf(" bnd=%zu", BP().size()); - if (AP().size() > 0) mprintf(" ang=%zu", AP().size()); - if (UB().size() > 0) mprintf(" UB=%zu", UB().size()); - if (DP().size() > 0) mprintf(" dih=%zu", DP().size()); - if (IP().size() > 0) mprintf(" imp=%zu", IP().size()); + if (AT().size() > 0) mprintf(" types=%zu", AT().size()); + if (NB().size() > 0) mprintf(" LJ pairs=%zu", NB().size()); + if (NB14().size() > 0) mprintf(" LJ14 pairs=%zu", NB14().size()); + if (HB().size() > 0) mprintf(" HB pairs=%zu", HB().size()); + if (BP().size() > 0) mprintf(" bnd=%zu", BP().size()); + if (AP().size() > 0) mprintf(" ang=%zu", AP().size()); + if (UB().size() > 0) mprintf(" UB=%zu", UB().size()); + if (DP().size() > 0) mprintf(" dih=%zu", DP().size()); + if (IP().size() > 0) mprintf(" imp=%zu", IP().size()); mprintf(" )"); } } diff --git a/src/DataSet_Parameters.h b/src/DataSet_Parameters.h index 035ffb02e6..4ad938de32 100644 --- a/src/DataSet_Parameters.h +++ b/src/DataSet_Parameters.h @@ -1,9 +1,9 @@ #ifndef INC_DATASET_PARAMETERS_H #define INC_DATASET_PARAMETERS_H #include "DataSet.h" -#include "ParameterSet.h" +#include "Parm/ParameterSet.h" /// DataSet wrapper around ParameterSet -class DataSet_Parameters : public DataSet, public ParameterSet { +class DataSet_Parameters : public DataSet, public Cpptraj::Parm::ParameterSet { public: DataSet_Parameters(); static DataSet* Alloc() { return (DataSet*)new DataSet_Parameters(); } diff --git a/src/DataSet_PdbResMap.cpp b/src/DataSet_PdbResMap.cpp new file mode 100644 index 0000000000..ff3cf6252b --- /dev/null +++ b/src/DataSet_PdbResMap.cpp @@ -0,0 +1,55 @@ +#include "DataSet_PdbResMap.h" +#include "CpptrajStdio.h" + +using namespace Cpptraj; +/// CONSTRUCTOR +DataSet_PdbResMap::DataSet_PdbResMap() : + // 0 dim indicates DataSet-specific write + DataSet(PDBRESMAP, GENERIC, TextFormat(TextFormat::STRING, 12, 0), 0) +{ + +} + +/** Add a PDB residue to unit name mapping. */ +int DataSet_PdbResMap::AddPdbResMap(PdbResMapType const& prmIn) { + MapType::iterator it = pdbResMap_.lower_bound( prmIn.PdbName() ); + if (it == pdbResMap_.end() || it->first != prmIn.PdbName()) + { + // New PDB residue name. + PairType pdbUnitPair( prmIn.PdbName(), Sarray(3, "") ); + pdbUnitPair.second[(int)prmIn.TermType()] = prmIn.UnitName(); + it = pdbResMap_.insert( it, pdbUnitPair ); + } else { + // Is this a terminal type that is not yet filled? + if ( it->second[(int)prmIn.TermType()].empty() ) + it->second[(int)prmIn.TermType()] = prmIn.UnitName(); + else { + mprintf("Warning: PDB residue %s is already mapped to unit %s for terminal type %s\n", + *(it->first), it->second[(int)prmIn.TermType()].c_str(), Structure::terminalStr(prmIn.TermType())); + } + } + + return 0; +} + +/** \return Unit name based on PDB residue name and terminal type. */ +std::string DataSet_PdbResMap::FindUnitName(NameType const& pdbName, Cpptraj::Structure::TerminalType termType) +const +{ + MapType::const_iterator it = pdbResMap_.find( pdbName ); + if (it == pdbResMap_.end()) + return std::string(""); + else + return it->second[(int)termType]; +} + +/** Print PDB residue to unit mapping to STDOUT. */ +void DataSet_PdbResMap::PrintPdbResMap() const { + mprintf("PDB to unit residue mapping:\n"); + mprintf("\t%8s : %8s %8s %8s\n", "PDB", "Begin", "Nonterm", "End"); + for (MapType::const_iterator it = pdbResMap_.begin(); it != pdbResMap_.end(); ++it) + { + mprintf("\t%8s : %8s %8s %8s\n", *(it->first), + it->second[0].c_str(), it->second[1].c_str(), it->second[2].c_str()); + } +} diff --git a/src/DataSet_PdbResMap.h b/src/DataSet_PdbResMap.h new file mode 100644 index 0000000000..bd868e23d3 --- /dev/null +++ b/src/DataSet_PdbResMap.h @@ -0,0 +1,37 @@ +#ifndef INC_DATASET_PDBRESMAP_H +#define INC_DATASET_PDBRESMAP_H +#include "DataSet.h" +#include <map> +#include <vector> +#include <string> +#include "PdbResMapType.h" +/// Hold LEaP PDB residue name map +class DataSet_PdbResMap : public DataSet { + typedef std::vector<std::string> Sarray; + typedef std::pair<NameType, Sarray> PairType; + typedef std::map<NameType, Sarray> MapType; + public: + DataSet_PdbResMap(); + static DataSet* Alloc() { return (DataSet*)new DataSet_PdbResMap(); } + // ----- DataSet functions ------------------- + size_t Size() const { return 0; } + void Info() const { return; } + int Allocate(SizeArray const&) { return 1; } + void Add(size_t, const void*) { return; } + void WriteBuffer(CpptrajFile&, SizeArray const&) const { return; } + int Append(DataSet*) { return 1; } + size_t MemUsageInBytes() const { return 0; } +# ifdef MPI + int Sync(size_t, std::vector<int> const&, Parallel::Comm const&) { return 1; } +# endif + // ------------------------------------------- + /// Add a PDB name to unit name mapping + int AddPdbResMap(Cpptraj::PdbResMapType const&); + /// Find unit name based on PDB name/terminal type + std::string FindUnitName(NameType const&, Cpptraj::Structure::TerminalType) const; + + void PrintPdbResMap() const; + private: + MapType pdbResMap_; ///< Map PDB residue name to array of unit names: begin, non-terminal, end +}; +#endif diff --git a/src/Energy.cpp b/src/Energy.cpp index 72255af143..6763d08caa 100644 --- a/src/Energy.cpp +++ b/src/Energy.cpp @@ -10,6 +10,7 @@ #include "Energy/Ene_Angle.h" #include "Energy/Ene_Bond.h" #include "Energy/Ene_LJ_6_12.h" +#include "Energy/Ene_LJ_12_6_4.h" // CONSTRUCTOR Energy_Amber::Energy_Amber() : debug_(0) {} @@ -144,12 +145,19 @@ double Energy_Amber::CalcTorsionEnergy(Frame const& fIn, DihedralArray const& Di // ----------------------------------------------------------------------------- /** 1-4 nonbond energy */ double Energy_Amber::E_14_Nonbond(Frame const& fIn, Topology const& tIn, CharMask const& mask, - double& Eq14) + double& Eq14, bool lj1264) { Eq14 = 0.0; - // Heavy atom dihedrals - double Evdw14 = Calc_14_Energy(fIn, tIn.Dihedrals(), tIn.DihedralParm(), tIn, mask, Eq14); - Evdw14 += Calc_14_Energy(fIn, tIn.DihedralsH(), tIn.DihedralParm(), tIn, mask, Eq14); + double Evdw14; + if (lj1264) { + Evdw14 = Calc_14_Energy_LJC(fIn, tIn.Dihedrals(), tIn.DihedralParm(), tIn, mask, Eq14); + Evdw14 += Calc_14_Energy_LJC(fIn, tIn.DihedralsH(), tIn.DihedralParm(), tIn, mask, Eq14); + } else { + // Heavy atom dihedrals + Evdw14 = Calc_14_Energy(fIn, tIn.Dihedrals(), tIn.DihedralParm(), tIn, mask, Eq14); + // Dihedrals including hydrogen + Evdw14 += Calc_14_Energy(fIn, tIn.DihedralsH(), tIn.DihedralParm(), tIn, mask, Eq14); + } return Evdw14; } @@ -201,9 +209,61 @@ double Energy_Amber::Calc_14_Energy(Frame const& fIn, DihedralArray const& Dihed return Evdw14; } +// Energy_Amber::Calc_14_Energy_LJC() +double Energy_Amber::Calc_14_Energy_LJC(Frame const& fIn, DihedralArray const& Dihedrals, + DihedralParmArray const& DPA, Topology const& tIn, + CharMask const& mask, double& Eq14) +{ + double Evdw14 = 0.0; + for (DihedralArray::const_iterator d = Dihedrals.begin(); d != Dihedrals.end(); d++) + { + if (d->Type() == DihedralType::NORMAL && + mask.AtomInCharMask(d->A1()) && mask.AtomInCharMask(d->A4())) + { + int dpidx = d->Idx(); + if (dpidx < 0) { + if (debug_ > 0) + mprintf("Warning: 1-4 pair %i -- %i has no parameters.\n", d->A1()+1, d->A4()+1); + continue; + } + DihedralParmType const& dp = DPA[dpidx]; + double rij2 = DIST2_NoImage( fIn.XYZ(d->A1()), fIn.XYZ(d->A4()) ); + double rij = sqrt( rij2 ); + // VDW + double LJC = 0; + NonbondType const& LJ = tIn.GetLJCparam(LJC, d->A1(), d->A4()); + double e_vdw = Cpptraj::Energy::Ene_LJ_12_6_4( rij2, LJ.A(), LJ.B(), LJC ); + e_vdw /= dp.SCNB(); + Evdw14 += e_vdw; + // Coulomb + double qiqj = Constants::COULOMBFACTOR * tIn[d->A1()].Charge() * tIn[d->A4()].Charge(); + double e_elec = qiqj / rij; + e_elec /= dp.SCEE(); + Eq14 += e_elec; +# ifdef DEBUG_ENERGY + mprintf("\tEVDW14 %4i -- %4i: A= %12.5e B= %12.5e C= %12.5e r2= %12.5f E= %12.5e\n", + d->A1()+1, d->A4()+1, LJ.A(), LJ.B(), LJC, rij2, e_vdw); + mprintf("\tEELEC14 %4i -- %4i: q1= %12.5e q2= %12.5e r= %12.5f E= %12.5e\n", + d->A1()+1, d->A4()+1, tIn[d->A1()].Charge(), tIn[d->A4()].Charge(), + rij, e_elec); +# endif + } + } + return Evdw14; +} + // ----------------------------------------------------------------------------- -// Energy_Amber::E_Nonbond() double Energy_Amber::E_Nonbond(Frame const& fIn, Topology const& tIn, AtomMask const& mask, + double& EelecOut, ExclusionArray const& Excluded, bool lj1264) +{ + if (lj1264) + return E_Nonbond_LJC(fIn, tIn, mask, EelecOut, Excluded); + else + return E_Nonbond_6_12(fIn, tIn, mask, EelecOut, Excluded); +} + +// Energy_Amber::E_Nonbond_6_12() +double Energy_Amber::E_Nonbond_6_12(Frame const& fIn, Topology const& tIn, AtomMask const& mask, double& EelecOut, ExclusionArray const& Excluded) { double Evdw = 0.0; @@ -264,8 +324,75 @@ double Energy_Amber::E_Nonbond(Frame const& fIn, Topology const& tIn, AtomMask c return Evdw; } +// Energy_Amber::E_Nonbond_LJC() +double Energy_Amber::E_Nonbond_LJC(Frame const& fIn, Topology const& tIn, AtomMask const& mask, + double& EelecOut, ExclusionArray const& Excluded) +{ + double Evdw = 0.0; + double Eelec = 0.0; + int idx1; +# ifdef _OPENMP +# pragma omp parallel private(idx1) reduction(+ : Eelec, Evdw) + { +# pragma omp for +# endif + for (idx1 = 0; idx1 < mask.Nselected(); idx1++) + { + int atom1 = mask[idx1]; + // Set up coord for this atom + const double* crd1 = fIn.XYZ( atom1 ); + // Set up exclusion list for this atom + // TODO refactor inner loop to be more like StructureCheck, more efficient. + ExclusionArray::ExListType::const_iterator excluded_idx = Excluded[idx1].begin(); + for (int idx2 = idx1 + 1; idx2 < mask.Nselected(); idx2++) + { + int atom2 = mask[idx2]; + // Advance excluded list up to current selected atom + while (excluded_idx != Excluded[idx1].end() && *excluded_idx < idx2) ++excluded_idx; + // If atom is excluded, just increment to next excluded atom. + if (excluded_idx != Excluded[idx1].end() && idx2 == *excluded_idx) + ++excluded_idx; + else { + double rij2 = DIST2_NoImage( crd1, fIn.XYZ( atom2 ) ); + double rij = sqrt( rij2 ); + // VDW + double LJC = 0; + NonbondType const& LJ = tIn.GetLJCparam(LJC, atom1, atom2); + double e_vdw = Cpptraj::Energy::Ene_LJ_12_6_4( rij2, LJ.A(), LJ.B(), LJC ); + Evdw += e_vdw; + // Coulomb + double qiqj = Constants::COULOMBFACTOR * tIn[atom1].Charge() * tIn[atom2].Charge(); + double e_elec = qiqj / rij; + Eelec += e_elec; +# ifdef DEBUG_ENERGY + mprintf("\tEVDW %4i -- %4i: A= %12.5e B= %12.5e C= %12.5e r2= %12.5f E= %12.5e\n", + atom1+1, atom2+1, LJ.A(), LJ.B(), LJC, rij2, e_vdw); + mprintf("\tEELEC %4i -- %4i: q1= %12.5e q2= %12.5e r= %12.5f E= %12.5e\n", + atom1+1, atom2+1, tIn[atom1].Charge(), tIn[atom2].Charge(), + rij, e_elec); +# endif + } + } + } +# ifdef _OPENMP + } // END omp parallel +# endif + EelecOut = Eelec; + return Evdw; +} + // ----------------------------------------------------------------------------- double Energy_Amber::E_VDW(Frame const& fIn, Topology const& tIn, AtomMask const& mask, + ExclusionArray const& Excluded, bool lj1264) +{ + if (lj1264) + return E_VDW_LJC(fIn, tIn, mask, Excluded); + else + return E_VDW_6_12(fIn, tIn, mask, Excluded); +} + +// E_VDW_6_12 +double Energy_Amber::E_VDW_6_12(Frame const& fIn, Topology const& tIn, AtomMask const& mask, ExclusionArray const& Excluded) { double Evdw = 0.0; @@ -316,6 +443,53 @@ double Energy_Amber::E_VDW(Frame const& fIn, Topology const& tIn, AtomMask const return Evdw; } +// E_VDW_LJC +double Energy_Amber::E_VDW_LJC(Frame const& fIn, Topology const& tIn, AtomMask const& mask, + ExclusionArray const& Excluded) +{ + double Evdw = 0.0; + int idx1; +# ifdef _OPENMP +# pragma omp parallel private(idx1) reduction(+ : Evdw) + { +# pragma omp for +# endif + for (idx1 = 0; idx1 < mask.Nselected(); idx1++) + { + int atom1 = mask[idx1]; + // Set up coord for this atom + const double* crd1 = fIn.XYZ( atom1 ); + // Set up exclusion list for this atom + // TODO refactor inner loop to be more like StructureCheck + ExclusionArray::ExListType::const_iterator excluded_idx = Excluded[idx1].begin(); + for (int idx2 = idx1 + 1; idx2 < mask.Nselected(); idx2++) + { + int atom2 = mask[idx2]; + // Advance excluded list up to current selected atom + while (excluded_idx != Excluded[idx1].end() && *excluded_idx < idx2) ++excluded_idx; + // If atom is excluded, just increment to next excluded atom. + if (excluded_idx != Excluded[idx1].end() && idx2 == *excluded_idx) + ++excluded_idx; + else { + double rij2 = DIST2_NoImage( crd1, fIn.XYZ( atom2 ) ); + // VDW + double LJC = 0; + NonbondType const& LJ = tIn.GetLJCparam(LJC, atom1, atom2); + double e_vdw = Cpptraj::Energy::Ene_LJ_12_6_4( rij2, LJ.A(), LJ.B(), LJC ); + Evdw += e_vdw; +# ifdef DEBUG_ENERGY + mprintf("\tEVDW %4i -- %4i: A= %12.5e B= %12.5e C= %12.5e r2= %12.5f E= %12.5e\n", + atom1+1, atom2+1, LJ.A(), LJ.B(), LJC, rij2, e_vdw); +# endif + } + } + } +# ifdef _OPENMP + } // END omp parallel +# endif + return Evdw; +} + // ----------------------------------------------------------------------------- double Energy_Amber::E_Elec(Frame const& fIn, Topology const& tIn, AtomMask const& mask, ExclusionArray const& Excluded) diff --git a/src/Energy.h b/src/Energy.h index 61a8b24eff..e4093cbed0 100644 --- a/src/Energy.h +++ b/src/Energy.h @@ -15,9 +15,9 @@ class Energy_Amber { double E_bond(Frame const&, Topology const&, CharMask const&, bool); double E_angle(Frame const&, Topology const&, CharMask const&); double E_torsion(Frame const&, Topology const&, CharMask const&); - double E_14_Nonbond(Frame const&, Topology const&, CharMask const&, double&); - double E_Nonbond(Frame const&, Topology const&, AtomMask const&, double&, ExclusionArray const&); - double E_VDW(Frame const&, Topology const&, AtomMask const&, ExclusionArray const&); + double E_14_Nonbond(Frame const&, Topology const&, CharMask const&, double&, bool); + double E_Nonbond(Frame const&, Topology const&, AtomMask const&, double&, ExclusionArray const&, bool); + double E_VDW(Frame const&, Topology const&, AtomMask const&, ExclusionArray const&, bool); double E_Elec(Frame const&, Topology const&, AtomMask const&, ExclusionArray const&); double E_DirectSum(Frame const&, Topology const&, AtomMask const&, ExclusionArray const&,int); @@ -36,6 +36,12 @@ class Energy_Amber { CharMask const&); double Calc_14_Energy(Frame const&, DihedralArray const&, DihedralParmArray const&, Topology const&, CharMask const&, double&); + double Calc_14_Energy_LJC(Frame const&, DihedralArray const&, DihedralParmArray const&, + Topology const&, CharMask const&, double&); + double E_Nonbond_6_12(Frame const&, Topology const&, AtomMask const&, double&, ExclusionArray const&); + double E_Nonbond_LJC(Frame const&, Topology const&, AtomMask const&, double&, ExclusionArray const&); + double E_VDW_6_12(Frame const&, Topology const&, AtomMask const&, ExclusionArray const&); + double E_VDW_LJC(Frame const&, Topology const&, AtomMask const&, ExclusionArray const&); int debug_; }; diff --git a/src/Energy/CMAP.cpp b/src/Energy/CMAP.cpp new file mode 100644 index 0000000000..7b3dacc549 --- /dev/null +++ b/src/Energy/CMAP.cpp @@ -0,0 +1,654 @@ +#include "CMAP.h" +#include "../CharMask.h" +#include "../CpptrajStdio.h" +#include "../Frame.h" +#include "../ParameterTypes.h" +#include "../Topology.h" +#include "../TorsionRoutines.h" + +using namespace Cpptraj::Energy; + +/** CONSTRUCTOR */ +CMAP::CMAP() : + cmapGridPtr_(0), + selected_cmaps_(0), + all_cmaps_(0), + debug_(0) +{} + +/** DESTRUCTOR */ +CMAP::~CMAP() { + if (selected_cmaps_ != 0) delete selected_cmaps_; +} + +/** Set debug level */ +void CMAP::SetDebug(int debugIn) { + debug_ = debugIn; +} + +/** The weight matrix */ +const int CMAP::wt_[16][16] = { + {1, 0, -3, 2, 0, 0, 0, 0, -3, 0, 9, -6, 2, 0, -6, 4}, + {0, 0, 0, 0, 0, 0, 0, 0, 3, 0, -9, 6, -2, 0, 6, -4}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, -6, 0, 0, -6, 4}, + {0, 0, 3, -2, 0, 0, 0, 0, 0, 0, -9, 6, 0, 0, 6, -4}, + {0, 0, 0, 0, 1, 0, -3, 2, -2, 0, 6, -4, 1, 0, -3, 2}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 3, -2, 1, 0, -3, 2}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 2, 0, 0, 3, -2}, + {0, 0, 0, 0, 0, 0, 3, -2, 0, 0, -6, 4, 0, 0, 3, -2}, + {0, 1, -2, 1, 0, 0, 0, 0, 0, -3, 6, -3, 0, 2, -4, 2}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -6, 3, 0, -2, 4, -2}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 3, 0, 0, 2, -2}, + {0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, -2, 2}, + {0, 0, 0, 0, 0, 1, -2, 1, 0, -2, 4, -2, 0, 1, -2, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -1, 0, 1, -2, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, -1, 1}, + {0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 2, -2, 0, 0, -1, 1} +}; + +#ifdef DEBUG_CPPTRAJ_CMAP +/// DEBUG - print gradients +static inline void print_grad(Vec3 const& dA, Vec3 const& dB, Vec3 const& dC, Vec3 const& dD) +{ + for (int i = 0; i < 3; i++) + mprintf("DEBUG:\t\tdX %12.4f%12.4f%12.4f%12.4f\n", dA[i], dB[i], dC[i], dD[i]); +} +#endif + +/** Calculate CMAP energy */ +/*double CMAP::Ene_CMAP(CmapArray const& Cmaps, Frame const& frameIn) +const +{ + Vec3 dPhi_dijkl[4]; + Vec3 dPsi_djklm[4]; + double dPhi, dPsi; + return get_cmap_energy(Cmaps, frameIn, dPhi, dPsi, dPhi_dijkl, dPsi_djklm); +}*/ + +/** Calculate CMAP energy and partial derivatives */ +/*double CMAP::get_cmap_energy(CmapArray const& Cmaps, Frame const& frameIn, + double& dPhi, double& dPsi, + Vec3(&dPhi_dijkl)[4], Vec3(&dPsi_djklm)[4])*/ + +/** Calculate CMAP energy */ +double CMAP::Ene_CMAP(Frame const& frameIn) +const +{ + if ( all_cmaps_ != 0) + return Ene_CMAP( *all_cmaps_, frameIn ); + else + return Ene_CMAP( *selected_cmaps_, frameIn ); +} + +/** Calculate CMAP energy */ +double CMAP::Ene_CMAP(CmapArray const& Cmaps, Frame const& frameIn) +const +{ + double ene_cmap = 0.0; + Vec3 dPhi_dijkl[4]; + Vec3 dPsi_djklm[4]; + double dPhi, dPsi; + + for (CmapArray::const_iterator cmap = Cmaps.begin(); + cmap != Cmaps.end(); ++cmap) + { + const double* ixyz = frameIn.XYZ( cmap->A1() ); + const double* jxyz = frameIn.XYZ( cmap->A2() ); + const double* kxyz = frameIn.XYZ( cmap->A3() ); + const double* lxyz = frameIn.XYZ( cmap->A4() ); + const double* mxyz = frameIn.XYZ( cmap->A5() ); + + // Calculate the dihedral angle (phi) and the derivatives of the + // four coordinates with respect to phi. Remember this subroutine is + // operating in radians. + double cosphi_ijkl, sinphi_ijkl; + Torsion_and_part_deriv( ixyz, jxyz, kxyz, lxyz, + dPhi_dijkl[0], dPhi_dijkl[1], dPhi_dijkl[2], dPhi_dijkl[3], + cosphi_ijkl, sinphi_ijkl ); +# ifdef DEBUG_CPPTRAJ_CMAP + print_grad(dPhi_dijkl[0], dPhi_dijkl[1], dPhi_dijkl[2], dPhi_dijkl[3]); +# endif +// mprintf("%30.15f\n", acos(cosphi_ijkl)); + double phi = copysign(acos(cosphi_ijkl),sinphi_ijkl) * Constants::RADDEG; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG: Dihedral 1 %i %i %i %i = %30.15f%30.15f%30.15f\n", cmap->A1()+1, cmap->A2()+1, cmap->A3()+1, cmap->A4()+1, phi, cosphi_ijkl, sinphi_ijkl); +# endif + // Calculate the dihedral angle (psi) and the derivatives of the + // four coordinates with respect to psi. Remember this subroutine is + // operating in radians. + double cospsi_jklm, sinpsi_jklm; + Torsion_and_part_deriv( jxyz, kxyz, lxyz, mxyz, + dPsi_djklm[0], dPsi_djklm[1], dPsi_djklm[2], dPsi_djklm[3], + cospsi_jklm, sinpsi_jklm ); +# ifdef DEBUG_CPPTRAJ_CMAP + print_grad(dPsi_djklm[0], dPsi_djklm[1], dPsi_djklm[2], dPsi_djklm[3]); +# endif + double psi = copysign(acos(cospsi_jklm),sinpsi_jklm) * Constants::RADDEG; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG: Dihedral 2 %i %i %i %i = %30.15f%30.15f%30.15f\n", cmap->A2()+1, cmap->A3()+1, cmap->A4()+1, cmap->A5()+1, psi, cospsi_jklm, sinpsi_jklm); +# endif + ene_cmap += charmm_calc_cmap_from_phi_psi(phi, psi, cmap->Idx(), dPhi, dPsi); + } // END loop over CMAPs + return ene_cmap; +} + +/** Calculate CMAP energy and force */ +double CMAP::Ene_Frc_CMAP(Frame const& frameIn, double* forcePtr) +const +{ + if ( all_cmaps_ != 0) + return Ene_Frc_CMAP( *all_cmaps_, frameIn, forcePtr ); + else + return Ene_Frc_CMAP( *selected_cmaps_, frameIn, forcePtr ); +} + +/** Calculate CMAP energy and force */ +double CMAP::Ene_Frc_CMAP(CmapArray const& Cmaps, Frame const& frameIn, double* forcePtr) +const +{ + double ene_cmap = 0.0; + Vec3 dPhi_dijkl[4]; + Vec3 dPsi_djklm[4]; + double dPhi, dPsi; + + for (CmapArray::const_iterator cmap = Cmaps.begin(); + cmap != Cmaps.end(); ++cmap) + { + const double* ixyz = frameIn.XYZ( cmap->A1() ); + const double* jxyz = frameIn.XYZ( cmap->A2() ); + const double* kxyz = frameIn.XYZ( cmap->A3() ); + const double* lxyz = frameIn.XYZ( cmap->A4() ); + const double* mxyz = frameIn.XYZ( cmap->A5() ); + + // Calculate the dihedral angle (phi) and the derivatives of the + // four coordinates with respect to phi. Remember this subroutine is + // operating in radians. + double cosphi_ijkl, sinphi_ijkl; + Torsion_and_part_deriv( ixyz, jxyz, kxyz, lxyz, + dPhi_dijkl[0], dPhi_dijkl[1], dPhi_dijkl[2], dPhi_dijkl[3], + cosphi_ijkl, sinphi_ijkl ); +# ifdef DEBUG_CPPTRAJ_CMAP + print_grad(dPhi_dijkl[0], dPhi_dijkl[1], dPhi_dijkl[2], dPhi_dijkl[3]); +# endif +// mprintf("%30.15f\n", acos(cosphi_ijkl)); + double phi = copysign(acos(cosphi_ijkl),sinphi_ijkl) * Constants::RADDEG; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG: Dihedral 1 %i %i %i %i = %30.15f%30.15f%30.15f\n", cmap->A1()+1, cmap->A2()+1, cmap->A3()+1, cmap->A4()+1, phi, cosphi_ijkl, sinphi_ijkl); +# endif + // Calculate the dihedral angle (psi) and the derivatives of the + // four coordinates with respect to psi. Remember this subroutine is + // operating in radians. + double cospsi_jklm, sinpsi_jklm; + Torsion_and_part_deriv( jxyz, kxyz, lxyz, mxyz, + dPsi_djklm[0], dPsi_djklm[1], dPsi_djklm[2], dPsi_djklm[3], + cospsi_jklm, sinpsi_jklm ); +# ifdef DEBUG_CPPTRAJ_CMAP + print_grad(dPsi_djklm[0], dPsi_djklm[1], dPsi_djklm[2], dPsi_djklm[3]); +# endif + double psi = copysign(acos(cospsi_jklm),sinpsi_jklm) * Constants::RADDEG; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG: Dihedral 2 %i %i %i %i = %30.15f%30.15f%30.15f\n", cmap->A2()+1, cmap->A3()+1, cmap->A4()+1, cmap->A5()+1, psi, cospsi_jklm, sinpsi_jklm); +# endif + ene_cmap += charmm_calc_cmap_from_phi_psi(phi, psi, cmap->Idx(), dPhi, dPsi); + + // Do force calc + // Convert over to degrees per interval + CmapGridType const& cmapGrid = (*(cmapGridPtr_))[cmap->Idx()]; + double rad_to_deg_coeff = Constants::RADDEG * 1 / (double)(360.0 / cmapGrid.Resolution()); + for (unsigned int i = 0; i < 4; i++) { + dPhi_dijkl[i] *= rad_to_deg_coeff; + dPsi_djklm[i] *= rad_to_deg_coeff; + // Use chain rule to obtain the energy gradient wrt to coordinate + dPhi_dijkl[i] *= dPhi; + dPsi_djklm[i] *= dPsi; + } +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("FINAL PHI\n"); + for (unsigned int i = 0; i < 4; i++) + for (unsigned int j = 0; j < 3; j++) + mprintf("%16.8f\n", dPhi_dijkl[i][j]); + mprintf("FINAL PSI\n"); + for (unsigned int i = 0; i < 4; i++) + for (unsigned int j = 0; j < 3; j++) + mprintf("%16.8f\n", dPsi_djklm[i][j]); +# endif +# ifdef DEBUG_CPPTRAJ_CMAP + std::vector<Vec3> frc(5, Vec3(0.0)); + for (int n = 0; n < 3; n++) { + frc[0][n] = -dPhi_dijkl[0][n]; + frc[1][n] = -dPhi_dijkl[1][n] - dPsi_djklm[0][n]; + frc[2][n] = -dPhi_dijkl[2][n] - dPsi_djklm[1][n]; + frc[3][n] = -dPhi_dijkl[3][n] - dPsi_djklm[2][n]; + frc[4][n] = - dPsi_djklm[3][n]; + mprintf("i %3i %16.8f\n", n, frc[0][n]); + mprintf("j %3i %16.8f\n", n, frc[1][n]); + mprintf("k %3i %16.8f\n", n, frc[2][n]); + mprintf("l %3i %16.8f\n", n, frc[3][n]); + mprintf("m %3i %16.8f\n", n, frc[4][n]); + } +# endif + double* fi = forcePtr + (cmap->A1() * 3); + double* fj = forcePtr + (cmap->A1() * 3); + double* fk = forcePtr + (cmap->A1() * 3); + double* fl = forcePtr + (cmap->A1() * 3); + double* fm = forcePtr + (cmap->A1() * 3); + for (int n = 0; n < 3; n++) { + fi[n] += -dPhi_dijkl[0][n]; + fj[n] += -dPhi_dijkl[1][n] - dPsi_djklm[0][n]; + fk[n] += -dPhi_dijkl[2][n] - dPsi_djklm[1][n]; + fl[n] += -dPhi_dijkl[3][n] - dPsi_djklm[2][n]; + fm[n] += - dPsi_djklm[3][n]; + } + } + return ene_cmap; +} + +/// Used to mimic Fortran modulo with REAL arguments +static inline double dmodulo(double a, double p) { + return ( a - floor(a / p) * p ); +} + +#ifdef DEBUG_CPPTRAJ_CMAP +static inline void print_stencil(const char* desc, const double (&matrix)[2][2]) +{ + mprintf("%s:\n", desc); + mprintf("%9.6f %9.6f\n", matrix[1][0], matrix[1][1]); + mprintf("%9.6f %9.6f\n", matrix[0][0], matrix[0][1]); + mprintf("\n"); +} +#endif + +/// Convert the 2x2 stencils into a 1D array for processing by weight_stencil. +/** The array starts at the bottom left of the 2x2, working + * around counterclockwise: + * + * 4 3 + * 1 2 + * + * NOTE: There may be a cleaner/better way of doing this + */ +static inline void flatten_stencil(double* out, const double(&matrix)[2][2], double step_size) +{ + out[0] = matrix[0][0] * step_size; + out[1] = matrix[0][1] * step_size; + out[2] = matrix[1][1] * step_size; + out[3] = matrix[1][0] * step_size; +} + +/** Calculate the CMAP energy given psi,phi and the cmap parameter */ +double CMAP::charmm_calc_cmap_from_phi_psi(double phi, double psi, int cidx, double& dPhi, double& dPsi) +const +{ + CmapGridType const& cmapGrid = (*(cmapGridPtr_))[cidx]; + static const int gridOrigin = -180; ///< Where the 2D grid starts in degrees + int step_size = 360 / cmapGrid.Resolution(); + double ene_cmap = 0.0; + dPhi = 0.0; + dPsi = 0.0; + // Work out nearest complete grid point on the CMAP grid from + // phi and psi and use this to form a 2x2 stencil +// mprintf("x= %16.8f y= %16.8f\n", (phi - gridOrigin)/(step_size),(psi - gridOrigin)/(step_size) ); + int x = (int)( (phi - gridOrigin)/(step_size) ); + int y = (int)( (psi - gridOrigin)/(step_size) ); +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("x= %6i y= %6i\n", x, y); +# endif + // Work out the fraction of the CMAP grid step that the interpolated + // point takes up. + // This will give the remainder part and then it is divided by the step size + double phiFrac = dmodulo((phi - gridOrigin), step_size) / step_size; + double psiFrac = dmodulo((psi - gridOrigin), step_size) / step_size; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("phiFrac %16.8f psiFrac %16.8f\n", phiFrac, psiFrac); +# endif + double E_stencil[2][2]; + double dPhi_stencil[2][2]; + double dPsi_stencil[2][2]; + double dPhi_dPsi_stencil[2][2]; + + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + E_stencil[i][j] = cmapGrid.Grid(x+j, y+i); + + dPhi_stencil[i][j] = cmap_dPhi_[cidx].element_wrapped(y+i, x+j); + + dPsi_stencil[i][j] = cmap_dPsi_[cidx].element_wrapped(y+i, x+j); + + dPhi_dPsi_stencil[i][j] = cmap_dPhi_dPsi_[cidx].element_wrapped(y+i, x+j); + } + } +# ifdef DEBUG_CPPTRAJ_CMAP + print_stencil("CMAP", E_stencil); + print_stencil("dPhi", dPhi_stencil); + print_stencil("dPsi", dPsi_stencil); + print_stencil("dPhi_dPsi", dPhi_dPsi_stencil); +# endif + // Convert the 2x2 stencils into a 1D array for processing + // by the below weight_stencil code. + std::vector<double> E_stencil_1D(16); + double* dptr = &(E_stencil_1D[0]); + flatten_stencil(dptr, E_stencil, 1); + //mprintf("%9.6f %9.6f %9.6f %9.6f\n", E_stencil_1D[0], E_stencil_1D[1], E_stencil_1D[2], E_stencil_1D[3]); + flatten_stencil(dptr+4, dPhi_stencil, step_size); + flatten_stencil(dptr+8, dPsi_stencil, step_size); + flatten_stencil(dptr+12, dPhi_dPsi_stencil, step_size*step_size); +# ifdef DEBUG_CPPTRAJ_CMAP + for (std::vector<double>::const_iterator it = E_stencil_1D.begin(); it != E_stencil_1D.end(); ++it) + mprintf("%16.8f\n", *it); +# endif + // Generate coefficients for bicubic interpolation + // NOTE: This is based on routine weight_stencil in cmap.F90 + std::vector<double> coeff(16); + for (int i = 0; i < 16; i++) { + coeff[i] = 0.0; + for (int k = 0; k < 16; k++) { + coeff[i] += wt_[k][i] * E_stencil_1D[k]; + } + } +# ifdef DEBUG_CPPTRAJ_CMAP + for (std::vector<double>::const_iterator it = coeff.begin(); it != coeff.end(); ++it) + mprintf("%16.8f\n", *it); +# endif + // Bicubic interpolation + // NOTE: This is based on routine bicubic_interpolation in cmap.F90 + std::vector<double>::const_reverse_iterator Cit = coeff.rbegin(); + std::vector<double>::const_reverse_iterator Dit = coeff.rbegin(); + for (int i = 3; i > -1; i--, Cit += 4, Dit++) { +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("BICUBIC %i %16.8f %16.8f %16.8f %16.8f\n", i, *(Cit), *(Cit+1), *(Cit+2), *(Cit+3)); + mprintf("BICUBIC2 %i %16.8f %16.8f %16.8f\n", i, *(Dit), *(Dit+4), *(Dit+8)); +# endif + double c4 = *(Cit); + double c3 = *(Cit+1); + double c2 = *(Cit+2); + double c1 = *(Cit+3); + double d4 = *(Dit); + double d3 = *(Dit+4); + double d2 = *(Dit+8); + ene_cmap = ene_cmap*phiFrac +( (c4*psiFrac + c3)*psiFrac + c2 )*psiFrac + c1; + dPhi = dPhi*psiFrac +( 3.0*d4*phiFrac + 2.0*d3 )*phiFrac + d2; + dPsi = dPsi*phiFrac +( 3.0*c4*psiFrac + 2.0*c3 )*psiFrac + c2; + } +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("FINAL %16.8f %16.8f %16.8f\n", ene_cmap, dPhi, dPsi); +# endif + return ene_cmap; +} + +// ----------------------------------------------------------------------------- +/** This is reduced version of a typical cubic spline routine + * that one may find in a recipe book of a numerical flavour. + * + * It is "reduced" since it is used here to obtain smooth derivatives + * ONLY at discrete points on the CMAP grid, hence it never interpolates + * between the points, therefore the coefficient a is always 1.0 and b is + * always 0.0. In addition, there is never a need to return the + * interpolated value since it will be aways the same as the value passed to it. + */ +double CMAP::evaluate_cubic_spline(int step_size, std::vector<double> const& y, + std::vector<double> const& y2, + int grid_point) +{ + //Work out nearest complete grid point on the CMAP grid from xin + //lo = int( (xin - gridOrigin)/(step_size) ) + 1 + + int lo = grid_point; + //!write(6,'(a,I4)'),"Lo is: ",lo + + //!b = ( xin - ( (lo-1)*step_size + gridOrigin) )/step_size + //!a = 1-b + + //!write(6,'(a,f15.6)'),"a is : ",a + //!write(6,'(a,f15.6)'),"b is : ",b + + double a = 1.0; + double b = 0.0; + //DEBUG + + //yout = a*y(lo) & + // + b*y(lo+1) & + //! + (1/6)*(a*a*a-a)*(step_size*step_size)*y2(lo) & + //! + (1/6)*(b*b*b-b)*(step_size*step_size)*y2(lo+1) + + double dyout = (y[lo+1]-y[lo])/step_size + - ((3*a*a-1)/6)*step_size*y2[lo] + + ((3*b*b-1)/6)*step_size*y2[lo+1]; + + //DEBUG + //write(6,'(a,f15.6)'),"y(lo) is :", y(lo) + //write(6,'(a,f15.6)'),"y(lo+1) is :", y(lo+1) + //write(6,'(a,f15.6)'),"y2(lo) is :", y2(lo) + //write(6,'(a,f15.6)'),"y2(lo+1) is :", y2(lo+1) + //write(6,'(a,f15.6)'),"yout is :", yout + //write(6,'(a)'),"" + return dyout; +} + +/** Generates the set cubic splining coefficients from a 1D array with + * the assumption that the distance between the points is constant. This + * interpolation method ensures that the derivative of this spline is + * continuous across the boundary of two intervals. + * + * These coefficients are only calculated *once*, but are later used on + * multiple occassions by another subroutine to interpolate anywhere + * between two points in this 1D array. + */ +void CMAP::generate_cubic_spline(int n, int step_size, std::vector<double> const& y, std::vector<double>& y2) +{ + // tmp array used internally for the decomposition loop + std::vector<double> tmp(n); + // Lower and upper boundaries are natural + y2[0] = 0.0; + tmp[0] = 0.0; + + for (int i = 1; i < n-1; i++) + { + // y2 is used initially as a temp storage array + double p = 0.5*y2[i-1] + 2.0; + //Debug + y2[i] = -0.5/p; + tmp[i] = ( y[i+1]-2.0*y[i] + y[i-1] ) / (double)step_size; + tmp[i] = ( 3.0* (tmp[i]/(double)step_size) - 0.5 *tmp[ i-1 ] )/p; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("%6i y2= %16.8f tmp= %16.8f\n", i, y2[i], tmp[i]); +# endif + } + + // Set the upper boundary + y2[n-1] = 0.0; + + for (int i = n-2; i > -1; i--) + { + y2[i]=y2[i]*y2[i+1]+tmp[i]; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("%6i %16.8f\n", i, y2[i]); +# endif + //mprintf("\t\t\tn is %i:\n",n); + //mprintf("\t\t\tStep size is : %i\n",step_size); + //mprintf("\t\t\ty is : %f\n",y[i]); + //mprintf("\t\t\ty2 is : %f\n",y2[i]); + } +} + +/** Called once after CMAP parameters have been read. This populates + * various partial derivatives in the cmapParameter%{dPsi,dPhi,dPsi_dPhi} + * object. It does this using a cubic spline on the read in CMAP grid. + * + * Later, this information is used to evaluate an arbitary phi/phi angle + * for a given crossterm. + */ +int CMAP::generate_cmap_derivatives(Topology const& topIn) +{ + if (!topIn.HasCmap()) { + mprinterr("Internal Error: CMAP::generate_cmap_derivatives(): Topology '%s' does not have CMAP parameters.\n", topIn.c_str()); + return 1; + } + // Allocate partial derivative matrices + cmap_dPhi_.resize( topIn.CmapGrid().size() ); + cmap_dPsi_.resize( topIn.CmapGrid().size() ); + cmap_dPhi_dPsi_.resize( topIn.CmapGrid().size() ); + for (unsigned int idx = 0; idx != topIn.CmapGrid().size(); idx++) { + unsigned int res = topIn.CmapGrid()[idx].Resolution(); + cmap_dPhi_[idx].resize( res, res ); + cmap_dPsi_[idx].resize( res, res ); + cmap_dPhi_dPsi_[idx].resize( res, res ); + } + // Loop over all grids + for (CmapGridArray::const_iterator grid = topIn.CmapGrid().begin(); + grid != topIn.CmapGrid().end(); ++grid) + { + // gidx is the cmap grid index + long int gidx = grid - topIn.CmapGrid().begin(); + int res = grid->Resolution(); + int halfRes = res / 2; + int twoRes = res * 2; + int step_size = 360 / res; + + std::vector<double> tmpy(twoRes); + std::vector<double> tmpy2(twoRes); + + // 1) calculate dE/dPhi + for (int row = 0; row < res; row++) + { + // Step up one row each cycle, splining across all columns + + // Fill an *extended* tmp array (tmpy) for with CMAP values + // for the 1D splining like CHARMM. + // It is possible CHARMM does this to avoid edge issues. + + unsigned int k=0; // index for tmpy array +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG: Row %6i from %6i to %6i\n", row, -halfRes, res+halfRes-1); +# endif + for (int col = -halfRes; col < res+halfRes; col++) { // -12 to 35 + tmpy[k] = grid->Grid(col, row); +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG:\t\t%6i%12.4f\n", k, tmpy[k]); +# endif + k++; + } + + // Calculate spline coeffients (tmpy2) for each of the 1D + // horizontal rows in the CMAP table + generate_cubic_spline(twoRes, step_size, tmpy, tmpy2); + + // Calculate %dPhi for using each row + // of energies and corresponding splines in tmpy and tmpy2 + for (int j = 0; j < res; j++) { + // offset array passed to evaluate_cubic_spline + double dPhi = evaluate_cubic_spline(step_size, tmpy, tmpy2, j+halfRes); //gbl_cmap_dPhi(i,row,j)) + cmap_dPhi_[gidx].setElement(row, j, dPhi); + } + } // END loop over rows + + // 2) calculate dE/dPsi + for (int col = 0; col < res; col++) + { + // Step across one column each cycle, splining up each column + + unsigned int k=0; // index for tmpy array +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG: Col %6i from %6i to %6i\n", col, -halfRes, res+halfRes-1); +# endif + for (int row = -halfRes; row < res+halfRes; row++) { // -12 to 35 + tmpy[k] = grid->Grid(col, row); +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG:\t\t%6i%12.4f\n", k, tmpy[k]); +# endif + k++; + } + + // Calculate spline coeffients (tmpy2) for each of the 1D + // vertical columns in the CMAP table + generate_cubic_spline(twoRes, step_size, tmpy, tmpy2); + + // Calculate %dPsi for using each column of energies and + // corresponding splines in tmpy and tmpy2 + for (int j = 0; j < res; j++) { + // offset array passed to evaluate_cubic_spline + double dPsi = evaluate_cubic_spline(step_size, tmpy, tmpy2, j+halfRes); //gbl_cmap_dPsi(i,j,col)) + cmap_dPsi_[gidx].setElement(j, col, dPsi); + } + } // END loop over cols + + // 3) calculate d^2E/dPhidPsi + // TODO Interpolate partitial derivative of psi; dE/dPhi ? + for (int col = 0; col < res; col++) + { + unsigned int k=0; +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG: D2 %6i from %6i to %6i\n", col, -halfRes, res+halfRes-1); +# endif + for (int row = -halfRes; row < res+halfRes; row++) { // -12 to 35 + tmpy[k] = cmap_dPhi_[gidx].element_wrapped(row, col); +# ifdef DEBUG_CPPTRAJ_CMAP + mprintf("DEBUG:\t\t%6i%12.4f\n", k, tmpy[k]); +# endif + k++; + } + + generate_cubic_spline(twoRes, step_size, tmpy, tmpy2); + + for (int j = 0; j < res; j++) { + double dPhiPsi = evaluate_cubic_spline(step_size, tmpy, tmpy2, j+halfRes); //gbl_cmap_dPhi_dPsi(i,j,col)) + cmap_dPhi_dPsi_[gidx].setElement(j, col, dPhiPsi); + } + } // END loop over cols + + } // END loop over grids + + return 0; +} + +/** Set up CMAP-related terms */ +int CMAP::Setup_CMAP_Ene(Topology const& topIn, CharMask const& cmask) { + if (selected_cmaps_ != 0) delete selected_cmaps_; + selected_cmaps_ = 0; + all_cmaps_ = 0; + + if (!topIn.HasCmap()) { + mprintf("Warning: No CMAP parameters in '%s'\n", topIn.c_str()); + return 0; + } + cmapGridPtr_ = &(topIn.CmapGrid()); + if (generate_cmap_derivatives(topIn)) { + mprinterr("Error: Could not set up CMAP derivatives.\n"); + return 1; + } + + CmapArray const* cmaparray = 0; + if (cmask.All()) { + mprintf("\tAll CMAPs will be selected.\n"); + all_cmaps_ = &(topIn.Cmap()); + cmaparray = all_cmaps_; + mprintf("\t%zu CMAPs.\n", all_cmaps_->size()); + } else { + selected_cmaps_ = new CmapArray(); + cmaparray = (CmapArray const*)selected_cmaps_; + for (CmapArray::const_iterator cmap = topIn.Cmap().begin(); + cmap != topIn.Cmap().end(); ++cmap) + { + if ( cmask.AtomInCharMask(cmap->A1()) && + cmask.AtomInCharMask(cmap->A2()) && + cmask.AtomInCharMask(cmap->A3()) && + cmask.AtomInCharMask(cmap->A4()) && + cmask.AtomInCharMask(cmap->A5()) ) + { + selected_cmaps_->push_back( *cmap ); + } + } + mprintf("\t%zu CMAPs.\n", selected_cmaps_->size()); + } + if (debug_ > 0) { + for (CmapArray::const_iterator cmap = cmaparray->begin(); cmap != cmaparray->end(); ++cmap) + { + mprintf("\t\tSelecting CMAP %s - %s - %s - %s - %s\n", + topIn.AtomMaskName(cmap->A1()).c_str(), + topIn.AtomMaskName(cmap->A2()).c_str(), + topIn.AtomMaskName(cmap->A3()).c_str(), + topIn.AtomMaskName(cmap->A4()).c_str(), + topIn.AtomMaskName(cmap->A5()).c_str()); + } + } + return 0; +} diff --git a/src/Energy/CMAP.h b/src/Energy/CMAP.h new file mode 100644 index 0000000000..8bfac72272 --- /dev/null +++ b/src/Energy/CMAP.h @@ -0,0 +1,63 @@ +#ifndef INC_ENERGY_CMAP_H +#define INC_ENERGY_CMAP_H +#include <vector> +#include "../Matrix.h" +class CharMask; +class CmapArray; +class CmapGridArray; +class Frame; +class Topology; +class Vec3; +namespace Cpptraj { +namespace Energy { +/// Implement CMAP energy term +/** This class implements the 2D dihedral energy grid correction map (CMAP) + * energy and force calculations: see MacKerell et. al JACS 2004 126 698-699. + * The code in this class is largely based off of the cmap.F90 file + * from the pmemd program of Amber, adapted to C++ by DRR. + * Compile with DEBUG_CPPTRAJ_CMAP for more detailed debug output. + */ +class CMAP { + public: + CMAP(); + ~CMAP(); + + /// Set debug level + void SetDebug(int); + /// Setup CMAP terms to be calculated, splines, etc + int Setup_CMAP_Ene(Topology const&, CharMask const&); + /// Calculate CMAP energy + double Ene_CMAP(Frame const&) const; + /// Calculate CMAP energy and force + double Ene_Frc_CMAP(Frame const&, double*) const; + /// \return True if there are CMAP terms + bool HasCMAPs() const { return (selected_cmaps_ != 0 || all_cmaps_ != 0); } + private: + //double get_cmap_energy(CmapArray const&, Frame const&, double&, double&, + // Vec3(&dPhi_dijkl)[4], Vec3(&dPsi_djklm)[4]) const; + /// Calculate CMAP energy + double Ene_CMAP(CmapArray const&, Frame const&) const; + /// Calculate CMAP energy and force + double Ene_Frc_CMAP(CmapArray const&, Frame const&, double*) const; + + double charmm_calc_cmap_from_phi_psi(double, double, int, double&, double&) const; + static double evaluate_cubic_spline(int, std::vector<double> const&, std::vector<double> const&, int); + int generate_cmap_derivatives(Topology const&); + static void generate_cubic_spline(int, int, std::vector<double> const&, std::vector<double>&); + + typedef Matrix<double> Dmatrix; + typedef std::vector<Dmatrix> DMarray; + + DMarray cmap_dPhi_; ///< Hold dE/dPhi for each CMAP grid + DMarray cmap_dPsi_; ///< Hold dE/dPsi for each CMAP grid + DMarray cmap_dPhi_dPsi_; ///< Hold d^2E/dPhidPsi for each CMAP grid + CmapGridArray const* cmapGridPtr_; ///< Pointer to CMAP grids this was set up with. + CmapArray* selected_cmaps_; ///< Hold cmaps to calculate energy for if not all selected. + CmapArray const* all_cmaps_; ///< Pointer to CMAP array in Topology when all selected. + int debug_; + + static const int wt_[16][16]; ///< Weight matrix +}; +} +} +#endif diff --git a/src/Energy/CMakeLists.txt b/src/Energy/CMakeLists.txt index d8fffe4717..524a784d0f 100644 --- a/src/Energy/CMakeLists.txt +++ b/src/Energy/CMakeLists.txt @@ -1,10 +1,13 @@ #CMake buildfile for CPPTRAJ Energy subdirectory. target_sources(cpptraj_common_obj PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/CMAP.cpp ${CMAKE_CURRENT_LIST_DIR}/Ecalc_Nonbond.cpp ${CMAKE_CURRENT_LIST_DIR}/EnergyDecomposer.cpp ${CMAKE_CURRENT_LIST_DIR}/ErfcFxn.cpp + ${CMAKE_CURRENT_LIST_DIR}/EwaldCalc_Decomp_LJCPME.cpp ${CMAKE_CURRENT_LIST_DIR}/EwaldCalc_Decomp_LJPME.cpp ${CMAKE_CURRENT_LIST_DIR}/EwaldCalc_Decomp_PME.cpp + ${CMAKE_CURRENT_LIST_DIR}/EwaldCalc_LJCPME.cpp ${CMAKE_CURRENT_LIST_DIR}/EwaldCalc_LJPME.cpp ${CMAKE_CURRENT_LIST_DIR}/EwaldCalc_PME.cpp ${CMAKE_CURRENT_LIST_DIR}/EwaldCalc_Regular.cpp diff --git a/src/Energy/Ecalc_Nonbond.cpp b/src/Energy/Ecalc_Nonbond.cpp index 3de7a16a7f..434743c238 100644 --- a/src/Energy/Ecalc_Nonbond.cpp +++ b/src/Energy/Ecalc_Nonbond.cpp @@ -3,8 +3,10 @@ #ifdef LIBPME # include "EwaldCalc_LJPME.h" # include "EwaldCalc_PME.h" +# include "EwaldCalc_LJCPME.h" # include "EwaldCalc_Decomp_LJPME.h" # include "EwaldCalc_Decomp_PME.h" +# include "EwaldCalc_Decomp_LJCPME.h" #else // TODO This is here for when LIBPME is not defined because there is // currently no decomp version of regular Ewald. If there ever is @@ -60,6 +62,12 @@ int Ecalc_Nonbond::InitNonbondCalc(CalcType typeIn, bool decompose_energyIn, else calc_ = new EwaldCalc_LJPME(); break; + case LJCPME : + if (decompose_energy_) + calc_ = new EwaldCalc_Decomp_LJCPME(); + else + calc_ = new EwaldCalc_LJCPME(); + break; # else case PME : mprinterr("Error: PME requires compiling with LIBPME (FFTW3 and C++11 support).\n"); return 1; case LJPME : mprinterr("Error: LJPME requires compiling with LIBPME (FFTW3 and C++11 support).\n"); return 1; diff --git a/src/Energy/Ecalc_Nonbond.h b/src/Energy/Ecalc_Nonbond.h index aa1c792cb8..d2b7eb230a 100644 --- a/src/Energy/Ecalc_Nonbond.h +++ b/src/Energy/Ecalc_Nonbond.h @@ -6,6 +6,10 @@ class CharMask; class EwaldOptions; class Topology; namespace Cpptraj { +/** @brief The namespace that all energy-related classes should be in. + * + * Namespace for all classes and functions related to calculating energy/forces. + */ namespace Energy { class EwaldCalc; /// Calculate nonbonded energy for atoms @@ -13,7 +17,7 @@ class Ecalc_Nonbond { public: typedef std::vector<double> Darray; - enum CalcType { SIMPLE = 0, PME, LJPME, REGULAR_EWALD, UNSPECIFIED }; + enum CalcType { SIMPLE = 0, PME, LJPME, LJCPME, REGULAR_EWALD, UNSPECIFIED }; /// CONSTRUCTOR Ecalc_Nonbond(); /// DESTRUCTOR diff --git a/src/Energy/Ene_LJ_12_6_4.h b/src/Energy/Ene_LJ_12_6_4.h new file mode 100644 index 0000000000..cd12d83514 --- /dev/null +++ b/src/Energy/Ene_LJ_12_6_4.h @@ -0,0 +1,21 @@ +#ifndef INC_ENERGY_ENE_LJ_12_6_4_H +#define INC_ENERGY_ENE_LJ_12_6_4_H +namespace Cpptraj { +namespace Energy { +/// \return LJ 12-6-4 energy +template <typename T> +T Ene_LJ_12_6_4(T const& rij2, T const& LJA, T const& LJB, T const& LJC) +{ + T r2 = 1.0 / rij2; + T r4 = r2 * r2; + T r6 = r4 * r2; + T r12 = r6 * r6; + T f12 = LJA * r12; // A/r^12 + T f6 = LJB * r6; // B/r^6 + T f4 = LJC * r4; // C/r^4 + T e_vdw = f12 - f6 - f4; // (A/r^12)-(B/r^6)-(C/r^4) + return e_vdw; +} +} +} +#endif diff --git a/src/Energy/EnergyDecomposer.cpp b/src/Energy/EnergyDecomposer.cpp index 291e26ba9e..a5e9e83953 100644 --- a/src/Energy/EnergyDecomposer.cpp +++ b/src/Energy/EnergyDecomposer.cpp @@ -32,12 +32,14 @@ EnergyDecomposer::EnergyDecomposer() : outfile_(0), debug_(0), saveComponents_(false), + lj1264_(false), + useLj1264_(false), currentTop_(0) { } void EnergyDecomposer::HelpText() { mprintf("\t[<name>] [<mask>] [out <filename>] [savecomponents]\n" - "\t[ pme %s\n" + "\t[ pme %s [lj1264]\n" "\t %s\n" "\t %s\n", EwaldOptions::KeywordsCommon1(), @@ -53,6 +55,8 @@ int EnergyDecomposer::InitDecomposer(ArgList& argIn, DataSetList& DSLin, DataFil // Process keywords outfile_ = DFLin.AddDataFile( argIn.GetStringKey("out"), argIn ); saveComponents_ = argIn.hasKey("savecomponents"); + // LJ 12-6-4 + useLj1264_ = argIn.hasKey("lj1264"); nbcalctype_ = Ecalc_Nonbond::SIMPLE; if (argIn.hasKey("pme")) nbcalctype_ = Ecalc_Nonbond::PME; @@ -63,10 +67,22 @@ int EnergyDecomposer::InitDecomposer(ArgList& argIn, DataSetList& DSLin, DataFil return 1; if (ewaldOpts_.Type() == EwaldOptions::LJPME) nbcalctype_ = Ecalc_Nonbond::LJPME; + if (useLj1264_) { + if (nbcalctype_ != Ecalc_Nonbond::PME) { + mprinterr("Error: 'lj1264' is only compatible with regular PME.\n"); + return 1; + } + nbcalctype_ = Ecalc_Nonbond::LJCPME; + } # else mprinterr("Error: 'pme' with energy decomposition requires compilation with LIBPME.\n"); return 1; # endif + } else { + if (useLj1264_) { + mprinterr("Error: 'lj1264' currently requires 'pme'.\n"); + return 1; + } } // Get atom mask if (selectedAtoms_.SetMaskString( argIn.GetMaskNext() )) @@ -142,14 +158,16 @@ void EnergyDecomposer::PrintOpts() const { mprintf("\tOutput file: %s\n", outfile_->DataFilename().full()); if (nbcalctype_ != Ecalc_Nonbond::SIMPLE) { mprintf("\tUsing PME.\n"); + if (useLj1264_) + mprintf("\tWill use LJ 12-6-4 (C) coefficients if present.\n"); ewaldOpts_.PrintOptions(); } } // ----------------------------------------------------------------------------- /** Set up bonds. */ -int EnergyDecomposer::setupBonds(BndArrayType const& bondsIn) { - for (BndArrayType::const_iterator bnd = bondsIn.begin(); bnd != bondsIn.end(); ++bnd) +int EnergyDecomposer::setupBonds(BondArray const& bondsIn) { + for (BondArray::const_iterator bnd = bondsIn.begin(); bnd != bondsIn.end(); ++bnd) { if ( selectedAtoms_.AtomInCharMask( bnd->A1() ) || selectedAtoms_.AtomInCharMask( bnd->A2() ) ) @@ -166,8 +184,8 @@ int EnergyDecomposer::setupBonds(BndArrayType const& bondsIn) { } /** Set up angles. */ -int EnergyDecomposer::setupAngles(AngArrayType const& anglesIn) { - for (AngArrayType::const_iterator ang = anglesIn.begin(); ang != anglesIn.end(); ++ang) +int EnergyDecomposer::setupAngles(AngleArray const& anglesIn) { + for (AngleArray::const_iterator ang = anglesIn.begin(); ang != anglesIn.end(); ++ang) { if ( selectedAtoms_.AtomInCharMask( ang->A1() ) || selectedAtoms_.AtomInCharMask( ang->A2() ) || @@ -185,8 +203,8 @@ int EnergyDecomposer::setupAngles(AngArrayType const& anglesIn) { } /** Set up dihedrals. */ -int EnergyDecomposer::setupDihedrals(DihArrayType const& dihedralsIn) { - for (DihArrayType::const_iterator dih = dihedralsIn.begin(); dih != dihedralsIn.end(); ++dih) +int EnergyDecomposer::setupDihedrals(DihedralArray const& dihedralsIn) { + for (DihedralArray::const_iterator dih = dihedralsIn.begin(); dih != dihedralsIn.end(); ++dih) { if ( selectedAtoms_.AtomInCharMask( dih->A1() ) || selectedAtoms_.AtomInCharMask( dih->A2() ) || @@ -218,6 +236,27 @@ int EnergyDecomposer::SetupDecomposer(Topology const& topIn, Box const& boxIn) { mprintf("Warning: Nothing selected by mask '%s'\n", selectedAtoms_.MaskString()); return -1; } + // Check for LJ terms + lj1264_ = false; + if (topIn.Nonbond().HasNonbond()) + { + if (useLj1264_) { + if (topIn.Nonbond().Has_C_Coeff()) { + lj1264_ = true; + mprintf("\tLJ 12-6-4 (C) terms are active.\n"); + } else + mprintf("Warning: 'lj1264' specified but no LJ 12-6-4 (C) terms present in topology '%s'\n", topIn.c_str()); + } else { + if (topIn.Nonbond().Has_C_Coeff()) { + mprintf("Warning: Topology has LJ C coefficients. To use these, specify 'lj1264'\n"); + } + } + } else { + if (useLj1264_) { + mprinterr("Error: 'lj1264' specified but no nonbond parameters present.\n"); + return 1; + } + } // Set up calculation arrays if (energies_.empty()) { // First time setup @@ -282,13 +321,13 @@ int EnergyDecomposer::SetupDecomposer(Topology const& topIn, Box const& boxIn) { if (selectedAtoms_.AtomInCharMask( idx )) mprintf("\t%s\n", topIn.AtomMaskName( idx ).c_str()); mprintf("DEBUG: Bonds:\n"); - for (BndArrayType::const_iterator bnd = bonds_.begin(); bnd != bonds_.end(); ++bnd) + for (BondArray::const_iterator bnd = bonds_.begin(); bnd != bonds_.end(); ++bnd) mprintf("\t%s - %s\n", topIn.AtomMaskName(bnd->A1()).c_str(), topIn.AtomMaskName(bnd->A2()).c_str()); mprintf("DEBUG: Angles:\n"); - for (AngArrayType::const_iterator ang = angles_.begin(); ang != angles_.end(); ++ang) + for (AngleArray::const_iterator ang = angles_.begin(); ang != angles_.end(); ++ang) mprintf("\t%s - %s - %s\n", topIn.AtomMaskName(ang->A1()).c_str(), topIn.AtomMaskName(ang->A2()).c_str(), topIn.AtomMaskName(ang->A3()).c_str()); mprintf("DEBUG: Dihedrals:\n"); - for (DihArrayType::const_iterator dih = dihedrals_.begin(); dih != dihedrals_.end(); ++dih) + for (DihedralArray::const_iterator dih = dihedrals_.begin(); dih != dihedrals_.end(); ++dih) mprintf("\t%s - %s - %s - %s\n", topIn.AtomMaskName(dih->A1()).c_str(), topIn.AtomMaskName(dih->A2()).c_str(), topIn.AtomMaskName(dih->A3()).c_str(), topIn.AtomMaskName(dih->A4()).c_str()); } @@ -309,7 +348,7 @@ void EnergyDecomposer::saveEne(int idx, double ene_cont, Darray& componentEne) { /** Calculate bond energies. */ void EnergyDecomposer::calcBonds( Frame const& frameIn ) { - for (BndArrayType::const_iterator bnd = bonds_.begin(); bnd != bonds_.end(); ++bnd) + for (BondArray::const_iterator bnd = bonds_.begin(); bnd != bonds_.end(); ++bnd) { BondParmType const& BP = currentTop_->BondParm()[ bnd->Idx() ]; double ene = Ene_Bond<double>( frameIn.XYZ( bnd->A1() ), @@ -327,7 +366,7 @@ void EnergyDecomposer::calcBonds( Frame const& frameIn ) { /** Calculate angle energies. */ void EnergyDecomposer::calcAngles( Frame const& frameIn ) { - for (AngArrayType::const_iterator ang = angles_.begin(); ang != angles_.end(); ++ang) + for (AngleArray::const_iterator ang = angles_.begin(); ang != angles_.end(); ++ang) { AngleParmType const& AP = currentTop_->AngleParm()[ ang->Idx() ]; double ene = Ene_Angle<double>( frameIn.XYZ( ang->A1() ), @@ -347,7 +386,7 @@ void EnergyDecomposer::calcAngles( Frame const& frameIn ) { /** Calculate dihedral and LJ 1-4 energies. */ void EnergyDecomposer::calcDihedrals( Frame const& frameIn ) { - for (DihArrayType::const_iterator dih = dihedrals_.begin(); dih != dihedrals_.end(); ++dih) + for (DihedralArray::const_iterator dih = dihedrals_.begin(); dih != dihedrals_.end(); ++dih) { DihedralParmType const& DP = currentTop_->DihedralParm()[ dih->Idx() ]; diff --git a/src/Energy/EnergyDecomposer.h b/src/Energy/EnergyDecomposer.h index c8889323b5..a1fe8fc116 100644 --- a/src/Energy/EnergyDecomposer.h +++ b/src/Energy/EnergyDecomposer.h @@ -5,6 +5,7 @@ #include "../CharMask.h" #include "../EwaldOptions.h" #include "../OnlineVarT.h" +#include "../ParameterTypes.h" #include "../Timer.h" #ifdef MPI # include "../Parallel.h" @@ -48,18 +49,15 @@ class EnergyDecomposer { private: typedef std::vector<double> Darray; typedef std::vector< Stats<double> > EneArrayType; - typedef std::vector<BondType> BndArrayType; - typedef std::vector<AngleType> AngArrayType; - typedef std::vector<DihedralType> DihArrayType; /// Set up an energy component output data set DataSet* addCompSet(DataSetList&, std::string const&); /// Set up selected bonds - int setupBonds(BndArrayType const&); + int setupBonds(BondArray const&); /// Set up selected angles - int setupAngles(AngArrayType const&); + int setupAngles(AngleArray const&); /// Set up selected dihedrals - int setupDihedrals(DihArrayType const&); + int setupDihedrals(DihedralArray const&); /// Save energy contribution for atom if it is selected inline void saveEne(int, double, Darray&); @@ -84,12 +82,14 @@ class EnergyDecomposer { DataFile* outfile_; ///< Output file int debug_; ///< Debug level bool saveComponents_; ///< If true, save per-atom energies for individual energy components + bool lj1264_; ///< True if LJ 12-6-4 (C) terms are active + bool useLj1264_; ///< True if we want to use LJ 12-6-4 (C) terms if present EwaldOptions ewaldOpts_; ///< Hold Ewald options Cpptraj::Energy::Ecalc_Nonbond::CalcType nbcalctype_; - BndArrayType bonds_; ///< Hold all bonds to be calculated - AngArrayType angles_; ///< Hold all angles to be calculated - DihArrayType dihedrals_; ///< Hold all dihedrals to be calculated + BondArray bonds_; ///< Hold all bonds to be calculated + AngleArray angles_; ///< Hold all angles to be calculated + DihedralArray dihedrals_; ///< Hold all dihedrals to be calculated //AtomMask mask_; ///< Atom mask for nonbonded calculations EneArrayType energies_; ///< Used to accumulate the average energy of each selected entity. EneArrayType eBonds_; ///< Accumulate average bond energy diff --git a/src/Energy/EwaldCalc_Decomp_LJCPME.cpp b/src/Energy/EwaldCalc_Decomp_LJCPME.cpp new file mode 100644 index 0000000000..7feff593ca --- /dev/null +++ b/src/Energy/EwaldCalc_Decomp_LJCPME.cpp @@ -0,0 +1,132 @@ +#include "EwaldCalc_Decomp_LJCPME.h" +#ifdef LIBPME +#include "../CpptrajStdio.h" +#include "../EwaldOptions.h" +#include "../Frame.h" +#include "../PairListTemplate.h" + +using namespace Cpptraj::Energy; + +EwaldCalc_Decomp_LJCPME::EwaldCalc_Decomp_LJCPME() : + Recip_(PME_Recip::COULOMB) +{} + +/** Set up PME parameters. */ +int EwaldCalc_Decomp_LJCPME::Init(Box const& boxIn, EwaldOptions const& pmeOpts, int debugIn) +{ + // Sanity check + if (!pmeOpts.IsPmeType()) { + mprinterr("Internal Error: EwaldCalc_Decomp_LJCPME::Init(): Options were not set up for PME.\n"); + return 1; + } + mprintf("\tDecomposed Particle Mesh Ewald params:\n"); + if (NBengine_.ModifyEwaldParams().InitEwald(boxIn, pmeOpts, debugIn)) { + mprinterr("Error: Decomposable PME (with LJC for VDW) calculation init failed.\n"); + return 1; + } + VDW_LR_.SetDebug( debugIn ); + if (Recip_.InitRecip(pmeOpts, debugIn)) { + mprinterr("Error: PME (with LJC for VDW) recip init failed.\n"); + return 1; + } + + return 0; +} + +/** Setup PME calculation. */ +int EwaldCalc_Decomp_LJCPME::Setup(Topology const& topIn, AtomMask const& maskIn) { + if (NBengine_.ModifyEwaldParams().SetupEwald(topIn, maskIn)) { + mprinterr("Error: PME (with LJC for VDW) calculation setup failed.\n"); + return 1; + } + if (VDW_LR_.Setup_VDW_Correction( topIn, maskIn )) { + mprinterr("Error: PME (with LJC for VDW) calculation long range VDW correction setup failed.\n"); + return 1; + } + // TODO reserve atom_elec and atom_vdw? + + return 0; +} + +/** Calculate full decomposed nonbonded energy with PME */ +int EwaldCalc_Decomp_LJCPME::CalcNonbondEnergy(Frame const& frameIn, AtomMask const& maskIn, + PairList const& pairList_, ExclusionArray const& Excluded_, + double& e_elec, double& e_vdw) +{ + t_total_.Start(); + double volume = frameIn.BoxCrd().CellVolume(); + Darray atom_self; + double e_self = NBengine_.EwaldParams().DecomposedSelfEnergy( atom_self, volume ); +# ifdef CPPTRAJ_DEBUG_ENEDECOMP + mprintf("DEBUG: Total self energy: %f\n", e_self); + mprintf("DEBUG: Sum of self array: %f\n", sumArray(atom_self)); +# endif + // TODO make more efficient + NBengine_.ModifyEwaldParams().FillRecipCoords( frameIn, maskIn ); + + Darray atom_recip; + // FIXME helPME requires coords and charge arrays to be non-const + double e_recip = Recip_.Recip_Decomp( atom_recip, + NBengine_.ModifyEwaldParams().SelectedCoords(), + frameIn.BoxCrd(), + NBengine_.ModifyEwaldParams().SelectedCharges(), + NBengine_.EwaldParams().EwaldCoeff() + ); +# ifdef CPPTRAJ_DEBUG_ENEDECOMP + mprintf("DEBUG: Recip energy : %f\n", e_recip); + mprintf("DEBUG: Sum of recip array: %f\n", sumArray(atom_recip)); +# endif + // TODO distribute + Darray atom_vdwlr; + double e_vdw_lr_correction = VDW_LR_.Vdw_Decomp_Correction( atom_vdwlr, + NBengine_.EwaldParams().Cutoff(), volume ); +# ifdef CPPTRAJ_DEBUG_ENEDECOMP + mprintf("DEBUG: VDW correction : %f\n", e_vdw_lr_correction); + mprintf("DEBUG: Sum of VDW correction: %f\n", sumArray(atom_vdwlr)); +# endif + t_direct_.Start(); + Cpptraj::PairListTemplate<double>(pairList_, Excluded_, + NBengine_.EwaldParams().Cut2(), NBengine_); + t_direct_.Stop(); +# ifdef CPPTRAJ_DEBUG_ENEDECOMP + mprintf("DEBUG: Direct Elec. energy : %f\n", NBengine_.Eelec()); + mprintf("DEBUG: Sum of elec. energy : %f\n", sumArray(NBengine_.Eatom_Elec())); + mprintf("DEBUG: Direct VDW energy : %f\n", NBengine_.Evdw()); + mprintf("DEBUG: Sum of VDW energy : %f\n", sumArray(NBengine_.Eatom_EVDW())); + mprintf("DEBUG: Direct Adjust energy: %f\n", NBengine_.Eadjust()); + mprintf("DEBUG: Sum of Adjust energy: %f\n", sumArray(NBengine_.Eatom_EAdjust())); +# endif + if (NBengine_.EwaldParams().Debug() > 0) { + mprintf("DEBUG: Nonbond energy components:\n"); + mprintf(" Evdw = %24.12f\n", NBengine_.Evdw() + e_vdw_lr_correction ); + mprintf(" Ecoulomb = %24.12f\n", e_self + e_recip + + NBengine_.Eelec() + + NBengine_.Eadjust()); + mprintf("\n"); + mprintf(" E electrostatic (self) = %24.12f\n", e_self); + mprintf(" (rec) = %24.12f\n", e_recip); + mprintf(" (dir) = %24.12f\n", NBengine_.Eelec()); + mprintf(" (adj) = %24.12f\n", NBengine_.Eadjust()); + mprintf(" E vanDerWaals (dir) = %24.12f\n", NBengine_.Evdw()); + mprintf(" (LR) = %24.12f\n", e_vdw_lr_correction); + } + e_vdw = NBengine_.Evdw() + e_vdw_lr_correction; + e_elec = e_self + e_recip + NBengine_.Eelec() + NBengine_.Eadjust(); + // TODO preallocate? + atom_elec_.resize( NBengine_.Eatom_Elec().size() ); + atom_vdw_.resize( NBengine_.Eatom_EVDW().size() ); + for (unsigned int idx = 0; idx != atom_elec_.size(); idx++) + { + atom_elec_[idx] = atom_self[idx] + atom_recip[idx] + NBengine_.Eatom_Elec()[idx] + NBengine_.Eatom_EAdjust()[idx]; + atom_vdw_[idx] = NBengine_.Eatom_EVDW()[idx] + atom_vdwlr[idx]; + } + t_total_.Stop(); + return 0; +} + +void EwaldCalc_Decomp_LJCPME::Timing(double total) const { + t_total_.WriteTiming(1, " PME decomp Total:", total); + Recip_.Timing_Total().WriteTiming(2, "Recip: ", t_total_.Total()); + t_direct_.WriteTiming(2, "Direct: ", t_total_.Total()); +} +#endif /* LIBPME */ diff --git a/src/Energy/EwaldCalc_Decomp_LJCPME.h b/src/Energy/EwaldCalc_Decomp_LJCPME.h new file mode 100644 index 0000000000..57db9a58a6 --- /dev/null +++ b/src/Energy/EwaldCalc_Decomp_LJCPME.h @@ -0,0 +1,32 @@ +#ifndef INC_ENERGY_EWALDCALC_DECOMP_LJCPME_H +#define INC_ENERGY_EWALDCALC_DECOMP_LJCPME_H +#ifdef LIBPME +#include "EwaldCalc_Decomp.h" +#include "PME_Recip.h" +#include "VDW_LongRange_Correction.h" +#include "../PairListEngine_Ewald_Decomp_LJCLR.h" +namespace Cpptraj { +namespace Energy { +/** Energy decomposition for nonbonded calculation using PME and LJC w/ VDW + * long-range correction. + * Comple with -DCPPTRAJ_DEBUG_ENEDECOMP for more details on the individual + * contributions. + */ +class EwaldCalc_Decomp_LJCPME : public EwaldCalc_Decomp { + public: + EwaldCalc_Decomp_LJCPME(); + int Init(Box const&, EwaldOptions const&, int); + int Setup(Topology const&, AtomMask const&); // TODO CharMask? + int CalcNonbondEnergy(Frame const&, AtomMask const&, + PairList const&, ExclusionArray const&, + double&, double&); + void Timing(double) const; + private: + PairListEngine_Ewald_Decomp_LJCLR<double> NBengine_; + PME_Recip Recip_; + VDW_LongRange_Correction VDW_LR_; ///< For calculating the long range VDW correction +}; +} +} +#endif /* LIBPME */ +#endif diff --git a/src/Energy/EwaldCalc_LJCPME.cpp b/src/Energy/EwaldCalc_LJCPME.cpp new file mode 100644 index 0000000000..4c10bc5296 --- /dev/null +++ b/src/Energy/EwaldCalc_LJCPME.cpp @@ -0,0 +1,106 @@ +#include "EwaldCalc_LJCPME.h" +#ifdef LIBPME +#include "../CpptrajStdio.h" +#include "../EwaldOptions.h" +#include "../Frame.h" +#include "../PairListTemplate.h" +#include "../Topology.h" + +using namespace Cpptraj::Energy; + +EwaldCalc_LJCPME::EwaldCalc_LJCPME() : + Recip_(PME_Recip::COULOMB) +{} + +/** Set up PME parameters. */ +int EwaldCalc_LJCPME::Init(Box const& boxIn, EwaldOptions const& pmeOpts, int debugIn) +{ + // Sanity check + if (!pmeOpts.IsPmeType()) { + mprinterr("Internal Error: EwaldCalc_LJCPME::Init(): Options were not set up for PME.\n"); + return 1; + } + mprintf("\tParticle Mesh Ewald (with LJC for VDW) params:\n"); + if (NBengine_.ModifyEwaldParams().InitEwald(boxIn, pmeOpts, debugIn)) { + mprinterr("Error: PME with LJC calculation init failed.\n"); + return 1; + } + VDW_LR_.SetDebug( debugIn ); + if (Recip_.InitRecip(pmeOpts, debugIn)) { + mprinterr("Error: PME with LJC recip init failed.\n"); + return 1; + } + + return 0; +} + +/** Setup PME calculation. */ +int EwaldCalc_LJCPME::Setup(Topology const& topIn, AtomMask const& maskIn) { + if (NBengine_.ModifyEwaldParams().SetupEwald(topIn, maskIn)) { + mprinterr("Error: PME with LJC calculation setup failed.\n"); + return 1; + } + if (VDW_LR_.Setup_VDW_Correction( topIn, maskIn )) { + mprinterr("Error: PME with LJC calculation long range VDW correction setup failed.\n"); + return 1; + } + if (!topIn.Nonbond().Has_C_Coeff()) { + mprinterr("Error: Cannot set up PME with LJC; topology '%s' does not have LJ 12-6-4 (C) terms.\n", topIn.c_str()); + return 1; + } + + return 0; +} + +/** Calculate full nonbonded energy with PME */ +int EwaldCalc_LJCPME::CalcNonbondEnergy(Frame const& frameIn, AtomMask const& maskIn, + PairList const& pairList_, ExclusionArray const& Excluded_, + double& e_elec, double& e_vdw) +{ + t_total_.Start(); + double volume = frameIn.BoxCrd().CellVolume(); + double e_self = NBengine_.EwaldParams().SelfEnergy( volume ); + + // TODO make more efficient + NBengine_.ModifyEwaldParams().FillRecipCoords( frameIn, maskIn ); + + // FIXME helPME requires coords and charge arrays to be non-const + double e_recip = Recip_.Recip_ParticleMesh( NBengine_.ModifyEwaldParams().SelectedCoords(), + frameIn.BoxCrd(), + NBengine_.ModifyEwaldParams().SelectedCharges(), + NBengine_.EwaldParams().EwaldCoeff() + ); + + double e_vdw_lr_correction = VDW_LR_.Vdw_Correction( NBengine_.EwaldParams().Cutoff(), volume ); + + t_direct_.Start(); + Cpptraj::PairListTemplate<double>(pairList_, Excluded_, + NBengine_.EwaldParams().Cut2(), NBengine_); + t_direct_.Stop(); + + if (NBengine_.EwaldParams().Debug() > 0) { + mprintf("DEBUG: Nonbond energy components:\n"); + mprintf(" Evdw = %24.12f\n", NBengine_.Evdw() + e_vdw_lr_correction ); + mprintf(" Ecoulomb = %24.12f\n", e_self + e_recip + + NBengine_.Eelec() + + NBengine_.Eadjust()); + mprintf("\n"); + mprintf(" E electrostatic (self) = %24.12f\n", e_self); + mprintf(" (rec) = %24.12f\n", e_recip); + mprintf(" (dir) = %24.12f\n", NBengine_.Eelec()); + mprintf(" (adj) = %24.12f\n", NBengine_.Eadjust()); + mprintf(" E vanDerWaals (dir) = %24.12f\n", NBengine_.Evdw()); + mprintf(" (LR) = %24.12f\n", e_vdw_lr_correction); + } + e_vdw = NBengine_.Evdw() + e_vdw_lr_correction; + e_elec = e_self + e_recip + NBengine_.Eelec() + NBengine_.Eadjust(); + t_total_.Stop(); + return 0; +} + +void EwaldCalc_LJCPME::Timing(double total) const { + t_total_.WriteTiming(1, " PME Total:", total); + Recip_.Timing_Total().WriteTiming(2, "Recip: ", t_total_.Total()); + t_direct_.WriteTiming(2, "Direct: ", t_total_.Total()); +} +#endif /* LIBPME */ diff --git a/src/Energy/EwaldCalc_LJCPME.h b/src/Energy/EwaldCalc_LJCPME.h new file mode 100644 index 0000000000..e00528996b --- /dev/null +++ b/src/Energy/EwaldCalc_LJCPME.h @@ -0,0 +1,29 @@ +#ifndef INC_ENERGY_EWALDCALC_LJCPME_H +#define INC_ENERGY_EWALDCALC_LJCPME_H +#ifdef LIBPME +#include "EwaldCalc.h" +#include "PME_Recip.h" +#include "VDW_LongRange_Correction.h" +#include "../PairListEngine_Ewald_LJCLR.h" +namespace Cpptraj { +namespace Energy { +class EwaldCalc_LJCPME : public EwaldCalc { + public: + EwaldCalc_LJCPME(); + /// Init with Box, EwaldOptions and debug level + int Init(Box const&, EwaldOptions const&, int); + int Setup(Topology const&, AtomMask const&); + int CalcNonbondEnergy(Frame const&, AtomMask const&, + PairList const&, ExclusionArray const&, + double&, double&); + + void Timing(double) const; + private: + PairListEngine_Ewald_LJCLR<double> NBengine_; + PME_Recip Recip_; + VDW_LongRange_Correction VDW_LR_; ///< For calculating the long range VDW correction +}; +} +} +#endif +#endif diff --git a/src/Energy/EwaldParams.h b/src/Energy/EwaldParams.h index efdd4fb451..7aeae37ba8 100644 --- a/src/Energy/EwaldParams.h +++ b/src/Energy/EwaldParams.h @@ -51,6 +51,8 @@ class EwaldParams { int NbIndex(int idx0, int idx1) const { return NB_->GetLJindex(TypeIndices_[idx0], TypeIndices_[idx1]); } /// \return Nonbonded parameter at nonobonded parameter index NonbondType const& GetLJ(int nbindex) const { return NB_->NBarray()[ nbindex ]; } + /// \return Nonbonded LJC coefficient at nonbonded parameter index + double GetLJC(int nbindex) const { return NB_->LJC_Array( nbindex ); } /// \return Number of atoms (current size of charge array) unsigned int Natom() const { return Charge_.size(); } diff --git a/src/Energy/energydepend b/src/Energy/energydepend index c6fb564234..f50f3aacd3 100644 --- a/src/Energy/energydepend +++ b/src/Energy/energydepend @@ -1,14 +1,17 @@ -Ecalc_Nonbond.o : Ecalc_Nonbond.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJPME_6_12.h ../Energy/Ene_LJ_6_12.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/EwaldParams_LJPME.h ../Energy/Kernel_EwaldAdjust.h ../Energy/Kernel_LJPME_Adjust.h ../EwaldOptions.h ../ExclusionArray.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_Decomp_LJLR.h ../PairListEngine_Ewald_Decomp_LJPME.h ../PairListEngine_Ewald_LJLR.h ../PairListEngine_Ewald_LJPME.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h ../helpme_standalone.h Ecalc_Nonbond.h Ene_Decomp_Nonbond.h Ene_LJ_6_12.h Ene_Nonbond.h EwaldCalc.h EwaldCalc_Decomp.h EwaldCalc_Decomp_LJPME.h EwaldCalc_Decomp_PME.h EwaldCalc_LJPME.h EwaldCalc_PME.h EwaldCalc_Regular.h Ewald_Recip.h PME_Recip.h PME_RecipParams.h VDW_LongRange_Correction.h -EnergyDecomposer.o : EnergyDecomposer.cpp ../ArgList.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../AtomType.h ../BaseIOtype.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataFileList.h ../DataSet.h ../DataSetList.h ../DataSet_1D.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_Mesh.h ../Dimension.h ../DistRoutines.h ../EwaldOptions.h ../ExclusionArray.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../Molecule.h ../NameType.h ../OnlineVarT.h ../PairList.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../Spline.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../TorsionRoutines.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Ecalc_Nonbond.h Ene_Angle.h Ene_Bond.h Ene_LJ_6_12.h EnergyDecomposer.h Kernel_Fourier.h Kernel_Harmonic.h +CMAP.o : CMAP.cpp ../ArrayIterator.h ../Atom.h ../AtomMask.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../Unit.h ../Vec3.h CMAP.h +Ecalc_Nonbond.o : Ecalc_Nonbond.cpp ../Atom.h ../AtomMask.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJPME_6_12.h ../Energy/Ene_LJ_12_6_4.h ../Energy/Ene_LJ_6_12.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/EwaldParams_LJPME.h ../Energy/Kernel_EwaldAdjust.h ../Energy/Kernel_LJPME_Adjust.h ../EwaldOptions.h ../ExclusionArray.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_Decomp_LJCLR.h ../PairListEngine_Ewald_Decomp_LJLR.h ../PairListEngine_Ewald_Decomp_LJPME.h ../PairListEngine_Ewald_LJCLR.h ../PairListEngine_Ewald_LJLR.h ../PairListEngine_Ewald_LJPME.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Topology.h ../Unit.h ../Vec3.h ../helpme_standalone.h Ecalc_Nonbond.h Ene_Decomp_Nonbond.h Ene_LJ_6_12.h Ene_Nonbond.h EwaldCalc.h EwaldCalc_Decomp.h EwaldCalc_Decomp_LJCPME.h EwaldCalc_Decomp_LJPME.h EwaldCalc_Decomp_PME.h EwaldCalc_LJCPME.h EwaldCalc_LJPME.h EwaldCalc_PME.h EwaldCalc_Regular.h Ewald_Recip.h PME_Recip.h PME_RecipParams.h VDW_LongRange_Correction.h +EnergyDecomposer.o : EnergyDecomposer.cpp ../ArgList.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../BaseIOtype.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataFileList.h ../DataSet.h ../DataSetList.h ../DataSet_1D.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_Mesh.h ../Dimension.h ../DistRoutines.h ../EwaldOptions.h ../ExclusionArray.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../OnlineVarT.h ../PairList.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../Spline.h ../Stats_Reduce.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../TorsionRoutines.h ../Unit.h ../Vec3.h Ecalc_Nonbond.h Ene_Angle.h Ene_Bond.h Ene_LJ_6_12.h EnergyDecomposer.h Kernel_Fourier.h Kernel_Harmonic.h ErfcFxn.o : ErfcFxn.cpp ../CpptrajStdio.h ../SplineFxnTable.h ErfcFxn.h +EwaldCalc_Decomp_LJCPME.o : EwaldCalc_Decomp_LJCPME.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJ_12_6_4.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/Kernel_EwaldAdjust.h ../EwaldOptions.h ../ExclusionArray.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_Decomp_LJCLR.h ../PairListTemplate.h ../Parallel.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Unit.h ../Vec3.h ../helpme_standalone.h EwaldCalc.h EwaldCalc_Decomp.h EwaldCalc_Decomp_LJCPME.h PME_Recip.h PME_RecipParams.h VDW_LongRange_Correction.h EwaldCalc_Decomp_LJPME.o : EwaldCalc_Decomp_LJPME.cpp ../Atom.h ../AtomMask.h ../Box.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJPME_6_12.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/EwaldParams_LJPME.h ../Energy/Kernel_EwaldAdjust.h ../Energy/Kernel_LJPME_Adjust.h ../EwaldOptions.h ../ExclusionArray.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_Decomp_LJPME.h ../PairListTemplate.h ../Parallel.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Unit.h ../Vec3.h ../helpme_standalone.h EwaldCalc.h EwaldCalc_Decomp.h EwaldCalc_Decomp_LJPME.h PME_Recip.h PME_RecipParams.h EwaldCalc_Decomp_PME.o : EwaldCalc_Decomp_PME.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJ_6_12.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/Kernel_EwaldAdjust.h ../EwaldOptions.h ../ExclusionArray.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_Decomp_LJLR.h ../PairListTemplate.h ../Parallel.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Unit.h ../Vec3.h ../helpme_standalone.h EwaldCalc.h EwaldCalc_Decomp.h EwaldCalc_Decomp_PME.h PME_Recip.h PME_RecipParams.h VDW_LongRange_Correction.h +EwaldCalc_LJCPME.o : EwaldCalc_LJCPME.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJ_12_6_4.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/Kernel_EwaldAdjust.h ../EwaldOptions.h ../ExclusionArray.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_LJCLR.h ../PairListTemplate.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Topology.h ../Unit.h ../Vec3.h ../helpme_standalone.h EwaldCalc.h EwaldCalc_LJCPME.h PME_Recip.h PME_RecipParams.h VDW_LongRange_Correction.h EwaldCalc_LJPME.o : EwaldCalc_LJPME.cpp ../Atom.h ../AtomMask.h ../Box.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJPME_6_12.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/EwaldParams_LJPME.h ../Energy/Kernel_EwaldAdjust.h ../Energy/Kernel_LJPME_Adjust.h ../EwaldOptions.h ../ExclusionArray.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_LJPME.h ../PairListTemplate.h ../Parallel.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Unit.h ../Vec3.h ../helpme_standalone.h EwaldCalc.h EwaldCalc_LJPME.h PME_Recip.h PME_RecipParams.h EwaldCalc_PME.o : EwaldCalc_PME.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJ_6_12.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/Kernel_EwaldAdjust.h ../EwaldOptions.h ../ExclusionArray.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_LJLR.h ../PairListTemplate.h ../Parallel.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Unit.h ../Vec3.h ../helpme_standalone.h EwaldCalc.h EwaldCalc_PME.h PME_Recip.h PME_RecipParams.h VDW_LongRange_Correction.h EwaldCalc_Regular.o : EwaldCalc_Regular.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../Energy/../Constants.h ../Energy/../ParameterTypes.h ../Energy/../SplineFxnTable.h ../Energy/Ene_LJ_6_12.h ../Energy/ErfcFxn.h ../Energy/EwaldParams.h ../Energy/Kernel_EwaldAdjust.h ../EwaldOptions.h ../ExclusionArray.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../PairList.h ../PairListEngine_Ewald_LJLR.h ../PairListTemplate.h ../Parallel.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Unit.h ../Vec3.h EwaldCalc.h EwaldCalc_Regular.h Ewald_Recip.h VDW_LongRange_Correction.h -EwaldParams.o : EwaldParams.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../EwaldOptions.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SplineFxnTable.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h ErfcFxn.h EwaldParams.h -EwaldParams_LJPME.o : EwaldParams_LJPME.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../EwaldOptions.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SplineFxnTable.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h ErfcFxn.h EwaldParams.h EwaldParams_LJPME.h +EwaldParams.o : EwaldParams.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../EwaldOptions.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SplineFxnTable.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h ErfcFxn.h EwaldParams.h +EwaldParams_LJPME.o : EwaldParams_LJPME.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../EwaldOptions.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SplineFxnTable.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h ErfcFxn.h EwaldParams.h EwaldParams_LJPME.h Ewald_Recip.o : Ewald_Recip.cpp ../Box.h ../Constants.h ../CpptrajStdio.h ../EwaldOptions.h ../Matrix_3x3.h ../Parallel.h ../ParameterTypes.h ../SplineFxnTable.h ../StringRoutines.h ../Timer.h ../Vec3.h ErfcFxn.h EwaldParams.h Ewald_Recip.h PME_Recip.o : PME_Recip.cpp ../Box.h ../CpptrajStdio.h ../Matrix_3x3.h ../Parallel.h ../Timer.h ../Vec3.h ../helpme_standalone.h PME_Recip.h PME_RecipParams.h PME_RecipParams.o : PME_RecipParams.cpp ../Box.h ../CpptrajStdio.h ../EwaldOptions.h ../Matrix_3x3.h ../Parallel.h ../Vec3.h PME_RecipParams.h -VDW_LongRange_Correction.o : VDW_LongRange_Correction.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h VDW_LongRange_Correction.h +VDW_LongRange_Correction.o : VDW_LongRange_Correction.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h VDW_LongRange_Correction.h diff --git a/src/Energy/energyfiles b/src/Energy/energyfiles index f60e63168b..1a607eeadf 100644 --- a/src/Energy/energyfiles +++ b/src/Energy/energyfiles @@ -1,10 +1,13 @@ # Files for Energy subdirectory. ENERGY_SOURCES= \ + CMAP.cpp \ Ecalc_Nonbond.cpp \ EnergyDecomposer.cpp \ ErfcFxn.cpp \ + EwaldCalc_Decomp_LJCPME.cpp \ EwaldCalc_Decomp_LJPME.cpp \ EwaldCalc_Decomp_PME.cpp \ + EwaldCalc_LJCPME.cpp \ EwaldCalc_LJPME.cpp \ EwaldCalc_PME.cpp \ EwaldCalc_Regular.cpp \ diff --git a/src/Energy_Sander.cpp b/src/Energy_Sander.cpp index 6e0d536744..afbf3cb8e0 100644 --- a/src/Energy_Sander.cpp +++ b/src/Energy_Sander.cpp @@ -1,10 +1,10 @@ #if defined(USE_SANDERLIB) && !defined(LIBCPPTRAJ) -#include <locale> -#include <cstdio> // remove() #include "Energy_Sander.h" #include "CpptrajStdio.h" -#include "ParmFile.h" // For writing temporary top #include "File_TempName.h" +#include "ParmFile.h" // For writing temporary top +#include "StringRoutines.h" // ToLower +#include <cstdio> // remove() Energy_Sander::Energy_Sander() : debug_(0), @@ -43,11 +43,11 @@ const char* Energy_Sander::Estring_[] = { // Energy_Sander::Easpect() std::string Energy_Sander::Easpect(Etype typeIn) { if (typeIn == N_ENERGYTYPES) return std::string(); - std::locale loc; +/* std::locale loc; std::string aspect( Estring_[typeIn] ); for (std::string::iterator it = aspect.begin(); it != aspect.end(); ++it) - *it = std::tolower( *it, loc ); - return aspect; + *it = std::tolower( *it, loc );*/ + return ToLower( std::string(Estring_[typeIn]) ); } // Energy_Sander::Energy() @@ -132,10 +132,34 @@ void Energy_Sander::SetDefaultInput() { input_.fswitch = -1.0; input_.restraint_wt = 0.0; + input_.ala = 0.0; + input_.arg = 0.0; + input_.asn = 0.0; + input_.asp = 0.0; + input_.cys = 0.0; + input_.gln = 0.0; + input_.glu = 0.0; + input_.gly = 0.0; + input_.his = 0.0; + input_.hip = 0.0; + input_.ile = 0.0; + input_.leu = 0.0; + input_.lys = 0.0; + input_.met = 0.0; + input_.phe = 0.0; + input_.pro = 0.0; + input_.ser = 0.0; + input_.thr = 0.0; + input_.triptophan = 0.0; + input_.tyr = 0.0; + input_.valine = 0.0; + input_.bb = 0.0; + input_.igb = 0; input_.alpb = 0; input_.gbsa = 0; input_.lj1264 = -1; + input_.plj1264 = -1; input_.ipb = 0; input_.inp = 2; input_.vdwmeth = 1; @@ -147,6 +171,7 @@ void Energy_Sander::SetDefaultInput() { input_.ntc = 2; input_.ntr = 0; input_.ibelly = 0; + input_.mask_from_ref = 0; input_.restraintmask[0] = '\0'; input_.bellymask[0] = '\0'; @@ -155,7 +180,7 @@ void Energy_Sander::SetDefaultInput() { const char* Energy_Sander::supportedNamelist_ = "extdiel intdiel rgbmax saltcon cut dielc igb alpb gbsa lj1264 ipb inp vdwmeth ew_type ntb"; - + /** Check and set input for Sander.*/ int Energy_Sander::SetInput(ArgList& argIn) { SetDefaultInput(); @@ -351,7 +376,7 @@ int Energy_Sander::CommonInit(Topology const& topIn, Frame& fIn) { // TODO const ) isActive_[HBOND] = true; // Are CHARMM terms present? - if (topIn.Chamber().HasChamber()) { + if (topIn.HasChamber()) { isActive_[ANGLE_UB] = true; isActive_[IMP] = true; } diff --git a/src/Exec_Build.cpp b/src/Exec_Build.cpp new file mode 100644 index 0000000000..20d9ceee3d --- /dev/null +++ b/src/Exec_Build.cpp @@ -0,0 +1,1746 @@ +#include "Exec_Build.h" +#include "Action_FixAtomOrder.h" +#include "AssociatedData_Connect.h" +#include "CpptrajStdio.h" +#include "DataIO_Coords.h" +#include "DataSet_LeapOpts.h" +#include "DataSet_Parameters.h" // For casting DataSet_Parameters to ParameterSet +#include "ParmFile.h" +#include "StringRoutines.h" // integerToString +#include "Trajout_Single.h" +#include "Parm/AssignParams.h" +#include "Parm/LJ1264_Params.h" +#include "Structure/AddIons.h" +#include "Structure/Builder.h" +#include "Structure/Creator.h" +#include "Structure/Disulfide.h" +#include "Structure/HisProt.h" +#include "Structure/PdbCleaner.h" +#include "Structure/ResStatArray.h" +#include "Structure/Solvate.h" +#include "Structure/SugarBuilder.h" +#include "Structure/Sugar.h" +#include "StructureCheck.h" +#include <set> // For warning about missing residue templates +#include <cmath> // fabs + +/** CONSTRUCTOR */ +Exec_Build::Exec_Build() : + Exec(GENERAL), + debug_(0), + check_box_natom_(5000), // TODO make user specifiable + check_structure_(true), + keepMissingSourceAtoms_(false), + requireAllInputAtoms_(false), + doHisDetect_(true), + doDisulfide_(true), + doSugar_(true), + fixAtomOrder_(true), + outCrdPtr_(0) +{} + +void Exec_Build::printErrMsgWebsites() { + mprinterr("Error: See https://ambermd.org/AmberModels.php for more information\n" + "Error: or email the Amber mailing list http://lists.ambermd.org/mailman/listinfo/amber\n"); +} + +/** Search in array of atom bonding pairs for given bonding pair. */ +bool Exec_Build::hasBondingPair(IParray const& bpairs, Ipair const& bpair) { + for (IParray::const_iterator it = bpairs.begin(); it != bpairs.end(); ++it) + if (*it == bpair) return true; + return false; +} + +/** \return True if target residue is in array of residue connections. */ +bool Exec_Build::resIsConnected(Iarray const& resConnections, int tgtRes) { + for (Iarray::const_iterator it = resConnections.begin(); it != resConnections.end(); ++it) + if (*it == tgtRes) return true; + return false; +} + +/** Use given templates to construct a final molecule. */ +int Exec_Build::FillAtomsWithTemplates(Topology& topOut, Frame& frameOut, + Topology const& topIn, Frame const& frameIn, + Cpptraj::Structure::Creator const& creator, + std::vector<BondType> const& topInBonds) +{ + // Array of head/tail connect atoms for each residue + Iarray resHeadAtoms; + Iarray resTailAtoms; + std::vector<Cpptraj::Structure::TerminalType> ResTermTypes; + resHeadAtoms.reserve( topIn.Nres() ); + resTailAtoms.reserve( topIn.Nres() ); + ResTermTypes.reserve( topIn.Nres() ); + // Array of templates for each residue + std::vector<DataSet_Coords*> ResTemplates; + ResTemplates.reserve( topIn.Nres() ); + + t_fill_template_.Start(); + // Initial loop to try to match residues to templates + int newNatom = 0; + unsigned int n_no_template_found = 0; + std::set<NameType> missing_templates; + for (int ires = 0; ires != topIn.Nres(); ires++) + { + Residue const& currentRes = topIn.Res(ires); + if (debug_ > 0) + mprintf("DEBUG: ---------- Processing Residue %s ---------- \n", topIn.TruncResNameNum(ires).c_str()); + int pres = ires - 1; + int nres = ires + 1; + // Determine if this is a terminal residue + Cpptraj::Structure::TerminalType resTermType; + if (currentRes.IsTerminal()) { + resTermType = Cpptraj::Structure::END_TERMINAL; + if (debug_ > 0) + mprintf("DEBUG: %s End terminal due to TERMINAL status.\n", topIn.TruncResNameNum(ires).c_str()); + } else if (ires == 0 && topIn.Nres() > 1) { + resTermType = Cpptraj::Structure::BEG_TERMINAL; + if (debug_ > 0) + mprintf("DEBUG: %s Begin terminal due to first residue.\n", topIn.TruncResNameNum(ires).c_str()); + } else if (pres > -1 && topIn.Res(pres).IsTerminal()) { + resTermType = Cpptraj::Structure::BEG_TERMINAL; + if (debug_ > 0) + mprintf("DEBUG: %s Begin terminal due to previous residue TERMINAL status.\n", topIn.TruncResNameNum(ires).c_str()); + } else if (nres < topIn.Nres() && (topIn.Res(nres).ChainID() != currentRes.ChainID())// || +// (topIn.Res(nres).OriginalResNum() == currentRes.OriginalResNum() && +// topIn.Res(nres).Icode() != currentRes.Icode() +// ) +// ) + ) + { + resTermType = Cpptraj::Structure::END_TERMINAL; + if (debug_ > 0) + mprintf("DEBUG: %s End terminal due to chain ID.\n", topIn.TruncResNameNum(ires).c_str()); + } else if (nres == topIn.Nres()) { + resTermType = Cpptraj::Structure::END_TERMINAL; + if (debug_ > 0) + mprintf("DEBUG: %s End terminal due to last residue.\n", topIn.TruncResNameNum(ires).c_str()); + } else { + resTermType = Cpptraj::Structure::NON_TERMINAL; + } + if (debug_ > 0) + mprintf("DEBUG: Residue type: %s terminal (IsTerminal=%i)\n", Cpptraj::Structure::terminalStr(resTermType), (int)currentRes.IsTerminal()); + ResTermTypes.push_back( resTermType ); + // Identify a template based on the residue name. + DataSet_Coords* resTemplate = creator.IdTemplateFromResname(currentRes.Name(), resTermType); + if (resTemplate == 0) { + // Residue has no template. + n_no_template_found++; + mprintf("Warning: No template found for residue %s\n", topIn.TruncResNameOnumId(ires).c_str()); + missing_templates.insert( currentRes.Name() ); + newNatom += currentRes.NumAtoms(); + // Head and tail atoms are blank + resHeadAtoms.push_back( -1 ); + resTailAtoms.push_back( -1 ); + } else { + // Residue has a template. + if (debug_ > 0) + mprintf("\tTemplate %s being used for residue %s\n", + resTemplate->legend(), topIn.TruncResNameOnumId(ires).c_str()); + int nTgtAtomsMissing = 0; + if (keepMissingSourceAtoms_) + nTgtAtomsMissing = creator.CountAtomsMissingFromTemplate( topIn, ires, resTemplate ); + // Save the head and tail atoms + AssociatedData* ad = resTemplate->GetAssociatedData(AssociatedData::CONNECT); + if (ad == 0) { + if (debug_ > 0) + mprintf("DEBUG: Unit '%s' does not have CONNECT data.\n", resTemplate->legend()); + resHeadAtoms.push_back( -1 ); + resTailAtoms.push_back( -1 ); + } else { + AssociatedData_Connect const& CONN = static_cast<AssociatedData_Connect const&>( *ad ); + if (CONN.NconnectAtoms() < 2) { + mprinterr("Error: Not enough connect atoms in unit '%s'\n", resTemplate->legend()); + return 1; + } + if (CONN.Connect()[0] > -1) + resHeadAtoms.push_back( CONN.Connect()[0] + newNatom ); + else + resHeadAtoms.push_back( -1 ); + if (CONN.Connect()[1] > -1) + resTailAtoms.push_back( CONN.Connect()[1] + newNatom ); + else + resTailAtoms.push_back( -1 ); + } + // Update # of atoms + newNatom += resTemplate->Top().Natom() + nTgtAtomsMissing; + } + ResTemplates.push_back( resTemplate ); + } + mprintf("\tFinal structure should have %i atoms.\n", newNatom); + if (n_no_template_found > 0) { + mprintf("Warning: No template was found for %u residues.\n", n_no_template_found); + mprintf("Warning: Residue names:"); + for (std::set<NameType>::const_iterator rit = missing_templates.begin(); + rit != missing_templates.end(); ++rit) + mprintf(" %s", *(*rit)); + mprintf("\n"); + mprintf("Warning: This may indicate that you have not loaded a library file\n" + "Warning: or have not loaded the correct force field.\n"); + } + frameOut.SetupFrame( newNatom ); + // Clear frame so that AddXYZ can be used + frameOut.ClearAtoms(); + + // ----------------------------------- + // hasPosition - for each atom in topOut, status on whether atom in frameOut needs building + Cpptraj::Structure::Builder::Barray hasPosition; + hasPosition.reserve( newNatom ); + + // Hold atom offsets needed when building residues + Iarray AtomOffsets; + AtomOffsets.reserve( topIn.Nres() ); + + // For existing inter-residue bonding, use residue # and atom name since + // atom numbering may change if atoms are added from templates. + // TODO make this a class var so disulfide/sugar prep can use it. + typedef std::pair<int,NameType> ResAtPair; + typedef std::vector<ResAtPair> ResAtArray; + ResAtArray detectedInterResBonds; + + // Hold template atom names corressponding to source atom names. + typedef std::vector<NameType> NameArray; + NameArray SourceAtomNames; + SourceAtomNames.resize( topIn.Natom() ); + + // Loop for setting up atoms in the topology from residues or residue templates. + int nAtomsNotInTemplates = 0; + int nRefAtomsMissing = 0; + int nAtomsMissingTypes = 0; + bool has_bfac = !topIn.Bfactor().empty(); + bool has_occ = !topIn.Occupancy().empty(); + bool has_pdbn = !topIn.PdbSerialNum().empty(); + if (debug_ > 0) + mprintf("DEBUG: Input top has_bfac=%i has_occ=%i has_pdbn=%i\n", + (int)has_bfac, (int)has_occ, (int)has_pdbn); + for (int ires = 0; ires != topIn.Nres(); ires++) + { + if (debug_ > 0) + mprintf("\tAdding atoms for residue %s\n", topIn.TruncResNameOnumId(ires).c_str()); + int atomOffset = topOut.Natom(); + //mprintf("DEBUG: atom offset is %i\n", atomOffset); + DataSet_Coords* resTemplate = ResTemplates[ires]; + IParray intraResBonds; + if (resTemplate == 0) { + // ----- No template. Just add the atoms. ------------ + Residue const& currentRes = topIn.Res(ires); + AtomOffsets.push_back( -1 ); + for (int itgt = currentRes.FirstAtom(); itgt != currentRes.LastAtom(); ++itgt) + { + // Track intra-residue bonds + Atom sourceAtom = topIn[itgt]; + if (!sourceAtom.HasType()) + nAtomsMissingTypes++; + SourceAtomNames[itgt] = sourceAtom.Name(); + int at0 = itgt - currentRes.FirstAtom() + atomOffset; + for (Atom::bond_iterator bat = sourceAtom.bondbegin(); bat != sourceAtom.bondend(); ++bat) { + if ( topIn[*bat].ResNum() == ires ) { + // Intra-residue + int at1 = *bat - currentRes.FirstAtom() + atomOffset; + if (at1 > at0) { + //mprintf("Will add bond between %i and %i (original %i and %i)\n", at0+1, at1+1, itgt+1, *bat + 1); + intraResBonds.push_back( Ipair(at0, at1) ); + } + } else { + // Inter-residue. Only record if bonding to a previous residue. + if (topIn[*bat].ResNum() < ires) { + detectedInterResBonds.push_back( ResAtPair(ires, sourceAtom.Name()) ); + detectedInterResBonds.push_back( ResAtPair(topIn[*bat].ResNum(), topIn[*bat].Name()) ); + } + } + } + sourceAtom.ClearBonds(); // FIXME AddTopAtom should clear bonds + topOut.AddTopAtom( sourceAtom, currentRes ); + frameOut.AddVec3( Vec3(frameIn.XYZ(itgt)) ); + hasPosition.push_back( true ); + if (has_bfac) + topOut.AddBfactor( topIn.Bfactor()[itgt] ); + if (has_occ) + topOut.AddOccupancy( topIn.Occupancy()[itgt] ); + if (has_pdbn) + topOut.AddPdbSerialNum( topIn.PdbSerialNum()[itgt] ); + } + } else { + // ----- A template exists for this residue. --------- + Residue currentRes = topIn.Res(ires); + // Use template residue name. + // To match LEaP behavior, if the template name is > 3 characters, + // truncate to the last 3 characters. + NameType const& templateResName = resTemplate->Top().Res(0).Name(); + if (templateResName.len() < 4) + currentRes.SetName( templateResName ); + else + currentRes.SetName( NameType( (*templateResName) + ( templateResName.len() - 3) ) ); + // Map source atoms to template atoms. + int nTgtAtomsMissing = 0; + std::vector<int> map = creator.MapAtomsToTemplate( topIn, ires, resTemplate, SourceAtomNames, nTgtAtomsMissing ); + if (debug_ > 1) { + mprintf("\t Atom map:\n"); + // DEBUG - print map + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) { + mprintf("\t\t%6i %6s =>", iref+1, *(resTemplate->Top()[iref].Name())); + if (map[iref] == -1) + mprintf(" No match\n"); + else + mprintf(" %6i %6s\n", map[iref]+1, *(topIn[map[iref]].Name())); + } + } + // Map template atoms back to source atoms. + std::vector<int> pdb(currentRes.NumAtoms(), -1); + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) { + if (map[iref] != -1) + pdb[map[iref]-currentRes.FirstAtom()] = iref; + } + if (debug_ > 1) { + mprintf("\t PDB atom map:\n"); + for (int itgt = 0; itgt != currentRes.NumAtoms(); itgt++) { + mprintf("\t\t%6i %6s =>", itgt+1, *(topIn[itgt+currentRes.FirstAtom()].Name())); + if (pdb[itgt] == -1) + mprintf(" Not in template\n"); + else + mprintf(" %6i %6s\n", pdb[itgt]+1, *(resTemplate->Top()[pdb[itgt]].Name())); + } + } + bool atomsNeedBuilding = false; + // Loop over template atoms + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) { + // Track intra-residue bonds from the template. + Atom templateAtom = resTemplate->Top()[iref]; + int at0 = iref + atomOffset; + for (Atom::bond_iterator bat = templateAtom.bondbegin(); bat != templateAtom.bondend(); ++bat) { + int at1 = *bat + atomOffset; + if (at1 > at0) { + //mprintf("Will add bond between %i and %i (original %i and %i)\n", at0+1, at1+1, iref+1, *bat + 1); + intraResBonds.push_back( Ipair(at0, at1) ); + } + } + templateAtom.ClearBonds(); // FIXME AddTopAtom should clear bonds + //mprintf("DEBUG: Adding template %i atom %6s (elt %2s) Res %4s\n", topOut.Natom()+1, templateAtom.c_str(), templateAtom.ElementName(), currentRes.c_str()); + topOut.AddTopAtom( templateAtom, currentRes ); + if (map[iref] == -1) { + // Template atom not in input structure. + frameOut.AddVec3( Vec3(0.0) ); + hasPosition.push_back( false ); + nRefAtomsMissing++; + atomsNeedBuilding = true; + if (has_bfac) topOut.AddBfactor(0.0); + if (has_occ) topOut.AddOccupancy(0.0); + if (has_pdbn) topOut.AddPdbSerialNum(0); + } else { + // Template atom was in input structure. + int itgt = map[iref]; + frameOut.AddVec3( Vec3(frameIn.XYZ(itgt)) ); + hasPosition.push_back( true ); + if (has_bfac) topOut.AddBfactor( topIn.Bfactor()[itgt] ); + if (has_occ) topOut.AddOccupancy( topIn.Occupancy()[itgt] ); + if (has_pdbn) topOut.AddPdbSerialNum( topIn.PdbSerialNum()[itgt] ); + //pdb[itgt-currentRes.FirstAtom()] = iref; + // Check source atoms for inter-residue connections. +/* Atom const& sourceAtom = topIn[itgt]; + for (Atom::bond_iterator bat = sourceAtom.bondbegin(); bat != sourceAtom.bondend(); ++bat) { + if ( topIn[*bat].ResNum() < ires ) { + // Use template atom names. Use saved names in case source name had an alias. + detectedInterResBonds.push_back( ResAtPair(ires, templateAtom.Name()) ); + detectedInterResBonds.push_back( ResAtPair(topIn[*bat].ResNum(), SourceAtomNames[*bat]) ); + if ( debug_ > 1 ) { + mprintf("DEBUG: Adding detected interres bond: itgt=%i name=%s res=%i tempName=%s -- bat=%i name=%s res=%i srcName=%s\n", + itgt+1, *(sourceAtom.Name()), ires+1, *(templateAtom.Name()), + *bat+1, *(topIn[*bat].Name()), topIn[*bat].ResNum()+1, *(SourceAtomNames[*bat])); + } + } + }*/ + } + } // END loop over template atoms + if (nTgtAtomsMissing > 0) { + nAtomsNotInTemplates += nTgtAtomsMissing; + mprintf("\t%i source atoms not mapped to template.\n", nTgtAtomsMissing); + if (keepMissingSourceAtoms_) { + ResAtArray tmpBonds; + int firstNonTemplateAtom = topOut.Natom(); + for (int itgt = 0; itgt != currentRes.NumAtoms(); itgt++) { + if (pdb[itgt] == -1) { + // This PDB atom had no equivalent in the residue template + int pdbat = itgt + currentRes.FirstAtom(); + Atom pdbAtom = topIn[pdbat]; + if (debug_ > 0) + mprintf("DEBUG:\t\tInput atom %s missing from template.\n",*(pdbAtom.Name())); + // Bonds + for (Atom::bond_iterator bit = pdbAtom.bondbegin(); bit != pdbAtom.bondend(); ++bit) + { + Atom bndAt = topIn[*bit]; + NameType bndAtmName; + if (SourceAtomNames[*bit].len() > 0) + bndAtmName = SourceAtomNames[*bit]; + else + bndAtmName = bndAt.Name(); + if (debug_ > 0) + mprintf("DEBUG:\t\t\tBonded to %s\n", *(bndAtmName)); + tmpBonds.push_back( ResAtPair(ires, pdbAtom.Name()) ); + tmpBonds.push_back( ResAtPair(bndAt.ResNum(), bndAt.Name()) ); + } + // Add missing atom + pdbAtom.ClearBonds(); + topOut.AddTopAtom( pdbAtom, currentRes ); + frameOut.AddVec3( Vec3(frameIn.XYZ(pdbat)) ); + hasPosition.push_back( true ); + if (has_bfac) + topOut.AddBfactor( topIn.Bfactor()[pdbat] ); + if (has_occ) + topOut.AddOccupancy( topIn.Occupancy()[pdbat] ); + if (has_pdbn) + topOut.AddPdbSerialNum( topIn.PdbSerialNum()[pdbat] ); + + } + } // END loop over input residue atoms + // Add Bonds + for (ResAtArray::const_iterator bit = tmpBonds.begin(); bit != tmpBonds.end(); ++bit) + { + int ba0 = topOut.FindAtomInResidue( bit->first, bit->second ); + ++bit; + int ba1 = topOut.FindAtomInResidue( bit->first, bit->second ); + if (ba0 < firstNonTemplateAtom || + ba1 < firstNonTemplateAtom || + ba0 < ba1) + { + if (debug_ > 0) + mprintf("DEBUG:\t\tAdd bond %i %s -- %i %s\n", ba0+1, *(topOut[ba0].Name()), ba1+1, *(topOut[ba1].Name())); + topOut.AddBond( ba0, ba1 ); + } + } // END loop over bonds + } + } + // Save atom offset if atoms need to be built + if (atomsNeedBuilding) + AtomOffsets.push_back( atomOffset ); + else + AtomOffsets.push_back( -1 ); + } // END template exists + // Add intra-residue bonds + for (IParray::const_iterator it = intraResBonds.begin(); it != intraResBonds.end(); ++it) + { + //mprintf("DEBUG: Intra-res bond: Res %s atom %s (%s) to res %s atom %s (%s)\n", + // topOut.TruncResNameOnumId(topOut[it->first].ResNum()).c_str(), *(topOut[it->first].Name()), + // topOut.AtomMaskName(it->first).c_str(), + // topOut.TruncResNameOnumId(topOut[it->second].ResNum()).c_str(), *(topOut[it->second].Name()), + // topOut.AtomMaskName(it->second).c_str()); + topOut.AddBond(it->first, it->second); + } + } // END loop over source residues + t_fill_template_.Stop(); + if (nRefAtomsMissing > 0) + mprintf("\t%i template atoms missing in source.\n", nRefAtomsMissing); + if (nAtomsNotInTemplates > 0) { + if (requireAllInputAtoms_) + mprinterr("Error: %i input atoms not in templates.\n", nAtomsNotInTemplates); + else + mprintf("\t%i input atoms were not in templates and were ignored.\n", nAtomsNotInTemplates); + } + if (nAtomsMissingTypes > 0) { + mprinterr("Error: %i atoms are missing types, either because they did not have\n" + "Error: one initially or they could not be matched to a template.\n" + "Error: This can happen if a parameter file is missing or a force field\n" + "Error: file has not been loaded.\n" + "Error: Build cannot proceed unless all atoms have a type:\n", + nAtomsMissingTypes); + std::set<NameType> atoms_missing_types; + for (int ires = 0; ires != topOut.Nres(); ires++) { + for (int at = topOut.Res(ires).FirstAtom(); at != topOut.Res(ires).LastAtom(); ++at) { + if ( !topOut[at].HasType() ) + atoms_missing_types.insert( topOut[at].Name() ); + } + } + mprinterr("Error: Atoms missing types:"); + for (std::set<NameType>::const_iterator ait = atoms_missing_types.begin(); + ait != atoms_missing_types.end(); ++ait) + mprinterr(" %s", *(*ait)); + mprinterr("\n"); + if (debug_ > 0) { + for (int ires = 0; ires != topOut.Nres(); ires++) { + std::string missingTypes; + for (int at = topOut.Res(ires).FirstAtom(); at != topOut.Res(ires).LastAtom(); ++at) + if ( !topOut[at].HasType() ) + missingTypes.append(" " + topOut[at].Name().Truncated() ); + if (!missingTypes.empty()) + mprinterr("Error:\t%s missing types for%s\n", topOut.TruncResNameNum(ires).c_str(), missingTypes.c_str()); + } + } + mprinterr("Error: Suggestions:\n" + "Error: 1) Load an Amber force field using 'source <leaprc file>', e.g. 'source leaprc.protein.ff19SB'\n" + "Error: 2) Load residue templates with atom types from library/coords files with 'readdata <file> as <type>', e.g. 'readdata amino19.lib as off'\n"); + printErrMsgWebsites(); + + return 1; + } + + // ----------------------------------- + // DEBUG - Print primary connection atoms + if (debug_ > 0) { + for (unsigned int idx = 0; idx != ResTemplates.size(); idx++) { + if (ResTemplates[idx] != 0) { + mprintf("DEBUG: Template %s (%s)", ResTemplates[idx]->legend(), Cpptraj::Structure::terminalStr(ResTermTypes[idx])); + if (resHeadAtoms[idx] > -1) mprintf(" head %s", topOut.AtomMaskName(resHeadAtoms[idx]).c_str()); + if (resTailAtoms[idx] > -1) mprintf(" tail %s", topOut.AtomMaskName(resTailAtoms[idx]).c_str()); + mprintf("\n"); + } + } + } + + // Keep track of which residues are connected. + ResConnectArray ResidueConnections( topOut.Nres() ); + + // Try to connect HEAD atoms to previous residue TAIL atoms. + std::vector<IParray> resBondingAtoms(topOut.Nres()); + for (int ires = 1; ires < topOut.Nres(); ires++) { + int pres = ires - 1; + if (resHeadAtoms[ires] != -1) { + if (ResTermTypes[ires] == Cpptraj::Structure::BEG_TERMINAL) { + if (debug_ > 0) + mprintf("DEBUG: Res %s is begin terminal, ignoring head atom.\n", + topOut.TruncResNameOnumId(ires).c_str()); + } else { + if (resTailAtoms[pres] != -1) { + if (ResTermTypes[pres] == Cpptraj::Structure::END_TERMINAL) { + if (debug_ > 0) + mprintf("DEBUG: Res %s is end terminal, ignoring tail atom.\n", + topOut.TruncResNameOnumId(pres).c_str()); + } else { + if (debug_ > 0) + mprintf("DEBUG: Connecting HEAD atom %s to tail atom %s\n", + topOut.AtomMaskName(resHeadAtoms[ires]).c_str(), + topOut.AtomMaskName(resTailAtoms[pres]).c_str()); + resBondingAtoms[ires].push_back( Ipair(resHeadAtoms[ires], resTailAtoms[pres]) ); + resBondingAtoms[pres].push_back( Ipair(resTailAtoms[pres], resHeadAtoms[ires]) ); + resHeadAtoms[ires] = -1; + resTailAtoms[pres] = -1; + ResidueConnections[ires].push_back( pres ); + ResidueConnections[pres].push_back( ires ); + } + } + } + } + } + + // Report unused HEAD/TAIL atoms + for (int ires = 0; ires != topOut.Nres(); ires++) { // TODO should be topIn? + if (resHeadAtoms[ires] != -1) + mprintf("Warning: Unused head atom %s\n", topOut.AtomMaskName(resHeadAtoms[ires]).c_str()); + if (resTailAtoms[ires] != -1) + mprintf("Warning: Unused tail atom %s\n", topOut.AtomMaskName(resTailAtoms[ires]).c_str()); + } + + // Add external bonds + if (!topInBonds.empty()) { + for (std::vector<BondType>::const_iterator bnd = topInBonds.begin(); + bnd != topInBonds.end(); ++bnd) + { + Atom const& At0 = topIn[bnd->A1()]; + Atom const& At1 = topIn[bnd->A2()]; + // Ignore bonds in the same residue + if ( At0.ResNum() == At1.ResNum()) { + mprintf("Build Warning: Atoms %s and %s are in the same residue %i. Not adding extra bond.\n", + *(At0.Name()), *(At1.Name()), At0.ResNum()+1); + continue; + } + int a0 = topOut.FindAtomInResidue( At0.ResNum(), At0.Name() ); + int a1 = topOut.FindAtomInResidue( At1.ResNum(), At1.Name() ); + if (a0 < 0) { + mprinterr("Error: Atom %s not found in residue %i\n", *(At0.Name()), At0.ResNum()+1); + return 1; + } + if (a1 < 0) { + mprinterr("Error: Atom %s not found in residue %i\n", *(At1.Name()), At1.ResNum()+1); + return 1; + } + if (resIsConnected(ResidueConnections[At0.ResNum()], At1.ResNum())) { + mprintf("Warning: Residue %s already connected to residue %s; ignoring\n" + "Warning: extra bond %s - %s\n", + topOut.TruncResNameNum(At0.ResNum()).c_str(), + topOut.TruncResNameNum(At1.ResNum()).c_str(), + topOut.AtomMaskName(a0).c_str(), + topOut.AtomMaskName(a1).c_str()); + } else { + if (debug_ > 0) + mprintf("DEBUG: Adding extra bond %s - %s\n", + topOut.AtomMaskName(a0).c_str(), + topOut.AtomMaskName(a1).c_str()); + resBondingAtoms[At0.ResNum()].push_back( Ipair(a0, a1) ); + resBondingAtoms[At1.ResNum()].push_back( Ipair(a1, a0) ); + ResidueConnections[At0.ResNum()].push_back( At1.ResNum() ); + ResidueConnections[At1.ResNum()].push_back( At0.ResNum() ); + } + } // END loop over externally passed in bonds + } + + // Check detected inter-residue bonds + for (ResAtArray::const_iterator it = detectedInterResBonds.begin(); + it != detectedInterResBonds.end(); ++it) + { + ResAtPair const& ra0 = *it; + ++it; + ResAtPair const& ra1 = *it; + bool bondInvolvesResWithNoTemplate = ( (ResTemplates[ra0.first] == 0) || + (ResTemplates[ra1.first] == 0) ); + if (debug_ > 1) + mprintf("DEBUG: Inter-res bond: Res %i atom %s to res %i atom %s : bondInvolvesResWithNoTemplate=%i\n", + ra0.first+1, *(ra0.second), + ra1.first+1, *(ra1.second), + (int)bondInvolvesResWithNoTemplate); + int at0 = topOut.FindAtomInResidue(ra0.first, ra0.second); + if (at0 < 0) { + mprinterr("Error: Atom %s not found in residue %i\n", *(ra0.second), ra0.first+1); + return 1; + } + int at1 = topOut.FindAtomInResidue(ra1.first, ra1.second); + if (at1 < 0) { + mprinterr("Error: Atom %s not found in residue %i\n", *(ra1.second), ra1.first+1); + return 1; + } + // Save detected inter-residue bonding atoms if not already added via + // template connect atoms. Convention is atom belonging to the current + // residue is first. + // NOTE: Only checking at0/at1 here, which should be fine. + if (!hasBondingPair(resBondingAtoms[ra0.first], Ipair(at0, at1))) { + // Check if we already have a connection from ra0 to ra1. + if (resIsConnected(ResidueConnections[ra0.first], ra1.first)) { + mprintf("Warning: Residue %s already connected to residue %s; ignoring\n" + "Warning: potential detected bond %s - %s\n", + topOut.TruncResNameNum(ra0.first).c_str(), + topOut.TruncResNameNum(ra1.first).c_str(), + topOut.AtomMaskName(at0).c_str(), + topOut.AtomMaskName(at1).c_str()); + } else { + if (bondInvolvesResWithNoTemplate) { + mprintf("\tAdding non-template bond %s - %s\n", + topOut.AtomMaskName(at0).c_str(), + topOut.AtomMaskName(at1).c_str()); + resBondingAtoms[ra0.first].push_back( Ipair(at0, at1) ); + resBondingAtoms[ra1.first].push_back( Ipair(at1, at0) ); + ResidueConnections[ra0.first].push_back( ra1.first ); + ResidueConnections[ra1.first].push_back( ra0.first ); + } else { + if (debug_ > 0) + mprintf("DEBUG: Detected non-template bond %s - %s; not adding it.\n", + topOut.AtomMaskName(at0).c_str(), + topOut.AtomMaskName(at1).c_str()); + } + } + } + } + + // DEBUG print inter-residue bonding atoms + if (debug_ > 0) { + for (std::vector<IParray>::const_iterator rit = resBondingAtoms.begin(); + rit != resBondingAtoms.end(); ++rit) + { + mprintf("\tResidue %s bonding atoms.\n", topOut.TruncResNameNum(rit-resBondingAtoms.begin()).c_str()); + for (IParray::const_iterator it = rit->begin(); it != rit->end(); ++it) + mprintf("\t\t%s - %s\n", topOut.AtomMaskName(it->first).c_str(), topOut.AtomMaskName(it->second).c_str()); + } + } + + // ----------------------------------- + // Do some error checking + if (hasPosition.size() != (unsigned int)newNatom) { + mprinterr("Internal Error: hasPosition size %zu != newNatom size %i\n", hasPosition.size(), newNatom); + return 1; + } + if (AtomOffsets.size() != (unsigned int)topOut.Nres()) { + mprinterr("Internal Error: AtomOffsets size %zu != newNres size %i\n", AtomOffsets.size(), topOut.Nres()); + return 1; + } + if (SourceAtomNames.size() != (unsigned int)topIn.Natom()) { + mprinterr("Internal Error: Source atom names length %zu != # input atoms %i\n", SourceAtomNames.size(), topIn.Natom()); + return 1; + } + if (has_bfac) { + if (topOut.Bfactor().size() != (unsigned int)topOut.Natom()) { + mprinterr("Internal Error: Size of final Bfactor array %zu != # atoms %i\n", topOut.Bfactor().size(), topOut.Natom()); + return 1; + } + } + if (has_occ) { + if (topOut.Occupancy().size() != (unsigned int)topOut.Natom()) { + mprinterr("Internal Error: Size of final Occupancy array %zu != # atoms %i\n", topOut.Occupancy().size(), topOut.Natom()); + return 1; + } + } + if (has_pdbn) { + if (topOut.PdbSerialNum().size() != (unsigned int)topOut.Natom()) { + mprinterr("Internal Error: Size of final PdbSerialNum array %zu != # atoms %i\n", topOut.PdbSerialNum().size(), topOut.Natom()); + return 1; + } + } + + if (debug_ > 0) { + mprintf("DEBUG: hasPosition:\n"); + for (unsigned int idx = 0; idx != (unsigned int)topOut.Natom(); idx++) + mprintf("\t%10u %20s : %i\n", idx+1, topOut.AtomMaskName(idx).c_str(), (int)hasPosition[idx]); + } + + // ----------------------------------- + // Build using internal coords if needed. + t_fill_build_.Start(); + bool buildFailed = false; + Cpptraj::Structure::Builder::Barray tmpHasPosition(topOut.Natom(), false); + int nextTempHasPositionStart = 0; + for (Iarray::const_iterator it = AtomOffsets.begin(); it != AtomOffsets.end(); ++it) + { + long int ires = it-AtomOffsets.begin(); + if (*it > -1) { + if (debug_ > 0) + mprintf("DEBUG: ***** BUILD residue %li %s *****\n", ires + 1, + topOut.TruncResNameOnumId(ires).c_str()); + // Residue has atom offset which indicates it needs something built. + Cpptraj::Structure::Builder structureBuilder;// = new Cpptraj::Structure::Builder(); + structureBuilder.SetDebug( debug_ ); + if (creator.HasMainParmSet()) + structureBuilder.SetParameters( creator.MainParmSetPtr() ); + // Generate internals from the template, update indices to this topology. + DataSet_Coords* resTemplate = ResTemplates[ires]; +# ifdef TIMER + t_fill_build_internals_.Start(); +# endif + Frame templateFrame = resTemplate->AllocateFrame(); + resTemplate->GetFrame( 0, templateFrame ); + if (structureBuilder.GenerateInternals(templateFrame, resTemplate->Top(), + std::vector<bool>(resTemplate->Top().Natom(), true))) + { + mprinterr("Error: Generate internals for residue template failed.\n"); + return 1; + } +# ifdef TIMER + t_fill_build_internals_.Stop(); +# endif + structureBuilder.UpdateIndicesWithOffset( *it ); + //mprintf("DEBUG: Residue type: %s terminal\n", Cpptraj::Structure::terminalStr(*termType)); + // Is this residue connected to an earlier residue? +# ifdef TIMER + t_fill_build_link_.Start(); +# endif + for (IParray::const_iterator resBonds = resBondingAtoms[ires].begin(); + resBonds != resBondingAtoms[ires].end(); ++resBonds) + { + if (resBonds->second < resBonds->first) { + if (debug_ > 0) + mprintf("\t\tResidue connection: %s - %s\n", + topOut.AtomMaskName(resBonds->first).c_str(), + topOut.AtomMaskName(resBonds->second).c_str()); +# ifdef TIMER + t_fill_build_link_bond_.Start(); +# endif + topOut.AddBond(resBonds->first, resBonds->second); +# ifdef TIMER + t_fill_build_link_bond_.Stop(); +# endif + // Generate internals around the link + Residue const& R0 = topIn.Res(topOut[resBonds->first].ResNum()); + for (int at = nextTempHasPositionStart; at < R0.FirstAtom(); at++) + tmpHasPosition[at] = true; + nextTempHasPositionStart = R0.FirstAtom(); + + if (structureBuilder.GenerateInternalsAroundLink(resBonds->first, resBonds->second, + frameOut, topOut, hasPosition, Cpptraj::Structure::Builder::BUILD, + tmpHasPosition)) + { + mprinterr("Error: Assign torsions around inter-residue link %s - %s failed.\n", + topOut.AtomMaskName(resBonds->first).c_str(), + topOut.AtomMaskName(resBonds->second).c_str()); + return 1; + } + } + } +# ifdef TIMER + t_fill_build_link_.Stop(); +# endif + // Update internal coords from known positions + if (structureBuilder.UpdateICsFromFrame( frameOut, topOut, hasPosition )) { + mprinterr("Error: Failed to update internals with values from existing positions.\n"); + return 1; + } +# ifdef TIMER + t_fill_build_build_.Start(); +# endif + if (structureBuilder.BuildFromInternals(frameOut, topOut, hasPosition)) { + mprinterr("Error: Building residue %s failed.\n", + topOut.TruncResNameOnumId(ires).c_str()); + buildFailed = true; + } +# ifdef TIMER + t_fill_build_build_.Stop(); +# endif + } else { + // All atoms present. Just connect + // Is this residue connected to an earlier residue? + for (IParray::const_iterator resBonds = resBondingAtoms[ires].begin(); + resBonds != resBondingAtoms[ires].end(); ++resBonds) + { + if (resBonds->second < resBonds->first) { + if (debug_ > 0) + mprintf("\t\tResidue connection only: %s - %s\n", + topOut.AtomMaskName(resBonds->first).c_str(), + topOut.AtomMaskName(resBonds->second).c_str()); + topOut.AddBond(resBonds->first, resBonds->second); + } + } + } + } // END loop over atom offsets + t_fill_build_.Stop(); + + // DEBUG - Print new top/coords + if (debug_ > 1) { + for (int iat = 0; iat != topOut.Natom(); iat++) + { + Residue const& res = topOut.Res( topOut[iat].ResNum() ); + const double* XYZ = frameOut.XYZ(iat); + mprintf("%6i %6s %6i %6s (%i) %g %g %g\n", + iat+1, *(topOut[iat].Name()), res.OriginalResNum(), *(res.Name()), + (int)hasPosition[iat], XYZ[0], XYZ[1], XYZ[2]); + } + } + + if (buildFailed) return 1; + return 0; +} + +/** Given an original topology and bonded atom indices, find those atoms + * in another topology and ensure they are bonded. + */ +int Exec_Build::transfer_bonds(Topology& topOut, Topology const& topIn, + std::vector<BondType> const& bondsIn) +const +{ + for (std::vector<BondType>::const_iterator bnd = bondsIn.begin(); + bnd != bondsIn.end(); ++bnd) + { + // Get the original atom name and residue number + Atom const& original_A1 = topIn[bnd->A1()]; + Atom const& original_A2 = topIn[bnd->A2()]; + if (debug_ > 0) + mprintf("DEBUG: Original bond atoms %i (%s) %i (%s)\n", + bnd->A1()+1, topIn.AtomMaskName(bnd->A1()).c_str(), + bnd->A2()+1, topIn.AtomMaskName(bnd->A2()).c_str()); + // Find the atoms in the new topology + int a1 = topOut.FindAtomInResidue( original_A1.ResNum(), original_A1.Name() ); + if (a1 < 0) { + mprinterr("Error: Could not find atom %i (%s) in new topology.\n", + bnd->A1()+1, topIn.AtomMaskName(bnd->A1()).c_str()); + return 1; + } + int a2 = topOut.FindAtomInResidue( original_A2.ResNum(), original_A2.Name() ); + if (a2 < 0) { + mprinterr("Error: Could not find atom %i (%s) in new topology.\n", + bnd->A2()+1, topIn.AtomMaskName(bnd->A2()).c_str()); + return 1; + } + // Add the bond to the new topology + topOut.AddBond( a1, a2 ); + } + return 0; +} + +// ----------------------------------------------------------------------------- +// Exec_Build::Help() +void Exec_Build::Help() const +{ + mprintf("\t[name <output COORDS>] {crdset <COORDS set>|<file>} [{frame <#>|doassembly}]\n"); + Cpptraj::Structure::PdbCleaner::Help(); + mprintf("\t[title <title>] [verbose <#>] [keepmissingatoms] [nofixorder]\n" + "\t[parmout <topology file>] [crdout <coord file>] [simplecheck]\n" + "\t[reportfile <check file>] [flexiblewater]\n"); + mprintf("\t[%s]\n", Cpptraj::Parm::GB_Params::HelpText().c_str()); + mprintf(" LJ 12-6-4 options:\n"); + mprintf("\t[lj1264 %s]\n", Cpptraj::Parm::LJ1264_Params::HelpText().c_str()); + mprintf(" Atom Scan direction:\n"); + mprintf("\t[%s]\n" + " Residue Templates and Parameters to use:\n" + "\t[{%s} ...]\n" + "\t[{%s} ...]\n" + " Solvation/box:\n" + "\t[{{solvatebox|solvateoct} %s\n" + "\t %s |\n" + "\t setbox %s}]\n" + " Adding ions:\n" + "\t[addionsrand ion1 <name1> nion1 <num1> [ion2 <name2> nion2 <num2>]\n" + "\t [minsep <dist>] [ionseed <seed>]]\n" + " 'prepareforleap' options:\n" + "%s" + "%s" + "%s", + Cpptraj::Structure::Creator::other_keywords_, + Cpptraj::Structure::Creator::template_keywords_, + Cpptraj::Structure::Creator::parm_keywords_, + Cpptraj::Structure::Solvate::SolvateKeywords1(), + Cpptraj::Structure::Solvate::SolvateKeywords2(), + Cpptraj::Structure::Solvate::SetboxKeywords(), + Cpptraj::Structure::HisProt::keywords_, + Cpptraj::Structure::Disulfide::keywords_, + Cpptraj::Structure::SugarBuilder::keywords_ + ); + mprintf(" Build complete topology and parameters from given crdset.\n"); +} + +/** Check if any unhandled options have been set. */ +int Exec_Build::checkUnhandledOptions(DataSet_LeapOpts const& OPTS) const { + if (OPTS.IPOL() > 0) { + mprinterr("Error: IPOL has been set to something other than zero by a previous leaprc file.\n" + "Error: Creating topologies for polarizable FF is not yet supported.\n"); + return 1; + } + return 0; +} + +// Exec_Build::Execute() +Exec::RetType Exec_Build::Execute(CpptrajState& State, ArgList& argIn) +{ +#ifndef CPPTRAJ_USE_LEAP_PI + mprintf("Warning: CPPTRAJ was not compiled with LEaP's value of PI.\n" + "Warning: Output Topology and Coordinates are expected to differ slightly from LEaP.\n" + "Warning: To obtain an exact match to LEaP CPPTRAJ must be compiled with\n" + "Warning: -DCPPTRAJ_USE_LEAP_PI (configure flag '-leappi').\n"); +# endif + std::string outset = argIn.GetStringKey("name"); + // Get input coords + DataSet* inCrdPtr = 0; + std::string crdset = argIn.GetStringKey("crdset"); + if (crdset.empty()) { + // Try to load a file + FileName fname(argIn.GetStringNext()); + if (File::Exists( fname )) { + DataIO_Coords crdin; + if (crdin.ReadData(fname, State.DSL(), fname.Base())) { + mprinterr("Error: Could not read top/coords from '%s'\n", fname.full()); + return CpptrajState::ERR; + } + inCrdPtr = crdin.added_back(); + } + } else { + inCrdPtr = State.DSL().FindSetOfGroup( crdset, DataSet::COORDINATES ); + if (inCrdPtr == 0) { + mprinterr("Error: No COORDS set found matching %s\n", crdset.c_str()); + return CpptrajState::ERR; + } + } + if (inCrdPtr == 0) { + mprinterr("Error: Must specify file to build or COORDS set with 'crdset'\n"); + return CpptrajState::ERR; + } + DataSet_LeapOpts* leapopts = (DataSet_LeapOpts*)State.DSL().FindSetOfType( "*", DataSet::LEAPOPTS ); + if (leapopts != 0) { + // Check for unhandled leap options + DataSet_LeapOpts const& OPTS = static_cast<DataSet_LeapOpts const&>( *leapopts ); + if (checkUnhandledOptions( OPTS )) return CpptrajState::ERR; + } + + return BuildAndParmStructure(inCrdPtr, outset, State.DSL(), State.Debug(), argIn, Cpptraj::Parm::UNKNOWN_GB, leapopts); +} + +/** Create an assembly from all the frames in the input coordinates. */ +int Exec_Build::createAssembly(Topology& topIn, Frame& frameIn, + DataSet_Coords& CRDIN) +const +{ + if (CRDIN.Size() < 2) { + mprintf("Warning: Only %zu frames in COORDS set '%s'; no assembly needed.\n", CRDIN.Size(), CRDIN.legend()); + frameIn = CRDIN.AllocateFrame(); + CRDIN.GetFrame(0, frameIn); + topIn = CRDIN.Top(); + } else { + mprintf("\tCreating assembly from %zu structures:", CRDIN.Size()); + for (unsigned int idx = 0; idx < CRDIN.Size(); idx++) { + mprintf(" %u", idx+1); + topIn.AppendTop( CRDIN.Top(), debug_, false, false ); + } + frameIn.SetupFrameV( topIn.Atoms(), CRDIN.CoordsInfo() ); + Frame frm = CRDIN.AllocateFrame(); + mprintf("\n\tCopying coordinates for assembly:"); + double *output = frameIn.xAddress(); + for (unsigned int idx = 0; idx < CRDIN.Size(); idx++) { + // Coords + mprintf(" %u", idx+1); + CRDIN.GetFrame(idx, frm); + std::copy(frm.xAddress(), frm.xAddress()+frm.size(), output); + output += frm.size(); + } + mprintf("\n"); + topIn.Brief("Assembly"); + } + return 0; +} + +/** Standalone execute. For DataIO_LeapRC. Operate on inCrdPtr */ +Exec::RetType Exec_Build::BuildStructure(DataSet* inCrdPtr, DataSetList& DSL, int debugIn, + std::string const& outset, std::string const& title, + bool enableExtraDetection, DataSet_LeapOpts* leapopts) + +{ +#ifndef CPPTRAJ_USE_LEAP_PI + mprintf("Warning: CPPTRAJ was not compiled with LEaP's value of PI.\n" + "Warning: Output Topology and Coordinates are expected to differ slightly from LEaP.\n" + "Warning: To obtain an exact match to LEaP CPPTRAJ must be compiled with\n" + "Warning: -DCPPTRAJ_USE_LEAP_PI (configure flag '-leappi').\n"); +# endif + t_total_.Start(); + if (inCrdPtr == 0) { + mprinterr("Internal Error: Exec_Build::BuildStructure(): Null input coordinates.\n"); + return CpptrajState::ERR; + } + if (inCrdPtr->Group() != DataSet::COORDINATES) { + mprinterr("Error: Set '%s' is not coordinates, cannot use for building.\n", inCrdPtr->legend()); + return CpptrajState::ERR; + } + if (outset.empty() && inCrdPtr->Size() > 1) { + mprinterr("Error: Set '%s' has more than 1 frame; must specify an output COORDS set in order to build.\n", + inCrdPtr->legend()); + return CpptrajState::ERR; + } + debug_ = debugIn; + if (leapopts != 0) { + // Check for unhandled leap options + DataSet_LeapOpts const& OPTS = static_cast<DataSet_LeapOpts const&>( *leapopts ); + if (checkUnhandledOptions( OPTS )) return CpptrajState::ERR; + } + + // TODO make it so this can be const (cant bc GetFrame) + DataSet_Coords& coords = static_cast<DataSet_Coords&>( *((DataSet_Coords*)inCrdPtr) ); + // Get frame from input coords + int tgtframe = 0; + //mprintf("\tUsing frame %i from COORDS set %s\n", tgtframe+1, coords.legend()); + if (tgtframe < 0 || tgtframe >= (int)coords.Size()) { + mprinterr("Error: Frame is out of range.\n"); + return CpptrajState::ERR; + } + Frame frameIn = coords.AllocateFrame(); + coords.GetFrame(tgtframe, frameIn); + // Get modifiable topology + // NOTE: Topology is copied here because it might be destroyed if doing in-place build. + Topology topIn = coords.Top(); // FIXME do not work on the copy, work on the top itself + + // Set some defaults + ArgList argIn; + std::string solventResName = "HOH"; //argIn.GetStringKey("solventresname", "HOH"); + keepMissingSourceAtoms_ = false; //argIn.hasKey("keepmissingatoms"); + requireAllInputAtoms_ = false; //argIn.hasKey("requireallinputatoms"); + doHisDetect_ = enableExtraDetection; + doDisulfide_ = enableExtraDetection; + doSugar_ = enableExtraDetection; + fixAtomOrder_ = enableExtraDetection; + + // Set up Output coords + if (setupOutputCoords(inCrdPtr, outset, title, DSL)) { + mprinterr("Error: Could not set up OUTPUT coords for build.\n"); + return CpptrajState::ERR; + } + DataSet_Coords& crdout = static_cast<DataSet_Coords&>( *((DataSet_Coords*)outCrdPtr_) ); + Topology& topOut = static_cast<Topology&>( *(crdout.TopPtr()) ); + + // Get templates. + t_get_templates_.Start(); + Cpptraj::Structure::Creator creator; + if (creator.InitCreator(argIn, DSL, debug_)) { + return CpptrajState::ERR; + } + if (!creator.HasTemplates()) { + mprintf("Warning: No residue templates loaded.\n"); + } + t_get_templates_.Stop(); + + Frame frameOut; + if (StructurePrepAndFillTemplates(argIn, topIn, frameIn, + topOut, frameOut, + solventResName, + creator)) + return CpptrajState::ERR; + + // Update coords + if (crdout.CoordsSetup( topOut, frameOut.CoordsInfo() )) { // FIXME better coordinate info + mprinterr("Error: Could not set up output COORDS data set.\n"); + return CpptrajState::ERR; + } + crdout.SetCRD(0, frameOut); + + t_total_.Stop(); + + mprintf(" -----===== Timing =====-----\n"); + PrintTiming(); + + return CpptrajState::OK; +} + +// ----------------------------------------------------------------------------- +/** Set up output COORDS (Topology) */ +int Exec_Build::setupOutputCoords(DataSet* inCrdPtr, std::string const& outset, std::string const& title, DataSetList& DSL) +{ + Topology const& topIn = ((DataSet_Coords*)inCrdPtr)->Top(); + std::string default_title; + if (!topIn.ParmName().empty()) + default_title = topIn.ParmName(); + else + default_title.assign( topIn.c_str() ); + // Set up Output coords + if (!outset.empty()) { + // Separate output COORDS set. + outCrdPtr_ = DSL.AddSet( DataSet::COORDS, outset ); + } else { + // In-place output COORDS + MetaData inCrdMeta = inCrdPtr->Meta(); + std::string originalParmName( ((DataSet_Coords*)inCrdPtr)->Top().ParmName() ); + FileName originalFileName( ((DataSet_Coords*)inCrdPtr)->Top().OriginalFilename() ); + DSL.RemoveSet( inCrdPtr ); + outCrdPtr_ = DSL.AddSet( DataSet::COORDS, inCrdMeta ); + // Copy over existing topology name, file + ((DataSet_Coords*)outCrdPtr_)->TopPtr()->SetParmName( originalParmName, originalFileName ); + } + if (outCrdPtr_ == 0) { + mprinterr("Error: Could not allocate output COORDS set with name '%s'\n", outset.c_str()); + return 1; + } + DataSet_Coords& crdout = static_cast<DataSet_Coords&>( *((DataSet_Coords*)outCrdPtr_) ); + mprintf("\tOutput COORDS set: %s\n", crdout.legend()); + Topology& topOut = static_cast<Topology&>( *(crdout.TopPtr()) ); + topOut.SetDebug( debug_ ); + + if (!title.empty()) + topOut.SetParmName( title, FileName() ); + else if (topOut.ParmName().empty()) { + // TODO better default + topOut.SetParmName( default_title, topOut.OriginalFilename() ); + } + return 0; +} + +/** Run the full build, parameterize, and check. */ +Exec::RetType Exec_Build::BuildAndParmStructure(DataSet* inCrdPtr, std::string const& outset, + DataSetList& DSL, int debugIn, ArgList& argIn, + Cpptraj::Parm::GB_RadiiType gbRadIn, + DataSet_LeapOpts* leapopts) +{ + t_total_.Start(); + debug_ = debugIn; + int verbose = argIn.getKeyInt("verbose", 0); + if (inCrdPtr == 0) { + mprinterr("Internal Error: Exec_Build::BuildStructure(): Null input coordinates.\n"); + return CpptrajState::ERR; + } + if (inCrdPtr->Group() != DataSet::COORDINATES) { + mprinterr("Error: Set '%s' is not coordinates, cannot use for building.\n", inCrdPtr->legend()); + return CpptrajState::ERR; + } + bool doassembly = argIn.hasKey("doassembly"); + if (!doassembly && outset.empty() && inCrdPtr->Size() > 1) { + mprinterr("Error: Set '%s' has more than 1 frame; must specify an output COORDS set in order to build.\n", + inCrdPtr->legend()); + return CpptrajState::ERR; + } + unsigned int input_has_missing_res = ((DataSet_Coords*)inCrdPtr)->Top().MissingRes().size(); + std::string title = argIn.GetStringKey("title"); + if (argIn.hasKey("nofixorder")) + fixAtomOrder_ = false; + else + fixAtomOrder_ = true; + std::string outputTopologyName = argIn.GetStringKey("parmout"); + std::string outputCoordsName = argIn.GetStringKey("crdout"); + if (argIn.hasKey("simplecheck")) { + check_structure_ = false; + } else { + check_structure_ = true; + } + reportfile_ = argIn.GetStringKey("reportfile"); + if (!reportfile_.empty()) + mprintf("\tProblems with the final structure will be written to '%s'\n", reportfile_.c_str()); + doHisDetect_ = !argIn.hasKey("nohisdetect"); + doDisulfide_ = !argIn.hasKey("nodisulfides"); + doSugar_ = !argIn.hasKey("nosugars"); + if (!outputTopologyName.empty()) + mprintf("\tWill write topology to %s\n", outputTopologyName.c_str()); + if (!outputCoordsName.empty()) + mprintf("\tWill write coords to %s\n", outputCoordsName.c_str()); + + Frame frameIn; + Topology topIn; + // TODO make it so this can be const (cant bc GetFrame) + DataSet_Coords& coords = static_cast<DataSet_Coords&>( *((DataSet_Coords*)inCrdPtr) ); + if (doassembly) { + if (createAssembly(topIn, frameIn, coords)) { + mprinterr("Error: Assembly creation failed.\n"); + return CpptrajState::ERR; + } + } else { + // Get frame from input coords + int tgtframe = argIn.getKeyInt("frame", 1) - 1; + mprintf("\tUsing frame %i from COORDS set %s\n", tgtframe+1, coords.legend()); + if (tgtframe < 0 || tgtframe >= (int)coords.Size()) { + mprinterr("Error: Frame is out of range.\n"); + return CpptrajState::ERR; + } + frameIn = coords.AllocateFrame(); + coords.GetFrame(tgtframe, frameIn); + // Get modifiable topology + // NOTE: Topology is copied here because it might be destroyed if doing in-place build. + //Topology& topIn = *(coords.TopPtr()); + //Topology const& topIn = coords.Top(); + topIn = coords.Top(); // FIXME do not work on the copy, work on the top itself + } + + std::string solventResName = argIn.GetStringKey("solventresname", "HOH"); + mprintf("\tResidues named '%s' will be recognized as solvent.\n", solventResName.c_str()); + bool flexWater = argIn.hasKey("flexiblewater"); + if (!flexWater && leapopts->FlexibleWater()) { + mprintf("Warning: Flexible water option was set to ON by previous leaprc file; turning on flexible water.\n"); + flexWater = true; + } else if (flexWater && !(leapopts->FlexibleWater())) + mprintf("Warning: 'flexwater' specified but flexible water option not set by previous leaprc file;\n" + "Warning: Ensure that loaded water models are designed to be flexible.\n"); + if (flexWater) + mprintf("\tFlexible water option is on.\n"); + + enum SolvateModeType { NO_SOLVATE = 0, SOLVATEBOX, SETBOX }; + SolvateModeType add_solvent = NO_SOLVATE; + Cpptraj::Structure::Solvate solvator; + if (argIn.hasKey("solvatebox")) { + add_solvent = SOLVATEBOX; + if (solvator.InitSolvate(argIn, false, debug_)) { + mprinterr("Error: Init solvatebox failed.\n"); + return CpptrajState::ERR; + } + solvator.PrintSolvateInfo(); + } else if (argIn.hasKey("solvateoct")) { + add_solvent = SOLVATEBOX; + if (solvator.InitSolvate(argIn, true, debug_)) { + mprinterr("Error: Init solvateoct failed.\n"); + return CpptrajState::ERR; + } + solvator.PrintSolvateInfo(); + } else if (argIn.hasKey("setbox")) { + add_solvent = SETBOX; + if (solvator.InitSetbox(argIn, debug_)) { + mprinterr("Error: Init setbox failed.\n"); + return CpptrajState::ERR; + } + } + + Cpptraj::Structure::AddIons addIons; + if (add_solvent == SOLVATEBOX) { + if (argIn.hasKey("addionsrand")) { + std::string ion1name = argIn.GetStringKey("ion1"); + int nion1 = argIn.getKeyInt("nion1", -1); + std::string ion2name = argIn.GetStringKey("ion2"); + int nion2 = argIn.getKeyInt("nion2", -1); + double minsep = argIn.getKeyDouble("minsep", 0.0); + int ionseed = argIn.getKeyInt("ionseed", -1); + if (addIons.InitAddIons(ion1name, nion1, ion2name, nion2, minsep, ionseed, debug_)) { + mprinterr("Error: Init addions failed.\n"); + return CpptrajState::ERR; + } + addIons.PrintAddIonsInfo(); + } + } + + keepMissingSourceAtoms_ = argIn.hasKey("keepmissingatoms"); + if (keepMissingSourceAtoms_) + mprintf("\tInput atoms missing from templates will be kept.\n"); + else + mprintf("\tInput atoms missing from templates will be ignored.\n"); + requireAllInputAtoms_ = argIn.hasKey("requireallinputatoms"); + if (requireAllInputAtoms_) + mprintf("\tRequire all input atoms to be found in templates.\n"); + else + mprintf("\tInput atoms not found in templates will be ignored.\n"); + + // Set up Output coords + if (setupOutputCoords(inCrdPtr, outset, title, DSL)) { + mprinterr("Error: Could not set up OUTPUT coords for build.\n"); + return CpptrajState::ERR; + } + DataSet_Coords& crdout = static_cast<DataSet_Coords&>( *((DataSet_Coords*)outCrdPtr_) ); + Topology& topOut = static_cast<Topology&>( *(crdout.TopPtr()) ); + + // GB radii set + Cpptraj::Parm::GB_Params gbradii; + if (gbradii.Init_GB_Radii(argIn, gbRadIn)) return CpptrajState::ERR; + + // LJ 12-6-4 + Cpptraj::Parm::LJ1264_Params lj1264; + if (argIn.hasKey("lj1264")) { + if (lj1264.Init_LJ1264( argIn, debug_, solvator.SolventBoxName())) { + mprinterr("Error: Init of LJ 12-6-4 failed.\n"); + return CpptrajState::ERR; + } + } + + // ============================================= + mprintf(" -----===== Getting templates and parameters ===== -----\n"); + // Get templates and parameter sets. + t_get_templates_.Start(); + Cpptraj::Structure::Creator creator; + if (creator.InitCreator(argIn, DSL, debug_)) { + return CpptrajState::ERR; + } + if (!creator.HasTemplates()) { + mprintf("Warning: No residue templates loaded.\n"); + } + if (!creator.HasMainParmSet()) { + mprinterr("Error: No parameter sets found.\n"); + mprinterr("Error: Building a system requires that force field parameters be loaded. Suggestions:\n" + "Error: 1) Load an Amber force field using 'source <leaprc file>', e.g. 'source leaprc.protein.ff19SB'\n" + "Error: 2) Load individual parameter files with 'readdata <file> as <type>', e.g. 'readdata parm10.dat as amberff'\n"); + printErrMsgWebsites(); + return CpptrajState::ERR; + } + t_get_templates_.Stop(); +# ifdef TIMER + creator.TimingInfo(t_get_templates_.Total(), 2); +# endif + Frame frameOut; + if (StructurePrepAndFillTemplates(argIn, topIn, frameIn, + topOut, frameOut, + solventResName, + creator)) + return CpptrajState::ERR; + // ============================================= + + // Solvate/add ions + std::string checkMaskString("*"); + if (add_solvent == SOLVATEBOX) { + mprintf(" -----===== Solvate =====-----\n"); + t_solvate_.Start(); + // Record initial number of atoms and residues + int initial_natom = topOut.Natom(); + int initial_nres = topOut.Nres(); + if (solvator.SolvateBox( topOut, frameOut, *(creator.MainParmSetPtr()), DSL )) { + mprinterr("Error: Adding solvent failed.\n"); + return CpptrajState::ERR; + } + mprintf("\t Added %i solvent residues.\n", topOut.Nres() - initial_nres); + // Since by design the SolvateBox routine ensures solvent does not + // clash with solute, just check the solute. + checkMaskString.assign( "@1-" + integerToString(initial_natom) ); + // Add ions if needed + if (addIons.IsSetup()) { + if (addIons.AddIonsRand( topOut, frameOut, DSL, *(creator.MainParmSetPtr()) )) { + mprinterr("Error: Adding ions failed.\n"); + return CpptrajState::ERR; + } + } + t_solvate_.Stop(); + } else if (add_solvent == SETBOX) { + mprintf(" -----===== Set Box =====-----\n"); + t_solvate_.Start(); + if (solvator.SetVdwBoundingBox( topOut, frameOut, *(creator.MainParmSetPtr()) )) { + mprinterr("Error: Setting box failed.\n"); + return CpptrajState::ERR; + } + mprintf("\tAdding VDW bounding box.\n"); + } + + // Assign parameters. This will create the bond/angle/dihedral/improper + // arrays as well. + mprintf(" -----===== Assign Parameters =====-----\n"); + t_assign_.Start(); + Exec::RetType ret = CpptrajState::OK; + Cpptraj::Parm::AssignParams AP; + AP.SetDebug( debug_ ); + AP.SetVerbose( verbose ); + AP.SetFlexibleWater( flexWater ); + int nmissing = 0; + if ( AP.AssignParameters( topOut, *(creator.MainParmSetPtr()), nmissing ) ) { + mprinterr("Error: Could not assign parameters for '%s'.\n", topOut.c_str()); + ret = CpptrajState::ERR; + } + if (nmissing != 0) { + mprinterr("Error: Missing %i parameters for '%s'\n", nmissing, topOut.c_str()); + ret = CpptrajState::ERR; + } + // Assign GB parameters + gbradii.GB_Info(); + if (gbradii.Assign_GB_Radii(topOut)) { + mprinterr("Error: Could not assign GB parameters for '%s'\n", topOut.c_str()); + ret = CpptrajState::ERR; + } + // Assign LJ 12-6-4 parameters + if (lj1264.HasC4Params()) { + if (lj1264.AssignLJ1264(topOut)) { + mprinterr("Error: Could not assign LJ 12-6-4 parameters for '%s'\n", topOut.c_str()); + ret = CpptrajState::ERR; + } + } + + topOut.Summary(); + t_assign_.Stop(); + + // Update coords + if (crdout.CoordsSetup( topOut, frameOut.CoordsInfo() )) { // FIXME better coordinate info + mprinterr("Error: Could not set up output COORDS data set.\n"); + return CpptrajState::ERR; + } + crdout.SetCRD(0, frameOut); + + // Structure check + mprintf(" -----===== Structure Check =====-----\n"); + StructureCheck check; + CpptrajFile check_output; + check_output.OpenWrite(reportfile_); + int Ntotal_problems = 0; + if (check_structure_) { + mprintf("\tWill check bond lengths, atomic overlaps, and ring intersections.\n"); + t_check_.Start(); + if (check.SetOptions( true, // image + true, // check bonds + true, // save problems + debug_, // debug + checkMaskString, // mask 1 + "", // mask 2 + 0.8, // nonbond cut. NOTE: leap check cut is 1.5 + 1.15, // bond long offset + 0.5, // bond short offset + -1, // pairlist cut (-1 for heuristic) + true, // ring check + 0, // 0 = default ring check short distance cut + 0, // 0 = default ring check long distance cut + 0 // 0 = default ring check angle cut + )) + { + mprinterr("Error: Structure check options failed.\n"); + return CpptrajState::ERR; + } + // For larger structures, automatically add a box + bool box_added = false; + if (!frameOut.BoxCrd().HasBox() && topOut.Natom() > check_box_natom_) { + mprintf("\tAdding unit cell for check only.\n"); + box_added = true; + // Get radii + std::vector<double> Radii; + Radii.reserve( topOut.Natom() ); + for (int atnum = 0; atnum != topOut.Natom(); ++atnum) { + Radii.push_back( topOut.GetVDWradius(atnum) ); + //Radii.push_back( topIn[atnum].ParseRadius() ); + //Radii.push_back( 0.5 ); + } + + if (frameOut.SetOrthoBoundingBox(Radii, 1.0)) { + mprinterr("Error: Setting orthogonal bounding box failed.\n"); + return CpptrajState::ERR; + } + frameOut.BoxCrd().PrintInfo(); + } + t_check_setup_.Start(); + if (check.Setup( topOut, frameOut.BoxCrd() )) { + mprinterr("Error: Structure check setup failed.\n"); + return CpptrajState::ERR; + } + t_check_setup_.Stop(); + check.PrintTiming(1, t_check_setup_.Total()); + check.Mask1().MaskInfo(); + if (check.ImageOpt().ImagingEnabled()) + mprintf("\tImaging on.\n"); + else + mprintf("\timaging off.\n"); + t_check_overlaps_.Start(); + Ntotal_problems = check.CheckOverlaps( frameOut ); + t_check_overlaps_.Stop(); + check.WriteProblemsToFile( &check_output, topOut ); + t_check_bonds_.Start(); + Ntotal_problems += check.CheckBonds( frameOut ); + t_check_bonds_.Stop(); + check.WriteProblemsToFile( &check_output, topOut ); + t_check_rings_.Start(); + Ntotal_problems += check.CheckRings( frameOut ); + t_check_rings_.Stop(); + check.WriteProblemsToFile( &check_output, topOut ); + // If box was added for check only, remove it + if (box_added) + frameOut.ModifyBox().SetNoBox(); + t_check_.Stop(); + } else { + // Just check bond lengths + mprintf("\tSimple check: will only check bond lengths.\n"); + t_check_.Start(); + if (check.SetOptions( false, // image + true, // check bonds + true, // save problems + debug_, // debug + checkMaskString, // mask 1 + "", // mask 2 + 0.8, // nonbond cut. NOTE: leap check cut is 1.5 + 1.15, // bond long offset + 0.5, // bond short offset + -1, // pairlist cut (-1 for heuristic) + false, // ring check + 0, // 0 = default ring check short distance cut + 0, // 0 = default ring check long distance cut + 0 // 0 = default ring check angle cut + )) + { + mprinterr("Error: Structure check options failed.\n"); + return CpptrajState::ERR; + } + t_check_setup_.Start(); + if (check.Setup( topOut, frameOut.BoxCrd() )) { + mprinterr("Error: Structure check setup failed.\n"); + return CpptrajState::ERR; + } + t_check_setup_.Stop(); + check.PrintTiming(1, t_check_setup_.Total()); + check.Mask1().MaskInfo(); + t_check_bonds_.Start(); + Ntotal_problems = check.CheckBonds( frameOut ); + t_check_bonds_.Stop(); + check.WriteProblemsToFile( &check_output, topOut ); + t_check_.Stop(); + } + if (input_has_missing_res > 0) { + Ntotal_problems++; + check_output.Printf("Warning: Input coordinates had %u missing residues.\n", input_has_missing_res); + check_output.Printf( + "Warning: If long bond lengths were reported above it may be due to these\n" + "Warning: missing residues. If the missing residues are non-terminal\n" + "Warning: they should probably be modeled in.\n" + //"Warning: The 'addmissingres' command could be used to create a simple\n" + //"Warning: model for these missing residues, but note THAT COMMAND\n" + //"Warning: IS STILL EXPERIMENTAL. Results should be carefully checked.\n" + ); + } + + // Total charge check + double totalSystemCharge = crdout.Top().TotalCharge(); + double absSystemCharge = fabs(totalSystemCharge); + double q_frac = fabs( absSystemCharge - (double)(int)(absSystemCharge+0.5) ); + // NOTE: These cutoffs are the same as in LEaP + if ( q_frac > 0.01 ) { + check_output.Printf("Warning: The charge of the system is not integral: %f\n", totalSystemCharge); + Ntotal_problems++; + } + if ( absSystemCharge > 0.01 ) { + check_output.Printf("Warning: The charge of the system is not zero: %f\n", totalSystemCharge); + Ntotal_problems++; + } + check_output.Printf("\t%i total problems detected.\n", Ntotal_problems); + if (!reportfile_.empty()) + mprintf("\t%i total problems detected. See '%s' for details.\n", Ntotal_problems, reportfile_.c_str()); + + t_output_.Start(); + mprintf(" -----===== File Output =====-----\n"); + if (!outputTopologyName.empty()) { + ParmFile pfile; + if (pfile.WriteTopology(crdout.Top(), outputTopologyName, argIn, ParmFile::UNKNOWN_PARM, debug_)) { + mprinterr("Error: Could not write topology file %s\n", outputTopologyName.c_str()); + return CpptrajState::ERR; + } + } + + if (!outputCoordsName.empty()) { + Trajout_Single outtraj; + if (outtraj.PrepareTrajWrite( outputCoordsName, argIn, DSL, crdout.TopPtr(), crdout.CoordsInfo(), + crdout.Size(), TrajectoryFile::UNKNOWN_TRAJ)) + { + mprinterr("Error: Could not set up output coords file %s\n", outputCoordsName.c_str()); + return CpptrajState::ERR; + } + outtraj.PrintInfo(0); + if ( outtraj.WriteSingle( 0, frameOut ) ) { + mprinterr("Error: Could not write output coords file %s\n", outputCoordsName.c_str()); + return CpptrajState::ERR; + } + } + t_output_.Stop(); + t_total_.Stop(); + + mprintf(" -----===== Timing =====-----\n"); + PrintTiming(); + if (add_solvent) + t_solvate_.WriteTiming (2, "Solvate :", t_total_.Total()); + t_check_.WriteTiming (2, "Structure check :", t_total_.Total()); + t_check_overlaps_.WriteTiming(3, "Overlaps :", t_check_.Total()); + t_check_bonds_.WriteTiming (3, "Bonds :", t_check_.Total()); + t_check_rings_.WriteTiming (3, "Rings :", t_check_.Total()); + t_check_setup_.WriteTiming (3, "Setup :", t_check_.Total()); + t_assign_.WriteTiming (2, "Param./Top. gen. :", t_total_.Total()); + AP.WriteAssignTiming(3, t_assign_.Total()); + t_output_.WriteTiming (2, "File output :", t_total_.Total()); + + return ret; +} + +/** Prepare the structure, fill missing atoms from templates */ // NOTE: topIn/frameIn cant be const, SugarBuilder reorders during fxn group detect +int Exec_Build::StructurePrepAndFillTemplates(ArgList& argIn, Topology& topIn, Frame& frameIn, + Topology& topOut, Frame& frameOut, + std::string const& solventResName, + Cpptraj::Structure::Creator const& creator) +{ + mprintf(" -----===== Structure Prep ===== -----\n"); + // Do histidine detection before H atoms are removed + t_hisDetect_.Start(); + if (doHisDetect_) { + Cpptraj::Structure::HisProt hisProt; + if (hisProt.InitHisProt( argIn, debug_ )) { + mprinterr("Error: Could not initialize histidine detection.\n"); + return 1; + } + hisProt.HisProtInfo(); + if (hisProt.DetermineHisProt( topIn )) { + mprinterr("Error: HIS protonation detection failed.\n"); + return 1; + } + } else { + mprintf("\tNot preparing histidines.\n"); + } + t_hisDetect_.Stop(); + + // Clean up structure + t_clean_.Start(); + Cpptraj::Structure::PdbCleaner pdbCleaner; + pdbCleaner.SetDebug( debug_ ); + if (pdbCleaner.InitPdbCleaner( argIn, solventResName, std::vector<int>() )) { + mprinterr("Error: Could not init PDB cleaner.\n"); + return 1; + } + if (pdbCleaner.SetupPdbCleaner( topIn )) { + mprinterr("Error: Could not set up PDB cleaner.\n"); + return 1; + } + pdbCleaner.PdbCleanerInfo(); + if (pdbCleaner.ModifyCoords(topIn, frameIn)) { + mprinterr("Error: Could not clean PDB.\n"); + return 1; + } + t_clean_.Stop(); + + // All residues start unknown + Cpptraj::Structure::ResStatArray resStat( topIn.Nres() ); + std::vector<BondType> DisulfideBonds; + std::vector<BondType> SugarBonds; + + // Disulfide search + t_disulfide_.Start(); + if (doDisulfide_) { + Cpptraj::Structure::Disulfide disulfide; + if (disulfide.InitDisulfide( argIn, Cpptraj::Structure::Disulfide::ADD_BONDS, debug_ )) { + mprinterr("Error: Could not init disulfide search.\n"); + return 1; + } + if (disulfide.SearchForDisulfides( resStat, topIn, frameIn, DisulfideBonds )) + { + mprinterr("Error: Disulfide search failed.\n"); + return 1; + } + } else { + mprintf("\tNot searching for disulfides.\n"); + } + t_disulfide_.Stop(); + + // Handle sugars. + t_sugar_.Start(); + // TODO should be on a residue by residue basis in FillAtomsWithTemplates + if (!doSugar_) + mprintf("\tNot attempting to prepare sugars.\n"); + else + mprintf("\tWill attempt to prepare sugars.\n"); + Cpptraj::Structure::SugarBuilder sugarBuilder(debug_); + if (doSugar_) { + // Init options + if (sugarBuilder.InitSugarBuilder( argIn )) + { + mprinterr("Error: Sugar options init failed.\n"); + return 1; + } + bool splitres = !argIn.hasKey("nosplitres"); + if (splitres) + mprintf("\tWill split off recognized sugar functional groups into separate residues.\n"); + else + mprintf("\tNot splitting recognized sugar functional groups into separate residues.\n"); + bool c1bondsearch = !argIn.hasKey("noc1search"); + if (c1bondsearch) + mprintf("\tWill search for missing bonds to sugar anomeric atoms.\n"); + else + mprintf("\tNot searching for missing bonds to sugar anomeric atoms.\n"); + // May need to modify sugar structure/topology, either by splitting + // C1 hydroxyls of terminal sugars into ROH residues, and/or by + // adding missing bonds to C1 atoms. + // This is done before any identification takes place since we want + // to identify based on the most up-to-date topology. + if (sugarBuilder.FixSugarsStructure(topIn, frameIn, + c1bondsearch, splitres, solventResName, + SugarBonds)) + { + mprinterr("Error: Sugar structure modification failed.\n"); + return 1; + } + if (sugarBuilder.PrepareSugars(true, resStat, topIn, frameIn, SugarBonds)) + { + mprinterr("Error: Sugar preparation failed.\n"); + return 1; + } + } + t_sugar_.Stop(); + + // Fill in atoms with templates + mprintf(" -----===== Match residues to templates, fill missing atoms =====-----\n"); + t_fill_.Start(); + //Frame frameOut; + frameOut = Frame(); // TODO reserve? + if (FillAtomsWithTemplates(topOut, frameOut, topIn, frameIn, creator, SugarBonds)) { + mprinterr("Error: Could not fill in atoms using templates.\n"); + return 1; + } + t_fill_.Stop(); + + // Add the disulfide bonds + int addBondsErr = transfer_bonds( topOut, topIn, DisulfideBonds ); + if (addBondsErr != 0) { + mprinterr("Error: Adding disulfide bonds failed.\n"); + return 1; + } + + // Perform any modifications necessary for the sugar functional groups + bool top_is_modified = false; + if (sugarBuilder.ModifyFoundFxnGroups(topOut, top_is_modified)) { + mprinterr("Error: Could not make necessary modifications to detected sugar functional groups.\n"); + return 1; + } + + // Create empty arrays for the TREE, JOIN, and IROTAT arrays + topOut.AllocTreeChainClassification( ); + topOut.AllocJoinArray(); + topOut.AllocRotateArray(); + for (Cpptraj::Parm::ParameterSet::FNarray::const_iterator + fn = creator.MainParmSetPtr()->ParamSetFile().begin(); + fn != creator.MainParmSetPtr()->ParamSetFile().end(); ++fn) + topOut.AddDescription( fn->Base() ); + // Finalize topology - determine molecules, dont renumber residues + topOut.CommonSetup(true, false); + + if (topOut.HasNoncontiguousMols()) { + mprintf("\tMolecules with non-contiguous stretches of residues are present.\n"); + if (fixAtomOrder_) { + mprintf("\tReordering topology/coords so that molecules are contiguous.\n"); + Action_FixAtomOrder fixOrder; + if (fixOrder.FixMoleculeOrder(topOut, frameOut, debug_)) { + mprinterr("Error: Could not fix molecule order.\n"); + return 1; + } + } else { + mprintf("\t'nofixorder' was specified - not reordering molecules.\n"); + } + } + return 0; +} + +/** Write timing info to stdout */ +void Exec_Build::PrintTiming() const { + t_total_.WriteTiming(1, "Build timing:"); + t_hisDetect_.WriteTiming (2, "Histidine detection :", t_total_.Total()); + t_clean_.WriteTiming (2, "Structure clean :", t_total_.Total()); + t_get_templates_.WriteTiming(2, "Get templates/parms :", t_total_.Total()); + + t_disulfide_.WriteTiming (2, "Disulfide detection :", t_total_.Total()); + t_sugar_.WriteTiming (2, "Sugar preparation :", t_total_.Total()); + t_fill_.WriteTiming (2, "Fill missing atoms :", t_total_.Total()); + t_fill_template_.WriteTiming(3, "Get template atoms :", t_fill_.Total()); + t_fill_build_.WriteTiming (3, "Build atoms :", t_fill_.Total()); +# ifdef TIMER + t_fill_build_internals_.WriteTiming(4, "Internals :", t_fill_build_.Total()); + t_fill_build_build_.WriteTiming (4, "Build :", t_fill_build_.Total()); + t_fill_build_link_.WriteTiming (4, "Link :", t_fill_build_.Total()); + t_fill_build_link_bond_.WriteTiming(5, "Link Bond :", t_fill_build_link_.Total()); + Cpptraj::Structure::Builder::PrintTiming(5, t_fill_build_link_.Total()); +# endif +} diff --git a/src/Exec_Build.h b/src/Exec_Build.h new file mode 100644 index 0000000000..55f041f192 --- /dev/null +++ b/src/Exec_Build.h @@ -0,0 +1,96 @@ +#ifndef INC_EXEC_BUILD_H +#define INC_EXEC_BUILD_H +#include "Exec.h" +#include "Parm/GB_Params.h" +class DataSet_LeapOpts; +namespace Cpptraj { +namespace Structure { +class Creator; +} +} +/// Used to build a structure +class Exec_Build : public Exec { + public: + Exec_Build(); + ~Exec_Build() {} + void Help() const; + DispatchObject* Alloc() const { return (DispatchObject*)new Exec_Build(); } + RetType Execute(CpptrajState&, ArgList&); + + /// Stand-alone execution - only build, do not parameterize/solvate + RetType BuildStructure(DataSet*, DataSetList&, int, std::string const&, std::string const&, bool, DataSet_LeapOpts*); + /// \return Output COORDS set + DataSet* OutCrdPtr() const { return outCrdPtr_; } + /// Print Timing data + void PrintTiming() const; + private: + typedef std::vector<int> Iarray; + // Keep track of which residues are connected to each other + typedef std::vector<Iarray> ResConnectArray; + // For holding bonded atom pairs. + typedef std::pair<int,int> Ipair; + typedef std::vector<Ipair> IParray; + + /// Print error message of websites to consult + static void printErrMsgWebsites(); + /// \return true if given IParray has the given Ipair + static inline bool hasBondingPair(IParray const&, Ipair const&); + /// \return true if given array of residue connections has target residue index. + static inline bool resIsConnected(Iarray const&, int); + /// Check for unhandled LEaP options + int checkUnhandledOptions(DataSet_LeapOpts const&) const; + /// Create assembly from input COORDS + int createAssembly(Topology&, Frame&, DataSet_Coords&) const; + /// Create new topology/frame using templates + int FillAtomsWithTemplates(Topology&, Frame&, Topology const&, Frame const&, + Cpptraj::Structure::Creator const&, + std::vector<BondType> const&); + /// Map atoms in topology to template + static std::vector<int> MapAtomsToTemplate(Topology const&, int, DataSet_Coords*, Cpptraj::Structure::Creator const&, std::vector<NameType>&, int&); + /// Transfer bonds from old topology to new topology + int transfer_bonds(Topology&, Topology const&, std::vector<BondType> const&) const; + + /// Set up output COORDS (outCrdPtr_) and Topology + int setupOutputCoords(DataSet*, std::string const&, std::string const&, DataSetList&); + /// Build, parameterize, solvate, and check + RetType BuildAndParmStructure(DataSet*, std::string const&, DataSetList&, int, ArgList&, Cpptraj::Parm::GB_RadiiType, DataSet_LeapOpts*); + /// Do input structure clean/prep and fill in missing atoms from templates + int StructurePrepAndFillTemplates(ArgList&, Topology&, Frame&, Topology&, Frame&, std::string const&, Cpptraj::Structure::Creator const&); // NOTE not const bc of timers + + int debug_; + int check_box_natom_; ///< Systems larger than this will have box added so PL check can be used + bool check_structure_; ///< If true check the resulting structure + bool keepMissingSourceAtoms_; ///< If true, attempt to keep input atoms that are missing from templates + bool requireAllInputAtoms_; ///< If true, require all input atoms to be found in templates. + bool doHisDetect_; + bool doDisulfide_; + bool doSugar_; + bool fixAtomOrder_; ///< If true will attempt to make sure residues in molecules are contiguous + DataSet* outCrdPtr_; ///< Hold built (output) COORDS + std::string reportfile_; ///< File for reporting problems with the final structure + + Timer t_total_; + Timer t_hisDetect_; + Timer t_clean_; + Timer t_get_templates_; + Timer t_disulfide_; + Timer t_sugar_; + Timer t_fill_; + Timer t_fill_template_; + Timer t_fill_build_; +# ifdef TIMER + Timer t_fill_build_internals_; + Timer t_fill_build_build_; + Timer t_fill_build_link_; + Timer t_fill_build_link_bond_; +# endif + Timer t_assign_; + Timer t_check_; + Timer t_check_bonds_; + Timer t_check_overlaps_; + Timer t_check_rings_; + Timer t_check_setup_; + Timer t_solvate_; + Timer t_output_; +}; +#endif diff --git a/src/Exec_Change.cpp b/src/Exec_Change.cpp index 4f7374af0c..7f817e42f3 100644 --- a/src/Exec_Change.cpp +++ b/src/Exec_Change.cpp @@ -4,6 +4,9 @@ #include "TypeNameHolder.h" #include "ParameterTypes.h" #include "DataSet_1D.h" +#include "DataSet_NameMap.h" +#include "Parm/GB_Params.h" +#include "Parm/LJ1264_Params.h" // Exec_Change::Help() void Exec_Change::Help() const @@ -14,16 +17,21 @@ void Exec_Change::Help() const "\t chainid of <mask> to <value> |\n" "\t oresnums of <mask> min <range min> max <range max> |\n" "\t icodes of <mask> min <char min> max <char max> resnum <#> |\n" - "\t atomname from <mask> to <value> |\n" + "\t atomname from <mask> {to <value>|namemap <mapset>} |\n" "\t addbond <mask1> <mask2> [req <length> <rk> <force constant>] |\n" "\t removebonds <mask1> [<mask2>] [out <file>] |\n" "\t bondparm <mask1> [<mask2>] {setrk|scalerk|setreq|scalereq} <value> |\n" "\t {mass|charge} [of <mask>] {to <value> |by <offset> |\n" "\t byfac <factor> |fromset <data set>} |\n" - "\t mergeres firstres <start res#> lastres <stop res#>\n" + "\t mergeres firstres <start res#> lastres <stop res#> |\n" + "\t %s |\n" + "\t lj1264 %s\n" "\t}\n" " Change specified parts of topology or topology of a COORDS data set.\n", - DataSetList::TopArgs); + DataSetList::TopArgs, + Cpptraj::Parm::GB_Params::HelpText().c_str(), + Cpptraj::Parm::LJ1264_Params::HelpText().c_str() + ); } // Exec_Change::Execute() @@ -32,7 +40,7 @@ Exec::RetType Exec_Change::Execute(CpptrajState& State, ArgList& argIn) // Change type enum ChangeType { UNKNOWN = 0, RESNAME, CHAINID, ORESNUMS, ICODES, ATOMNAME, ADDBOND, REMOVEBONDS, SPLITRES, BONDPARM, - MASS, CHARGE, MERGERES }; + MASS, CHARGE, MERGERES, GBRADII, LJ1264 }; ChangeType type = UNKNOWN; if (argIn.hasKey("resname")) type = RESNAME; @@ -58,6 +66,10 @@ Exec::RetType Exec_Change::Execute(CpptrajState& State, ArgList& argIn) type = CHARGE; else if (argIn.hasKey("mergeres")) type = MERGERES; + else if (argIn.hasKey("lj1264")) + type = LJ1264; + else if (argIn.Contains("gb")) + type = GBRADII; if (type == UNKNOWN) { mprinterr("Error: No change type specified.\n"); return CpptrajState::ERR; @@ -84,7 +96,7 @@ Exec::RetType Exec_Change::Execute(CpptrajState& State, ArgList& argIn) case CHAINID : err = ChangeChainID(*parm, argIn); break; case ORESNUMS : err = ChangeOresNums(*parm, argIn); break; case ICODES : err = ChangeIcodes(*parm, argIn); break; - case ATOMNAME : err = ChangeAtomName(*parm, argIn); break; + case ATOMNAME : err = ChangeAtomName(*parm, argIn, State.DSL()); break; case ADDBOND : err = AddBond(*parm, argIn); break; case REMOVEBONDS : err = RemoveBonds(State, *parm, argIn); break; case BONDPARM : err = ChangeBondParameters(*parm, argIn); break; @@ -92,12 +104,32 @@ Exec::RetType Exec_Change::Execute(CpptrajState& State, ArgList& argIn) case MASS : err = ChangeMassOrCharge(*parm, argIn, State.DSL(), 0); break; case CHARGE : err = ChangeMassOrCharge(*parm, argIn, State.DSL(), 1); break; case MERGERES : err = ChangeMergeRes(*parm, argIn); break; + case GBRADII : err = ChangeGbRadii(*parm, argIn); break; + case LJ1264 : err = ChangeLJ1264(*parm, argIn, State.Debug()); break; case UNKNOWN : err = 1; // sanity check } if (err != 0) return CpptrajState::ERR; return CpptrajState::OK; } +/** Change the LJ 1264 params */ +int Exec_Change::ChangeLJ1264(Topology& parm, ArgList& argIn, int debugIn) const { + mprintf("Warning: If topology '%s' was not generated with the proper LJ 12-6-4 frcmod loaded\n" + "Warning: this will not be adding the correct C coefficients!\n", parm.c_str()); + Cpptraj::Parm::LJ1264_Params lj1264; + if (lj1264.Init_LJ1264(argIn, debugIn, "")) return 1; + if (lj1264.AssignLJ1264(parm)) return 1; + return 0; +} + +/** Change the GB radii */ +int Exec_Change::ChangeGbRadii(Topology& parm, ArgList& argIn) const { + Cpptraj::Parm::GB_Params gbradii; + if (gbradii.Init_GB_Radii(argIn, Cpptraj::Parm::UNKNOWN_GB)) return 1; + if (gbradii.Assign_GB_Radii(parm)) return 1; + return 0; +} + // Exec_Change::ChangeSplitRes() int Exec_Change::ChangeSplitRes(Topology& topIn, ArgList& argIn) const @@ -319,16 +351,31 @@ const } // Exec_Change::ChangeAtomName() -int Exec_Change::ChangeAtomName(Topology& topIn, ArgList& argIn) +int Exec_Change::ChangeAtomName(Topology& topIn, ArgList& argIn, DataSetList const& dsl) const { - // Name to change to. - std::string name = argIn.GetStringKey("to"); - if (name.empty()) { - mprinterr("Error: Specify atom name to change to ('to <name>').\n"); - return 1; + // Get Name/Names to change to. + // Name map set. + DataSet_NameMap* namemap = 0; + std::string name = argIn.GetStringKey("namemap"); + if (!name.empty()) { + DataSet* ds = dsl.FindSetOfType(name, DataSet::NAMEMAP); + if (ds == 0) { + mprinterr("Error: No name map set with name '%s' found.\n", name.c_str()); + return 1; + } + namemap = static_cast<DataSet_NameMap*>( ds ); + } + // Single name + NameType aname; + if (namemap == 0) { + name = argIn.GetStringKey("to"); + if (name.empty()) { + mprinterr("Error: Specify atom name to change to ('to <name>').\n"); + return 1; + } + aname = NameType( name ); } - NameType aname( name ); // Atoms to change std::string mexpr = argIn.GetStringKey("from"); if (mexpr.empty()) { @@ -342,10 +389,23 @@ const mprintf("Warning: No atoms selected by mask.\n"); return 1; } - for (AtomMask::const_iterator it = mask.begin(); it != mask.end(); ++it) - { - mprintf("\tChanging atom %s to %s\n", topIn[*it].c_str(), *aname); - topIn.SetAtom(*it).SetName( aname ); + if (namemap == 0) { + // Change to a single name + for (AtomMask::const_iterator it = mask.begin(); it != mask.end(); ++it) + { + mprintf("\tChanging atom %s to %s\n", topIn[*it].c_str(), *aname); + topIn.SetAtom(*it).SetName( aname ); + } + } else { + // Use a name map + for (AtomMask::const_iterator it = mask.begin(); it != mask.end(); ++it) + { + bool nameMatch = namemap->GetName(aname, topIn[*it].Name()); + if (nameMatch) { + mprintf("\tChanging atom %s to %s\n", topIn[*it].c_str(), *aname); + topIn.SetAtom(*it).SetName( aname ); + } + } } return 0; } @@ -376,7 +436,7 @@ int Exec_Change::FindBondTypeIdx(Topology const& topIn, BondArray const& bonds, TypeNameHolder thisType(2); thisType.AddName( topIn[bnd->A1()].Type() ); thisType.AddName( topIn[bnd->A2()].Type() ); - if (thisType == tgtType) { + if (thisType.Match_NoWC( tgtType )) { bidx = bnd->Idx(); break; } diff --git a/src/Exec_Change.h b/src/Exec_Change.h index 6236e64748..858531ce26 100644 --- a/src/Exec_Change.h +++ b/src/Exec_Change.h @@ -14,12 +14,14 @@ class Exec_Change : public Exec { /// Change mass or charge static inline void changeTopVal(Topology&, int, ChangeType, double); + int ChangeLJ1264(Topology&, ArgList&, int) const; + int ChangeGbRadii(Topology&, ArgList&) const; int ChangeSplitRes(Topology&, ArgList&) const; int ChangeResidueName(Topology&, ArgList&) const; int ChangeOresNums(Topology&, ArgList&) const; int ChangeIcodes(Topology&, ArgList&) const; int ChangeChainID(Topology&, ArgList&) const; - int ChangeAtomName(Topology&, ArgList&) const; + int ChangeAtomName(Topology&, ArgList&, DataSetList const&) const; static inline int Setup1atomMask(AtomMask&, Topology const&, std::string const&); static inline int FindBondTypeIdx(Topology const&, BondArray const&, TypeNameHolder const&); int AddBond(Topology&, ArgList&) const; diff --git a/src/Exec_CombineCoords.cpp b/src/Exec_CombineCoords.cpp index 542ebc39d8..65df7f1e7c 100644 --- a/src/Exec_CombineCoords.cpp +++ b/src/Exec_CombineCoords.cpp @@ -3,7 +3,8 @@ #include "CpptrajStdio.h" void Exec_CombineCoords::Help() const { - mprintf("\t<crd1> <crd2> ... [parmname <topname>] [crdname <crdname>] [nobox]\n" + mprintf("\t<crd1> <crd2> ... [parmname <topname>] [crdname <crdname>]\n" + "\t[nobox] [verbose]\n" " Combine two or more COORDS data sets.\n"); } @@ -18,6 +19,7 @@ Exec::RetType Exec_CombineCoords::Execute(CpptrajState& State, ArgList& argIn) { std::string parmname = argIn.GetStringKey("parmname"); std::string crdname = argIn.GetStringKey("crdname"); bool nobox = argIn.hasKey("nobox"); + int verbose = argIn.getKeyInt("verbose", 0); // Get COORDS DataSets. std::vector<DataSet_Coords*> CRD; std::string setname = argIn.GetStringNext(); @@ -30,8 +32,8 @@ Exec::RetType Exec_CombineCoords::Execute(CpptrajState& State, ArgList& argIn) { setname = argIn.GetStringNext(); } if (CRD.size() < 2) { - mprinterr("Error: %s: Must specify at least 2 COORDS data sets\n", argIn.Command()); - return CpptrajState::ERR; + mprintf("Warning: %s: Less than 2 COORDS data sets specified.\n", argIn.Command()); + //return CpptrajState::ERR; } mprintf("\tCombining %zu sets:", CRD.size()); for (std::vector<DataSet_Coords*>::const_iterator it = CRD.begin(); it != CRD.end(); ++it) @@ -39,10 +41,17 @@ Exec::RetType Exec_CombineCoords::Execute(CpptrajState& State, ArgList& argIn) { mprintf("\n"); // Only add the topology to the list if parmname specified bool addTop = true; - Topology CombinedTop; + Topology CombinedTop; // FIXME should the initial append just be a straight copy? CombinedTop.SetDebug( State.Debug() ); if (parmname.empty()) { - parmname = CRD[0]->Top().ParmName() + "_" + CRD[1]->Top().ParmName(); + for (std::vector<DataSet_Coords*>::const_iterator it = CRD.begin(); + it != CRD.end(); ++it) + { + if (it == CRD.begin()) + parmname = CRD[0]->Top().ParmName(); + else + parmname.append( "_" + CRD[1]->Top().ParmName() ); + } addTop = false; } CombinedTop.SetParmName( parmname, FileName() ); @@ -52,9 +61,11 @@ Exec::RetType Exec_CombineCoords::Execute(CpptrajState& State, ArgList& argIn) { if (nobox) boxStatus = INVALID; Box combinedBox; size_t minSize = CRD[0]->Size(); + CombinedTop.SetDebug( State.Debug() ); for (unsigned int setnum = 0; setnum != CRD.size(); ++setnum) { if (CRD[setnum]->Size() < minSize) minSize = CRD[setnum]->Size(); + // Box if (CRD[setnum]->CoordsInfo().HasBox()) { if (boxStatus == NOT_SET) { combinedBox = CRD[setnum]->CoordsInfo().TrajBox(); @@ -70,7 +81,8 @@ Exec::RetType Exec_CombineCoords::Execute(CpptrajState& State, ArgList& argIn) { } } } - CombinedTop.AppendTop( CRD[setnum]->Top() ); + // Append. Do not reduce bond/angle params TODO should they be reduced? + CombinedTop.AppendTop( CRD[setnum]->Top(), verbose, false, false ); } CombinedTop.SetParmBox( combinedBox ); CombinedTop.Brief("Combined parm:"); diff --git a/src/Exec_CompareEnergy.cpp b/src/Exec_CompareEnergy.cpp index 5040fb092f..8828194159 100644 --- a/src/Exec_CompareEnergy.cpp +++ b/src/Exec_CompareEnergy.cpp @@ -146,8 +146,8 @@ const Eresults Ebond(bondDeltaE_, bondDeltaR_); CalcEnergy<BondType, BondParmType>(Ebond, bondout_, - frame0, commonBonds0_, top0.BondParm(), - frame1, commonBonds1_, top1.BondParm(), + frame0, commonBonds0_.Array(), top0.BondParm().Array(), + frame1, commonBonds1_.Array(), top1.BondParm().Array(), bondNames_, EBONDFXN); Ebond.Print( bondout_, "Bond" ); } @@ -234,8 +234,8 @@ const Eresults Eangle(angleDeltaE_, angleDeltaR_); CalcEnergy<AngleType, AngleParmType>(Eangle, angleout_, - frame0, commonAngles0_, top0.AngleParm(), - frame1, commonAngles1_, top1.AngleParm(), + frame0, commonAngles0_.Array(), top0.AngleParm().Array(), + frame1, commonAngles1_.Array(), top1.AngleParm().Array(), angleNames_, EANGFXN); Eangle.Print( angleout_, "Angle" ); } @@ -324,8 +324,8 @@ const Eresults Edihedral(dihedralDeltaE_, dihedralDeltaR_); CalcEnergy<DihedralType, DihedralParmType>(Edihedral, dihedralout_, - frame0, commonDihedrals0_, top0.DihedralParm(), - frame1, commonDihedrals1_, top1.DihedralParm(), + frame0, commonDihedrals0_.Array(), top0.DihedralParm().Array(), + frame1, commonDihedrals1_.Array(), top1.DihedralParm().Array(), dihedralNames_, EDIHFXN); Edihedral.Print( dihedralout_, "Dihedral" ); } diff --git a/src/Exec_CompareTop.cpp b/src/Exec_CompareTop.cpp index 897a2e10f7..7eabd6eb07 100644 --- a/src/Exec_CompareTop.cpp +++ b/src/Exec_CompareTop.cpp @@ -496,7 +496,7 @@ Exec::RetType Exec_CompareTop::Execute(CpptrajState& State, ArgList& argIn) // Bond parameters output.Printf("# Bond Parameters\n"); Diff<BondParmType> diff_bndP; - diff_bndP.Compare( p1.BondParm(), p2.BondParm(), PrintBndP, output, p1, p2 ); + diff_bndP.Compare( p1.BondParm().Array(), p2.BondParm().Array(), PrintBndP, output, p1, p2 ); } if (cmp_ang) { // Angles @@ -512,7 +512,7 @@ Exec::RetType Exec_CompareTop::Execute(CpptrajState& State, ArgList& argIn) { output.Printf("# Angle Parameters\n"); Diff<AngleParmType> diff_angP; - diff_angP.Compare( p1.AngleParm(), p2.AngleParm(), PrintAngP, output, p1, p2 ); + diff_angP.Compare( p1.AngleParm().Array(), p2.AngleParm().Array(), PrintAngP, output, p1, p2 ); } } if (cmp_dih) { @@ -529,7 +529,7 @@ Exec::RetType Exec_CompareTop::Execute(CpptrajState& State, ArgList& argIn) { output.Printf("# Dihedral Parameters\n"); Diff<DihedralParmType> diff_dihP; - diff_dihP.Compare( p1.DihedralParm(), p2.DihedralParm(), PrintDihP, output, p1, p2 ); + diff_dihP.Compare( p1.DihedralParm().Array(), p2.DihedralParm().Array(), PrintDihP, output, p1, p2 ); } } output.CloseFile(); diff --git a/src/Exec_CrdAction.cpp b/src/Exec_CrdAction.cpp index 73e530a74f..94ced902f8 100644 --- a/src/Exec_CrdAction.cpp +++ b/src/Exec_CrdAction.cpp @@ -33,6 +33,7 @@ Exec::RetType Exec_CrdAction::DoCrdAction(CpptrajState& State, ArgList& actionar return CpptrajState::ERR; // If the topology was modified, we will need a new COORDS set. DataSet_Coords* crdOut = 0; + bool box_needs_update = false; if ( setup_ret == Action::MODIFY_TOPOLOGY ) { // This will not work for a TRJ set. switch ( CRD->Type() ) { @@ -47,6 +48,12 @@ Exec::RetType Exec_CrdAction::DoCrdAction(CpptrajState& State, ArgList& actionar if (frameCount.TotalReadFrames() != (int)CRD->Size()) mprintf("Info: crdaction: Previous size= %zu, new size is %i\n", CRD->Size(), frameCount.TotalReadFrames()); + // Note if we will have to update the coordinate info box data + if (originalSetup.CoordInfo().HasBox()) { + if (State.Debug() > 0) + mprintf("DEBUG: Need up update box info in COORDS set.\n"); + box_needs_update = true; + } // Set up set, copy original metadata crdOut->SetMeta( CRD->Meta() ); if (crdOut->CoordsSetup( originalSetup.Top(), originalSetup.CoordInfo() )) @@ -60,8 +67,9 @@ Exec::RetType Exec_CrdAction::DoCrdAction(CpptrajState& State, ArgList& actionar return CpptrajState::ERR; } } - + // Loop over all frames in COORDS. + Box updateBox; ProgressBar* progress = 0; if (State.ShowProgress()) progress = new ProgressBar( frameCount.TotalReadFrames() ); @@ -85,6 +93,8 @@ Exec::RetType Exec_CrdAction::DoCrdAction(CpptrajState& State, ArgList& actionar else CRD->SetCRD( frame, frm.Frm() ); } + if (frame == frameCount.Start() && box_needs_update) + updateBox = frm.Frm().BoxCrd(); } if (progress != 0) delete progress; # ifdef MPI @@ -96,7 +106,15 @@ Exec::RetType Exec_CrdAction::DoCrdAction(CpptrajState& State, ArgList& actionar CRD->legend(), actionargs.Command()); State.DSL().RemoveSet( CRD ); State.DSL().AddSet( crdOut ); - } + } + // Update CoordinateInfo box if needed + if (box_needs_update) { + crdOut->UpdateCoordsInfoBox( updateBox ); + mprintf("Info: crdaction: Box for '%s' was modified by action '%s'\n", + crdOut->legend(), actionargs.Command()); + if (State.Debug() > 0) + crdOut->CoordsInfo().TrajBox().PrintInfo(); + } act->Print(); State.MasterDataFileWrite(); total_time.Stop(); diff --git a/src/Exec_DataSetCmd.cpp b/src/Exec_DataSetCmd.cpp index 9d60c346f8..93778e6b48 100644 --- a/src/Exec_DataSetCmd.cpp +++ b/src/Exec_DataSetCmd.cpp @@ -385,6 +385,8 @@ Exec::RetType Exec_DataSetCmd::SetConnect(CpptrajState& State, ArgList& argIn) { mprinterr("Error: Neither head atom nor tail atom could be set via mask.\n"); return CpptrajState::ERR; } + if (head > -1) mprintf("\tHead atom# %i\n", head+1); + if (tail > -1) mprintf("\tTail atom# %i\n", tail+1); connect = AssociatedData_Connect(head, tail); } // Check for existing associated data diff --git a/src/Exec_Desc.cpp b/src/Exec_Desc.cpp new file mode 100644 index 0000000000..25ba06e56f --- /dev/null +++ b/src/Exec_Desc.cpp @@ -0,0 +1,100 @@ +#include "Exec_Desc.h" +#include "CpptrajStdio.h" + +/** CONSTRUCTOR */ +Exec_Desc::Exec_Desc() : Exec(PARM) { + SetHidden(true); +} + +int Exec_Desc::desc_atom(Topology const& topIn, int iat) { + Atom const& AT = topIn[iat]; + + const int bondorder = 1; // FIXME + mprintf("ATOM\n"); + mprintf("Name: %-5s\n", *(AT.Name())); + mprintf("Type: %-5s\n", *(AT.Type())); + mprintf("Charge: %6.4f\n", AT.Charge()); + mprintf("Polarization: %6.4f\n", 0.0); // FIXME + mprintf("Element: %-5s\n", AT.ElementName()); + if (AT.Nbonds() == 0) + mprintf(" NO BONDS\n"); + else { + for (Atom::bond_iterator bat = AT.bondbegin(); bat != AT.bondend(); ++bat) { + mprintf(" Bonded to %s by a", topIn.AtomMaskName(*bat).c_str()); + switch (bondorder) { + case 1 : mprintf(" single"); break; + case 2 : mprintf(" double"); break; + case 3 : mprintf(" triple"); break; + case 4 : mprintf(" n aromatic"); break; + default : mprintf(" ????"); break; + } + mprintf(" bond.\n"); + } + } + return 0; +} + + +// Exec_Desc::Help() +void Exec_Desc::Help() const +{ + mprintf("\t{%s | <COORDS set>} [<mask>]\n" + " Print selected atoms from topology/COORDS set in LEaP style format.\n", + DataSetList::TopIdxArgs); +} + +// Exec_Desc::Execute() +Exec::RetType Exec_Desc::Execute(CpptrajState& State, ArgList& argIn) +{ + ArgList originalArgs = argIn; + // Get Topology + Topology* parm = State.DSL().GetTopByIndex( argIn ); + if (parm == 0) { + // See if a COORDS set was specified + DataSetList sets = State.DSL().SelectGroupSets( originalArgs.GetStringNext(), DataSet::COORDINATES ); + DataSet_Coords* ds = 0; + if (sets.size() > 0) { + ds = (DataSet_Coords*)sets[0]; + if (sets.size() > 1) + mprintf("Warning: Multiple sets selected, only using %s\n", ds->legend()); + } + if (ds != 0) + parm = ds->TopPtr(); + argIn = originalArgs; + } + if (parm == 0) { + mprinterr("Error: No topologies loaded/COORDS sets found.\n"); + return CpptrajState::ERR; + } + mprintf("\tUsing topology: %s\n", parm->c_str()); + // Get output file + std::string outname = argIn.GetStringKey("out"); + CpptrajFile* outfile = State.DFL().AddCpptrajFile(outname, "Atom description", + DataFileList::TEXT, true); + if (outfile == 0) return CpptrajState::ERR; + mprintf("\tOutput to '%s'\n", outfile->Filename().full()); + // Get mask + std::string maskstr = argIn.GetMaskNext(); + AtomMask mask; + if (mask.SetMaskString(maskstr)) { + mprinterr("Error: Invalid atom mask: %s\n", maskstr.c_str()); + return CpptrajState::ERR; + } + + // Set up mask + if (parm->SetupIntegerMask( mask )) { + mprinterr("Error: Could not set up mask '%s'\n", mask.MaskString()); + return CpptrajState::ERR; + } + mask.MaskInfo(); + if (mask.None()) { + mprintf("Warning: '%s' selects no atoms.\n", mask.MaskString()); + return CpptrajState::OK; + } + + // Loop over atoms + for (AtomMask::const_iterator at = mask.begin(); at != mask.end(); ++at) + desc_atom( *parm, *at ); + + return CpptrajState::OK; +} diff --git a/src/Exec_Desc.h b/src/Exec_Desc.h new file mode 100644 index 0000000000..b698cf3758 --- /dev/null +++ b/src/Exec_Desc.h @@ -0,0 +1,14 @@ +#ifndef INC_EXEC_DESC_H +#define INC_EXEC_DESC_H +#include "Exec.h" +/// <Enter description of Exec_Desc here> +class Exec_Desc : public Exec { + public: + Exec_Desc(); + void Help() const; + DispatchObject* Alloc() const { return (DispatchObject*)new Exec_Desc(); } + RetType Execute(CpptrajState&, ArgList&); + private: + static int desc_atom(Topology const&, int); +}; +#endif diff --git a/src/Exec_Graft.cpp b/src/Exec_Graft.cpp index be97ea5c0c..7d9a43cac9 100644 --- a/src/Exec_Graft.cpp +++ b/src/Exec_Graft.cpp @@ -1,8 +1,12 @@ #include "Exec_Graft.h" +#include "AssociatedData_Connect.h" +#include "CharMask.h" #include "CpptrajStdio.h" #include "DataSet_Coords.h" #include "Structure/Builder.h" +#include "Structure/Zmatrix.h" #include <algorithm> // std::copy +#include <utility> // std::pair using namespace Cpptraj::Structure; @@ -10,8 +14,15 @@ using namespace Cpptraj::Structure; Exec_Graft::Exec_Graft() : Exec(COORDS), debug_(0), + verbose_(0), newMol0Top_(0), - newMol1Top_(0) + newMol1Top_(0), + hasOrient0_(false), + hasOrient1_(false), +// orient0_(0), +// orient1_(0), + chi0_(0), + chi1_(0) {} /** DESTRUCTOR */ @@ -79,12 +90,31 @@ int Exec_Graft::select_bond_idx(std::string const& bond0maskstr, Topology const& return bondmask0[0]; } +/** Get connect atoms from associated data */ +Exec_Graft::Iarray Exec_Graft::getConnectAtoms( AssociatedData* ad ) +{ + if (ad == 0) return Iarray(); + AssociatedData_Connect const& CONN = static_cast<AssociatedData_Connect const&>( *ad ); + return CONN.Connect(); +} + +/** Print connect atoms to stdout */ +void Exec_Graft::print_connect(const char* desc, Iarray const& connect, Topology const& top) +{ + if (connect.empty()) return; + mprintf("\t %s :", desc); + for (Iarray::const_iterator it = connect.begin(); it != connect.end(); ++it) + if (*it > -1) + mprintf(" %s", top.AtomMaskName(*it).c_str()); + mprintf("\n"); +} + // Exec_Graft::Help() void Exec_Graft::Help() const { mprintf("\tsrc <source COORDS> [srcframe <#>] [srcmask <mask> [srccharge <charge>]]\n" "\ttgt <target COORDS> [tgtframe <#>] [tgtmask <mask> [tgtcharge <charge>]]\n" - "\t{ic | [srcfitmask <mask>] [tgtfitmask <mask>]}\n" + "\t{ic | [srcfitmask <mask>] [tgtfitmask <mask>]} [verbose]\n" "\tname <output COORDS> [bond <tgt>,<src> ...]\n" " Graft coordinates from source to coordinates in target.\n" " If 'ic' is specified use internal coordinates to link the coordinates,\n" @@ -97,15 +127,20 @@ Exec::RetType Exec_Graft::Execute(CpptrajState& State, ArgList& argIn) { debug_ = State.Debug(); bool use_ic = argIn.hasKey("ic"); + verbose_ = argIn.getKeyInt("verbose", 0); // Source (1, fragment) Frame mol1frm; DataSet_Coords* mol1crd = get_crd(argIn, State.DSL(), "src", "Source COORDS", mol1frm, "srcframe"); if (mol1crd == 0) return CpptrajState::ERR; + AssociatedData* ad1 = mol1crd->GetAssociatedData(AssociatedData::CONNECT); + Iarray connect1 = getConnectAtoms( ad1 ); // Target (0, base) Frame mol0frm; DataSet_Coords* mol0crd = get_crd(argIn, State.DSL(), "tgt", "Target COORDS", mol0frm, "tgtframe"); if (mol0crd == 0) return CpptrajState::ERR; + AssociatedData* ad0 = mol0crd->GetAssociatedData(AssociatedData::CONNECT); + Iarray connect0 = getConnectAtoms( ad0 ); // Create output coords std::string kw = argIn.GetStringKey("name"); @@ -181,7 +216,9 @@ Exec::RetType Exec_Graft::Execute(CpptrajState& State, ArgList& argIn) // Info mprintf("\tSource coords : %s\n", mol1crd->legend()); + print_connect("Source connect atoms", connect1, mol1crd->Top()); mprintf("\tTarget coords : %s\n", mol0crd->legend()); + print_connect("Target connect atoms", connect0, mol0crd->Top()); mprintf("\tOutput coords : %s\n", outCoords->legend()); mprintf("\tSource mask :"); mol1Mask.BriefMaskInfo(); @@ -222,6 +259,42 @@ Exec::RetType Exec_Graft::Execute(CpptrajState& State, ArgList& argIn) mol1frm.Trans_Rot_Trans( Trans, Rot, refTrans ); } + if (use_ic) { + if (bond0ArgStrings.empty()) { + // Do we have connect atoms? + if (!connect0.empty() && !connect1.empty()) { + // We have connect atoms. + int tail0 = -1; + int tail1 = -1; + int head0 = connect0[0]; + int head1 = connect1[0]; + if (connect0.size() > 1) tail0 = connect0[1]; + if (connect1.size() > 1) tail1 = connect1[1]; + // If we only have one of each that is easy + if (head0 != -1 && tail0 == -1 && head1 == -1 && tail1 != -1) { + // Head0, tail1 + bond0ArgStrings.push_back( mol0crd->Top().AtomMaskName(head0) ); + bond1ArgStrings.push_back( mol1crd->Top().AtomMaskName(tail1) ); + } else if (head0 == -1 && tail0 != -1 && head1 != -1 && tail1 == -1) { + // Head1, tail0 + bond0ArgStrings.push_back( mol0crd->Top().AtomMaskName(tail0) ); + bond1ArgStrings.push_back( mol1crd->Top().AtomMaskName(head1) ); + } else if (head0 != -1 && tail0 != -1 && head1 != -1 && tail1 != -1) { + // Default head of source (1) to tail of target (0) + bond0ArgStrings.push_back( mol0crd->Top().AtomMaskName(tail0) ); + bond1ArgStrings.push_back( mol1crd->Top().AtomMaskName(head1) ); + } else { + mprinterr("Error: No bonds specified and not enough CONNECT atoms:\n"); + mprinterr("Error: head0 %i tail0 %i head1 %i tail1 %i\n", head0+1, tail0+1, head1+1, tail1+1); + return CpptrajState::ERR; + } + } + } + // Get internals for both topologies before they are modified. + get_original_orientations(mol0crd->Top(), mol0frm, mol1crd->Top(), mol1frm, + mol0Mask, mol1Mask, bond0ArgStrings, bond1ArgStrings); + } + // Modify the target (mol0) topology if (newMol0Top_ != 0) delete newMol0Top_; newMol0Top_ = 0; @@ -269,6 +342,74 @@ Exec::RetType Exec_Graft::Execute(CpptrajState& State, ArgList& argIn) return CpptrajState::OK; } +/** Get internals for molecules before modification. */ +int Exec_Graft::get_original_orientations(Topology const& mol0Top, Frame const& mol0frm, + Topology const& mol1Top, Frame const& mol1frm, + AtomMask const& mol0mask, AtomMask const& mol1mask, + Sarray const& bond0Atoms, Sarray const& bond1Atoms) +{ + // Get bonding atom masks + if (bond0Atoms.size() != 1 || bond1Atoms.size() != 1) { + mprinterr("Error: Graft with internal coordinates only works with 1 bond.\n"); + return 1; + } + std::string const& tgtbondmask = bond0Atoms[0]; + std::string const& srcbondmask = bond1Atoms[0]; + + // Select bond atom indices + int bondat0 = select_bond_idx(tgtbondmask, mol0Top); + if (bondat0 < 0) { + mprinterr("Error: Could not select target bond atom '%s'\n", tgtbondmask.c_str()); + return 1; + } + int bondat1 = select_bond_idx(srcbondmask, mol1Top); + if (bondat1 < 0) { + mprinterr("Error: Could not select source bond atom '%s'\n", srcbondmask.c_str()); + return 1; + } + + // Will an atom bonded to this atom disappear? +// orient0_ = 0.0; + Atom const& At0 = mol0Top[bondat0]; + CharMask cmask0( mol0mask.ConvertToCharMask(), mol0mask.Nselected() ); + int vanish0idx = -1; + for (Atom::bond_iterator bat = At0.bondbegin(); bat != At0.bondend(); ++bat) { + if (!cmask0.AtomInCharMask( *bat )) { // TODO check multiple disappearing atoms + if (debug_ > 0) + mprintf("DEBUG: Atom0 %s will vanish.\n", mol0Top.AtomMaskName(*bat).c_str()); + if (vanish0idx == -1) vanish0idx = *bat; + } + } + if (vanish0idx != -1) { + hasOrient0_ = true; + chi0_ = Builder::DetermineChiralityAroundAtom(bondat0, mol0frm, mol0Top); + if (debug_ > 0) + mprintf("DEBUG: Chirality around %s is %f\n", mol0Top.LeapName(bondat0).c_str(), chi0_); +// orient0_ = Builder::CalculateOrientationAroundAtom(bondat0, vanish0idx, mol0frm, mol0Top); + } + +// orient1_ = 0.0; + Atom const& At1 = mol1Top[bondat1]; + CharMask cmask1( mol1mask.ConvertToCharMask(), mol1mask.Nselected() ); + int vanish1idx = -1; + for (Atom::bond_iterator bat = At1.bondbegin(); bat != At1.bondend(); ++bat) { + if (!cmask1.AtomInCharMask( *bat )) { // TODO check multiple disappearing atoms + if (debug_ > 0) + mprintf("DEBUG: Atom1 %s will vanish.\n", mol1Top.AtomMaskName(*bat).c_str()); + if (vanish1idx == -1) vanish1idx = *bat; + } + } + if (vanish1idx != -1) { + hasOrient1_ = true; + chi1_ = Builder::DetermineChiralityAroundAtom(bondat1, mol1frm, mol1Top); + if (debug_ > 0) + mprintf("DEBUG: Chirality around %s is %f\n", mol1Top.LeapName(bondat1).c_str(), chi1_); +// orient1_ = Builder::CalculateOrientationAroundAtom(bondat1, vanish1idx, mol1frm, mol1Top); + } + + return 0; +} + /** Graft using internal coordinates to build the final structure. */ int Exec_Graft::graft_ic(DataSet_Coords* outCoords, @@ -297,28 +438,143 @@ const return 1; } + if (debug_ > 0) { + for (int at = 0; at != mol0Top.Natom(); at++) + mprintf("\t%6i %s %s\n", at+1, mol0Top.AtomMaskName(at).c_str(), *(mol0Top.Res(mol0Top[at].ResNum()).Name())); + mprintf("BOND ATOM 0 %i\n", bondat0+1); + for (int at = 0; at != mol1Top.Natom(); at++) + mprintf("\t%6i %s %s\n", at+1, mol1Top.AtomMaskName(at).c_str(), *(mol1Top.Res(mol1Top[at].ResNum()).Name())); + mprintf("BOND ATOM 1 %i\n", bondat1+1); + } + // Combine topologies. - Topology combinedTop; - combinedTop.SetDebug( debug_ ); - combinedTop.SetParmName( outCoords->Meta().Name(), FileName() ); - combinedTop.AppendTop( mol0Top ); - combinedTop.SetParmBox( mol0frm.BoxCrd() ); + Topology topOut; + Frame frameOut; + int total_natom = mol0Top.Natom() + mol1Top.Natom(); + frameOut.SetupFrame( total_natom ); + // Clear frame so that AddXYZ can be used + frameOut.ClearAtoms(); + // hasPosition - for each atom in topOut, status on whether atom in frameOut needs building + Cpptraj::Structure::Zmatrix::Barray hasPosition; + hasPosition.reserve( total_natom ); + // For saving intra-res bonds + typedef std::pair<int,int> Ipair; + typedef std::vector<Ipair> IParray; + IParray intraResBonds; + // Add mol0 atoms to topology + topOut.SetDebug( debug_ ); + topOut.SetParmName( outCoords->Meta().Name(), FileName() ); + topOut.SetParmBox( mol0frm.BoxCrd() ); + for (int at = 0; at < mol0Top.Natom(); at++) { + Atom sourceAtom = mol0Top[at]; + // Save the intra-residue bonds. + for (Atom::bond_iterator bat = sourceAtom.bondbegin(); bat != sourceAtom.bondend(); ++bat) { + if (*bat > at) { + if (debug_ > 1) + mprintf("Will add bond between %i and %i\n", at+1, *bat+1); + intraResBonds.push_back( Ipair(at, *bat) ); + } + } + sourceAtom.ClearBonds(); // FIXME AddTopAtom should clear bonds + topOut.AddTopAtom( sourceAtom, mol0Top.Res(mol0Top[at].ResNum()) ); + frameOut.AddVec3( Vec3(mol0frm.XYZ(at)) ); + hasPosition.push_back( true ); + } + // Add mol1 atoms + int atomOffset = mol0Top.Natom(); + int resOffset = topOut.Nres(); if (debug_ > 0) - combinedTop.Brief("Grafted parm:"); - - Frame CombinedFrame = mol0frm; - Builder builder; - builder.SetDebug( debug_ ); - if (builder.Combine( combinedTop, CombinedFrame, mol1Top, mol1frm, bondat0, bondat1 )) { - mprinterr("Error: Fragment combine failed.\n"); + mprintf("DEBUG: Atom offset is %i\n", atomOffset); + for (int itgt = 0; itgt < mol1Top.Natom(); itgt++) { + Atom sourceAtom = mol1Top[itgt]; + Residue currentRes = mol1Top.Res(sourceAtom.ResNum()); + currentRes.SetOriginalNum( currentRes.OriginalResNum() + resOffset ); + // Save the intra-residue bonds. + int at0 = itgt + atomOffset; + for (Atom::bond_iterator bat = sourceAtom.bondbegin(); bat != sourceAtom.bondend(); ++bat) { + int at1 = *bat + atomOffset; + if (at1 > at0) { + if (debug_ > 1) + mprintf("Will add bond between %i and %i (original %i and %i)\n", at0+1, at1+1, itgt+1, *bat + 1); + intraResBonds.push_back( Ipair(at0, at1) ); + } + } + sourceAtom.ClearBonds(); // FIXME AddTopAtom should clear bonds + topOut.AddTopAtom( sourceAtom, currentRes ); + frameOut.AddVec3( Vec3(mol1frm.XYZ(itgt)) ); + hasPosition.push_back( false ); + } + //Add intra-residue bonds + for (IParray::const_iterator it = intraResBonds.begin(); it != intraResBonds.end(); ++it) + { + //mprintf("DEBUG: Intra-res bond: Res %s atom %s to res %s atom %s\n", + // topOut.TruncResNameOnumId(topOut[it->first].ResNum()).c_str(), *(topOut[it->first].Name()), + // topOut.TruncResNameOnumId(topOut[it->second].ResNum()).c_str(), *(topOut[it->second].Name())); + topOut.AddBond(it->first, it->second); + } + // DEBUG + //for (int at = 0; at != topOut.Natom(); at++) + // mprintf("\t%6i %s %s\n", at+1, topOut.AtomMaskName(at).c_str(), *(topOut.Res(topOut[at].ResNum()).Name())); + // Build + Cpptraj::Structure::Builder structureBuilder; + structureBuilder.SetDebug( debug_ ); + if (structureBuilder.GenerateInternals( mol1frm, mol1Top, + std::vector<bool>(mol1Top.Natom(), true) )) + { + mprinterr("Error: Generate internals for %s failed.\n", mol1Top.c_str()); + return 1; + } + structureBuilder.UpdateIndicesWithOffset( atomOffset ); + // Connect unit. Head atom of second unit comes first to match LEaP. + mprintf("\tConnect %s (%i) and %s (%i, original %s and %s)\n", + topOut.AtomMaskName(bondat1+atomOffset).c_str(), bondat1+atomOffset+1, + topOut.AtomMaskName(bondat0).c_str(), bondat0+1, + mol1Top.AtomMaskName(bondat1).c_str(), + mol0Top.AtomMaskName(bondat0).c_str()); + topOut.AddBond( bondat1 + atomOffset, bondat0 ); + // Set any saved orientations + if (hasOrient0_) + structureBuilder.SetAtomChirality(bondat0, chi0_); + if (hasOrient1_) + structureBuilder.SetAtomChirality(bondat1 + atomOffset, chi1_); + // Generate internals around the link + if (structureBuilder.GenerateInternalsAroundLink(bondat1 + atomOffset, bondat0, + frameOut, topOut, hasPosition, + Cpptraj::Structure::Builder::SEQUENCE) ) + { + mprinterr("Error: Assign torsions around graft bond atoms %s - %s failed.\n", + topOut.AtomMaskName(bondat1 + atomOffset).c_str(), + topOut.AtomMaskName(bondat0).c_str()); + return 1; + } + // Adjust torsions around link so that longest 'path' is trans + if (structureBuilder.AdjustIcAroundLink(bondat0, bondat1 + atomOffset, frameOut, topOut)) + { + mprinterr("Error: Failed to adjust internal coords around the link.\n"); + return 1; + } + // Update internal coords from known positions + // NOTE: By definition, there are no known positions + //if (structureBuilder.UpdateICsFromFrame( frameOut, topOut, hasPosition )) { + // mprinterr("Error: Failed to update Zmatrix with values from existing positions.\n"); + // return 1; + //} + // Convert to Zmatrix and assign missing atom positions + if (structureBuilder.BuildSequenceFromInternals(frameOut, topOut, hasPosition, + bondat1 + atomOffset, + bondat0)) + { + mprinterr("Error: Grafting %s with %s build from internals failed.\n", + mol0Top.c_str(), mol1Top.c_str()); return 1; } - // Add topology to output COORDS set - if (outCoords->CoordsSetup(combinedTop, CombinedFrame.CoordsInfo())) return 1; - - // Add frame to the output data set - outCoords->AddFrame( CombinedFrame ); + // Finalize topology - determine molecules, dont renumber residues + topOut.CommonSetup(true, false); + topOut.Summary(); + // Add to output data set + if (outCoords->CoordsSetup(topOut, frameOut.CoordsInfo())) return 1; + outCoords->AddFrame( frameOut ); return 0; } @@ -330,12 +586,12 @@ int Exec_Graft::graft_rms(DataSet_Coords* outCoords, Sarray const& bond0Atoms, Sarray const& bond1Atoms) const { - // Combine topologies. Use target box info. + // Combine topologies. Use target box info. Do not merge bond/angle params TODO should they be reduced? Topology combinedTop; combinedTop.SetDebug( debug_ ); combinedTop.SetParmName( outCoords->Meta().Name(), FileName() ); - combinedTop.AppendTop( mol0Top ); - combinedTop.AppendTop( mol1Top ); + combinedTop.AppendTop( mol0Top, verbose_, false, false ); + combinedTop.AppendTop( mol1Top, verbose_, false, false ); // Add any bonds for (unsigned int ii = 0; ii != bond0Atoms.size(); ii++) { diff --git a/src/Exec_Graft.h b/src/Exec_Graft.h index ea7443a609..1ae1a7da3d 100644 --- a/src/Exec_Graft.h +++ b/src/Exec_Graft.h @@ -12,6 +12,10 @@ class Exec_Graft : public Exec { private: typedef std::vector<int> Iarray; typedef std::vector<std::string> Sarray; + /// \return Array of connect atoms from associated data + static Iarray getConnectAtoms(AssociatedData*); + /// print connect atoms to stdout + static void print_connect(const char*, Iarray const&, Topology const&); /// Select bond index from expression in given topology static int select_bond_idx(std::string const&, Topology const&); /// Modify topology and frame according to mask expression @@ -23,8 +27,18 @@ class Exec_Graft : public Exec { /// Graft assuming structures have been rms fit int graft_rms(DataSet_Coords*, Topology const&, Frame const&, Topology const&, Frame const&, Sarray const&, Sarray const&) const; + int get_original_orientations(Topology const&, Frame const&, Topology const&, Frame const&, + AtomMask const&, AtomMask const&, + Sarray const&, Sarray const&); int debug_; + int verbose_; ///< Parameter assign verbosity Topology* newMol0Top_; ///< Hold target topology if modified. Topology* newMol1Top_; ///< Hold source topology if modified. + bool hasOrient0_; + bool hasOrient1_; +// double orient0_; ///< When using IC, record original orientation around bonding atom 0 +// double orient1_; ///< When using IC, record original orientation around bonding atom 1 + double chi0_; ///< When using IC, record original chirality around bonding atom 0 + double chi1_; ///< When using IC, record original chirality around bonding atom 1 }; #endif diff --git a/src/Exec_Mutate.cpp b/src/Exec_Mutate.cpp new file mode 100644 index 0000000000..c191259fab --- /dev/null +++ b/src/Exec_Mutate.cpp @@ -0,0 +1,202 @@ +#include "Exec_Mutate.h" +#include "CpptrajStdio.h" +#include "Structure/Creator.h" + +// Exec_Mutate::Help() +void Exec_Mutate::Help() const +{ + mprintf("\tcrdset <COORDS set> resmask <mask> [outset <output COORDS>]\n" + "\t[%s]\n" + "\t[{%s} ...]\n" + "\t[{%s} ...]\n", + Cpptraj::Structure::Creator::other_keywords_, + Cpptraj::Structure::Creator::template_keywords_, + Cpptraj::Structure::Creator::parm_keywords_); +} + +// Exec_Mutate::Execute() +Exec::RetType Exec_Mutate::Execute(CpptrajState& State, ArgList& argIn) +{ + debug_ = State.Debug(); + Cpptraj::Structure::Creator creator( debug_ ); + if (creator.InitCreator(argIn, State.DSL(), debug_)) { + return CpptrajState::ERR; + } + if (!creator.HasTemplates()) { + mprinterr("Error: No residue templates loaded.\n"); + } + + std::string setname = argIn.GetStringKey("crdset"); + if (setname.empty()) { + mprinterr("Error: Specify COORDS dataset name with 'crdset'.\n"); + return CpptrajState::ERR; + } + DataSet_Coords* CRD = (DataSet_Coords*)State.DSL().FindSetOfGroup( setname, DataSet::COORDINATES ); + if (CRD == 0) { + mprinterr("Error: No COORDS set with name %s found.\n", setname.c_str()); + return CpptrajState::ERR; + } + mprintf("\tUsing set '%s'\n", CRD->legend()); + + bool modify_input_coords = true; + DataSet_Coords* OUT = 0; + std::string outset = argIn.GetStringKey("outset"); + if (!outset.empty()) { + OUT = (DataSet_Coords*)State.DSL().AddSet( DataSet::COORDS, outset ); + if (OUT == 0) { + mprinterr("Error: Could not allocate output set '%s'\n", outset.c_str()); + return CpptrajState::ERR; + } + modify_input_coords = false; + mprintf("\tOutput set: %s\n", OUT->legend()); + } else { + // Modifying input COORDS set + if (State.DSL().PopSet( CRD ) == 0) { + mprinterr("Internal Error: Exec_Mutate::Execute: Could not pop input COORDS set off master DataSetList()\n"); + return CpptrajState::ERR; + } + OUT = (DataSet_Coords*)State.DSL().AddSet( DataSet::COORDS, CRD->Meta() ); + mprintf("\tWill modify COORDS set %s\n", CRD->legend()); + } + + CpptrajState::RetType ret = doMutate( State, argIn, CRD, OUT, creator ); + + if (modify_input_coords && CRD != 0) delete CRD; + + return ret; +} + +/** Actually do the mutation(s) */ +CpptrajState::RetType Exec_Mutate::doMutate(CpptrajState& State, ArgList& argIn, DataSet_Coords* CRD, DataSet_Coords* OUT, + Cpptraj::Structure::Creator const& creator) +const +{ + + std::string resmask = argIn.GetStringKey("resmask"); + if (resmask.empty()) { + mprinterr("Error: Specify mask of residues to mutate with 'resmask'\n"); + return CpptrajState::ERR; + } + + std::string templateName = argIn.GetStringKey("to"); + if (templateName.empty()) { + mprinterr("Error: Specify template name to mutate to with 'to'\n"); + return CpptrajState::ERR; + } + DataSet_Coords* UNIT = creator.IdTemplateFromName( templateName ); + if (UNIT == 0) { + mprinterr("Error: Could not get template for '%s'\n", templateName.c_str()); + return CpptrajState::ERR; + } + mprintf("\tMutate residues selected by '%s' to '%s'\n", resmask.c_str(), UNIT->legend()); + + AtomMask mask; + if (mask.SetMaskString( resmask )) { + mprinterr("Error: Could not set mask '%s'\n", resmask.c_str()); + return CpptrajState::ERR; + } + if (CRD->Top().SetupIntegerMask( mask )) { + mprinterr("Error: Could not setup mask '%s'\n", mask.MaskString()); + return CpptrajState::ERR; + } + if (mask.None()) { + mprinterr("Error: Nothing selected by mask '%s'\n", mask.MaskString()); + return CpptrajState::ERR; + } + //mask.MaskInfo(); + std::vector<int> resnums = CRD->Top().ResnumsSelectedBy( mask ); + mprintf("\t%zu residues selected by '%s'\n", resnums.size(), mask.MaskString()); + + AtomMask toKeep; + toKeep.SetNatoms( CRD->Top().Natom() ); + std::vector<NameType> SourceAtomNames; + SourceAtomNames.resize( CRD->Top().Natom() ); + std::vector<int>::const_iterator rnum = resnums.begin(); + for (int ires = 0; ires != CRD->Top().Nres(); ires++) + { + // Is this a selected res? + if (rnum != resnums.end() && ires == *rnum) { + // Selected res. Keep only atoms present in template + ++rnum; + int nTgtAtomsMissing = 0; + std::vector<int> templateToRes = creator.MapAtomsToTemplate( CRD->Top(), ires, UNIT, SourceAtomNames, nTgtAtomsMissing ); + //if (debug_ > 1) { + mprintf("\tResidue %i Atom map:\n", ires + 1); + // DEBUG - print map + for (int iref = 0; iref != UNIT->Top().Natom(); iref++) { + mprintf("\t\t%6i %6s =>", iref+1, *(UNIT->Top()[iref].Name())); + if (templateToRes[iref] == -1) + mprintf(" No match\n"); + else + mprintf(" %6i %6s\n", templateToRes[iref]+1, *(CRD->Top()[templateToRes[iref]].Name())); + } + //} + // For each template atom, only keep what was mapped + for (int iref = 0; iref != UNIT->Top().Natom(); iref++) + if (templateToRes[iref] > -1) + toKeep.AddSelectedAtom( templateToRes[iref] ); + } else { + // Not a selected res. Keep all atoms + Residue const& currentRes = CRD->Top().Res( ires ); + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); ++at) + toKeep.AddSelectedAtom( at ); + } + } + +/* + for (std::vector<int>::const_iterator rnum = resnums.begin(); rnum != resnums.end(); ++rnum) + { + Residue const& currentRes = CRD->Top().Res( *rnum ); + int atomsToRemove = 0; + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); at++) + { + // Does this atom exist in the template? + int idx = UNIT->Top().FindAtomInResidue(0, CRD->Top()[at].Name()); + if (idx < 0) { + toRemove.AddSelectedAtom( at ); + atomsToRemove++; + } + if (idx > -1) + mprintf("DEBUG: Found atom %s in template.\n", CRD->Top().AtomMaskName(at).c_str()); + else + mprintf("DEBUG: Atom %s not in template.\n", CRD->Top().AtomMaskName(at).c_str()); + } + mprintf("DEBUG: Removing %i atoms from residue %i\n", atomsToRemove, *rnum + 1 ); + if (currentRes.NumAtoms() - atomsToRemove < 1) { + mprinterr("Error: Number of atoms to remove %i >= number of atoms in residue %s (%i)\n", + atomsToRemove, CRD->Top().TruncResNameNum(*rnum).c_str(), currentRes.NumAtoms()); + return CpptrajState::ERR; + } + } + toRemove.InvertMask(); + Topology* newTop = CRD->Top().modifyStateByMask( toRemove ); +*/ + Topology* newTop = CRD->Top().modifyStateByMask( toKeep ); + if (newTop == 0) { + mprinterr("Error: Could not remove atoms from '%s'\n", CRD->legend()); + return CpptrajState::ERR; + } + newTop->Summary(); + // Change the residue names + for (std::vector<int>::const_iterator rnum = resnums.begin(); rnum != resnums.end(); ++rnum) + newTop->SetRes( *rnum ).SetName( templateName ); + + // Set up output coords + OUT->CoordsSetup( *newTop, CRD->CoordsInfo() ); + Frame newFrame; + newFrame.SetupFrameV(newTop->Atoms(), CRD->CoordsInfo()); + + // Strip all input coords frames + Frame inputFrame = CRD->AllocateFrame(); + for (unsigned int frm = 0; frm != CRD->Size(); ++frm) + { + CRD->GetFrame(frm, inputFrame); + + newFrame.SetFrame(inputFrame, toKeep); + OUT->AddFrame(newFrame); + } + + if (newTop != 0) delete newTop; + + return CpptrajState::OK; +} diff --git a/src/Exec_Mutate.h b/src/Exec_Mutate.h new file mode 100644 index 0000000000..5479b8c71e --- /dev/null +++ b/src/Exec_Mutate.h @@ -0,0 +1,21 @@ +#ifndef INC_EXEC_MUTATE_H +#define INC_EXEC_MUTATE_H +#include "Exec.h" +namespace Cpptraj { +namespace Structure { +class Creator; +} +} +/// <Enter description of Exec_Mutate here> +class Exec_Mutate : public Exec { + public: + Exec_Mutate() : Exec(COORDS) {} + void Help() const; + DispatchObject* Alloc() const { return (DispatchObject*)new Exec_Mutate(); } + RetType Execute(CpptrajState&, ArgList&); + private: + RetType doMutate(CpptrajState&, ArgList&, DataSet_Coords*, DataSet_Coords*, Cpptraj::Structure::Creator const&) const; + + int debug_; +}; +#endif diff --git a/src/Exec_PermuteDihedrals.cpp b/src/Exec_PermuteDihedrals.cpp index a99426f5e1..008fd56569 100644 --- a/src/Exec_PermuteDihedrals.cpp +++ b/src/Exec_PermuteDihedrals.cpp @@ -19,9 +19,11 @@ Exec_PermuteDihedrals::Exec_PermuteDihedrals() : Exec(COORDS), crdout_(0), check_for_clashes_(false), checkAllResidues_(false), + checkRings_(false), max_factor_(2), cutoff_(0.64), // 0.8^2 - rescutoff_(100.0), // 10.0^2 + //rescutoff_(100.0), // 10.0^2 + rescutoff_(225.0), // 15.0^2 backtrack_(5), increment_(1), max_increment_(360), @@ -31,11 +33,13 @@ Exec_PermuteDihedrals::Exec_PermuteDihedrals() : Exec(COORDS), // Exec_PermuteDihedrals::Help() void Exec_PermuteDihedrals::Help() const { mprintf("\tcrdset <COORDS set> resrange <range> [{interval | random}]\n" - "\t[outtraj <filename> [<outfmt>]] [crdout <output COORDS>] [<dihedral types>]\n" - " Options for 'random':\n" - "\t[rseed <rseed>] [out <# problems file> [<set name>]]\n" + "\t{[outtraj <filename> [<outfmt>]] [crdout <output COORDS>]} [<dihedral types>]\n"); + mprintf("\t[%s]\n", DihedralSearch::newTypeArgsHelp()); + mprintf(" Options for 'random':\n" + "\t[rseed <rseed>] [out <# problems file> [<set name>]] [noimage]\n" "\t[ check [cutoff <cutoff>] [rescutoff <rescutoff>] [maxfactor <max_factor>]\n" - "\t [backtrack <backtrack> [checkallresidues] [increment <increment>]] ]\n" + "\t [checkrings] [backtrack <backtrack> [checkallresidues]\n" + "\t [increment <increment>]] ]\n" " Options for 'interval':\n" "\t<interval deg>\n" " <dihedral types> = "); @@ -80,6 +84,8 @@ Exec::RetType Exec_PermuteDihedrals::Execute(CpptrajState& State, ArgList& argIn // Determine which angles to search for DihedralSearch dihSearch; dihSearch.SearchForArgs(argIn); + // Get custom dihedral arguments: dihtype <name>:<a0>:<a1>:<a2>:<a3>[:<offset>] + if (dihSearch.SearchForNewTypeArgs(argIn)) return CpptrajState::ERR; // If nothing is enabled, enable all dihSearch.SearchForAll(); mprintf("\tSearching for types:"); @@ -131,16 +137,18 @@ Exec::RetType Exec_PermuteDihedrals::Execute(CpptrajState& State, ArgList& argIn resCutoffDefault = 10.0; use_random2 = false; } else { - resCutoffDefault = 12.0; + resCutoffDefault = 15.0; use_random2 = true; } check_for_clashes_ = argIn.hasKey("check"); checkAllResidues_ = argIn.hasKey("checkallresidues"); + checkRings_ = argIn.hasKey("checkrings"); cutoff_ = argIn.getKeyDouble("cutoff",0.8); rescutoff_ = argIn.getKeyDouble("rescutoff", resCutoffDefault); increment_ = argIn.getKeyInt("increment",1); max_factor_ = argIn.getKeyDouble("maxfactor", 2); int iseed = argIn.getKeyInt("rseed",-1); + bool imageOn = !(argIn.hasKey("noimage")); // Output file for # of problems DataFile* problemFile = State.DFL().AddDataFile(argIn.GetStringKey("out"), argIn); // Dataset to store number of problems @@ -177,6 +185,8 @@ Exec::RetType Exec_PermuteDihedrals::Execute(CpptrajState& State, ArgList& argIn mprintf("\tRandom number generator will be seeded using %i\n",iseed); if (check_for_clashes_) { mprintf("\tWill attempt to recover from bad steric clashes.\n"); + if (checkRings_) + mprintf("\tChecking for bond/ring intersections.\n"); if (checkAllResidues_) mprintf("\tAll residues will be checked.\n"); else @@ -196,8 +206,11 @@ Exec::RetType Exec_PermuteDihedrals::Execute(CpptrajState& State, ArgList& argIn rescutoff_ *= rescutoff_; // Increment backtrack by 1 since we need to skip over current res ++backtrack_; - // Initialize CheckStructure - if (checkStructure_.SetOptions( false, false, false, State.Debug(), "*", "", 0.8, 1.15, 0.5, 4.0 )) { + // Initialize CheckStructure. The last 3 args being 0 means use defaults + // for the ring check. + if (checkStructure_.SetOptions( imageOn, checkRings_, false, State.Debug(), "*", "", 0.8, 1.15, 0.5, -1, + checkRings_, 0, 0, 0 )) + { mprinterr("Error: Could not set up structure check.\n"); return CpptrajState::ERR; } @@ -595,6 +608,51 @@ void Exec_PermuteDihedrals::RandomizeAngles(Frame& currentFrame, Topology const& mprintf("\tPerformed %u rotations for %zu dihedrals\n", number_of_rotations, BB_dihedrals_.size()); } +/** Count initial clashes in the structure. This is done to make sure + * new clashes arent introduced after a rotation. + */ +int Exec_PermuteDihedrals::countClashes(std::vector<int>& res_clashes, + Frame const& currentFrame, Topology const& topIn) +const +{ + int total_clashes = 0; + res_clashes.assign( topIn.Nres(), 0 ); + for (int res0 = 0; res0 != topIn.Nres(); res0++) + { + Residue const& R0 = topIn.Res(res0); + for (int res1 = res0 + 1; res1 != topIn.Nres(); res1++) + { + Residue const& R1 = topIn.Res(res1); + // Check if first atoms are anywhere near each other. + double r0r1_at0_dist2 = DIST2_NoImage( currentFrame.XYZ(R0.FirstAtom()), + currentFrame.XYZ(R1.FirstAtom()) ); + if (r0r1_at0_dist2 < rescutoff_) { + // Residues are within each others vicinity + for (int at0 = R0.FirstAtom(); at0 != R0.LastAtom(); at0++) + { + const double* xyz0 = currentFrame.XYZ(at0); + for (int at1 = R1.FirstAtom(); at1 != R1.LastAtom(); at1++) + { + const double* xyz1 = currentFrame.XYZ(at1); + double d2 = DIST2_NoImage( xyz0, xyz1 ); + if (d2 < cutoff_) { + if (debug_ > 0) { + mprintf("DEBUG: Initial clash: %s to %s (%g Ang)\n", + topIn.TruncResAtomNameNum(at0).c_str(), + topIn.TruncResAtomNameNum(at1).c_str(), sqrt(d2)); + } + total_clashes++; + res_clashes[res0]++; + res_clashes[res1]++; + } // END atom-atom distance within cutoff_ + } // END loop over R1 atoms + } // END loop over R0 atoms + } // END res-res distance wtihin rescutoff_ + } // END inner loop over residues + } // END outer loop over residues + return total_clashes; +} + // Exec_PermuteDihedrals::RandomizeAngles_2() /** This algorithm is a more straightforward one than RandomizeAngles(). * 1) Pick a random angle @@ -623,6 +681,19 @@ void Exec_PermuteDihedrals::RandomizeAngles_2(Frame& currentFrame, Topology cons mprintf("\tMax number of rotations to try each dihedral: %u\n", max_rotations); + // Get count of initial clashes + std::vector<int> initialResClashes; + if (check_for_clashes_) { + int total_clashes = countClashes( initialResClashes, currentFrame, topIn ); + mprintf("\t%i initial clashes:\n", total_clashes); + if (debug_ > 0) { + for (unsigned int ires = 0; ires != (unsigned int)topIn.Nres(); ires++) { + if (initialResClashes[ires] > 0) + mprintf("DEBUG:\t\t%s has %i initial clashes.\n", topIn.TruncResNameNum(ires).c_str(), initialResClashes[ires]); + } + } + } + // Loop over all dihedrals for (std::vector<PermuteDihedralsType>::const_iterator dih = BB_dihedrals_.begin(); dih != BB_dihedrals_.end(); @@ -661,15 +732,20 @@ void Exec_PermuteDihedrals::RandomizeAngles_2(Frame& currentFrame, Topology cons if (!check_for_clashes_) break; // If we have exceeded the max number of rotations bail out. if (number_of_rotations > max_rotations) { - mprintf("Warning: Max # of rotations has been exceeded for dihedral %li res %8i.\n", - dih - BB_dihedrals_.begin(), dih->resnum+1); + mprintf("Warning: Max # of rotations has been exceeded for dihedral %li res %s.\n", + dih - BB_dihedrals_.begin(), topIn.TruncResNameNum(dih->resnum).c_str()); break; } // Check resulting structure for issues. + std::vector<int> currentResClashes(topIn.Nres(), 0); + std::vector<bool> checkRingBonds; + if (checkRings_) checkRingBonds.assign(topIn.Nres(), false); bool clash = false; for (int res0 = 0; res0 != topIn.Nres(); res0++) { Residue const& R0 = topIn.Res(res0); + //int res1 = dih->resnum; + //if (res1 != res0) for (int res1 = res0 + 1; res1 != topIn.Nres(); res1++) { Residue const& R1 = topIn.Res(res1); @@ -685,22 +761,98 @@ void Exec_PermuteDihedrals::RandomizeAngles_2(Frame& currentFrame, Topology cons const double* xyz1 = currentFrame.XYZ(at1); double d2 = DIST2_NoImage( xyz0, xyz1 ); if (d2 < cutoff_) { -# ifdef DEBUG_PERMUTEDIHEDRALS - mprintf("DEBUG: Clash: %s to %s (%g Ang)\n", - topIn.TruncResAtomNameNum(at0).c_str(), - topIn.TruncResAtomNameNum(at1).c_str(), sqrt(d2)); -# endif - clash = true; - break; + if (debug_ > 0) { + mprintf("DEBUG: Clash: %s to %s (%g Ang)\n", + topIn.TruncResAtomNameNum(at0).c_str(), + topIn.TruncResAtomNameNum(at1).c_str(), sqrt(d2)); + } + if (currentResClashes[res0] == initialResClashes[res0]) + clash = true; + else + currentResClashes[res0]++; + if (currentResClashes[res1] == initialResClashes[res1]) + clash = true; + else + currentResClashes[res1]++; + if (clash) break; } } // END loop over residue 1 atoms if (clash) break; } // END loop over residue 0 atoms + if (checkRings_) { + // If either of these residues is the one belonging to the + // rotated dihedral, add bonds to check for ring intersection. + if (res0 == dih->resnum || res1 == dih->resnum) { + checkRingBonds[res0] = true; + checkRingBonds[res1] = true; + } + } } // END residues within cutoff of each other if (clash) break; } // END inner loop over residues if (clash) break; } // END outer loop over residues + // Check rings + if (checkRings_ && !clash) { + Cpptraj::Structure::RingFinder resRings; + Cpptraj::Structure::RingFinder otherRings; + // Select atoms in residues to search for rings + AtomMask resMask(std::vector<int>(), topIn.Natom()); + AtomMask otherMask(std::vector<int>(), topIn.Natom()); + //resRings.SetupRingFinder(topIn, resMask); + // Add ring bonds + std::vector<StructureCheck::Btype> resBonds; + std::vector<StructureCheck::Btype> otherBonds; + for (int idx = 0; idx != topIn.Nres(); idx++) + { + if (checkRingBonds[idx]) { + Residue const& ringRes = topIn.Res(idx); + // Add heavy atom bonds + for (int rat = ringRes.FirstAtom(); rat != ringRes.LastAtom(); rat++) { + Atom const& resAt = topIn[rat]; + if (resAt.Nbonds() > 1) { + if (idx == dih->resnum) + resMask.AddSelectedAtom( rat ); + else + otherMask.AddSelectedAtom( rat ); + } + for (Atom::bond_iterator bat = resAt.bondbegin(); bat != resAt.bondend(); ++bat) { + if (*bat > rat) { + if (idx == dih->resnum) + resBonds.push_back( StructureCheck::Btype(rat, *bat) ); + else + otherBonds.push_back( StructureCheck::Btype(rat, *bat) ); + } + } + } + } + } // END loop over residues for adding bonds to check + resRings.SetupRingFinder(topIn, resMask); + otherRings.SetupRingFinder(topIn, otherMask); + if (resRings.Nrings() > 0 || otherRings.Nrings() > 0) { + mprintf("DEBUG: Ring check, residue %i (%u rings).\n", dih->resnum+1, resRings.Nrings()); + //resRings.PrintRings(topIn); + mprintf("DEBUG:\t\tChecking against %zu bonds.\n", otherBonds.size()); + //int icol = 0; + //for (std::vector<StructureCheck::Btype>::const_iterator bt = ringBonds.begin(); bt != ringBonds.end(); ++bt) + //{ + // mprintf(" %s-%s\n", topIn.AtomMaskName(bt->A1()).c_str(), topIn.AtomMaskName(bt->A2()).c_str()); + // //if (icol == 5 || (bt+1) == ringBonds.end()) { + // // mprintf("\n"); + // // icol = 0; + // //} + //} + int nRingProblems = checkStructure_.CheckRings(currentFrame, resRings, otherBonds); + mprintf("DEBUG:\t\t%u other rings, %zu residue bonds.\n", otherRings.Nrings(), resBonds.size()); + nRingProblems += checkStructure_.CheckRings(currentFrame, otherRings, resBonds); + // Check self + nRingProblems += checkStructure_.CheckRings(currentFrame, resRings, resBonds); + if (nRingProblems > 0) { + mprintf("DEBUG: %i ring problems.\n", nRingProblems); + clash = true; + } + } // END rings are present + } if (!clash) { // No clash, all done rotate_dihedral = false; diff --git a/src/Exec_PermuteDihedrals.h b/src/Exec_PermuteDihedrals.h index c20a2503d0..89efb375db 100644 --- a/src/Exec_PermuteDihedrals.h +++ b/src/Exec_PermuteDihedrals.h @@ -30,6 +30,9 @@ class Exec_PermuteDihedrals : public Exec { int CheckResidue( Frame const&, Topology const&, PermuteDihedralsType const&,int,double&); /// Randomly rotate dihedrals void RandomizeAngles(Frame&, Topology const&); + /// Count residue clashes in given frame + int countClashes(std::vector<int>&, Frame const&, Topology const&) const; + /// Randomly rotate dihedrals, slightly faster version void RandomizeAngles_2(Frame&, Topology const&); /// Permute types @@ -52,6 +55,7 @@ class Exec_PermuteDihedrals : public Exec { // 'random' options bool check_for_clashes_; bool checkAllResidues_; + bool checkRings_; ///< If true, check for bond/ring intersections double max_factor_; ///< Max rotations to attempt will be max_factor_ * #dihedrals double cutoff_; ///< When checking for clashes, atom cutoff double rescutoff_; ///< When checking for clashes, residue cutoff diff --git a/src/Exec_PrepareForLeap.cpp b/src/Exec_PrepareForLeap.cpp index e4aebdce8d..4cf99549a7 100644 --- a/src/Exec_PrepareForLeap.cpp +++ b/src/Exec_PrepareForLeap.cpp @@ -4,20 +4,27 @@ #include "DataSet_Coords_CRD.h" #include "LeapInterface.h" #include "ParmFile.h" +#include "Remote.h" #include "StringRoutines.h" #include "Structure/Disulfide.h" #include "Structure/HisProt.h" +#include "Structure/MetalCenterFinder.h" +#include "Structure/PdbCleaner.h" #include "Structure/ResStatArray.h" #include "Structure/SugarBuilder.h" #include "Structure/Sugar.h" #include "Trajout_Single.h" #include <stack> // FindTerByBonds +#include <cctype> // tolower +#include <algorithm> // unique using namespace Cpptraj::Structure; /** CONSTRUCTOR */ Exec_PrepareForLeap::Exec_PrepareForLeap() : Exec(COORDS), errorsAreFatal_(true), + downloadParams_(true), + bondUnknownResidues_(false), debug_(0) { SetHidden(false); @@ -271,224 +278,10 @@ const // ----------------------------------------------------------------------------- -/** Modify coords according to user wishes. */ -int Exec_PrepareForLeap::ModifyCoords( Topology& topIn, Frame& frameIn, - bool remove_water, - std::string const& altLocStr, std::string const& stripMask, - std::string const& waterMask, - Iarray const& resnumsToRemove ) -const -{ - // Create a mask denoting which atoms will be kept. - std::vector<bool> atomsToKeep( topIn.Natom(), true ); - // Previously-determined array of residues to remove - for (Iarray::const_iterator rnum = resnumsToRemove.begin(); - rnum != resnumsToRemove.end(); ++rnum) - { - Residue const& res = topIn.Res( *rnum ); - mprintf("\tRemoving %s\n", topIn.TruncResNameOnumId( *rnum ).c_str()); - for (int at = res.FirstAtom(); at != res.LastAtom(); at++) - atomsToKeep[at] = false; - } - // User-specified strip mask - if (!stripMask.empty()) { - AtomMask mask; - if (mask.SetMaskString( stripMask )) { - mprinterr("Error: Invalid mask string '%s'\n", stripMask.c_str()); - return 1; - } - if (topIn.SetupIntegerMask( mask )) return 1; - mask.MaskInfo(); - if (!mask.None()) { - for (AtomMask::const_iterator atm = mask.begin(); atm != mask.end(); ++atm) - atomsToKeep[*atm] = false; - } - } - if (remove_water) { - // Do not use cpptraj definition of solvent in case we have e.g. bound HOH - AtomMask mask; - if (mask.SetMaskString( waterMask )) { - mprinterr("Error: Invalid solvent mask string '%s'\n", waterMask.c_str()); - return 1; - } - if (topIn.SetupIntegerMask( mask )) return 1; - mask.MaskInfo(); - if (!mask.None()) { - for (AtomMask::const_iterator atm = mask.begin(); atm != mask.end(); ++atm) - atomsToKeep[*atm] = false; - } - - } - // Identify alternate atom location groups. - if (!altLocStr.empty()) { - if (topIn.AtomAltLoc().empty()) { - mprintf("\tNo alternate atom locations.\n"); - } else { - // Map atom name to atom indices - typedef std::map<NameType, std::vector<int>> AlocMapType; - AlocMapType alocMap; - for (int rnum = 0; rnum != topIn.Nres(); rnum++) { - alocMap.clear(); - for (int at = topIn.Res(rnum).FirstAtom(); at != topIn.Res(rnum).LastAtom(); at++) { - if (topIn.AtomAltLoc()[at] != ' ') { - AlocMapType::iterator it = alocMap.find( topIn[at].Name() ); - if (it == alocMap.end()) { - alocMap.insert( std::pair<NameType, std::vector<int>>( topIn[at].Name(), - std::vector<int>(1, at) )); - } else { - it->second.push_back( at ); - } - } - } // END loop over atoms in residue - if (!alocMap.empty()) { - if (debug_ > 0) - mprintf("DEBUG: Alternate loc. for %s\n", topIn.TruncResNameOnumId(rnum).c_str()); - // Loop over atoms with alternate locations - for (AlocMapType::const_iterator it = alocMap.begin(); it != alocMap.end(); ++it) { - if (debug_ > 0) { - // Print all alternate atoms - mprintf("\t'%s'", *(it->first)); - for (std::vector<int>::const_iterator at = it->second.begin(); - at != it->second.end(); ++at) - mprintf(" %s[%c]", *(topIn[*at].Name()), topIn.AtomAltLoc()[*at]); - mprintf("\n"); - } - // For each, choose which location to keep. - if (altLocStr.size() == 1) { - // Keep only specified character - char altLocChar = altLocStr[0]; - for (std::vector<int>::const_iterator at = it->second.begin(); - at != it->second.end(); ++at) - if (topIn.AtomAltLoc()[*at] != altLocChar) - atomsToKeep[*at] = false; - } else { - // Keep highest occupancy - if (topIn.Occupancy().empty()) { - mprintf("\tNo occupancy.\n"); // TODO error? - } else { - int highestOccAt = -1; - float highestOcc = 0; - for (std::vector<int>::const_iterator at = it->second.begin(); - at != it->second.end(); ++at) - { - if (highestOccAt == -1) { - highestOccAt = *at; - highestOcc = topIn.Occupancy()[*at]; - } else if (topIn.Occupancy()[*at] > highestOcc) { - highestOccAt = *at; - highestOcc = topIn.Occupancy()[*at]; - } - } - // Set everything beside highest occ to false - for (std::vector<int>::const_iterator at = it->second.begin(); - at != it->second.end(); ++at) - if (*at != highestOccAt) - atomsToKeep[*at] = false; - } - } - } // END loop over atoms with alternate locations - } - } // END loop over residue numbers - } - } - - // Set up mask of only kept atoms. - AtomMask keptAtoms; - keptAtoms.SetNatoms( topIn.Natom() ); - for (int idx = 0; idx != topIn.Natom(); idx++) { - if (atomsToKeep[idx]) - keptAtoms.AddSelectedAtom(idx); - } - if (keptAtoms.Nselected() == topIn.Natom()) - // Keeping everything, no modifications - return 0; - // Modify top/frame - Topology* newTop = topIn.modifyStateByMask( keptAtoms ); - if (newTop == 0) { - mprinterr("Error: Could not create new topology.\n"); - return 1; - } - newTop->Brief("After removing atoms:"); - Frame newFrame; - newFrame.SetupFrameV(newTop->Atoms(), frameIn.CoordsInfo()); - newFrame.SetFrame(frameIn, keptAtoms); - - topIn = *newTop; - frameIn = newFrame; - delete newTop; - - return 0; -} - -/** Remove any hydrogen atoms. This is done separately from ModifyCoords - * so that hydrogen atom info can be used to e.g. ID histidine - * protonation. - */ -int Exec_PrepareForLeap::RemoveHydrogens(Topology& topIn, Frame& frameIn) const { - AtomMask keptAtoms; - keptAtoms.SetNatoms( topIn.Natom() ); - for (int idx = 0; idx != topIn.Natom(); idx++) - { - if (topIn[idx].Element() != Atom::HYDROGEN) - keptAtoms.AddSelectedAtom(idx); - } - if (keptAtoms.Nselected() == topIn.Natom()) - // Keeping everything, no modification - return 0; - // Modify top/frame - Topology* newTop = topIn.modifyStateByMask( keptAtoms ); - if (newTop == 0) { - mprinterr("Error: Could not create new topology with no hydrogens.\n"); - return 1; - } - newTop->Brief("After removing hydrogen atoms:"); - Frame newFrame; - newFrame.SetupFrameV(newTop->Atoms(), frameIn.CoordsInfo()); - newFrame.SetFrame(frameIn, keptAtoms); - - topIn = *newTop; - frameIn = newFrame; - delete newTop; - - return 0; -} - -// ----------------------------------------------------------------------------- - -/// \return index of oxygen atom bonded to this atom but not in same residue -static inline int getLinkOxygenIdx(Topology const& leaptop, int at, int rnum) { - int o_idx = -1; - for (Atom::bond_iterator bat = leaptop[at].bondbegin(); - bat != leaptop[at].bondend(); ++bat) - { - if (leaptop[*bat].Element() == Atom::OXYGEN && leaptop[*bat].ResNum() != rnum) { - o_idx = *bat; - break; - } - } - return o_idx; -} - -/// \return index of carbon bonded to link oxygen not in same residue -static inline int getLinkCarbonIdx(Topology const& leaptop, int at, int rnum) -{ - int o_idx = getLinkOxygenIdx(leaptop, at, rnum); - if (o_idx == -1) return o_idx; - int c_idx = -1; - for (Atom::bond_iterator bat = leaptop[o_idx].bondbegin(); - bat != leaptop[o_idx].bondend(); ++bat) - { - if (leaptop[*bat].Element() == Atom::CARBON && leaptop[*bat].ResNum() != rnum) { - c_idx = *bat; - break; - } - } - return c_idx; -} - /** Run leap to generate topology. Modify the topology if needed. */ int Exec_PrepareForLeap::RunLeap(std::string const& ff_file, - std::string const& leapfilename) const + std::string const& leapfilename, + SugarBuilder const& sugarBuilder) const { if (leapfilename.empty()) { mprintf("Warning: No leap input file name was specified, not running leap.\n"); @@ -521,95 +314,10 @@ int Exec_PrepareForLeap::RunLeap(std::string const& ff_file, bool top_is_modified = false; // Go through each residue. Find ones that need to be adjusted. - // NOTE: If deoxy carbons are ever handled, need to add H1 hydrogen and - // add the former -OH charge to the carbon. - for (int rnum = 0; rnum != leaptop.Nres(); rnum++) - { - Residue const& res = leaptop.Res(rnum); - if (res.Name() == "SO3") { - int o_idx = -1; - // Need to adjust the charge on the bonded oxygen by +0.031 - for (int at = res.FirstAtom(); at != res.LastAtom(); at++) { - if (leaptop[at].Element() == Atom::SULFUR) { - o_idx = getLinkOxygenIdx( leaptop, at, rnum ); - if (o_idx != -1) break; - } - } - if (o_idx == -1) { - mprinterr("Error: Could not find oxygen link atom for '%s'\n", - leaptop.TruncResNameOnumId(rnum).c_str()); - return 1; - } - double newcharge = leaptop[o_idx].Charge() + 0.031; - mprintf("\tFxn group '%s'; changing charge on %s from %f to %f\n", *(res.Name()), - leaptop.AtomMaskName(o_idx).c_str(), leaptop[o_idx].Charge(), newcharge); - leaptop.SetAtom(o_idx).SetCharge( newcharge ); - top_is_modified = true; - } else if (res.Name() == "MEX") { - int c_idx = -1; - // Need to adjust the charge on the carbon bonded to link oxygen by -0.039 - for (int at = res.FirstAtom(); at != res.LastAtom(); at++) { - if (leaptop[at].Element() == Atom::CARBON) { - c_idx = getLinkCarbonIdx( leaptop, at, rnum ); - if (c_idx != -1) break; - } - } - if (c_idx == -1) { - mprinterr("Error: Could not find carbon bonded to oxygen link atom for '%s'\n", - leaptop.TruncResNameOnumId(rnum).c_str()); - return 1; - } - double newcharge = leaptop[c_idx].Charge() - 0.039; - mprintf("\tFxn group '%s'; changing charge on %s from %f to %f\n", *(res.Name()), - leaptop.AtomMaskName(c_idx).c_str(), leaptop[c_idx].Charge(), newcharge); - leaptop.SetAtom(c_idx).SetCharge( newcharge ); - top_is_modified = true; - } else if (res.Name() == "ACX") { - int c_idx = -1; - // Need to adjust the charge on the carbon bonded to link oxygen by +0.008 - for (int at = res.FirstAtom(); at != res.LastAtom(); at++) { - if (leaptop[at].Element() == Atom::CARBON) { - // This needs to be the acetyl carbon, ensure it is bonded to an oxygen - for (Atom::bond_iterator bat = leaptop[at].bondbegin(); - bat != leaptop[at].bondend(); ++bat) - { - if (leaptop[*bat].Element() == Atom::OXYGEN) { - c_idx = getLinkCarbonIdx( leaptop, at, rnum ); - if (c_idx != -1) break; - } - } - if (c_idx != -1) break; - } - } - if (c_idx == -1) { - mprinterr("Error: Could not find carbon bonded to oxygen link atom for '%s'\n", - leaptop.TruncResNameOnumId(rnum).c_str()); - return 1; - } - double newcharge = leaptop[c_idx].Charge() + 0.008; - mprintf("\tFxn group '%s'; changing charge on %s from %f to %f\n", *(res.Name()), - leaptop.AtomMaskName(c_idx).c_str(), leaptop[c_idx].Charge(), newcharge); - leaptop.SetAtom(c_idx).SetCharge( newcharge ); - top_is_modified = true; - } - } - - // DEBUG: Print out total charge on each residue - double total_q = 0; - for (Topology::res_iterator res = leaptop.ResStart(); res != leaptop.ResEnd(); ++res) - { - double tcharge = 0; - for (int at = res->FirstAtom(); at != res->LastAtom(); ++at) { - total_q += leaptop[at].Charge(); - tcharge += leaptop[at].Charge(); - } - if (debug_ > 0) { - mprintf("DEBUG:\tResidue %10s charge= %12.5f\n", - leaptop.TruncResNameOnumId(res-leaptop.ResStart()).c_str(), tcharge); - } + if (sugarBuilder.ModifyFoundFxnGroups( leaptop, top_is_modified )) { + mprinterr("Error: Could not make modifications to found functional groups.\n"); + return 1; } - mprintf("\tTotal charge: %16.8f\n", total_q); - // If topology was modified, write it back out if (top_is_modified) { mprintf("\tWriting modified topology back to '%s'\n", topname.c_str()); @@ -619,44 +327,93 @@ int Exec_PrepareForLeap::RunLeap(std::string const& ff_file, return 0; } -/** Print warnings for residues that will need to be modified in leap. */ -void Exec_PrepareForLeap::LeapFxnGroupWarning(Topology const& topIn, int rnum) { - Residue const& res = topIn.Res(rnum); - if ( res.Name() == "SO3" ) { - mprintf("Warning: Residue '%s'; after LEaP, will need to adjust the charge on the link oxygen by +0.031.\n", - topIn.TruncResNameNum(rnum).c_str()); - } else if ( res.Name() == "MEX" ) { - mprintf("Warning: Residue '%s'; after LEaP, will need to adjust the charge on the carbon bonded to link oxygen by -0.039.\n", - topIn.TruncResNameNum(rnum).c_str()); - } else if ( res.Name() == "ACX" ) { - mprintf("Warning: Residue '%s'; after LEaP, will need to adjust the charge on the carbon bonded to link oxygen by +0.008.\n", - topIn.TruncResNameNum(rnum).c_str()); - } +/** Try to download missing parameters. */ +int Exec_PrepareForLeap::DownloadParameters(ResStatArray& resStat, RmapType const& resNames, + Topology const& topIn, CpptrajFile* leapInput, + std::vector<BondType>& LeapBonds) +const +{ + Cpptraj::Remote remote( parameterURL_ ); + remote.SetDebug(debug_); + for (RmapType::const_iterator it = resNames.begin(); it != resNames.end(); ++it) + { + std::string rname = it->first.Truncated(); + mprintf("\t\tSearching for parameters for residue '%s'", rname.c_str()); + for (Iarray::const_iterator rn = it->second.begin(); rn != it->second.end(); ++rn) + mprintf(" %i", *rn + 1); + mprintf("\n"); + // Assume parameters are in a subdirectory starting with lowercase version + // of the first letter of the residue. + char lcase = tolower( rname[0] ); + std::string rfbase = std::string(1, lcase) + "/" + rname; + if (debug_ > 0) + mprintf("DEBUG: Base name: %s\n", rfbase.c_str()); + int err = 0; + err += remote.DownloadFile( rfbase + ".mol2" ); + if (err == 0) { + err += remote.DownloadFile( rfbase + ".frcmod" ); + if (err != 0) + mprintf("Warning: Could not download %s.frcmod\n", rname.c_str()); + } else { + mprintf("Warning: Could not download %s.mol2\n", rname.c_str()); + } + if (err != 0) + mprintf("Warning: Could not download parameter files for '%s'\n", rname.c_str()); + else { + // Sanity check - make sure the files are there. + if (!File::Exists(rname + ".mol2") || !File::Exists(rname + ".frcmod")) { + mprinterr("Error: Problem downloading parameter files for '%s'\n", rname.c_str()); + return 1; + } + // Add leap input + if (leapInput != 0) { + leapInput->Printf("%s = loadmol2 %s.mol2\n", rname.c_str(), rname.c_str()); + leapInput->Printf("parm%s = loadamberparams %s.frcmod\n", rname.c_str(), rname.c_str()); + } + // Downloaded mol2 files do not have connectivity, so we need to add bonds. + for (Iarray::const_iterator rn = it->second.begin(); rn != it->second.end(); ++rn) + { + // Assume we are all good with parameters for these residues now. + resStat[*rn] = ResStatArray::VALIDATED; + Residue const& currentRes = topIn.Res( *rn ); + // Check each atom for bonds to another residue + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); ++at) { + for (Atom::bond_iterator bat = topIn[at].bondbegin(); bat != topIn[at].bondend(); ++bat) { + if ( topIn[*bat].ResNum() != *rn ) { + if (bondUnknownResidues_) { + mprintf("\t\t\tRes %s is bonded to res %s\n", + topIn.TruncResAtomName(at).c_str(), + topIn.TruncResAtomName(*bat).c_str()); + LeapBonds.push_back( BondType(at, *bat, -1) ); + } else { + mprintf("Info:\t\t\tRes %s might be bonded to res %s\n", + topIn.TruncResAtomName(at).c_str(), + topIn.TruncResAtomName(*bat).c_str()); + + } + } + } // END loop over bonded atoms + } // END loop over atoms in residue + } // END loop over residue numbers + } + } // END loop over residue names to get parameters for + return 0; } // Exec_PrepareForLeap::Help() void Exec_PrepareForLeap::Help() const { mprintf("\tcrdset <coords set> [frame <#>] name <out coords set>\n" - "\t[pdbout <pdbfile> [terbymol]]\n" + "\t[pdbout <pdbfile> [terbymol]] [problemout <file>]\n" "\t[leapunitname <unit>] [out <leap input file> [runleap <ff file>]]\n" - "\t[skiperrors]\n" + "\t[skiperrors] [{dlparams|nodlparams}] [{bondunknown|nobondunknown}]\n" "\t[nowat [watermask <watermask>] [noh]\n" "\t[keepaltloc {<alt loc ID>|highestocc}]\n" "\t[stripmask <stripmask>] [solventresname <solventresname>]\n" "\t[molmask <molmask> ...] [determinemolmask <mask>]\n" - "\t[{nohisdetect |\n" - "\t [nd1 <nd1>] [ne2 <ne2] [hisname <his>] [hiename <hie>]\n" - "\t [hidname <hid>] [hipname <hip]}]\n" - "\t[{nodisulfides |\n" - "\t existingdisulfides |\n" - "\t [cysmask <cysmask>] [disulfidecut <cut>] [newcysname <name>]}]\n" - "\t[{nosugars |\n" - "\t sugarmask <sugarmask> [noc1search] [nosplitres]\n" - "\t [rescut <residue cutoff>] [bondoffset <offset>]\n" - "\t [resmapfile <file>]\n" - "\t [hasglycam] [determinesugarsby {geom|name}]\n" - "\t }]\n" + "%s" + "%s" + "%s" " Prepare the structure in the given coords set for easier processing\n" " with the LEaP program from AmberTools. Any existing/potential\n" " disulfide bonds will be identified and the residue names changed\n" @@ -666,6 +423,11 @@ void Exec_PrepareForLeap::Help() const " have any inter-residue bonds removed, and the appropriate LEaP\n" " input to add the bonds back once the structure has been loaded\n" " into LEaP will be written to <leap input file>.\n" + " If 'dlparams' is specified, the command will attempt to download\n" + " parameters for unknown residues.\n", + HisProt::keywords_, + Disulfide::keywords_, + SugarBuilder::keywords_ ); } @@ -678,6 +440,18 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) "# J. Comp. Chem. (2022), V. 43, I. 13, pp 930-935.\n" ); debug_ = State.Debug(); errorsAreFatal_ = !argIn.hasKey("skiperrors"); + if (argIn.hasKey("dlparams")) + downloadParams_ = true; + else if (argIn.hasKey("nodlparams")) + downloadParams_ = false; + else + downloadParams_ = false; + if (argIn.hasKey("bondunknown")) + bondUnknownResidues_ = true; + else if (argIn.hasKey("nobondunknown")) + bondUnknownResidues_ = false; + else + bondUnknownResidues_ = false; // Get input coords std::string crdset = argIn.GetStringKey("crdset"); if (crdset.empty()) { @@ -700,7 +474,6 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) Frame frameIn = coords.AllocateFrame(); coords.GetFrame(tgtframe, frameIn); - // Copy input topology, may be modified. Topology topIn = coords.Top(); @@ -780,23 +553,46 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) for (SetType::const_iterator it = pdb_res_names_.begin(); it != pdb_res_names_.end(); ++it) mprintf("\t %s\n", *(*it)); } + if (downloadParams_) + mprintf("\tWill attempt to download parameters for unknown residues.\n"); + else + mprintf("\tWill not attempt to download paramters for unknown residues.\n"); + if (bondUnknownResidues_) + mprintf("\tWill attempt to bond unknown residues.\n"); + else + mprintf("\tWill not attempt to bond unknown residues.\n"); + std::string problemoutname = argIn.GetStringKey("problemout"); + mprintf("\tWriting detected problems to %s\n", problemoutname.c_str()); // Load PDB to glycam residue name map SugarBuilder sugarBuilder(debug_); if (prepare_sugars) { // Init options - if (sugarBuilder.InitOptions( argIn.hasKey("hasglycam"), - argIn.getKeyDouble("rescut", 8.0), - argIn.getKeyDouble("bondoffset", 0.2), - argIn.GetStringKey("sugarmask"), - argIn.GetStringKey("determinesugarsby", "geometry"), - argIn.GetStringKey("resmapfile") )) + if (sugarBuilder.InitSugarBuilder( argIn )) { mprinterr("Error: Sugar options init failed.\n"); return CpptrajState::ERR; } } + // Do histidine detection before H atoms are removed + if (!argIn.hasKey("nohisdetect")) { + Cpptraj::Structure::HisProt hisProt; + if (hisProt.InitHisProt( argIn, debug_ )) { + mprinterr("Error: Could not initialize histidine detection.\n"); + return CpptrajState::ERR; + } + hisProt.HisProtInfo(); + // Add epsilon, delta, and double-protonated names as recognized. + pdb_res_names_.insert( hisProt.EpsilonProtHisName() ); + pdb_res_names_.insert( hisProt.DeltaProtHisName() ); + pdb_res_names_.insert( hisProt.DoubleProtHisName() ); + if (hisProt.DetermineHisProt( topIn )) { + mprinterr("Error: HIS protonation detection failed.\n"); + return CpptrajState::ERR; + } + } + Iarray pdbResToRemove; std::string removeArg = argIn.GetStringKey("remove"); if (!removeArg.empty()) { @@ -814,101 +610,20 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) } // Deal with any coordinate modifications - bool remove_water = argIn.hasKey("nowat"); - std::string waterMask = argIn.GetStringKey("watermask", ":" + solventResName_); - bool remove_h = argIn.hasKey("noh"); - std::string altLocArg = argIn.GetStringKey("keepaltloc"); - if (!altLocArg.empty()) { - if (altLocArg != "highestocc" && - altLocArg.size() > 1) - { - mprinterr("Error: Invalid keyword for 'keepaltloc' '%s'; must be 'highestocc' or 1 character.\n", - altLocArg.c_str()); - return CpptrajState::ERR; - } - } - std::string stripMask = argIn.GetStringKey("stripmask"); - - // If keeping highest alt loc, check that alt locs and occupancies are present. - if (altLocArg == "highestocc") { - if (topIn.AtomAltLoc().empty()) { - mprintf("Warning: 'highestocc' specified but no atom alternate location info.\n"); - altLocArg.clear(); - } else if (topIn.Occupancy().empty()) { - mprintf("Warning: 'highestocc' specified but no atom occupancy info.\n"); - altLocArg.clear(); - } - } - // Check if alternate atom location IDs are present - if (!topIn.AtomAltLoc().empty()) { - // For LEaP, must have only 1 atom alternate location - char firstAltLoc = ' '; - for (std::vector<char>::const_iterator altLocId = topIn.AtomAltLoc().begin(); - altLocId != topIn.AtomAltLoc().end(); - ++altLocId) - { - if (firstAltLoc == ' ') { - // Find first non-blank alternate location ID - if (*altLocId != ' ') - firstAltLoc = *altLocId; - } else if (*altLocId != ' ' && *altLocId != firstAltLoc) { - // Choose a default if necessary - if (altLocArg.empty()) { - altLocArg.assign(1, firstAltLoc); - mprintf("Warning: '%s' has atoms with multiple alternate location IDs, which\n" - "Warning: are not supported by LEaP. Keeping only '%s'.\n" - "Warning: To choose a specific location to keep use the 'keepaltloc <char>'\n" - "Warning: keyword.\n", coords.legend(), altLocArg.c_str()); - } - break; - } - } - } - - if (remove_water) - mprintf("\tRemoving solvent. Solvent mask= '%s'\n", waterMask.c_str()); - if (remove_h) - mprintf("\tRemoving hydrogens.\n"); - if (!altLocArg.empty()) - mprintf("\tIf present, keeping only alternate atom locations denoted by '%s'\n", altLocArg.c_str()); - if (!stripMask.empty()) - mprintf("\tRemoving atoms in mask '%s'\n", stripMask.c_str()); - if (ModifyCoords(topIn, frameIn, remove_water, altLocArg, stripMask, waterMask, pdbResToRemove)) - { - mprinterr("Error: Modification of '%s' failed.\n", coords.legend()); + Cpptraj::Structure::PdbCleaner pdbCleaner; + pdbCleaner.SetDebug( debug_ ); + if (pdbCleaner.InitPdbCleaner( argIn, solventResName_, pdbResToRemove )) { + mprinterr("Error: Could not init PDB cleaner.\n"); return CpptrajState::ERR; } - - // Do histidine detection before H atoms are removed - if (!argIn.hasKey("nohisdetect")) { - std::string nd1name = argIn.GetStringKey("nd1", "ND1"); - std::string ne2name = argIn.GetStringKey("ne2", "NE2"); - std::string hisname = argIn.GetStringKey("hisname", "HIS"); - std::string hiename = argIn.GetStringKey("hiename", "HIE"); - std::string hidname = argIn.GetStringKey("hidname", "HID"); - std::string hipname = argIn.GetStringKey("hipname", "HIP"); - mprintf("\tHistidine protonation detection:\n"); - mprintf("\t\tND1 atom name : %s\n", nd1name.c_str()); - mprintf("\t\tNE2 atom name : %s\n", ne2name.c_str()); - mprintf("\t\tHistidine original residue name : %s\n", hisname.c_str()); - mprintf("\t\tEpsilon-protonated residue name : %s\n", hiename.c_str()); - mprintf("\t\tDelta-protonated residue name : %s\n", hidname.c_str()); - mprintf("\t\tDoubly-protonated residue name : %s\n", hipname.c_str()); - // Add epsilon, delta, and double-protonated names as recognized. - pdb_res_names_.insert( hiename ); - pdb_res_names_.insert( hidname ); - pdb_res_names_.insert( hipname ); - if (DetermineHisProt( topIn, - nd1name, ne2name, - hisname, hiename, hidname, hipname)) { - mprinterr("Error: HIS protonation detection failed.\n"); - return CpptrajState::ERR; - } + if (pdbCleaner.SetupPdbCleaner( topIn )) { + mprinterr("Error: Could not set up PDB cleaner.\n"); + return CpptrajState::ERR; } - - // Remove hydrogens - if (remove_h) { - if (RemoveHydrogens(topIn, frameIn)) return CpptrajState::ERR; + pdbCleaner.PdbCleanerInfo(); + if (pdbCleaner.ModifyCoords(topIn, frameIn)) { + mprinterr("Error: Could not clean PDB.\n"); + return CpptrajState::ERR; } // If preparing sugars, need to set up an atom map and potentially @@ -930,8 +645,11 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) // adding missing bonds to C1 atoms. // This is done before any identification takes place since we want // to identify based on the most up-to-date topology. + // NOTE: The c1 bonds will remain, so put them in a separate array + std::vector<BondType> C1Bonds; if (sugarBuilder.FixSugarsStructure(topIn, frameIn, - c1bondsearch, splitres, solventResName_)) + c1bondsearch, splitres, solventResName_, + C1Bonds)) { mprinterr("Error: Sugar structure modification failed.\n"); return CpptrajState::ERR; @@ -996,22 +714,18 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) if (outfile == 0) return CpptrajState::ERR; mprintf("\tLEaP input containing 'loadpdb' and bond commands for disulfides,\n" "\t sugars, etc will be written to '%s'\n", outfile->Filename().full()); - // Add the loadpdb command if we are writing a PDB file. - // TODO add 'addPdbResMap { { 1 "NH2" "NHE" } }' to recognize NHE? - if (!pdbout.empty()) - outfile->Printf("%s = loadpdb %s\n", leapunitname_.c_str(), pdbout.c_str()); // Array that will hold bonds that need to be made in LEaP std::vector<BondType> LeapBonds; // Disulfide search if (!argIn.hasKey("nodisulfides")) { - if (SearchForDisulfides( resStat, - argIn.getKeyDouble("disulfidecut", 2.5), - argIn.GetStringKey("newcysname", "CYX"), - argIn.GetStringKey("cysmask", ":CYS@SG"), - !argIn.hasKey("existingdisulfides"), - topIn, frameIn, LeapBonds )) + Cpptraj::Structure::Disulfide disulfide; + if (disulfide.InitDisulfide( argIn, Disulfide::NO_ADD_BONDS, debug_ )) { + mprinterr("Error: Could not init disulfide search.\n"); + return CpptrajState::ERR; + } + if (disulfide.SearchForDisulfides( resStat, topIn, frameIn, LeapBonds )) { mprinterr("Error: Disulfide search failed.\n"); return CpptrajState::ERR; @@ -1020,25 +734,108 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) mprintf("\tNot searching for disulfides.\n"); } + // Metal center search + if (!argIn.hasKey("nometals")) { + Cpptraj::Structure::MetalCenterFinder MC; + if (MC.InitMetalCenters( argIn, debug_ )) { + mprinterr("Error: Could not init metal center search.\n"); + return CpptrajState::ERR; + } + if (MC.FindMetalCenters( topIn, frameIn )) { + mprinterr("Error: Metal center search failed.\n"); + return CpptrajState::ERR; + } + MC.PrintMetalCenters(topIn); + } else { + mprintf("\tNot searching for metal centers.\n"); + } + // Prepare sugars if (prepare_sugars) { - if (sugarBuilder.PrepareSugars(errorsAreFatal_, resStat, topIn, frameIn, LeapBonds)) + std::vector<BondType> SugarBonds; + if (sugarBuilder.PrepareSugars(errorsAreFatal_, resStat, topIn, frameIn, SugarBonds)) { mprinterr("Error: Sugar preparation failed.\n"); return CpptrajState::ERR; } + // Remove bonds to sugar + if (!SugarBonds.empty()) { + for (std::vector<BondType>::const_iterator it = SugarBonds.begin(); + it != SugarBonds.end(); ++it) + { + LeapBonds.push_back( *it ); + topIn.RemoveBond(it->A1(), it->A2()); + } + // Bonds to sugars have been removed, so regenerate molecule info + topIn.DetermineMolecules(); + } + // Set each sugar residue as a terminal residue + sugarBuilder.SetEachSugarAsTerminal(topIn); } else { mprintf("\tNot preparing sugars.\n"); } + // Determine unknown residues we may want to find parameters for + NameType solvName(solventResName_); + RmapType residuesToFindParamsFor; + for (ResStatArray::iterator it = resStat.begin(); it != resStat.end(); ++it) + { + NameType const& residueName = topIn.Res(it-resStat.begin()).Name(); + // Skip water if not removing water + if (!pdbCleaner.RemoveWater() && residueName == solvName) continue; + // If status is unknown, see if this is a common residue name + if ( *it == ResStatArray::UNKNOWN ) { + SetType::const_iterator pname = pdb_res_names_.find( residueName ); + if (pname == pdb_res_names_.end()) { + mprintf("\t%s is an unrecognized name and may not have parameters.\n", + topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); + RmapType::iterator ret = residuesToFindParamsFor.lower_bound( residueName ); + if (ret == residuesToFindParamsFor.end() || ret->first != residueName) + { + // New residue to get params for + ret = residuesToFindParamsFor.insert(ret, RpairType(residueName, Iarray())); + } + ret->second.push_back( it - resStat.begin() ); + } else + *it = ResStatArray::VALIDATED; + } + } + if (downloadParams_ && !residuesToFindParamsFor.empty()) { + mprintf("\tResidues to find parameters for:"); + for (RmapType::const_iterator it = residuesToFindParamsFor.begin(); + it != residuesToFindParamsFor.end(); ++it) + { + mprintf(" %s", it->first.Truncated().c_str()); + for (Iarray::const_iterator rn = it->second.begin(); rn != it->second.end(); ++rn) + mprintf(" %i", *rn + 1); + } + mprintf("\n"); + // Set default parameter URL if not yet set. + if (parameterURL_.empty()) + parameterURL_.assign("https://github.com/phenix-project/geostd/raw/refs/heads/master"); + if (DownloadParameters(resStat, residuesToFindParamsFor, topIn, outfile, LeapBonds)) { + mprinterr("Error: Download parameters failed.\n"); + return CpptrajState::ERR; + } + } + + // Add the loadpdb command if we are writing a PDB file. + // TODO add 'addPdbResMap { { 1 "NH2" "NHE" } }' to recognize NHE? + if (!pdbout.empty()) + outfile->Printf("%s = loadpdb %s\n", leapunitname_.c_str(), pdbout.c_str()); + + // Remove any duplicate bonds + std::sort( LeapBonds.begin(), LeapBonds.end() ); + std::vector<BondType>::const_iterator it = std::unique( LeapBonds.begin(), LeapBonds.end() ); + LeapBonds.resize( it - LeapBonds.begin() ); + // Create LEaP input for bonds that need to be made in LEaP for (std::vector<BondType>::const_iterator bnd = LeapBonds.begin(); bnd != LeapBonds.end(); ++bnd) outfile->Printf("%s\n", Cpptraj::LeapInterface::LeapBond(bnd->A1(), bnd->A2(), leapunitname_, topIn).c_str()); // Count any solvent molecules - if (!remove_water) { - NameType solvName(solventResName_); + if (!pdbCleaner.RemoveWater()) { unsigned int nsolvent = 0; for (Topology::res_iterator res = topIn.ResStart(); res != topIn.ResEnd(); ++res) { if ( res->Name() == solvName) { @@ -1052,43 +849,67 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) } // Residue validation. + bool structure_has_problems = false; + for (ResStatArray::const_iterator it = resStat.begin(); it != resStat.end(); ++it) + { + if (*it != ResStatArray::VALIDATED) { + structure_has_problems = true; + break; + } + } + CpptrajFile* problemout = 0; + if (problemoutname.empty() || !structure_has_problems) { + problemout = State.DFL().AddCpptrajFile("", "Structure Problems", DataFileList::TEXT, true); + } else if (structure_has_problems) { + // Only open the file if there are problems + problemout = State.DFL().AddCpptrajFile(problemoutname, "Structure Problems", + DataFileList::TEXT, true); + } + if (problemout == 0) { + mprinterr("Internal Error: Could not allocate problemout file.\n"); + return CpptrajState::ERR; + } + // Print warnings related to functional groups + sugarBuilder.PrintFxnGroupWarnings(topIn); //mprintf("\tResidues with potential problems:\n"); int fatal_errors = 0; + int potential_errors = 0; static const char* msg1 = "Potential problem : "; static const char* msg2 = "Fatal problem : "; - for (ResStatArray::iterator it = resStat.begin(); it != resStat.end(); ++it) + for (ResStatArray::const_iterator it = resStat.begin(); it != resStat.end(); ++it) { - LeapFxnGroupWarning(topIn, it-resStat.begin()); //if ( *it == VALIDATED ) // mprintf("\t\t%s VALIDATED\n", topIn.TruncResNameOnumId(it-resStat_.begin()).c_str()); //else // mprintf("\t\t%s UNKNOWN\n", topIn.TruncResNameOnumId(it-resStat_.begin()).c_str()); // ----- Warnings -------- if ( *it == ResStatArray::UNKNOWN ) { - SetType::const_iterator pname = pdb_res_names_.find( topIn.Res(it-resStat.begin()).Name() ); - if (pname == pdb_res_names_.end()) - mprintf("\t%s%s is an unrecognized name and may not have parameters.\n", + //SetType::const_iterator pname = pdb_res_names_.find( topIn.Res(it-resStat.begin()).Name() ); + //if (pname == pdb_res_names_.end()) + problemout->Printf("\t%s%s is an unrecognized name and may not have parameters.\n", msg1, topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); - else - *it = ResStatArray::VALIDATED; + potential_errors++; + //else + // *it = ResStatArray::VALIDATED; } else if ( *it == ResStatArray::SUGAR_NAME_MISMATCH ) { - mprintf("\t%s%s sugar anomer type and/or configuration is not consistent with name.\n", + problemout->Printf("\t%s%s sugar anomer type and/or configuration is not consistent with name.\n", msg1, topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); + potential_errors++; // ----- Fatal Errors ---- } else if ( *it == ResStatArray::SUGAR_UNRECOGNIZED_LINK_RES ) { - mprintf("\t%s%s is linked to a sugar but has no sugar-linkage form.\n", + problemout->Printf("\t%s%s is linked to a sugar but has no sugar-linkage form.\n", msg2, topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); fatal_errors++; } else if ( *it == ResStatArray::SUGAR_UNRECOGNIZED_LINKAGE ) { - mprintf("\t%s%s is a sugar with an unrecognized linkage.\n", + problemout->Printf("\t%s%s is a sugar with an unrecognized linkage.\n", msg2, topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); fatal_errors++; } else if ( *it == ResStatArray::SUGAR_NO_LINKAGE ) { - mprintf("\t%s%s is an incomplete sugar with no linkages.\n", + problemout->Printf("\t%s%s is an incomplete sugar with no linkages.\n", msg2, topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); fatal_errors++; } else if ( *it == ResStatArray::SUGAR_NO_CHAIN_FOR_LINK ) { - mprintf("\t%s%s could not identify chain atoms for determining linkages.\n", + problemout->Printf("\t%s%s could not identify chain atoms for determining linkages.\n", msg2, topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); fatal_errors++; /* } else if ( *it == SUGAR_MISSING_C1X ) { // TODO should this be a warning @@ -1096,11 +917,13 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) msg2, topIn.TruncResNameOnumId(it-resStat_.begin()).c_str()); fatal_errors++;*/ } else if ( *it == ResStatArray::SUGAR_SETUP_FAILED ) { - mprintf("\t%s%s Sugar setup failed and could not be identified.\n", + problemout->Printf("\t%s%s Sugar setup failed and could not be identified.\n", msg2, topIn.TruncResNameOnumId(it-resStat.begin()).c_str()); fatal_errors++; } } + if ((fatal_errors + potential_errors) > 0 && !problemout->IsStream()) + mprintf("Warning: Check '%s' for structure problems.\n", problemout->Filename().full()); // Try to set terminal residues if (!molMasks.empty() || determineMolMask.MaskStringSet()) { @@ -1160,7 +983,7 @@ Exec::RetType Exec_PrepareForLeap::Execute(CpptrajState& State, ArgList& argIn) } // Run leap if needed if (!leapffname.empty()) { - if (RunLeap( leapffname, leapfilename )) { + if (RunLeap( leapffname, leapfilename, sugarBuilder )) { mprinterr("Error: Running leap failed.\n"); return CpptrajState::ERR; } diff --git a/src/Exec_PrepareForLeap.h b/src/Exec_PrepareForLeap.h index 57e27c6ff8..50e43f14ed 100644 --- a/src/Exec_PrepareForLeap.h +++ b/src/Exec_PrepareForLeap.h @@ -1,9 +1,12 @@ #ifndef INC_EXEC_PREPAREFORLEAP_H #define INC_EXEC_PREPAREFORLEAP_H #include "Exec.h" +class BondType; namespace Cpptraj { namespace Structure { class SugarBuilder; +class ResStatArray; +class ResNameIndices; } } /// Do common tasks to prepare a structure to be loaded into tleap @@ -15,6 +18,9 @@ class Exec_PrepareForLeap : public Exec { RetType Execute(CpptrajState&, ArgList&); private: typedef std::vector<int> Iarray; + typedef std::set<NameType> SetType; + typedef std::pair<NameType,Iarray> RpairType; + typedef std::map<NameType,Iarray> RmapType; /// Set PDB residue names recognized by Amber FFs void SetPdbResNames(); @@ -30,27 +36,22 @@ class Exec_PrepareForLeap : public Exec { /// Try to determine where TER cards should be placed based on bonds int FindTerByBonds(Topology&, CharMask const&) const; - - - /// Remove specified atoms - int ModifyCoords(Topology&, Frame&, bool, std::string const&, std::string const&, - std::string const&, Iarray const&) const; - /// Remove hydrogen atoms - int RemoveHydrogens(Topology&, Frame&) const; - - /// Run leap to generate topology, perform any modifications - int RunLeap(std::string const&, std::string const&) const; - /// Print a warning for residues that will need modification after leap - static void LeapFxnGroupWarning(Topology const&, int); + int RunLeap(std::string const&, std::string const&, Cpptraj::Structure::SugarBuilder const&) const; + + /// Download missing parameters + int DownloadParameters(Cpptraj::Structure::ResStatArray&, RmapType const&, + Topology const&, CpptrajFile*, std::vector<BondType>&) const; // ----------------------- - typedef std::set<NameType> SetType; - SetType pdb_res_names_; ///< PDB residue names recognized by Amber FFs + SetType pdb_res_names_; ///< PDB residue names recognized by Amber FFs - std::string leapunitname_; - bool errorsAreFatal_; ///< If false, try to skip errors. - int debug_; ///< Debug level + std::string leapunitname_; ///< Unit name to use when loading molecule + bool errorsAreFatal_; ///< If false, try to skip errors. + bool downloadParams_; ///< If true, try to download parameters for missing residues + bool bondUnknownResidues_; ///< If true, try to create bonds to unknown residues + int debug_; ///< Debug level std::string solventResName_; ///< Solvent residue name + std::string parameterURL_; ///< URL to download parameters from }; #endif diff --git a/src/Exec_Sequence.cpp b/src/Exec_Sequence.cpp index 63a69b2bf1..775dbe0819 100644 --- a/src/Exec_Sequence.cpp +++ b/src/Exec_Sequence.cpp @@ -1,48 +1,31 @@ #include "Exec_Sequence.h" -#include "CpptrajStdio.h" #include "AssociatedData_Connect.h" +#include "CpptrajStdio.h" +#include "DataSet_Parameters.h" // For casting DataSet_Parameters to ParameterSet +#include "Parm/AssignParams.h" +#include "Parm/GB_Params.h" #include "Structure/Builder.h" +#include "Structure/Creator.h" /** Generate and build the specified sequence. */ int Exec_Sequence::generate_sequence(DataSet_Coords* OUT, DataSetList const& DSL, Sarray const& main_sequence, - Sarray const& LibSetNames) + Cpptraj::Structure::Creator const& creator) const { + std::string title; // First, get all units in order. typedef std::vector<DataSet_Coords*> Uarray; Uarray Units; Units.reserve( main_sequence.size() ); - typedef std::vector<int> Iarray; - Iarray connectAt0, connectAt1; - connectAt0.reserve( Units.size() ); - connectAt1.reserve( Units.size() ); + int total_natom = 0; for (Sarray::const_iterator it = main_sequence.begin(); it != main_sequence.end(); ++it) { - DataSet_Coords* unit = 0; - if (LibSetNames.empty()) { - // Look for name - unit = (DataSet_Coords*)DSL.FindSetOfGroup( *it, DataSet::COORDINATES ); - } else { - // Look for name[aspect] - DataSet* ds = 0; - for (Sarray::const_iterator name = LibSetNames.begin(); name != LibSetNames.end(); ++name) - { - MetaData meta(*name, *it); - ds = DSL.CheckForSet( meta ); - if (ds != 0) break; - } - if (ds != 0) { - if (ds->Group() != DataSet::COORDINATES) { - mprinterr("Error: Set '%s' is not of type Coordinates.\n", ds->legend()); - return 1; - } - unit = (DataSet_Coords*)ds; - } - } + DataSet_Coords* unit = creator.IdTemplateFromName( *it ); + if (unit == 0) { mprinterr("Error: Unit '%s' not found.\n", it->c_str()); return 1; @@ -54,22 +37,10 @@ const if (unit->Size() > 1) { mprintf("Warning: Unit '%s' has more than 1 frame. Only using first frame.\n", unit->legend()); } - // Needs to have connect associated data - AssociatedData* ad = unit->GetAssociatedData(AssociatedData::CONNECT); - if (ad == 0) { - mprinterr("Error: Unit '%s' does not have CONNECT data.\n", unit->legend()); - return 1; - } - AssociatedData_Connect const& C = static_cast<AssociatedData_Connect const&>( *ad ); - if (C.NconnectAtoms() < 2) { - mprinterr("Error: Not enough connect atoms in unit '%s'\n", unit->legend()); - return 1; - } - // Update connect atom 1 indices based on their position in the sequence. - // Do not update connect atom 0 indices since they will not yet be connected. - connectAt0.push_back( C.Connect()[0] ); - connectAt1.push_back( C.Connect()[1] + total_natom ); Units.push_back( unit ); + // Use the first unit name as title to match leap behavior + if (title.empty()) + title = *it; total_natom += unit->Top().Natom(); } // END loop over sequence mprintf("\tFound %zu units.\n", Units.size()); @@ -77,45 +48,178 @@ const mprinterr("Error: No units.\n"); return 1; } +// for (unsigned int idx = 0; idx < Units.size(); idx++) +// mprintf("\tUnit %s HEAD %i TAIL %i\n", Units[idx]->legend(), connectAt0[idx]+1, connectAt1[idx]+1); + + Topology topOut; + topOut.SetDebug( debug_ ); + topOut.SetParmName( title, FileName() ); + Frame frameOut; + mprintf("\tFinal structure should have %i atoms.\n", total_natom); + frameOut.SetupFrame( total_natom ); + // Clear frame so that AddXYZ can be used + frameOut.ClearAtoms(); + + // hasPosition - for each atom in topOut, status on whether atom in frameOut needs building + Cpptraj::Structure::Builder::Barray hasPosition; + hasPosition.reserve( total_natom ); + + // Hold atom offsets needed when building residues + typedef std::vector<int> Iarray; + Iarray AtomOffsets; + AtomOffsets.reserve( Units.size() ); // FIXME assuming 1 residue per unit + + // For holding bonded atom pairs + typedef std::pair<int,int> Ipair; + typedef std::vector<Ipair> IParray; + + // Loop for setting up atoms in the topology from units + IParray interResBonds; + int prevTailAtom = -1; for (unsigned int idx = 0; idx < Units.size(); idx++) - mprintf("\tUnit %s HEAD %i TAIL %i\n", Units[idx]->legend(), connectAt0[idx]+1, connectAt1[idx]+1); - - Topology combinedTop; - combinedTop.SetDebug( debug_ ); - combinedTop.SetParmName( OUT->Meta().Name(), FileName() ); - combinedTop.AppendTop( Units.front()->Top() ); - //combinedTop.SetParmBox( Units // TODO - combinedTop.Brief("Sequence topology:"); - - Frame CombinedFrame = Units.front()->AllocateFrame(); - Units.front()->GetFrame(0, CombinedFrame); - - - using namespace Cpptraj::Structure; - Builder builder; - for (unsigned int idx = 1; idx < Units.size(); idx++) { - mprintf("\tConnect %s atom %i to %s atom %i\n", - Units[idx-1]->legend(), connectAt1[idx-1]+1, - Units[idx]->legend(), connectAt0[idx] +1); - Frame mol1frm = Units[idx]->AllocateFrame(); - Units[idx]->GetFrame(0, mol1frm); - int bondat0 = connectAt1[idx-1]; - int bondat1 = connectAt0[idx]; - if (bondat0 < 0 || bondat1 < 0) { - mprinterr("Error: Invalid connect atom(s) between %s atom %i to %s atom %i\n", - Units[idx-1]->legend(), bondat0+1, Units[idx]->legend(), bondat1+1); + { + int atomOffset = topOut.Natom(); + int resOffset = topOut.Nres(); + DataSet_Coords* unit = Units[idx]; + // Needs to have connect associated data + AssociatedData* ad = unit->GetAssociatedData(AssociatedData::CONNECT); + if (ad == 0) { + mprinterr("Error: Unit '%s' does not have CONNECT data.\n", unit->legend()); return 1; } - if (builder.Combine( combinedTop, CombinedFrame, Units[idx]->Top(), mol1frm, - connectAt1[idx-1], connectAt0[idx] )) { - mprinterr("Error: Sequence combine between units %u %s and %u %s failed.\n", - idx, Units[idx-1]->legend(), idx+1, Units[idx]->legend()); + AssociatedData_Connect const& CONN = static_cast<AssociatedData_Connect const&>( *ad ); + if (CONN.NconnectAtoms() < 2) { + mprinterr("Error: Not enough connect atoms in unit '%s'\n", unit->legend()); return 1; } + int headAtom = CONN.Connect()[0] + atomOffset; + int tailAtom = CONN.Connect()[1] + atomOffset; + mprintf("\tAdding atoms for unit %s (head %i tail %i)\n", unit->legend(), headAtom+1, tailAtom+1); + //mprintf("DEBUG: atom offset is %i\n", atomOffset); + // Add the unit atoms. Only the first unit has known position. + bool atomPosKnown = (idx == 0); + Frame unitFrm = unit->AllocateFrame(); + unit->GetFrame(0, unitFrm); + IParray intraResBonds; + for (int itgt = 0; itgt < unit->Top().Natom(); itgt++) + { + Atom sourceAtom = unit->Top()[itgt]; + Residue currentRes = unit->Top().Res( sourceAtom.ResNum() ); + currentRes.SetOriginalNum( currentRes.OriginalResNum() + resOffset ); + // Save the intra-residue bonds + int at0 = itgt + atomOffset; + for (Atom::bond_iterator bat = sourceAtom.bondbegin(); bat != sourceAtom.bondend(); ++bat) { + int at1 = *bat + atomOffset; + if (at1 > at0) { + if (debug_ > 1) + mprintf("Will add bond between %i and %i (original %i and %i)\n", at0+1, at1+1, itgt+1, *bat + 1); + intraResBonds.push_back( Ipair(at0, at1) ); + } + } + sourceAtom.ClearBonds(); // FIXME AddTopAtom should clear bonds + topOut.AddTopAtom( sourceAtom, currentRes ); + frameOut.AddVec3( Vec3(unitFrm.XYZ(itgt)) ); + hasPosition.push_back( atomPosKnown ); + } + // Add intra-residue bonds + for (IParray::const_iterator it = intraResBonds.begin(); it != intraResBonds.end(); ++it) + { + //mprintf("DEBUG: Intra-res bond: Res %s atom %s to res %s atom %s\n", + // topOut.TruncResNameOnumId(topOut[it->first].ResNum()).c_str(), *(topOut[it->first].Name()), + // topOut.TruncResNameOnumId(topOut[it->second].ResNum()).c_str(), *(topOut[it->second].Name())); + topOut.AddBond(it->first, it->second); + } + // Connect HEAD atom of this residue to TAIL of previous residue + if (idx > 0) { + if (prevTailAtom < 0 || headAtom < 0) { + mprinterr("Error: Could not find connect atoms for previous residue (%i) and/or this residue (%i)\n", + prevTailAtom+1, headAtom+1); + return 1; + } + if (debug_ > 1) + mprintf("Will add bond between %i and %i\n", prevTailAtom+1, headAtom+1); + // To preserve compat. with LEaP, make first atom the head atom. + interResBonds.push_back( Ipair(headAtom, prevTailAtom) ); + } else + // Placeholder + interResBonds.push_back( Ipair(-1, -1) ); + prevTailAtom = tailAtom; + + // All units after the first need building + if (atomPosKnown) + AtomOffsets.push_back( -1 ); + else + AtomOffsets.push_back( atomOffset ); + } // END loop over units + + // Build + bool buildFailed = false; + for (Iarray::const_iterator it = AtomOffsets.begin(); it != AtomOffsets.end(); ++it) + { + long int ires = it-AtomOffsets.begin(); + if (*it > -1) { + // Residue has atom offset which indicates it needs something built. + Cpptraj::Structure::Builder structureBuilder;// = new Cpptraj::Structure::Builder(); + structureBuilder.SetDebug( debug_ ); + if (creator.HasMainParmSet()) + structureBuilder.SetParameters( creator.MainParmSetPtr() ); + // Generate internals from the template, update indices to this topology. + DataSet_Coords* unit = Units[ires]; + Frame unitFrm = unit->AllocateFrame(); + unit->GetFrame(0, unitFrm); + if (structureBuilder.GenerateInternals(unitFrm, unit->Top(), + std::vector<bool>(unit->Top().Natom(), true))) + { + mprinterr("Error: Generate internals for unit failed.\n"); + return 1; + } + structureBuilder.UpdateIndicesWithOffset( *it ); + if (debug_ > 0) + mprintf("DEBUG: ***** BUILD unit %li %s *****\n", ires + 1, + topOut.TruncResNameOnumId(ires).c_str()); + + // Connect unit + if (debug_ > 0) + mprintf("DEBUG: Linking atoms %s and %s\n", + topOut.AtomMaskName(interResBonds[ires].first).c_str(), + topOut.AtomMaskName(interResBonds[ires].second).c_str()); + topOut.AddBond( interResBonds[ires].first, interResBonds[ires].second ); + // Generate internals around the link + if (structureBuilder.GenerateInternalsAroundLink(interResBonds[ires].first, interResBonds[ires].second, + frameOut, topOut, hasPosition, + Cpptraj::Structure::Builder::SEQUENCE)) + { + mprinterr("Error: Assign torsions around inter-unit link %s - %s failed.\n", + topOut.AtomMaskName(interResBonds[ires].first).c_str(), + topOut.AtomMaskName(interResBonds[ires].second).c_str()); + return 1; + } + // Update internal coords from known positions + // NOTE: By defintion, there are no known positions. + //if (structureBuilder.UpdateICsFromFrame( frameOut, topOut, hasPosition )) { + // mprinterr("Error: Failed to update Zmatrix with values from existing positions.\n"); + // return 1; + //} + if (structureBuilder.BuildSequenceFromInternals(frameOut, topOut, hasPosition, + interResBonds[ires].first, + interResBonds[ires].second)) + { + mprinterr("Error: Building residue %s failed.\n", + topOut.TruncResNameOnumId(ires).c_str()); + buildFailed = true; + } + //delete structureBuilder; + } } - OUT->CoordsSetup(combinedTop, CombinedFrame.CoordsInfo()); - OUT->AddFrame( CombinedFrame ); + // Finalize topology - determine molecules, dont renumber residues + topOut.CommonSetup(true, false); + topOut.Summary(); + + OUT->CoordsSetup(topOut, frameOut.CoordsInfo()); + OUT->AddFrame( frameOut ); + + if (buildFailed) return 1; return 0; } @@ -123,9 +227,16 @@ const // Exec_Sequence::Help() void Exec_Sequence::Help() const { - mprintf("\tname <output set name> <unit0> <unit1> ...\n" - "\t[{libset <libsetname>} ...]\n" - " Create a molecule from a sequence of units.\n"); + mprintf("\tname <output set name> <unit0> <unit1> ... [verbose <#>]\n"); + mprintf("\t[%s]\n", Cpptraj::Parm::GB_Params::HelpText().c_str()); + mprintf("\t[%s]\n" + "\t[{%s} ...]\n" + "\t[{%s} ...]\n", + Cpptraj::Structure::Creator::other_keywords_, + Cpptraj::Structure::Creator::template_keywords_, + Cpptraj::Structure::Creator::parm_keywords_); + mprintf(" Create a molecule from a sequence of units.\n" + " If parameter sets are loaded, parameters will be assigned to <output set name>.\n"); } @@ -133,13 +244,19 @@ void Exec_Sequence::Help() const Exec::RetType Exec_Sequence::Execute(CpptrajState& State, ArgList& argIn) { debug_ = State.Debug(); + // Args - Sarray LibSetNames; - std::string libsetname = argIn.GetStringKey("libset"); - while (!libsetname.empty()) { - LibSetNames.push_back( libsetname ); - libsetname = argIn.GetStringKey("libset"); + int verbose = argIn.getKeyInt("verbose", 0); + // GB radii set. Default to mbondi + Cpptraj::Parm::GB_Params gbradii; + if (gbradii.Init_GB_Radii(argIn, Cpptraj::Parm::UNKNOWN_GB)) return CpptrajState::ERR; + + // Creator args + Cpptraj::Structure::Creator creator(debug_); + if (creator.InitCreator(argIn, State.DSL(), debug_)) { + return CpptrajState::ERR; } + // Output COORDS set name std::string dsname = argIn.GetStringKey("name"); if (dsname.empty()) { mprinterr("Error: No output set name specified with 'name'\n"); @@ -150,7 +267,6 @@ Exec::RetType Exec_Sequence::Execute(CpptrajState& State, ArgList& argIn) mprinterr("Error: Could not create output COORDS set named '%s'\n", dsname.c_str()); return CpptrajState::ERR; } - // Get the actual sequence from remaining args. Sarray main_sequence; ArgList remaining = argIn.RemainingArgs(); @@ -165,12 +281,6 @@ Exec::RetType Exec_Sequence::Execute(CpptrajState& State, ArgList& argIn) } // Info - if (!LibSetNames.empty()) { - mprintf("\tLibrary set names:"); - for (Sarray::const_iterator it = LibSetNames.begin(); it != LibSetNames.end(); ++it) - mprintf(" %s", it->c_str()); - mprintf("\n"); - } mprintf("\tMain sequence:"); for (Sarray::const_iterator it = main_sequence.begin(); it != main_sequence.end(); ++it) mprintf(" %s", it->c_str()); @@ -178,10 +288,40 @@ Exec::RetType Exec_Sequence::Execute(CpptrajState& State, ArgList& argIn) mprintf("\tOutput set name : %s\n", OUT->legend()); // Execute - if (generate_sequence(OUT, State.DSL(), main_sequence, LibSetNames)) { + if (generate_sequence(OUT, State.DSL(), main_sequence, creator)) { mprinterr("Error: Could not generate sequence.\n"); return CpptrajState::ERR; } - return CpptrajState::OK; + // Assign parameters if needed + Exec::RetType ret = CpptrajState::OK; + if (creator.HasMainParmSet()) { + Topology& topOut = static_cast<Topology&>( *(OUT->TopPtr()) ); + mprintf("\tAssigning parameters.\n"); + //t_assign_.Start(); + Cpptraj::Parm::AssignParams AP; + AP.SetDebug( debug_ ); + AP.SetVerbose( verbose ); + int nmissing = 0; + if ( AP.AssignParameters( topOut, *(creator.MainParmSetPtr()), nmissing ) ) { + mprinterr("Error: Could not assign parameters for '%s'.\n", topOut.c_str()); + ret = CpptrajState::ERR; + } + if (nmissing != 0) { + mprinterr("Error: Missing %i parameters for '%s'\n", nmissing, topOut.c_str()); + ret = CpptrajState::ERR; + } + // Assign GB parameters + if (gbradii.Assign_GB_Radii( topOut )) { + mprinterr("Error: Could not assign GB parameters for '%s'\n", topOut.c_str()); + ret = CpptrajState::ERR; + } + // Create empty arrays for the TREE, JOIN, and IROTAT arrays + topOut.AllocTreeChainClassification( ); + topOut.AllocJoinArray(); + topOut.AllocRotateArray(); + //t_assign_.Stop(); + } + + return ret; } diff --git a/src/Exec_Sequence.h b/src/Exec_Sequence.h index 148cf4e1af..12c71db23b 100644 --- a/src/Exec_Sequence.h +++ b/src/Exec_Sequence.h @@ -1,6 +1,11 @@ #ifndef INC_EXEC_SEQUENCE_H #define INC_EXEC_SEQUENCE_H #include "Exec.h" +namespace Cpptraj { +namespace Structure { +class Creator; +} +} /// Create a molecule from a sequence of units class Exec_Sequence : public Exec { public: @@ -12,7 +17,7 @@ class Exec_Sequence : public Exec { typedef std::vector<std::string> Sarray; int generate_sequence(DataSet_Coords*, DataSetList const&, - Sarray const&, Sarray const&) const; + Sarray const&, Cpptraj::Structure::Creator const&) const; int debug_; }; diff --git a/src/Exec_Source.cpp b/src/Exec_Source.cpp new file mode 100644 index 0000000000..dca4fa11d4 --- /dev/null +++ b/src/Exec_Source.cpp @@ -0,0 +1,61 @@ +#include "Exec_Source.h" +#include "CpptrajStdio.h" +#include "DataIO_LeapRC.h" + +// Exec_Source::Help() +void Exec_Source::Help() const +{ + mprintf("\t<filename>\n" + " Process <filename> as a leaprc file, mostly intended for loading\n" + " force field parameters from Amber leaprc files. If AMBERHOME\n" + " is set CPPTRAJ will look for leaprc files in\n" + " $AMBERHOME/dat/leap/cmd, otherwise the full path must be specified.\n"); + DataIO_LeapRC::PrintSupportedLeapCommands(); +} + +// Exec_Source::Execute() +Exec::RetType Exec_Source::Execute(CpptrajState& State, ArgList& argIn) +{ + // source <file> + std::string fname = argIn.GetStringNext(); + if (fname.empty()) { + mprinterr("Error: No filename given for 'source'.\n"); + return CpptrajState::ERR; + } + // If file is in this dir, read it. + // Otherwise, prepend AMBERHOME/dat/leap/cmd + FileName fileName; + if ( File::Exists( fname ) ) { + fileName.SetFileName( fname ); + } else { + const char* env = getenv("AMBERHOME"); + if (env == 0) { + mprinterr("Error: %s not found and AMBERHOME is not set.\n", fname.c_str()); + return CpptrajState::ERR; + } + fileName.SetFileName( std::string(env) + "/dat/leap/cmd/" + fname ); + if (!File::Exists(fileName)) { + mprinterr("Error: %s not found.\n", fileName.full()); + return CpptrajState::ERR; + } + } + mprintf("\tReading %s\n", fileName.full()); + + DataIO_LeapRC infile; + infile.SetDebug( State.Debug() ); + CpptrajFile tmp; + tmp.SetupRead( fileName, State.Debug() ); + if (!infile.ID_DataFormat( tmp )) { + mprintf("Warning: %s does not appear to be a leaprc file.\n", fileName.full()); + } + if (infile.processReadArgs( argIn )) { + mprinterr("Error: Could not process read args for leaprc file %s\n", fileName.full()); + return CpptrajState::ERR; + } + if (infile.ReadData(fileName, State.DSL(), fileName.Base())) { + mprinterr("Error: Could not read leaprc file %s\n", fileName.full()); + return CpptrajState::ERR; + } + + return CpptrajState::OK; +} diff --git a/src/Exec_Source.h b/src/Exec_Source.h new file mode 100644 index 0000000000..ea20f3c979 --- /dev/null +++ b/src/Exec_Source.h @@ -0,0 +1,12 @@ +#ifndef INC_EXEC_SOURCE_H +#define INC_EXEC_SOURCE_H +#include "Exec.h" +/// Replicate LEaPs source command +class Exec_Source : public Exec { + public: + Exec_Source() : Exec(GENERAL) {} + void Help() const; + DispatchObject* Alloc() const { return (DispatchObject*)new Exec_Source(); } + RetType Execute(CpptrajState&, ArgList&); +}; +#endif diff --git a/src/Exec_Top.cpp b/src/Exec_Top.cpp index 380f1f5fd6..0673117d7c 100644 --- a/src/Exec_Top.cpp +++ b/src/Exec_Top.cpp @@ -47,12 +47,15 @@ static int CommonSetup(TopInfo& info, CpptrajState& State, ArgList& argIn, const } if (argIn.hasKey("nointrares")) info.SetNoIntraRes(true); + if (argIn.hasKey("noindices")) + info.SetPrintParameterIndices(false); return err; } // ----------------------------------------------------------------------------- void Exec_BondInfo::Help() const { - mprintf("\t[%s] [<mask1>] [<mask2>] [out <file>] [nointrares]\n", DataSetList::TopIdxArgs); + mprintf("\t[%s]\n" + "\t[<mask1>] [<mask2>] [out <file>] [nointrares] [noindices]\n", DataSetList::TopIdxArgs); mprintf(" For specified topology (first by default) either print bond info for all\n" " atoms in <mask1>, or print info for bonds with first atom in <mask1> and\n" " second atom in <mask2>. If 'nointrares' is specified, only print bonds\n" @@ -68,7 +71,8 @@ Exec::RetType Exec_BondInfo::Execute(CpptrajState& State, ArgList& argIn) { } // ----------------------------------------------------------------------------- void Exec_UBInfo::Help() const { - mprintf("\t[%s] [<mask1>] [<mask2>] [out <file>]\n", DataSetList::TopIdxArgs); + mprintf("\t[%s]\n" + "\t[<mask1>] [<mask2>] [out <file>] [noindices]\n", DataSetList::TopIdxArgs); mprintf(" For specified topology (first by default) either print CHARMM Urey-Bradley\n" " info for all atoms in <mask1>, or print info for bonds with first atom in\n" " <mask1> and second atom in <mask2>.\n"); @@ -97,7 +101,9 @@ Exec::RetType Exec_BondParmInfo::Execute(CpptrajState& State, ArgList& argIn) { // ----------------------------------------------------------------------------- void Exec_AngleInfo::Help() const { - mprintf("\t[%s] [<mask1>] [<mask2> <mask3>]\n\t[out <file>]\n", DataSetList::TopIdxArgs); + mprintf("\t[%s]\n" + "\t[<mask1>] [<mask2> <mask3>] [noindices]\n" + "\t[out <file>]\n", DataSetList::TopIdxArgs); mprintf(" For specified topology (first by default) either print angle info for all\n" " atoms in <mask1>, or print info for angles with first atom in <mask1>,\n" " second atom in <mask2>, and third atom in <mask3>.\n"); @@ -113,10 +119,13 @@ Exec::RetType Exec_AngleInfo::Execute(CpptrajState& State, ArgList& argIn) { } // ----------------------------------------------------------------------------- void Exec_DihedralInfo::Help() const { - mprintf("\t[%s] [<mask1>] [<mask2> <mask3> <mask4>]\n\t[out <file>]\n", DataSetList::TopIdxArgs); + mprintf("\t[%s]\n" + "\t{[<mask1>] [<mask2> <mask3> <mask4>] | tgtidx <#>} [noindices]\n" + "\t[out <file>] [extra]\n", DataSetList::TopIdxArgs); mprintf(" For specified topology (first by default) either print dihedral info for all\n" " atoms in <mask1>, or print info for dihedrals with first atom in <mask1>,\n" - " second atom in <mask2>, third atom in <mask3>, and fourth atom in <mask4>.\n"); + " second atom in <mask2>, third atom in <mask3>, and fourth atom in <mask4>.\n" + " If 'extra' is specified, print SCEE and SCNB factors as well.\n"); } Exec::RetType Exec_DihedralInfo::Execute(CpptrajState& State, ArgList& argIn) { @@ -125,19 +134,27 @@ Exec::RetType Exec_DihedralInfo::Execute(CpptrajState& State, ArgList& argIn) { "Error: selection please use 4 masks.\n"); return CpptrajState::ERR; } + bool printExtraInfo = argIn.hasKey("extra"); + int tgtidx = argIn.getKeyInt("tgtidx", 0) - 1; TopInfo info; if (CommonSetup(info, State, argIn, "Dihedral info")) return CpptrajState::ERR; - std::string mask1 = argIn.GetMaskNext(); - std::string mask2 = argIn.GetMaskNext(); - std::string mask3 = argIn.GetMaskNext(); - if (info.PrintDihedralInfo( mask1, mask2, mask3, argIn.GetMaskNext(), false )) + std::string mask1, mask2, mask3, mask4; + if (tgtidx == -1) { + mask1 = argIn.GetMaskNext(); + mask2 = argIn.GetMaskNext(); + mask3 = argIn.GetMaskNext(); + mask4 = argIn.GetMaskNext(); + } + if (info.PrintDihedralInfo( mask1, mask2, mask3, mask4, false, printExtraInfo, tgtidx )) return CpptrajState::ERR; return CpptrajState::OK; } // ----------------------------------------------------------------------------- void Exec_ImproperInfo::Help() const { - mprintf("\t[%s] [<mask1>] [<mask2> <mask3> <mask4>]\n\t[out <file>]\n", DataSetList::TopIdxArgs); + mprintf("\t[%s]\n" + "\t{[<mask1>] [<mask2> <mask3> <mask4>] | tgtidx <#>} [noindices]\n" + "\t[out <file>]\n", DataSetList::TopIdxArgs); mprintf(" For specified topology (first by default) either print CHARMM improper info\n" " for all atoms in <mask1>, or print info for dihedrals with first atom in <mask1>,\n" " second atom in <mask2>, third atom in <mask3>, and fourth atom in <mask4>.\n"); @@ -149,12 +166,17 @@ Exec::RetType Exec_ImproperInfo::Execute(CpptrajState& State, ArgList& argIn) { "Error: selection please use 4 masks.\n"); return CpptrajState::ERR; } + int tgtidx = argIn.getKeyInt("tgtidx", 0) - 1; TopInfo info; if (CommonSetup(info, State, argIn, "Improper info")) return CpptrajState::ERR; - std::string mask1 = argIn.GetMaskNext(); - std::string mask2 = argIn.GetMaskNext(); - std::string mask3 = argIn.GetMaskNext(); - if (info.PrintDihedralInfo( mask1, mask2, mask3, argIn.GetMaskNext(), true )) + std::string mask1, mask2, mask3, mask4; + if (tgtidx == -1) { + mask1 = argIn.GetMaskNext(); + mask2 = argIn.GetMaskNext(); + mask3 = argIn.GetMaskNext(); + mask4 = argIn.GetMaskNext(); + } + if (info.PrintDihedralInfo( mask1, mask2, mask3, mask4, true, false, tgtidx )) return CpptrajState::ERR; return CpptrajState::OK; } diff --git a/src/Exec_UpdateParameters.cpp b/src/Exec_UpdateParameters.cpp index d42b174e29..696f682bb6 100644 --- a/src/Exec_UpdateParameters.cpp +++ b/src/Exec_UpdateParameters.cpp @@ -2,13 +2,16 @@ #include "CpptrajStdio.h" #include "DataSet_Parameters.h" #include "DataSet_Topology.h" +#include "Parm/AssignParams.h" +#include "Parm/GetParams.h" const char* Exec_UpdateParameters::disclaimer_ = "Warning: This command is provided for convenience only.\nWarning: For editing topology files, ParmEd is a much better alternative.\n"; // Exec_UpdateParameters::Help() void Exec_UpdateParameters::Help() const { - mprintf("\t%s setname <parm set>\n", DataSetList::TopArgs); + mprintf("\tsetname <parmset> [verbose <#>]\n" + "\t%s\n", DataSetList::TopArgs); mprintf(" Update parameters in specified topology with those from <parm set>.\n" " <parm set> can either be a parameter set or a topology. If a\n" " parameter from <parm set> does not exist in the topology it\n" @@ -20,7 +23,9 @@ void Exec_UpdateParameters::Help() const Exec::RetType Exec_UpdateParameters::Execute(CpptrajState& State, ArgList& argIn) { mprintf("%s", disclaimer_); + int verbose = argIn.getKeyInt("verbose", 1); std::string dsname = argIn.GetStringKey("setname"); + //bool genAngles = argIn.hasKey("genangles"); if (dsname.empty()) { mprinterr("Error: Specify parameter set.\n"); return CpptrajState::ERR; @@ -43,12 +48,26 @@ Exec::RetType Exec_UpdateParameters::Execute(CpptrajState& State, ArgList& argIn mprintf("\tUpdating parameters in topology '%s' using those in set '%s'\n", top.c_str(), ds->legend()); + //if (genAngles) + // mprintf("\tWill attempt to generate angle/dihedral information from bonds.\n"); + //if (genAngles) { + // if (Cpptraj::Structure::GenerateBondAngleTorsionArrays( top )) { + // mprinterr("Error: Could not generate angle/dihedral information.\n"); + // return CpptrajState::ERR; + // } + //} + + Cpptraj::Parm::AssignParams AP; + AP.SetDebug( State.Debug() ); + AP.SetVerbose( verbose ); if (ds->Type() == DataSet::PARAMETERS) - top.UpdateParams(static_cast<DataSet_Parameters const&>( *ds )); + AP.UpdateParameters( top, static_cast<DataSet_Parameters const&>( *ds ) ); else if (ds->Type() == DataSet::TOPOLOGY) { + Cpptraj::Parm::GetParams GP; + GP.SetDebug( State.Debug() ); DataSet_Topology const& topds = static_cast<DataSet_Topology const&>( *ds ); - top.UpdateParams(topds.Top().GetParameters()); + AP.UpdateParameters( top, GP.GetParameters( topds.Top() ) ); } else // Sanity check return CpptrajState::ERR; diff --git a/src/Exec_Zmatrix.cpp b/src/Exec_Zmatrix.cpp index 16b643c408..0a109eebba 100644 --- a/src/Exec_Zmatrix.cpp +++ b/src/Exec_Zmatrix.cpp @@ -7,14 +7,18 @@ using namespace Cpptraj::Structure; /** Get Zmatrix for specified molecule at specified frame number. */ int Exec_Zmatrix::getZmatrix(DataSet_Coords* CRD, int molnum, int frmidx, - std::string const& dsname, DataFile* outfile, CpptrajState& State) + std::string const& dsname, DataFile* outfile, CpptrajState& State, + bool complete_zmatrix) const { if (CRD == 0) { mprinterr("Error: No COORDS set specified.\n"); return CpptrajState::ERR; } - mprintf("\tGetting Z-matrix from set '%s'\n", CRD->legend()); + if (complete_zmatrix) + mprintf("\tGetting complete Z-matrix from set '%s'\n", CRD->legend()); + else + mprintf("\tGetting minimal Z-matrix from set '%s'\n", CRD->legend()); if (CRD->Size() < 1) { mprinterr("Error: Set '%s' is empty.\n", CRD->legend()); return 1; @@ -41,7 +45,11 @@ const Zmatrix& zmatrix = *(zset->Zptr()); zmatrix.SetDebug( State.Debug() ); - int errStat = zmatrix.SetFromFrame( frmIn, CRD->Top(), molnum ); + int errStat; + if (complete_zmatrix) + errStat = zmatrix.SetFromFrameAndConnect(frmIn, CRD->Top()); + else + errStat = zmatrix.SetFromFrame( frmIn, CRD->Top(), molnum ); if (debug_ > 0) zmatrix.print(); // DEBUG return errStat; } @@ -108,11 +116,13 @@ const void Exec_Zmatrix::Help() const { mprintf("\t<COORDS set name> [name <output set name>]\n" - "\t{ zset <input zmatrix set> [parm <top>|parmindex <#>] |\n" - "\t [molnum <mol#>] [frame <frame#>] [out <zmatrix file>] }\n" + "\t{ zset <input zmatrix set> [parm <top>|parmindex <#>]|\n" + "\t [complete] [molnum <mol#>] [frame <frame#>] [out <zmatrix file>] }\n" " If 'zset' is specified, use Z-matrix to generate coordinates using\n" " a specified topology or topology from specified COORDS set;\n" - " output is a new COORDS set.\n" + " output is a new COORDS set. If 'complete is specified, generate\n" + " as many internal coordinates as possible, otherwise a minimal\n" + " set (1 internal coordinate per atom) will be generated.\n" " Otherwise calculate Zmatrix for specified molecule/frame of\n" " specified COORDS set; output is a Z-matrix set.\n"); } @@ -123,6 +133,7 @@ Exec::RetType Exec_Zmatrix::Execute(CpptrajState& State, ArgList& argIn) debug_ = State.Debug(); std::string dsname = argIn.GetStringKey("name"); std::string zsetname = argIn.GetStringKey("zset"); + bool complete_zmatrix = argIn.hasKey("complete"); int molnum = -1; int frmidx = -1; DataFile* outfile = 0; @@ -151,7 +162,7 @@ Exec::RetType Exec_Zmatrix::Execute(CpptrajState& State, ArgList& argIn) if (!zsetname.empty()) { errStat = putZmatrix(CRD, topIn, zsetname, dsname, State); } else { - errStat = getZmatrix(CRD, molnum, frmidx, dsname, outfile, State); + errStat = getZmatrix(CRD, molnum, frmidx, dsname, outfile, State, complete_zmatrix); } if (errStat != 0) return CpptrajState::ERR; diff --git a/src/Exec_Zmatrix.h b/src/Exec_Zmatrix.h index 0b89547724..3be172520f 100644 --- a/src/Exec_Zmatrix.h +++ b/src/Exec_Zmatrix.h @@ -9,7 +9,7 @@ class Exec_Zmatrix : public Exec { DispatchObject* Alloc() const { return (DispatchObject*)new Exec_Zmatrix(); } RetType Execute(CpptrajState&, ArgList&); private: - int getZmatrix(DataSet_Coords*, int, int, std::string const&, DataFile*, CpptrajState&) const; + int getZmatrix(DataSet_Coords*, int, int, std::string const&, DataFile*, CpptrajState&,bool) const; int putZmatrix(DataSet_Coords*, Topology*, std::string const&, std::string const&, CpptrajState&) const; int debug_; diff --git a/src/FileName.cpp b/src/FileName.cpp index e98549bca9..d0a0de81ba 100644 --- a/src/FileName.cpp +++ b/src/FileName.cpp @@ -343,3 +343,7 @@ bool File::Exists(FileName const& fn) { bool File::Exists(std::string const& fname) { return File::Exists( FileName(fname) ); } + +int File::Remove(FileName const& fname) { + return remove( fname.full() ); +} diff --git a/src/FileName.h b/src/FileName.h index 8ac9f6eb27..860d3e0a4a 100644 --- a/src/FileName.h +++ b/src/FileName.h @@ -73,6 +73,7 @@ namespace File { void ErrorMsg(const char*); bool Exists(std::string const&); bool Exists(FileName const&); + int Remove(FileName const&); /** Given lowest replica traj filename, split into components for search. */ class RepName { public: diff --git a/src/Frame.cpp b/src/Frame.cpp index 7e3e69363c..fe1207a06f 100644 --- a/src/Frame.cpp +++ b/src/Frame.cpp @@ -1,5 +1,6 @@ #include <cmath> // sqrt #include <cstring> // memcpy, memset +#include <algorithm> // std::max #include "Frame.h" #include "Constants.h" // SMALL #include "CpptrajStdio.h" @@ -296,7 +297,7 @@ void Frame::Info(const char *msg) const { mprintf("\tFrame [%s]:",msg); else mprintf("\tFrame:"); - mprintf("%i atoms, %i coords",natom_, ncoord_); + mprintf("%i atoms (%i max), %i coords",natom_, maxnatom_, ncoord_); if (V_!=0) mprintf(", with Velocities"); if (F_!=0) mprintf(", with Forces"); if (!remd_indices_.empty()) mprintf(", with replica indices"); @@ -304,10 +305,17 @@ void Frame::Info(const char *msg) const { } // Frame::IncreaseX() -void Frame::IncreaseX() { - maxnatom_ += 500; +/** Increase the maximum size of the Frame by offset. */ +int Frame::IncreaseX(int offset) { + //mprintf("DEBUG: Increasing max number of atoms from %i to %i\n", maxnatom_, maxnatom_ + offset); + maxnatom_ += offset; + if (maxnatom_ < 1) { + mprinterr("Internal Error: Frame::IncreaseX(): New size is < 1 atom.\n"); + return 1; + } + // Coordinates double *newX = new double[ maxnatom_ * 3 ]; - if (X_!=0) { + if (X_ != 0) { memcpy(newX, X_, natom_ * COORDSIZE_); if (!memIsExternal_) delete[] X_; @@ -315,6 +323,19 @@ void Frame::IncreaseX() { memIsExternal_ = false; } X_ = newX; + // Velocity + if (V_ != 0) { + double *newV = new double[ maxnatom_ * 3 ]; + memcpy(newV, V_, natom_ * COORDSIZE_); + V_ = newV; + } + // Force + if (F_ != 0) { + double *newF = new double[ maxnatom_ * 3 ]; + memcpy(newF, F_, natom_ * COORDSIZE_); + F_ = newF; + } + return 0; } /** Set atom/coord count to zero but do not clear memory. */ @@ -323,12 +344,17 @@ void Frame::ClearAtoms() { ncoord_ = 0; } +/// Used to calculate how much natom_ should increase if a reallocation is needed. +static inline int calc_natom_increase(int natomIn) { + return std::max(500, 2*natomIn); +} + // Frame::AddXYZ() /** Append the given XYZ coord to this frame. */ void Frame::AddXYZ(const double *XYZin) { if (XYZin == 0) return; if (natom_ >= maxnatom_) - IncreaseX(); + IncreaseX( calc_natom_increase(natom_) ); memcpy(X_ + ncoord_, XYZin, COORDSIZE_); ++natom_; ncoord_ += 3; @@ -337,7 +363,7 @@ void Frame::AddXYZ(const double *XYZin) { // Frame::AddVec3() void Frame::AddVec3(Vec3 const& vIn) { if (natom_ >= maxnatom_) - IncreaseX(); + IncreaseX( calc_natom_increase(natom_) ); memcpy(X_ + ncoord_, vIn.Dptr(), COORDSIZE_); ++natom_; ncoord_ += 3; @@ -694,6 +720,28 @@ void Frame::SetFrame(Frame const& frameIn) { std::copy( frameIn.F_, frameIn.F_ + ncoord_, F_ ); } +/** Append incoming frame */ +void Frame::AppendFrame(Frame const& frameIn) { + int newNatom = natom_ + frameIn.natom_; + if (newNatom > maxnatom_) + IncreaseX( frameIn.natom_ ); + int natom3 = natom_ * 3; + // Append coords + int ncoordIn = frameIn.ncoord_; + if (X_ != 0 && frameIn.X_ != 0) + std::copy( frameIn.X_, frameIn.X_ + ncoordIn, X_ + natom3 ); + // Append mass + Mass_.insert( Mass_.end(), frameIn.Mass_.begin(), frameIn.Mass_.end() ); + // Append velocity if necessary + if (frameIn.V_ != 0 && V_ != 0) + std::copy( frameIn.V_, frameIn.V_ + ncoordIn, V_ + natom3 ); + // Append force if necessary + if (frameIn.F_ != 0 && F_ != 0) + std::copy( frameIn.F_, frameIn.F_ + ncoordIn, F_ + natom3 ); + natom_ = newNatom; + ncoord_ = natom_ * 3; +} + /** Zero force array. */ void Frame::ZeroForces() { if (F_ != 0) @@ -1006,6 +1054,20 @@ Vec3 Frame::CenterOnOrigin(bool useMassIn) return center; } +/** Center all atoms on given point. */ +void Frame::CenterOnPoint(Vec3 const& pos, bool useMassIn) +{ + Vec3 currentCenter; + if (useMassIn) + currentCenter = VCenterOfMass(); + else + currentCenter = VGeometricCenter(); + Vec3 trans( pos[0] - currentCenter[0], + pos[1] - currentCenter[1], + pos[2] - currentCenter[2] ); + Translate(trans); +} + // Frame::Align() void Frame::Align(Frame const& REF, AtomMask const& mask) { Frame tmpRef(REF, mask); @@ -1405,8 +1467,13 @@ double Frame::CalcTemperature(AtomMask const& mask, int deg_of_freedom) const { /** Set an orthogonal bounding box around all atoms, ensuring it * can encompass the given atomic radii, plus an offset. */ -void Frame::SetOrthoBoundingBox(std::vector<double> const& Radii, double offset) +int Frame::SetOrthoBoundingBox(std::vector<double> const& Radii, double offset) { + // Sanity check + if ((int)Radii.size() < natom_) { + mprinterr("Internal Error: Frame::SetOrthoBoundingBox: # of radii %zu < # atoms in frame %i\n", Radii.size(), natom_); + return 1; + } int atom = 0; Vec3 min(XYZ( atom )); Vec3 max(min); @@ -1453,7 +1520,7 @@ void Frame::SetOrthoBoundingBox(std::vector<double> const& Radii, double offset) xyzabg[3] = 90.0; xyzabg[4] = 90.0; xyzabg[5] = 90.0; - box_.SetupFromXyzAbg(xyzabg); + return box_.SetupFromXyzAbg(xyzabg); } #ifdef MPI diff --git a/src/Frame.h b/src/Frame.h index e83ab145eb..d45d0221ad 100644 --- a/src/Frame.h +++ b/src/Frame.h @@ -158,6 +158,8 @@ class Frame { int SetupFrameFromMask(AtomMask const&, std::vector<Atom> const&, CoordinateInfo const&); /// Allocate frame for selected # atoms int SetupFrameFromMask(AtomMask const&); + /// Increase the maximum number of atoms the Frame can hold by given offset + int IncreaseX(int); // ----- Add/remove components from Frame ---- int AddVelocities(Darray const&); void RemoveVelocities(); @@ -178,6 +180,8 @@ class Frame { void SetFrame(Frame const&, AtomMask const&); /// Copy entire input frame void SetFrame(Frame const&); + /// Append given frame to this one, reallocating if necessary + void AppendFrame(Frame const&); /// Zero the force array void ZeroForces(); /// Zero the velocity array @@ -223,6 +227,10 @@ class Frame { inline Vec3 VCenterOfMass(Unit const&) const; /// \return Geometric center of atoms in Unit inline Vec3 VGeometricCenter(Unit const&) const; + /// \return Center of mass of all atoms in Frame + inline Vec3 VCenterOfMass() const; + /// \return Geometric center of all atoms in Frame + inline Vec3 VGeometricCenter() const; /// Translate atoms in mask by Vec inline void Translate(Vec3 const&, AtomMask const&); /// Translate atoms in range by Vec @@ -256,6 +264,8 @@ class Frame { void Scale(AtomMask const&, double, double, double); /// Translate atoms to origin. Vec3 CenterOnOrigin(bool); + /// Translate atoms to given point. + void CenterOnPoint(Vec3 const&, bool); // Align on reference void Align(Frame const&, AtomMask const&); // Coordinate calculation @@ -275,7 +285,7 @@ class Frame { /// Calculate temperature of atoms in mask. double CalcTemperature(AtomMask const&,int) const; /// Set an orthogonal bounding box - void SetOrthoBoundingBox(std::vector<double> const& Radii, double); + int SetOrthoBoundingBox(std::vector<double> const& Radii, double); # ifdef MPI // ----- Parallel Routines ------------------- int SendFrame(int, Parallel::Comm const&) const; @@ -306,7 +316,6 @@ class Frame { bool memIsExternal_; ///< True if Frame is not responsible for freeing memory. void swap(Frame&, Frame&); - void IncreaseX(); inline bool ReallocateX(int); /// Allocate coords/velo/force based on given num atoms and coordinate info. bool setupFrame(unsigned int, CoordinateInfo const&); @@ -380,6 +389,11 @@ Vec3 Frame::VCenterOfMass(int startAtom, int stopAtom) const { return Vec3( Coord0 / sumMass, Coord1 / sumMass, Coord2 / sumMass ); } +/** Center of mass of all atoms */ +Vec3 Frame::VCenterOfMass() const { + return VCenterOfMass(0, natom_); +} + /** Calculate the center of mass of a unit. */ Vec3 Frame::VCenterOfMass(Unit const& unit) const { Vec3 out(0.0); @@ -400,6 +414,7 @@ Vec3 Frame::VCenterOfMass(Unit const& unit) const { return out; } +/** Geometric center of a range of atoms */ Vec3 Frame::VGeometricCenter(int startAtom, int stopAtom) const { double Coord0 = 0.0; double Coord1 = 0.0; @@ -416,6 +431,11 @@ Vec3 Frame::VGeometricCenter(int startAtom, int stopAtom) const { return Vec3( Coord0 / sumMass, Coord1 / sumMass, Coord2 / sumMass ); } +/** Geometric center of all atoms */ +Vec3 Frame::VGeometricCenter() const { + return VGeometricCenter(0, natom_); +} + /** Calculate the Geometric center of a Unit. */ Vec3 Frame::VGeometricCenter(Unit const& unit) const { Vec3 out(0.0); diff --git a/src/GuessAtomHybridization.cpp b/src/GuessAtomHybridization.cpp new file mode 100644 index 0000000000..249bb29a31 --- /dev/null +++ b/src/GuessAtomHybridization.cpp @@ -0,0 +1,57 @@ +#include "GuessAtomHybridization.h" +#include "Atom.h" + +AtomType::HybridizationType Cpptraj::GuessAtomHybridization(Atom const& AJ, std::vector<Atom> const& atoms) +{ + AtomType::HybridizationType hybrid = AtomType::UNKNOWN_HYBRIDIZATION; + // Handle specific elements + switch (AJ.Element()) { + case Atom::CARBON : + switch (AJ.Nbonds()) { + case 2 : hybrid = AtomType::SP; break; + case 3 : hybrid = AtomType::SP2; break; + case 4 : hybrid = AtomType::SP3; break; + } + break; + case Atom::NITROGEN : + switch (AJ.Nbonds()) { + case 2 : hybrid = AtomType::SP2; break; + case 3 : + // Check for potential SP2. If only 1 of the bonded atoms is + // hydrogen, assume SP2. TODO actually check for aromaticity. + int n_hydrogens = 0; + for (Atom::bond_iterator bat = AJ.bondbegin(); bat != AJ.bondend(); ++bat) + if (atoms[*bat].Element() == Atom::HYDROGEN) + n_hydrogens++; + if (n_hydrogens == 1) + hybrid = AtomType::SP2; + else + hybrid = AtomType::SP3; + break; + } + break; + case Atom::OXYGEN : + switch (AJ.Nbonds()) { + case 2 : hybrid = AtomType::SP3; break; + } + break; + case Atom::SULFUR : + switch (AJ.Nbonds()) { + case 2 : hybrid = AtomType::SP3; break; + } + break; + default: hybrid = AtomType::UNKNOWN_HYBRIDIZATION; break; + } +/* +if (hybrid == AtomType::UNKNOWN_HYBRIDIZATION) { + // Assign a theta based on number of bonds + switch (AJ.Nbonds()) { + case 4 : hybrid = AtomType::SP3; break; + case 3 : hybrid = AtomType::SP2; break; + case 2 : hybrid = AtomType::SP; break; + default : mprinterr("Internal Error: GuessAtomHybridization(): Unhandled # bonds for %s (%i)\n", topIn.AtomMaskName(aj).c_str(), AJ.Nbonds()); return 1; + } +*/ + + return hybrid; +} diff --git a/src/GuessAtomHybridization.h b/src/GuessAtomHybridization.h new file mode 100644 index 0000000000..a99bea9d32 --- /dev/null +++ b/src/GuessAtomHybridization.h @@ -0,0 +1,10 @@ +#ifndef INC_GUESSATOMHYBRIDIZATION_H +#define INC_GUESSATOMHYBRIDIZATION_H +#include <vector> +#include "AtomType.h" // for HybridizationType +class Atom; +namespace Cpptraj { +/// Guess atom hybridization type based on element/bonding +AtomType::HybridizationType GuessAtomHybridization(Atom const&, std::vector<Atom> const&); +} +#endif diff --git a/src/Makefile b/src/Makefile index f0b23d0410..6095a12832 100644 --- a/src/Makefile +++ b/src/Makefile @@ -10,11 +10,13 @@ include Cluster/clusterfiles CLUSTER_SOURCEFILES=$(CLUSTER_SOURCES:%.cpp=Cluster/%.cpp) include Structure/structurefiles STRUCTURE_SOURCEFILES=$(STRUCTURE_SOURCES:%.cpp=Structure/%.cpp) +include Parm/parmfiles +PARM_SOURCEFILES=$(PARM_SOURCES:%.cpp=Parm/%.cpp) include Energy/energyfiles ENERGY_SOURCEFILES=$(ENERGY_SOURCES:%.cpp=Energy/%.cpp) # All object files -OBJECTS=$(SOURCES:.cpp=.o) $(CSOURCES:.c=.o) $(CLUSTER_SOURCEFILES:.cpp=.o) $(STRUCTURE_SOURCEFILES:.cpp=.o) $(ENERGY_SOURCEFILES:.cpp=.o) +OBJECTS=$(SOURCES:.cpp=.o) $(CSOURCES:.c=.o) $(CLUSTER_SOURCEFILES:.cpp=.o) $(STRUCTURE_SOURCEFILES:.cpp=.o) $(PARM_SOURCEFILES:.cpp=.o) $(ENERGY_SOURCEFILES:.cpp=.o) # General rules .cpp.o: @@ -31,6 +33,7 @@ DEL_FILE = /bin/rm -f showsources: @echo $(CLUSTER_SOURCEFILES) @echo $(STRUCTURE_SOURCEFILES) + @echo $(PARM_SOURCEFILES) @echo $(ENERGY_SOURCEFILES) showobjects: @@ -49,7 +52,7 @@ install_cpptraj: cpptraj$(SFX)$(EXE) cpptraj$(SFX)$(EXE): $(OBJECTS) $(FFT_TARGET) $(READLINE_TARGET) $(CUDA_TARGET) $(XDRFILE_TARGET) $(ARPACK_TARGET) $(TNGFILE_TARGET) $(VB)echo Link cpptraj$(SFX)$(EXE) - $(VB)$(CXX) -o cpptraj$(SFX)$(EXE) $(OBJECTS) $(CUDA_TARGET) $(FFT_TARGET) $(READLINE_LIB) $(CPPTRAJ_LIB) $(LDFLAGS) + $(VB)$(CXX) -o cpptraj$(SFX)$(EXE) $(OBJECTS) $(CUDA_TARGET) $(FFT_TARGET) $(READLINE_LIB) $(CPPTRAJ_LIB) $(LDFLAGS) $(CPPTRAJONLY_LIB) # libcpptraj --------------------------- # Rule to make libcpptraj-specific objects @@ -152,7 +155,11 @@ findDepend: FindDepend.cpp FindDepend.o $(CXX) -o findDepend FindDepend.o depend: findDepend - ./findDepend $(SOURCES) $(CSOURCES) $(CLUSTER_SOURCEFILES) $(STRUCTURE_SOURCEFILES) $(ENERGY_SOURCEFILES) > cpptrajdepend + cd Cluster && $(MAKE) depend + cd Structure && $(MAKE) depend + cd Parm && $(MAKE) depend + cd Energy && $(MAKE) depend + ./findDepend $(SOURCES) $(CSOURCES) $(CLUSTER_SOURCEFILES) $(STRUCTURE_SOURCEFILES) $(PARM_SOURCEFILES) $(ENERGY_SOURCEFILES) > cpptrajdepend dependclean: $(DEL_FILE) FindDepend.o findDepend @@ -166,6 +173,7 @@ clean: cd cuda_kernels && $(MAKE) clean cd Cluster && $(MAKE) clean cd Structure && $(MAKE) clean + cd Parm && $(MAKE) clean cd Energy && $(MAKE) clean cd tng && $(MAKE) clean @@ -190,6 +198,7 @@ uninstall: uninstall_lib uninstall_inc cd cuda_kernels && $(MAKE) uninstall cd Cluster && $(MAKE) uninstall cd Structure && $(MAKE) uninstall + cd Parm && $(MAKE) uninstall cd Energy && $(MAKE) uninstall # Header dependencies diff --git a/src/MaskArray.h b/src/MaskArray.h index 1a74c6250c..d79b46a1d5 100644 --- a/src/MaskArray.h +++ b/src/MaskArray.h @@ -4,6 +4,13 @@ // Forward declarations class Topology; class AtomMask; +/** @brief The main Cpptraj namespace. + * + * This is the namespace that all CPPTRAJ classes should be in. + * NOTE: When CPPTRAJ was first developed, classes were not in any particular + * namespace. Since it conflicts with the Cpptraj class, care should + * be taken when putting new classes in the Cpptraj namespace. + */ namespace Cpptraj { /// Hold array of atom masks, intended for 'bymol' or 'byres' type selection diff --git a/src/MaskToken.h b/src/MaskToken.h index e7d9972b3f..a21990f8ff 100644 --- a/src/MaskToken.h +++ b/src/MaskToken.h @@ -84,9 +84,13 @@ class MaskTokenArray { virtual void InvertMask() = 0; /// \return Number of selected atoms. virtual int Nselected() const = 0; + /// \return Max number of potentially selected atoms (# atoms in topology). + virtual int Natom() const = 0; // ------------------------------------------- /// \return true if no atoms selected bool None() const { return Nselected() == 0; } + /// \return true if all possible atoms selected + bool All() const { return Nselected() == Natom(); } protected: void ClearTokens() { maskTokens_.clear(); maskExpression_.clear(); } /// \return array of characters with selected atoms marked with SelectedChar_ diff --git a/src/Matrix.h b/src/Matrix.h index 99c63c7df4..ad2e0b17a2 100644 --- a/src/Matrix.h +++ b/src/Matrix.h @@ -34,6 +34,8 @@ template <class T> class Matrix { /// \return element at specified col and row. const T& element(size_t,size_t) const; T& element(size_t,size_t); + /// \return element at specified col and row. Out-of-bound indices will be wrapped. + const T& element_wrapped(long int, long int) const; /// \return number of rows (Y). size_t Nrows() const { return nrows_; } /// \return number of cols (X). @@ -118,6 +120,16 @@ template <class T> class Matrix { size_t i1 = i + 1UL; return (long int)(( (nX * i) - ((i1 * i) / 2UL) ) + j - i1); } + /// If an index is out of bounds, wrap it + static inline long int wrap_grid(long int iin, long int res) { + long int iout = iin; + if (iout < 0) { + while (iout < 0) iout += res; + } else if (iout >= res) { + while (iout >= res) iout -= res; + } + return iout; + } }; // COPY CONSTRUCTOR template<class T> Matrix<T>::Matrix(const Matrix& rhs) : @@ -254,6 +266,14 @@ template<class T> T& Matrix<T>::element(size_t xIn, size_t yIn) { if (idx < 0) return diagElt_; // In case of xIn == yIn for TRIANGLE return elements_[idx]; } +/** \return element at specified col and row. Out-of-bound indices will be wrapped. */ +template<class T> const T& Matrix<T>::element_wrapped(long int xIn, long int yIn) const { + long int ix = wrap_grid(xIn, ncols_); + long int iy = wrap_grid(yIn, nrows_); + long int idx = indexFxn_(ncols_, ix, iy); + if (idx < 0) return diagElt_; // In case of xIn == yIn for TRIANGLE + return elements_[idx]; +} // Matrix::LinearLeastSquares() /** Produce a vector containing the solution to an over-determined system of linear equations * represented by the matrix itself and an input vector. This will work for float and diff --git a/src/Matrix_3x3.cpp b/src/Matrix_3x3.cpp index b77d6d23a9..8be5c6fa96 100644 --- a/src/Matrix_3x3.cpp +++ b/src/Matrix_3x3.cpp @@ -447,6 +447,19 @@ void Matrix_3x3::RotationAroundZ(double a1, double a2) { M_[8] = 1; } +/** Set Rotation matrix around the Z axis given an angle in radians. */ +void Matrix_3x3::RotateAroundZ(double ang) { + M_[0] = cos(ang); + M_[1] = sin(ang); + M_[2] = 0; + M_[3] = -sin(ang); + M_[4] = cos(ang); + M_[5] = 0; + M_[6] = 0; + M_[7] = 0; + M_[8] = 1; +} + // Matrix_3x3::RotationAroundY() void Matrix_3x3::RotationAroundY(double a1, double a2) { double r = sqrt( a1*a1 + a2*a2 ); @@ -461,6 +474,19 @@ void Matrix_3x3::RotationAroundY(double a1, double a2) { M_[8] = M_[0]; // cos t } +/** Set Rotation matrix around the Y axis given an angle in radians. */ +void Matrix_3x3::RotateAroundY(double ang) { + M_[0] = cos(ang); + M_[1] = 0; + M_[2] = -sin(ang); + M_[3] = 0; + M_[4] = 1; + M_[5] = 0; + M_[6] = sin(ang); + M_[7] = 0; + M_[8] = cos(ang); +} + /** Given an axis of rotation V (which must be normalized) and a magnitude * (radians), calculate a rotation matrix. */ diff --git a/src/Matrix_3x3.h b/src/Matrix_3x3.h index 20104949ee..3621a9bd22 100644 --- a/src/Matrix_3x3.h +++ b/src/Matrix_3x3.h @@ -124,12 +124,10 @@ class Matrix_3x3 { int RotationAngles(double&, double&, double&) const; /// Given theta, extract axis of rotation from rotation matrix Vec3 AxisOfRotation(double) const; - - /// Calculate rotation matrix around Z axis. TODO make private - void RotationAroundZ(double, double); - /// Calculate rotation matrix around Y axis. TODO make private - void RotationAroundY(double, double); - + /// Given an angle in radians, calculate rotation matrix around Z axis + void RotateAroundZ(double); + /// Given an angle in radians, calculate rotation matrix around Y axis + void RotateAroundY(double); # ifdef MPI /// Broadcast from master to other ranks @@ -142,6 +140,10 @@ class Matrix_3x3 { private: /// Try to fix eigenvector sign flips (Diagonalize_Sort_Chirality()) int jacobiCheckChirality(); + /// Calculate rotation matrix around Z axis. + void RotationAroundZ(double, double); + /// Calculate rotation matrix around Y axis. + void RotationAroundY(double, double); double M_[9]; // The following three variables are set during Diagonalize_Sort. They diff --git a/src/ModXNA_Info.cpp b/src/ModXNA_Info.cpp new file mode 100644 index 0000000000..d08b065f29 --- /dev/null +++ b/src/ModXNA_Info.cpp @@ -0,0 +1,46 @@ +#include "ModXNA_Info.h" +#include "ArgList.h" +#include "CpptrajStdio.h" + +/** CONSTRUCTOR */ +ModXNA_Info::ModXNA_Info() {} + +/** Parse ModXNA info from given string. */ +ModXNA_Info::StatType ModXNA_Info::ParseModxnaStr(std::string const& line) { + if (line.empty()) return NOT_MODXNA; + ArgList args(line, ":"); + + if (args.GetStringNext() != "modXNA-fragment") return NOT_MODXNA; + + if (args.Nargs() < 2) { + mprinterr("Error: modXNA string is too short.\n" + "Error: '%s'\n", line.c_str()); + return ERR; + } + fragmentName_ = args[1]; + + if (args.Nargs() >= 4) head_ = args[3]; + if (args.Nargs() >= 6) headStrip_ = args[5]; + if (args.Nargs() >= 8) tail_ = args[7]; + if (args.Nargs() >= 10) tailStrip_ = args[9]; + if (args.Nargs() >= 12) anchor_ = args[11]; + if (args.Nargs() >= 14) anchorStrip_ = args[13]; + + return OK; +} + +static inline void printmxna(const char* desc, std::string const& str) { + if (!str.empty()) mprintf("%s: %s\n", desc, str.c_str()); +} + +/** Print info to stdout */ +void ModXNA_Info::PrintModxna() const { + if (!HasModxna()) return; + mprintf("\tFragment: %s\n", fragmentName_.c_str()); + printmxna("\tHead ", head_); + printmxna("\tHeadStrip ", headStrip_); + printmxna("\tTail ", tail_); + printmxna("\tTailStrip ", tailStrip_); + printmxna("\tAnchor ", anchor_); + printmxna("\tAnchorStrip ", anchorStrip_); +} diff --git a/src/ModXNA_Info.h b/src/ModXNA_Info.h new file mode 100644 index 0000000000..3b7714163f --- /dev/null +++ b/src/ModXNA_Info.h @@ -0,0 +1,39 @@ +#ifndef INC_STRUCTURE_MODXNA_INFO_H +#define INC_STRUCTURE_MODXNA_INFO_H +#include <string> +//namespace Cpptraj { +//namespace Structure { +/// Hold info used by the modXNA FF for joining fragments +class ModXNA_Info { + public: + /// CONSTRUCTOR + ModXNA_Info(); + + enum StatType { OK = 0, NOT_MODXNA, ERR }; + + /// Parse the given modXNA title string + StatType ParseModxnaStr(std::string const&); + /// \return true if there is modXNA info + bool HasModxna() const { return (!fragmentName_.empty()); } + /// Print to stdout + void PrintModxna() const; + + std::string const& FragmentName() const { return fragmentName_; } + std::string const& Head() const { return head_; } + std::string const& HeadStrip() const { return headStrip_; } + std::string const& Tail() const { return tail_; } + std::string const& TailStrip() const { return tailStrip_; } + std::string const& Anchor() const { return anchor_; } + std::string const& AnchorStrip() const { return anchorStrip_; } + private: + std::string fragmentName_; + std::string head_; + std::string headStrip_; + std::string tail_; + std::string tailStrip_; + std::string anchor_; + std::string anchorStrip_; +}; +//} +//} +#endif diff --git a/src/Mol2File.cpp b/src/Mol2File.cpp index 4409d10571..fa1ebca3bd 100644 --- a/src/Mol2File.cpp +++ b/src/Mol2File.cpp @@ -6,6 +6,7 @@ #include "Residue.h" #include "CpptrajStdio.h" // To print debug info #include "StringRoutines.h" // RemoveTrailingWhitespace +#include "ModXNA_Info.h" // CONSTRUCTOR Mol2File::Mol2File() : @@ -63,6 +64,26 @@ void Mol2File::WriteHeader( Mol2File::TRIPOSTAG tag ) { Printf("%s\n", TRIPOSTAGTEXT[tag] ); } +/** Check for ModXNA info in the title. */ +ModXNA_Info* Mol2File::CheckForModxna() { + // Check for modxna info + size_t pos = mol2title_.find_first_of( "modXNA-fragment" ); + if (pos != std::string::npos) { + ModXNA_Info* minfo = new ModXNA_Info(); + ModXNA_Info::StatType ret = minfo->ParseModxnaStr( mol2title_ ); + if (ret == ModXNA_Info::OK) { + mprintf("\tMol2 file has ModXNA info:\n"); + minfo->PrintModxna(); + return minfo; + } else { + delete minfo; + if (ret == ModXNA_Info::ERR) + mprinterr("Error: Could not parse modxna string '%s'\n", mol2title_.c_str()); + } + } + return 0; +} + // Mol2File::ReadMolecule() /** Set title, number of atoms, and number of bonds. */ bool Mol2File::ReadMolecule( ) { @@ -189,7 +210,7 @@ int Mol2File::Mol2Atom(Atom& atom, Residue& res, double* XYZ) { mol2resname = field6; mol2charge = field7; } else { - mprinterr("Error: Malformed mol2 line: %s\n", linebuffer_); + mprinterr("Error: Malformed mol2 line (%i fields read): %s\n", nread, linebuffer_); return 1; } diff --git a/src/Mol2File.h b/src/Mol2File.h index 0599952cee..a61fccea68 100644 --- a/src/Mol2File.h +++ b/src/Mol2File.h @@ -5,6 +5,7 @@ #include <map> class Atom; class Residue; +class ModXNA_Info; /// Used to access mol2 files. class Mol2File : private CpptrajFile { public: @@ -19,6 +20,9 @@ class Mol2File : private CpptrajFile { void WriteHeader( TRIPOSTAG ); /// Read in MOLECULE section of mol2file. bool ReadMolecule(); + /// Check for modXNA info in the title + ModXNA_Info* CheckForModxna(); + /// Write Mol2 info bool WriteMolecule(bool,int); //// Used to only read # atoms in next MOLECULE record. int NextMolecule(); diff --git a/src/Molecule.h b/src/Molecule.h index 8a7e54f6c9..cf3ee4f152 100644 --- a/src/Molecule.h +++ b/src/Molecule.h @@ -12,6 +12,8 @@ class Molecule { void SetSolvent() { isSolvent_ = true; } void SetNoSolvent() { isSolvent_ = false; } Unit& ModifyUnit() { return unit_; } + /// Add atom number to the molecule. + int AddAtnum(int at) { return unit_.AddIndex(at); } bool IsSolvent() const { return isSolvent_; } unsigned int NumAtoms() const { return unit_.Size(); } diff --git a/src/NameType.h b/src/NameType.h index 35d50d8727..cb8cc9deeb 100644 --- a/src/NameType.h +++ b/src/NameType.h @@ -35,6 +35,8 @@ class NameType { std::string Formatted(int) const; /// \return non-space length of name int len() const; + /// \return max size of a name + static unsigned int max() { return (ArraySize_); } /// \return true if name comes before given name alphabetically bool operator<(NameType const& rhs) const { for (unsigned int i = 0; i != ArraySize_; i++) diff --git a/src/PairList.cpp b/src/PairList.cpp index 773273e081..3413d18fb6 100644 --- a/src/PairList.cpp +++ b/src/PairList.cpp @@ -15,7 +15,8 @@ PairList::PairList() : nGridZ_(-1), nGridX_0_(-1), nGridY_0_(-1), - nGridZ_0_(-1) + nGridZ_0_(-1), + small_grid_(false) {} /** This leads to cellNeighbor_ dimensions of 7x10 */ @@ -223,11 +224,19 @@ int PairList::SetupGrids(Vec3 const& recipLengths) { int myindexhi = (int)cells_.size(); CalcGridPointers(myindexlo, myindexhi); + if (debug_ > 1) + PrintCellMap(); // DEBUG + PrintMemory(); return 0; } +/** \return True if the given cell index is valid. */ +bool PairList::validCellIndex(int cidx) const { + return (cidx > -1 && cidx < (int)cells_.size()); +} + /** Calculate all of the forward neighbors for each grid cell and if * needed which translate vector is appropriate. * +X: need self and offsetX cells to the "right". @@ -239,6 +248,7 @@ int PairList::SetupGrids(Vec3 const& recipLengths) { * care about forward direction. */ void PairList::CalcGridPointers(int myindexlo, int myindexhi) { + small_grid_ = false; // DEBUG - Check for duplicated interactions /* Matrix<int> PairCalcd; PairCalcd.resize(cells_.size(), 0); // Half matrix @@ -275,12 +285,16 @@ void PairList::CalcGridPointers(int myindexlo, int myindexhi) { // Wrap ix if necessary if (ix < nGridX_) { // mprintf(" %i+0", idx2+ix); - Nbr.push_back( idx2 + ix ); - Ntr.push_back( 4 ); // No translation. 0 0 0 + if (validCellIndex( idx2 + ix )) { + Nbr.push_back( idx2 + ix ); + Ntr.push_back( 4 ); // No translation. 0 0 0 + } } else { // mprintf(" %i+1", idx2+ix - nGridX_); - Nbr.push_back( idx2 + ix - nGridX_ ); - Ntr.push_back( 5 ); // Translate by +1 in X. 1 0 0 + if (validCellIndex( idx2 + ix - nGridX_ )) { + Nbr.push_back( idx2 + ix - nGridX_ ); + Ntr.push_back( 5 ); // Translate by +1 in X. 1 0 0 + } } } // Get all cells in the Y+ direction @@ -314,9 +328,11 @@ void PairList::CalcGridPointers(int myindexlo, int myindexhi) { // Calc new index int jdx = jdx2 + wx; // Absolute neighbor grid cell index // mprintf(" %i%+i%+i", jdx, ox-1, oy-1); - Nbr.push_back( jdx ); - int tidx = oy*3 + ox; - Ntr.push_back( tidx ); + if (validCellIndex( jdx )) { + Nbr.push_back( jdx ); + int tidx = oy*3 + ox; + Ntr.push_back( tidx ); + } } } // Get all cells in the +Z direction @@ -364,9 +380,11 @@ void PairList::CalcGridPointers(int myindexlo, int myindexhi) { // Calc new index int jdx = jdx2 + wx; // Absolute neighbor grid cell index // mprintf(" %i%+i%+i%+i", jdx, ox-1, oy-1, oz); - Nbr.push_back( jdx ); - int tidx = oz*9 + oy*3 + ox; - Ntr.push_back( tidx ); + if (validCellIndex( jdx )) { + Nbr.push_back( jdx ); + int tidx = oz*9 + oy*3 + ox; + Ntr.push_back( tidx ); + } } } } @@ -390,10 +408,21 @@ void PairList::CalcGridPointers(int myindexlo, int myindexhi) { } */ // END DEBUG + // Check if any of the neighbors is in fact this cell + if (!small_grid_) { + for (unsigned int nidx = 1; nidx < Nbr.size(); nidx++) { + if ( idx == Nbr[nidx] ) { + small_grid_ = true; + break; + } + } + } } // END my cell } // nx } // ny } // nz + if (small_grid_) + mprintf("Warning: One or more cells is a neighbor of itself. This usually indicates a very small box.\n"); } void PairList::Timing(double total) const { Timing(total, 2); } @@ -420,6 +449,24 @@ void PairList::PrintCells() const { mprintf(" %i", atm->Idx()+1); } mprintf("\n"); + } } +} + +void PairList::PrintCellMap() const { + mprintf("DEBUG: %zu cells.\n", cells_.size()); + for (Carray::const_iterator cell = cells_.begin(); cell != cells_.end(); ++cell) { + if (cell->CellList().empty()) + mprintf("\t%li : No Neighbors\n", cell - cells_.begin()); + else { + Iarray::const_iterator it = cell->CellList().begin(); + Iarray::const_iterator tt = cell->TransList().begin(); + mprintf("\tCell %i(%i) :", *it, *tt); + ++it; + ++tt; + for (; it != cell->CellList().end(); ++it, ++tt) + mprintf(" %i(%i)", *it, *tt); + mprintf("\n"); + } } } diff --git a/src/PairList.h b/src/PairList.h index d6ba840076..7a25a485a1 100644 --- a/src/PairList.h +++ b/src/PairList.h @@ -78,8 +78,10 @@ class PairList { void Timing(double, int) const; /// Print memory usage. void PrintMemory() const; - /// Print cells to stdout + /// Print cell contents to stdout void PrintCells() const; + /// Print cell map to stdout + void PrintCellMap() const; /// \return Number of grid cells. int NGridMax() const { return (int)cells_.size(); } /// \return Specified grid cell. @@ -94,6 +96,8 @@ class PairList { int NZ() const { return nGridZ_; } # endif private: + /// \return True if the given cell index is valid + bool validCellIndex(int) const; /// Determine neighbors and translation vectors for each cell. void CalcGridPointers(int,int); /// Check grid dimensions using given recip lengths and (re)allocate mem if necessary. @@ -116,6 +120,7 @@ class PairList { int nGridX_0_; ///< Previous number of cells in X direction int nGridY_0_; ///< Previous number of cells in Y direction int nGridZ_0_; ///< Previous number of cells in Z direction + bool small_grid_; ///< Set to true if any cell is a neighbor of itself. static const int cellOffset_; ///< Number of cells in forward direction to check Timer t_map_; diff --git a/src/PairListEngine_Ewald_Decomp_LJCLR.h b/src/PairListEngine_Ewald_Decomp_LJCLR.h new file mode 100644 index 0000000000..d65466953e --- /dev/null +++ b/src/PairListEngine_Ewald_Decomp_LJCLR.h @@ -0,0 +1,112 @@ +#ifndef INC_PAIRLISTENGINE_EWALD_DECOMP_LJCLR_H +#define INC_PAIRLISTENGINE_EWALD_DECOMP_LJCLR_H +#include "Energy/Ene_LJ_12_6_4.h" +#include "Energy/EwaldParams.h" +#include "Energy/Kernel_EwaldAdjust.h" +#include "PairList.h" +namespace Cpptraj { +/// Direct space nonbond calculation using pairlist with decomposable Ewald and VDW LR correction +template <typename T> +class PairListEngine_Ewald_Decomp_LJCLR { + typedef std::vector<T> Darray; + public: + PairListEngine_Ewald_Decomp_LJCLR() {} + // ------------------------------------------- + /// Call at the beginning of the frame calculation + void FrameBeginCalc() { Evdw_ = 0; Eelec_ = 0; Eadjust_ = 0; + atom_elec_.assign(EW_.Natom(), 0); + atom_evdw_.assign(EW_.Natom(), 0); + atom_eadj_.assign(EW_.Natom(), 0); + } + /// Call for atom 0 when looping over atoms of thisCell + void SetupAtom0( PairList::AtmType const& atom0 ) { + q0_ = EW_.Charge(atom0.Idx()); + } + /// Call for atom 1 when looping over interaction atoms of this/other cell + void SetupAtom1( PairList::AtmType const& atom1 ) { + q1_ = EW_.Charge(atom1.Idx()); + } + /// Call when cutoff is satisfied + void CutoffSatisfied(T const& rij2, + PairList::AtmType const& atom0, + PairList::AtmType const& atom1) + { + T rij = sqrt( rij2 ); + T qiqj = q0_ * q1_; + //double erfc = erfc_func(ew_coeff_ * rij); + T erfcval = EW_.ErfcEW( rij ); + T e_elec = qiqj * erfcval / rij; + Eelec_ += e_elec; + T e_half = e_elec * 0.5; + atom_elec_[atom0.Idx()] += e_half; + atom_elec_[atom1.Idx()] += e_half; + + int nbindex = EW_.NbIndex(atom0.Idx(), atom1.Idx()); + if (nbindex > -1) { + double vswitch = EW_.Switch_Fn(rij2); + double LJC = EW_.GetLJC( nbindex ); + NonbondType const& LJ = EW_.GetLJ( nbindex ); + T e_vdw = Cpptraj::Energy::Ene_LJ_12_6_4<T>(rij2, LJ.A(), LJ.B(), LJC); + e_vdw *= vswitch; + Evdw_ += e_vdw; + e_half = e_vdw * 0.5; + atom_evdw_[atom0.Idx()] += e_half; + atom_evdw_[atom1.Idx()] += e_half; + } + } + /// Call when cutoff is not satisfied + void AtomPairExcluded(T const& rij2, + PairList::AtmType const& atom0, + PairList::AtmType const& atom1) + { + T rij = sqrt(rij2); + T erfcval = EW_.ErfcEW( rij ); + T e_adj = Cpptraj::Energy::Kernel_EwaldAdjust<T>( q0_, q1_, rij, erfcval ); + Eadjust_ += e_adj; + T e_half = e_adj * 0.5; + atom_eadj_[atom0.Idx()] += e_half; + atom_eadj_[atom1.Idx()] += e_half; + } + // ------------------------------------------- + Cpptraj::Energy::EwaldParams& ModifyEwaldParams() { return EW_; } + Cpptraj::Energy::EwaldParams const& EwaldParams() const { return EW_; } + + T Evdw() const { return Evdw_; } + T Eelec() const { return Eelec_; } + T Eadjust() const { return Eadjust_; } + Darray const& Eatom_Elec() const { return atom_elec_; } + Darray const& Eatom_EVDW() const { return atom_evdw_; } + Darray const& Eatom_EAdjust() const { return atom_eadj_; } +# ifdef _OPENMP + static void sum_Darray(Darray& lhs, Darray const& rhs) { + for (unsigned int idx = 0; idx != rhs.size(); ++idx) + lhs[idx] += rhs[idx]; + } + /// To allow reduction of the energy terms + void operator+=(PairListEngine_Ewald_Decomp_LJCLR const& rhs) { + Evdw_ += rhs.Evdw_; + Eelec_ += rhs.Eelec_; + Eadjust_ += rhs.Eadjust_; + sum_Darray(atom_elec_, rhs.atom_elec_); + sum_Darray(atom_evdw_, rhs.atom_evdw_); + sum_Darray(atom_eadj_, rhs.atom_eadj_); + } +# endif + private: + T q0_; ///< Charge on atom 0 + T q1_; ///< Charge on atom 1 + T Evdw_; ///< VDW sum for current frame + T Eelec_; ///< Coulomb sum for current frame + T Eadjust_; ///< Adjust energy sum for current frame + + Darray atom_elec_; ///< Sum of Coulomb E on each atom for current frame + Darray atom_evdw_; ///< Sum of VDW E on each atom for current frame + Darray atom_eadj_; ///< Sum of excluded atom adjust E on each atom for current frame + + Cpptraj::Energy::EwaldParams EW_; ///< Hold Ewald parameters for PME +}; +#ifdef _OPENMP +#pragma omp declare reduction( + : PairListEngine_Ewald_Decomp_LJCLR<double> : omp_out += omp_in ) initializer( omp_priv = omp_orig ) +#endif +} // END namespace Cpptraj +#endif diff --git a/src/PairListEngine_Ewald_LJCLR.h b/src/PairListEngine_Ewald_LJCLR.h new file mode 100644 index 0000000000..8505f2714e --- /dev/null +++ b/src/PairListEngine_Ewald_LJCLR.h @@ -0,0 +1,82 @@ +#ifndef INC_PAIRLISTENGINE_EWALD_LJCLR_H +#define INC_PAIRLISTENGINE_EWALD_LJCLR_H +#include "Energy/Ene_LJ_12_6_4.h" +#include "Energy/EwaldParams.h" +#include "Energy/Kernel_EwaldAdjust.h" +#include "PairList.h" +namespace Cpptraj { +/// Direct space nonbond calculation using pairlist with Ewald and LJ 12-6-4 VDW plus LR correction +template <typename T> +class PairListEngine_Ewald_LJCLR { + public: + PairListEngine_Ewald_LJCLR() {} + // ------------------------------------------- + /// Call at the beginning of the frame calculation + void FrameBeginCalc() { Evdw_ = 0; Eelec_ = 0; Eadjust_ = 0; } + /// Call for atom 0 when looping over atoms of thisCell + void SetupAtom0( PairList::AtmType const& atom0 ) { + q0_ = EW_.Charge(atom0.Idx()); + } + /// Call for atom 1 when looping over interaction atoms of this/other cell + void SetupAtom1( PairList::AtmType const& atom1 ) { + q1_ = EW_.Charge(atom1.Idx()); + } + /// Call when cutoff is satisfied + void CutoffSatisfied(T const& rij2, + PairList::AtmType const& atom0, + PairList::AtmType const& atom1) + { + T rij = sqrt( rij2 ); + T qiqj = q0_ * q1_; + //double erfc = erfc_func(ew_coeff_ * rij); + T erfcval = EW_.ErfcEW( rij ); + T e_elec = qiqj * erfcval / rij; + Eelec_ += e_elec; + + int nbindex = EW_.NbIndex(atom0.Idx(), atom1.Idx()); + if (nbindex > -1) { + double vswitch = EW_.Switch_Fn(rij2); + double LJC = EW_.GetLJC( nbindex ); + NonbondType const& LJ = EW_.GetLJ( nbindex ); + T e_vdw = Cpptraj::Energy::Ene_LJ_12_6_4<T>(rij2, LJ.A(), LJ.B(), LJC); + Evdw_ += (e_vdw * vswitch); + } + } + /// Call when cutoff is not satisfied + void AtomPairExcluded(T const& rij2, + PairList::AtmType const& atom0, + PairList::AtmType const& atom1) + { + T rij = sqrt(rij2); + T erfcval = EW_.ErfcEW( rij ); + Eadjust_ += Cpptraj::Energy::Kernel_EwaldAdjust<T>( q0_, q1_, rij, erfcval ); + } + // ------------------------------------------- + Cpptraj::Energy::EwaldParams& ModifyEwaldParams() { return EW_; } + Cpptraj::Energy::EwaldParams const& EwaldParams() const { return EW_; } + + T Evdw() const { return Evdw_; } + T Eelec() const { return Eelec_; } + T Eadjust() const { return Eadjust_; } +# ifdef _OPENMP + /// To allow reduction of the energy terms + void operator+=(PairListEngine_Ewald_LJCLR const& rhs) { + Evdw_ += rhs.Evdw_; + Eelec_ += rhs.Eelec_; + Eadjust_ += rhs.Eadjust_; + } +# endif + private: + T q0_; ///< Charge on atom 0 + T q1_; ///< Charge on atom 1 + T Evdw_; ///< VDW sum for current frame + T Eelec_; ///< Coulomb sum for current frame + T Eadjust_; ///< Adjust energy sum for current frame + + Cpptraj::Energy::EwaldParams EW_; ///< Hold Ewald parameters for PME +}; +#ifdef _OPENMP +#pragma omp declare reduction( + : PairListEngine_Ewald_LJCLR<double> : omp_out += omp_in ) initializer( omp_priv = omp_orig ) +#endif +} // END namespace Cpptraj +#endif diff --git a/src/ParameterHolders.h b/src/ParameterHolders.h deleted file mode 100644 index cfbc83f4e1..0000000000 --- a/src/ParameterHolders.h +++ /dev/null @@ -1,223 +0,0 @@ -#ifndef INC_PARAMETERHOLDERS_H -#define INC_PARAMETERHOLDERS_H -#include <vector> -#include <utility> // std::pair -#include "TypeNameHolder.h" -#include "ParameterTypes.h" -//#incl ude "CpptrajStdio.h" // DEBUG - -namespace ParameterHolders { - enum RetType { ADDED = 0, SAME, UPDATED, ERR }; -} /* END namespace ParameterHolders */ - -/// Used to associate atom type names with an object (parameter etc) -template <class T> class ParmHolder { - // TODO may want to actually use a map one day for performance reasons. - typedef std::pair<TypeNameHolder,T> Bpair; - typedef std::vector<Bpair> Bmap; - public: - ParmHolder() {} - void clear() { bpmap_.clear(); } - size_t size() const { return bpmap_.size(); } - bool empty() const { return bpmap_.empty(); } - /// Add (or update if allowed) given parameter to holder. - ParameterHolders::RetType AddParm(TypeNameHolder const& types, T const& bp, bool allowUpdate) { - // Check if parm for these types exist - typename Bmap::iterator it = bpmap_.begin(); - for (; it != bpmap_.end(); ++it) - if (it->first == types) break; - if (it == bpmap_.end()) { - // New parm - //mprintf("DEBUG: New parameter:"); - //for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) - // mprintf(" '%s'", *(*it)); - //mprintf("\n"); - bpmap_.push_back( Bpair(types, bp) ); - } else { - if (bp < it->second || it->second < bp) { - //mprintf("DEBUG: Potential update of existing parameter:"); - //for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) - // mprintf(" '%s'", *(*it)); - //mprintf("\n"); - if (allowUpdate) { - it->second = bp; - return ParameterHolders::UPDATED; - } else { - return ParameterHolders::ERR; - } - } else { - //mprintf("DEBUG: Existing parameter:"); - //for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) - // mprintf(" '%s'", *(*it)); - //mprintf("\n"); - return ParameterHolders::SAME; - } - } - return ParameterHolders::ADDED; - } - /// Constant iterator - typedef typename Bmap::const_iterator const_iterator; - /// \return constant iterator to beginning - const_iterator begin() const { return bpmap_.begin(); } - /// \return constant iterator to end. - const_iterator end() const { return bpmap_.end(); } - /// Iterator - typedef typename Bmap::iterator iterator; - /// \return iterator to beginning - iterator begin() { return bpmap_.begin(); } - /// \return iterator to end - iterator end() { return bpmap_.end(); } - /// \return Parameter matching given types, or empty parameter if not found. - T FindParam(TypeNameHolder const& types, bool& found) const { // TODO only use GetParam()? - found = true; - for (const_iterator it = begin(); it != end(); ++it) - if (it->first == types) return it->second; - found = false; - return T(); - } - /// \return iterator to parameter matching the given types. - iterator GetParam(TypeNameHolder const& types) { - for (iterator it = bpmap_.begin(); it != bpmap_.end(); ++it) - if (it->first == types) return it; - return bpmap_.end(); - } - /// \return const iterator to parameter matching the given types. - const_iterator GetParam(TypeNameHolder const& types) const { - for (const_iterator it = bpmap_.begin(); it != bpmap_.end(); ++it) - if (it->first == types) return it; - return bpmap_.end(); - } - /// \return size in memory in bytes - size_t DataSize() const { - if (bpmap_.empty()) return 0; - const_iterator elt0 = begin(); - // Assume all TypeNameHolders are the same size - return (bpmap_.size() * elt0->first.DataSize()) + - (bpmap_.size() * sizeof(T)) + - sizeof(Bmap); - } - private: - Bmap bpmap_; -}; - -// ----------------------------------------------------------------------------- -/// Specialized class for associating atom types with dihedral parameters. -/** NOTE: Instead of using a specialize template here I'm creating a new - * class because while I want AddParm() to accept DihedralParmType, - * I want FindParam to return an array of DihedralParmType, one for - * each unique multiplicity. - */ -class DihedralParmHolder { - typedef std::pair<TypeNameHolder,DihedralParmArray> Bpair; - typedef std::vector<Bpair> Bmap; - public: - DihedralParmHolder() {} - void clear() { bpmap_.clear(); } - size_t size() const { return bpmap_.size(); } - bool empty() const { return bpmap_.empty(); } - /** Add (or update) a single dihedral parameter for given atom types. */ - ParameterHolders::RetType - AddParm(TypeNameHolder const& types, DihedralParmType const& dp, bool allowUpdate) { - // Check if parm for these types exist - Bmap::iterator it0 = bpmap_.begin(); - for (; it0 != bpmap_.end(); ++it0) - { - if (it0->first == types) - break; - } - if (it0 == bpmap_.end()) { - // Brand new dihedral for these types. - //mprintf("DEBUG: New dihedral parm: %s %s %s %s pk=%12.4f pn=%12.4f pp=%12.4f\n", - // *types[0], *types[1], *types[2], *types[3], dp.Pk(), dp.Pn(), dp.Phase()); - bpmap_.push_back( Bpair(types, DihedralParmArray(1, dp)) ); - } else { - // If we are here types match - check multiplicity. - DihedralParmArray::iterator it1 = it0->second.begin(); - for (; it1 != it0->second.end(); ++it1) - { - if (it1->Pn() == dp.Pn()) - break; - } - if (it1 == it0->second.end()) { - // Brand new multiplicity for this dihedral. - //mprintf("DEBUG: Dihedral new mult: %s %s %s %s pk=%12.4f pn=%12.4f pp=%12.4f\n", - // *types[0], *types[1], *types[2], *types[3], dp.Pk(), dp.Pn(), dp.Phase()); - it0->second.push_back( dp ); - } else { - if (dp < *it1 || *it1 < dp) { - //mprintf("DEBUG: Attempt dihedral update mult (allow=%i): %s %s %s %s pk=%6.2f pn=%3.1f pp=%6.3f (orig pk=%6.2f pn=%3.1f pp=%6.3f )\n", - // (int)allowUpdate, *types[0], *types[1], *types[2], *types[3], dp.Pk(), dp.Pn(), dp.Phase(), it1->Pk(), it1->Pn(), it1->Phase()); - if (allowUpdate) { - *it1 = dp; - return ParameterHolders::UPDATED; - } else { - return ParameterHolders::ERR; - } - } else - return ParameterHolders::SAME; - } - } - return ParameterHolders::ADDED; - } - - /** This version takes an array of dihedral parameters. */ - ParameterHolders::RetType - AddParm(TypeNameHolder const& types, DihedralParmArray const& dpa, bool allowUpdate) { - // Check if parm for these types exist - Bmap::iterator it0 = bpmap_.begin(); - for (; it0 != bpmap_.end(); ++it0) - { - if (it0->first == types) - break; - } - if (it0 == bpmap_.end()) { - // Brand new dihedral for these types. - bpmap_.push_back( Bpair(types, dpa) ); - } else { - if (!allowUpdate) return ParameterHolders::ERR; - // Check if sizes are the same. - bool update = false; - if (it0->second.size() != dpa.size()) - update = true; - else { - // Sizes are the same. See if parameters are the same. - for (unsigned int i = 0; i != it0->second.size(); i++) { - if (it0->second[i] < dpa[i] || dpa[i] < it0->second[i]) { - update = true; - break; - } - } - } - if (update) { - it0->second = dpa; - return ParameterHolders::UPDATED; - } else - return ParameterHolders::SAME; - } - return ParameterHolders::ADDED; - } - - typedef typename Bmap::const_iterator const_iterator; - const_iterator begin() const { return bpmap_.begin(); } - const_iterator end() const { return bpmap_.end(); } - /// \return Array of dihedral parameters matching given atom types. - DihedralParmArray FindParam(TypeNameHolder const& types, bool& found) const { - found = true; - for (const_iterator it = begin(); it != end(); ++it) - if (it->first == types) return it->second; - found = false; - return DihedralParmArray(); - } - /// \return size in memory in bytes - size_t DataSize() const { - if (bpmap_.empty()) return 0; - const_iterator elt0 = begin(); - // Assume all TypeNameHolders are the same size - return (bpmap_.size() * elt0->first.DataSize()) + - (bpmap_.size() * sizeof(DihedralParmArray)) + - sizeof(Bmap); - } - private: - Bmap bpmap_; -}; -#endif diff --git a/src/ParameterSet.cpp b/src/ParameterSet.cpp deleted file mode 100644 index 7d85cfb647..0000000000 --- a/src/ParameterSet.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "ParameterSet.h" -#include "CpptrajFile.h" -#include "CpptrajStdio.h" -#include "Constants.h" -#include "UpdateParameters.h" - -size_t ParameterSet::DataSize() const { - return (atomTypes_.DataSize() + - bondParm_.DataSize() + - angleParm_.DataSize() + - ubParm_.DataSize() + - dihParm_.DataSize() + - impParm_.DataSize()); -} - -void ParameterSet::Debug(const char* fnameIn) const { - CpptrajFile Out; - Out.OpenWrite( fnameIn ); - Out.Printf("Atom Types:\n"); - Out.Printf("\t%6s %8s %12s %12s %12s\n", "Name", "TypeIdx", "Radius", "Depth", "Mass"); - for (ParmHolder<AtomType>::const_iterator at = atomTypes_.begin(); at != atomTypes_.end(); ++at) { - Out.Printf("\t%6s %8li %12.4f %12.4f %12.4f\n", *(at->first[0]), at - atomTypes_.begin(), at->second.LJ().Radius(), at->second.LJ().Depth(), at->second.Mass()); - } - if (!nbParm_.empty()) { - Out.Printf("LJ parameters:\n"); - Out.Printf("\t%6s %6s : %12s %12s\n", "Type1", "Type2", "A", "B"); - for (ParmHolder<NonbondType>::const_iterator nb = nbParm_.begin(); nb != nbParm_.end(); ++nb) - Out.Printf("\t%6s %6s : %12.4E %12.4E\n", (*nb->first[0]), (*nb->first[1]), nb->second.A(), nb->second.B()); - } - if (!bondParm_.empty()) { - Out.Printf("Bond parameters:\n"); - Out.Printf("\t%6s %6s : %12s %12s\n", "Type1", "Type2", "Rk", "Req"); - for (ParmHolder<BondParmType>::const_iterator bp = bondParm_.begin(); bp != bondParm_.end(); ++bp) - Out.Printf("\t%6s %6s : %12.4f %12.4f\n", *(bp->first[0]), *(bp->first[1]), bp->second.Rk(), bp->second.Req()); - } - if (!angleParm_.empty()) { - Out.Printf("Angle parameters:\n"); - Out.Printf("\t%6s %6s %6s : %12s %12s\n", "Type1", "Type2", "Type3", "Tk", "Teq"); - for (ParmHolder<AngleParmType>::const_iterator bp = angleParm_.begin(); bp != angleParm_.end(); ++bp) - Out.Printf("\t%6s %6s %6s : %12.4f %12.4f\n", *(bp->first[0]), *(bp->first[1]), *(bp->first[2]), bp->second.Tk(), bp->second.Teq()); - } - if (!ubParm_.empty()) { - Out.Printf("UB parameters:\n"); - Out.Printf("\t%6s %6s : %12s %12s\n", "Type1", "Type2", "Uk", "Ueq"); - for (ParmHolder<BondParmType>::const_iterator bp = ubParm_.begin(); bp != ubParm_.end(); ++bp) - Out.Printf("\t%s %s : %f %f\n", *(bp->first[0]), *(bp->first[1]), bp->second.Rk(), bp->second.Req()); - } - if (!dihParm_.empty()) { - Out.Printf("Dihedral parameters:\n"); - Out.Printf("\t%6s %6s %6s %6s %12s %12s %12s\n", "Type1", "Type2", "Type3", "Type4", "Pk", "Pn", "Phase"); - for (DihedralParmHolder::const_iterator it0 = dihParm_.begin(); it0 != dihParm_.end(); ++it0) - for (DihedralParmArray::const_iterator it1 = it0->second.begin(); - it1 != it0->second.end(); ++it1) - Out.Printf("\t%6s %6s %6s %6s : %12.4f %12.4f %12.4f\n", *(it0->first[0]), *(it0->first[1]), *(it0->first[2]), *(it0->first[3]), it1->Pk(), it1->Pn(), it1->Phase()); - } - if (!impParm_.empty()) { - Out.Printf("Improper parameters:\n"); - Out.Printf("\t%6s %6s %6s %6s %12s %12s %12s\n", "Type1", "Type2", "Type3", "Type4", "Pk", "Pn", "Phase"); - for (ParmHolder<DihedralParmType>::const_iterator bp = impParm_.begin(); bp != impParm_.end(); ++bp) - Out.Printf("\t%6s %6s %6s %6s : %12.4f %12.4f %12.4f\n", *(bp->first[0]), *(bp->first[1]), *(bp->first[2]), *(bp->first[3]), bp->second.Pk(), bp->second.Pn(), bp->second.Phase()); - } -} - -/** Update/add to parameters in this topology with those from given set. */ -int ParameterSet::UpdateParamSet(ParameterSet const& set1, UpdateCount& uc, int debugIn) { - ParameterSet& set0 = *this; - // Check - if (debugIn > 0) { - mprintf("DEBUG: Saving original parameters in originalp.dat, incoming parameters in incomingp.dat, new parameters in newp.dat.\n"); - set0.Debug("originalp.dat"); - set1.Debug("incomingp.dat"); - } - - // Bond parameters - uc.nBondsUpdated_ = UpdateParameters< ParmHolder<BondParmType> >(set0.BP(), set1.BP(), "bond"); - // Angle parameters - uc.nAnglesUpdated_ = UpdateParameters< ParmHolder<AngleParmType> >(set0.AP(), set1.AP(), "angle"); - // Dihedral/improper parameters - uc.nDihedralsUpdated_ = UpdateParameters< DihedralParmHolder >(set0.DP(), set1.DP(), "dihedral"); - // Improper parameters - uc.nImpropersUpdated_ = UpdateParameters< ParmHolder<DihedralParmType> >(set0.IP(), set1.IP(), "improper"); - // Urey-Bradley parameters - uc.nUreyBradleyUpdated_ = UpdateParameters< ParmHolder<BondParmType> >(set0.UB(), set1.UB(), "Urey-Bradley"); - // Atom types - uc.nAtomTypeUpdated_ = UpdateParameters< ParmHolder<AtomType> >(set0.AT(), set1.AT(), "atom type"); - // LJ Pairs - uc.nLJparamsUpdated_ = UpdateParameters< ParmHolder<NonbondType> >(set0.NB(), set1.NB(), "LJ A-B"); - - if (debugIn > 0) set0.Debug("newp.dat"); - return 0; -} diff --git a/src/ParameterSet.h b/src/ParameterSet.h deleted file mode 100644 index e5b1844220..0000000000 --- a/src/ParameterSet.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef INC_PARAMETERSET_H -#define INC_PARAMETERSET_H -#include "ParameterTypes.h" -#include "ParameterHolders.h" -#include "AtomType.h" -/// Hold a set of parameters for atom types, bonds, angles, etc. -class ParameterSet { - public: - ParameterSet() : hasLJparams_(false) {} - - ParmHolder<AtomType>& AT() { return atomTypes_; } - ParmHolder<NonbondType>& NB() { return nbParm_; } - ParmHolder<BondParmType>& BP() { return bondParm_; } - ParmHolder<AngleParmType>& AP() { return angleParm_; } - ParmHolder<BondParmType>& UB() { return ubParm_; } - //ParmHolder<DihedralParmType>& DP() { return dihParm_; } - ParmHolder<DihedralParmType>& IP() { return impParm_; } - DihedralParmHolder& DP() { return dihParm_; } - - void SetHasLJparams(bool b) { hasLJparams_ = b; } - bool HasLJparams() const { return hasLJparams_; } - - ParmHolder<AtomType> const& AT() const { return atomTypes_; } - ParmHolder<NonbondType> const& NB() const { return nbParm_; } - ParmHolder<BondParmType> const& BP() const { return bondParm_; } - ParmHolder<AngleParmType> const& AP() const { return angleParm_; } - ParmHolder<BondParmType> const& UB() const { return ubParm_; } - //ParmHolder<DihedralParmType> const& DP() const { return dihParm_; } - ParmHolder<DihedralParmType> const& IP() const { return impParm_; } - DihedralParmHolder const& DP() const { return dihParm_; } - - void Debug(const char*) const; - void Debug() const { return Debug(""); } - - /// Used to track what parameters were updated during UpdateParams - class UpdateCount { - public: - UpdateCount() : nBondsUpdated_(0), nAnglesUpdated_(0), - nDihedralsUpdated_(0), nImpropersUpdated_(0), - nUreyBradleyUpdated_(0), nAtomTypeUpdated_(0), - nLJparamsUpdated_(0) {} - unsigned int nBondsUpdated_; - unsigned int nAnglesUpdated_; - unsigned int nDihedralsUpdated_; - unsigned int nImpropersUpdated_; - unsigned int nUreyBradleyUpdated_; - unsigned int nAtomTypeUpdated_; - unsigned int nLJparamsUpdated_; - }; - /// Update this set with parameters from given set - int UpdateParamSet(ParameterSet const&, UpdateCount&, int); - /// \return Size in memory in bytes - size_t DataSize() const; - private: - //AtomTypeArray atomTypes_; - ParmHolder<AtomType> atomTypes_; - ParmHolder<NonbondType> nbParm_; - ParmHolder<BondParmType> bondParm_; - ParmHolder<AngleParmType> angleParm_; - ParmHolder<BondParmType> ubParm_; - //ParmHolder<DihedralParmType> dihParm_; - ParmHolder<DihedralParmType> impParm_; - DihedralParmHolder dihParm_; - bool hasLJparams_; -}; -#endif diff --git a/src/ParameterTypes.h b/src/ParameterTypes.h index 69b64b3bde..9bc25ccd8f 100644 --- a/src/ParameterTypes.h +++ b/src/ParameterTypes.h @@ -19,6 +19,13 @@ static inline bool FNE(double v1, double v2) { return (delta > Constants::SMALL); } +/// Calculate relative error of A1 from A0 TODO check A0? +static inline double RELERR(double A0, double A1) { + double delta = A0 - A1; + if (delta < 0.0) delta = -delta; + return (delta / A0); +} + // ----- BOND/ANGLE/DIHEDRAL PARAMETERS ---------------------------------------- /// Hold bond parameters class BondParmType { @@ -49,7 +56,37 @@ class BondParmType { double rk_; double req_; }; -typedef std::vector<BondParmType> BondParmArray; +/// Hold Array of bond parameters +class BondParmArray { + typedef std::vector<BondParmType> BPArray; + public: + BondParmArray() {} + /// Resize the bond parm array + void resize(unsigned int n) { bondparm_.resize( n ); } + /// Clear the bond parm array + void clear() { bondparm_.clear(); } + /// \return reference to specified bond parameter + BondParmType& operator[](unsigned int idx) { return bondparm_[idx]; } + /// Add bond parameter + void push_back( BondParmType const& bp ) { bondparm_.push_back( bp ); } + + /// \return const reference to specified bond parameter + BondParmType const& operator[](unsigned int idx) const { return bondparm_[idx]; } + /// \return true if no bond parameters + bool empty() const { return bondparm_.empty(); } + /// \return number of bond parameters + size_t size() const { return bondparm_.size(); } + /// Const iterator + typedef BPArray::const_iterator const_iterator; + /// \return const iterator to beginning + const_iterator begin() const { return bondparm_.begin(); } + /// \return const iterator to end + const_iterator end() const { return bondparm_.end(); } + /// \return Underlying array + std::vector<BondParmType> const& Array() const { return bondparm_; } + private: + BPArray bondparm_; +}; /// Hold bonded atom indices and parameter index class BondType { public: @@ -64,12 +101,56 @@ class BondType { return (a2_ < rhs.a2_); } else return (a1_ < rhs.a1_); } + bool operator==(const BondType& rhs) const { + if ( (a1_ == rhs.a1_ && a2_ == rhs.a2_) || + (a2_ == rhs.a1_ && a1_ == rhs.a2_) ) return true; + return false; + } private: int a1_; int a2_; int idx_; }; -typedef std::vector<BondType> BondArray; +/// Hold array of bonds +class BondArray { + typedef std::vector<BondType> BArray; + public: + /// CONSTRUCTOR + BondArray() {} + + /// iterator + typedef BArray::iterator iterator; + /// begin + iterator begin() { return bonds_.begin(); } + /// end + iterator end() { return bonds_.end(); } + /// const iterator + typedef BArray::const_iterator const_iterator; + /// const begin + const_iterator begin() const { return bonds_.begin(); } + /// const end + const_iterator end() const { return bonds_.end(); } + + /// Reserve space for # of bonds + void reserve(size_t n) { bonds_.reserve(n); } + /// Add bond + void push_back(BondType const& b) { bonds_.push_back(b); } + /// Clear bonds + void clear() { bonds_.clear(); } + /// Erase given bond from array + void erase( iterator bnd ) { bonds_.erase( bnd ); } + + /// \return true if no bonds + bool empty() const { return bonds_.empty(); } + /// \return number of bonds + size_t size() const { return bonds_.size(); } + /// \return specified bond + BondType const& operator[](size_t idx) const { return bonds_[idx]; } + /// \return underlying array + std::vector<BondType> const& Array() const { return bonds_; } + private: + BArray bonds_; +}; /// Hold angle parameters class AngleParmType { public: @@ -96,10 +177,40 @@ class AngleParmType { return false; } private: - double tk_; - double teq_; + double tk_; ///< Angle force constant in kcal/mol*rad^2 + double teq_; ///< Angle equilibirum value in rad +}; +/// Hold Array of angle parameters +class AngleParmArray { + typedef std::vector<AngleParmType> APArray; + public: + AngleParmArray() {} + /// Resize the angle parm array + void resize(unsigned int n) { angleparm_.resize( n ); } + /// Clear the angle parm array + void clear() { angleparm_.clear(); } + /// \return reference to specified angle parameter + AngleParmType& operator[](unsigned int idx) { return angleparm_[idx]; } + /// Add angle parameter + void push_back( AngleParmType const& bp ) { angleparm_.push_back( bp ); } + + /// \return const reference to specified angle parameter + AngleParmType const& operator[](unsigned int idx) const { return angleparm_[idx]; } + /// \return true if no angle parameters + bool empty() const { return angleparm_.empty(); } + /// \return number of angle parameters + size_t size() const { return angleparm_.size(); } + /// Const iterator + typedef APArray::const_iterator const_iterator; + /// \return const iterator to beginning + const_iterator begin() const { return angleparm_.begin(); } + /// \return const iterator to end + const_iterator end() const { return angleparm_.end(); } + /// \return Underlying array + std::vector<AngleParmType> const& Array() const { return angleparm_; } + private: + APArray angleparm_; }; -typedef std::vector<AngleParmType> AngleParmArray; /// Hold angle atom indices and parameter index class AngleType { public: @@ -124,29 +235,104 @@ class AngleType { int a3_; int idx_; }; -typedef std::vector<AngleType> AngleArray; +/// Hold array of angle parameters +class AngleArray { + typedef std::vector<AngleType> AArray; + public: + /// CONSTRUCTOR + AngleArray() {} + + /// iterator + typedef AArray::iterator iterator; + /// begin + iterator begin() { return angles_.begin(); } + /// end + iterator end() { return angles_.end(); } + /// const iterator + typedef AArray::const_iterator const_iterator; + /// const begin + const_iterator begin() const { return angles_.begin(); } + /// const end + const_iterator end() const { return angles_.end(); } + + /// Reserve space for # of angles + void reserve(size_t n) { angles_.reserve(n); } + /// Add angle + void push_back(AngleType const& b) { angles_.push_back(b); } + /// Clear angles + void clear() { angles_.clear(); } + /// Erase given angle from array + void erase( iterator bnd ) { angles_.erase( bnd ); } + + /// \return true if no angles + bool empty() const { return angles_.empty(); } + /// \return number of angles + size_t size() const { return angles_.size(); } + /// \return specified angle + AngleType const& operator[](size_t idx) const { return angles_[idx]; } + /// \return underlying array + std::vector<AngleType> const& Array() const { return angles_; } + /// \return last angle added + AngleType& back() { return angles_.back(); } + private: + AArray angles_; +}; /// Hold dihedral parameters +/** Note that for the '==' and '<' operators, direct comparisons are used + * instead of the FEQ() function in order to match how LEaP would compare + * dihedrals. + */ class DihedralParmType { public: + /// CONSTRUCTOR DihedralParmType() : pk_(0), pn_(0), phase_(0), scee_(0), scnb_(0) {} + /// CONSTRUCTOR - PK, PN, Phase, SCEE, SCNB (Amber parameter file proper) DihedralParmType(double k, double n, double p, double e, double b) : pk_(k), pn_(n), phase_(p), scee_(e), scnb_(b) {} - DihedralParmType(double k, double p) : - pk_(k), pn_(0), phase_(p), scee_(0), scnb_(0) {} + /// CONSTRUCTOR - PK, PN, Phase (Amber parameter file improper) DihedralParmType(double k, double n, double p) : pk_(k), pn_(n), phase_(p), scee_(0), scnb_(0) {} + /// \return Dihedral force constant inline double Pk() const { return pk_; } - inline double& Pk() { return pk_; } + /// \return Dihedral periodicity inline double Pn() const { return pn_; } + /// \return Dihedral phase inline double Phase() const { return phase_; } + /// \return 1-4 electrostatics scaling constant inline double SCEE() const { return scee_; } + /// \return 1-4 vdW scaling constant inline double SCNB() const { return scnb_; } + /// Set dihedral force constant void SetPk(double k) { pk_ = k; } + /// Set dihedral periodicity void SetPn(double n) { pn_ = n; } + /// Set dihedral phase void SetPhase(double p) { phase_ = p; } + /// Set 1-4 electrostatics scaling constant void SetSCEE(double s) { scee_ = s; } + /// Set 1-4 vdW scaling constant void SetSCNB(double s) { scnb_ = s; } + /// \return True if two dihedral parameters are equal bool operator==(DihedralParmType const& rhs) const { + return ( pn_ == rhs.pn_ && + pk_ == rhs.pk_ && + phase_ == rhs.phase_ && + scee_ == rhs.scee_ && + scnb_ == rhs.scnb_ ); + } + /// \return True if this dihedral parameter should come before the given one + bool operator<(DihedralParmType const& rhs) const { + if ( pn_ == rhs.pn_ ) { + if ( pk_ == rhs.pk_ ) { + if ( phase_ == rhs.phase_ ) { + if ( scee_ == rhs.scee_ ) { + return ( scnb_ < rhs.scnb_ ); + } else return (scee_ < rhs.scee_); + } else return (phase_ < rhs.phase_); + } else return (pk_ < rhs.pk_); + } else return (pn_ < rhs.pn_); + } +/* bool operator==(DihedralParmType const& rhs) const { return ( FEQ(pk_, rhs.pk_) && FEQ(pn_, rhs.pn_) && FEQ(phase_, rhs.phase_) && @@ -154,24 +340,68 @@ class DihedralParmType { FEQ(scnb_, rhs.scnb_) ); } bool operator<(DihedralParmType const& rhs) const { - if (pk_ == rhs.pk_) { - if (pn_ == rhs.pn_) { - if (phase_ == rhs.phase_) { - if (scee_ == rhs.scee_) { + if (FEQ(pk_, rhs.pk_)) { + if (FEQ(pn_, rhs.pn_)) { + if (FEQ(phase_, rhs.phase_)) { + if (FEQ(scee_, rhs.scee_)) { return (scnb_ < rhs.scnb_); } else return (scee_ < rhs.scee_); } else return (phase_ < rhs.phase_); } else return (pn_ < rhs.pn_); } else return (pk_ < rhs.pk_); - } + }*/ + private: + double pk_; ///< Dihedral force constant + double pn_; ///< Dihedral periodicity + double phase_; ///< Dihedral phase shift + double scee_; ///< 1-4 electrostatics scale factor + double scnb_; ///< 1-4 vdW scale factor +}; +/// Hold Array of dihedral parameters +class DihedralParmArray { + typedef std::vector<DihedralParmType> DPArray; + public: + /// CONSTRUCTOR + DihedralParmArray() {} + /// CONSTRUCTOR - Number of parameters, parameter + DihedralParmArray(unsigned int n, DihedralParmType const& dp) : + dihedralparm_(n, dp) {} + /// Resize the dihedral parm array + void resize(unsigned int n) { dihedralparm_.resize( n ); } + /// Clear the dihedral parm array + void clear() { dihedralparm_.clear(); } + /// \return reference to specified dihedral parameter + DihedralParmType& operator[](unsigned int idx) { return dihedralparm_[idx]; } + /// Add dihedral parameter + void push_back( DihedralParmType const& bp ) { dihedralparm_.push_back( bp ); } + /// Iterator + typedef DPArray::iterator iterator; + /// \return iterator to beginning + iterator begin() { return dihedralparm_.begin(); } + /// \return iterator to end + iterator end() { return dihedralparm_.end(); } + + /// \return const reference to specified dihedral parameter + DihedralParmType const& operator[](unsigned int idx) const { return dihedralparm_[idx]; } + /// \return true if no dihedral parameters + bool empty() const { return dihedralparm_.empty(); } + /// \return number of dihedral parameters + size_t size() const { return dihedralparm_.size(); } + /// Const iterator + typedef DPArray::const_iterator const_iterator; + /// \return const iterator to beginning + const_iterator begin() const { return dihedralparm_.begin(); } + /// \return const iterator to end + const_iterator end() const { return dihedralparm_.end(); } + /// \return Underlying array + std::vector<DihedralParmType> const& Array() const { return dihedralparm_; } + /// \return Last dihedral parameter added + DihedralParmType const& back() const { return dihedralparm_.back(); } + /// \return First dihedral parameter added + DihedralParmType const& front() const { return dihedralparm_.front(); } private: - double pk_; - double pn_; - double phase_; - double scee_; - double scnb_; + DPArray dihedralparm_; }; -typedef std::vector<DihedralParmType> DihedralParmArray; /// Hold dihedral atom indices and parameter index /** Dihedrals can be marked normal (A1-A2-A3-A4), end (meaning 1-4 calc should * be skipped to avoid overcounting, e.g. for dihedrals with multiple @@ -221,6 +451,10 @@ class DihedralType { void SetIdx(int i) { idx_ = i; } void SetSkip14(bool b) { skip14_ = b; } void SetImproper(bool b) { improper_ = b; } + int& ChangeA1() { return a1_; } + int& ChangeA2() { return a2_; } + int& ChangeA3() { return a3_; } + int& ChangeA4() { return a4_; } /// \return type based on skip 1-4 (end) and improper status inline Dtype Type() const { if (skip14_ && improper_) return BOTH; @@ -240,6 +474,13 @@ class DihedralType { } else return (a2_ < rhs.a2_); } else return (a1_ < rhs.a1_); } + /// \return true if any atom indices do not match + bool operator!=(DihedralType const& rhs) const { + return (a1_ != rhs.a1_ || + a2_ != rhs.a2_ || + a3_ != rhs.a3_ || + a4_ != rhs.a4_); + } private: int a1_; int a2_; @@ -249,10 +490,57 @@ class DihedralType { bool skip14_; ///< If true the 1-4 interaction for this dihedral should be skipped. bool improper_; ///< If true this is an improper dihedral. }; -typedef std::vector<DihedralType> DihedralArray; +/// Hold array of dihedral parameters +class DihedralArray { + typedef std::vector<DihedralType> DArray; + public: + /// CONSTRUCTOR + DihedralArray() {} + + /// iterator + typedef DArray::iterator iterator; + /// begin + iterator begin() { return dihedrals_.begin(); } + /// end + iterator end() { return dihedrals_.end(); } + /// const iterator + typedef DArray::const_iterator const_iterator; + /// const begin + const_iterator begin() const { return dihedrals_.begin(); } + /// const end + const_iterator end() const { return dihedrals_.end(); } + + /// Reserve space for # of dihedrals + void reserve(size_t n) { dihedrals_.reserve(n); } + /// Add dihedral + void push_back(DihedralType const& b) { dihedrals_.push_back(b); } + /// Clear dihedrals + void clear() { dihedrals_.clear(); } + /// Erase given dihedral from array + void erase( iterator bnd ) { dihedrals_.erase( bnd ); } + + /// \return true if no dihedrals + bool empty() const { return dihedrals_.empty(); } + /// \return number of dihedrals + size_t size() const { return dihedrals_.size(); } + /// \return specified dihedral + DihedralType const& operator[](size_t idx) const { return dihedrals_[idx]; } + /// \return last dihedral added + DihedralType const& back() const { return dihedrals_.back(); } + /// \return underlying array + std::vector<DihedralType> const& Array() const { return dihedrals_; } + private: + DArray dihedrals_; +}; // ----- NON-BONDED PARAMETERS ------------------------------------------------- /// Hold LJ 10-12 hbond params class HB_ParmType { + /** Tolerance for comparison. A little larger than SMALL because A + * and B tend to be large. + */ + // NOTE: Probably should check __cpluscplus here instead of using a + // define, but this is guaranteed to be portable. +# define tol_ 0.00000001 public: HB_ParmType() : asol_(0), bsol_(0), hbcut_(0) {} HB_ParmType(double a, double b, double c) : @@ -263,16 +551,40 @@ class HB_ParmType { void SetAsol(double a) { asol_ = a; } void SetBsol(double b) { bsol_ = b; } void SetHBcut(double h) { hbcut_ = h; } + /// \return True if A, B, and HBcut match + bool operator==(HB_ParmType const& rhs) const { + return ( (fabs(asol_ - rhs.asol_) < tol_) && + (fabs(bsol_ - rhs.bsol_) < tol_) && + (fabs(hbcut_ - rhs.hbcut_) < tol_) ); + } + /// \return True if A, B, or HBcut do not match + bool operator!=(HB_ParmType const& rhs) const { + return ( (fabs(asol_ - rhs.asol_) > tol_) || + (fabs(bsol_ - rhs.bsol_) > tol_) || + (fabs(hbcut_ - rhs.hbcut_) > tol_) ); + } + /// \return True if A less than zero, or B if A is equal. TODO add hbcut? + bool operator<(HB_ParmType const& rhs) const { + if (*this != rhs) { + if ( (fabs(asol_ - rhs.asol_) < tol_) ) + return (bsol_ < rhs.bsol_); + else + return (asol_ < rhs.asol_); + } else + return false; + } private: double asol_; double bsol_; double hbcut_; +# undef tol_ }; typedef std::vector<HB_ParmType> HB_ParmArray; /// Hold Lennard-Jones 6-12 interaction A and B parameters class NonbondType { - /** Tolerance for comparison. A little larger than SMALL because A - * and B tend to be large. + /** Tolerance for comparison. Using relative error here since A and + * B tend to be large (particularly A) and are different magnitudes + * from each other. Not using Constants::SMALL for the same reason. */ // NOTE: Probably should check __cpluscplus here instead of using a // define, but this is guaranteed to be portable. @@ -299,18 +611,18 @@ class NonbondType { } /// \return True if A and B match bool operator==(NonbondType const& rhs) const { - return ( (fabs(A_ - rhs.A_) < tol_) && - (fabs(B_ - rhs.B_) < tol_) ); + return ( RELERR(A_, rhs.A_) < tol_ && + RELERR(B_, rhs.B_) < tol_ ); } /// \return True if A and B do not match bool operator!=(NonbondType const& rhs) const { - return ( (fabs(A_ - rhs.A_) > tol_) || - (fabs(B_ - rhs.B_) > tol_) ); + return ( RELERR(A_, rhs.A_) > tol_ || + RELERR(B_, rhs.B_) > tol_ ); } /// \return True if A less than zero, or B if A is equal. bool operator<(NonbondType const& rhs) const { if (*this != rhs) { - if ( (fabs(A_ - rhs.A_) < tol_) ) + if ( RELERR(A_, rhs.A_) < tol_ ) return (B_ < rhs.B_); else return (A_ < rhs.A_); @@ -318,8 +630,8 @@ class NonbondType { return false; } private: - double A_; - double B_; + double A_; ///< The coefficient for the r^12 term + double B_; ///< The coefficient for the r^6 term # undef tol_ }; typedef std::vector<NonbondType> NonbondArray; @@ -379,14 +691,20 @@ class NonbondParmType { inline int Ntypes() const { return ntypes_; } bool Has_C_Coeff() const { return !ccoef_.empty(); } std::vector<int> const& NBindex() const { return nbindex_; } - /// \return Array of LJ 12-6 A and B parameters + /// \return Array of LJ 6-12 A and B parameters NonbondArray const& NBarray() const { return nbarray_; } + /// \return Array of LJ 6-12 1-4 A and B parameters + NonbondArray const& LJ14() const { return lj14_; } /// \return Array of LJ 10-12 (hbond) parameters HB_ParmArray const& HBarray() const { return hbarray_; } /// \return Array of LJ 12-6-4 C parameters std::vector<double> const& LJC_Array() const { return ccoef_; } /// \return LJ 6-12 A and B parameter at specified index NonbondType const& NBarray(int i) const { return nbarray_[i]; } + /// \return LJ 6-12 1-4 A and B parameter at specified index + NonbondType const& LJ14(int i) const { return lj14_[i]; } + /// \return LJC parameter at specified index + double LJC_Array(int idx) const { return ccoef_[idx]; } /// \return LJ 10-12 (hbond) parameter at specified index HB_ParmType const& HBarray(int i) const { return hbarray_[i]; } /// In Amber, index < 0 means HB, otherwise LJ 6-12 @@ -400,8 +718,25 @@ class NonbondParmType { } /// Set number of types, init NB index array, init LJ array. void SetupLJforNtypes(int n) { SetNtypes(n); nbarray_.assign((n*(n+1))/2, NonbondType()); } + /// Set number of LJ 1-4 terms + void SetNLJ14terms(int n) { lj14_.assign( n, NonbondType() ); } + /// Set number of LJC terms + void SetNLJCterms(int n) { ccoef_.assign( n, 0 ); } + /// Create an array of LJC terms the same size as LJ A/B all set to zero + void AllocateLJC() { ccoef_.assign( nbarray_.size(), 0.0 ); } /// Set specified LJ term - NonbondType& SetLJ(int i) { return nbarray_[i]; } + NonbondType& SetLJ(int i) { return nbarray_[i]; } + /// Set specified LJ 1-4 term. + /** Reserve space if not yet allocated, allows it to be used in conjunction + * with AddLJterm. + */ + NonbondType& SetLJ14(int ndx) { + if (ndx >= (int)lj14_.size()) + lj14_.resize(ndx+1); + return lj14_[ndx]; + } + /// Set specified LJC term + void SetLJC(int i, double ljc) { ccoef_[i] = ljc; } /// Set number of HB terms and init HB array TODO combine with SetNtypes? void SetNHBterms(int n) { hbarray_.assign( n, HB_ParmType() ); } /// Set specified HB term @@ -415,8 +750,9 @@ class NonbondParmType { * nonbond index array; instead they expect the nonbond arrays to be * indexed like '(ibig*(ibig-1)/2+isml)', where ibig is the larger atom * type index. + * \return The index into nbarray_ */ - void AddLJterm(int type1, int type2, NonbondType const& LJ) { + int AddLJterm(int type1, int type2, NonbondType const& LJ) { int ibig, isml; if (type1 > type2) { ibig = type1 + 1; @@ -431,6 +767,7 @@ class NonbondParmType { if (ndx >= (int)nbarray_.size()) nbarray_.resize(ndx+1); nbarray_[ndx] = LJ; + return ndx; } /// Add given HB term to HB array and update the nonbond index array. void AddHBterm(int type1, int type2, HB_ParmType const& HB) { @@ -439,11 +776,12 @@ class NonbondParmType { nbindex_[ntypes_ * type2 + type1] = ndx; hbarray_.push_back( HB ); } - void Clear() { ntypes_ = 0; nbindex_.clear(); nbarray_.clear(); hbarray_.clear(); } + void Clear() { ntypes_ = 0; nbindex_.clear(); nbarray_.clear(); lj14_.clear(); hbarray_.clear(); } private: int ntypes_; ///< Number of unique atom types std::vector<int> nbindex_; ///< Hold indices into arrays nbarray/hbarray for atom type pairs NonbondArray nbarray_; ///< Hold Lennard-Jones 6-12 A and B parameters for all pairs. + NonbondArray lj14_; ///< Lennard-Jones 6-12 1-4 parameters HB_ParmArray hbarray_; ///< Hold 10-12 Amber HBond params for all pairs. std::vector<double> ccoef_; ///< Hold Lennard-Jones C parameters for 12-6-4 LJ potential. }; @@ -537,20 +875,153 @@ class CapParmType { double zcap_; ///< Z coordinate for the center of the cap }; // ----- CHAMBER PARAMETERS ---------------------------------------------------- -/// Hold CMAP grid parameters +/// Hold CMAP grid parameters // FIXME use NameType class CmapGridType { + static inline int wrap_grid(int iin, int res) { + int iout = iin; + if (iout < 0) { + while (iout < 0) iout += res; + } else if (iout >= res) { + while (iout >= res) iout -= res; + } + return iout; + } public: - CmapGridType() : resolution_(0) {} - CmapGridType(unsigned int r) : resolution_(r), grid_((size_t)r*(size_t)r, 0.0) {} - inline int Resolution() const { return resolution_; } - inline std::vector<double> const& Grid() const { return grid_; } - inline int Size() const { return (int)grid_.size(); } + CmapGridType() : nCmapRes_(0), resolution_(0) {} + CmapGridType(unsigned int r) : nCmapRes_(0), resolution_(r), grid_(r*r, 0.0) {} + /// \return Grid resolution (in 1 dim, full res is resolutionXresolution) + unsigned int Resolution() const { return resolution_; } + /// \return CMAP grid + std::vector<double> const& Grid() const { return grid_; } + /// \return CMAP grid point for specified column and row. + double Grid(int col, int row) const { + // NOTE : CMAPs are read in from Amber topologys in COLUMN-MAJOR order + int ix = wrap_grid(col, resolution_); + int iy = wrap_grid(row, resolution_); + return grid_[(ix * resolution_) + iy]; + } + /// \return array of residue names this CMAP applies to + std::vector<std::string> const& ResNames() const { return resNames_; } + /// \return true if given name matches a residue name +/* bool MatchesResName(std::string const& nameIn) const { + for (std::vector<std::string>::const_iterator it = resNames_.begin(); it != resNames_.end(); ++it) + if (nameIn == *it) return true; + return false; + }*/ + /// \return array of atom names this CMAP applies to + std::vector<std::string> const& AtomNames() const { return atomNames_; } + /// \return array of residue offsets corresponding to atom names + std::vector<int> ResOffsets() const { return resOffsets_; } + /// \return Expected number of CMAP residue names + int NcmapResNames() const { return nCmapRes_; } + /// \return Grid size as integer, used for topology write + int Size() const { return (int)grid_.size(); } + /// \return CMAP title + std::string const& Title() const { return title_; } + /// Size of the CMAP grid in bytes + unsigned int DataSize() const { return (sizeof(unsigned int) + (grid_.size()*sizeof(double))); } + /// Set specified grid point void SetGridPt(int idx, double d) { grid_[idx] = d; } + /// Prepare grid for given resolution + void SetResolution(unsigned int r) { + grid_.clear(); + grid_.reserve( r*r ); + resolution_ = r; + } + /// Add value to the grid + void AddToGrid(double d) { grid_.push_back( d ); } + /// Set CMAP title + void SetTitle(std::string const& t) { title_ = t; } + /// Number of residues this CMAP will be applied to + void SetNumCmapRes(int n) { + resNames_.clear(); + resNames_.reserve( n ); + nCmapRes_ = n; + } + /// Add residue name this CMAP will apply to + void AddResName(std::string const& n) { resNames_.push_back( n ); } + /// Add atom name this CMAP will apply to + void AddAtomName(std::string const& n) { atomNames_.push_back( n ); } + /// Add residue offset for each atom name + void AddResOffset(int i) { resOffsets_.push_back( i ); } + /// \return True if the CMAP is valid + bool CmapIsValid() const { + if (resolution_ == 0 || resolution_*resolution_ != grid_.size()) + return false; + if (atomNames_.size() != 5) + return false; + if (resOffsets_.size() != 5) + return false; + if (resNames_.empty()) + return false; + return true; + } + /// \return True if CMAP # res names matches expected # of names. + bool CmapNresIsValid() const { + if (nCmapRes_ == 0 || nCmapRes_ != (int)resNames_.size()) + return false; + return true; + } + /// \return True if CMAP is completely empty + bool empty() const { + return (nCmapRes_ == 0 && resolution_ == 0 && + grid_.empty() && title_.empty() && resNames_.empty()); + } + /// \return True if CMAP grid matches given grid. Expensive, so use sparingly. + bool GridMatches(CmapGridType const& rhs) const { + if (grid_.size() != rhs.grid_.size()) return false; + for (unsigned int idx = 0; idx != grid_.size(); idx++) { + if (FNE(grid_[idx], rhs.grid_[idx])) return false; + } + return true; + } private: - int resolution_; ///< Number of steps along each phi/psi CMAP axis + int nCmapRes_; ///< Number of expected residues this CMAP will apply to + unsigned int resolution_; ///< Number of steps along each phi/psi CMAP axis std::vector<double> grid_; ///< CMAP grid (size is resolution_*resolution_) + std::string title_; ///< CMAP title (from parameter file) + std::vector<std::string> resNames_; ///< Residue name(s) this CMAP will apply to + std::vector<std::string> atomNames_; ///< 5x atom names this CMAP will apply to + std::vector<int> resOffsets_; ///< 5x residue offset corresponding to each atom name +}; +/// Hold an array of CMAP grids +class CmapGridArray { + typedef std::vector<CmapGridType> CGarray; + public: + CmapGridArray() {} + /// \return number of CMAP grids + size_t size() const { return cmapgrids_.size(); } + /// \return CMAP grid at specified index + CmapGridType const& operator[](unsigned int idx) const { return cmapgrids_[idx]; } + /// const iterator + typedef CGarray::const_iterator const_iterator; + /// const begin iterator + const_iterator begin() const { return cmapgrids_.begin(); } + /// const end iterator + const_iterator end() const { return cmapgrids_.end(); } + /// \return True if no CMAP grids + bool empty() const { return cmapgrids_.empty(); } + + /// \return CMAP grid at specified index + CmapGridType& operator[](unsigned int idx) { return cmapgrids_[idx]; } + /// Add CMAP grid + void push_back(CmapGridType const& cg) { cmapgrids_.push_back( cg ); } + /// Clear all grids + void clear() { cmapgrids_.clear(); } + /// Reserve for specified # of grids + void reserve(size_t n) { cmapgrids_.reserve(n); } + /// Resize for specified # of grids + void resize(size_t n) { cmapgrids_.resize(n); } + /// iterator + typedef CGarray::iterator iterator; + /// begin iterator + iterator begin() { return cmapgrids_.begin(); } + /// end iterator + iterator end() { return cmapgrids_.end(); } + + private: + CGarray cmapgrids_; }; -typedef std::vector<CmapGridType> CmapGridArray; /// Hold CMAP atom indices and corresponding grid index class CmapType { public: @@ -563,6 +1034,8 @@ class CmapType { inline int A4() const { return a4_; } inline int A5() const { return a5_; } inline int Idx() const { return idx_; } + + void SetIdx(int i) { idx_ = i; } private: int a1_; int a2_; @@ -571,8 +1044,37 @@ class CmapType { int a5_; int idx_; }; -typedef std::vector<CmapType> CmapArray; +/// Hold an array of CMAP terms +class CmapArray { + typedef std::vector<CmapType> CArray; + public: + CmapArray() {} + /// \return number of CMAP terms + size_t size() const { return cmap_.size(); } + /// const iterator + typedef CArray::const_iterator const_iterator; + /// const begin iterator + const_iterator begin() const { return cmap_.begin(); } + /// const end iterator + const_iterator end() const { return cmap_.end(); } + /// \return True if no CMAP terms + bool empty() const { return cmap_.empty(); } + + /// Add CMAP term + void push_back(CmapType const& cm) { cmap_.push_back( cm ); } + /// Clear all terms + void clear() { cmap_.clear(); } + /// iterator + typedef CArray::iterator iterator; + /// begin iterator + iterator begin() { return cmap_.begin(); } + /// end iterator + iterator end() { return cmap_.end(); } + private: + CArray cmap_; +}; /// Hold CHAMBER parameters +/* class ChamberParmType { typedef std::vector<std::string> Sarray; public: @@ -619,5 +1121,5 @@ class ChamberParmType { DihedralArray impropers_; ///< Improper terms DihedralParmArray improperparm_; ///< Improper parameters NonbondArray lj14_; ///< Lennard-Jones 1-4 parameters -}; +};*/ #endif diff --git a/src/Parm/AssignParams.cpp b/src/Parm/AssignParams.cpp new file mode 100644 index 0000000000..5eb2aed2c6 --- /dev/null +++ b/src/Parm/AssignParams.cpp @@ -0,0 +1,1381 @@ +#include "AssignParams.h" +#include "GetParams.h" +#include "ParmArray.h" +#include "ParmHolder.h" +#include "DihedralParmHolder.h" +#include "ImproperParmHolder.h" +#include "ParameterSet.h" +#include "../Atom.h" +#include "../AtomType.h" +#include "../CmapParmHolder.h" +#include "../CpptrajStdio.h" +#include "../Structure/GenerateConnectivityArrays.h" +#include "../GuessAtomHybridization.h" +#include "../Topology.h" +#include "../TypeNameHolder.h" +#include <algorithm> //sort +#include <map> // DihCacheType + +using namespace Cpptraj::Parm; + +/** CONSTRUCTOR */ +AssignParams::AssignParams() : + debug_(0), + verbose_(0), + deleteExtraPointAngles_(true), + flexibleWater_(false) +{} + +/** Set debug level */ +void AssignParams::SetDebug(int debugIn) { + debug_ = debugIn; +} + +/** Set verbosity. */ +void AssignParams::SetVerbose(int verboseIn) { + verbose_ = verboseIn; +} + +/** Set flexible water option */ +void AssignParams::SetFlexibleWater(bool flexIn) { + flexibleWater_ = flexIn; +} + +/** Set parameters for atoms via given atom type parameter holder. */ +int AssignParams::AssignAtomTypeParm(AtArray& atoms, ParmHolder<AtomType> const& newAtomTypeParams) +const +{ + int nmissing = 0; + for (AtArray::iterator iat = atoms.begin(); iat != atoms.end(); ++iat) + { + bool found; + TypeNameHolder atype( iat->Type() ); + AtomType AT = newAtomTypeParams.FindParam( atype, found ); + if (found) { + // Update mass + iat->SetMass( AT.Mass() ); + // Update polarizability + iat->SetPolar( AT.Polarizability() ); + } else { + mprintf("Warning: Atom type parameter not found for %s\n", *atype[0]); + nmissing++; + } + } + return nmissing; +} + +/** Set parameters for bonds in given bond array. */ +int AssignParams::AssignBondParm(Topology const& topOut, + ParmHolder<BondParmType> const& newBondParams, + BondArray& bonds, BondParmArray& bpa, const char* desc) +const +{ + int nmissing = 0; + ParmHolder<int> currentTypes; + for (BondArray::iterator bnd = bonds.begin(); bnd != bonds.end(); ++bnd) { + TypeNameHolder types(2); + types.AddName( topOut[bnd->A1()].Type() ); + types.AddName( topOut[bnd->A2()].Type() ); + bool found; + // See if parameter is present. + int idx = currentTypes.FindParam(types, found); + if (!found) { + idx = -1; + // Not yet present in current types. + BondParmType bp = newBondParams.FindParam( types, found ); + if (!found) { + mprintf("Warning: parameter not found for %s %s-%s (%s-%s)\n", desc, + topOut.TruncResAtomNameNum(bnd->A1()).c_str(), + topOut.TruncResAtomNameNum(bnd->A2()).c_str(), + *types[0], *types[1]); + nmissing++; + } else { + //idx = addBondParm( bpa, bp ); TODO handle array packing + idx = (int)bpa.size(); + bpa.push_back( bp ); + currentTypes.AddParm(types, idx, false); + } + } + bnd->SetIdx( idx ); + } +/* + for (BondArray::iterator bnd = bonds.begin(); bnd != bonds.end(); ++bnd) { + TypeNameHolder types(2); + types.AddName( atoms_[bnd->A1()].Type() ); + types.AddName( atoms_[bnd->A2()].Type() ); + bool found; + // See if parameter is present. + int idx = -1; + BondParmType bp = newBondParams.FindParam( types, found ); + if (!found) { + mprintf("Warning: parameter not found for %s %s-%s (%s-%s)\n", desc, + TruncResAtomNameNum(bnd->A1()).c_str(), + TruncResAtomNameNum(bnd->A2()).c_str(), + *types[0], *types[1]); + } else { + idx = addBondParm( bpa, bp ); + } + bnd->SetIdx( idx ); + }*/ + return nmissing; +} + +/** Replace any current bond parameters with given bond parameters. */ +void AssignParams::AssignBondParams(Topology& topOut, ParmHolder<BondParmType> const& newBondParams) const { + topOut.ModifyBondParm().clear(); + AssignBondParm( topOut, newBondParams, topOut.ModifyBonds(), topOut.ModifyBondParm(), "bond" ); + AssignBondParm( topOut, newBondParams, topOut.ModifyBondsH(), topOut.ModifyBondParm(), "bond" ); +} + +/** Replace any current Urey-Bradley parameters with given UB parameters. */ +void AssignParams::AssignUBParams(Topology& topOut, ParmHolder<BondParmType> const& newBondParams) const { + topOut.ModifyUBparm().clear(); + AssignBondParm( topOut, newBondParams, topOut.ModifyUB(), topOut.ModifyUBparm(), "UB term" ); +} + +/** Set parameters for angles in given angle array. */ +AngleArray AssignParams::AssignAngleParm(Topology const& topOut, + ParmHolder<AngleParmType> const& newAngleParams, + AngleArray const& angles, AngleParmArray& apa, + int& nmissing) +const +{ + AngleArray newAngles; + ParmHolder<int> currentTypes; + for (AngleArray::const_iterator ang = angles.begin(); ang != angles.end(); ++ang) { + TypeNameHolder types(3); + types.AddName( topOut[ang->A1()].Type() ); + types.AddName( topOut[ang->A2()].Type() ); + types.AddName( topOut[ang->A3()].Type() ); + // Skip extra points + if (deleteExtraPointAngles_) { + if ( topOut[ang->A1()].Element() == Atom::EXTRAPT || + topOut[ang->A3()].Element() == Atom::EXTRAPT) + { + if (debug_ > 0) + mprintf("DEBUG: Skipping angle with extra point: %4i %4i %4i (%2s %2s %2s)\n", + ang->A1()+1, ang->A2()+1, ang->A3()+1, + *types[0], *types[1], *types[2]); + continue; + } + } + // O-H-H Angle. Assume rigid water model and always skip. + if (topOut[ang->A1()].Element() == Atom::OXYGEN && + topOut[ang->A2()].Element() == Atom::HYDROGEN && + topOut[ang->A3()].Element() == Atom::HYDROGEN) + { + if (debug_ > 0) + mprintf("DEBUG: O-H-H angle. Assuming rigid water, skipping angle: " + "%4i %4i %4i (%2s %2s %2s)\n", + ang->A1()+1, ang->A2()+1, ang->A3()+1, + *types[0], *types[1], *types[2]); + continue; + } + // Skip water angles + if (!flexibleWater_) { + if (topOut[ang->A1()].Element() == Atom::HYDROGEN && + topOut[ang->A2()].Element() == Atom::OXYGEN && + topOut[ang->A3()].Element() == Atom::HYDROGEN) + { + // H-O-H Angle. If there is an H-H bond assume this is a rigid water model. + if (topOut[ang->A1()].IsBondedTo( ang->A3() )) { + if (debug_ > 0) + mprintf("DEBUG: H-O-H angle, H-H bond detected. Assuming rigid water, skipping angle: " + "%4i %4i %4i (%2s %2s %2s)\n", + ang->A1()+1, ang->A2()+1, ang->A3()+1, + *types[0], *types[1], *types[2]); + continue; + } + } + } + + bool found; + // See if parameter is present. + int idx = currentTypes.FindParam( types, found ); + if (!found) { + idx = -1; + // Not yet present in current types + AngleParmType ap = newAngleParams.FindParam( types, found ); + if (!found) { + mprintf("Warning: Angle parameter not found for angle %s-%s-%s (%s-%s-%s)\n", + topOut.TruncResAtomNameNum(ang->A1()).c_str(), + topOut.TruncResAtomNameNum(ang->A2()).c_str(), + topOut.TruncResAtomNameNum(ang->A3()).c_str(), + *types[0], *types[1], *types[2]); + nmissing++; + } else { + //idx = addAngleParm( angleparm_, ap ); // TODO uncomment for array packing + idx = (int)apa.size(); + apa.push_back( ap ); + //mprintf("DEBUG: New angle type for %s-%s-%s (Tk=%g Teq=%g) idx=%i\n", *types[0], *types[1], *types[2], ap.Tk(), ap.Teq(), idx); + currentTypes.AddParm(types, idx, false); + } + } + newAngles.push_back( *ang ); + newAngles.back().SetIdx( idx ); + } + return newAngles; +/* + for (AngleArray::iterator ang = angles.begin(); ang != angles.end(); ++ang) { + TypeNameHolder types(3); + types.AddName( atoms_[ang->A1()].Type() ); + types.AddName( atoms_[ang->A2()].Type() ); + types.AddName( atoms_[ang->A3()].Type() ); + bool found; + // See if parameter is present. + int idx = -1; + AngleParmType ap = newAngleParams.FindParam( types, found ); + if (!found) { + mprintf("Warning: Angle parameter not found for angle %s-%s-%s (%s-%s-%s)\n", + TruncResAtomNameNum(ang->A1()).c_str(), + TruncResAtomNameNum(ang->A2()).c_str(), + TruncResAtomNameNum(ang->A3()).c_str(), + *types[0], *types[1], *types[3]); + } else { + idx = addAngleParm( angleparm_, ap ); + } + ang->SetIdx( idx ); + }*/ +} + +/** Replace any current angle parameters with given angle parameters. */ +void AssignParams::AssignAngleParams(Topology& topOut, ParmHolder<AngleParmType> const& newAngleParams) const { + topOut.ModifyAngleParm().clear(); + int nmissing = 0; + topOut.ModifyAngles() = AssignAngleParm( topOut, newAngleParams, topOut.Angles(), topOut.ModifyAngleParm(), nmissing ); + topOut.ModifyAnglesH() = AssignAngleParm( topOut, newAngleParams, topOut.AnglesH(), topOut.ModifyAngleParm(), nmissing ); +} + +/** Warn if improper atoms have been reordered so they match the parameter. */ +void AssignParams::warn_improper_reorder(AtArray const& atoms, DihedralType const& imp0, DihedralType const& imp) +const +{ + if (debug_ < 1) return; + mprintf("Warning: Improper types have been reordered from %4s %4s %4s %4s", + *(atoms[imp0.A1()].Type()), + *(atoms[imp0.A2()].Type()), + *(atoms[imp0.A3()].Type()), + *(atoms[imp0.A4()].Type())); + mprintf(" to %4s %4s %4s %4s to match improper parameter.\n", + *(atoms[imp.A1()].Type()), + *(atoms[imp.A2()].Type()), + *(atoms[imp.A3()].Type()), + *(atoms[imp.A4()].Type())); +} + +/** Set parameters for improper dihedrals in given improper dihedral array. */ +void AssignParams::AssignImproperParm(Topology& topOut, + ImproperParmHolder const& newImproperParams, + DihedralArray& impropers, + DihedralParmArray& dpa) +const +{ + for (DihedralArray::iterator imp = impropers.begin(); imp != impropers.end(); ++imp) { + TypeNameHolder types(4); + types.AddName( topOut[imp->A1()].Type() ); + types.AddName( topOut[imp->A2()].Type() ); + types.AddName( topOut[imp->A3()].Type() ); + types.AddName( topOut[imp->A4()].Type() ); + bool found; + // See if parameter is present. + int idx = -1; + DihedralType imp0 = *imp; + bool reordered; + DihedralParmArray ipa = newImproperParams.FindParam( types, found, *imp, reordered ); + if (!found) { + mprintf("Warning: Parameter not found for improper %s-%s-%s-%s (%s-%s-%s-%s)\n", + topOut.TruncResAtomNameNum(imp->A1()).c_str(), + topOut.TruncResAtomNameNum(imp->A2()).c_str(), + topOut.TruncResAtomNameNum(imp->A3()).c_str(), + topOut.TruncResAtomNameNum(imp->A4()).c_str(), + *types[0], *types[1], *types[3], *types[4]); + } else { + if (ipa.size() > 1) + mprintf("Warning: %zu improper parameters found for types %s - %s - %s - %s, expected only one." + "Warning: Only using first parameter.\n", ipa.size(), *(types[0]), *(types[1]), *(types[2]), *(types[3])); + if (reordered) warn_improper_reorder( topOut.Atoms(), imp0, *imp ); + idx = topOut.addTorsionParm( dpa, ipa.front() ); + } + imp->SetIdx( idx ); + } +} + +/** Replace any current improper parameters with given improper parameters. */ +void AssignParams::AssignImproperParams(Topology& topOut, ImproperParmHolder const& newImproperParams) const { + topOut.ModifyImproperParm().clear(); + AssignImproperParm( topOut, newImproperParams, topOut.ModifyImpropers(), topOut.ModifyImproperParm() ); +} + +/** Set parameters for dihedrals in given dihedral array. + * Bond and angle information must be set up prior to calling + * this function in order for improper and 1-4 detection to work. + * \param newDihedralParams New proper dihedral parameters. + * \param newImproperParams New improper dihedral parameters. + * \param dihedrals Array containing only unique dihedrals. + * \param sort_improper_cache If true, sort improper types in cache (to match current leap behavior) + */ +DihedralArray AssignParams::AssignDihedralParm(Topology& topOut, + DihedralParmHolder const& newDihedralParams, + ImproperParmHolder const& newImproperParams, + ParmHolder<AtomType> const& AT, + DihedralArray const& dihedrals, + bool sort_improper_cache, + int& nmissing) +#ifndef TIMER +const +#endif +{ // TODO skip extra points + DihedralArray dihedralsIn; + // Dihedral cache + typedef std::pair<TypeNameHolder, DihedralParmArray> DihCachePair; + typedef std::map<TypeNameHolder, DihedralParmArray> DihCacheType; + DihCacheType dihedralCache; + // Improper cache + ImproperParmHolder improperCache; + improperCache.SetWildcard( newImproperParams.Wildcard() ); + improperCache.SetRequireExactMatch( newImproperParams.RequireExactMatch() ); + // Keep track of 1-4 interactions + typedef std::pair<int,int> Ipair; + typedef std::set<Ipair> Imap; + Imap PairMap; + // Loop over all dihedrals + for (DihedralArray::const_iterator dih = dihedrals.begin(); dih != dihedrals.end(); ++dih) { + TypeNameHolder types(4); + types.AddName( topOut[dih->A1()].Type() ); + types.AddName( topOut[dih->A2()].Type() ); + types.AddName( topOut[dih->A3()].Type() ); + types.AddName( topOut[dih->A4()].Type() ); + // Skip extra points + if (deleteExtraPointAngles_) { + if ( topOut[dih->A1()].Element() == Atom::EXTRAPT || + topOut[dih->A4()].Element() == Atom::EXTRAPT) + { + if (debug_ > 1) + mprintf("DEBUG: Skipping dihedral with extra point: %4i %4i %4i %4i (%2s %2s %2s %2s)\n", + dih->A1()+1, dih->A2()+1, dih->A3()+1, dih->A4()+1, + *types[0], *types[1], *types[2], *types[3]); + continue; + } + } +// mprintf("DEBUG: Assigning dihedral %4i %4i %4i %4i (%2s %2s %2s %2s) isImproper=%i skip14=%i\n", +// dih->A1()+1, dih->A2()+1, dih->A3()+1, dih->A4()+1, +// *types[0], *types[1], *types[2], *types[3], +// (int)dih->IsImproper(), (int)dih->Skip14()); + // Determine improper + bool isImproper = (!topOut[dih->A1()].IsBondedTo(dih->A2())) || + (!topOut[dih->A2()].IsBondedTo(dih->A3())) || + (!topOut[dih->A3()].IsBondedTo(dih->A4())); + if (isImproper != dih->IsImproper()) { + mprintf("Warning: dihedral %s-%s-%s-%s improper status %i does not match detected (%i)\n", + topOut.TruncResAtomNameNum(dih->A1()).c_str(), + topOut.TruncResAtomNameNum(dih->A2()).c_str(), + topOut.TruncResAtomNameNum(dih->A3()).c_str(), + topOut.TruncResAtomNameNum(dih->A4()).c_str(), + (int)dih->IsImproper(), (int)isImproper); + } + bool found; + if (dih->IsImproper()) { +# ifdef TIMER + t_dih_imp_.Start(); +# endif + // ----- This is actually an improper dihedral. ---------------- + // Impropers are treated differently than other topology types. If + // no parameter is found, do not add it to the list of dihedrals. + // However, if no parameter is found and the central atom is + // SP2, print a warning. + found = false; + DihedralType mydih = *dih; + bool reordered; + bool is_new_improper = false; + DihedralParmArray ipa; + TypeNameHolder paramTypes; + ImproperParmHolder::const_iterator impit = improperCache.GetParam( types, mydih, reordered ); + if (impit == improperCache.end()) { + impit = newImproperParams.GetParam( types, mydih, reordered ); + if (impit != newImproperParams.end()) { + is_new_improper = true; + paramTypes = impit->first; + ipa = impit->second; + found = true; + if (debug_ > 1) + mprintf("DEBUG: Found new value for improper %2s %2s %2s %2s (%2s %2s %2s %2s)\n", + *types[0], *types[1], *types[2], *types[3], + *paramTypes[0], *paramTypes[1], *paramTypes[2], *paramTypes[3]); + } + } else { + // If the cached improper has wildcards, see if there is a more + // specific one in the new improper parameters. + int n_wildcards = 0; + if (newImproperParams.Wildcard().len() > 0) { + for (TypeNameHolder::const_iterator tt = impit->first.begin(); tt != impit->first.end(); ++tt) { + if ( *tt == newImproperParams.Wildcard() ) { + n_wildcards++; + } + } + } + if (n_wildcards > 0) { + // Check if there is a more specific improper. + bool newReordered; + DihedralType newdih = *dih; + ImproperParmHolder::const_iterator moreSpecificImpit = newImproperParams.GetParam( types, newdih, newReordered ); + if (moreSpecificImpit != newImproperParams.end()) { + // See if the new improper has fewer wildcards than the cached one. + int new_wildcards = 0; + for (TypeNameHolder::const_iterator tt = moreSpecificImpit->first.begin(); + tt != moreSpecificImpit->first.end(); ++tt) + { + if ( *tt == newImproperParams.Wildcard() ) { + new_wildcards++; + } + } + if (new_wildcards < n_wildcards) { + // More specific improper was found. + if (debug_ > 0) + mprintf("DEBUG: A more specific improper was found for %2s %2s %2s %2s (%2s %2s %2s %2s)\n", + *(impit->first[0]), *(impit->first[1]), *(impit->first[2]), *(impit->first[3]), + *(moreSpecificImpit->first[0]), *(moreSpecificImpit->first[1]), *(moreSpecificImpit->first[2]), *(moreSpecificImpit->first[3])); + is_new_improper = true; + reordered = newReordered; + mydih = newdih; + impit = moreSpecificImpit; + } + } + } // END found improper had wildcards + paramTypes = impit->first; + ipa = impit->second; + found = true; + if (debug_ > 1) + mprintf("DEBUG: Using cached value for improper %2s %2s %2s %2s (%2s %2s %2s %2s)\n", + *types[0], *types[1], *types[2], *types[3], + *paramTypes[0], *paramTypes[1], *paramTypes[2], *paramTypes[3]); + } + int idx = -1; + if (!found) { + if (debug_ > 0) + mprintf("Warning: Improper parameters not found for improper dihedral %s-%s-%s-%s (%s-%s-%s-%s)\n", + topOut.TruncResAtomNameNum(dih->A1()).c_str(), + topOut.TruncResAtomNameNum(dih->A2()).c_str(), + topOut.TruncResAtomNameNum(dih->A3()).c_str(), + topOut.TruncResAtomNameNum(dih->A4()).c_str(), + *types[0], *types[1], *types[2], *types[3]); + // Central atom + Atom const& AJ = topOut[dih->A3()]; + AtomType::HybridizationType hybrid = AtomType::UNKNOWN_HYBRIDIZATION; + AtomType atype = AT.FindParam(TypeNameHolder(AJ.Type()), found); + if (found) + hybrid = atype.Hybridization(); + if (hybrid == AtomType::UNKNOWN_HYBRIDIZATION) { + mprintf("Warning: Guessing hybridization for improper central atom %s\n", topOut.AtomMaskName(dih->A3()).c_str()); + hybrid = Cpptraj::GuessAtomHybridization( AJ, topOut.Atoms() ); + } + if (hybrid == AtomType::SP2) { + mprintf("Warning: No improper parameters for SP2 hybridized atom %s\n", topOut.AtomMaskName(dih->A3()).c_str()); + } + } else { + //if (ipa.size() > 1) + // mprintf("Warning: %zu improper parameters found for types %s - %s - %s - %s, expected only one." + // "Warning: Only using first parameter.\n", ipa.size(), *(types[0]), *(types[1]), *(types[2]), *(types[3])); + if (reordered) warn_improper_reorder( topOut.Atoms(), *dih, mydih ); + mydih.SetImproper( true ); + // Always skip 1-4 for impropers + mydih.SetSkip14( true ); + for (DihedralParmArray::const_iterator it = ipa.begin(); it != ipa.end(); ++it) + { + idx = topOut.addTorsionParm( topOut.ModifyDihedralParm(), *it ); + mydih.SetIdx( idx ); + dihedralsIn.push_back( mydih ); + } + // Add to the cache + if (is_new_improper) { + // To match leap behavior, make sure paramTypes are sorted alphabetically. + //mprintf("DEBUG: Improper wildcard: %s\n", *(newImproperParams.Wildcard())); + if (sort_improper_cache) paramTypes.SortImproperByAlpha( newImproperParams.Wildcard() ); + improperCache.AddParm( paramTypes, ipa, false ); + } + } +# ifdef TIMER + t_dih_imp_.Stop(); +# endif + } else { +# ifdef TIMER + t_dih_dih_.Start(); +# endif + // -----Regular dihedral. See if parameter already present. ---- + DihedralParmArray dpa; + // Check the cache first + DihCacheType::const_iterator cachedDih = dihedralCache.find( types ); + if (cachedDih != dihedralCache.end()) { + dpa = cachedDih->second; + found = true; + } else { + // Not in cache. Search incoming parameters. +# ifdef TIMER + t_dih_dih_getnew_.Start(); +# endif + dpa = newDihedralParams.FindParam( types, found ); +# ifdef TIMER + t_dih_dih_getnew_.Stop(); +# endif + // If found, cache the parameter + if (found) { + dihedralCache.insert( DihCachePair(types, dpa) ); + } + } + if (!found) { + mprintf("Warning: Dihedral parameters not found for dihedral %s-%s-%s-%s (%s-%s-%s-%s)\n", + topOut.TruncResAtomNameNum(dih->A1()).c_str(), + topOut.TruncResAtomNameNum(dih->A2()).c_str(), + topOut.TruncResAtomNameNum(dih->A3()).c_str(), + topOut.TruncResAtomNameNum(dih->A4()).c_str(), + *types[0], *types[1], *types[2], *types[3]); + DihedralType mydih = *dih; + mydih.SetIdx( -1 ); + dihedralsIn.push_back( mydih ); + nmissing++; + } else { + // Actually add parameters for this dihedral. + // Determine if this is actually a 1-4 interaction by making + // sure that A4 isnt part of a bond or angle with A1. + bool skip14 = false; + for (Atom::bond_iterator bat1 = topOut[dih->A1()].bondbegin(); + bat1 != topOut[dih->A1()].bondend(); ++bat1) + { + if (*bat1 != dih->A2()) { + if (*bat1 == dih->A4()) { + skip14 = true; + break; + } + // Loop over angles, dih->A1() - bat1 - bat2 + for (Atom::bond_iterator bat2 = topOut[*bat1].bondbegin(); + bat2 != topOut[*bat1].bondend(); ++bat2) + { + //if (dih->A1() == 442 && dih->A4() == 444) { // DEBUG + // mprintf("DEBUG: %4i %4i %4i %4i Checking angle %4i %4i %4i\n", dih->A1()+1, dih->A2()+1, dih->A3()+1, dih->A4()+1, dih->A1()+1, *bat1 + 1, *bat2 + 1); + //} + if (*bat2 != *bat1) { + if (*bat2 == dih->A4()) { + skip14 = true; + break; + } + } + } // END loop over bat1 bonded atoms + if (skip14) break; + } + } // END loop over dih->A1() bonded atoms + if (!skip14) { + // Determine if 1-4 interaction already calculated by previous dihedral. + // Make the lower end atom first. + Ipair pair14; + if (dih->A1() < dih->A4()) { + pair14.first = dih->A1(); + pair14.second = dih->A4(); + } else { + pair14.first = dih->A4(); + pair14.second = dih->A1(); + } + Imap::const_iterator it = PairMap.find( pair14 ); + if (it == PairMap.end()) { + skip14 = false; + PairMap.insert( pair14 ); + } else { + skip14 = true; + //mprintf("DEBUG: Prior 1-4 calc detected.\n"); + } + } + // Loop over multiplicities + //if (dih->A1() == 442 && dih->A4() == 444) { // DEBUG + // mprintf("DEBUG: Skip14= %i\n", (int)skip14); + //} + for (DihedralParmArray::const_iterator it = dpa.begin(); it != dpa.end(); ++it) { + DihedralType mydih = *dih; + int idx = topOut.addTorsionParm( topOut.ModifyDihedralParm(), *it ); + // If there are multiple parameters for the same dihedral, all but + // one of the 1-4 calcs need to be skipped. + if (it == dpa.begin()) + mydih.SetSkip14(skip14); + else + mydih.SetSkip14(true); + mydih.SetIdx( idx ); + dihedralsIn.push_back( mydih ); +// mprintf("DEBUG: Assigned %4i %4i %4i %4i (%2s %2s %2s %2s) isImproper=%i skip14=%i\n", +// mydih.A1()+1, mydih.A2()+1, mydih.A3()+1, mydih.A4()+1, +// *types[0], *types[1], *types[2], *types[3], +// (int)mydih.IsImproper(), (int)mydih.Skip14()); + } + } +# ifdef TIMER + t_dih_dih_.Stop(); +# endif + } + } // END loop over all dihedrals + return dihedralsIn; +} + +/** \return Array of only unique dihedrals (get rid of multiplicities) */ +DihedralArray AssignParams::get_unique_dihedrals(DihedralArray const& dihedralsIn) const { + // Assume dihedrals with multiple terms are consecutive already + DihedralArray dihedrals; + for (DihedralArray::const_iterator dih = dihedralsIn.begin(); dih != dihedralsIn.end(); ++dih) { + if (dihedrals.empty()) + dihedrals.push_back( *dih ); + else { + if ( *dih != dihedrals.back() ) // TODO skip end dihedrals, impropers? + dihedrals.push_back( *dih ); + } + } + if (debug_ > 0) + mprintf("DEBUG: %zu incoming dihedrals, %zu unique dihedrals.\n", + dihedralsIn.size(), dihedrals.size()); + return dihedrals; +} + +/** Replace any current dihedral parameters with given dihedral parameters. */ +void AssignParams::AssignDihedralParams(Topology& topOut, + DihedralParmHolder const& newDihedralParams, + ImproperParmHolder const& newImproperParams, + ParmHolder<AtomType> const& AT) +#ifndef TIMER +const +#endif +{ + topOut.ModifyDihedralParm().clear(); + // Dihedrals can be a bit of a pain since there can be multiple + // multiplicities for a single dihedral type. In case multiplicities + // change, start with a fresh dihedral array containing only unique + // dihedrals. + int nmissing = 0; + topOut.ModifyDihedrals() = AssignDihedralParm( topOut, newDihedralParams, newImproperParams, + AT, get_unique_dihedrals(topOut.Dihedrals()), false, nmissing ); + topOut.ModifyDihedralsH() = AssignDihedralParm( topOut, newDihedralParams, newImproperParams, + AT, get_unique_dihedrals(topOut.DihedralsH()), false, nmissing ); +} + +/** Replace current nonbond parameters with given nonbond parameters. */ +//TODO Accept array of atom type names? +void AssignParams::AssignNonbondParams(Topology& topOut, + ParmHolder<AtomType> const& newTypes, + ParmHolder<NonbondType> const& newNB, + ParmHolder<NonbondType> const& new14, + ParmHolder<double> const& newLJC, + ParmHolder<HB_ParmType> const& newHB) +const +{ + bool hasLJ14 = !new14.empty(); + bool hasLJC = !newLJC.empty(); + // Generate array of only the types that are currently in Topology. TODO should this be a permanent part of Topology? + //ParmHolder<AtomType> currentAtomTypes; + ParmArray<AtomType> currentAtomTypes; + for (AtArray::const_iterator atm = topOut.begin(); atm != topOut.end(); ++atm) + { + if (atm->HasType()) { + TypeNameHolder types(1); + types.AddName(atm->Type()); + // Find in newTypes. + bool found; + AtomType newAT = newTypes.FindParam( types, found ); + if (!found) { + mprintf("Warning: No atom type information for type '%s'\n", *types[0]); + newAT = AtomType(atm->Mass()); + } + // Check LJ14 types if needed + if (hasLJ14) { + if (!newAT.HasLJ14()) { + mprintf("Warning: No 1-4 atom type information for type '%s'\n", *types[0]); // TODO error out here? + } + } + currentAtomTypes.AddParm( types, newAT, true ); + } + } + if (currentAtomTypes.size() < 1) { + mprintf("Warning: No atom type information in %s - cannot assign nonbond parameters.\n", + topOut.c_str()); + return; + } + // Regenerate nonbond params for existing types + NonbondParmType& nonbond = topOut.SetNonbond(); + nonbond.Clear(); + // Set type indices in order. + for (ParmArray<AtomType>::iterator t1 = currentAtomTypes.begin(); t1 != currentAtomTypes.end(); ++t1) + t1->second.SetTypeIdx( -1 ); + int n_unique_lj_types = 0; + for (ParmArray<AtomType>::iterator t1 = currentAtomTypes.begin(); t1 != currentAtomTypes.end(); ++t1) + { + if (t1->second.OriginalIdx() == -1) { + t1->second.SetTypeIdx( n_unique_lj_types ); + // Look for equivalent nonbond types + for (ParmArray<AtomType>::iterator t2 = t1 + 1; t2 != currentAtomTypes.end(); ++t2) { + // Everything must match + if (!hasLJ14) { + if (t2->second.OriginalIdx() == -1 && t1->second.LJ() == t2->second.LJ()) { + if (debug_ > 0) + mprintf("DEBUG: Type %s equivalent to type %s\n", *(t2->first[0]), *(t1->first[0])); + t2->second.SetTypeIdx( n_unique_lj_types ); + } + } else { + if (t2->second.OriginalIdx() == -1 && + t1->second.LJ() == t2->second.LJ() && + t1->second.LJ14() == t2->second.LJ14()) + { + if (debug_ > 0) + mprintf("DEBUG: Type %s (with 1-4 params) equivalent to type %s\n", *(t2->first[0]), *(t1->first[0])); + t2->second.SetTypeIdx( n_unique_lj_types ); + } + } + } + n_unique_lj_types++; + } + } + if (debug_ > 0) + mprintf("DEBUG: Setting up nonbond array for %i unique LJ types.\n", n_unique_lj_types); + nonbond.SetupLJforNtypes( n_unique_lj_types ); + if (hasLJ14) + nonbond.SetNLJ14terms( nonbond.NBarray().size() ); + if (hasLJC) + nonbond.SetNLJCterms( nonbond.NBarray().size() ); + // Loop over all atom type pairs + for (ParmArray<AtomType>::const_iterator t1 = currentAtomTypes.begin(); t1 != currentAtomTypes.end(); ++t1) + { + NameType const& name1 = t1->first[0]; + //mprintf("DEBUG: Type1= %s (%i)\n", *name1, nidx1); + AtomType const& type1 = t1->second; + for (ParmArray<AtomType>::const_iterator t2 = t1; t2 != currentAtomTypes.end(); ++t2) + { + NameType const& name2 = t2->first[0]; + //mprintf("DEBUG:\t\tType2= %s (%i)\n", *name2, nidx2); + AtomType const& type2 = t2->second; + TypeNameHolder types(2); + types.AddName( name1 ); + types.AddName( name2 ); + int newnbidx; + // Check for LJ10-12 first + ParmHolder<HB_ParmType>::const_iterator hb = newHB.GetParam( types ); + if (hb != newHB.end()) { + if (verbose_ > 0) mprintf("LJ 10-12 parameter found for %s %s\n", *name1, *name2); + nonbond.AddHBterm(t1->second.OriginalIdx(), t2->second.OriginalIdx(), hb->second); + // Also add a blank 6-12 term since that seems to be the convention + newnbidx = nonbond.AddLJterm( t1->second.OriginalIdx(), t2->second.OriginalIdx(), NonbondType() ); + } else { + // See if this parameter exists in the given nonbond array. + NonbondType LJAB; + ParmHolder<NonbondType>::const_iterator it = newNB.GetParam( types ); + if (it == newNB.end()) { + if (verbose_ > 0) mprintf("NB parameter for %s %s not found. Generating.\n", *name1, *name2); + LJAB = type1.LJ().Combine_LB( type2.LJ() ); + } else { + if (verbose_ > 0) mprintf("Using existing NB parameter for %s %s\n", *name1, *name2); + LJAB = it->second; + } + newnbidx = nonbond.AddLJterm(t1->second.OriginalIdx(), t2->second.OriginalIdx(), LJAB); + } + // LJ 1-4 + if (hasLJ14) { + // Get parameter if it exists + ParmHolder<NonbondType>::const_iterator it = new14.GetParam( types ); + if (it == new14.end()) { + if (verbose_ > 0) mprintf("NB 1-4 parameter for %s %s not found. Generating.\n", *name1, *name2); + nonbond.SetLJ14( newnbidx ) = type1.LJ14().Combine_LB( type2.LJ14() ); + } else { + if (verbose_ > 0) mprintf("Using existing NB 1-4 parameter for %s %s\n", *name1, *name2); + nonbond.SetLJ14( newnbidx ) = it->second; + } + } // END hasLJ14 + // LJC + if (hasLJC) { + // Get parameter if it exists + ParmHolder<double>::const_iterator it = newLJC.GetParam( types ); + if (it == newLJC.end()) { + mprintf("LJC parameter for %s %s not found. Setting to 0.\n", *name1, *name2); // FIXME generate + nonbond.SetLJC( newnbidx, 0 ); + } else { + mprintf("Using existing LJC parameter for %s %s\n", *name1, *name2); + nonbond.SetLJC( newnbidx, it->second ); + } + } // END hasLJC + } // END inner loop over current types + } // END outer loop over current types + // Reset the atom type indices. + for (AtArray::iterator atm = topOut.ModifyAtoms().begin(); atm != topOut.ModifyAtoms().end(); ++atm) + { + int tidx = -1; + ParmArray<AtomType>::const_iterator it = currentAtomTypes.GetParam( TypeNameHolder(atm->Type()) ); + if (it == currentAtomTypes.end()) { + mprintf("Warning: Atom type not found for %s (type %s)\n", + topOut.TruncResAtomNameNum( atm - topOut.ModifyAtoms().begin() ).c_str(), + *(atm->Type())); + } else { + if (it->second.OriginalIdx() < 0 || it->second.OriginalIdx() >= (int)currentAtomTypes.size()) { + mprinterr("Internal Error: Type index for %s (type %s) out of range: %i\n", + topOut.TruncResAtomNameNum( atm - topOut.ModifyAtoms().begin() ).c_str(), + *(atm->Type()), it->second.OriginalIdx()); + } else + tidx = it->second.OriginalIdx(); + } + atm->SetTypeIndex( tidx ); + } +} + +/// \return index of 5th cmap atom if atom names match those in dihedral, -1 otherwise +int AssignParams::cmap_anames_match(DihedralType const& dih, + AtArray const& atoms, + std::vector<std::string> const& cmapAtomNames) +{ +/* mprintf("DEBUG: Check res %i %s %s %s %s against %s %s %s %s\n", + atoms[dih.A2()].ResNum()+1, + atoms[dih.A1()].Name().Truncated().c_str(), + atoms[dih.A2()].Name().Truncated().c_str(), + atoms[dih.A3()].Name().Truncated().c_str(), + atoms[dih.A4()].Name().Truncated().c_str(), + cmap.AtomNames()[0].c_str(), + cmap.AtomNames()[1].c_str(), + cmap.AtomNames()[2].c_str(), + cmap.AtomNames()[3].c_str());*/ + // TODO without Truncated + if (atoms[dih.A1()].Name().Truncated() == cmapAtomNames[0] && + atoms[dih.A2()].Name().Truncated() == cmapAtomNames[1] && + atoms[dih.A3()].Name().Truncated() == cmapAtomNames[2] && + atoms[dih.A4()].Name().Truncated() == cmapAtomNames[3]) + { + /*mprintf("DEBUG: Partial match %s %s %s %s = %s %s %s %s\n", + atoms[dih.A1()].Name().Truncated().c_str(), + atoms[dih.A2()].Name().Truncated().c_str(), + atoms[dih.A3()].Name().Truncated().c_str(), + atoms[dih.A4()].Name().Truncated().c_str(), + cmap.AtomNames()[0].c_str(), + cmap.AtomNames()[1].c_str(), + cmap.AtomNames()[2].c_str(), + cmap.AtomNames()[3].c_str());*/ + for (Atom::bond_iterator bat = atoms[dih.A4()].bondbegin(); + bat != atoms[dih.A4()].bondend(); ++bat) + { + if (*bat != dih.A3()) { // TODO can A4 ever be bonded to A1?? + if (atoms[*bat].Name().Truncated() == cmapAtomNames[4]) { + return *bat; + } + } + } + } + return -1; +} + +/// \return true if given name matches a residue name +static inline bool MatchesResName(std::vector<std::string> const& resNames, std::string const& nameIn) { + for (std::vector<std::string>::const_iterator it = resNames.begin(); it != resNames.end(); ++it) + if (nameIn == *it) return true; + return false; +} + +/// Remap cmap indices +int AssignParams::remap_cmap_indices(Topology const& topOut, + std::vector<int>& originalCmapIndices, + CmapGridArray& cmapGrids, + CmapArray& cmapTerms, + CmapParmHolder const& cmapIn) +const +{ + if (debug_ > 0) { + mprintf("DEBUG: Cmap parameter indices:\n"); + for (unsigned int idx = 0; idx < originalCmapIndices.size(); idx++) + mprintf("DEBUG:\t\tCurrent idx=%i Actual idx=%u\n", originalCmapIndices[idx], idx); + } + if (originalCmapIndices.empty()) { + if (debug_ > 0) + mprintf("DEBUG: No CMAP indices in %s\n", topOut.c_str()); + return 0; + } + std::sort(originalCmapIndices.begin(), originalCmapIndices.end()); + std::vector<int> currentToNew(cmapIn.size(), -1); + // Add the grid terms in original parameter file order + // and create map from assigned index to new index. + cmapGrids.reserve( originalCmapIndices.size() ); + for (unsigned int idx = 0; idx < originalCmapIndices.size(); idx++) { + if (debug_ > 0) + mprintf("DEBUG: Will change cmap parameter index %i to %u\n", + originalCmapIndices[idx]+1, idx+1); + currentToNew[ originalCmapIndices[idx] ] = idx; + cmapGrids.push_back( cmapIn[ originalCmapIndices[idx] ] ); + } + if (debug_ > 0) { + mprintf("DEBUG: Assigned CMAP parameters:\n"); + for (CmapGridArray::const_iterator it = cmapGrids.begin(); it != cmapGrids.end(); ++it) + mprintf("DEBUG:\t\t%li : %s\n", it-cmapGrids.begin(), it->Title().c_str()); + } + // Renumber the parameter indices + for (CmapArray::iterator it = cmapTerms.begin(); it != cmapTerms.end(); ++it) { + int newIdx = currentToNew[ it->Idx() ]; + if (newIdx < 0) { + mprinterr("Internal Error: CMAP term index is not mapped.\n"); + return 1; + } + it->SetIdx( newIdx ); + } + return 0; +} + +/** Assign CMAP parameters to existing CMAP terms. */ +int AssignParams::AssignCmapParams(Topology const& topOut, CmapArray& cmapTerms, CmapParmHolder const& cmapIn, + CmapGridArray& cmapGrids) +const +{ + // Keep track of residue names each cmap applies to + typedef std::vector<std::string> Sarray; + std::vector<Sarray> CmapResNames; + std::vector<Sarray> CmapAtomNames; + // The LEaP convention is to number the CMAP parameters in the same + // order as they are listed in the original parameter file. This + // variable keeps track of those indices. + std::vector<int> originalCmapIndices; + for (CmapArray::iterator cm = cmapTerms.begin(); cm != cmapTerms.end(); ++cm) + { + // Get residue name for A2 + Atom const& A2 = topOut[cm->A2()]; + // TODO make sure A2-A4 in same residue? + NameType const& rn2 = topOut.Res( A2.ResNum() ).Name(); + // Is this residue already in cmapGrids? + int cidx = -1; + for (unsigned int idx = 0; idx != CmapResNames.size(); idx++) { + if ( MatchesResName(CmapResNames[idx], rn2.Truncated()) ) { + if (topOut[cm->A1()].Name() == CmapAtomNames[idx][0] && + topOut[cm->A2()].Name() == CmapAtomNames[idx][1] && + topOut[cm->A3()].Name() == CmapAtomNames[idx][2] && + topOut[cm->A4()].Name() == CmapAtomNames[idx][3] && + topOut[cm->A5()].Name() == CmapAtomNames[idx][4]) + { + cidx = originalCmapIndices[idx]; + break; + } + } + } + if (cidx > -1) { + if (debug_ > 1) { + mprintf("DEBUG: Potential existing cmap %i found for %s (%li)\n", cidx, topOut.TruncResNameNum(A2.ResNum()).c_str(), cm-cmapTerms.begin()); + mprintf("DEBUG:\t\t%i - %i - %i - %i - %i %i\n", cm->A1()+1, cm->A2()+1, cm->A3()+1, cm->A4()+1, cm->A5()+1, cidx+1); + } + cm->SetIdx( cidx ); + } + // If not already in cmapGrids, check cmapIn + if (cidx == -1) { + for (unsigned int idx = 0; idx != cmapIn.size(); idx++) { + if ( MatchesResName( cmapIn[idx].ResNames(), rn2.Truncated() ) ) { + if (topOut[cm->A1()].Name() == cmapIn[idx].AtomNames()[0] && + topOut[cm->A2()].Name() == cmapIn[idx].AtomNames()[1] && + topOut[cm->A3()].Name() == cmapIn[idx].AtomNames()[2] && + topOut[cm->A4()].Name() == cmapIn[idx].AtomNames()[3] && + topOut[cm->A5()].Name() == cmapIn[idx].AtomNames()[4]) + { + cidx = (int)idx; + CmapResNames.push_back( cmapIn[idx].ResNames() ); + CmapAtomNames.push_back( cmapIn[idx].AtomNames() ); + originalCmapIndices.push_back( idx ); + break; + } + } + } + if (cidx > -1) { + if (debug_ > 1) { + mprintf("DEBUG: Potential new cmap %i found for %s (%li)\n", cidx, topOut.TruncResNameNum(A2.ResNum()).c_str(), cm-cmapTerms.begin()); + mprintf("DEBUG:\t\t%i - %i - %i - %i - %i %i\n", cm->A1()+1, cm->A2()+1, cm->A3()+1, cm->A4()+1, cm->A5()+1, cidx+1); + //mprintf("DEBUG:\t\t%s - %s - %s - %s - %s\n", + // AtomMaskName(dih->A1()).c_str(), + // AtomMaskName(dih->A2()).c_str(), + // AtomMaskName(dih->A3()).c_str(), + // AtomMaskName(dih->A4()).c_str(), + // AtomMaskName(a5).c_str()); + } + cm->SetIdx( cidx ); + } + } + } // END loop over cmap terms + + return remap_cmap_indices(topOut, originalCmapIndices, cmapGrids, cmapTerms, cmapIn); +} + +/// Calculate the residue offsets for atoms +static inline void calc_res_offsets(int* resoffsets, Topology const& topOut, int rnum2, DihedralType const& dih, int a5) +{ + resoffsets[0] = topOut[dih.A1()].ResNum() - rnum2; + resoffsets[1] = topOut[dih.A2()].ResNum() - rnum2; + resoffsets[2] = topOut[dih.A3()].ResNum() - rnum2; + resoffsets[3] = topOut[dih.A4()].ResNum() - rnum2; + resoffsets[4] = topOut[a5 ].ResNum() - rnum2; +// mprintf("DEBUG: Cmap res offsets: %i %i %i %i %i\n", +// resoffsets[0], +// resoffsets[1], +// resoffsets[2], +// resoffsets[3], +// resoffsets[4]); +} + +/// \return true if residue offsets match +static inline bool res_offsets_match(const int* resoffsets, std::vector<int> const& cmapResOffsets) +{ + for (int i = 0; i < 5; i++) { + if (resoffsets[i] != cmapResOffsets[i]) return false; + } + return true; +} + +/** Assign CMAP parameters. Also generates CMAP terms from dihedrals. */ +int AssignParams::AssignCmapParams(Topology const& topOut, DihedralArray const& allDih, CmapParmHolder const& cmapIn, + CmapGridArray& cmapGrids, CmapArray& cmapTerms) +const +{ + // TODO check for duplicates, look for reverse match? + // Keep track of residue names each cmap applies to + //typedef std::vector<NameType> Narray; + typedef std::vector<std::string> Sarray; + std::vector<Sarray> CmapResNames; + std::vector<Sarray> CmapAtomNames; + typedef std::vector<int> Iarray; + std::vector<Iarray> CmapResOffsets; + // The LEaP convention is to number the CMAP parameters in the same + // order as they are listed in the original parameter file. This + // variable keeps track of those indices. + std::vector<int> originalCmapIndices; + // TODO combine with AssignDihedrals? + for (DihedralArray::const_iterator dih = allDih.begin(); dih != allDih.end(); ++dih) + { + // Ignore end (repeated) or improper dihedrals + if (dih->IsImproper() || dih->Skip14()) continue; + // Get residue name for A2 + Atom const& A2 = topOut[dih->A2()]; + int rnum2 = A2.ResNum(); + // TODO make sure A2-A4 in same residue? + NameType const& rn2 = topOut.Res( A2.ResNum() ).Name(); + // Is this residue already in cmapGrids? + int cidx = -1; + int a5 = -1; + //for (unsigned int idx = 0; idx != cmapGrids.size(); idx++) { + // if (cmapGrids[idx].MatchesResName( rn2.Truncated() )) { + for (unsigned int idx = 0; idx != CmapResNames.size(); idx++) { + if ( MatchesResName(CmapResNames[idx], rn2.Truncated()) ) { + //a5 = cmap_anames_match(*dih, atoms_, cmapGrids[idx]); + a5 = cmap_anames_match(*dih, topOut.Atoms(), CmapAtomNames[idx]); + if (a5 > -1) { + // Calc offsets + int resoffsets[5]; + calc_res_offsets(resoffsets, topOut, rnum2, *dih, a5); + if (res_offsets_match(resoffsets, CmapResOffsets[idx])) { + //cidx = (int)idx; + cidx = originalCmapIndices[idx]; + break; + } + } + } + } + if (cidx > -1) { + if (debug_ > 1) { + mprintf("DEBUG: Potential existing cmap %i found for %s (%li)\n", cidx, topOut.TruncResNameNum(A2.ResNum()).c_str(), dih-allDih.begin()); + mprintf("DEBUG:\t\t%i - %i - %i - %i - %i %i\n", dih->A1()+1, dih->A2()+1, dih->A3()+1, dih->A4()+1, a5+1, cidx+1); +// mprintf("DEBUG:\t\t%s - %s - %s - %s - %s\n", +// AtomMaskName(dih->A1()).c_str(), +// AtomMaskName(dih->A2()).c_str(), +// AtomMaskName(dih->A3()).c_str(), +// AtomMaskName(dih->A4()).c_str(), +// AtomMaskName(a5).c_str()); + } + cmapTerms.push_back( CmapType(dih->A1(), dih->A2(), dih->A3(), dih->A4(), a5, cidx) ); + } + // If not already in cmapGrids, check cmapIn + if (cidx == -1) { + //int nidx = -1; + for (unsigned int idx = 0; idx != cmapIn.size(); idx++) { + //if (cmapIn[idx].MatchesResName( rn2.Truncated() )) { + if ( MatchesResName( cmapIn[idx].ResNames(), rn2.Truncated() ) ) { + //a5 = cmap_anames_match(*dih, atoms_, cmapIn[idx]); + a5 = cmap_anames_match(*dih, topOut.Atoms(), cmapIn[idx].AtomNames()); + if (a5 > -1) { + // Calc offsets + int resoffsets[5]; + calc_res_offsets(resoffsets, topOut, rnum2, *dih, a5); + if (res_offsets_match(resoffsets, cmapIn[idx].ResOffsets())) { + //cidx = (int)cmapGrids.size(); + cidx = (int)idx; + //cmapGrids.push_back( cmapIn[idx] ); + CmapResNames.push_back( cmapIn[idx].ResNames() ); + CmapAtomNames.push_back( cmapIn[idx].AtomNames() ); + CmapResOffsets.push_back( cmapIn[idx].ResOffsets() ); + originalCmapIndices.push_back( idx ); + //nidx = (int)idx; + break; + } + } + } + } + if (cidx > -1) { + if (debug_ > 1) { + mprintf("DEBUG: Potential new cmap %i found for %s (%li)\n", cidx, topOut.TruncResNameNum(A2.ResNum()).c_str(), dih-allDih.begin()); + mprintf("DEBUG:\t\t%i - %i - %i - %i - %i %i\n", dih->A1()+1, dih->A2()+1, dih->A3()+1, dih->A4()+1, a5+1, cidx+1); + //mprintf("DEBUG:\t\t%s - %s - %s - %s - %s\n", + // AtomMaskName(dih->A1()).c_str(), + // AtomMaskName(dih->A2()).c_str(), + // AtomMaskName(dih->A3()).c_str(), + // AtomMaskName(dih->A4()).c_str(), + // AtomMaskName(a5).c_str()); + } + cmapTerms.push_back( CmapType(dih->A1(), dih->A2(), dih->A3(), dih->A4(), a5, cidx) ); + } + } + } // END loop over dihedrals + return remap_cmap_indices(topOut, originalCmapIndices, cmapGrids, cmapTerms, cmapIn); +} + +/** Add to bond arrays but do not update atom connectivity. Used + * when regenerating bond information from atom connectivity. + */ +void AssignParams::AddToBondArrays(Topology& topOut, BondType const& bnd) { + // TODO enforce H as second atom? + if (topOut[bnd.A1()].Element() == Atom::HYDROGEN || + topOut[bnd.A2()].Element() == Atom::HYDROGEN) + topOut.ModifyBondsH().push_back( bnd ); + else + topOut.ModifyBonds().push_back( bnd ); +} + +/** Add to angle arrays. Used when regenerating angle information + * from atom connectivity. + */ +void AssignParams::AddToAngleArrays(Topology& topOut, AngleType const& ang) { + if (topOut[ang.A1()].Element() == Atom::HYDROGEN || + topOut[ang.A2()].Element() == Atom::HYDROGEN || + topOut[ang.A3()].Element() == Atom::HYDROGEN) + topOut.ModifyAnglesH().push_back( ang ); + else + topOut.ModifyAngles().push_back( ang ); +} + +/** Add to dihedral arrays. Used when regenerating dihedral information + * from atom connectivity. + */ +void AssignParams::AddToDihedralArrays(Topology& topOut, DihedralType const& dih) { + if (topOut[dih.A1()].Element() == Atom::HYDROGEN || + topOut[dih.A4()].Element() == Atom::HYDROGEN || + topOut[dih.A2()].Element() == Atom::HYDROGEN || + topOut[dih.A3()].Element() == Atom::HYDROGEN) + topOut.ModifyDihedralsH().push_back( dih ); + else + topOut.ModifyDihedrals().push_back( dih ); +} + +/** Replace existing parameters with the given parameter set. */ +#ifdef TIMER +int AssignParams::AssignParameters(Topology& topOut, ParameterSet const& set0, int& nmissing) +#else +int AssignParams::AssignParameters(Topology& topOut, ParameterSet const& set0, int& nmissing) const +#endif +{ +# ifdef TIMER + t_total_.Start(); +#endif + nmissing = 0; +# ifdef TIMER + t_bonds_.Start(); +# endif + // Bond parameters + mprintf("\tAssigning bond parameters.\n"); + topOut.ModifyBondParm().clear(); + // Regenerate bond array in LEaP order + topOut.ModifyBonds().clear(); + topOut.ModifyBondsH().clear(); + BondArray allBonds = Cpptraj::Structure::GenerateBondArray(topOut.Residues(), topOut.Atoms()); + nmissing += AssignBondParm( topOut, set0.BP(), allBonds, topOut.ModifyBondParm(), "bond" ); + for (BondArray::const_iterator bnd = allBonds.begin(); bnd != allBonds.end(); ++bnd) + AddToBondArrays( topOut, *bnd ); +# ifdef TIMER + t_bonds_.Stop(); + t_angles_.Start(); +# endif + // Angle parameters + mprintf("\tAssigning angle parameters.\n"); + topOut.ModifyAngleParm().clear(); + // Regenerate angle array in LEaP order + topOut.ModifyAngles().clear(); + topOut.ModifyAnglesH().clear(); + AngleArray allAngles = Cpptraj::Structure::GenerateAngleArray(topOut.Residues(), topOut.Atoms()); + allAngles = AssignAngleParm( topOut, set0.AP(), allAngles, topOut.ModifyAngleParm(), nmissing ); + for (AngleArray::const_iterator ang = allAngles.begin(); ang != allAngles.end(); ++ang) + AddToAngleArrays( topOut, *ang ); +# ifdef TIMER + t_angles_.Stop(); + t_dihedrals_.Start(); +# endif + // Dihedral parameters + mprintf("\tAssigning dihedral parameters.\n"); + topOut.ModifyDihedralParm().clear(); + // Regenerate dihedral array in LEaP order + topOut.ModifyDihedrals().clear(); + topOut.ModifyDihedralsH().clear(); + DihedralArray allDihedrals = Cpptraj::Structure::GenerateDihedralArray(topOut.Residues(), topOut.Atoms()); +# ifdef TIMER + t_dihedrals_.Stop(); +# endif + // If we need CMAP terms, do it here before the dihedrals array is modified + if (!set0.CMAP().empty()) { +# ifdef TIMER + t_cmaps_.Start(); +# endif + topOut.ModifyCmap().clear(); + topOut.ModifyCmapGrid().clear(); + mprintf("\tAssigning CMAP parameters.\n"); + AssignCmapParams( topOut, allDihedrals, set0.CMAP(), topOut.ModifyCmapGrid(), topOut.ModifyCmap() ); +# ifdef TIMER + t_cmaps_.Stop(); +# endif + } + // Now modify the dihedrals for any multiplicities +# ifdef TIMER + t_multi_.Start(); +# endif + allDihedrals = AssignDihedralParm( topOut, set0.DP(), set0.IP(), set0.AT(), allDihedrals, false, nmissing ); + for (DihedralArray::const_iterator dih = allDihedrals.begin(); dih != allDihedrals.end(); ++dih) + AddToDihedralArrays( topOut, *dih ); +# ifdef TIMER + t_multi_.Stop(); + t_UB_.Start(); +# endif + // Urey-Bradley + mprintf("\tAssigning Urey-Bradley parameters.\n"); + AssignUBParams( topOut, set0.UB() ); +# ifdef TIMER + t_UB_.Stop(); + t_improper_.Start(); +# endif + if (!topOut.Impropers().empty()) { + // Charmm Improper parameters + mprintf("\tAssigning CHARMM improper parameters.\n"); + AssignImproperParams( topOut, set0.IP() ); + } else { + // Amber improper parameters + mprintf("\tAssigning improper parameters.\n"); + DihedralArray allImpropers = Cpptraj::Structure::GenerateImproperArray(topOut.Residues(), topOut.Atoms()); + allImpropers = AssignDihedralParm( topOut, set0.DP(), set0.IP(), set0.AT(), allImpropers, true, nmissing ); + for (DihedralArray::const_iterator imp = allImpropers.begin(); imp != allImpropers.end(); ++imp) + AddToDihedralArrays( topOut, *imp ); + } +# ifdef TIMER + t_improper_.Stop(); + t_atype_.Start(); +# endif + // Atom types + mprintf("\tAssigning atom type parameters.\n"); + nmissing += AssignAtomTypeParm( topOut.ModifyAtoms(), set0.AT() ); +# ifdef TIMER + t_atype_.Stop(); + t_nonbond_.Start(); +# endif + // LJ 6-12 + mprintf("\tAssigning nonbond parameters.\n"); + AssignNonbondParams( topOut, set0.AT(), set0.NB(), set0.NB14(), set0.LJC(), set0.HB() ); + //mprintf("DEBUG: CMAP size %zu\n", set0.CMAP().size()); +# ifdef TIMER + t_nonbond_.Stop(); + t_total_.Stop(); +# endif + return 0; +} + +/** Write timing to stdout. Only works if TIMER is defined. */ +void AssignParams::WriteAssignTiming(int indent, double totalIn) const { +#ifdef TIMER + t_total_.WriteTiming(indent, "Param Assign Total", totalIn); + t_bonds_.WriteTiming(indent+1, "Bonds ", t_total_.Total()); + t_angles_.WriteTiming(indent+1, "Angles ", t_total_.Total()); + t_dihedrals_.WriteTiming(indent+1, "Dihedrals ", t_total_.Total()); + t_multi_.WriteTiming(indent+1, "Dihedral Multiplicities", t_total_.Total()); + t_improper_.WriteTiming(indent+1, "Impropers ", t_total_.Total()); + double t_dih_total = t_multi_.Total() + t_improper_.Total(); + t_dih_imp_.WriteTiming(indent+2, "Dih. Assign Improper", t_dih_total); + t_dih_dih_.WriteTiming(indent+2, "Dih. Assign Dihedral", t_dih_total); + t_dih_dih_getnew_.WriteTiming(indent+3, "Get Dihedral Param", t_dih_dih_.Total()); + t_cmaps_.WriteTiming(indent+1, "CMAPs ", t_total_.Total()); + t_UB_.WriteTiming(indent+1, "Urey-Bradleys ", t_total_.Total()); + t_atype_.WriteTiming(indent+1, "Atom Types ", t_total_.Total()); + t_nonbond_.WriteTiming(indent+1, "Nonbonds ", t_total_.Total()); +#endif +} + +/** Update/add to parameters in this topology with those from given set. + */ +int AssignParams::UpdateParameters(Topology& topOut, ParameterSet const& set1) +#ifndef TIMER +const +#endif +{ + GetParams GP; + ParameterSet set0 = GP.GetParameters( topOut ); + + //set1.Summary(); // DEBUG + // Check TODO is this necessary? + if (set0.AT().size() < 1) + mprintf("Warning: No atom type information in '%s'\n", topOut.c_str()); + if (debug_ > 0) { + mprintf("DEBUG: Saving original parameters in originalp.dat, new parameters in newp.dat\n"); + set0.Debug("originalp.dat"); + } + // Update existing parameters with new parameters + ParameterSet::UpdateCount UC; + if (set0.UpdateParamSet( set1, UC, debug_, verbose_ )) { + mprinterr("Error: Could not merge topology '%s' parameters with '%s' parameters.\n", + topOut.c_str(), set1.ParamSetName().c_str()); + return 1; + } + if (debug_ > 0) { + mprintf("DEBUG: Updated parameter counts.\n"); + set0.Summary(); + //set0.Debug(); + } + +// unsigned int updateCount; + // Bond parameters +// updateCount = UpdateParameters< ParmHolder<BondParmType> >(set0.BP(), set1.BP(), "bond"); + if (UC.nBondsUpdated_ > 0) { + mprintf("\tRegenerating bond parameters.\n"); + AssignBondParams( topOut, set0.BP() ); + } + // Angle parameters +// updateCount = UpdateParameters< ParmHolder<AngleParmType> >(set0.AP(), set1.AP(), "angle"); + if (UC.nAnglesUpdated_ > 0) { + mprintf("\tRegenerating angle parameters.\n"); + AssignAngleParams( topOut, set0.AP() ); + } + // Dihedral parameters +// updateCount = UpdateParameters< DihedralParmHolder >(set0.DP(), set1.DP(), "dihedral"); + if (UC.nDihedralsUpdated_ > 0) { + mprintf("\tRegenerating dihedral parameters.\n"); + AssignDihedralParams( topOut, set0.DP(), set0.IP(), set0.AT() ); + } + // Urey-Bradley +// updateCount = UpdateParameters< ParmHolder<BondParmType> >(set0.UB(), set1.UB(), "Urey-Bradley"); + if (UC.nUreyBradleyUpdated_ > 0) { + mprintf("\tRegenerating UB parameters.\n"); + AssignUBParams( topOut, set0.UB() ); + } + // Improper parameters +// updateCount = UpdateParameters< ParmHolder<DihedralParmType> >(set0.IP(), set1.IP(), "improper"); + if (UC.nImpropersUpdated_ > 0) { + mprintf("\tRegenerating improper parameters.\n"); + AssignImproperParams( topOut, set0.IP() ); + } + // Atom types +// updateCount = UpdateParameters< ParmHolder<AtomType> >(set0.AT(), set1.AT(), "atom type"); + if (UC.nAtomTypeUpdated_ > 0) { + mprintf("\tRegenerating atom type parameters.\n"); + AssignAtomTypeParm( topOut.ModifyAtoms(), set0.AT() ); + } +// updateCount += UpdateParameters< ParmHolder<NonbondType> >(set0.NB(), set1.NB(), "LJ A-B"); + if (UC.nAtomTypeUpdated_ > 0 || UC.nLJCUpdated_ > 0 || + UC.nLJparamsUpdated_ > 0 || UC.nLJ14paramsUpdated_ > 0) + { + mprintf("\tRegenerating nonbond parameters.\n"); + AssignNonbondParams( topOut, set0.AT(), set0.NB(), set0.NB14(), set0.LJC(), set0.HB() ); + } + // CMAP + if (UC.nCmapUpdated_ > 0) { + topOut.ModifyCmapGrid().clear(); + mprintf("\tRegenerating CMAP parameters.\n"); + AssignCmapParams(topOut, topOut.ModifyCmap(), set0.CMAP(), topOut.ModifyCmapGrid()); + } + // TODO LJ14 + + if (debug_ > 0) set0.Debug("newp.dat"); + return 0; +} diff --git a/src/Parm/AssignParams.h b/src/Parm/AssignParams.h new file mode 100644 index 0000000000..3c2ef6718a --- /dev/null +++ b/src/Parm/AssignParams.h @@ -0,0 +1,130 @@ +#ifndef INC_PARM_ASSIGNPARAMS_H +#define INC_PARM_ASSIGNPARAMS_H +#include <vector> +#include <string> +#ifdef TIMER +# include "../Timer.h" +#endif +class AngleArray; +class AngleParmArray; +class AngleParmType; +class AngleType; +class Atom; +class AtomType; +class BondArray; +class BondParmArray; +class BondParmType; +class BondType; +class CmapArray; +class CmapGridArray; +class CmapParmHolder; +class DihedralArray; +class DihedralParmArray; +class DihedralType; +class HB_ParmType; +class NonbondType; +class Topology; +namespace Cpptraj { +namespace Parm { +// Parm forward declares +template<typename Type> class ParmHolder; +class DihedralParmHolder; +class ImproperParmHolder; +class ParameterSet; +/// Used to assign parameters to a Topology +class AssignParams { + public: + AssignParams(); + /// Set Debug level + void SetDebug(int); + /// Set verbosity + void SetVerbose(int); + /// Allow flexible water + void SetFlexibleWater(bool); + /// Replace existing parameters with those from given set +# ifdef TIMER + int AssignParameters(Topology&, ParameterSet const&, int&); +# else + int AssignParameters(Topology&, ParameterSet const&, int&) const; +# endif + /// Update existing parameters with given parameter set + int UpdateParameters(Topology&, ParameterSet const&) +# ifdef TIMER + ; +# else + const; +# endif + // Assign nonbond parameters to topology. Used during Topology::AppendTop() + void AssignNonbondParams(Topology&, + ParmHolder<AtomType> const&, + ParmHolder<NonbondType> const&, ParmHolder<NonbondType> const&, + ParmHolder<double> const&, ParmHolder<HB_ParmType> const&) const; + void WriteAssignTiming(int, double) const; + private: + typedef std::vector<Atom> AtArray; + + int AssignAtomTypeParm(AtArray&, ParmHolder<AtomType> const&) const; + int AssignBondParm(Topology const&, ParmHolder<BondParmType> const&, + BondArray&, BondParmArray&, const char*) const; + void AssignBondParams(Topology&, ParmHolder<BondParmType> const&) const; + void AssignUBParams(Topology&, ParmHolder<BondParmType> const&) const; + + AngleArray AssignAngleParm(Topology const&, ParmHolder<AngleParmType> const&, + AngleArray const&, AngleParmArray&, int&) const; + void AssignAngleParams(Topology&, ParmHolder<AngleParmType> const&) const; + + void warn_improper_reorder(AtArray const&, DihedralType const&, DihedralType const&) const; + void AssignImproperParm(Topology&, ImproperParmHolder const&, + DihedralArray&, DihedralParmArray&) const ; + void AssignImproperParams(Topology&, ImproperParmHolder const&) const; + + DihedralArray AssignDihedralParm(Topology&, + DihedralParmHolder const&, ImproperParmHolder const&, + ParmHolder<AtomType> const&, DihedralArray const&, + bool, int&) // TODO make the bool a class var? +# ifdef TIMER + ; +# else + const; +# endif + DihedralArray get_unique_dihedrals(DihedralArray const&) const; + void AssignDihedralParams(Topology&, DihedralParmHolder const&, ImproperParmHolder const&, + ParmHolder<AtomType> const&) +# ifdef TIMER + ; +# else + const; +# endif + + static inline int cmap_anames_match(DihedralType const&, AtArray const&, std::vector<std::string> const&); + int remap_cmap_indices(Topology const&, std::vector<int>&, CmapGridArray&, CmapArray&, CmapParmHolder const&) const; + int AssignCmapParams(Topology const&, CmapArray&, CmapParmHolder const&, CmapGridArray&) const; + int AssignCmapParams(Topology const&, DihedralArray const&, CmapParmHolder const&, + CmapGridArray&, CmapArray&) const; + static void AddToBondArrays(Topology&, BondType const&); + static void AddToAngleArrays(Topology&, AngleType const&); + static void AddToDihedralArrays(Topology&, DihedralType const&); + + int debug_; + int verbose_; + bool deleteExtraPointAngles_; ///< If true, remove angles/torsions containing extra points. + bool flexibleWater_; ///< If true, allow H-O-H angle for water +# ifdef TIMER + Timer t_total_; + Timer t_bonds_; + Timer t_angles_; + Timer t_dihedrals_; + Timer t_cmaps_; + Timer t_multi_; + Timer t_dih_imp_; + Timer t_dih_dih_; + Timer t_dih_dih_getnew_; + Timer t_UB_; + Timer t_improper_; + Timer t_atype_; + Timer t_nonbond_; +# endif +}; +} +} +#endif diff --git a/src/Parm/Bond_Params.cpp b/src/Parm/Bond_Params.cpp new file mode 100644 index 0000000000..af67e03395 --- /dev/null +++ b/src/Parm/Bond_Params.cpp @@ -0,0 +1,42 @@ +#include "Bond_Params.h" +#include "../CpptrajStdio.h" +#include "../ParameterTypes.h" +#include "../Topology.h" +#include <algorithm> // find + +/** Create parameters for given bond based on element types. */ +void Cpptraj::Parm::GenerateBondParam(BondParmArray& bondparm, BondType& bnd, BP_mapType& bpMap, std::vector<Atom> const& atoms) +{ + unsigned int bp_idx; + Atom::AtomicElementType a1Elt = atoms[bnd.A1()].Element(); + Atom::AtomicElementType a2Elt = atoms[bnd.A2()].Element(); + std::set<Atom::AtomicElementType> Eset; + Eset.insert( a1Elt ); + Eset.insert( a2Elt ); + // Has this bond parameter been defined? + BP_mapType::iterator bp = std::find(bpMap.begin(), bpMap.end(), Eset); + if (bp == bpMap.end()) { // Bond parameter Not defined + bp_idx = bondparm.size(); + bpMap.push_back( Eset ); + bondparm.push_back( BondParmType(0.0, Atom::GetBondLength(a1Elt, a2Elt)) ); + } else + bp_idx = bp - bpMap.begin(); + //mprintf("DEBUG:\t\t%i:[%s] -- %i:[%s] Cut=%f BPidx=%u\n", + // bnd.A1()+1, atoms_[bnd.A1()].c_str(), bnd.A2()+1, atoms_[bnd.A2()].c_str(), + // bondparm_[bp_idx].Req(), bp_idx); + bnd.SetIdx( bp_idx ); +} + +/** Fill in bond parameters based on atomic element types. */ +void Cpptraj::Parm::GenerateBondParameters(Topology& topOut) +{ + mprintf("\tDetermining bond length parameters from element types for '%s'.\n", topOut.c_str()); + BondParmArray& bondparm = topOut.ModifyBondParm(); + bondparm.clear(); + // Hold indices into bondparm for unique element pairs + BP_mapType bpMap; + for (BondArray::iterator bnd = topOut.ModifyBondsH().begin(); bnd != topOut.ModifyBondsH().end(); ++bnd) + GenerateBondParam( bondparm, *bnd, bpMap, topOut.Atoms() ); + for (BondArray::iterator bnd = topOut.ModifyBonds().begin(); bnd != topOut.ModifyBonds().end(); ++bnd) + GenerateBondParam( bondparm, *bnd, bpMap, topOut.Atoms() ); +} diff --git a/src/Parm/Bond_Params.h b/src/Parm/Bond_Params.h new file mode 100644 index 0000000000..423d0e4a9f --- /dev/null +++ b/src/Parm/Bond_Params.h @@ -0,0 +1,18 @@ +#ifndef INC_PARM_BOND_PARAMS_H +#define INC_PARM_BOND_PARAMS_H +#include "../Atom.h" +#include <vector> +#include <set> +class Topology; +class BondType; +class BondParmArray; +namespace Cpptraj { +namespace Parm { +typedef std::vector< std::set<Atom::AtomicElementType> > BP_mapType; +/// Generate bond parameters +void GenerateBondParam(BondParmArray&, BondType&, BP_mapType&, std::vector<Atom> const&); +/// Used to generate bond parameters (Req only) based on atomic element types. +void GenerateBondParameters(Topology&); +} +} +#endif diff --git a/src/Parm/CMakeLists.txt b/src/Parm/CMakeLists.txt new file mode 100644 index 0000000000..268e981bfc --- /dev/null +++ b/src/Parm/CMakeLists.txt @@ -0,0 +1,12 @@ +#CMake buildfile for CPPTRAJ Parm subdirectory. +target_sources(cpptraj_common_obj PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/AssignParams.cpp + ${CMAKE_CURRENT_LIST_DIR}/Bond_Params.cpp + ${CMAKE_CURRENT_LIST_DIR}/DihedralParmSet.cpp + ${CMAKE_CURRENT_LIST_DIR}/GB_Params.cpp + ${CMAKE_CURRENT_LIST_DIR}/GetParams.cpp + ${CMAKE_CURRENT_LIST_DIR}/LJ1264_Params.cpp + ${CMAKE_CURRENT_LIST_DIR}/Merge.cpp + ${CMAKE_CURRENT_LIST_DIR}/ParameterSet.cpp + ${CMAKE_CURRENT_LIST_DIR}/ParmEnum.cpp +) diff --git a/src/Parm/DihedralParmHolder.h b/src/Parm/DihedralParmHolder.h new file mode 100644 index 0000000000..f2751e133e --- /dev/null +++ b/src/Parm/DihedralParmHolder.h @@ -0,0 +1,113 @@ +#ifndef INC_PARM_DIHEDRALPARMHOLDER_H +#define INC_PARM_DIHEDRALPARMHOLDER_H +#include <vector> +#include <utility> // std::pair +#include "ParmEnum.h" +#include "../ParameterTypes.h" +#include "../TypeNameHolder.h" +namespace Cpptraj { +namespace Parm { +// ----------------------------------------------------------------------------- +/// Specialized class for associating atom types with dihedral parameters. +/** Dihedrals are specialized because you may need to do wildcard matching. + */ +class DihedralParmHolder { + typedef std::pair<TypeNameHolder,DihedralParmArray> Bpair; + typedef std::vector<Bpair> Bmap; + public: + /// CONSTRUCTOR + DihedralParmHolder() {} + /// DESTRUCTOR - virtual since inherited + virtual ~DihedralParmHolder() {} + /// Clear dihedral parameters + void clear() { bpmap_.clear(); } + /// \return Number of dihedral parameters + size_t size() const { return bpmap_.size(); } + /// \return true if no dihedral parameters + bool empty() const { return bpmap_.empty(); } + /// \return Last parameter to be overwritten from AddParm() + DihedralParmArray const& PreviousParm() const { return previousParm_; } + /// Set wildcard character + void SetWildcard(char wc) { wc_ = NameType(std::string(1, wc)); } + /// Add array of dihedral parameters with unique multiplicities + RetType AddParm(TypeNameHolder const& types, DihedralParmArray const& dpa, bool allowUpdate) { + // Check if parm for these types exist + Bmap::iterator it0 = bpmap_.begin(); + for (; it0 != bpmap_.end(); ++it0) + { + if (it0->first.Match_NoWC( types )) + break; + } + if (it0 == bpmap_.end()) { + // Brand new dihedral for these types. + bpmap_.push_back( Bpair(types, dpa) ); + } else { + if (!allowUpdate) return ERR; + // Check if sizes are the same. + bool update = false; + if (it0->second.size() != dpa.size()) + update = true; + else { + // Sizes are the same. See if parameters are the same. + for (unsigned int i = 0; i != it0->second.size(); i++) { + if (it0->second[i] < dpa[i] || dpa[i] < it0->second[i]) { + update = true; + break; + } + } + } + if (update) { + previousParm_ = it0->second; + it0->second = dpa; + return UPDATED; + } else + return SAME; + } + return ADDED; + } + /// Const iterator + typedef typename Bmap::const_iterator const_iterator; + /// \return const iterator to beginning + const_iterator begin() const { return bpmap_.begin(); } + /// \return const iterator to end + const_iterator end() const { return bpmap_.end(); } + /// \return Array of dihedral parameters matching given atom types. + DihedralParmArray FindParam(TypeNameHolder const& types, bool& found) const { + found = true; + for (const_iterator it = begin(); it != end(); ++it) + if (it->first.Match_NoWC( types )) return it->second; + if (wc_.len() > 0) { + for (const_iterator it = begin(); it != end(); ++it) + if (it->first.Match_WC( types, wc_)) return it->second; + } + found = false; + return DihedralParmArray(); + } + /// \return iterator to parameter matching the given types. + const_iterator GetParam(TypeNameHolder const& types) { + for (const_iterator it = begin(); it != end(); ++it) + if (it->first.Match_NoWC( types )) return it; + if (wc_.len() > 0) { + for (const_iterator it = begin(); it != end(); ++it) + if (it->first.Match_WC( types, wc_)) return it; + } + return end(); + } + /// \return size in memory in bytes + size_t DataSize() const { + if (bpmap_.empty()) return 0; + const_iterator elt0 = begin(); + // Assume all TypeNameHolders are the same size + return (bpmap_.size() * elt0->first.DataSize()) + + (bpmap_.size() * sizeof(DihedralParmArray)) + + sizeof(Bmap); + } + protected: + NameType wc_; ///< Wildcard character + private: + Bmap bpmap_; + DihedralParmArray previousParm_; ///< When parameter is updated, store previous value. +}; +} // END namespace Parm +} // END namespace Cpptraj +#endif diff --git a/src/Parm/DihedralParmSet.cpp b/src/Parm/DihedralParmSet.cpp new file mode 100644 index 0000000000..98c52fb384 --- /dev/null +++ b/src/Parm/DihedralParmSet.cpp @@ -0,0 +1,77 @@ +#include "DihedralParmSet.h" +#include "ParameterSet.h" +#include "../CpptrajStdio.h" + +using namespace Cpptraj::Parm; + +/// Print all multiplicities to stdout +static inline void printdih(DihedralParmArray const& dpa) +{ + for (DihedralParmArray::const_iterator it = dpa.begin(); it != dpa.end(); ++it) + mprintf("Warning:\t\t%3g PK= %g Phase= %g\n", it->Pn(), it->Pk(), it->Phase()*Constants::RADDEG); +} + +/** Print multiplicity warning */ +void DihedralParmSet::check_mult(std::string const& desc, TypeNameHolder const& types, DihedralParmArray const& DPA) { + if (DPA.size() > 1) { + DihedralParmArray::const_iterator dp = DPA.begin(); + unsigned int next_expected_mult = (unsigned int)dp->Pn() + 1; + dp++; + for (; dp != DPA.end(); dp++) { + if ((unsigned int)dp->Pn() != next_expected_mult) + mprintf("Warning: %s does not have term for multiplicity %u\n", + types.TypeNameStr(desc).c_str(), next_expected_mult); + next_expected_mult = (unsigned int)dp->Pn() + 1; + } + } +} + +/** Add all dihedral parameters into the given dihedral parameter holder. */ +int DihedralParmSet::ToDihParm(DihedralParmHolder& DP) const +{ + for (DihedralParmSet::const_iterator it = begin(); it != end(); ++it) + { + // Check multiplicites; warn if one seems missing + if (debug_ > 0) + check_mult("dihedral", it->first, it->second); + + Cpptraj::Parm::RetType ret = DP.AddParm( it->first, it->second, true ); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", it->first.TypeNameStr("dihedral").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) {// TODO SCEE/SCNB? + mprintf("Warning: Redefining %s from\n", it->first.TypeNameStr("dihedral").c_str()); + printdih(DP.PreviousParm()); + mprintf("Warning: to\n"); + printdih(it->second); + } else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", it->first.TypeNameStr("dihedral").c_str()); + return 1; + } + } + return 0; +} + +/** Add all improper parameters into the given improper parameter holder. */ +int DihedralParmSet::ToImpParm(ImproperParmHolder& IP) const +{ + for (DihedralParmSet::const_iterator it = begin(); it != end(); ++it) + { + // Check multiplicites; warn if one seems missing + if (debug_ > 0) + check_mult("improper", it->first, it->second); + + Cpptraj::Parm::RetType ret = IP.AddParm( it->first, it->second, true ); + if (ret == Cpptraj::Parm::SAME) + mprintf("Warning: Duplicated %s\n", it->first.TypeNameStr("improper").c_str()); + else if (ret == Cpptraj::Parm::UPDATED) { + mprintf("Warning: Redefining %s from\n", it->first.TypeNameStr("improper").c_str()); + printdih(IP.PreviousParm()); + mprintf("Warning: to\n"); + printdih(it->second); + } else if (ret == Cpptraj::Parm::ERR) { + mprinterr("Error: Reading %s\n", it->first.TypeNameStr("improper").c_str()); + return 1; + } + } + return 0; +} diff --git a/src/Parm/DihedralParmSet.h b/src/Parm/DihedralParmSet.h new file mode 100644 index 0000000000..d9adcc3e50 --- /dev/null +++ b/src/Parm/DihedralParmSet.h @@ -0,0 +1,119 @@ +#ifndef INC_PARM_DIHEDRALPARMSET_H +#define INC_PARM_DIHEDRALPARMSET_H +//#include <map> +#include "ParmEnum.h" +#include "../ParameterTypes.h" +#include "../TypeNameHolder.h" +namespace Cpptraj { +namespace Parm { +class DihedralParmHolder; +class ImproperParmHolder; +/// Used for reading in dihedral parameters. +/** When dihedral parameters are read in one at a time it is not + * guaranteed that parameters for all multiplcities will be + * present. This allows dihedral parameters to be read in + * one multiplicit at a time and then be checked for + * consistency afterwards. + */ +class DihedralParmSet { + typedef std::pair<TypeNameHolder, DihedralParmArray> Dpair; + //typedef std::map<TypeNameHolder, DihedralParmArray> Dmap; + typedef std::vector<Dpair> Dmap; + public: + /// CONSTRUCTOR + DihedralParmSet() : debug_(0) {} + /// CONSTRUCTOR - with debug level + DihedralParmSet(int debugIn) : debug_(debugIn) {} + /// \return Last parameter to be overwritten from AddParm() + DihedralParmType const& PreviousParm() const { return previousParm_; } + + typedef Dmap::const_iterator const_iterator; + const_iterator begin() const { return dihparm_.begin(); } + const_iterator end() const { return dihparm_.end(); } + + /// Put all dihedral parameters into given dihedral parameter holder. + int ToDihParm(DihedralParmHolder&) const; + /// Put all improper parameters into given improper parameter holder. + int ToImpParm(ImproperParmHolder&) const; + + /// Add (or update) a single dihedral or improper parameter for given atom types. + RetType AddDihParm(TypeNameHolder const& types, DihedralParmType const& dp, bool allowUpdate) { + // Ensure types are sorted + //TypeNameHolder types = typesIn; + //types.SortNames(); + // Check if dihedral parm for these types exist + //Dmap::iterator it0 = dihparm_.lower_bound( types ); + //if (it0 == dihparm_.end() || it0->first != types) { + // // Brand new dihedral for these types + // it0 = dihparm_.insert(it0, Dpair(types, DihedralParmArray(1, dp))); + // Check if parm for these types exist + Dmap::iterator it0 = dihparm_.begin(); + for (; it0 != dihparm_.end(); ++it0) + { + if (it0->first.Match_NoWC( types )) + break; + } + if (it0 == dihparm_.end()) { + // Brand new dihedral for these types. + //mprintf("DEBUG: New dihedral parm: %s %s %s %s pk=%12.4f pn=%12.4f pp=%12.4f\n", + // *types[0], *types[1], *types[2], *types[3], dp.Pk(), dp.Pn(), dp.Phase()); + dihparm_.push_back( Dpair(types, DihedralParmArray(1, dp)) ); + } else { + // If we are here types match - check multiplicity + DihedralParmArray::iterator it1 = it0->second.begin(); + for (; it1 != it0->second.end(); ++it1) + { + if (FEQ(it1->Pn(), dp.Pn())) + break; + } + if (it1 == it0->second.end()) { + // Brand new multiplicity for this dihedral. + //mprintf("DEBUG: Dihedral new mult: %s %s %s %s pk=%12.4f pn=%12.4f pp=%12.4f\n", + // *types[0], *types[1], *types[2], *types[3], dp.Pk(), dp.Pn(), dp.Phase()); + if (it0->second.empty()) + it0->second.push_back( dp ); + else if (dp.Pn() > it0->second.back().Pn()) + it0->second.push_back( dp ); + else { + // Try to keep multiplicities in order. + DihedralParmArray sorted; + bool isInserted = false; + for (DihedralParmArray::const_iterator jt = it0->second.begin(); jt != it0->second.end(); ++jt) { + if (!isInserted) { + if (dp.Pn() < jt->Pn()) { + sorted.push_back( dp ); + isInserted = true; + } + } + sorted.push_back( *jt ); + } + it0->second = sorted; + } + } else { + // Multiplicity already exists for this dihedral. + if (dp < *it1 || *it1 < dp) { + //mprintf("DEBUG: Attempt dihedral update mult (allow=%i): %s %s %s %s pk=%6.2f pn=%3.1f pp=%6.3f (orig pk=%6.2f pn=%3.1f pp=%6.3f )\n", + // (int)allowUpdate, *types[0], *types[1], *types[2], *types[3], dp.Pk(), dp.Pn(), dp.Phase(), it1->Pk(), it1->Pn(), it1->Phase()); + if (allowUpdate) { + previousParm_ = *it1; + *it1 = dp; + return UPDATED; + } else { + return ERR; + } + } else + return SAME; + } + } + return ADDED; + } + private: + static inline void check_mult(std::string const&, TypeNameHolder const&, DihedralParmArray const&); + + Dmap dihparm_; + DihedralParmType previousParm_; ///< When parameter is updated, store previous value. + int debug_; ///< Debug level +}; +} +} +#endif diff --git a/src/Parm/GB_Params.cpp b/src/Parm/GB_Params.cpp new file mode 100644 index 0000000000..6e35e841b1 --- /dev/null +++ b/src/Parm/GB_Params.cpp @@ -0,0 +1,487 @@ +#include "GB_Params.h" +#include "../ArgList.h" +#include "../CpptrajStdio.h" +#include "../Topology.h" + +static const char* GB_RadiiTypeStr_[] = { + "Bondi radii", // 0 + "Amber 6 modified Bondi radii", // 1 + "Modified Bondi radii", // 2 + "Radii optimized for Amber charges by Huo and Kollman", // 3 + "H(N)-modified Bondi radii", // 6 + "PARSE radii", // 7 + "ArgH and AspGluO modified Bondi2 radii", // 8 + "Unknown GB radii set" +}; + +static const char* GB_RadiiTypeKey_[] = { + "bondi", // 0 + "amber6", // 1 + "mbondi", // 2 + "pbamber", // 3 + "mbondi2", // 6 + "parse", // 7 + "mbondi3", // 8 + 0 +}; + +static const char* GB_RadiiAmberFlag_[] = { + "Bondi radii (bondi)", // 0 + "amber6 modified Bondi radii (amber6)", // 1 + "modified Bondi radii (mbondi)", // 2 + "Huo and Kollman optimized radii (pbamber)", // 3 + "H(N)-modified Bondi radii (mbondi2)", // 6 + "Parse radii (parse)", // 7 + "ArgH and AspGluO modified Bondi2 radii (mbondi3)", // 8 + "Unknown radius set (cpptraj needs to be modified!)" +}; + +/** \return key corresponding to type. */ +const char* Cpptraj::Parm::GbTypeKey(GB_RadiiType t) { + return GB_RadiiTypeKey_[t]; +} + +/** \return char string corresponding to type. */ +std::string Cpptraj::Parm::GbTypeStr(GB_RadiiType t) { + return std::string(GB_RadiiTypeStr_[t]); +} + +/** \return Amber topology FLAG */ +std::string Cpptraj::Parm::GbAmberFlag(GB_RadiiType t) { + return std::string(GB_RadiiAmberFlag_[t]); +} + +/** \return GB_RadiiType corresponding to string. */ +Cpptraj::Parm::GB_RadiiType Cpptraj::Parm::GbTypeFromKey(std::string const& key) { + if (!key.empty()) { + for (int i = 0; i < (int)UNKNOWN_GB; i++) { + if ( key == std::string(GB_RadiiTypeKey_[i]) ) return (GB_RadiiType)i; + } + } + return UNKNOWN_GB; +} + +/// These are the numeric iGBparm values used in LEaP +static const int GB_RadiiTypeIGB_[] = { + 0, // bondi + 1, // amber6 + 2, // mbondi + 3, // pbamber + 6, // mbondi2 + 7, // parse + 8, // mbondi3 + 999999 +}; + +// ============================================================================= +/** CONSTRUCTOR */ +Cpptraj::Parm::GB_Params::GB_Params() : gbradii_(Cpptraj::Parm::UNKNOWN_GB) {} + +/** Print keywords to stdout. */ +std::string Cpptraj::Parm::GB_Params::HelpText() { + std::string out("gb {"); + for (int ig = 0; ig != (int)UNKNOWN_GB; ig++) { + if (ig > 0) out.append("|"); + out.append(std::string( GbTypeKey((GB_RadiiType)ig) )); + } + out.append("}"); + return out; +} + +/** Init radii set */ +int Cpptraj::Parm::GB_Params::Init_GB_Radii(ArgList& argIn, Cpptraj::Parm::GB_RadiiType gbRadIn) +{ + if (gbRadIn == Cpptraj::Parm::UNKNOWN_GB) { + // No radii set specified. Check for keyword. + gbradii_ = Cpptraj::Parm::MBONDI; // Default + std::string gbset = argIn.GetStringKey("gb"); + if (!gbset.empty()) { + gbradii_ = Cpptraj::Parm::GbTypeFromKey( gbset ); + if (gbradii_ == Cpptraj::Parm::UNKNOWN_GB) { + mprinterr("Error: Unknown GB radii set: %s\n", gbset.c_str()); + return 1; + } + } + } else { + // Use passed-in GB radii set + gbradii_ = gbRadIn; + } + return 0; +} + +/** Init radii set - no args */ +int Cpptraj::Parm::GB_Params::Init_GB_Radii(Cpptraj::Parm::GB_RadiiType gbRadIn) +{ + if (gbRadIn == Cpptraj::Parm::UNKNOWN_GB) { + // No radii set specified. + gbradii_ = Cpptraj::Parm::MBONDI; // Default + } else { + // Use passed-in GB radii set + gbradii_ = gbRadIn; + } + return 0; +} + +/** Print current setup. */ +void Cpptraj::Parm::GB_Params::GB_Info() const { + mprintf("\tGB radii set: %s\n", Cpptraj::Parm::GbTypeStr(gbradii_).c_str()); +} + +/** Assign GB radii. */ +void Cpptraj::Parm::GB_Params::assign_gb_radii(Topology& top, Cpptraj::Parm::GB_RadiiType radiiSet) +{ + int iGBparm = GB_RadiiTypeIGB_[radiiSet]; + for (int iat = 0; iat != top.Natom(); iat++) + { + Atom const& currentAtom = top[iat]; + Residue const& currentRes = top.Res(currentAtom.ResNum()); + double dGBrad = 0.0; +// saPAtom = PVAI(uUnit->vaAtoms, SAVEATOMt, i); +// iIndex = iParmSetFindAtom(uUnit->psParameters, saPAtom->sType); +// ParmSetAtom(uUnit->psParameters, iIndex, sType, &dMass, &dPolar, +// &dEpsilon, &dRStar, &dEpsilon14, &dRStar14, &dScreenF, +// &iElement, &iHybridization, sDesc); + if (iGBparm < 3 || iGBparm == 6 || iGBparm == 8) { + // Bondi or modified Bondi radii + switch (currentAtom.Element()) { + case Atom::HYDROGEN: + dGBrad = 1.2; + + // Make the modifications that hydrogen radii + // depend upon the atoms they are bonded to. + // iGBparm=1 corresponds to Amber 6, JACS 122:2489 (2000); + // iGBparm=2 adds the update of Biopolymers 56: 275 (2001) + if (currentAtom.Nbonds() > 0) { + + // For multiply bonded Hydrogen atoms use the first bond for + // determining modified GB radii. WAT contains multiply bonded + // Hydrogen atoms so do not emit a warning. + Atom const& aAtomA = top[currentAtom.Bond(0)]; + if (iGBparm == 1 || iGBparm == 2) { + switch (aAtomA.Element()) { + case Atom::CARBON: dGBrad = 1.3; break; // Carbon + case Atom::OXYGEN: dGBrad = 0.8; break; // Oxygen + case Atom::SULFUR: dGBrad = 0.8; break; // Sulfur + case Atom::NITROGEN: + if (iGBparm == 2) { + dGBrad = 1.3; + } + break; // Nitrogen, mbondi + case Atom::HYDROGEN: // Special case: water hydrogen + if (aAtomA.Type() == "HW" || aAtomA.Type() == "hw") { + dGBrad = 0.8; + } + break; + default : break; + } + } + else if (iGBparm == 6 || iGBparm == 8) { + + // Try Alexey's scheme + if (aAtomA.Element() == Atom::NITROGEN) { + dGBrad = 1.3; + if (iGBparm == 8) { + + // Update residue as appropriate + //if (saPAtom->iResidueIndex != iResidueIndex) { + // iResidueIndex = saPAtom->iResidueIndex; + // cPTemp = PVAI(uUnit->vaResidues, SAVERESIDUEt, + // iResidueIndex - 1)->sName; + // if (strlen(cPTemp) > 3) { + // cPTemp += (strlen(cPTemp) - 3); + // } + //} + + // Adjust Arg HH and HE + if (currentRes.Name() == "ARG" && (currentAtom.Name().Match("HH*") || currentAtom.Name() == "HE")) + { + //if (!strcmp(cPTemp, "ARG") && + // !(strncmp(sAtomName(saPAtom->aAtom), "HH", 2) && + // strcmp(sAtomName(saPAtom->aAtom), "HE"))) { + dGBrad = 1.17; + } + } + } + } + } + else { + mprintf("Warning: Unbonded Hydrogen atom %s in %s.\n" + " Cannot determine the requested GB radius for this atom.\n" + " Writing the unmodified Bondi GB radius.\n", + *(currentAtom.Name()), + top.TruncResNameNum(currentAtom.ResNum()).c_str()); + } + break; + case Atom::CARBON: + + // Use the mass of the carbon atom. We are testing for + // carbons here. C1 == CH, C2 == CH2, C3 == CH3. UA carbons + // have a larger radius (2.2), so we want to make sure that + // the C1, C2, and C3 atom types _really_ correspond to UA + // UA carbons. C1 atoms should have a mass of 12.01 + 1.01, + // C2 should be 12.01 + 2.02, and C3 should be 12.01 + 3.03. + // This mneumonic will not work for 13C named "C1". This is + // a (hopefully) temporary kludge. FIXME not sure this first line is right + //if (strncmp(sType, "C1", 2) && strncmp(sType, "C2", 2) && strncmp(sType, "C3", 2)) { + if (currentAtom.Type() != "C1" && currentAtom.Type() != "C2" && currentAtom.Type() != "C3") { + dGBrad = 1.7; + } + else if (currentAtom.Type() == "C1" && currentAtom.Mass() < 13.0) { + dGBrad = 1.7; + } + else if (currentAtom.Type() == "C2" && currentAtom.Mass() < 14.0) { + dGBrad = 1.7; + } + else if (currentAtom.Type() == "C3" && currentAtom.Mass() < 15.0) { + dGBrad = 1.7; + } + else { + dGBrad = 2.2; + } + break; + case Atom::NITROGEN: + dGBrad = 1.55; + break; + case Atom::OXYGEN: + dGBrad = 1.5; + if (iGBparm == 8) { + + // Update residue as appropriate + //if (saPAtom->iResidueIndex != iResidueIndex) { + // iResidueIndex = saPAtom->iResidueIndex; + // cPTemp = PVAI(uUnit->vaResidues, SAVERESIDUEt, iResidueIndex - 1)->sName; + // if (strlen(cPTemp) > 3) { + // cPTemp += (strlen(cPTemp) - 3); + // } + //} + + // Adjust Asp OD and Glu OE, and terminal OXT + if ( (currentRes.Name() == "ASP" && currentAtom.Name().Match("OD*")) || + (currentRes.Name() == "AS4" && currentAtom.Name().Match("OD*")) || + (currentRes.Name() == "GLU" && currentAtom.Name().Match("OE*")) || + (currentRes.Name() == "GL4" && currentAtom.Name().Match("OE*")) || + (currentAtom.Name() == "OXT") || + (iat+1 < top.Natom() && top[iat+1].Name() == "OXT") // FIXME O next to OXT in topology seems very hacky + ) + { + //if (!(strcmp(cPTemp, "ASP") || strncmp(sAtomName(saPAtom->aAtom), "OD", 2)) || + // !(strcmp(cPTemp, "AS4") || strncmp(sAtomName(saPAtom->aAtom), "OD", 2)) || + // !(strcmp(cPTemp, "GLU") || strncmp(sAtomName(saPAtom->aAtom), "OE", 2)) || + // !(strcmp(cPTemp, "GL4") || strncmp(sAtomName(saPAtom->aAtom), "OE", 2)) || + // (!strcmp(sAtomName(saPAtom->aAtom), "OXT") || + // (i + 1 < iVarArrayElementCount(uUnit->vaAtoms) && + // !strcmp(sAtomName(PVAI(uUnit->vaAtoms, SAVEATOMt, i + 1)->aAtom), + // "OXT")))) { + dGBrad = 1.4; + } + } + break; + case Atom::FLUORINE: + dGBrad = 1.5; + break; + case Atom::SILICON: + dGBrad = 2.1; + break; + case Atom::PHOSPHORUS: + dGBrad = 1.85; + break; + case Atom::SULFUR: + dGBrad = 1.8; + break; + case Atom::CHLORINE: + dGBrad = 1.7; + break; + default: + dGBrad = 1.5; + break; + } + } + else if (iGBparm == 3) { + + // Radii from Huo & Kollman + switch (currentAtom.Element()) { + case Atom::HYDROGEN: + dGBrad = 1.15; + break; + case Atom::CARBON: + dGBrad = 1.85; + break; + case Atom::NITROGEN: + dGBrad = 1.64; + break; + case Atom::OXYGEN: + dGBrad = 1.53; + break; + case Atom::FLUORINE: + dGBrad = 1.53; + break; + case Atom::PHOSPHORUS: + dGBrad = 2.02; + break; + case Atom::SULFUR: + dGBrad = 2.00; + break; + case Atom::CHLORINE: + dGBrad = 1.97; + break; + case Atom::BROMINE: + dGBrad = 2.03; + break; + case Atom::IODINE: + dGBrad = 2.10; + break; + default: + dGBrad = 1.5; + break; + } + } + else if (iGBparm == 7) { + + // Parse radii + switch (currentAtom.Element()) { + case Atom::HYDROGEN: + dGBrad = 1.00; + break; + case Atom::CARBON: + dGBrad = 1.70; + break; + case Atom::NITROGEN: + dGBrad = 1.50; + break; + case Atom::OXYGEN: + dGBrad = 1.40; + break; + case Atom::SULFUR: + dGBrad = 1.85; + break; + default: + dGBrad = 1.50; + break; + // Radii from J. Phys. Chem. 1994, 98, 1978-1988 + } + } + top.SetAtom(iat).SetGBradius( dGBrad ); + } // END loop over atoms +} + +/** Assign GB screening parameters. */ +void Cpptraj::Parm::GB_Params::assign_gb_screen(Topology& top, Cpptraj::Parm::GB_RadiiType radiiSet) +{ + int iGBparm = GB_RadiiTypeIGB_[radiiSet]; + for (int iat = 0; iat != top.Natom(); iat++) + { + Atom const& currentAtom = top[iat]; + double dGBscreen = 0; + if (iGBparm < 4 || iGBparm == 6 || iGBparm == 8) { + + // For now, hardwire the Bondi radii + switch (currentAtom.Element()) { + case Atom::HYDROGEN: + dGBscreen = 0.85; + break; + case Atom::CARBON: + dGBscreen = 0.72; + break; + case Atom::NITROGEN: + dGBscreen = 0.79; + break; + case Atom::OXYGEN: + dGBscreen = 0.85; + break; + case Atom::FLUORINE: + dGBscreen = 0.88; + break; + case Atom::PHOSPHORUS: + dGBscreen = 0.86; + break; + case Atom::SULFUR: + dGBscreen = 0.96; + break; + default: + dGBscreen = 0.8; + break; // or should fail?? + } + } + else if (iGBparm == 4) { // param for Jayaram et al. 'GB' + switch (currentAtom.Element()) { + case Atom::HYDROGEN: + dGBscreen = 0.8461; + break; + case Atom::CARBON: + dGBscreen = 0.9615; + break; + case Atom::NITROGEN: + dGBscreen = 0.9343; + break; + case Atom::OXYGEN: + dGBscreen = 1.0088; + break; + case Atom::SODIUM: + dGBscreen = 1.0000; + break; + case Atom::MAGNESIUM: + dGBscreen = 1.0000; + break; // Set by HG + case Atom::PHOSPHORUS: + dGBscreen = 1.0700; + break; + case Atom::SULFUR: + dGBscreen = 1.1733; + break; + default: + dGBscreen = 0.8000; + break; // Set by HG + } + } + else if (iGBparm == 5) { + + // Param for Jayaram et al. 'MGB' + switch (currentAtom.Element()) { + case Atom::HYDROGEN: + dGBscreen = 0.8846; + break; + case Atom::CARBON: + dGBscreen = 0.9186; + break; + case Atom::NITROGEN: + dGBscreen = 0.8733; + break; + case Atom::OXYGEN: + dGBscreen = 0.8836; + break; + case Atom::SODIUM: + dGBscreen = 1.0000; + break; + case Atom::MAGNESIUM: + dGBscreen = 1.0000; + break; // Set by HG + case Atom::PHOSPHORUS: + dGBscreen = 0.9604; + break; + case Atom::SULFUR: + dGBscreen = 0.9323; + break; + default: + dGBscreen = 0.8000; + break; // Set by HG + } + } + top.SetAtom(iat).SetGBscreen( dGBscreen ); + } // END loop over atoms +} + +/** Assign GB radii and screening parameters based on the given radius set. */ +int Cpptraj::Parm::GB_Params::Assign_GB_Radii(Topology& top) +const +{ + if (gbradii_ == UNKNOWN_GB) { + mprinterr("Error: Unknown GB radii set.\n"); + return 1; + } + mprintf("\tUsing GB radii set: %s\n", GB_RadiiTypeStr_[gbradii_]); + top.SetGBradiiSet( std::string(GB_RadiiAmberFlag_[gbradii_]) ); + assign_gb_radii( top, gbradii_ ); + assign_gb_screen( top, gbradii_ ); + + return 0; +} diff --git a/src/Parm/GB_Params.h b/src/Parm/GB_Params.h new file mode 100644 index 0000000000..3d63f42ed9 --- /dev/null +++ b/src/Parm/GB_Params.h @@ -0,0 +1,50 @@ +#ifndef INC_PARM_GBPARAMS_H +#define INC_PARM_GBPARAMS_H +#include <string> +class ArgList; +class Topology; +namespace Cpptraj { +namespace Parm { +/// Known radii types. KEEP SYNCED WITH GB_RadiiTypeStr[] in GB_Params.cpp +enum GB_RadiiType { + BONDI=0, ///< 0, bondi, Bondi radii + BONDI_AMBER6, ///< 1, amber6, Amber6 modified Bondi radii + MBONDI, ///< 2, mbondi, Modified bondi radii + PB_AMBER, ///< 3, pbamber, PB radii from Huo and Kollman, currently unused + MBONDI2, ///< 6, mbondi2, H(N)-modified Bondi radii + PARSE, ///< 7, parse, PARSE radii + MBONDI3, ///< 8, ArgH and AspGluO modified Bondi2 radii + UNKNOWN_GB +}; +/// \return Keyword corresponding to Amber radii flag +const char* GbTypeKey(GB_RadiiType); +/// \return string corresponding to Amber Radii Flag +std::string GbAmberFlag(GB_RadiiType); +/// \return string corresponding to gb radii set +std::string GbTypeStr(GB_RadiiType); +/// \return GB radii type corresponding to string +GB_RadiiType GbTypeFromKey(std::string const&); + +/// Used to assign GB radii to a Topology +class GB_Params { + public: + /// CONSTRUCTOR + GB_Params(); + /// \return recognized GB radii keywords. + static std::string HelpText(); + /// Initialize + int Init_GB_Radii(ArgList&, GB_RadiiType); + /// Initialize no args + int Init_GB_Radii(GB_RadiiType); + // Print current setup + void GB_Info() const; + /// Assign GB radii + int Assign_GB_Radii(Topology&) const; + private: + static void assign_gb_radii(Topology&, GB_RadiiType); + static void assign_gb_screen(Topology&, GB_RadiiType); + GB_RadiiType gbradii_; ///< Type of GB radii to assign +}; +} +} +#endif diff --git a/src/Parm/GetParams.cpp b/src/Parm/GetParams.cpp new file mode 100644 index 0000000000..a092acd650 --- /dev/null +++ b/src/Parm/GetParams.cpp @@ -0,0 +1,454 @@ +#include "GetParams.h" +#include "DihedralParmSet.h" +#include "ParameterSet.h" +#include "../Atom.h" +#include "../AtomType.h" +#include "../CmapParmHolder.h" +#include "../CpptrajStdio.h" +#include "../ParameterTypes.h" +#include "../Topology.h" +#include "../TypeNameHolder.h" + +using namespace Cpptraj::Parm; + +/** CONSTRUCTOR */ +GetParams::GetParams() : + debug_(0) +{} + +/** Set debug level */ +void GetParams::SetDebug(int debugIn) { + debug_ = debugIn; +} + +static void paramOverwriteWarning(const char* type) { + mprintf("Warning: An existing %s parameter would have been overwritten. This\n" + "Warning: usually means that the atom type information in the Topology is\n" + "Warning: incomplete. This can happen for example with Chamber topologies\n" + "Warning: if the original atom type names were > 4 characters.\n", type); + mprintf("Warning: The %s parameters in this topology may now be incorrect.\n", type); +} + +// GetBondParams() +void GetParams::GetBondParams(ParmHolder<BondParmType>& BP, std::vector<Atom> const& atoms, BondArray const& bonds, BondParmArray const& bpa) { + for (BondArray::const_iterator b = bonds.begin(); b != bonds.end(); ++b) + { + if (b->Idx() != -1) { + TypeNameHolder types(2); + types.AddName( atoms[b->A1()].Type() ); + types.AddName( atoms[b->A2()].Type() ); + Cpptraj::Parm::RetType ret = BP.AddParm( types, bpa[b->Idx()], false ); + if (ret == Cpptraj::Parm::ERR) + paramOverwriteWarning("bond"); + } + } +} + +// GetAngleParams() +void GetParams::GetAngleParams(ParmHolder<AngleParmType>& AP, std::vector<Atom> const& atoms, AngleArray const& angles, AngleParmArray const& apa) { + for (AngleArray::const_iterator b = angles.begin(); b != angles.end(); ++b) + { + if (b->Idx() != -1) { + TypeNameHolder types(3); + types.AddName( atoms[b->A1()].Type() ); + types.AddName( atoms[b->A2()].Type() ); + types.AddName( atoms[b->A3()].Type() ); + Cpptraj::Parm::RetType ret = AP.AddParm( types, apa[b->Idx()], false ); + if (ret == Cpptraj::Parm::ERR) + paramOverwriteWarning("angle"); + } + } +} + +// GetImproperParams() +void GetParams::GetImproperParams(ImproperParmHolder& IP, std::vector<Atom> const& atoms, DihedralArray const& imp, DihedralParmArray const& ipa) { + IP.SetRequireExactMatch(true); + DihedralParmSet impPrm; + for (DihedralArray::const_iterator b = imp.begin(); b != imp.end(); ++b) + { + if (b->Idx() != -1) { + TypeNameHolder types(4); + types.AddName( atoms[b->A1()].Type() ); + types.AddName( atoms[b->A2()].Type() ); + types.AddName( atoms[b->A3()].Type() ); + types.AddName( atoms[b->A4()].Type() ); + Cpptraj::Parm::RetType ret = impPrm.AddDihParm( types, ipa[b->Idx()], false ); + if (ret == Cpptraj::Parm::ERR) + paramOverwriteWarning("improper"); + } + } + if (impPrm.ToImpParm(IP)) { + mprinterr("Internal Error: GetParams::GetImproperParams(): Could not transfer parameters from set to holder.\n"); + } +} + +// GetDihedralParams() +void GetParams::GetDihedralParams(DihedralParmHolder& DP, ImproperParmHolder& IP, std::vector<Atom> const& atoms, DihedralArray const& dih, DihedralParmArray const& dpa) { + IP.SetRequireExactMatch(true); + DihedralParmSet dihPrm; + DihedralParmSet impPrm; + for (DihedralArray::const_iterator b = dih.begin(); b != dih.end(); ++b) + { + if (b->Idx() != -1) { + TypeNameHolder types(4); + types.AddName( atoms[b->A1()].Type() ); + types.AddName( atoms[b->A2()].Type() ); + types.AddName( atoms[b->A3()].Type() ); + types.AddName( atoms[b->A4()].Type() ); + //mprintf("DEBUG: dihedral %li ( %i %i %i %i )\n", b - dih.begin() + 1, b->A1()+1, b->A2()+1, b->A3()+1, b->A4()+1); + //mprintf("DEBUG: dihedral %li %s %s %s %s idx=%i type=%i PK=%g PN=%g Phase=%g SCEE=%g SCNB=%g\n", b - dih.begin() + 1, + // *(types[0]), *(types[1]), *(types[2]), *(types[3]), b->Idx(), (int)b->Type(), + // dpa[b->Idx()].Pk(), dpa[b->Idx()].Pn(), dpa[b->Idx()].Phase(), dpa[b->Idx()].SCEE(), dpa[b->Idx()].SCNB()); + Cpptraj::Parm::RetType ret; + if (b->IsImproper()) { + ret = impPrm.AddDihParm( types, dpa[b->Idx()], false ); + } else { + ret = dihPrm.AddDihParm( types, dpa[b->Idx()], false ); + } + // DEBUG + //if (ret == Cpptraj::Parm::ADDED) { + // mprintf("DEBUG: Added %s %s %s %s idx=%i isImproper=%i\n", *(types[0]), *(types[1]), *(types[2]), *(types[3]), b->Idx(), (int)b->IsImproper()); + //} + if (ret == Cpptraj::Parm::ERR) { + paramOverwriteWarning("dihedral"); + mprintf("Warning: Dihedral %s %s %s %s PK=%g PN=%g Phase=%g SCEE=%g SCNB=%g\n", + *(types[0]), *(types[1]), *(types[2]), *(types[3]), + dpa[b->Idx()].Pk(), dpa[b->Idx()].Pn(), dpa[b->Idx()].Phase(), dpa[b->Idx()].SCEE(), dpa[b->Idx()].SCNB()); + //bool found; + //DihedralParmArray dpa = DP.FindParam(types, found); + //mprintf("Warning: Existing params:\n"); + //for (DihedralParmArray::const_iterator d = dpa.begin(); d != dpa.end(); ++d) + // mprintf("Warning:\t\tPK=%g PN=%g Phase=%g SCEE=%g SCNB=%g\n", + // d->Pk(), d->Pn(), d->Phase(), d->SCEE(), d->SCNB()); + } + } + } + if (impPrm.ToImpParm(IP)) { + mprinterr("Internal Error: GetParams::GetImproperParams(): Could not transfer parameters from set to holder.\n"); + } + if (dihPrm.ToDihParm(DP)) { + mprinterr("Internal Error: GetParams::GetDihedralParams(): Could not transfer parameters from set to holder.\n"); + } +} + +/// \return an error if cmap atom names do not match +static inline int check_cmap_atom_name(NameType const& n0, NameType const& n1) +{ + if (n0 != n1) { + mprinterr("Error: CMAP term atom name %s does not match expected CMAP term atom name %s\n", + *n1, *n0); + return 1; + } + return 0; +} + +/** Get existing CMAP parameters. + * Unlike other parameters, CMAPs are big and are uniquely identified by + * a combination of residue and 5 atom names. Depending on if they were + * read in from a parameter file or a topology, they may or may not + * have residue/atom name information, which is needed for assignment. + * This info needs to be generated if it is missing. + */ +int GetParams::GetCmapParams(CmapParmHolder& cmapParm, CmapArray const& cmapTerms, + CmapGridArray const& cmapGrids, + std::vector<Atom> const& atoms, std::vector<Residue> const& residues) +const +{ + if (cmapGrids.empty() || cmapTerms.empty()) { + //mprintf("DEBUG: CMAP grids/terms are empty. No parameters to get.\n"); + return 0; + } + // Check if we need to generate residue/atom information for grids. + bool needResAtomInfo = false; + for (CmapGridArray::const_iterator it = cmapGrids.begin(); it != cmapGrids.end(); ++it) + { + if (it->ResNames().empty() || it->AtomNames().empty()) { + needResAtomInfo = true; + break; + } + } + // Mark off which terms need to be added. + std::vector<bool> addGrid( cmapGrids.size(), false ); + for (CmapArray::const_iterator cm = cmapTerms.begin(); cm != cmapTerms.end(); ++cm) { + if (cm->Idx() != -1) + addGrid[cm->Idx()] = true; + } + // Add grids, adding res/atom info if needed + if (needResAtomInfo) { + mprintf("CMAP terms need residue/atom info.\n"); + for (unsigned int idx = 0; idx != cmapGrids.size(); idx++) { + if (addGrid[idx]) { + // Figure out residue names this cmap applies to. + std::set<NameType> resNames; + std::vector<NameType> atomNames; + atomNames.reserve(5); + for (CmapArray::const_iterator cm = cmapTerms.begin(); cm != cmapTerms.end(); ++cm) { + if (cm->Idx() == (int)idx) { + int resnum = atoms[cm->A2()].ResNum(); + resNames.insert( residues[resnum].Name() ); + if (atomNames.empty()) { + atomNames.push_back( atoms[cm->A1()].Name() ); + atomNames.push_back( atoms[cm->A2()].Name() ); + atomNames.push_back( atoms[cm->A3()].Name() ); + atomNames.push_back( atoms[cm->A4()].Name() ); + atomNames.push_back( atoms[cm->A5()].Name() ); + } else { + // Check atom names + if (check_cmap_atom_name(atomNames[0], atoms[cm->A1()].Name())) return 1; + if (check_cmap_atom_name(atomNames[1], atoms[cm->A2()].Name())) return 1; + if (check_cmap_atom_name(atomNames[2], atoms[cm->A3()].Name())) return 1; + if (check_cmap_atom_name(atomNames[3], atoms[cm->A4()].Name())) return 1; + if (check_cmap_atom_name(atomNames[4], atoms[cm->A5()].Name())) return 1; + } + } + } + //mprintf("DEBUG: Cmap term %u residues", idx); + //for (std::set<NameType>::const_iterator it = resNames.begin(); it != resNames.end(); ++it) + // mprintf(" %s", *(*it)); + //mprintf(" Atoms={"); + //for (std::vector<NameType>::const_iterator it = atomNames.begin(); it != atomNames.end(); ++it) + // mprintf(" %s", *(*it)); + //mprintf(" }\n"); + CmapGridType newGrid = cmapGrids[idx]; + // Add the atom/res info to the grid + newGrid.SetNumCmapRes( resNames.size() ); + for (std::set<NameType>::const_iterator it = resNames.begin(); it != resNames.end(); ++it) + newGrid.AddResName( it->Truncated() ); // FIXME just use NameType + for (std::vector<NameType>::const_iterator it = atomNames.begin(); it != atomNames.end(); ++it) + newGrid.AddAtomName( it->Truncated() ); // FIXME just use NameType + if (!newGrid.CmapIsValid()) { + mprinterr("Error: CMAP is not valid, could not get parameter.\n"); + mprinterr("Error: Term %u residues", idx); + for (std::set<NameType>::const_iterator it = resNames.begin(); it != resNames.end(); ++it) + mprinterr(" %s", *(*it)); + mprinterr(" Atoms={"); + for (std::vector<NameType>::const_iterator it = atomNames.begin(); it != atomNames.end(); ++it) + mprinterr(" %s", *(*it)); + mprinterr(" }\n"); + } + // Set a default title if needed + if (newGrid.Title().empty()) + newGrid.SetTitle( "CMAP for " + newGrid.ResNames().front() ); + Cpptraj::Parm::RetType ret = cmapParm.AddParm( newGrid, false, debug_ ); + if (ret == Cpptraj::Parm::ERR) + paramOverwriteWarning("CMAP"); + } // END if adding existing grid to parms + } // END loop over existing grids + } else { + mprintf("CMAP terms have residue/atom info.\n"); + for (unsigned int idx = 0; idx != cmapGrids.size(); idx++) { + if (addGrid[idx]) { + Cpptraj::Parm::RetType ret = cmapParm.AddParm( cmapGrids[idx], false, debug_ ); + if (ret == Cpptraj::Parm::ERR) + paramOverwriteWarning("CMAP"); + } + } + } + return 0; +} + +/** \param atomTypesOut Output array of atom types and indivudual LJ parameters. + * \param LJ612out Output array of LJ 6-12 pair parameters. + * \param LJ14out Output array of LJ 6-12 1-4 pair parameters. + * \param LJ1012out Output array of LJ 10-12 pair parameters. + * \param atoms Current array of atoms. + * \param NB0 Current nonbond parameters. + */ +void GetParams::GetLJAtomTypes(ParmHolder<AtomType>& atomTypesOut, + ParmHolder<NonbondType>& LJ612out, + ParmHolder<NonbondType>& LJ14out, + ParmHolder<double>& LJCout, + ParmHolder<HB_ParmType>& LJ1012out, + std::vector<Atom> const& atoms, + NonbondParmType const& NB0) +const +{ + if (NB0.HasNonbond()) { + if (debug_ > 0) mprintf("DEBUG: Topology has nonbond parameters.\n"); + bool hasLJ14 = !NB0.LJ14().empty(); + if (debug_ > 0 && hasLJ14) + mprintf("DEBUG: Topology has 1-4 nonbond parameters.\n"); + bool hasLJC = !NB0.LJC_Array().empty(); + if (debug_ > 0 && hasLJC) + mprintf("DEBUG: Topology has LJC nonbond paramters.\n"); + // Nonbonded parameters are present. + for (std::vector<Atom>::const_iterator atm = atoms.begin(); atm != atoms.end(); ++atm) + { + if (!atm->HasType()) { + mprintf("Warning: Topology has nonbond parameters but atom %s has no type.\n", *(atm->Name())); + continue; + } + TypeNameHolder atype( atm->Type() ); + // Check for self parameters to back-calculate LJ depth/radius + int idx = NB0.GetLJindex( atm->TypeIndex(), atm->TypeIndex() ); + AtomType thisType; + if (idx > -1) { + // Has LJ 6-12 parameters + NonbondType const& LJ = NB0.NBarray( idx ); + thisType = AtomType(LJ.Radius(), LJ.Depth(), atm->Mass(), atm->Polar()); + if (hasLJ14) { + NonbondType const& lj14 = NB0.LJ14( idx ); + thisType.SetLJ14( LJparmType(lj14.Radius(), lj14.Depth()) ); + } + } else { + // Has LJ 10-12 parameters + thisType = AtomType(atm->Mass(), atm->Polar()); + } + thisType.SetTypeIdx( atm->TypeIndex() ); + Cpptraj::Parm::RetType ret = atomTypesOut.AddParm( atype, thisType, true ); + if (debug_ > 0 && ret == Cpptraj::Parm::ADDED) { + mprintf("DEBUG: New atom type: %s R=%g D=%g M=%g P=%g\n", *(atype[0]), + thisType.LJ().Radius(), thisType.LJ().Depth(), thisType.Mass(), thisType.Polarizability()); + if (hasLJ14) + mprintf("DEBUG: New LJ14 atom type: %s R=%g D=%g\n", *(atype[0]), thisType.LJ14().Radius(), thisType.LJ14().Depth()); + } + } + // Do atom type pairs, check for off-diagonal elements. + // Explicitly store pairs instead of regenerating to avoid round-off issues. + //GetLJterms(atomTypesOut, LJ612out, &LJ1012out, NB0, false, debug_); + //if (hasLJ14) + // GetLJterms(LJ14typesOut, LJ14out, 0, NB0, true, debug_); + unsigned int nModifiedOffDiagonal = 0; + unsigned int nModified14OffDiagonal = 0; + for (ParmHolder<AtomType>::const_iterator i1 = atomTypesOut.begin(); i1 != atomTypesOut.end(); ++i1) + { + for (ParmHolder<AtomType>::const_iterator i2 = i1; i2 != atomTypesOut.end(); ++i2) + { + NameType const& name1 = i1->first[0]; + NameType const& name2 = i2->first[0]; + TypeNameHolder types(2); + types.AddName( name1 ); + types.AddName( name2 ); + // Extract original nonbonded parameters for this type pair. + AtomType const& type1 = i1->second; + AtomType const& type2 = i2->second; + int idx1 = type1.OriginalIdx(); + int idx2 = type2.OriginalIdx(); + int idx = NB0.GetLJindex( idx1, idx2 ); + if (idx < 0) { + // This is LJ 10-12. + //mprinterr("Error: No off-diagonal LJ for %s %s (%i %i)\n", + // *name1, *name2, idx1, idx2); + //return; + if (debug_ > 0) + mprintf("DEBUG: LJ 10-12 parameters detected for %s %s (%i %i)\n", + *name1, *name2, idx1, idx2); + LJ1012out.AddParm( types, NB0.HBarray((-idx)-1), false ); + } else { + // This is LJ 6-12. + // Determine what A and B parameters would be. + NonbondType lj0 = type1.LJ().Combine_LB( type2.LJ() ); + + NonbondType lj1 = NB0.NBarray( idx ); + // Compare them + if (lj0 != lj1) { + nModifiedOffDiagonal++; + if (debug_ > 0) { + double deltaA = fabs(lj0.A() - lj1.A()); + double deltaB = fabs(lj0.B() - lj1.B()); + mprintf("DEBUG: Potential off-diagonal LJ: %s %s expect A=%g B=%g, actual A=%g B=%g\n", + *name1, *name2, lj0.A(), lj0.B(), lj1.A(), lj1.B()); + mprintf("DEBUG:\tdeltaA= %g deltaB= %g\n", deltaA, deltaB); + double pe_a = (fabs(lj0.A() - lj1.A()) / lj0.A()); + double pe_b = (fabs(lj0.B() - lj1.B()) / lj0.B()); + mprintf("DEBUG:\tPEA= %g PEB= %g\n", pe_a, pe_b); + } + } + LJ612out.AddParm( types, lj1, false ); + if (hasLJ14) { + // This is LJ 6-12 1-4. + // Determine what A and B parameters would be. + lj0 = type1.LJ14().Combine_LB( type2.LJ14() ); + + lj1 = NB0.LJ14( idx ); + // Compare them + if (lj0 != lj1) { + nModified14OffDiagonal++; + if (debug_ > 0) { + double deltaA = fabs(lj0.A() - lj1.A()); + double deltaB = fabs(lj0.B() - lj1.B()); + mprintf("DEBUG: Potential off-diagonal LJ 1-4: %s %s expect A=%g B=%g, actual A=%g B=%g\n", + *name1, *name2, lj0.A(), lj0.B(), lj1.A(), lj1.B()); + mprintf("DEBUG:\tdeltaA= %g deltaB= %g\n", deltaA, deltaB); + double pe_a = (fabs(lj0.A() - lj1.A()) / lj0.A()); + double pe_b = (fabs(lj0.B() - lj1.B()) / lj0.B()); + mprintf("DEBUG:\tPEA= %g PEB= %g\n", pe_a, pe_b); + } + } + LJ14out.AddParm( types, lj1, false ); + } // END hasLJ14 + if (hasLJC) { + // This is LJC + double ljc1 = NB0.LJC_Array( idx ); + LJCout.AddParm( types, ljc1, false ); + } + } + } // END inner loop over atom types + } // END outer loop over atom types + if (nModifiedOffDiagonal > 0) + mprintf("Warning: %u modified off-diagonal LJ terms present.\n", nModifiedOffDiagonal); + if (nModified14OffDiagonal > 0) + mprintf("Warning: %u modified off-diagonal LJ 1-4 terms present.\n", nModified14OffDiagonal); + } else { + //if (!atoms.empty()) mprintf("DEBUG: Topology does not have nonbond parameters.\n"); + // No nonbonded parameters. Just save mass/polarizability. + for (std::vector<Atom>::const_iterator atm = atoms.begin(); atm != atoms.end(); ++atm) + if (atm->HasType() > 0) + atomTypesOut.AddParm( TypeNameHolder(atm->Type()), AtomType(atm->Mass(), atm->Polar()), true ); + } +} + +/** \return ParameterSet for this Topology. */ +ParameterSet GetParams::GetParameters(Topology const& topIn) const { + ParameterSet Params; + // Atom LJ types and other nonbonded parameters. + GetLJAtomTypes( Params.AT(), Params.NB(), Params.NB14(), Params.LJC(), Params.HB(), + topIn.Atoms(), topIn.Nonbond() ); + // Bond parameters. + GetBondParams( Params.BP(), topIn.Atoms(), topIn.Bonds(), topIn.BondParm() ); + GetBondParams( Params.BP(), topIn.Atoms(), topIn.BondsH(), topIn.BondParm() ); + // Angle parameters. + GetAngleParams( Params.AP(), topIn.Atoms(), topIn.Angles(), topIn.AngleParm() ); + GetAngleParams( Params.AP(), topIn.Atoms(), topIn.AnglesH(), topIn.AngleParm() ); + // Dihedral parameters. + GetDihedralParams( Params.DP(), Params.IP(), topIn.Atoms(), topIn.Dihedrals(), topIn.DihedralParm() ); + GetDihedralParams( Params.DP(), Params.IP(), topIn.Atoms(), topIn.DihedralsH(), topIn.DihedralParm() ); + // CHARMM parameters + if (!topIn.UB().empty()) { + // UB parameters + GetBondParams(Params.UB(), topIn.Atoms(), topIn.UB(), topIn.UBparm() ); + } + if (!topIn.Impropers().empty()) { + // Impropers + GetImproperParams( Params.IP(), topIn.Atoms(), topIn.Impropers(), topIn.ImproperParm() ); + } + // CMAPs + if (GetCmapParams( Params.CMAP(), topIn.Cmap(), topIn.CmapGrid(), topIn.Atoms(), topIn.Residues() )) { + mprinterr("Error: Could not get CMAP parameters.\n"); // TODO fatal? + } + + return Params; +} +/** \return Total number of unique atom types. */ +unsigned int GetParams::NuniqueAtomTypes(Topology const& topIn) const { + ParmHolder<int> currentAtomTypes; + for (Topology::atom_iterator atm = topIn.begin(); atm != topIn.end(); ++atm) + { + if (atm->HasType()) { + TypeNameHolder atype( atm->Type() ); + // Find in currentAtomTypes. + bool found; + currentAtomTypes.FindParam( atype, found ); + if (!found) { + currentAtomTypes.AddParm( atype, atm->TypeIndex(), false ); + } + } + } + if (debug_ > 0) { + mprintf("DEBUG: Unique atom types in %s\n", topIn.c_str()); + for (ParmHolder<int>::const_iterator it = currentAtomTypes.begin(); + it != currentAtomTypes.end(); ++it) + mprintf("\t\t%s %i\n", *(it->first[0]), it->second); + } + return currentAtomTypes.size(); +} diff --git a/src/Parm/GetParams.h b/src/Parm/GetParams.h new file mode 100644 index 0000000000..bef82e5941 --- /dev/null +++ b/src/Parm/GetParams.h @@ -0,0 +1,64 @@ +#ifndef INC_PARM_GETPARAMS_H +#define INC_PARM_GETPARAMS_H +#include <vector> +class AngleArray; +class AngleParmArray; +class AngleParmType; +class Atom; +class AtomType; +class BondArray; +class BondParmArray; +class BondParmType; +class CmapArray; +class CmapGridArray; +class CmapParmHolder; +class DihedralArray; +class DihedralParmArray; +class HB_ParmType; +class NonbondParmType; +class NonbondType; +class Residue; +class Topology; +namespace Cpptraj { +namespace Parm { +template<typename Type> class ParmHolder; +class DihedralParmHolder; +class ImproperParmHolder; +class ParameterSet; +/// Used to get parameters from a Topology +class GetParams { + public: + /// CONSTRUCTOR + GetParams(); + /// Set debug level + void SetDebug(int); + /// \return ParameterSet containing parameters from given topology. + ParameterSet GetParameters(Topology const&) const; + /// Get nonbonded parameters (used in AppendTop) + void GetLJAtomTypes(ParmHolder<AtomType>&, + ParmHolder<NonbondType>&, + ParmHolder<NonbondType>&, + ParmHolder<double>&, + ParmHolder<HB_ParmType>&, + std::vector<Atom> const&, + NonbondParmType const&) const; + /// \return number of unique atom types + unsigned int NuniqueAtomTypes(Topology const&) const; + private: + static inline void GetBondParams(ParmHolder<BondParmType>&, std::vector<Atom> const&, + BondArray const&, BondParmArray const&); + static inline void GetAngleParams(ParmHolder<AngleParmType>&, std::vector<Atom> const& atoms, + AngleArray const&, AngleParmArray const&); + static inline void GetImproperParams(ImproperParmHolder&, std::vector<Atom> const&, + DihedralArray const&, DihedralParmArray const&); + static inline void GetDihedralParams(DihedralParmHolder&, ImproperParmHolder&, + std::vector<Atom> const&, + DihedralArray const&, DihedralParmArray const&); + inline int GetCmapParams(CmapParmHolder&, CmapArray const&, CmapGridArray const&, + std::vector<Atom> const&, std::vector<Residue> const&) const; + + int debug_; +}; +} +} +#endif diff --git a/src/Parm/ImproperParmHolder.h b/src/Parm/ImproperParmHolder.h new file mode 100644 index 0000000000..8464033074 --- /dev/null +++ b/src/Parm/ImproperParmHolder.h @@ -0,0 +1,207 @@ +#ifndef INC_PARM_IMPROPERPARMHOLDER_H +#define INC_PARM_IMPROPERPARMHOLDER_H +#include "DihedralParmHolder.h" +//#incl ude "CpptrajStdio.h" // DEBUG +namespace Cpptraj { +namespace Parm { +// ----------------------------------------------------------------------------- +/// Specialized class for associating atom types with improper parameters. +/** Impropers are a little tricky in that by convention the third atom is + * the central atom, and all other atoms can be in any order. + * The Amber convention is usually (but not always) to have the non-central + * improper atom types sorted alphabetically, with wildcards given + * precedence, but this is not always the case and does not always work. + * For example, using straight up backwards/forwards matching, the wildcard + * type X-X-CW-H4 will not match the given alphabetized type C*-H4-CW-NA. + * All combinations of A1, A2, and A4 should be checked. + */ +class ImproperParmHolder : private DihedralParmHolder { + /// Function for matching wildcards (WildCard Match) + static inline bool wcm(NameType const& t0, NameType const& t1, NameType const& wc) { + return (t0 == wc || t0 == t1); + } + /// Function for swapping integers + static inline void swp(int& i1, int& i2) { int tmp = i1; i1 = i2; i2 = tmp; } + public: + /// Denote returned parameter atom type order + enum OrderType { O_013, + O_031, + O_103, + O_130, + O_301, + O_310 }; + ImproperParmHolder() : require_exact_match_(false) {} + /// \return Number of improper parameter sets + size_t size() const { return DihedralParmHolder::size(); } + /// \return True if no parameters + bool empty() const { return DihedralParmHolder::empty(); } + /// \return Last parameter to be overwritten from AddParm() + DihedralParmArray const& PreviousParm() const { return DihedralParmHolder::PreviousParm(); } + /// \return Wildcard + NameType const& Wildcard() const { return wc_; } + /// \return True if an exact match is required to find a parameter + bool RequireExactMatch() const { return require_exact_match_; } + /// const iterator + typedef typename DihedralParmHolder::const_iterator const_iterator; + /// const iterator to beginning of parameters + const_iterator begin() const { return DihedralParmHolder::begin(); } + /// const iterator to end of parameters + const_iterator end() const { return DihedralParmHolder::end(); } + /// Set Wildcard char + void SetWildcard(char wc) { DihedralParmHolder::SetWildcard(wc); } + /// Set Wildcard + void SetWildcard(NameType const& wc) { wc_ = wc; } + /// Indicate whether exact type matches are required to find parameters + void SetRequireExactMatch(bool b) { require_exact_match_ = b; } +/* + /// Add (or update) a single improper parameter for given atom types. + RetType AddParm(TypeNameHolder const& types, DihedralParmType const& dp, bool allowUpdate) { + return DihedralParmHolder::AddParm( types, dp, allowUpdate ); + } +*/ + /// Add array of improper parameters, one for each multiplicity. + RetType AddParm(TypeNameHolder const& types, DihedralParmArray const& dpa, bool allowUpdate) { + return DihedralParmHolder::AddParm( types, dpa, allowUpdate ); + } + private: + /// Remap the given improper according to the desired order, correct for wildcards in given types + void ReorderImproper(DihedralType& imp, OrderType order, TypeNameHolder const& types) const { + switch (order) { + case O_013 : break; + case O_031 : swp( imp.ChangeA2(), imp.ChangeA4() ); break; + case O_103 : swp( imp.ChangeA1(), imp.ChangeA2() ); break; + case O_130 : swp( imp.ChangeA1(), imp.ChangeA4() ); swp( imp.ChangeA1(), imp.ChangeA2() ); break; + case O_301 : swp( imp.ChangeA2(), imp.ChangeA4() ); swp( imp.ChangeA1(), imp.ChangeA2() ); break; + case O_310 : swp( imp.ChangeA1(), imp.ChangeA4() ); break; + } + if (wc_.len() > 0 && types.Size() > 0) { + // If there are wildcards, need to order matching types by atom index. + // General order of imp should now match types due to above swaps. + bool wc1 = (types[0] == wc_); + bool wc2 = (types[1] == wc_); + bool wc4 = (types[3] == wc_); + //mprintf("DEBUG: %s WC0=%i %s WC1=%i %s WC3=%i\n", *types[0], (int)wc1, *types[1], (int)wc2, *types[3], (int)wc4); + if (wc4 && wc2 && wc1) { + // All three wildcard - should be rare but need to check. + if (imp.A1() > imp.A2()) swp(imp.ChangeA1(), imp.ChangeA2()); + if (imp.A2() > imp.A4()) swp(imp.ChangeA2(), imp.ChangeA4()); + if (imp.A1() > imp.A2()) swp(imp.ChangeA1(), imp.ChangeA2()); + if (imp.A2() > imp.A4()) swp(imp.ChangeA2(), imp.ChangeA4()); + } else if (wc1 && wc2) { + if (imp.A1() > imp.A2()) swp(imp.ChangeA1(), imp.ChangeA2()); + } else if (wc1 && wc4) { + if (imp.A1() > imp.A4()) swp(imp.ChangeA1(), imp.ChangeA4()); + } else if (wc2 && wc4) { + if (imp.A2() > imp.A4()) swp(imp.ChangeA2(), imp.ChangeA4()); + } + } + } + public: + /// Remap the given improper according to the desired order. Used by unit test to check that reordering works. + void ReorderImproper(DihedralType& imp, OrderType order) const { + ReorderImproper(imp, order, TypeNameHolder()); + } + /// Get improper parameters matching given atom types. If found, improper will be reordered to match parameter order. + const_iterator GetParam(TypeNameHolder const& types, DihedralType& imp, bool& reordered) const { + //mprintf("DEBUG: FindParam wc=%s Inco=%s-%s-%s-%s\n",*wc_, *(types[0]), *(types[1]), *(types[2]), *(types[3])); + reordered = false; + OrderType lastOrder_ = O_013; + const_iterator it = begin(); + // If we require an exact match, look for that first. + if (require_exact_match_) { + for (; it != end(); ++it) { + TypeNameHolder const& myTypes = it->first; + if (myTypes[2] == types[2] && myTypes[0] == types[0] && + myTypes[1] == types[1] && myTypes[3] == types[3]) + { + break; + } + } + } else { + // Inexact match. First, no wildcard + for (; it != end(); ++it) { + TypeNameHolder const& myTypes = it->first; + // Central (third) type must match + if (myTypes[2] == types[2]) { + //mprintf("DEBUG: FindParam (improper) central atom match %s", *(types[2])); + //mprintf(" This=%s-%s-%s-%s", *(myTypes[0]), *(myTypes[1]), *(myTypes[2]), *(myTypes[3])); + //mprintf(" Inco=%s-%s-%s-%s\n", *(types[0]), *(types[1]), *(types[2]), *(types[3])); + // Try all permutations + if ( myTypes[0] == types[0] && myTypes[1] == types[1] && myTypes[3] == types[3]) { // 0 1 2 3 + lastOrder_ = O_013; break; + } else if (myTypes[0] == types[0] && myTypes[1] == types[3] && myTypes[3] == types[1]) { // 0 3 2 1 + lastOrder_ = O_031; break; + } else if (myTypes[0] == types[1] && myTypes[1] == types[0] && myTypes[3] == types[3]) { // 1 0 2 3 + lastOrder_ = O_103; break; + } else if (myTypes[0] == types[1] && myTypes[1] == types[3] && myTypes[3] == types[0]) { // 1 3 2 0 + lastOrder_ = O_130; break; + } else if (myTypes[0] == types[3] && myTypes[1] == types[0] && myTypes[3] == types[1]) { // 3 0 2 1 + lastOrder_ = O_301; break; + } else if (myTypes[0] == types[3] && myTypes[1] == types[1] && myTypes[3] == types[0]) { // 3 1 2 0 + lastOrder_ = O_310; break; + } + } + } // END loop over parameters + // Second, do wildcard matches if wildcard is set. + if (it == end() && wc_.len() > 0) { + it = begin(); + for (; it != end(); ++it) { + TypeNameHolder const& myTypes = it->first; + // Central (third) type must match + if (wcm(myTypes[2], types[2], wc_)) { + // Try all permutations + if ( wcm(myTypes[0], types[0], wc_) && wcm(myTypes[1], types[1], wc_) && wcm(myTypes[3], types[3], wc_)) { // 0 1 2 3 + lastOrder_ = O_013; break; + } else if (wcm(myTypes[0], types[0], wc_) && wcm(myTypes[1], types[3], wc_) && wcm(myTypes[3], types[1], wc_)) { // 0 3 2 1 + lastOrder_ = O_031; break; + } else if (wcm(myTypes[0], types[1], wc_) && wcm(myTypes[1], types[0], wc_) && wcm(myTypes[3], types[3], wc_)) { // 1 0 2 3 + lastOrder_ = O_103; break; + } else if (wcm(myTypes[0], types[1], wc_) && wcm(myTypes[1], types[3], wc_) && wcm(myTypes[3], types[0], wc_)) { // 1 3 2 0 + lastOrder_ = O_130; break; + } else if (wcm(myTypes[0], types[3], wc_) && wcm(myTypes[1], types[0], wc_) && wcm(myTypes[3], types[1], wc_)) { // 3 0 2 1 + lastOrder_ = O_301; break; + } else if (wcm(myTypes[0], types[3], wc_) && wcm(myTypes[1], types[1], wc_) && wcm(myTypes[3], types[0], wc_)) { // 3 1 2 0 + lastOrder_ = O_310; break; + } + } + } // END loop over parameters + } // END wildcard matches + } // END require exact match + if (it != end()) { + // We have found a parameter. Do any reordering. + if (lastOrder_ != O_013) reordered = true; + ReorderImproper( imp, lastOrder_, it->first ); + } + return it; + } // END GetParam() + /// Get improper parameters matching given atom types. If found, improper will be reordered to match parameter order. + const_iterator GetParam(TypeNameHolder const& types) const { + DihedralType imp; + bool reordered = false; + return GetParam( types, imp, reordered); + } + /// \return Array of improper parameters matching given atom types. Improper will be reordered to match parameter order. + DihedralParmArray FindParam(TypeNameHolder const& types, bool& found, DihedralType& imp, bool& reordered) const { + const_iterator it = GetParam( types, imp, reordered ); + if (it == end()) { + found = false; + return DihedralParmArray(); + } else { + found = true; + return it->second; + } + } // END FindParam() + /// \return Dihedral parm array corresponding to types. Use by unit test. + DihedralParmArray FindParam(TypeNameHolder const& types, bool& found) const { + DihedralType blank; + bool reordered; + return FindParam(types, found, blank, reordered); + } + /// \return size in memory in bytes + size_t DataSize() const { return DihedralParmHolder::DataSize(); } + private: + bool require_exact_match_; ///< If true, types must match in exact order when finding parameters +}; +} // END namespace Parm +} // END namespace Cpptraj +#endif diff --git a/src/Parm/LJ1264_Params.cpp b/src/Parm/LJ1264_Params.cpp new file mode 100644 index 0000000000..4726a0a49d --- /dev/null +++ b/src/Parm/LJ1264_Params.cpp @@ -0,0 +1,740 @@ +#include "LJ1264_Params.h" +#include "../ArgList.h" +#include "../BufferedLine.h" +#include "../Constants.h" // SMALL +#include "../CpptrajStdio.h" +#include "../StringRoutines.h" // integerToString +#include "../Topology.h" +#include <cstdlib> // atof +#include <cctype> // tolower +#include <cmath> + +using namespace Cpptraj::Parm; + +const double LJ1264_Params::DEFAULT_WATER_POL_ = 1.444; ///< Polarizability of water + +/** CONSTRUCTOR */ +LJ1264_Params::LJ1264_Params() : + waterModel_(UNKNOWN_WATER_MODEL), + tunfactor_(1.0), + WATER_POL_(DEFAULT_WATER_POL_), + debug_(0) +{} + +// ----- WATER MODEL LJC PARAMETERS GO HERE ------------------------------------ +void LJ1264_Params::set_tip3p_params() { + c4params_.insert( NameMapPair("Li1", 27.0) ); + c4params_.insert( NameMapPair("Na1", 0.0) ); + c4params_.insert( NameMapPair("K1", 8.0) ); + c4params_.insert( NameMapPair("Rb1", 0.0) ); + c4params_.insert( NameMapPair("Cs1", 2.0) ); + c4params_.insert( NameMapPair("Tl1", 50.0) ); + c4params_.insert( NameMapPair("Cu1", 7.0) ); + c4params_.insert( NameMapPair("Ag1", 83.0) ); + c4params_.insert( NameMapPair("F-1", -27.0) ); + c4params_.insert( NameMapPair("Cl-1", -38.0) ); + c4params_.insert( NameMapPair("Br-1", -39.0) ); + c4params_.insert( NameMapPair("I-1", -45.0) ); + c4params_.insert( NameMapPair("Be2", 186.5) ); + c4params_.insert( NameMapPair("Cu2", 290.9) ); + c4params_.insert( NameMapPair("Ni2", 212.8) ); + c4params_.insert( NameMapPair("Zn2", 231.6) ); + c4params_.insert( NameMapPair("Co2", 209.7) ); + c4params_.insert( NameMapPair("Cr2", 136.8) ); + c4params_.insert( NameMapPair("Fe2", 163.0) ); + c4params_.insert( NameMapPair("Mg2", 132.9) ); + c4params_.insert( NameMapPair("V2", 195.7) ); + c4params_.insert( NameMapPair("Mn2", 146.1) ); + c4params_.insert( NameMapPair("Hg2", 288.8) ); + c4params_.insert( NameMapPair("Cd2", 185.6) ); + c4params_.insert( NameMapPair("Ca2", 87.3) ); + c4params_.insert( NameMapPair("Sn2", 187.9) ); + c4params_.insert( NameMapPair("Sr2", 82.7) ); + c4params_.insert( NameMapPair("Ba2", 71.9) ); + c4params_.insert( NameMapPair("Al3", 399.0) ); + c4params_.insert( NameMapPair("Fe3", 428.0) ); + c4params_.insert( NameMapPair("Cr3", 258.0) ); + c4params_.insert( NameMapPair("In3", 347.0) ); + c4params_.insert( NameMapPair("Tl3", 456.0) ); + c4params_.insert( NameMapPair("Y3", 216.0) ); + c4params_.insert( NameMapPair("La3", 152.0) ); + c4params_.insert( NameMapPair("Ce3", 230.0) ); + c4params_.insert( NameMapPair("Pr3", 264.0) ); + c4params_.insert( NameMapPair("Nd3", 213.0) ); + c4params_.insert( NameMapPair("Sm3", 230.0) ); + c4params_.insert( NameMapPair("Eu3", 259.0) ); + c4params_.insert( NameMapPair("Gd3", 198.0) ); + c4params_.insert( NameMapPair("Tb3", 235.0) ); + c4params_.insert( NameMapPair("Dy3", 207.0) ); + c4params_.insert( NameMapPair("Er3", 251.0) ); + c4params_.insert( NameMapPair("Tm3", 282.0) ); + c4params_.insert( NameMapPair("Lu3", 249.0) ); + c4params_.insert( NameMapPair("Hf4", 827.0) ); + c4params_.insert( NameMapPair("Zr4", 761.0) ); + c4params_.insert( NameMapPair("Ce4", 706.0) ); + c4params_.insert( NameMapPair("U4", 1034.0) ); + c4params_.insert( NameMapPair("Pu4", 828.0) ); + c4params_.insert( NameMapPair("Th4", 512.0) ); +} + +void LJ1264_Params::set_tip4pew_params() { + c4params_.insert( NameMapPair("Li1", 36.0) ); + c4params_.insert( NameMapPair("Na1", 9.0) ); + c4params_.insert( NameMapPair("K1", 24.0) ); + c4params_.insert( NameMapPair("Rb1", 13.0) ); + c4params_.insert( NameMapPair("Cs1", 16.0) ); + c4params_.insert( NameMapPair("Tl1", 65.0) ); + c4params_.insert( NameMapPair("Cu1", 21.0) ); + c4params_.insert( NameMapPair("Ag1", 94.0) ); + c4params_.insert( NameMapPair("F-1", -67.0) ); + c4params_.insert( NameMapPair("Cl-1", -66.0) ); + c4params_.insert( NameMapPair("Br-1", -68.0) ); + c4params_.insert( NameMapPair("I-1", -62.0) ); + c4params_.insert( NameMapPair("Be2", 228.5) ); + c4params_.insert( NameMapPair("Cu2", 339.2) ); + c4params_.insert( NameMapPair("Ni2", 259.2) ); + c4params_.insert( NameMapPair("Zn2", 272.3) ); + c4params_.insert( NameMapPair("Co2", 252.8) ); + c4params_.insert( NameMapPair("Cr2", 177.4) ); + c4params_.insert( NameMapPair("Fe2", 201.1) ); + c4params_.insert( NameMapPair("Mg2", 180.5) ); + c4params_.insert( NameMapPair("V2", 244.8) ); + c4params_.insert( NameMapPair("Mn2", 192.3) ); + c4params_.insert( NameMapPair("Hg2", 335.2) ); + c4params_.insert( NameMapPair("Cd2", 233.7) ); + c4params_.insert( NameMapPair("Ca2", 128.0) ); + c4params_.insert( NameMapPair("Sn2", 231.4) ); + c4params_.insert( NameMapPair("Sr2", 118.9) ); + c4params_.insert( NameMapPair("Ba2", 112.5) ); + c4params_.insert( NameMapPair("Al3", 488.0) ); + c4params_.insert( NameMapPair("Fe3", 519.0) ); + c4params_.insert( NameMapPair("Cr3", 322.0) ); + c4params_.insert( NameMapPair("In3", 425.0) ); + c4params_.insert( NameMapPair("Tl3", 535.0) ); + c4params_.insert( NameMapPair("Y3", 294.0) ); + c4params_.insert( NameMapPair("La3", 243.0) ); + c4params_.insert( NameMapPair("Ce3", 315.0) ); + c4params_.insert( NameMapPair("Pr3", 348.0) ); + c4params_.insert( NameMapPair("Nd3", 297.0) ); + c4params_.insert( NameMapPair("Sm3", 314.0) ); + c4params_.insert( NameMapPair("Eu3", 345.0) ); + c4params_.insert( NameMapPair("Gd3", 280.0) ); + c4params_.insert( NameMapPair("Tb3", 313.0) ); + c4params_.insert( NameMapPair("Dy3", 298.0) ); + c4params_.insert( NameMapPair("Er3", 328.0) ); + c4params_.insert( NameMapPair("Tm3", 356.0) ); + c4params_.insert( NameMapPair("Lu3", 331.0) ); + c4params_.insert( NameMapPair("Hf4", 956.0) ); + c4params_.insert( NameMapPair("Zr4", 895.0) ); + c4params_.insert( NameMapPair("Ce4", 835.0) ); + c4params_.insert( NameMapPair("U4", 1183.0) ); + c4params_.insert( NameMapPair("Pu4", 972.0) ); + c4params_.insert( NameMapPair("Th4", 625.0) ); +} + +void LJ1264_Params::set_spce_params() { + c4params_.insert( NameMapPair("Li1", 33.0) ); + c4params_.insert( NameMapPair("Na1", 6.0) ); + c4params_.insert( NameMapPair("K1", 19.0) ); + c4params_.insert( NameMapPair("Rb1", 7.0) ); + c4params_.insert( NameMapPair("Cs1", 12.0) ); + c4params_.insert( NameMapPair("Tl1", 61.0) ); + c4params_.insert( NameMapPair("Cu1", 9.0) ); + c4params_.insert( NameMapPair("Ag1", 92.0) ); + c4params_.insert( NameMapPair("F-1", -53.0) ); + c4params_.insert( NameMapPair("Cl-1", -55.0) ); + c4params_.insert( NameMapPair("Br-1", -51.0) ); + c4params_.insert( NameMapPair("I-1", -51.0) ); + c4params_.insert( NameMapPair("Be2", 188.1) ); + c4params_.insert( NameMapPair("Cu2", 304.4) ); + c4params_.insert( NameMapPair("Ni2", 205.2) ); + c4params_.insert( NameMapPair("Zn2", 231.2) ); + c4params_.insert( NameMapPair("Co2", 209.2) ); + c4params_.insert( NameMapPair("Cr2", 131.2) ); + c4params_.insert( NameMapPair("Fe2", 155.4) ); + c4params_.insert( NameMapPair("Mg2", 122.2) ); + c4params_.insert( NameMapPair("V2", 206.6) ); + c4params_.insert( NameMapPair("Mn2", 154.9) ); + c4params_.insert( NameMapPair("Hg2", 300.2) ); + c4params_.insert( NameMapPair("Cd2", 198.8) ); + c4params_.insert( NameMapPair("Ca2", 89.0) ); + c4params_.insert( NameMapPair("Sn2", 201.1) ); + c4params_.insert( NameMapPair("Sr2", 96.3) ); + c4params_.insert( NameMapPair("Ba2", 85.8) ); + c4params_.insert( NameMapPair("Al3", 406.0) ); + c4params_.insert( NameMapPair("Fe3", 442.0) ); + c4params_.insert( NameMapPair("Cr3", 254.0) ); + c4params_.insert( NameMapPair("In3", 349.0) ); + c4params_.insert( NameMapPair("Tl3", 455.0) ); + c4params_.insert( NameMapPair("Y3", 209.0) ); + c4params_.insert( NameMapPair("La3", 165.0) ); + c4params_.insert( NameMapPair("Ce3", 242.0) ); + c4params_.insert( NameMapPair("Pr3", 272.0) ); + c4params_.insert( NameMapPair("Nd3", 235.0) ); + c4params_.insert( NameMapPair("Sm3", 224.0) ); + c4params_.insert( NameMapPair("Eu3", 273.0) ); + c4params_.insert( NameMapPair("Gd3", 186.0) ); + c4params_.insert( NameMapPair("Tb3", 227.0) ); + c4params_.insert( NameMapPair("Dy3", 206.0) ); + c4params_.insert( NameMapPair("Er3", 247.0) ); + c4params_.insert( NameMapPair("Tm3", 262.0) ); + c4params_.insert( NameMapPair("Lu3", 247.0) ); + c4params_.insert( NameMapPair("Hf4", 810.0) ); + c4params_.insert( NameMapPair("Zr4", 760.0) ); + c4params_.insert( NameMapPair("Ce4", 694.0) ); + c4params_.insert( NameMapPair("U4", 1043.0) ); + c4params_.insert( NameMapPair("Pu4", 828.0) ); + c4params_.insert( NameMapPair("Th4", 513.0) ); +} + +void LJ1264_Params::set_opc3_params() { + c4params_.insert( NameMapPair("Li1", 29.0) ); + c4params_.insert( NameMapPair("Na1", 2.0) ); + c4params_.insert( NameMapPair("K1", 16.0) ); + c4params_.insert( NameMapPair("Rb1", 8.0) ); + c4params_.insert( NameMapPair("Cs1", 6.0) ); + c4params_.insert( NameMapPair("Tl1", 63.0) ); + c4params_.insert( NameMapPair("Cu1", 12.0) ); + c4params_.insert( NameMapPair("Ag1", 83.0) ); + c4params_.insert( NameMapPair("F-1", -40.0) ); + c4params_.insert( NameMapPair("Cl-1", -47.0) ); + c4params_.insert( NameMapPair("Br-1", -43.0) ); + c4params_.insert( NameMapPair("I-1", -45.0) ); + c4params_.insert( NameMapPair("Be2", 186.0) ); + c4params_.insert( NameMapPair("Cu2", 269.0) ); + c4params_.insert( NameMapPair("Ni2", 207.0) ); + c4params_.insert( NameMapPair("Zn2", 199.0) ); + c4params_.insert( NameMapPair("Co2", 182.0) ); + c4params_.insert( NameMapPair("Cr2", 109.0) ); + c4params_.insert( NameMapPair("Fe2", 131.0) ); + c4params_.insert( NameMapPair("Mg2", 117.0) ); + c4params_.insert( NameMapPair("V2", 201.0) ); + c4params_.insert( NameMapPair("Mn2", 137.0) ); + c4params_.insert( NameMapPair("Hg2", 276.0) ); + c4params_.insert( NameMapPair("Cd2", 200.0) ); + c4params_.insert( NameMapPair("Ca2", 76.0) ); + c4params_.insert( NameMapPair("Sn2", 188.0) ); + c4params_.insert( NameMapPair("Sr2", 85.0) ); + c4params_.insert( NameMapPair("Ba2", 77.0) ); + c4params_.insert( NameMapPair("Al3", 363.0) ); + c4params_.insert( NameMapPair("Fe3", 429.0) ); + c4params_.insert( NameMapPair("Cr3", 209.0) ); + c4params_.insert( NameMapPair("In3", 330.0) ); + c4params_.insert( NameMapPair("Tl3", 437.0) ); + c4params_.insert( NameMapPair("Y3", 192.0) ); + c4params_.insert( NameMapPair("La3", 131.0) ); + c4params_.insert( NameMapPair("Ce3", 215.0) ); + c4params_.insert( NameMapPair("Pr3", 255.0) ); + c4params_.insert( NameMapPair("Nd3", 184.0) ); + c4params_.insert( NameMapPair("Sm3", 188.0) ); + c4params_.insert( NameMapPair("Eu3", 233.0) ); + c4params_.insert( NameMapPair("Gd3", 164.0) ); + c4params_.insert( NameMapPair("Tb3", 199.0) ); + c4params_.insert( NameMapPair("Dy3", 183.0) ); + c4params_.insert( NameMapPair("Er3", 228.0) ); + c4params_.insert( NameMapPair("Tm3", 246.0) ); + c4params_.insert( NameMapPair("Lu3", 222.0) ); + c4params_.insert( NameMapPair("Hf4", 718.0) ); + c4params_.insert( NameMapPair("Zr4", 707.0) ); + c4params_.insert( NameMapPair("Ce4", 653.0) ); + c4params_.insert( NameMapPair("U4", 980.0) ); + c4params_.insert( NameMapPair("Pu4", 817.0) ); + c4params_.insert( NameMapPair("Th4", 452.0) ); +} + +void LJ1264_Params::set_opc_params() { + c4params_.insert( NameMapPair("Li1", 29.0) ); + c4params_.insert( NameMapPair("Na1", 0.0) ); + c4params_.insert( NameMapPair("K1", 20.0) ); + c4params_.insert( NameMapPair("Rb1", 6.0) ); + c4params_.insert( NameMapPair("Cs1", 13.0) ); + c4params_.insert( NameMapPair("Tl1", 60.0) ); + c4params_.insert( NameMapPair("Cu1", 16.0) ); + c4params_.insert( NameMapPair("Ag1", 83.0) ); + c4params_.insert( NameMapPair("F-1", -67.0) ); + c4params_.insert( NameMapPair("Cl-1", -69.0) ); + c4params_.insert( NameMapPair("Br-1", -60.0) ); + c4params_.insert( NameMapPair("I-1", -60.0) ); + c4params_.insert( NameMapPair("Be2", 214.0) ); + c4params_.insert( NameMapPair("Cu2", 291.0) ); + c4params_.insert( NameMapPair("Ni2", 212.0) ); + c4params_.insert( NameMapPair("Zn2", 225.0) ); + c4params_.insert( NameMapPair("Co2", 204.0) ); + c4params_.insert( NameMapPair("Cr2", 132.0) ); + c4params_.insert( NameMapPair("Fe2", 154.0) ); + c4params_.insert( NameMapPair("Mg2", 127.0) ); + c4params_.insert( NameMapPair("V2", 239.0) ); + c4params_.insert( NameMapPair("Mn2", 175.0) ); + c4params_.insert( NameMapPair("Hg2", 289.0) ); + c4params_.insert( NameMapPair("Cd2", 219.0) ); + c4params_.insert( NameMapPair("Ca2", 86.0) ); + c4params_.insert( NameMapPair("Sn2", 199.0) ); + c4params_.insert( NameMapPair("Sr2", 87.0) ); + c4params_.insert( NameMapPair("Ba2", 78.0) ); + c4params_.insert( NameMapPair("Al3", 399.0) ); + c4params_.insert( NameMapPair("Fe3", 531.0) ); + c4params_.insert( NameMapPair("Cr3", 243.0) ); + c4params_.insert( NameMapPair("In3", 413.0) ); + c4params_.insert( NameMapPair("Tl3", 479.0) ); + c4params_.insert( NameMapPair("Y3", 260.0) ); + c4params_.insert( NameMapPair("La3", 165.0) ); + c4params_.insert( NameMapPair("Ce3", 289.0) ); + c4params_.insert( NameMapPair("Pr3", 311.0) ); + c4params_.insert( NameMapPair("Nd3", 243.0) ); + c4params_.insert( NameMapPair("Sm3", 236.0) ); + c4params_.insert( NameMapPair("Eu3", 279.0) ); + c4params_.insert( NameMapPair("Gd3", 222.0) ); + c4params_.insert( NameMapPair("Tb3", 256.0) ); + c4params_.insert( NameMapPair("Dy3", 243.0) ); + c4params_.insert( NameMapPair("Er3", 298.0) ); + c4params_.insert( NameMapPair("Tm3", 314.0) ); + c4params_.insert( NameMapPair("Lu3", 289.0) ); + c4params_.insert( NameMapPair("Hf4", 847.0) ); + c4params_.insert( NameMapPair("Zr4", 804.0) ); + c4params_.insert( NameMapPair("Ce4", 789.0) ); + c4params_.insert( NameMapPair("U4", 1123.0) ); + c4params_.insert( NameMapPair("Pu4", 941.0) ); + c4params_.insert( NameMapPair("Th4", 598.0) ); +} + +void LJ1264_Params::set_fb3_params() { + c4params_.insert( NameMapPair("Li1", 30.0) ); + c4params_.insert( NameMapPair("Na1", 2.0) ); + c4params_.insert( NameMapPair("K1", 15.0) ); + c4params_.insert( NameMapPair("Rb1", 7.0) ); + c4params_.insert( NameMapPair("Cs1", 17.0) ); + c4params_.insert( NameMapPair("Tl1", 65.0) ); + c4params_.insert( NameMapPair("Cu1", 17.0) ); + c4params_.insert( NameMapPair("Ag1", 85.0) ); + c4params_.insert( NameMapPair("F-1", -45.0) ); + c4params_.insert( NameMapPair("Cl-1", -49.0) ); + c4params_.insert( NameMapPair("Br-1", -40.0) ); + c4params_.insert( NameMapPair("I-1", -52.0) ); + c4params_.insert( NameMapPair("Be2", 193.0) ); + c4params_.insert( NameMapPair("Cu2", 279.0) ); + c4params_.insert( NameMapPair("Ni2", 223.0) ); + c4params_.insert( NameMapPair("Zn2", 217.0) ); + c4params_.insert( NameMapPair("Co2", 192.0) ); + c4params_.insert( NameMapPair("Cr2", 138.0) ); + c4params_.insert( NameMapPair("Fe2", 157.0) ); + c4params_.insert( NameMapPair("Mg2", 128.0) ); + c4params_.insert( NameMapPair("V2", 212.0) ); + c4params_.insert( NameMapPair("Mn2", 149.0) ); + c4params_.insert( NameMapPair("Hg2", 289.0) ); + c4params_.insert( NameMapPair("Cd2", 201.0) ); + c4params_.insert( NameMapPair("Ca2", 92.0) ); + c4params_.insert( NameMapPair("Sn2", 205.0) ); + c4params_.insert( NameMapPair("Sr2", 91.0) ); + c4params_.insert( NameMapPair("Ba2", 78.0) ); + c4params_.insert( NameMapPair("Al3", 387.0) ); + c4params_.insert( NameMapPair("Fe3", 446.0) ); + c4params_.insert( NameMapPair("Cr3", 232.0) ); + c4params_.insert( NameMapPair("In3", 343.0) ); + c4params_.insert( NameMapPair("Tl3", 464.0) ); + c4params_.insert( NameMapPair("Y3", 218.0) ); + c4params_.insert( NameMapPair("La3", 155.0) ); + c4params_.insert( NameMapPair("Ce3", 251.0) ); + c4params_.insert( NameMapPair("Pr3", 291.0) ); + c4params_.insert( NameMapPair("Nd3", 211.0) ); + c4params_.insert( NameMapPair("Sm3", 218.0) ); + c4params_.insert( NameMapPair("Eu3", 261.0) ); + c4params_.insert( NameMapPair("Gd3", 191.0) ); + c4params_.insert( NameMapPair("Tb3", 226.0) ); + c4params_.insert( NameMapPair("Dy3", 219.0) ); + c4params_.insert( NameMapPair("Er3", 256.0) ); + c4params_.insert( NameMapPair("Tm3", 285.0) ); + c4params_.insert( NameMapPair("Lu3", 250.0) ); + c4params_.insert( NameMapPair("Hf4", 787.0) ); + c4params_.insert( NameMapPair("Zr4", 769.0) ); + c4params_.insert( NameMapPair("Ce4", 701.0) ); + c4params_.insert( NameMapPair("U4", 1044.0) ); + c4params_.insert( NameMapPair("Pu4", 817.0) ); + c4params_.insert( NameMapPair("Th4", 507.0) ); +} + +void LJ1264_Params::set_fb4_params() { + c4params_.insert( NameMapPair("Li1", 33.0) ); + c4params_.insert( NameMapPair("Na1", 8.0) ); + c4params_.insert( NameMapPair("K1", 25.0) ); + c4params_.insert( NameMapPair("Rb1", 9.0) ); + c4params_.insert( NameMapPair("Cs1", 13.0) ); + c4params_.insert( NameMapPair("Tl1", 68.0) ); + c4params_.insert( NameMapPair("Cu1", 25.0) ); + c4params_.insert( NameMapPair("Ag1", 90.0) ); + c4params_.insert( NameMapPair("F-1", -57.0) ); + c4params_.insert( NameMapPair("Cl-1", -55.0) ); + c4params_.insert( NameMapPair("Br-1", -51.0) ); + c4params_.insert( NameMapPair("I-1", -53.0) ); + c4params_.insert( NameMapPair("Be2", 227.0) ); + c4params_.insert( NameMapPair("Cu2", 313.0) ); + c4params_.insert( NameMapPair("Ni2", 218.0) ); + c4params_.insert( NameMapPair("Zn2", 239.0) ); + c4params_.insert( NameMapPair("Co2", 206.0) ); + c4params_.insert( NameMapPair("Cr2", 159.0) ); + c4params_.insert( NameMapPair("Fe2", 187.0) ); + c4params_.insert( NameMapPair("Mg2", 133.0) ); + c4params_.insert( NameMapPair("V2", 234.0) ); + c4params_.insert( NameMapPair("Mn2", 181.0) ); + c4params_.insert( NameMapPair("Hg2", 331.0) ); + c4params_.insert( NameMapPair("Cd2", 227.0) ); + c4params_.insert( NameMapPair("Ca2", 109.0) ); + c4params_.insert( NameMapPair("Sn2", 215.0) ); + c4params_.insert( NameMapPair("Sr2", 103.0) ); + c4params_.insert( NameMapPair("Ba2", 95.0) ); + c4params_.insert( NameMapPair("Al3", 427.0) ); + c4params_.insert( NameMapPair("Fe3", 502.0) ); + c4params_.insert( NameMapPair("Cr3", 286.0) ); + c4params_.insert( NameMapPair("In3", 403.0) ); + c4params_.insert( NameMapPair("Tl3", 514.0) ); + c4params_.insert( NameMapPair("Y3", 268.0) ); + c4params_.insert( NameMapPair("La3", 211.0) ); + c4params_.insert( NameMapPair("Ce3", 294.0) ); + c4params_.insert( NameMapPair("Pr3", 326.0) ); + c4params_.insert( NameMapPair("Nd3", 256.0) ); + c4params_.insert( NameMapPair("Sm3", 257.0) ); + c4params_.insert( NameMapPair("Eu3", 302.0) ); + c4params_.insert( NameMapPair("Gd3", 238.0) ); + c4params_.insert( NameMapPair("Tb3", 270.0) ); + c4params_.insert( NameMapPair("Dy3", 253.0) ); + c4params_.insert( NameMapPair("Er3", 304.0) ); + c4params_.insert( NameMapPair("Tm3", 320.0) ); + c4params_.insert( NameMapPair("Lu3", 303.0) ); + c4params_.insert( NameMapPair("Hf4", 837.0) ); + c4params_.insert( NameMapPair("Zr4", 845.0) ); + c4params_.insert( NameMapPair("Ce4", 771.0) ); + c4params_.insert( NameMapPair("U4", 1140.0) ); + c4params_.insert( NameMapPair("Pu4", 919.0) ); + c4params_.insert( NameMapPair("Th4", 601.0) ); +} + +// ----------------------------------------------------------------------------- + +/** Set up default C4 parameters for given water model */ +void LJ1264_Params::setupForWaterModel(WaterModelType wmIn) +{ + if (wmIn == waterModel_) return; + c4params_.clear(); + waterModel_ = wmIn; + + switch (waterModel_) { + case UNKNOWN_WATER_MODEL : return; + case TIP3P : set_tip3p_params(); break; + case TIP4PEW : set_tip4pew_params(); break; + case SPCE : set_spce_params(); break; + case OPC3 : set_opc3_params(); break; + case OPC : set_opc_params(); break; + case FB3 : set_fb3_params(); break; + case FB4 : set_fb4_params(); break; + } + + mprintf("\t Using default C4 parameters for %s\n", WaterModelStr(waterModel_)); +} + +/** Read a 2 column file with format <name> <value> */ +int LJ1264_Params::read_2col_file(std::string const& infileName, NameMapType& mapIn) +{ + mapIn.clear(); + BufferedLine infile; + if (infile.OpenFileRead(infileName)) { + mprinterr("Error: Could not open '%s'\n", infileName.c_str()); + return 1; + } + const char* ptr = infile.Line(); + while (ptr != 0) { + ArgList line(ptr, " \t\"'"); + if (line.Nargs() > 0 && line[0][0] != '#') + { + if (line.Nargs() < 2) { + mprinterr("Error: Expected a file with at least 2 columns. Line %i has %i: %s\n", + infile.LineNumber(), line.Nargs(), ptr); + return 1; + } + double col2 = atof( line[1].c_str() ); + // TODO report doubles + mapIn.insert( NameMapPair(line[0], col2) ); + } + ptr = infile.Line(); + } + infile.CloseFile(); + return 0; +} + +/** Read polarizabilities. */ +int LJ1264_Params::read_pol(std::string const& polfile) +{ + mprintf("\t Reading atomic polarizabilities from '%s'\n", polfile.c_str()); + return read_2col_file(polfile, pol_); +} + +/** Read C4 params */ +int LJ1264_Params::read_c4(std::string const& c4file) +{ + mprintf("\t Reading C4 parameters from '%s'\n", c4file.c_str()); + waterModel_ = UNKNOWN_WATER_MODEL; + return read_2col_file(c4file, c4params_); +} + +/** Initialize */ +int LJ1264_Params::Init_LJ1264(std::string const& maskIn, std::string const& c4fileIn, WaterModelType wmIn, + std::string const& polfileIn, double tunfactorIn, int debugIn) +{ + mprintf("\tEnabling LJ 12-6-4 parameters.\n"); + debug_ = debugIn; + tunfactor_ = tunfactorIn; + mprintf("\t LJ 12-6-4 tuning factor: %g\n", tunfactor_); + + if (maskIn.empty()) { + mprintf("Warning: No LJ 12-6-4 mask specified; using default.\n"); + mask_.SetMaskString(":ZN"); + } else { + if (mask_.SetMaskString(maskIn)) { + mprinterr("Error: Could not set mask string '%s'\n", maskIn.c_str()); + return 1; + } + } + mprintf("\t LJ 12-6-4 mask: %s\n", mask_.MaskString()); + + if (c4fileIn.empty()) + setupForWaterModel( wmIn ); + else { + if (read_c4(c4fileIn)) return 1; + } + + // Sanity check + if (c4params_.empty()) { + mprinterr("Error: No C4 parameters loaded.\n"); + return 1; + } + + std::string polfile; + if (polfileIn.empty()) { + // First, need to determine where the Amber FF files are + const char* env = getenv("AMBERHOME"); + if (env != 0) + polfile = std::string(env) + "/dat/leap/parm/lj_1264_pol.dat"; + else { + mprinterr("Error: AMBERHOME not set. Cannot find 'lj_1264_pol.dat'.\n"); + return 1; + } + } else + polfile = polfileIn; + if (!File::Exists(polfile)) { + mprinterr("Error: Polarizability file not found: %s\n", polfile.c_str()); + return 1; + } + if (read_pol(polfile)) return 1; + + return 0; +} +/* +int LJ1264_Params::LoadNonbonds(std::string const& frcmodNameIn) const { + std::string frcmodName; + if (frcmodNameIn.empty()) { + // Determine frcmod file from the water model + // First, need to determine where the Amber FF files are + const char* env = getenv("AMBERHOME"); + if (env != 0) + frcmodName = std::string(env) + "/dat/leap/parm/frcmod."; + else { + mprinterr("Error: AMBERHOME not set. Cannot find LJ 12-6-4 frcmod files.\n"); + return 1; + } + + switch (waterModel_) { + case UNKNOWN_WATER_MODEL : + mprintf("Warning: Unknown water model; cannot determine LJ 12-6-4 frcmod file named.\n"); + return 0; + case Cpptraj::Parm::TIP3P : frcmodName.append("ions234lm_1264_tip3p"); +*/ + +/** \return Help text. */ +std::string LJ1264_Params::HelpText() { + std::string out("[lj1264mask <mask>] [tunfactor <fac>] [c4file <c4file>] [polfile <polfile>] [lj1264solvent <solvent>]"); + return out; +} + +/** Init from argument list */ +int LJ1264_Params::Init_LJ1264(ArgList& argIn, int debugIn, std::string const& solventBoxNameIn) { + std::string lj1264mask = argIn.GetStringKey("lj1264mask"); + std::string c4file = argIn.GetStringKey("c4file"); + std::string polfile = argIn.GetStringKey("polfile"); + double tunfactor = argIn.getKeyDouble("tunfactor", 1.0); + std::string solventBoxName; + if (solventBoxNameIn.empty()) + solventBoxName = argIn.GetStringKey("lj1264solvent"); + else + solventBoxName = solventBoxNameIn; + // Try to guess the water model if we are solvating + Cpptraj::Parm::WaterModelType wm = Cpptraj::Parm::UNKNOWN_WATER_MODEL; + if (!solventBoxName.empty()) { + if (solventBoxName == "TIP3PBOX") wm = Cpptraj::Parm::TIP3P; + else if (solventBoxName == "TIP4PEWBOX") wm = Cpptraj::Parm::TIP4PEW; + else if (solventBoxName == "SPCBOX") wm = Cpptraj::Parm::SPCE; + else if (solventBoxName == "OPC3BOX") wm = Cpptraj::Parm::OPC3; + else if (solventBoxName == "OPCBOX") wm = Cpptraj::Parm::OPC; + else if (solventBoxName == "FB3BOX") wm = Cpptraj::Parm::FB3; + else if (solventBoxName == "FB4BOX") wm = Cpptraj::Parm::FB4; + else + mprintf("Warning: Unable to determine solvent model for LJ 12-6-4 from solvent box name %s\n", + solventBoxName.c_str()); + } + if (wm == Cpptraj::Parm::UNKNOWN_WATER_MODEL) { + mprintf("Warning: Unable to determine water model for LJ 12-6-4. Using TIP3P.\n"); + wm = Cpptraj::Parm::TIP3P; + } + if (Init_LJ1264(lj1264mask, c4file, wm, polfile, tunfactor, debugIn)) { + mprinterr("Error: Init of LJ 12-6-4 failed.\n"); + return 1; + } + return 0; +} + +/** Parameterize */ +int LJ1264_Params::AssignLJ1264(Topology& topOut) +{ + mprintf("\tAssigning LJ 12-6-4 parameters.\n"); + // Must already have nonbond info + if (!topOut.Nonbond().HasNonbond()) { + mprinterr("Error: Topology %s does not have LJ A/B nonbond parameters; required before setting LJ 12-6-4 nonbond parameters.\n", topOut.c_str()); + return 1; + } + if (topOut.SetupIntegerMask( mask_ )) { + mprinterr("Error: Could not set up LJ 12-6-4 mask '%s'\n", mask_.MaskString()); + return 1; + } + mprintf("\t LJ 12-6-4 mask selection: "); + mask_.BriefMaskInfo(); + mprintf("\n"); + if (mask_.None()) { + mprintf("Warning: Nothing selected by LJ 12-6-4 mask '%s'\n", mask_.MaskString()); + return 0; + } + + typedef std::pair<int, double> IdxParamMapPair; + typedef std::map<int, double> IdxParamMapType; + //typedef std::pair<IdxParamMapType::iterator, bool> IdxParamMapRet; + IdxParamMapType idxC4Map; + + // For each selected atom get the type index, element, charge, C4 parameter + for (AtomMask::const_iterator at = mask_.begin(); at != mask_.end(); ++at) + { + int typeIdx = topOut[*at].TypeIndex(); + // Sanity check + if (typeIdx < 0) { + mprinterr("Error: Atom %s does not have an atom type index.\n", topOut.AtomMaskName(*at).c_str()); + return 1; + } + // Was this type index already seen? + IdxParamMapType::const_iterator ret = idxC4Map.find( typeIdx ); + if (ret != idxC4Map.end()) { + continue; // TODO check that C4 param matches? + } + // Figure out charge and element + int iCharge = (int)topOut[*at].Charge(); + std::string eltName = std::string(topOut[*at].ElementName()); + // LJ 12-6-4 convention is element name second char is lower case + if (eltName.size() > 1) eltName[1] = tolower(eltName[1]); + // Append the integer charge + std::string ename = eltName + integerToString(iCharge); + // Get the C4 parameter + NameMapType::const_iterator c4it = c4params_.find( ename ); + if (c4it == c4params_.end()) { + mprinterr("Error: Could not find a C4 parameter for atom %s, type index %i, charge %i, element %s\n", + topOut.AtomMaskName(*at).c_str(), typeIdx, iCharge, eltName.c_str()); + return 1; + } + // Save the type index/C4 param pair + idxC4Map.insert( IdxParamMapPair(typeIdx, c4it->second) ); + + if (debug_ > 0) + mprintf("DEBUG: %s : idx=%i chg=%i ename=%s C4=%g\n", topOut.AtomMaskName(*at).c_str(), + typeIdx, iCharge, ename.c_str(), c4it->second); + } + mprintf("\t %zu unique C4 parameters for atoms selected by '%s'\n", idxC4Map.size(), mask_.MaskString()); + + // For each atom type index find the polarizability + //IdxParamMapType idxPolMap; + class TypePol { + public: + TypePol() : pol_(0) {} + + bool IsSet() const { return typeName_.len() > 0; } + + NameType typeName_; + double pol_; + }; + typedef std::vector<TypePol> IdxPolArray; + IdxPolArray idxPol( topOut.Nonbond().Ntypes() ); + + for (int at = 0; at != topOut.Natom(); at++) + { + Atom const& ATM = topOut[at]; + int typeIdx = ATM.TypeIndex(); + // Sanity check + if (typeIdx < 0) { + mprinterr("Error: Atom %s does not have an atom type index.\n", topOut.AtomMaskName(at).c_str()); + return 1; + } + // Find a polarization from the atom type + NameMapType::const_iterator polit = pol_.find( ATM.Type().Truncated() ); + if (polit == pol_.end()) { + mprinterr("Error: Could not find LJ 12-6-4 polarization for atom type %s (%s)\n", *(ATM.Type()), topOut.AtomMaskName(at).c_str()); + return 1; + } + // See if this type index was already seen + if (idxPol[typeIdx].IsSet()) { + +// IdxParamMapType::const_iterator ret = idxPolMap.find( typeIdx ); +// if (ret != idxPolMap.end()) { + // Ensure polarization is a match + if ( fabs( polit->second - idxPol[typeIdx].pol_ ) > Constants::SMALL ) { + mprinterr("Error: Polarizability parameter of atom type %s (%g) is not the same as that of type %s (%g),\n", + *(ATM.Type()), polit->second, *(idxPol[typeIdx].typeName_), idxPol[typeIdx].pol_); + mprinterr("Error: but their VDW parameters are the same.\n"); + return 1; + } + } else { + // New polarization + if (debug_ > 0) + mprintf("DEBUG: idx= %i type= %s pol= %g\n", typeIdx, *(ATM.Type()), polit->second); + idxPol[typeIdx].typeName_ = ATM.Type(); + idxPol[typeIdx].pol_ = polit->second; + //idxPolMap.insert( IdxParamMapPair(typeIdx, polit->second) ); + } + } + + // Allocate space for the LJC params + topOut.SetNonbond().AllocateLJC(); + + // Loop over all metal type indices + for (IdxParamMapType::const_iterator it = idxC4Map.begin(); it != idxC4Map.end(); ++it) + { + // Loop over all other atom type indices + for (int jidx = 0; jidx < topOut.Nonbond().Ntypes(); jidx++) + { + int ljidx = topOut.Nonbond().GetLJindex( it->first, jidx ); + //IdxParamMapType::const_iterator jt = idxPolMap.find( jidx ); + TypePol const& POL = idxPol[jidx]; + if (debug_ > 0) + mprintf("DEBUG: Type1= %i C4= %g Type2= %i NBidx= %i Pol= %g\n", it->first, it->second, + jidx, ljidx, POL.pol_); + if (ljidx < 0) { + mprinterr("Error: Type pair %i -- %i is an LJ 10-12 pair, not LJ 6-12.\n", it->first, jidx); + return 1; + } + // Calculate final C4 term + double ljc; + if (POL.typeName_ == "OW") + // There is only one C4 term that exists between water and a certain ion + ljc = it->second; + else + // There are two C4 terms that need to add together between two different ions + ljc = topOut.Nonbond().LJC_Array( ljidx ) + (it->second / WATER_POL_ * POL.pol_ * tunfactor_); + if (debug_ > 0) + mprintf("DEBUG:\t\tFinal LJC = %g\n", ljc); + topOut.SetNonbond().SetLJC( ljidx, ljc ); + } // END loop over all atom types indices + } // END loop over all metal type indices + + return 0; +} diff --git a/src/Parm/LJ1264_Params.h b/src/Parm/LJ1264_Params.h new file mode 100644 index 0000000000..a31568d336 --- /dev/null +++ b/src/Parm/LJ1264_Params.h @@ -0,0 +1,83 @@ +#ifndef INC_PARM_LJ1264_PARAMS_H +#define INC_PARM_LJ1264_PARAMS_H +#include "../AtomMask.h" +#include "ParmEnum.h" +#include <map> +#include <string> +class ArgList; +class Topology; +namespace Cpptraj { +namespace Parm { +/// Used to assign LJ 12-6-4 C coefficients +/** Adds the LENNARD_JONES_CCOEF term for the ion 12-6-4 Lennard-Jones potential + * term. If provided, the mask will allow you to specify which ions. If not + * provided, :ZN will be used for the mask by default. The C4 parameter between + * the ion and water can either be taken from the references for the requested + * [watermodel] (TIP3P, TIP4PEW, SPCE, OPC3, OPC, FB3, and FB4) or provided in + * the file specified by the c4file keyword. The polarizabilities must be + * present in the the polfile file. The chemical symbol of the element will be + * used to determine the atom type. + * Parameters are expected in a file with 2 columns: + * <atom type> <parameter> + + * All defaults come from Ref. [1], [2], [3], [4], [5] and [6] + + * [1] Pengfei Li and Kenneth M. Merz, J. Chem. Theory Comput., 2014, 10, + * 289-297. + * [2] Pengfei Li, Lin F. Song and Kenneth M. Merz, J. Phys. Chem. B, 2015, + * 119, 883-895. + * [3] Pengfei Li, Lin F. Song and Kenneth M. Merz, J. Chem. Theory Comput., + * 2015, 11, 1645-1657. + * [4] Zhen Li, Lin Frank Song, Pengfei Li, and Kenneth M. Merz Jr. J. Chem. + * Theory Comput., 2020, 16, 4429-4442. + * [5] Arkajyoti Sengupta, Zhen Li, Lin Frank Song, Pengfei Li, and Kenneth M. + * Merz Jr., J. Chem. Inf. Model., 2021, 61, 869-880. + * [6] Zhen Li, Lin Frank Song, Pengfei Li, and Kenneth M. Merz Jr. J. Chem. + * Theory Comput., 2021, 17, 2342-2354. + */ +class LJ1264_Params { + public: + LJ1264_Params(); + /// \return Help text + static std::string HelpText(); + /// Init from keywords + int Init_LJ1264(ArgList&, int, std::string const&); + /// Init - mask, c4 file, water model, polarization file, tuning factor, debug + int Init_LJ1264(std::string const&, std::string const&, WaterModelType, std::string const&, double, int); + /// Assign Topology with LJ 12-6-4 params + int AssignLJ1264(Topology&); + + /// \return true if C4 parameters have been set up + bool HasC4Params() const { return !c4params_.empty(); } + private: + typedef std::pair<std::string, double> NameMapPair; + typedef std::map<std::string, double> NameMapType; + + /// Set C4 parameters for TIP3P + void set_tip3p_params(); + void set_tip4pew_params(); + void set_spce_params(); + void set_opc3_params(); + void set_opc_params(); + void set_fb3_params(); + void set_fb4_params(); + /// Set C4 params for given water model + void setupForWaterModel(WaterModelType); + + int read_2col_file(std::string const&, NameMapType&); + int read_pol(std::string const&); + int read_c4(std::string const&); + + static const double DEFAULT_WATER_POL_; ///< Default Polarizability of water + + WaterModelType waterModel_; ///< Water model that C4 parameters have been set for + NameMapType c4params_; ///< C4 parameters + NameMapType pol_; ///< Polarizabilities + double tunfactor_; ///< Tuning factor + double WATER_POL_; ///< Polarizability of water + AtomMask mask_; ///< Mask for selecting metal centers + int debug_; +}; +} +} +#endif diff --git a/src/Parm/Makefile b/src/Parm/Makefile new file mode 100644 index 0000000000..6112cbd5d9 --- /dev/null +++ b/src/Parm/Makefile @@ -0,0 +1,31 @@ +# Parm Makefile +include ../../config.h + +include parmfiles + +DEL_FILE = /bin/rm -f + +# Objects +OBJECTS=$(PARM_SOURCES:.cpp=.o) + +# General rules +.cpp.o: + $(VB)echo CXX $< + $(VB)$(CXX) $(DIRECTIVES) $(CPPTRAJ_INC) $(CXXFLAGS) -c -o $@ $< + +# Default target: objects +all: $(OBJECTS) + +clean: + $(DEL_FILE) *.o + +uninstall: clean + +# Dependency targets +../findDepend: + cd ../ && $(MAKE) findDepend + +depend: ../findDepend + ../findDepend $(PARM_SOURCES) > parmdepend + +include parmdepend diff --git a/src/Parm/Merge.cpp b/src/Parm/Merge.cpp new file mode 100644 index 0000000000..c3670d045d --- /dev/null +++ b/src/Parm/Merge.cpp @@ -0,0 +1,731 @@ +#include "Merge.h" +#include "ParmHolder.h" +#include "../Atom.h" +#include "../CpptrajStdio.h" +#include "../ParameterTypes.h" +#include "../Residue.h" +#include "../StringRoutines.h" // integerToString + +using namespace Cpptraj::Parm; + +// ----- Bonds ------------------------- +#ifdef CPPTRAJ_DEBUG_MERGE +static inline void printIdx(BondType const& bnd1, unsigned int atomOffset) { + mprintf("DEBUG: Bond from top1 %i - %i will be %i - %i in top0\n", + bnd1.A1()+1, bnd1.A2()+1, bnd1.A1()+1+atomOffset, bnd1.A2()+1+atomOffset); +} +#endif +static inline TypeNameHolder getTypes(bool& hasH, BondType const& bnd1, std::vector<Atom> const& atoms, BondParmArray const& parms) +{ + Atom const& A1 = atoms[bnd1.A1()]; + Atom const& A2 = atoms[bnd1.A2()]; + if (A1.Element() == Atom::HYDROGEN || + A2.Element() == Atom::HYDROGEN) + hasH = true; + else + hasH = false; + TypeNameHolder types(2); + types.AddName( A1.Type() ); + types.AddName( A2.Type() ); + return types; +} + +static inline BondType idxWithOffset(BondType const& bnd1, int idx, unsigned int atomOffset) { + return BondType(bnd1.A1()+atomOffset, bnd1.A2()+atomOffset, idx); +} + +// ----- Angles ------------------------ +#ifdef CPPTRAJ_DEBUG_MERGE +static inline void printIdx(AngleType const& ang1, unsigned int atomOffset) { + mprintf("DEBUG: Angle from top1 %i - %i - %i will be %i - %i - %i in top0\n", + ang1.A1()+1, ang1.A2()+1, ang1.A3()+1, ang1.A1()+1+atomOffset, ang1.A2()+1+atomOffset, ang1.A3()+1+atomOffset); +} +#endif +static inline TypeNameHolder getTypes(bool& hasH, AngleType const& ang1, std::vector<Atom> const& atoms, AngleParmArray const& parms) +{ + Atom const& A1 = atoms[ang1.A1()]; + Atom const& A2 = atoms[ang1.A2()]; + Atom const& A3 = atoms[ang1.A3()]; + if (A1.Element() == Atom::HYDROGEN || + A2.Element() == Atom::HYDROGEN || + A3.Element() == Atom::HYDROGEN) + hasH = true; + else + hasH = false; + TypeNameHolder types(3); + types.AddName( A1.Type() ); + types.AddName( A2.Type() ); + types.AddName( A3.Type() ); + return types; +} + +static inline AngleType idxWithOffset(AngleType const& ang1, int idx, unsigned int atomOffset) { + return AngleType(ang1.A1()+atomOffset, ang1.A2()+atomOffset, ang1.A3()+atomOffset, idx); +} + +// ----- Dihedrals --------------------- +#ifdef CPPTRAJ_DEBUG_MERGE +static inline void printIdx(DihedralType const& dih1, unsigned int atomOffset) { + //mprintf("DEBUG: Dihedral from top1 %i - %i - %i - %i will be %i - %i - %i - %i in top0\n", + // dih1.A1()+1, dih1.A2()+1, dih1.A3()+1, dih1.A4()+1, + // dih1.A1()+1+atomOffset, dih1.A2()+1+atomOffset, dih1.A3()+1+atomOffset, dih1.A4()+1+atomOffset); + const char* desc; + if (dih1.IsImproper()) + desc = "Improper"; + else + desc = "Dihedral"; + mprintf("DEBUG: %s %i - %i - %i - %i ( %i %i %i %i )\n", desc, + dih1.A1()+1, dih1.A2()+1, dih1.A3()+1, dih1.A4()+1, + dih1.A1()*3, dih1.A2()*3, dih1.A3()*3, dih1.A4()*3); +} +#endif +/** Dihedrals are tricky because they can have multiple parameters for + * the same 4 types. Have the 5th be a pseudo-type based on the + * multiplicity (or improper status). + */ +static inline TypeNameHolder getTypes(bool& hasH, DihedralType const& dih1, std::vector<Atom> const& atoms, DihedralParmArray const& parms) +{ + Atom const& A1 = atoms[dih1.A1()]; + Atom const& A2 = atoms[dih1.A2()]; + Atom const& A3 = atoms[dih1.A3()]; + Atom const& A4 = atoms[dih1.A4()]; + if (A1.Element() == Atom::HYDROGEN || + A2.Element() == Atom::HYDROGEN || + A3.Element() == Atom::HYDROGEN || + A4.Element() == Atom::HYDROGEN) + hasH = true; + else + hasH = false; + TypeNameHolder types(5); + types.AddName( A1.Type() ); + types.AddName( A2.Type() ); + types.AddName( A3.Type() ); + types.AddName( A4.Type() ); + if (dih1.IsImproper()) { + // Sanity check TODO is this needed? + if (dih1.Idx() != -1 && (parms[dih1.Idx()].Pn() < 1 || parms[dih1.Idx()].Pn() < 1)) + mprinterr("Internal Error: Improper has a multiplicity != 1\n"); + types.AddName( "0" ); + } else { + if (dih1.Idx() < 0) + types.AddName( "1" ); + else + types.AddName( integerToString( (int)parms[dih1.Idx()].Pn() ) ); + } + return types; +} + +static inline DihedralType idxWithOffset(DihedralType const& dih1, int idx, unsigned int atomOffset) { + return DihedralType(dih1.A1()+atomOffset, dih1.A2()+atomOffset, dih1.A3()+atomOffset, dih1.A4()+atomOffset, dih1.Type(), idx); +} + +// ------------------------------------- +static inline void noParmWarning(TypeNameHolder const& types) { + bool all_empty = true; + for (unsigned int idx = 0; idx < types.Size(); idx++) { + if (types[idx].len() > 0) { all_empty = false; break; } + } + if (all_empty) return; + if (types.Size() == 2) + mprintf("Warning: No bond parameters for types %s - %s\n", *(types[0]), *(types[1])); + else if (types.Size() == 3) + mprintf("Warning: No angle parameters for types %s - %s - %s\n", *(types[0]), *(types[1]), *(types[2])); + else if (types.Size() == 5) { + if (types[4] == "0") + mprintf("Warning: No improper parameters for types %s - %s - %s - %s\n", *(types[0]), *(types[1]), *(types[2]), *(types[3])); + else + mprintf("Warning: No dihedral parameters for types %s - %s - %s - %s multiplicity %s\n", *(types[0]), *(types[1]), *(types[2]), *(types[3]), *(types[4])); + } else if (types.Size() == 6) + mprintf("Warning: No CMAP parameters for res %s atoms %s - %s - %s - %s - %s\n", *(types[0]), *(types[1]), *(types[2]), *(types[3]), *(types[4]), *(types[5])); +} + +// ------------------------------------- +#ifdef CPPTRAJ_DEBUG_MERGE +static inline void printTypes(TypeNameHolder const& types) { + for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) + mprintf(" %s", *(*it) ); + mprintf("\n"); +} +#endif + +// ------------------------------------- +template <class IdxType, class ParmType, class IdxArray, class ParmArray> +class MergeTopArray +{ + public: + MergeTopArray() : merge_with_existing_(false) {} + /// Indicate parameters from top1 already present in top0 should not be added as new + void SetMergeWithExisting(bool b) { merge_with_existing_ = b; } + private: + /// Append parameter for given types + /** \return Index of newly-added parameter to p0 */ + int append_param(TypeNameHolder const& types, + Cpptraj::Parm::ParmHolder<int>& currentTypes0, + ParmArray& p0, + Cpptraj::Parm::ParmHolder<int> const& currentTypes1, + ParmArray const& p1) + { +# ifdef CPPTRAJ_DEBUG_MERGE + printTypes( types ); // DEBUG +# endif + // Do we have an existing parameter in top0 + bool found; + int idx = currentTypes0.FindParam(types, found); + if (!found) { + // No parameter yet. + // Do we have an existing parameter in top1 +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Not found in top0. Looking in top1.\n"); +# endif + idx = currentTypes1.FindParam(types, found); + if (!found) { +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: No parameters.\n"); +# endif + // No parameter in either top. + idx = -1; + } else { +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Found in top1 index %i, adding to top0.\n", idx+1); +# endif + // Found a parameter in top1, add it to top0. + int oldIdx = -1; + if (merge_with_existing_) { + // Check if parameter exists + for (unsigned int i0 = 0; i0 != p0.size(); i0++) { + if (p1[idx] == p0[i0]) { + oldIdx = (int)i0; + break; + } + } + } + if (oldIdx == -1) { + // Do not merge with existing or does not yet exist. + int newIdx = p0.size(); + p0.push_back( p1[idx] ); + idx = newIdx; + } else { +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Parm from top1 already present in top0 at position %i\n", oldIdx+1); +# endif + idx = oldIdx; + } + } + // Add to existing parameters in top0. + // Do this even if a parameter was not found so we dont keep looking. + if (idx < 0) noParmWarning(types); + currentTypes0.AddParm(types, idx, false); + } +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: top0 parameter index is %i\n", idx+1); +# endif + return idx; + } + /// Append term1 to arrayX0/arrayY0 arrays along with parameters + void append_term(IdxArray& arrayX0, + IdxArray& arrayY0, + ParmArray& p0, + unsigned int atomOffset, + IdxType const& term1, + Cpptraj::Parm::ParmHolder<int>& currentTypes0, + Cpptraj::Parm::ParmHolder<int> const& currentTypes1, + ParmArray const& p1, + std::vector<Atom> const& atoms1) + { +# ifdef CPPTRAJ_DEBUG_MERGE + printIdx(term1, atomOffset); +# endif + bool hasH; + TypeNameHolder types = getTypes(hasH, term1, atoms1, p1); +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Looking for types in top0:"); +# endif + int idx = append_param( types, currentTypes0, p0, currentTypes1, p1 ); + // At this point we have either found a parameter or not. + if (hasH) + arrayY0.push_back( idxWithOffset(term1, idx, atomOffset) ); + else + arrayX0.push_back( idxWithOffset(term1, idx, atomOffset) ); + } + /// Append term1 to arrayX0 array along with parameter + void append_term(IdxArray& arrayX0, + ParmArray& p0, + unsigned int atomOffset, + IdxType const& term1, + Cpptraj::Parm::ParmHolder<int>& currentTypes0, + Cpptraj::Parm::ParmHolder<int> const& currentTypes1, + ParmArray const& p1, + std::vector<Atom> const& atoms1) + { +# ifdef CPPTRAJ_DEBUG_MERGE + printIdx(term1, atomOffset); +# endif + bool hasH; + TypeNameHolder types = getTypes(hasH, term1, atoms1, p1); +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Looking for types in top0:"); +# endif + int idx = append_param( types, currentTypes0, p0, currentTypes1, p1 ); + // At this point we have either found a parameter or not. + arrayX0.push_back( idxWithOffset(term1, idx, atomOffset) ); + } + + /// Index existing term types in term arrays + void index_term_types(Cpptraj::Parm::ParmHolder<int>& currentTypes, + IdxArray const& terms, + std::vector<Atom> const& atoms, + ParmArray const& parms) + { + bool hasH; + for (typename IdxArray::const_iterator term = terms.begin(); term != terms.end(); ++term) + { + if (term->Idx() > -1) { + TypeNameHolder types = getTypes(hasH, *term, atoms, parms); + bool found; + currentTypes.FindParam(types, found); + if (!found) { + currentTypes.AddParm(types, term->Idx(), false); + } + } + } + } + + public: + /// Merge two pairs of term/parm arrays + void MergeTermArrays(IdxArray& terms0, + IdxArray& termsh0, + ParmArray& p0, + std::vector<Atom> const& atoms0, + IdxArray const& terms1, + IdxArray const& termsh1, + ParmArray const& p1, + std::vector<Atom> const& atoms1) + { + // First index existing parameters + Cpptraj::Parm::ParmHolder<int> currentTypes0, currentTypes1; + index_term_types(currentTypes0, terms0, atoms0, p0); + index_term_types(currentTypes0, termsh0, atoms0, p0); + index_term_types(currentTypes1, terms1, atoms1, p1); + index_term_types(currentTypes1, termsh1, atoms1, p1); + // Loop over separate term arrays from top1 in the correct order + unsigned int atomOffset = atoms0.size(); + typename IdxArray::const_iterator bx = terms1.begin(); + typename IdxArray::const_iterator by = termsh1.begin(); + while (bx != terms1.end() && by != termsh1.end()) { + // Which one goes next? + Atom const& bx0 = atoms1[bx->A1()]; + Atom const& by0 = atoms1[by->A1()]; + if (bx0.ResNum() == by0.ResNum()) { + if (bx->A1() == by->A1()) { + // Same residue, same A1. Lower A2 goes first. + if (*by < *bx) { + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + ++by; + } else { + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + ++bx; + } + } else { + // Both terms in same residue, different A1. + // Higher A1 goes first. + // FIXME fix for scan direction forwards. + if (by->A1() > bx->A1()) { + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + ++by; + } else { + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + ++bx; + } + } + } else { + // Lower residue goes first. + if (by0.ResNum() < bx0.ResNum()) { + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + ++by; + } else { + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + ++bx; + } + } + } // END loop over both term arrays from top1 + if (bx != terms1.end()) { + for (; bx != terms1.end(); ++bx) + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + } + if (by != termsh1.end()) { + for (; by != termsh1.end(); ++by) + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + } + } // END MergeTermArrays + /// Merge two pairs of improper arrays + /** Impropers have different ordering based first on the central (3rd) atom */ + void MergeImproperArrays(DihedralArray& terms0, + DihedralArray& termsh0, + DihedralParmArray& p0, + std::vector<Atom> const& atoms0, + DihedralArray const& terms1, + DihedralArray const& termsh1, + DihedralParmArray const& p1, + std::vector<Atom> const& atoms1) + { + // First index existing parameters + Cpptraj::Parm::ParmHolder<int> currentTypes0, currentTypes1; + index_term_types(currentTypes0, terms0, atoms0, p0); + index_term_types(currentTypes0, termsh0, atoms0, p0); + index_term_types(currentTypes1, terms1, atoms1, p1); + index_term_types(currentTypes1, termsh1, atoms1, p1); + // Loop over separate term arrays from top1 in the correct order + unsigned int atomOffset = atoms0.size(); + typename IdxArray::const_iterator bx = terms1.begin(); + typename IdxArray::const_iterator by = termsh1.begin(); + while (bx != terms1.end() && by != termsh1.end()) { + // Which one goes next? + Atom const& bx0 = atoms1[bx->A1()]; + Atom const& by0 = atoms1[by->A1()]; + if (bx0.ResNum() == by0.ResNum()) { + if (bx->A3() == by->A3()) { + // Same residue, same A3. Lower A1 goes first. + if (*by < *bx) { + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + ++by; + } else { + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + ++bx; + } + } else { + // Both terms in same residue, different A3. + // Higher A3 goes first. + // FIXME fix for scan direction forwards. + if (by->A3() > bx->A3()) { + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + ++by; + } else { + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + ++bx; + } + } + } else { + // Lower residue goes first. + if (by0.ResNum() < bx0.ResNum()) { + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + ++by; + } else { + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + ++bx; + } + } + } // END loop over both term arrays from top1 + if (bx != terms1.end()) { + for (; bx != terms1.end(); ++bx) + append_term( terms0, termsh0, p0, atomOffset, *bx, currentTypes0, currentTypes1, p1, atoms1 ); + } + if (by != termsh1.end()) { + for (; by != termsh1.end(); ++by) + append_term( terms0, termsh0, p0, atomOffset, *by, currentTypes0, currentTypes1, p1, atoms1 ); + } + } // END MergeImproperArrays + /// Merge two term/parm arrays + void MergeTermArray(IdxArray& terms0, + ParmArray& p0, + std::vector<Atom> const& atoms0, + IdxArray const& terms1, + ParmArray const& p1, + std::vector<Atom> const& atoms1) + { + // First index existing parameters + Cpptraj::Parm::ParmHolder<int> currentTypes0, currentTypes1; + index_term_types(currentTypes0, terms0, atoms0, p0); + index_term_types(currentTypes1, terms1, atoms1, p1); + unsigned int atomOffset = atoms0.size(); + for (typename IdxArray::const_iterator it = terms1.begin(); it != terms1.end(); ++it) { + append_term( terms0, p0, atomOffset, *it, currentTypes0, currentTypes1, p1, atoms1 ); + } + } // END MergeTermArray + + private: + bool merge_with_existing_; + +}; // END MergeTopArray template class + +// ----------------------------------------------------------------------------- + +/** Given bond/bond parameter arrays from top0 and bond/bond parameter + * arrays from top1, merge the bond arrays and consolidate the + * parameters. + */ +void Cpptraj::Parm::MergeBondArrays(bool reduce_bond_params, BondArray& bonds0, + BondArray& bondsh0, + BondParmArray& bp0, + AtArray const& atoms0, + BondArray const& bonds1, + BondArray const& bondsh1, + BondParmArray const& bp1, + AtArray const& atoms1) +{ + MergeTopArray<BondType, BondParmType, BondArray, BondParmArray> mergeBonds; + mergeBonds.SetMergeWithExisting( reduce_bond_params ); + mergeBonds.MergeTermArrays( bonds0, bondsh0, bp0, atoms0, + bonds1, bondsh1, bp1, atoms1 ); +} + +// ----------------------------------------------------------------------------- + +/** Given angle/angle parameter arrays from top0 and angle/angle parameter + * arrays from top1, merge the angle arrays and consolidate the + * parameters. + */ +void Cpptraj::Parm::MergeAngleArrays(bool reduce_angle_params, AngleArray& angles0, + AngleArray& anglesh0, + AngleParmArray& ap0, + AtArray const& atoms0, + AngleArray const& angles1, + AngleArray const& anglesh1, + AngleParmArray const& ap1, + AtArray const& atoms1) +{ + MergeTopArray<AngleType, AngleParmType, AngleArray, AngleParmArray> mergeAngles; + mergeAngles.SetMergeWithExisting( reduce_angle_params ); + mergeAngles.MergeTermArrays( angles0, anglesh0, ap0, atoms0, + angles1, anglesh1, ap1, atoms1 ); +} + +// ----------------------------------------------------------------------------- +static inline void separate_impropers(DihedralArray const& dihIn, DihedralArray& dihOut, DihedralArray& impOut) +{ + for (DihedralArray::const_iterator it = dihIn.begin(); it != dihIn.end(); ++it) + if (it->IsImproper()) + impOut.push_back( *it ); + else + dihOut.push_back( *it ); +} + +static inline void merge_impropers(DihedralArray& dihOut, DihedralArray& dihIn, DihedralArray& impIn) { + dihOut.reserve( dihIn.size() + impIn.size() ); + dihOut = dihIn; + dihIn.clear(); + for (DihedralArray::const_iterator it = impIn.begin(); it != impIn.end(); ++it) + dihOut.push_back( *it ); + impIn.clear(); +} + +/** Given dihedral/dihedral parameter arrays from top0 and dihedral/dihedral + * parameter arrays from top1, merge the dihedral arrays and consolidate the + * parameters. + */ +void Cpptraj::Parm::MergeDihedralArrays(DihedralArray& dihedrals0, + DihedralArray& dihedralsh0, + DihedralParmArray& dp0, + AtArray const& atoms0, + DihedralArray const& dihedrals1, + DihedralArray const& dihedralsh1, + DihedralParmArray const& dp1, + AtArray const& atoms1) +{ + // Separate any impropers. + DihedralArray dih0, dihH0, imp0, impH0; + separate_impropers(dihedrals0, dih0, imp0); + dihedrals0.clear(); + separate_impropers(dihedralsh0, dihH0, impH0); + dihedralsh0.clear(); + + DihedralArray dih1, dihH1, imp1, impH1; + separate_impropers(dihedrals1, dih1, imp1); + separate_impropers(dihedralsh1, dihH1, impH1); + + MergeTopArray<DihedralType, DihedralParmType, DihedralArray, DihedralParmArray> mergeDihedrals; + mergeDihedrals.SetMergeWithExisting( true ); + mergeDihedrals.MergeTermArrays( dih0, dihH0, dp0, atoms0, + dih1, dihH1, dp1, atoms1 ); + mergeDihedrals.MergeImproperArrays( imp0, impH0, dp0, atoms0, + imp1, impH1, dp1, atoms1 ); + // Re-merge + merge_impropers(dihedrals0, dih0, imp0); + merge_impropers(dihedralsh0, dihH0, impH0); +} + +// ----------------------------------------------------------------------------- +// ----- CMAPs ------------------------- +#ifdef CPPTRAJ_DEBUG_MERGE +static inline void printIdx(CmapType const& cmap1, unsigned int atomOffset) { + mprintf("DEBUG: CMAP from top1 %i - %i - %i - %i - %i will be %i - %i - %i - %i - %i in top0\n", + cmap1.A1()+1, cmap1.A2()+1, cmap1.A3()+1, cmap1.A4()+1, cmap1.A5()+1, + cmap1.A1()+1+atomOffset, cmap1.A2()+1+atomOffset, cmap1.A3()+1+atomOffset, cmap1.A4()+1+atomOffset, cmap1.A5()+1+atomOffset); +} +#endif +/** CMAPs are indexed by residue name and 5 atom names, so need 6. + */ +static inline TypeNameHolder getCmapTypes(CmapType const& cmap1, std::vector<Atom> const& atoms, std::vector<Residue> const& residues) +{ + Atom const& A1 = atoms[cmap1.A1()]; + Atom const& A2 = atoms[cmap1.A2()]; + Atom const& A3 = atoms[cmap1.A3()]; + Atom const& A4 = atoms[cmap1.A4()]; + Atom const& A5 = atoms[cmap1.A5()]; + + TypeNameHolder types(6); + types.AddName( residues[A2.ResNum()].Name() ); + types.AddName( A1.Name() ); + types.AddName( A2.Name() ); + types.AddName( A3.Name() ); + types.AddName( A4.Name() ); + types.AddName( A5.Name() ); + + return types; +} + +static inline CmapType idxWithOffset(CmapType const& cmap1, int idx, unsigned int atomOffset) { + return CmapType(cmap1.A1()+atomOffset, cmap1.A2()+atomOffset, cmap1.A3()+atomOffset, cmap1.A4()+atomOffset, cmap1.A5()+atomOffset, idx); +} + +/// Index existing CMAP types in term arrays +void index_cmap_types(Cpptraj::Parm::ParmHolder<int>& currentTypes, + CmapArray const& terms, + std::vector<Atom> const& atoms, + std::vector<Residue> const& residues) +{ + for (typename CmapArray::const_iterator term = terms.begin(); term != terms.end(); ++term) + { + if (term->Idx() > -1) { + TypeNameHolder types = getCmapTypes(*term, atoms, residues); + bool found; + currentTypes.FindParam(types, found); + if (!found) { + currentTypes.AddParm(types, term->Idx(), false); + } + } + } +} + +/** Given CMAP arrays from top0 and top1, merge and consolidate parameters. */ +void Cpptraj::Parm::MergeCmapArrays(CmapArray& cmap0, + CmapGridArray& cg0, + AtArray const& atoms0, + ResArray const& residues0, + CmapArray const& cmap1, + CmapGridArray const& cg1, + AtArray const& atoms1, + ResArray const& residues1) +{ + unsigned int atomOffset = atoms0.size(); + unsigned int cgOffset = cg0.size(); + // First index existing parameters + Cpptraj::Parm::ParmHolder<int> currentTypes0, currentTypes1; + index_cmap_types(currentTypes0, cmap0, atoms0, residues0); + index_cmap_types(currentTypes1, cmap1, atoms1, residues1); + // Loop over incoming terms + for (CmapArray::const_iterator c1 = cmap1.begin(); c1 != cmap1.end(); ++c1) + { +# ifdef CPPTRAJ_DEBUG_MERGE + printIdx(*c1, atomOffset); +# endif + TypeNameHolder types = getCmapTypes(*c1, atoms1, residues1); +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Looking for CMAP types in top0:"); + printTypes( types ); // DEBUG +# endif + // Do we have an existing parameter in top0 + bool found; + int idx = currentTypes0.FindParam(types, found); + if (!found) { + // No parameter yet. + // Do we have an existing parameter in top1 +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: CMAP not found in top0. Looking in top1.\n"); +# endif + idx = currentTypes1.FindParam(types, found); + if (!found) { +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: No CMAP parameters.\n"); +# endif + // No parameter in either top. + idx = -1; + } else { +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Found in top1 index %i, adding to top0.\n", idx+1); +# endif + // Found a parameter in top1, add it to top0. + int oldIdx = -1; + //if (merge_with_existing_) { + // Check if parameter exists + for (unsigned int i0 = 0; i0 != cg0.size(); i0++) { + if (cg1[idx].GridMatches( cg0[i0] )) { + oldIdx = (int)i0; + break; + } + } + //} + if (oldIdx == -1) { + // Do not merge with existing or does not yet exist. + // CMAPs are different than other parameters in that their order + // in the topology matches the order in which they are specified + // in the original parameter set. Therefore do not just append, + // use the existing index as an offset. + //int newIdx = cg0.size(); + //cg0.push_back( cg1[idx] ); + int newIdx = cgOffset + idx; +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: New CMAP index in top0 is %i\n", newIdx); +# endif + if ((unsigned int)newIdx >= cg0.size()) + cg0.resize( newIdx + 1 ); + cg0[newIdx] = cg1[idx]; + idx = newIdx; + } else { +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Parm from top1 already present in top0 at position %i\n", oldIdx+1); +# endif + idx = oldIdx; + } + } + // Add to existing parameters in top0. + // Do this even if a parameter was not found so we dont keep looking. + if (idx < 0) noParmWarning(types); + currentTypes0.AddParm(types, idx, false); + } +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: top0 parameter index is %i\n", idx+1); +# endif + // At this point we have either found a parameter or not. + cmap0.push_back( idxWithOffset(*c1, idx, atomOffset) ); + } // END loop over cmap terms from top1 +} + +// ----------------------------------------------------------------------------- + +/** Given bond/bond parameter array from top0 and bond/bond parameter + * array from top1, merge the bond arrays and consolidate the + * parameters. + */ +void Cpptraj::Parm::MergeBondArray(BondArray& bonds0, + BondParmArray& bp0, + AtArray const& atoms0, + BondArray const& bonds1, + BondParmArray const& bp1, + AtArray const& atoms1) +{ +# ifdef CPPTRAJ_DEBUG_MERGE + mprintf("DEBUG: Enter MergeBondArray()\n"); +# endif + MergeTopArray<BondType, BondParmType, BondArray, BondParmArray> mergeBonds; + mergeBonds.MergeTermArray( bonds0, bp0, atoms0, + bonds1, bp1, atoms1 ); +} + +// ----------------------------------------------------------------------------- +/** Given improper/improper parameter array from top0 and improper/improper + * parameter array from top1, merge the improper arrays and consolidate the + * parameters. + */ +void Cpptraj::Parm::MergeImproperArray(DihedralArray& impropers0, + DihedralParmArray& ip0, + AtArray const& atoms0, + DihedralArray const& impropers1, + DihedralParmArray const& ip1, + AtArray const& atoms1) +{ + MergeTopArray<DihedralType, DihedralParmType, DihedralArray, DihedralParmArray> mergeImpropers; + mergeImpropers.SetMergeWithExisting( true ); // FIXME check this + // NOTE could be MergeTermArrays as well + mergeImpropers.MergeTermArray( impropers0, ip0, atoms0, + impropers1, ip1, atoms1 ); +} diff --git a/src/Parm/Merge.h b/src/Parm/Merge.h new file mode 100644 index 0000000000..2677dbe82a --- /dev/null +++ b/src/Parm/Merge.h @@ -0,0 +1,70 @@ +#ifndef INC_PARM_MERGE_H +#define INC_PARM_MERGE_H +#include <vector> +class Atom; +class Residue; +class BondArray; +class BondParmArray; +class AngleArray; +class AngleParmArray; +class DihedralArray; +class DihedralParmArray; +class CmapArray; +class CmapGridArray; +namespace Cpptraj { +namespace Parm { +/// Routines used to merge Topology files. +/** Compile with -DCPPTRAJ_DEBUG_MERGE for extra debug info. */ + /// Shorthand for array of Atoms + typedef std::vector<Atom> AtArray; + /// Shorthand for array of residues + typedef std::vector<Residue> ResArray; + /// Merge two pairs of bond arrays and their parameters. + void MergeBondArrays(bool, BondArray&, BondArray&, BondParmArray&, AtArray const&, + BondArray const&, BondArray const&, BondParmArray const&, AtArray const&); + /// Merge two pairs of angle arrays and their parameters. + void MergeAngleArrays(bool, AngleArray&, AngleArray&, AngleParmArray&, AtArray const&, + AngleArray const&, AngleArray const&, AngleParmArray const&, AtArray const&); + /// Merge two pairs of dihedral arrays and their parameters. + void MergeDihedralArrays(DihedralArray&, DihedralArray&, DihedralParmArray&, AtArray const&, + DihedralArray const&, DihedralArray const&, DihedralParmArray const&, AtArray const&); + /// Merge cmap arrays and their parameters + void MergeCmapArrays(CmapArray&, CmapGridArray&, AtArray const&, ResArray const&, + CmapArray const&, CmapGridArray const&, AtArray const&, ResArray const&); + /// Merge two bond arrays and their parameters + void MergeBondArray(BondArray&, BondParmArray&, AtArray const&, + BondArray const&, BondParmArray const&, AtArray const&); + /// Merge two improper arrays and their parameters + void MergeImproperArray(DihedralArray&, DihedralParmArray&, AtArray const&, + DihedralArray const&, DihedralParmArray const&, AtArray const&); + +// ----------------------------------------------------------------------------- +/** This template can be used when doing Append() on a generic std::vector array + * of type T. The array will be appended to a given array of the same type. + * If one is empty and the other is not, values will be filled in if necessary. + */ +template <class T> class TopVecAppend { + public: + /// CONSTRUCTOR + TopVecAppend() {} + /// Append current array to given array of same type + void Append(std::vector<T>& arrayOut, std::vector<T> const& arrayToAdd, unsigned int expectedSize) + { + if (arrayToAdd.empty() && arrayOut.empty()) { + // Both arrays are empty. Nothing to do. + return; + } else if (arrayToAdd.empty()) { + // The current array is empty but the given array is not. Fill in + // array to append with blank values. + for (unsigned int idx = 0; idx != expectedSize; idx++) + arrayOut.push_back( T() ); + } else { + // Append current array to array to given array. TODO use std::copy? + for (typename std::vector<T>::const_iterator it = arrayToAdd.begin(); it != arrayToAdd.end(); ++it) + arrayOut.push_back( *it ); + } + } +}; +} +} +#endif diff --git a/src/Parm/ParameterSet.cpp b/src/Parm/ParameterSet.cpp new file mode 100644 index 0000000000..4165a7ec12 --- /dev/null +++ b/src/Parm/ParameterSet.cpp @@ -0,0 +1,314 @@ +#include "ParameterSet.h" +#include "../CpptrajFile.h" +#include "../CpptrajStdio.h" +#include "../Constants.h" +#include "../UpdateParameters.h" + +using namespace Cpptraj::Parm; + +size_t ParameterSet::DataSize() const { + unsigned int cmapsize = 0; + for (CmapGridArray::const_iterator it = CMAP_.begin(); it != CMAP_.end(); ++it) + cmapsize += it->DataSize(); + return (atomTypes_.DataSize() + + nbParm_.DataSize() + + nb14Parm_.DataSize() + + ljcParm_.DataSize() + + bondParm_.DataSize() + + angleParm_.DataSize() + + ubParm_.DataSize() + + impParm_.DataSize() + + dihParm_.DataSize() + + HBparm_.DataSize() + + cmapsize + + (hydrophilicAtomTypes_.size() * NameType::DataSize()) + + sizeof(bool) + ); +} + +/** Write parameters out to file with given name. */ +void ParameterSet::Debug(const char* fnameIn) const { + CpptrajFile Out; + Out.OpenWrite( fnameIn ); + Print( Out ); + Out.CloseFile(); +} + +/** Write summary to stdout. */ +void ParameterSet::Summary() const { + mprintf("\tParameter set: %s\n", ParamSetName().c_str()); + if (!fname_.empty()) { + mprintf("\tFiles:"); + for (FNarray::const_iterator fn = fname_.begin(); fn != fname_.end(); ++fn) + mprintf(" %s", fn->base()); + mprintf("\n"); + } + mprintf("\t %zu atom types:", atomTypes_.size()); + for (ParmHolder<AtomType>::const_iterator at = atomTypes_.begin(); at != atomTypes_.end(); ++at) + mprintf(" %s", *(at->first[0])); + mprintf("\n"); + // TODO 1-4 types? + mprintf("\t %zu LJ 6-12 parameters.\n", nbParm_.size()); + mprintf("\t %zu LJ 6-12 1-4 parameters.\n", nb14Parm_.size()); + mprintf("\t %zu LJ C parameters.\n", ljcParm_.size()); + mprintf("\t %zu LJ 10-12 parameters.\n", HBparm_.size()); + mprintf("\t %zu bond parameters.\n", bondParm_.size()); + mprintf("\t %zu angle parameters.\n", angleParm_.size()); + mprintf("\t %zu UB parameters.\n", ubParm_.size()); + mprintf("\t %zu dihedral parameters.\n", dihParm_.size()); + mprintf("\t %zu improper parameters.\n", impParm_.size()); + mprintf("\t %zu CMAP parameters.\n", CMAP_.size()); +} + +/** Write parameters out to given file. */ +void ParameterSet::Print(CpptrajFile& Out) const { + if (!name_.empty()) + Out.Printf("Parameter set: %s\n", ParamSetName().c_str()); + if (!fname_.empty()) { + Out.Printf("\tFiles:"); + for (FNarray::const_iterator fn = fname_.begin(); fn != fname_.end(); ++fn) + Out.Printf(" %s", fn->base()); + Out.Printf("\n"); + } + if (!NBname_.empty()) + Out.Printf("Nonbond parameters name: %s\n", NBname_.c_str()); + static const char* hybStr[] = {"SP ", "SP2", "SP3", "UNK"}; + Out.Printf("Atom Types:\n"); + // Check if we have hybridizations or elements. + bool has_hybridizations = false; + bool has_elements = false; + for (ParmHolder<AtomType>::const_iterator at = atomTypes_.begin(); at != atomTypes_.end(); ++at) { + if (at->second.Hybridization() != AtomType::UNKNOWN_HYBRIDIZATION) + has_hybridizations = true; + if (at->second.EltStr()[0] != ' ' || at->second.EltStr()[1] != ' ') + has_elements = true; + if (has_hybridizations && has_elements) + break; + } + // Atom Type header + Out.Printf("\t%6s %8s %2s %12s %12s %12s %12s", "Name", "TypeIdx", "LJ", "Radius", "Depth", "Mass", "Polar."); + if (has_hybridizations) + Out.Printf(" %3s", "Hyb"); + if (has_elements) + Out.Printf(" %2s", "El"); + Out.Printf("\n"); + unsigned int atidx = 0; + for (ParmHolder<AtomType>::const_iterator at = atomTypes_.begin(); at != atomTypes_.end(); ++at, atidx++) { + Out.Printf("\t%6s %8u %2i %12.4f %12.4f %12.4f %12.4f", *(at->first[0]), atidx, (int)at->second.HasLJ(), at->second.LJ().Radius(), at->second.LJ().Depth(), at->second.Mass(), at->second.Polarizability()); + if (has_hybridizations) + Out.Printf(" %3s", hybStr[at->second.Hybridization()]); + if (has_elements) + Out.Printf(" %2s", at->second.EltStr()); + Out.Printf("\n"); + } + if (!nbParm_.empty()) { + Out.Printf("LJ 6-12 parameters:\n"); + Out.Printf("\t%6s %6s : %12s %12s\n", "Type1", "Type2", "A", "B"); + for (ParmHolder<NonbondType>::const_iterator nb = nbParm_.begin(); nb != nbParm_.end(); ++nb) + Out.Printf("\t%6s %6s : %12.4E %12.4E\n", (*nb->first[0]), (*nb->first[1]), nb->second.A(), nb->second.B()); + } + if (!nb14Parm_.empty()) { + Out.Printf("LJ 1-4 parameters:\n"); + Out.Printf("\t%6s %6s : %12s %12s\n", "Type1", "Type2", "A", "B"); + for (ParmHolder<NonbondType>::const_iterator nb = nb14Parm_.begin(); nb != nb14Parm_.end(); ++nb) + Out.Printf("\t%6s %6s : %12.4E %12.4E\n", (*nb->first[0]), (*nb->first[1]), nb->second.A(), nb->second.B()); + } + if (!ljcParm_.empty()) { + Out.Printf("LJ C parameters:\n"); + Out.Printf("\t%6s %6s : %12s\n", "Type1", "Type2", "C"); + for (ParmHolder<NonbondType>::const_iterator nb = nb14Parm_.begin(); nb != nb14Parm_.end(); ++nb) + Out.Printf("\t%6s %6s : %12.4E\n", (*nb->first[0]), (*nb->first[1]), nb->second); + } + if (!HBparm_.empty()) { + Out.Printf("HB LJ 10-12 parameters:\n"); + Out.Printf("\t%6s %6s : %12s %12s %12s\n", "Type1", "Type2", "Asol", "Bsol", "HBcut"); + for (ParmHolder<HB_ParmType>::const_iterator hb = HBparm_.begin(); hb != HBparm_.end(); ++hb) + Out.Printf("\t%6s %6s : %12.4f %12.4f %12.4f\n", *(hb->first[0]), *(hb->first[1]), hb->second.Asol(), hb->second.Bsol(), hb->second.HBcut()); + } + if (!bondParm_.empty()) { + Out.Printf("Bond parameters:\n"); + Out.Printf("\t%6s %6s : %12s %12s\n", "Type1", "Type2", "Rk", "Req"); + for (ParmHolder<BondParmType>::const_iterator bp = bondParm_.begin(); bp != bondParm_.end(); ++bp) + Out.Printf("\t%6s %6s : %12.4f %12.4f\n", *(bp->first[0]), *(bp->first[1]), bp->second.Rk(), bp->second.Req()); + } + if (!angleParm_.empty()) { + Out.Printf("Angle parameters:\n"); + Out.Printf("\t%6s %6s %6s : %12s %12s\n", "Type1", "Type2", "Type3", "Tk", "Teq"); + for (ParmHolder<AngleParmType>::const_iterator bp = angleParm_.begin(); bp != angleParm_.end(); ++bp) + Out.Printf("\t%6s %6s %6s : %12.4f %12.4f\n", *(bp->first[0]), *(bp->first[1]), *(bp->first[2]), bp->second.Tk(), bp->second.Teq()*Constants::RADDEG); + } + if (!ubParm_.empty()) { + Out.Printf("UB parameters:\n"); + Out.Printf("\t%6s %6s : %12s %12s\n", "Type1", "Type2", "Uk", "Ueq"); + for (ParmHolder<BondParmType>::const_iterator bp = ubParm_.begin(); bp != ubParm_.end(); ++bp) + Out.Printf("\t%s %s : %f %f\n", *(bp->first[0]), *(bp->first[1]), bp->second.Rk(), bp->second.Req()); + } + if (!dihParm_.empty()) { + Out.Printf("Dihedral parameters:\n"); + Out.Printf("\t%6s %6s %6s %6s %12s %4s %8s %6s %6s\n", "Type1", "Type2", "Type3", "Type4", "Pk", "Pn", "Phase", "SCEE", "SCNB"); + for (DihedralParmHolder::const_iterator it0 = dihParm_.begin(); it0 != dihParm_.end(); ++it0) + for (DihedralParmArray::const_iterator it1 = it0->second.begin(); + it1 != it0->second.end(); ++it1) + Out.Printf("\t%6s %6s %6s %6s : %12.4f %4.1f %8.2f %6.2f %6.2f\n", *(it0->first[0]), *(it0->first[1]), *(it0->first[2]), *(it0->first[3]), it1->Pk(), it1->Pn(), it1->Phase()*Constants::RADDEG, it1->SCEE(), it1->SCNB()); + } + if (!impParm_.empty()) { + Out.Printf("Improper parameters:\n"); + Out.Printf("\t%6s %6s %6s %6s %12s %12s %12s\n", "Type1", "Type2", "Type3", "Type4", "Pk", "Pn", "Phase"); + for (ImproperParmHolder::const_iterator it0 = impParm_.begin(); it0 != impParm_.end(); ++it0) + for (DihedralParmArray::const_iterator it1 = it0->second.begin(); + it1 != it0->second.end(); ++it1) + Out.Printf("\t%6s %6s %6s %6s : %12.4f %12.4f %12.4f\n", *(it0->first[0]), *(it0->first[1]), *(it0->first[2]), *(it0->first[3]), it1->Pk(), it1->Pn(), it1->Phase()*Constants::RADDEG); + } + if (!hydrophilicAtomTypes_.empty()) { + Out.Printf("Hydrophilic atom types:"); + for (NsetType::const_iterator it = hydrophilicAtomTypes_.begin(); it != hydrophilicAtomTypes_.end(); ++it) + Out.Printf(" %s", it->Truncated().c_str()); + Out.Printf("\n"); + } + if (!CMAP_.empty()) { + Out.Printf("CMAP parameters:\n"); + for (CmapGridArray::const_iterator it = CMAP_.begin(); it != CMAP_.end(); ++it) { + Out.Printf("\tCMAP %li '%s' (resolution %u) atoms {", + it - CMAP_.begin() + 1, it->Title().c_str(), it->Resolution()); + for (std::vector<std::string>::const_iterator an = it->AtomNames().begin(); + an != it->AtomNames().end(); ++an) + Out.Printf(" %s", an->c_str()); + Out.Printf("} residues:"); + for (std::vector<std::string>::const_iterator rn = it->ResNames().begin(); + rn != it->ResNames().end(); ++rn) + Out.Printf(" %s", rn->c_str()); + Out.Printf("\n"); + int col = 0; + for (std::vector<double>::const_iterator gp = it->Grid().begin(); + gp != it->Grid().end(); ++gp) + { + if (col == 0) + Out.Printf("%9.5f", *gp); + else + Out.Printf(" %9.5f", *gp); + col++; + if (col == 8) { + Out.Printf("\n"); + col = 0; + } + } + if (col != 0) Out.Printf("\n"); + } + } +} + +/** Update/add to CMAP parameters in this set with those from given set. */ +int ParameterSet::updateCmapParams(CmapParmHolder const& cmap1, int debugIn, int verbose) { + int updateCount = 0; + for (CmapParmHolder::const_iterator newp = cmap1.begin(); newp != cmap1.end(); ++newp) + { + RetType ret = CMAP_.AddParm( *newp, true, debugIn ); + if (ret != ERR) { + bool print = false; + if (ret == ADDED) { + if (verbose > 2) { mprintf("\tAdded NEW CMAP parameter:"); print = true; } + updateCount++; + } else if (ret == UPDATED) { + if (verbose > 0) { mprintf("\tUpdated CMAP parameter:"); print = true; } + updateCount++; + } else if (ret == SAME) { + if (verbose > 1) { mprintf("\tParameter for CMAP already present:"); print = true; } + } + if (print) { + mprintf("\tCMAP '%s' (resolution %u) residues:", newp->Title().c_str(), newp->Resolution()); + for (std::vector<std::string>::const_iterator rn = newp->ResNames().begin(); + rn != newp->ResNames().end(); ++rn) + mprintf(" %s", rn->c_str()); + mprintf("\n"); + } + } + } + return updateCount; +} + +/** Update/add to parameters in this topology with those from given set. */ +int ParameterSet::UpdateParamSet(ParameterSet const& set1, UpdateCount& uc, int debugIn, int verbose) { + ParameterSet& set0 = *this; + // Check + if (debugIn > 0) { + mprintf("DEBUG: Saving original parameters in originalp.dat, incoming parameters in incomingp.dat, new parameters in newp.dat.\n"); + set0.Debug("originalp.dat"); + set1.Debug("incomingp.dat"); + } + // Save names/files + for (Sarray::const_iterator it = set1.name_.begin(); it != set1.name_.end(); ++it) + name_.push_back( *it ); + for (FNarray::const_iterator it = set1.fname_.begin(); it != set1.fname_.end(); ++it) + fname_.push_back( *it ); + if (debugIn > 0) { + mprintf("DEBUG: Combined name: %s\n", ParamSetName().c_str()); + for (FNarray::const_iterator it = fname_.begin(); it != fname_.end(); ++it) + mprintf("\t%s\n", it->base()); + } + + // Bond parameters + uc.nBondsUpdated_ = UpdateParameters< ParmHolder<BondParmType> >(set0.BP(), set1.BP(), "bond", verbose); + // Angle parameters + uc.nAnglesUpdated_ = UpdateParameters< ParmHolder<AngleParmType> >(set0.AP(), set1.AP(), "angle", verbose); + // Dihedral/improper parameters + uc.nDihedralsUpdated_ = UpdateParameters< DihedralParmHolder >(set0.DP(), set1.DP(), "dihedral", verbose); + // Improper parameters + uc.nImpropersUpdated_ = UpdateParameters< ImproperParmHolder >(set0.IP(), set1.IP(), "improper", verbose); + // Urey-Bradley parameters + uc.nUreyBradleyUpdated_ = UpdateParameters< ParmHolder<BondParmType> >(set0.UB(), set1.UB(), "Urey-Bradley", verbose); + // Atom types + uc.nAtomTypeUpdated_ = UpdateParameters< ParmHolder<AtomType> >(set0.AT(), set1.AT(), "atom type", verbose); + // LJ Pairs + uc.nLJparamsUpdated_ = UpdateParameters< ParmHolder<NonbondType> >(set0.NB(), set1.NB(), "LJ A-B", verbose); + // LJ 1-4 Pairs + uc.nLJ14paramsUpdated_ = UpdateParameters< ParmHolder<NonbondType> >(set0.NB14(), set1.NB14(), "LJ A-B 1-4", verbose); + // HB LJ 10-12 Pairs + uc.nHBparamsUpdated_ = UpdateParameters< ParmHolder<HB_ParmType> >(set0.HB(), set1.HB(), "LJ HB 10-12", verbose); + // CMAP + uc.nCmapUpdated_ = updateCmapParams(set1.CMAP(), debugIn, verbose); + + if (debugIn > 0) set0.Debug("newp.dat"); + return 0; +} + +/** Add hydrophilic atom type. */ +int ParameterSet::AddHydrophilicAtomType(NameType const& atype) { + for (NsetType::const_iterator it = hydrophilicAtomTypes_.begin(); it != hydrophilicAtomTypes_.end(); ++it) + { + if (atype == *it) { + mprintf("Warning: %s already defined as hydrophilic atom type.\n", atype.Truncated().c_str()); + return 0; + } + } + // TODO check against existing types? + hydrophilicAtomTypes_.push_back( atype ); + return 0; +} + +/** \return Single string with total parameter set name */ +std::string ParameterSet::ParamSetName() const { + if (name_.size() == 1) + return name_.front(); + else if (name_.size() > 1) { + std::string out = name_.front(); + for (unsigned int idx = 1; idx < name_.size(); idx++) + out.append(" + " + name_[idx]); + return out; + } + return std::string(); +} + +/** Set parameter set name. */ +void ParameterSet::SetParamSetName(std::string const& nameIn) { + name_.push_back( nameIn ); +} + +/** Set parameter set file */ +void ParameterSet::SetParamSetFile(FileName const& fnameIn) { + fname_.push_back( fnameIn ); +} + +/** Set nonbond parameter set name. */ +void ParameterSet::SetNbParamName(std::string const& nameIn) { + NBname_ = nameIn; +} diff --git a/src/Parm/ParameterSet.h b/src/Parm/ParameterSet.h new file mode 100644 index 0000000000..9e154ebb39 --- /dev/null +++ b/src/Parm/ParameterSet.h @@ -0,0 +1,129 @@ +#ifndef INC_PARAMETERSET_H +#define INC_PARAMETERSET_H +#include "ParmHolder.h" +#include "DihedralParmHolder.h" +#include "ImproperParmHolder.h" +#include "../AtomType.h" +#include "../CmapParmHolder.h" +#include "../FileName.h" +#include "../ParameterTypes.h" +class CpptrajFile; +/// Hold a set of parameters for atom types, bonds, angles, etc. +/** NOTE: Although LJ 6-12 regular type indices and 1-4 type indices + * are currently the same, there is a separate 1-4 types variable + * here in case that ever changes in the future. + */ +namespace Cpptraj { +namespace Parm { +class ParameterSet { + public: + ParameterSet() : hasLJparams_(false) {} + + typedef std::vector<FileName> FNarray; + + ParmHolder<AtomType>& AT() { return atomTypes_; } + ParmHolder<NonbondType>& NB() { return nbParm_; } + ParmHolder<NonbondType>& NB14() { return nb14Parm_; } + ParmHolder<double>& LJC() { return ljcParm_; } + ParmHolder<BondParmType>& BP() { return bondParm_; } + ParmHolder<AngleParmType>& AP() { return angleParm_; } + ParmHolder<BondParmType>& UB() { return ubParm_; } + ImproperParmHolder& IP() { return impParm_; } + DihedralParmHolder& DP() { return dihParm_; } + ParmHolder<HB_ParmType>& HB() { return HBparm_; } + //Cpptraj::Parm::CmapParmHolder& CMAP() { return CMAP_; } + CmapParmHolder& CMAP() { return CMAP_; } + + void SetHasLJparams(bool b) { hasLJparams_ = b; } + bool HasLJparams() const { return hasLJparams_; } + + ParmHolder<AtomType> const& AT() const { return atomTypes_; } + ParmHolder<NonbondType> const& NB() const { return nbParm_; } + ParmHolder<NonbondType> const& NB14() const { return nb14Parm_; } + ParmHolder<double> const& LJC() const { return ljcParm_; } + ParmHolder<BondParmType> const& BP() const { return bondParm_; } + ParmHolder<AngleParmType> const& AP() const { return angleParm_; } + ParmHolder<BondParmType> const& UB() const { return ubParm_; } + ImproperParmHolder const& IP() const { return impParm_; } + DihedralParmHolder const& DP() const { return dihParm_; } + ParmHolder<HB_ParmType> const& HB() const { return HBparm_; } + //Cpptraj::Parm::CmapParmHolder const& CMAP() const { return CMAP_; } + CmapParmHolder const& CMAP() const { return CMAP_; } + std::string const& NbParamName() const { return NBname_; } + /// \return Parameter set names as a single line + std::string ParamSetName() const; + /// \return File name array + FNarray const& ParamSetFile() const { return fname_; } + /// Write parameters to file with given name + void Debug(const char*) const; + /// Write parameters to stdout + void Debug() const { return Debug(""); } + /// Print parameters to given file + void Print(CpptrajFile&) const; + /// Print a summary to stdout + void Summary() const; + + /// Used to track what parameters were updated during UpdateParams + class UpdateCount { + public: + UpdateCount() : nBondsUpdated_(0), nAnglesUpdated_(0), + nDihedralsUpdated_(0), nImpropersUpdated_(0), + nUreyBradleyUpdated_(0), nAtomTypeUpdated_(0), + nLJparamsUpdated_(0), nLJCUpdated_(0), + nLJ14paramsUpdated_(0), nHBparamsUpdated_(0), + nCmapUpdated_(0) {} + unsigned int nBondsUpdated_; + unsigned int nAnglesUpdated_; + unsigned int nDihedralsUpdated_; + unsigned int nImpropersUpdated_; + unsigned int nUreyBradleyUpdated_; + unsigned int nAtomTypeUpdated_; + unsigned int nLJparamsUpdated_; + unsigned int nLJCUpdated_; + unsigned int nLJ14paramsUpdated_; + unsigned int nHBparamsUpdated_; + unsigned int nCmapUpdated_; + }; + /// Update this set with parameters from given set + int UpdateParamSet(ParameterSet const&, UpdateCount&, int, int); + /// Add hydrophilic atom type + int AddHydrophilicAtomType(NameType const&); + /// Set parameter set name + void SetParamSetName(std::string const&); + /// Set parameter set file name + void SetParamSetFile(FileName const&); + /// Set nonbond parameter set name + void SetNbParamName(std::string const&); + /// \return Size in memory in bytes + size_t DataSize() const; + /// \return Number of hydrophilic atom types + unsigned int NhydrophilicAtomTypes() const { return hydrophilicAtomTypes_.size(); } + private: + typedef std::vector<NameType> NsetType; + typedef std::vector<std::string> Sarray; + + /// Update cmap parameters + int updateCmapParams(CmapParmHolder const&, int, int); + + Sarray name_; ///< Parameter set name(s) + FNarray fname_; ///< Parameter set file(s) + std::string NBname_; ///< Nonbond set name + + ParmHolder<AtomType> atomTypes_; ///< Atom types + ParmHolder<NonbondType> nbParm_; ///< Lennard-Jones 6-12 A-B parameters + ParmHolder<NonbondType> nb14Parm_; ///< LJ 6-12 A-B parameters for 1-4 interactions + ParmHolder<double> ljcParm_; ///< LJ 12-6-4 C parameters + ParmHolder<BondParmType> bondParm_; ///< Hooke's law bond potential parameters + ParmHolder<AngleParmType> angleParm_; ///< Hooke's law angle potential parameters + ParmHolder<BondParmType> ubParm_; ///< Urey-Bradley parameters + ImproperParmHolder impParm_; ///< Improper dihedral parameters + DihedralParmHolder dihParm_; ///< Cosine-series dihedral parameters + ParmHolder<HB_ParmType> HBparm_; ///< LJ 10-12 A-B parameters for hydrogen bonds + //Cpptraj::Parm::CmapParmHolder CMAP_; ///< CMAP parameters; unlike others, not indexed by atom type + CmapParmHolder CMAP_; ///< CMAP parameters; unlike others, not indexed by atom type + NsetType hydrophilicAtomTypes_; ///< Hold names of hydrophilic atom types + bool hasLJparams_; +}; +} +} +#endif diff --git a/src/Parm/ParmArray.h b/src/Parm/ParmArray.h new file mode 100644 index 0000000000..99a8507148 --- /dev/null +++ b/src/Parm/ParmArray.h @@ -0,0 +1,94 @@ +#ifndef INC_PARM_PARMARRAY_H +#define INC_PARM_PARMARRAY_H +#include <vector> +#include <utility> // std::pair +#include "ParmEnum.h" +#include "../TypeNameHolder.h" +//#incl ude "CpptrajStdio.h" // DEBUG +namespace Cpptraj { +namespace Parm { +/// Used to associate atom type names with an object (parameter etc) in an array +template <class T> class ParmArray { + typedef std::pair<TypeNameHolder,T> Bpair; + typedef std::vector<Bpair> Bmap; + public: + /// CONSTRUCTOR + ParmArray() {} + /// Clear all parameters + void clear() { bpmap_.clear(); } + /// \return Number of parameters + size_t size() const { return bpmap_.size(); } + /// \return true if no parameters + bool empty() const { return bpmap_.empty(); } + /// \return Last parameter to be overwritten from AddParm() + T const& PreviousParm() const { return previousParm_; } + /// Add (or update if allowed) given parameter to holder. + RetType AddParm(TypeNameHolder const& types, T const& bp, bool allowUpdate) { + // Check if parm for these types exist + typename Bmap::iterator it = bpmap_.begin(); + for (; it != bpmap_.end(); ++it) + if (it->first.Match_NoWC( types )) break; + if (it == bpmap_.end()) { + // New parm + //mprintf("DEBUG: New parameter:"); + //for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) + // mprintf(" '%s'", *(*it)); + //mprintf("\n"); + bpmap_.push_back( Bpair(types, bp) ); + } else { + if (bp < it->second || it->second < bp) { + //mprintf("DEBUG: Potential update of existing parameter:"); + //for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) + // mprintf(" '%s'", *(*it)); + //mprintf("\n"); + if (allowUpdate) { + previousParm_ = it->second; + it->second = bp; + return UPDATED; + } else { + return ERR; + } + } else { + //mprintf("DEBUG: Existing parameter:"); + //for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) + // mprintf(" '%s'", *(*it)); + //mprintf("\n"); + return SAME; + } + } + return ADDED; + } + /// Constant iterator + typedef typename Bmap::const_iterator const_iterator; + /// \return constant iterator to beginning + const_iterator begin() const { return bpmap_.begin(); } + /// \return constant iterator to end. + const_iterator end() const { return bpmap_.end(); } + /// Iterator + typedef typename Bmap::iterator iterator; + /// \return iterator to beginning + iterator begin() { return bpmap_.begin(); } + /// \return iterator to end + iterator end() { return bpmap_.end(); } + /// \return const iterator to parameter matching the given types. + const_iterator GetParam(TypeNameHolder const& types) const { + for (const_iterator it = bpmap_.begin(); it != bpmap_.end(); ++it) + if (it->first.Match_NoWC( types )) return it; + return bpmap_.end(); + } + /// \return size in memory in bytes + size_t DataSize() const { + if (bpmap_.empty()) return 0; + const_iterator elt0 = begin(); + // Assume all TypeNameHolders are the same size + return (bpmap_.size() * elt0->first.DataSize()) + + (bpmap_.size() * sizeof(T)) + + sizeof(Bmap); + } + private: + Bmap bpmap_; + T previousParm_; ///< When parameter is updated, store previous value. +}; +} // END namespace Parm +} // END namespace Cpptraj +#endif diff --git a/src/Parm/ParmEnum.cpp b/src/Parm/ParmEnum.cpp new file mode 100644 index 0000000000..aba9d35618 --- /dev/null +++ b/src/Parm/ParmEnum.cpp @@ -0,0 +1,15 @@ +#include "ParmEnum.h" + +const char* Cpptraj::Parm::WaterModelStr(WaterModelType wm) { + switch (wm) { + case TIP3P : return "TIP3P"; + case TIP4PEW : return "TIP4Pew"; + case SPCE : return "SPCe"; + case OPC3 : return "OPC3"; + case OPC : return "OPC"; + case FB3 : return "FB3"; + case FB4 : return "FB4"; + case UNKNOWN_WATER_MODEL: return "Unknown water model"; + } + return 0; +} diff --git a/src/Parm/ParmEnum.h b/src/Parm/ParmEnum.h new file mode 100644 index 0000000000..5a5d067a02 --- /dev/null +++ b/src/Parm/ParmEnum.h @@ -0,0 +1,16 @@ +#ifndef INC_PARM_PARMENUM_H +#define INC_PARM_PARMENUM_H +namespace Cpptraj { +/** @brief Namespace containing classes related to parameters. + * + * This namespace contains classes/functions related to assigning, updating, and + * manipulating paramters. + */ +namespace Parm { + enum RetType { ADDED = 0, SAME, UPDATED, ERR }; + + enum WaterModelType { TIP3P = 0, TIP4PEW, SPCE, OPC3, OPC, FB3, FB4, UNKNOWN_WATER_MODEL }; + const char* WaterModelStr(WaterModelType); +} +} +#endif diff --git a/src/Parm/ParmHolder.h b/src/Parm/ParmHolder.h new file mode 100644 index 0000000000..7ec2946427 --- /dev/null +++ b/src/Parm/ParmHolder.h @@ -0,0 +1,104 @@ +#ifndef INC_PARM_PARMHOLDER_H +#define INC_PARM_PARMHOLDER_H +#include <map> +#include "ParmEnum.h" +#include "../TypeNameHolder.h" +namespace Cpptraj { +namespace Parm { +/// Used to associate atom type names with an object (parameter etc) +template <class T> class ParmHolder { + typedef std::pair<TypeNameHolder,T> Bpair; + typedef std::map<TypeNameHolder,T> Bmap; + public: + /// CONSTRUCTOR + ParmHolder() {} + /// Clear all parameters + void clear() { bpmap_.clear(); } + /// \return Number of parameters + size_t size() const { return bpmap_.size(); } + /// \return true if no parameters + bool empty() const { return bpmap_.empty(); } + /// \return Last parameter to be overwritten from AddParm() + T const& PreviousParm() const { return previousParm_; } + /// Add (or update if allowed) given parameter to holder. + RetType AddParm(TypeNameHolder const& typesIn, T const& bp, bool allowUpdate) { + // Ensure types are sorted + TypeNameHolder types = typesIn; + types.SortNames(); + // Check if parm for these types exist + typename Bmap::iterator it = bpmap_.lower_bound( types ); + if (it == bpmap_.end() || it->first != types) { + // New parm + it = bpmap_.insert(it, Bpair(types, bp)); + } else { + if (bp < it->second || it->second < bp) { + // Potential update of existing parameter + if (allowUpdate) { + previousParm_ = it->second; + it->second = bp; + return UPDATED; + } else { + return ERR; + } + } else { + //mprintf("DEBUG: Existing parameter:"); + //for (TypeNameHolder::const_iterator it = types.begin(); it != types.end(); ++it) + // mprintf(" '%s'", *(*it)); + //mprintf("\n"); + return SAME; + } + } + return ADDED; + } + /// Constant iterator + typedef typename Bmap::const_iterator const_iterator; + /// \return constant iterator to beginning + const_iterator begin() const { return bpmap_.begin(); } + /// \return constant iterator to end. + const_iterator end() const { return bpmap_.end(); } + /// Iterator + typedef typename Bmap::iterator iterator; + /// \return iterator to beginning + iterator begin() { return bpmap_.begin(); } + /// \return iterator to end + iterator end() { return bpmap_.end(); } + /// \return Parameter matching given types, or empty parameter if not found. + T FindParam(TypeNameHolder const& typesIn, bool& found) const { + TypeNameHolder types = typesIn; + types.SortNames(); + typename Bmap::const_iterator it = bpmap_.find( types ); + if (it == bpmap_.end()) { + found = false; + return T(); + } + found = true; + return it->second; + } + /// \return iterator to parameter matching the given types. + iterator GetParam(TypeNameHolder const& typesIn) { + TypeNameHolder types = typesIn; + types.SortNames(); + return bpmap_.find( types ); + } + /// \return const iterator to parameter matching the given types. + const_iterator GetParam(TypeNameHolder const& typesIn) const { + TypeNameHolder types = typesIn; + types.SortNames(); + return bpmap_.find( types ); + } + /// \return size in memory in bytes + size_t DataSize() const { + if (bpmap_.empty()) return 0; + const_iterator elt0 = begin(); + // Assume all TypeNameHolders are the same size + return (bpmap_.size() * elt0->first.DataSize()) + + (bpmap_.size() * sizeof(T)) + + sizeof(Bmap); + } + private: + Bmap bpmap_; + T previousParm_; ///< When parameter is updated, store previous value. +}; +} // END namespace Parm +} // END namespace Cpptraj +#endif diff --git a/src/Parm/parmdepend b/src/Parm/parmdepend new file mode 100644 index 0000000000..2581210beb --- /dev/null +++ b/src/Parm/parmdepend @@ -0,0 +1,9 @@ +AssignParams.o : AssignParams.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../CmapParmHolder.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../GuessAtomHybridization.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Parm/ParmEnum.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../Structure/GenerateConnectivityArrays.h ../SymbolExporting.h ../Timer.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h AssignParams.h DihedralParmHolder.h GetParams.h ImproperParmHolder.h ParameterSet.h ParmArray.h ParmEnum.h ParmHolder.h +Bond_Params.o : Bond_Params.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h Bond_Params.h +DihedralParmSet.o : DihedralParmSet.cpp ../AtomType.h ../CmapParmHolder.h ../Constants.h ../CpptrajStdio.h ../FileName.h ../NameType.h ../ParameterTypes.h ../Parm/ParmEnum.h ../TypeNameHolder.h DihedralParmHolder.h DihedralParmSet.h ImproperParmHolder.h ParameterSet.h ParmEnum.h ParmHolder.h +GB_Params.o : GB_Params.cpp ../ArgList.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h GB_Params.h +GetParams.o : GetParams.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../CmapParmHolder.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Parm/ParmEnum.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h DihedralParmHolder.h DihedralParmSet.h GetParams.h ImproperParmHolder.h ParameterSet.h ParmEnum.h ParmHolder.h +LJ1264_Params.o : LJ1264_Params.cpp ../ArgList.h ../Atom.h ../AtomMask.h ../Box.h ../BufferedLine.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h LJ1264_Params.h ParmEnum.h +Merge.o : Merge.cpp ../Atom.h ../Constants.h ../CpptrajStdio.h ../NameType.h ../ParameterTypes.h ../Residue.h ../StringRoutines.h ../SymbolExporting.h ../TypeNameHolder.h Merge.h ParmEnum.h ParmHolder.h +ParameterSet.o : ParameterSet.cpp ../AtomType.h ../CmapParmHolder.h ../Constants.h ../CpptrajFile.h ../CpptrajStdio.h ../FileIO.h ../FileName.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Parm/ParmEnum.h ../TypeNameHolder.h ../UpdateParameters.h DihedralParmHolder.h ImproperParmHolder.h ParameterSet.h ParmEnum.h ParmHolder.h +ParmEnum.o : ParmEnum.cpp ParmEnum.h diff --git a/src/Parm/parmfiles b/src/Parm/parmfiles new file mode 100644 index 0000000000..b9e06f928b --- /dev/null +++ b/src/Parm/parmfiles @@ -0,0 +1,11 @@ +# Files for Parm subdirectory. +PARM_SOURCES= \ + AssignParams.cpp \ + Bond_Params.cpp \ + DihedralParmSet.cpp \ + GB_Params.cpp \ + GetParams.cpp \ + LJ1264_Params.cpp \ + Merge.cpp \ + ParameterSet.cpp \ + ParmEnum.cpp diff --git a/src/ParmFile.cpp b/src/ParmFile.cpp index 268e8da2d9..970179c672 100644 --- a/src/ParmFile.cpp +++ b/src/ParmFile.cpp @@ -176,9 +176,12 @@ int ParmFile::ReadTopology(Topology& Top, FileName const& fnameIn, if (parmio->processReadArgs(argIn)) return 1; int err = parmio->ReadParm( parmName_.Full(), Top); // Perform setup common to all parm files. - if (err == 0) + if (err == 0) { err = Top.CommonSetup( molsearch, renumberResidues ); - else + if (Top.HasNoncontiguousMols()) + mprintf("Warning: The 'fixatomorder' command can be used to reorder the topology and any\n" + "Warning: associated coordinates.\n"); + } else mprinterr("Error reading topology file '%s'\n", parmName_.full()); delete parmio; if (err > 0) return 1; diff --git a/src/Parm_Amber.cpp b/src/Parm_Amber.cpp index 56879b6ea4..2e29930487 100644 --- a/src/Parm_Amber.cpp +++ b/src/Parm_Amber.cpp @@ -7,8 +7,9 @@ #include "Parm_Amber.h" #include "CpptrajStdio.h" #include "Constants.h" // ELECTOAMBER, AMBERTOELEC -#include "StringRoutines.h" // NoTrailingWhitespace #include "ExclusionArray.h" +#include "Parm/GetParams.h" +#include "StringRoutines.h" // NoTrailingWhitespace // ---------- Constants and Enumerated types ----------------------------------- const int Parm_Amber::AMBERPOINTERS_ = 31; @@ -60,6 +61,7 @@ static const char* F5E16 = "%FORMAT(5E16.8)"; static const char* F3I8 = "%FORMAT(3I8)"; static const char* F1a80 = "%FORMAT(1a80)"; static const char* F1I8 = "%FORMAT(1I8)"; +static const char* F8I10 = "%FORMAT(8I10)"; /// Constant strings for Amber parm flags and fortran formats. Enumerated by FlagType const Parm_Amber::ParmFlag Parm_Amber::FLAGS_[] = { { "POINTERS", F10I8 }, ///< Described above in topValues @@ -133,6 +135,10 @@ const Parm_Amber::ParmFlag Parm_Amber::FLAGS_[] = { { "CHARMM_CMAP_PARAMETER_", "%FORMAT(8(F9.5))"}, // CMAP grid { "CHARMM_CMAP_INDEX", "%FORMAT(6I8)" }, // Atom i,j,k,l,m of cross term and idx { "FORCE_FIELD_TYPE", "%FORMAT(i2,a78)"},// NOTE: Cannot use with SetFortranType + { "CHARGE", "%FORMAT(3E24.16)"}, // CHAMBER charge, F_CHM_CHARGE + { "ANGLE_EQUIL_VALUE", "%FORMAT(3E25.17)"}, // CHAMBER angle eq value, F_CHM_ANGLETEQ + { "LENNARD_JONES_ACOEF", "%FORMAT(3E24.16)"}, // CHAMBER LJ A coef, F_CHM_LJ_A + { "LENNARD_JONES_BCOEF", "%FORMAT(3E24.16)"}, // CHAMBER LJ B coef, F_CHM_LJ_B // PDB extra info { "RESIDUE_NUMBER", "%FORMAT(20I4)" }, // PDB residue number { "RESIDUE_CHAINID", F20a4 }, // PDB chain ID @@ -141,11 +147,19 @@ const Parm_Amber::ParmFlag Parm_Amber::FLAGS_[] = { { "ATOM_BFACTOR", "%FORMAT(10F8.2)"}, // PDB atom B-factors { "ATOM_OCCUPANCY", "%FORMAT(10F8.2)"}, // PDB atom occupancies { "ATOM_NUMBER", F10I8}, // PDB original atom serial #s - // CHARMM CMAP + // AMBER CMAP { "CMAP_COUNT", "%FORMAT(2I8)" }, // # CMAP terms, # unique CMAP params { "CMAP_RESOLUTION", "%FORMAT(20I4)"}, // # steps along each Phi/Psi CMAP axis - { "CMAP_PARAMETER_", "%FORMAT(8(F9.5))"}, // CMAP grid + { "CMAP_PARAMETER_", "%FORMAT(8F9.5)"}, // CMAP grid { "CMAP_INDEX", "%FORMAT(6I8)" }, // Atom i,j,k,l,m of cross term and idx + // Extended format flags + { "DIHEDRALS_INC_HYDROGEN", F8I10 }, // For topologies with high atom counts + { "DIHEDRALS_WITHOUT_HYDROGEN", F8I10 }, // For topologies with high atom counts + { "BONDS_INC_HYDROGEN", F8I10 }, ///< Bonds to hydrogen + { "BONDS_WITHOUT_HYDROGEN", F8I10 }, ///< Bonds not including hydrogen + { "ANGLES_INC_HYDROGEN", F8I10 }, + { "ANGLES_WITHOUT_HYDROGEN", F8I10 }, + { "POINTERS", F8I10 }, ///< Described above in topValues { 0, 0 } }; @@ -165,9 +179,13 @@ Parm_Amber::Parm_Amber() : atProblemFlag_(false), N_impropers_(0), N_impTerms_(0), + ncoords_(0), writeChamber_(true), - writeEmptyArrays_(false), - writePdbInfo_(true) + writeEmptyArrays_(true), + writePdbInfo_(true), + writeComments_(true), + has_valid_nonbond_params_(true), + hasBadDihedrals_(false) { UB_count_[0] = 0; UB_count_[1] = 0; @@ -248,6 +266,11 @@ int Parm_Amber::ReadParm(FileName const& fname, Topology& TopIn ) { else err = ReadNewParm( TopIn ); if (err != 0) return 1; + // If nonbond info is invalid, clear it + if (!has_valid_nonbond_params_) { + mprintf("Warning: Topology '%s' has invalid nonbond parameters. Clearing.\n", fname.full()); + TopIn.SetNonbond().Clear(); + } // Determine Atom elements if (atomicNums_.empty()) { mprintf("\tThis Amber topology does not include atomic numbers.\n" @@ -669,7 +692,8 @@ int Parm_Amber::ReadPointers(int Npointers, Topology& TopIn, FortranData const& TopIn.SetNonbond().SetupLJforNtypes( values_[NTYPES] ); numLJparm_ = TopIn.Nonbond().NBarray().size(); TopIn.SetNonbond().SetNHBterms( values_[NPHB] ); - TopIn.SetNatyp( values_[NATYP] ); + ncoords_ = values_[NATOM] * 3; + //TopIn.SetNatyp( values_[NATYP] ); return 0; } @@ -682,7 +706,10 @@ int Parm_Amber::SetupBuffer(FlagType ftype, int nvals, FortranData const& FMT) { if (nvals > 0) { if (debug_>0) mprintf("DEBUG: Set up buffer for '%s', %i vals.\n", FLAGS_[ftype].Flag, nvals); file_.SetupFrameBuffer( nvals, FMT.Width(), FMT.Ncols() ); - if (file_.ReadFrame()) return 1; + if (file_.ReadFrame()) { + mprinterr("Error: Read values for Flag '%s' failed.\n", FLAGS_[ftype].Flag); + return 1; + } if (debug_ > 5) { mprintf("DEBUG: '%s':\n", FLAGS_[ftype].Flag); if (debug_ > 6) mprintf("FileBuffer=[%s]", file_.Buffer()); @@ -737,8 +764,14 @@ int Parm_Amber::ReadAtomicMass(Topology& TopIn, FortranData const& FMT) { */ int Parm_Amber::ReadAtomTypeIndex(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_ATYPEIDX, values_[NATOM], FMT)) return 1; - for (int idx = 0; idx != values_[NATOM]; idx++) - TopIn.SetAtom(idx).SetTypeIndex( atoi(file_.NextElement()) - 1 ); + for (int idx = 0; idx != values_[NATOM]; idx++) { + int atypeIdx = atoi(file_.NextElement()); + if (atypeIdx < 1) { + mprintf("Warning: Bad atom type index < 1 (%i) for atom %i\n", atypeIdx, idx+1); + has_valid_nonbond_params_ = false; + } + TopIn.SetAtom(idx).SetTypeIndex( atypeIdx - 1 ); + } return 0; } @@ -954,12 +987,23 @@ int Parm_Amber::ReadAngles(Topology& TopIn, FortranData const& FMT) { } // Parm_Amber::GetDihedral() +/** Indices for atoms 3/4 are allowed to be negative, indicates end/improper + * dihedral respectively. + */ DihedralType Parm_Amber::GetDihedral() { int a1 = atoi(file_.NextElement()); int a2 = atoi(file_.NextElement()); int a3 = atoi(file_.NextElement()); int a4 = atoi(file_.NextElement()); int didx = atoi(file_.NextElement()); + if (a1 < 0 || a1 >= ncoords_ || + a2 < 0 || a2 >= ncoords_ || + a3 >= ncoords_ || + a4 >= ncoords_ || + didx < 0 || didx - 1 >= values_[NPTRA]) + { + hasBadDihedrals_ = true; + } return DihedralType( a1 / 3, a2 / 3, a3 / 3, a4 / 3, didx - 1 ); } @@ -967,8 +1011,14 @@ DihedralType Parm_Amber::GetDihedral() { int Parm_Amber::ReadDihedralsH(Topology& TopIn, FortranData const& FMT) { int nvals = values_[NPHIH]*5; if (SetupBuffer(F_DIHH, nvals, FMT)) return 1; - for (int idx = 0; idx != nvals; idx += 5) - TopIn.AddDihedral( GetDihedral(), true ); + for (int idx = 0; idx != nvals; idx += 5) { + DihedralType dih = GetDihedral(); + if (hasBadDihedrals_) { + mprintf("Warning: Dihedrals including hydrogen have bad atom or parm indices, skipping.\n"); + break; + } + TopIn.AddDihedral( dih, true ); + } return 0; } @@ -976,8 +1026,14 @@ int Parm_Amber::ReadDihedralsH(Topology& TopIn, FortranData const& FMT) { int Parm_Amber::ReadDihedrals(Topology& TopIn, FortranData const& FMT) { int nvals = values_[MPHIA]*5; if (SetupBuffer(F_DIH, nvals, FMT)) return 1; - for (int idx = 0; idx != nvals; idx += 5) - TopIn.AddDihedral( GetDihedral(), false ); + for (int idx = 0; idx != nvals; idx += 5) { + DihedralType dih = GetDihedral(); + if (hasBadDihedrals_) { + mprintf("Warning: Dihedrals not including hydrogen have bad atom or parm indices, skipping.\n"); + break; + } + TopIn.AddDihedral( dih, false ); + } return 0; } @@ -1171,7 +1227,10 @@ int Parm_Amber::ReadPdbBfactor(Topology& TopIn, FortranData const& FMT) { int Parm_Amber::ReadPdbOccupancy(Topology& TopIn, FortranData const& FMT) { TopIn.AllocOccupancy(); - if (SetupBuffer(F_PDB_OCC, values_[NATOM], FMT)) return 1; + if (SetupBuffer(F_PDB_OCC, values_[NATOM], FMT)) { + //mprintf("DEBUG: ReadPdbOccupancy buffer:\n%s\n", file_.Buffer()); + return 1; + } for (int idx = 0; idx != values_[NATOM]; idx++) TopIn.SetOccupancy(idx, atof(file_.NextElement()) ); return 0; @@ -1206,7 +1265,7 @@ static inline int fftype_err(const char* ptr, const char* Flag) { * If this fails print a warning and try to continue. */ int Parm_Amber::ReadChamberFFtype(Topology& TopIn, FortranData const& FMT) { - mprintf("\tCHAMBER topology:\n"); + mprintf("\tForce field description:\n"); if (FMT.Ftype() != FINT) mprintf("Warning: In '%s' expected format to begin with integer. Skipping.\n", FLAGS_[F_FF_TYPE].Flag); @@ -1224,7 +1283,7 @@ int Parm_Amber::ReadChamberFFtype(Topology& TopIn, FortranData const& FMT) { if (nlines > 0) { std::string ff_desc = NoTrailingWhitespace( ptr + FMT.Width() ); mprintf(" %s\n", ff_desc.c_str()); - TopIn.SetChamber().AddDescription( ff_desc ); + TopIn.AddDescription( ff_desc ); for (int line = 1; line < nlines; line++) { ptr = file_.NextLine(); err = fftype_err(ptr, Flag); @@ -1233,7 +1292,7 @@ int Parm_Amber::ReadChamberFFtype(Topology& TopIn, FortranData const& FMT) { else if (err == 2) break; ff_desc = NoTrailingWhitespace( ptr + FMT.Width() ); mprintf(" %s\n", ff_desc.c_str()); - TopIn.SetChamber().AddDescription( ff_desc ); + TopIn.AddDescription( ff_desc ); } } } @@ -1247,8 +1306,8 @@ int Parm_Amber::ReadChamberUBCount(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_CHM_UBC, 2, FMT)) return 1; UB_count_[0] = atoi(file_.NextElement()); // Number of bonds UB_count_[1] = atoi(file_.NextElement()); // Number of parameters - TopIn.SetChamber().ReserveUBterms( UB_count_[0] ); - TopIn.SetChamber().ResizeUBparm( UB_count_[1] ); + TopIn.ReserveUBterms( UB_count_[0] ); + TopIn.ResizeUBparm( UB_count_[1] ); UB_count_[0] *= 3; // Number of bond terms (bonds x 3) return 0; } @@ -1261,7 +1320,7 @@ int Parm_Amber::ReadChamberUBTerms(Topology& TopIn, FortranData const& FMT) { int a1 = atoi(file_.NextElement()) - 1; int a2 = atoi(file_.NextElement()) - 1; int bidx = atoi(file_.NextElement()) - 1; - TopIn.SetChamber().AddUBterm( BondType(a1, a2, bidx) ); + TopIn.AddUBterm( BondType(a1, a2, bidx) ); } return 0; } @@ -1270,7 +1329,7 @@ int Parm_Amber::ReadChamberUBTerms(Topology& TopIn, FortranData const& FMT) { int Parm_Amber::ReadChamberUBFC(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_CHM_UBFC, UB_count_[1], FMT)) return 1; for (int idx = 0; idx != UB_count_[1]; idx++) - TopIn.SetChamber().SetUBparm(idx).SetRk( atof(file_.NextElement()) ); + TopIn.SetUBparm(idx).SetRk( atof(file_.NextElement()) ); return 0; } @@ -1278,7 +1337,7 @@ int Parm_Amber::ReadChamberUBFC(Topology& TopIn, FortranData const& FMT) { int Parm_Amber::ReadChamberUBEQ(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_CHM_UBEQ, UB_count_[1], FMT)) return 1; for (int idx = 0; idx != UB_count_[1]; idx++) - TopIn.SetChamber().SetUBparm(idx).SetReq( atof(file_.NextElement()) ); + TopIn.SetUBparm(idx).SetReq( atof(file_.NextElement()) ); return 0; } @@ -1286,7 +1345,7 @@ int Parm_Amber::ReadChamberUBEQ(Topology& TopIn, FortranData const& FMT) { int Parm_Amber::ReadChamberNumImpropers(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_CHM_NIMP, 1, FMT)) return 1; N_impropers_ = atoi(file_.NextElement()); - TopIn.SetChamber().ReserveImproperTerms( N_impropers_ ); + TopIn.ReserveImproperTerms( N_impropers_ ); N_impropers_ *= 5; // Number of improper terms (impropers * 5) return 0; } @@ -1295,7 +1354,7 @@ int Parm_Amber::ReadChamberNumImpropers(Topology& TopIn, FortranData const& FMT) int Parm_Amber::ReadChamberNumImpTerms(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_CHM_NIMPT, 1, FMT)) return 1; N_impTerms_ = atoi(file_.NextElement()); - TopIn.SetChamber().ResizeImproperParm( N_impTerms_ ); + TopIn.ResizeImproperParm( N_impTerms_ ); return 0; } @@ -1309,7 +1368,7 @@ int Parm_Amber::ReadChamberImpropers(Topology& TopIn, FortranData const& FMT) { int a3 = atoi(file_.NextElement()) - 1; int a4 = atoi(file_.NextElement()) - 1; int didx = atoi(file_.NextElement()) - 1; - TopIn.SetChamber().AddImproperTerm( DihedralType(a1, a2, a3, a4, didx) ); + TopIn.AddImproperTerm( DihedralType(a1, a2, a3, a4, didx) ); } return 0; } @@ -1318,7 +1377,7 @@ int Parm_Amber::ReadChamberImpropers(Topology& TopIn, FortranData const& FMT) { int Parm_Amber::ReadChamberImpFC(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_CHM_IMPFC, N_impTerms_, FMT)) return 1; for (int idx = 0; idx != N_impTerms_; idx++) - TopIn.SetChamber().SetImproperParm(idx).SetPk( atof(file_.NextElement()) ); + TopIn.SetImproperParm(idx).SetPk( atof(file_.NextElement()) ); return 0; } @@ -1326,18 +1385,18 @@ int Parm_Amber::ReadChamberImpFC(Topology& TopIn, FortranData const& FMT) { int Parm_Amber::ReadChamberImpPHASE(Topology& TopIn, FortranData const& FMT) { if (SetupBuffer(F_CHM_IMPP, N_impTerms_, FMT)) return 1; for (int idx = 0; idx != N_impTerms_; idx++) - TopIn.SetChamber().SetImproperParm(idx).SetPhase( atof(file_.NextElement()) ); + TopIn.SetImproperParm(idx).SetPhase( atof(file_.NextElement()) ); return 0; } // Parm_Amber::ReadChamberLJ14A() int Parm_Amber::ReadChamberLJ14A(Topology& TopIn, FortranData const& FMT) { // Ensure LJ terms are set up - if (TopIn.Chamber().LJ14().empty()) - TopIn.SetChamber().SetNLJ14terms( numLJparm_ ); + if (TopIn.Nonbond().LJ14().empty()) + TopIn.SetNonbond().SetNLJ14terms( numLJparm_ ); if (SetupBuffer(F_LJ14A, numLJparm_, FMT)) return 1; for (int idx = 0; idx != numLJparm_; idx++) { - TopIn.SetChamber().SetLJ14(idx).SetA( FileBufferToDouble(F_LJ14A, idx, numLJparm_) ); + TopIn.SetNonbond().SetLJ14(idx).SetA( FileBufferToDouble(F_LJ14A, idx, numLJparm_) ); if (atProblemFlag_) break; } return 0; @@ -1346,11 +1405,11 @@ int Parm_Amber::ReadChamberLJ14A(Topology& TopIn, FortranData const& FMT) { // Parm_Amber::ReadChamberLJ14B() int Parm_Amber::ReadChamberLJ14B(Topology& TopIn, FortranData const& FMT) { // Ensure LJ terms are set up - if (TopIn.Chamber().LJ14().empty()) - TopIn.SetChamber().SetNLJ14terms( numLJparm_ ); + if (TopIn.Nonbond().LJ14().empty()) + TopIn.SetNonbond().SetNLJ14terms( numLJparm_ ); if (SetupBuffer(F_LJ14B, numLJparm_, FMT)) return 1; for (int idx = 0; idx != numLJparm_; idx++) { - TopIn.SetChamber().SetLJ14(idx).SetB( FileBufferToDouble(F_LJ14B, idx, numLJparm_) ); + TopIn.SetNonbond().SetLJ14(idx).SetB( FileBufferToDouble(F_LJ14B, idx, numLJparm_) ); if (atProblemFlag_) break; } return 0; @@ -1479,27 +1538,27 @@ int Parm_Amber::ReadLESid(Topology& TopIn, FortranData const& FMT) { void Parm_Amber::WriteHelp() { mprintf("\tnochamber : Do not write CHAMBER information to topology (useful for e.g. using" "\t topology for visualization with VMD).\n"); - mprintf("\twriteempty : Write Amber tree, join, and rotate info even if not present.\n"); + mprintf("\tnoempty : Do not generate Amber tree/join/rotate info if not already present.\n"); + mprintf("\twriteempty : Generate Amber tree/join/rotate info if not already present.\n"); mprintf("\tnopdbinfo : Do not write \"PDB\" info (e.g. chain IDs, original res #s, etc).\n"); + mprintf("\tnocomments : Do not write %%COMMENT lines to topology file.\n"); } +/** Process write args */ int Parm_Amber::processWriteArgs(ArgList& argIn) { writeChamber_ = !argIn.hasKey("nochamber"); - writeEmptyArrays_ = argIn.hasKey("writeempty"); + if (argIn.hasKey("noempty")) + writeEmptyArrays_ = false; + else if (argIn.hasKey("writeempty")) + writeEmptyArrays_ = true; writePdbInfo_ = !argIn.hasKey("nopdbinfo"); + writeComments_ = !argIn.hasKey("nocomments"); return 0; } /** \return Format for given flag. */ Parm_Amber::FortranData Parm_Amber::WriteFormat(FlagType fflag) const { FortranData FMT; - // For chamber, certain flags have different format (boo). - if (ptype_ == CHAMBER) { - if (fflag == F_CHARGE ) FMT.ParseFortranFormat("%FORMAT(3E24.16)"); - else if (fflag == F_ANGLETEQ) FMT.ParseFortranFormat("%FORMAT(3E25.17)"); - else if (fflag == F_LJ_A ) FMT.ParseFortranFormat("%FORMAT(3E24.16)"); - else if (fflag == F_LJ_B ) FMT.ParseFortranFormat("%FORMAT(3E24.16)"); - } if (FMT.Ftype() == UNKNOWN_FTYPE) FMT.ParseFortranFormat( FLAGS_[fflag].Fmt ); //mprintf("DEBUG: Flag '%s' format '%s'\n", FLAGS_[fflag].Flag, FMT.Fstr()); @@ -1509,7 +1568,19 @@ Parm_Amber::FortranData Parm_Amber::WriteFormat(FlagType fflag) const { /** This version uses the default flag to allocate the format string. */ int Parm_Amber::BufferAlloc(FlagType ftype, int nvals, int idx) { FortranData FMT = WriteFormat( ftype ); - return BufferAlloc(ftype, FMT, nvals, idx); + return BufferAlloc(ftype, FMT, nvals, idx, ""); +} + +/** This version uses default flag and optional comment. */ +int Parm_Amber::BufferAlloc(FlagType ftype, int nvals, int idx, std::string const& comment) { + FortranData FMT = WriteFormat( ftype ); + return BufferAlloc(ftype, FMT, nvals, idx, comment); +} + +/** This version allocates with no comment. */ +int Parm_Amber::BufferAlloc(FlagType ftype, FortranData const& FMT, int nvals, int idx) +{ + return BufferAlloc(ftype, FMT, nvals, idx, ""); } // Parm_Amber::BufferAlloc() @@ -1519,7 +1590,7 @@ int Parm_Amber::BufferAlloc(FlagType ftype, int nvals, int idx) { * \param nvals The number of values that will be written. * \param idx Index for flags that can be specified multiple times (e.g. CMAP grids). */ -int Parm_Amber::BufferAlloc(FlagType ftype, FortranData const& FMT, int nvals, int idx) { +int Parm_Amber::BufferAlloc(FlagType ftype, FortranData const& FMT, int nvals, int idx, std::string const& comment) { if ( FMT.Ftype() == UNKNOWN_FTYPE) { mprinterr("Interal Error: Could not set up format string.\n"); return 1; @@ -1531,7 +1602,11 @@ int Parm_Amber::BufferAlloc(FlagType ftype, FortranData const& FMT, int nvals, i // NOTE: Currently only needed for CMAP grid flags std::string fflag( FLAGS_[ftype].Flag ); fflag.append( integerToString( idx, 2 ) ); - file_.Printf("%%FLAG %-74s\n%-80s\n", fflag.c_str(), FMT.Fstr()); + if (!comment.empty() && writeComments_) + file_.Printf("%%FLAG %-74s\n%%COMMENT %-70s\n%-80s\n", + fflag.c_str(), comment.c_str(), FMT.Fstr()); + else + file_.Printf("%%FLAG %-74s\n%-80s\n", fflag.c_str(), FMT.Fstr()); } if (nvals > 0) { TextFormat WriteFmt; @@ -1554,18 +1629,33 @@ int Parm_Amber::BufferAlloc(FlagType ftype, FortranData const& FMT, int nvals, i return 0; } +/** Flush the current file buffer. Check for errors. */ +int Parm_Amber::flushFileBuffer(FlagType flagIn) { + int err = 0; + if (file_.ErrorCount() > 0) { + mprinterr("Error: Encountered %i errors writing FLAG %s\n", file_.ErrorCount(), FLAGS_[flagIn].Flag); + err += file_.ErrorCount(); + } + if (file_.OverflowCount() > 0) { + mprinterr("Error: Encountered %i character overflows writing FLAG %s\n", file_.OverflowCount(), FLAGS_[flagIn].Flag); + err += file_.OverflowCount(); + } + file_.FlushBuffer(); + return err; +} + // Parm_Amber::WriteBondParm() int Parm_Amber::WriteBondParm(FlagType RKflag, FlagType REQflag, BondParmArray const& BP) { // BOND RK if (BufferAlloc(RKflag, BP.size())) return 1; for (BondParmArray::const_iterator it = BP.begin(); it != BP.end(); ++it) file_.DblToBuffer( it->Rk() ); - file_.FlushBuffer(); + if (flushFileBuffer( RKflag )) return 1; // BOND REQ if (BufferAlloc(REQflag, BP.size())) return 1; for (BondParmArray::const_iterator it = BP.begin(); it != BP.end(); ++it) file_.DblToBuffer( it->Req() ); - file_.FlushBuffer(); + if (flushFileBuffer( REQflag )) return 1; return 0; } @@ -1575,12 +1665,12 @@ int Parm_Amber::WriteLJ(FlagType Aflag, FlagType Bflag, NonbondArray const& NB) if (BufferAlloc(Aflag, NB.size())) return 1; for (NonbondArray::const_iterator it = NB.begin(); it != NB.end(); ++it) file_.DblToBuffer( it->A() ); - file_.FlushBuffer(); + if (flushFileBuffer( Aflag )) return 1; // LJ B terms if (BufferAlloc(Bflag, NB.size())) return 1; for (NonbondArray::const_iterator it = NB.begin(); it != NB.end(); ++it) file_.DblToBuffer( it->B() ); - file_.FlushBuffer(); + if (flushFileBuffer( Bflag )) return 1; return 0; } @@ -1592,7 +1682,7 @@ int Parm_Amber::WriteBonds(FlagType flag, BondArray const& BND) { file_.IntToBuffer( it->A2()*3 ); file_.IntToBuffer( it->Idx()+1 ); } - file_.FlushBuffer(); + if (flushFileBuffer( flag )) return 1; return 0; } @@ -1605,29 +1695,50 @@ int Parm_Amber::WriteAngles(FlagType flag, AngleArray const& ANG) { file_.IntToBuffer( it->A3()*3 ); file_.IntToBuffer( it->Idx()+1 ); } - file_.FlushBuffer(); + if (flushFileBuffer( flag )) return 1; return 0; } /** Amber dihedral array. Indices must be x3, parameters index +1. End * dihedrals have the third atom index negative, impropers have fourth. + * Because of this, atom index 0 cannot be in the third or fourth + * position. If this happens, reverse the ordering. */ int Parm_Amber::WriteDihedrals(FlagType flag, DihedralArray const& DIH) { if (BufferAlloc(flag, DIH.size()*5)) return 1; for (DihedralArray::const_iterator it = DIH.begin(); it != DIH.end(); ++it) { - file_.IntToBuffer( it->A1()*3 ); - file_.IntToBuffer( it->A2()*3 ); + int dihIdxs[4]; + if (it->A3() == 0 || it->A4() == 0) { + if (debug_ > 0) { + mprintf("Warning: Had to turn torsion around to avoid K,L == 0\n"); + mprintf("Warning: Old order (i j k l): %i %i %i %i\n", it->A1(), it->A2(), it->A3(), it->A4()); + } + dihIdxs[0] = it->A4()*3; + dihIdxs[1] = it->A3()*3; + dihIdxs[2] = it->A2()*3; + dihIdxs[3] = it->A1()*3; + if (debug_ > 0) + mprintf("Warning: New order (i j k l): %i %i %i %i\n", it->A4(), it->A3(), it->A2(), it->A1()); + } else { + dihIdxs[0] = it->A1()*3; + dihIdxs[1] = it->A2()*3; + dihIdxs[2] = it->A3()*3; + dihIdxs[3] = it->A4()*3; + } + + file_.IntToBuffer( dihIdxs[0] ); + file_.IntToBuffer( dihIdxs[1] ); if ( it->Type() == DihedralType::BOTH || it->Type() == DihedralType::END) - file_.IntToBuffer( -(it->A3()*3) ); + file_.IntToBuffer( -(dihIdxs[2]) ); else - file_.IntToBuffer( it->A3()*3 ); + file_.IntToBuffer( dihIdxs[2] ); if ( it->Type() == DihedralType::BOTH || it->Type() == DihedralType::IMPROPER) - file_.IntToBuffer( -(it->A4()*3) ); + file_.IntToBuffer( -(dihIdxs[3]) ); else - file_.IntToBuffer( it->A4()*3 ); + file_.IntToBuffer( dihIdxs[3] ); file_.IntToBuffer( it->Idx()+1 ); } - file_.FlushBuffer(); + if (flushFileBuffer( flag )) return 1; return 0; } @@ -1645,7 +1756,7 @@ int Parm_Amber::WriteTreeChainClassification(std::vector<NameType> const& tree) if (BufferAlloc(F_ITREE, tree.size())) return 1; for (std::vector<NameType>::const_iterator it = tree.begin(); it != tree.end(); ++it) file_.CharToBuffer( *(*it) ); - file_.FlushBuffer(); + if (flushFileBuffer( F_ITREE )) return 1; return 0; } @@ -1654,7 +1765,7 @@ int Parm_Amber::WriteIjoin(std::vector<int> const& ijoin) { if (BufferAlloc(F_JOIN, ijoin.size())) return 1; for (std::vector<int>::const_iterator it = ijoin.begin(); it != ijoin.end(); ++it) file_.IntToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_JOIN )) return 1; return 0; } @@ -1663,7 +1774,7 @@ int Parm_Amber::WriteIrotat(std::vector<int> const& irotat) { if (BufferAlloc(F_IROTAT, irotat.size())) return 1; for (std::vector<int>::const_iterator it = irotat.begin(); it != irotat.end(); ++it) file_.IntToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_IROTAT )) return 1; return 0; } @@ -1714,15 +1825,89 @@ int Parm_Amber::WriteExtra(Topology const& topOut, int natom) { return 0; } +/// Used to check if the size of "extra" arrays (PDB atom occupancy, bfactor, etc) match expected size. +/** The size of these arrays might be less than what is expected if e.g. solvent + * was added with the 'build' command. In that case, blank values can be used + * without requiring the memory be allocated. + * \return 1 if actual size > expected size (error) + * \return -1 if actual size < expected size (fill with blank) + * \return 0 if actual size == expected size. + */ +static inline int check_array_size(unsigned int expectedSize, unsigned int actualSize, const char* desc) +{ + if (actualSize != expectedSize) { + mprinterr("Internal Error: Size of %s (%u) is != expected size (%u)\n", + desc, actualSize, expectedSize); + return 1; + } + return 0; +} + +/// \return true if incoming value will overflow the default POINTERS width (8 digits) +template <typename T> bool GT_MAX_PTR(T valIn) { return (valIn > (T)99999999); } + +/** Check the pointers from the input Topology and return a flag big enough + * to accommodate them. + */ +Parm_Amber::FlagType Parm_Amber::check_pointers(Topology const& TopOut, unsigned int excludedSize, unsigned int n_unique_atom_types, unsigned int maxResSize ) const { + FlagType flag_pointers = F_POINTERS; + + if (GT_MAX_PTR( TopOut.Natom() )) flag_pointers = F_PNT_LARGE; // NATOM + if (GT_MAX_PTR( TopOut.Nonbond().Ntypes() )) flag_pointers = F_PNT_LARGE; // NTYPES + if (GT_MAX_PTR( TopOut.BondsH().size() )) flag_pointers = F_PNT_LARGE; // NBONH + if (GT_MAX_PTR( TopOut.Bonds().size() )) flag_pointers = F_PNT_LARGE; // NBONA + if (GT_MAX_PTR( TopOut.AnglesH().size() )) flag_pointers = F_PNT_LARGE; // NTHETH + if (GT_MAX_PTR( TopOut.Angles().size() )) flag_pointers = F_PNT_LARGE; // NTHETA + if (GT_MAX_PTR( TopOut.DihedralsH().size() )) flag_pointers = F_PNT_LARGE; // NPHIH + if (GT_MAX_PTR( TopOut.Dihedrals().size() )) flag_pointers = F_PNT_LARGE; // NPHIA + //if (GT_MAX_PTR( 0 )) flag_pointers = F_PNT_LARGE; // NHPARM, not used + //if (TopOut.LES().HasLES()) { // NPARM + // mprintf("Warning: Excluded atom list for LES info is not correct.\n"); + // file_.IntToBuffer( 1 ); + //} else + // file_.IntToBuffer( 0 ); + if (GT_MAX_PTR( excludedSize )) flag_pointers = F_PNT_LARGE; // NNB + if (GT_MAX_PTR( TopOut.Nres() )) flag_pointers = F_PNT_LARGE; // NRES + // NOTE: Assuming MBONA == NBONA etc + if (GT_MAX_PTR( TopOut.Bonds().size() )) flag_pointers = F_PNT_LARGE; // MBONA + if (GT_MAX_PTR( TopOut.Angles().size() )) flag_pointers = F_PNT_LARGE; // MTHETA + if (GT_MAX_PTR( TopOut.Dihedrals().size() )) flag_pointers = F_PNT_LARGE; // MPHIA + if (GT_MAX_PTR( TopOut.BondParm().size() )) flag_pointers = F_PNT_LARGE; // NUMBND + if (GT_MAX_PTR( TopOut.AngleParm().size() )) flag_pointers = F_PNT_LARGE; // NUMANG + if (GT_MAX_PTR( TopOut.DihedralParm().size() )) flag_pointers = F_PNT_LARGE; // NPTRA + if (GT_MAX_PTR( n_unique_atom_types )) flag_pointers = F_PNT_LARGE; // NATYP, only for SOLTY + if (GT_MAX_PTR( TopOut.Nonbond().HBarray().size() )) flag_pointers = F_PNT_LARGE; // NPHB + //file_.IntToBuffer( 0 ); // IFPERT + //file_.IntToBuffer( 0 ); // NBPER + //file_.IntToBuffer( 0 ); // NGPER + //file_.IntToBuffer( 0 ); // NDPER + //file_.IntToBuffer( 0 ); // MBPER + //file_.IntToBuffer( 0 ); // MGPER + //file_.IntToBuffer( 0 ); // MDPER + //file_.IntToBuffer( ifbox ); // IFBOX + if (GT_MAX_PTR( maxResSize )) flag_pointers = F_PNT_LARGE; // NMXRS + //if (TopOut.Cap().NatCap() > 0) // IFCAP + // file_.IntToBuffer( 1 ); + //else + // file_.IntToBuffer( 0 ); + if (GT_MAX_PTR( TopOut.NextraPts() )) flag_pointers = F_PNT_LARGE; // NEXTRA + + if (flag_pointers != F_POINTERS) + mprintf("Warning: Very large values detected; using extended format string for POINTERS.\n"); + + return flag_pointers; +} + // Parm_Amber::WriteParm() int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { if (file_.OpenWrite( fname )) return 1; + if (!writeComments_) mprintf("Warning: Not writing %%COMMENT lines to topology.\n"); elec_to_parm_ = Constants::ELECTOAMBER; parm_to_elec_ = Constants::AMBERTOELEC; // Determine if this is a CHAMBER topology ptype_ = NEWPARM; FlagType titleFlag = F_TITLE; - if (TopOut.Chamber().HasChamber()) { + if (TopOut.HasChamber()) { if (!writeChamber_) mprintf("\tnochamber: Removing CHAMBER info from topology.\n"); else { @@ -1847,7 +2032,11 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { } // POINTERS - if (BufferAlloc(F_POINTERS, AMBERPOINTERS_)) return 1; + Cpptraj::Parm::GetParams GP; + GP.SetDebug( debug_ ); + unsigned int n_unique_atom_types = GP.NuniqueAtomTypes( TopOut ); + FlagType flag_pointers = check_pointers( TopOut, Excluded.size(), n_unique_atom_types, maxResSize ); + if (BufferAlloc(flag_pointers, AMBERPOINTERS_)) return 1; file_.IntToBuffer( TopOut.Natom() ); // NATOM file_.IntToBuffer( TopOut.Nonbond().Ntypes() ); // NTYPES file_.IntToBuffer( TopOut.BondsH().size() ); // NBONH @@ -1872,7 +2061,7 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { file_.IntToBuffer( TopOut.BondParm().size() ); // NUMBND file_.IntToBuffer( TopOut.AngleParm().size() ); // NUMANG file_.IntToBuffer( TopOut.DihedralParm().size() ); // NPTRA - file_.IntToBuffer( TopOut.NatomTypes() ); // NATYP, only for SOLTY + file_.IntToBuffer( n_unique_atom_types ); // NATYP, only for SOLTY file_.IntToBuffer( TopOut.Nonbond().HBarray().size() ); // NPHB file_.IntToBuffer( 0 ); // IFPERT file_.IntToBuffer( 0 ); // NBPER @@ -1888,19 +2077,19 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { else file_.IntToBuffer( 0 ); file_.IntToBuffer( TopOut.NextraPts() ); // NEXTRA - file_.FlushBuffer(); + if (flushFileBuffer( flag_pointers )) return 1; - // CHAMBER only - FF type description - if (ptype_ == CHAMBER) { + // FF type description + if (ptype_ == CHAMBER || !TopOut.Description().empty()) { file_.Printf("%%FLAG %-74s\n%-80s\n", FLAGS_[F_FF_TYPE].Flag, FLAGS_[F_FF_TYPE].Fmt); - int nlines = (int)TopOut.Chamber().Description().size(); + int nlines = (int)TopOut.Description().size(); if (nlines > 99) { - mprintf("Warning: Number of CHAMBER description lines > 99. Only writing 99.\n", nlines); + mprintf("Warning: Number of %s description lines > 99 (%i). Only writing 99.\n", FLAGS_[F_FF_TYPE].Flag, nlines); nlines = 99; } if (nlines > 0) { for (int line = 0; line != nlines; line++) - file_.Printf("%2i%78s\n", nlines, TopOut.Chamber().Description()[line].c_str()); + file_.Printf("%2i%78s\n", nlines, TopOut.Description()[line].c_str()); } else { // No description. Write a placeholder. file_.Printf("%2i%78s\n", 1, "CHARMM:"); @@ -1911,31 +2100,32 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { if (BufferAlloc(F_NAMES, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.CharToBuffer( atm->c_str() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_NAMES )) return 1; // CHARGES - if (BufferAlloc(F_CHARGE, TopOut.Natom())) return 1; + const FlagType f_charge = (ptype_ == CHAMBER) ? F_CHM_CHARGE : F_CHARGE; + if (BufferAlloc(f_charge, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.DblToBuffer( atm->Charge() * elec_to_parm_ ); - file_.FlushBuffer(); + if (flushFileBuffer( f_charge )) return 1; // ATOMIC NUMBER if (BufferAlloc(F_ATOMICNUM, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.IntToBuffer( atm->AtomicNumber() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_ATOMICNUM )) return 1; // MASS if (BufferAlloc(F_MASS, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.DblToBuffer( atm->Mass() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_MASS )) return 1; // TYPE INDEX if (BufferAlloc(F_ATYPEIDX, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.IntToBuffer( atm->TypeIndex()+1 ); - file_.FlushBuffer(); + if (flushFileBuffer( F_ATYPEIDX )) return 1; // NUMEX if (BufferAlloc(F_NUMEX, TopOut.Natom())) return 1; @@ -1947,7 +2137,7 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { else file_.IntToBuffer( (int)exList->size() ); } - file_.FlushBuffer(); + if (flushFileBuffer( F_NUMEX )) return 1; // NONBONDED INDICES - positive needs to be shifted by +1 for fortran if (BufferAlloc(F_NB_INDEX, TopOut.Nonbond().NBindex().size())) return 1; @@ -1957,19 +2147,19 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { file_.IntToBuffer( *it + 1 ); else file_.IntToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_NB_INDEX )) return 1; // RESIDUE NAME if (BufferAlloc(F_RESNAMES, TopOut.Nres())) return 1; for (Topology::res_iterator res = TopOut.ResStart(); res != TopOut.ResEnd(); ++res) file_.CharToBuffer( res->c_str() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_RESNAMES )) return 1; // RESIDUE POINTERS if (BufferAlloc(F_RESNUMS, TopOut.Nres())) return 1; for (Topology::res_iterator res = TopOut.ResStart(); res != TopOut.ResEnd(); ++res) file_.IntToBuffer( res->FirstAtom()+1 ); - file_.FlushBuffer(); + if (flushFileBuffer( F_RESNUMS )) return 1; // BOND RK and REQ if (WriteBondParm(F_BONDRK, F_BONDREQ, TopOut.BondParm())) return 1; @@ -1979,34 +2169,35 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { for (AngleParmArray::const_iterator it = TopOut.AngleParm().begin(); it != TopOut.AngleParm().end(); ++it) file_.DblToBuffer( it->Tk() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_ANGLETK )) return 1; // ANGLE TEQ - if (BufferAlloc(F_ANGLETEQ, TopOut.AngleParm().size())) return 1; + const FlagType f_angleteq = (ptype_ == CHAMBER) ? F_CHM_ANGLETEQ : F_ANGLETEQ; + if (BufferAlloc(f_angleteq, TopOut.AngleParm().size())) return 1; for (AngleParmArray::const_iterator it = TopOut.AngleParm().begin(); it != TopOut.AngleParm().end(); ++it) file_.DblToBuffer( it->Teq() ); - file_.FlushBuffer(); + if (flushFileBuffer( f_angleteq )) return 1; // CHARMM only - Urey-Bradley if (ptype_ == CHAMBER) { // UB COUNT if (BufferAlloc(F_CHM_UBC, 2)) return 1; - file_.IntToBuffer( TopOut.Chamber().UB().size() ); - file_.IntToBuffer( TopOut.Chamber().UBparm().size() ); - file_.FlushBuffer(); + file_.IntToBuffer( TopOut.UB().size() ); + file_.IntToBuffer( TopOut.UBparm().size() ); + if (flushFileBuffer( F_CHM_UBC )) return 1; // UB terms - if (BufferAlloc(F_CHM_UB, TopOut.Chamber().UB().size()*3)) return 1; - for (BondArray::const_iterator it = TopOut.Chamber().UB().begin(); - it != TopOut.Chamber().UB().end(); ++it) + if (BufferAlloc(F_CHM_UB, TopOut.UB().size()*3)) return 1; + for (BondArray::const_iterator it = TopOut.UB().begin(); + it != TopOut.UB().end(); ++it) { file_.IntToBuffer( it->A1()+1 ); file_.IntToBuffer( it->A2()+1 ); file_.IntToBuffer( it->Idx()+1 ); } - file_.FlushBuffer(); + if (flushFileBuffer( F_CHM_UB )) return 1; // UB FORCE CONSTANTS and EQ - if (WriteBondParm(F_CHM_UBFC, F_CHM_UBEQ, TopOut.Chamber().UBparm())) return 1; + if (WriteBondParm(F_CHM_UBFC, F_CHM_UBEQ, TopOut.UBparm())) return 1; } // DIHEDRAL PK @@ -2014,46 +2205,46 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { for (DihedralParmArray::const_iterator it = TopOut.DihedralParm().begin(); it != TopOut.DihedralParm().end(); ++it) file_.DblToBuffer( it->Pk() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_DIHPK )) return 1; // DIHEDRAL PN if (BufferAlloc(F_DIHPN, TopOut.DihedralParm().size())) return 1; for (DihedralParmArray::const_iterator it = TopOut.DihedralParm().begin(); it != TopOut.DihedralParm().end(); ++it) file_.DblToBuffer( it->Pn() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_DIHPN )) return 1; // DIHEDRAL PHASE if (BufferAlloc(F_DIHPHASE, TopOut.DihedralParm().size())) return 1; for (DihedralParmArray::const_iterator it = TopOut.DihedralParm().begin(); it != TopOut.DihedralParm().end(); ++it) file_.DblToBuffer( it->Phase() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_DIHPHASE )) return 1; // DIHEDRAL SCEE if (BufferAlloc(F_SCEE, TopOut.DihedralParm().size())) return 1; for (DihedralParmArray::const_iterator it = TopOut.DihedralParm().begin(); it != TopOut.DihedralParm().end(); ++it) file_.DblToBuffer( it->SCEE() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_SCEE )) return 1; // DIHEDRAL SCNB if (BufferAlloc(F_SCNB, TopOut.DihedralParm().size())) return 1; for (DihedralParmArray::const_iterator it = TopOut.DihedralParm().begin(); it != TopOut.DihedralParm().end(); ++it) file_.DblToBuffer( it->SCNB() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_SCNB )) return 1; // CHAMBER only - Impropers if (ptype_ == CHAMBER) { // NUM IMPROPERS if (BufferAlloc(F_CHM_NIMP, 1)) return 1; - file_.IntToBuffer( TopOut.Chamber().Impropers().size() ); - file_.FlushBuffer(); + file_.IntToBuffer( TopOut.Impropers().size() ); + if (flushFileBuffer( F_CHM_NIMP )) return 1; // IMPROPER TERMS - if (BufferAlloc(F_CHM_IMP, TopOut.Chamber().Impropers().size()*5)) return 1; - for (DihedralArray::const_iterator it = TopOut.Chamber().Impropers().begin(); - it != TopOut.Chamber().Impropers().end(); ++it) + if (BufferAlloc(F_CHM_IMP, TopOut.Impropers().size()*5)) return 1; + for (DihedralArray::const_iterator it = TopOut.Impropers().begin(); + it != TopOut.Impropers().end(); ++it) { file_.IntToBuffer( it->A1() + 1 ); file_.IntToBuffer( it->A2() + 1 ); @@ -2067,54 +2258,81 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { file_.IntToBuffer( it->A4() + 1 ); file_.IntToBuffer( it->Idx() + 1 ); } - file_.FlushBuffer(); + if (flushFileBuffer( F_CHM_IMP )) return 1; // NUM IMPROPER PARAMS if (BufferAlloc(F_CHM_NIMPT, 1)) return 1; - file_.IntToBuffer( TopOut.Chamber().ImproperParm().size() ); - file_.FlushBuffer(); + file_.IntToBuffer( TopOut.ImproperParm().size() ); + if (flushFileBuffer( F_CHM_IMP )) return 1; // IMPROPER FORCE CONSTANTS - if (BufferAlloc(F_CHM_IMPFC, TopOut.Chamber().ImproperParm().size())) return 1; - for (DihedralParmArray::const_iterator it = TopOut.Chamber().ImproperParm().begin(); - it != TopOut.Chamber().ImproperParm().end(); ++it) + if (BufferAlloc(F_CHM_IMPFC, TopOut.ImproperParm().size())) return 1; + for (DihedralParmArray::const_iterator it = TopOut.ImproperParm().begin(); + it != TopOut.ImproperParm().end(); ++it) file_.DblToBuffer( it->Pk() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_CHM_IMPFC )) return 1; // IMPROPER PHASES - if (BufferAlloc(F_CHM_IMPP, TopOut.Chamber().ImproperParm().size())) return 1; - for (DihedralParmArray::const_iterator it = TopOut.Chamber().ImproperParm().begin(); - it != TopOut.Chamber().ImproperParm().end(); ++it) + if (BufferAlloc(F_CHM_IMPP, TopOut.ImproperParm().size())) return 1; + for (DihedralParmArray::const_iterator it = TopOut.ImproperParm().begin(); + it != TopOut.ImproperParm().end(); ++it) file_.DblToBuffer( it->Phase() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_CHM_IMPP )) return 1; } // SOLTY - Currently unused but must be written. - if (BufferAlloc(F_SOLTY, TopOut.NatomTypes())) return 1; - for (int idx = 0; idx != TopOut.NatomTypes(); idx++) + if (BufferAlloc(F_SOLTY, n_unique_atom_types)) return 1; + for (unsigned int idx = 0; idx != n_unique_atom_types; idx++) file_.DblToBuffer( 0.0 ); - file_.FlushBuffer(); + if (flushFileBuffer( F_SOLTY )) return 1; // LJ A and B terms - if (WriteLJ(F_LJ_A, F_LJ_B, TopOut.Nonbond().NBarray())) return 1; + const FlagType f_lj_a = (ptype_ == CHAMBER) ? F_CHM_LJ_A : F_LJ_A; + const FlagType f_lj_b = (ptype_ == CHAMBER) ? F_CHM_LJ_B : F_LJ_B; + if (WriteLJ(f_lj_a, f_lj_b, TopOut.Nonbond().NBarray())) return 1; // CHAMBER only - LJ 1-4 terms if (ptype_ == CHAMBER) { - if (WriteLJ(F_LJ14A, F_LJ14B, TopOut.Chamber().LJ14())) return 1; + if (WriteLJ(F_LJ14A, F_LJ14B, TopOut.Nonbond().LJ14())) return 1; } - // BONDSH and BONDS - if (WriteBonds(F_BONDSH, TopOut.BondsH())) return 1; - if (WriteBonds(F_BONDS, TopOut.Bonds()) ) return 1; - // ANGLESH and ANGLES - if (WriteAngles(F_ANGLESH, TopOut.AnglesH())) return 1; - if (WriteAngles(F_ANGLES, TopOut.Angles()) ) return 1; + // BONDSH and BONDS, ANGLESH and ANGLES + FlagType flag_bndh, flag_bnd, flag_angh, flag_ang; + if (TopOut.Natom()*3 < 100000000) { + flag_bndh = F_BONDSH; + flag_bnd = F_BONDS; + flag_angh = F_ANGLESH; + flag_ang = F_ANGLES; + } else { + mprintf("Warning: Topology has > 33M atoms. Using extended bond/angle format strings.\n"); + mprintf("Warning: This may confuse topology readers that do not actually read the FLAG format strings.\n"); + flag_bndh = F_BNDH_LARGE; + flag_bnd = F_BND_LARGE; + flag_angh = F_ANGH_LARGE; + flag_ang = F_ANG_LARGE; + } + if (WriteBonds(flag_bndh, TopOut.BondsH())) return 1; + if (WriteBonds(flag_bnd, TopOut.Bonds()) ) return 1; + if (WriteAngles(flag_angh, TopOut.AnglesH())) return 1; + if (WriteAngles(flag_ang, TopOut.Angles()) ) return 1; // DIHEDRALSH and DIHEDRALS - if (WriteDihedrals(F_DIHH, TopOut.DihedralsH())) return 1; - if (WriteDihedrals(F_DIH, TopOut.Dihedrals()) ) return 1; + FlagType flag_dihh, flag_dih; + // Check if the largest possible index will be greater than the default + // format width. If so, need a larger format. + if (TopOut.Natom()*3 < 10000000) { + flag_dihh = F_DIHH; + flag_dih = F_DIH; + } else { + mprintf("Warning: Topology has > 3M atoms. Using extended dihedral format strings.\n"); + mprintf("Warning: This may confuse topology readers that do not actually read the FLAG format strings.\n"); + flag_dihh = F_DIHH_LARGE; + flag_dih = F_DIH_LARGE; + } + if (WriteDihedrals(flag_dihh, TopOut.DihedralsH())) return 1; + if (WriteDihedrals(flag_dih, TopOut.Dihedrals()) ) return 1; // EXCLUDED ATOMS LIST if (BufferAlloc(F_EXCLUDE, Excluded.size())) return 1; for (Iarray::const_iterator it = Excluded.begin(); it != Excluded.end(); ++it) file_.IntToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_EXCLUDE )) return 1; Excluded.clear(); // HBOND ASOL @@ -2122,31 +2340,31 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { for (HB_ParmArray::const_iterator it = TopOut.Nonbond().HBarray().begin(); it != TopOut.Nonbond().HBarray().end(); ++it) file_.DblToBuffer( it->Asol() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_ASOL )) return 1; // HBOND BSOL if (BufferAlloc(F_BSOL, TopOut.Nonbond().HBarray().size())) return 1; for (HB_ParmArray::const_iterator it = TopOut.Nonbond().HBarray().begin(); it != TopOut.Nonbond().HBarray().end(); ++it) file_.DblToBuffer( it->Bsol() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_BSOL )) return 1; // HBOND HBCUT if (BufferAlloc(F_HBCUT, TopOut.Nonbond().HBarray().size())) return 1; for (HB_ParmArray::const_iterator it = TopOut.Nonbond().HBarray().begin(); it != TopOut.Nonbond().HBarray().end(); ++it) file_.DblToBuffer( it->HBcut() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_HBCUT )) return 1; // AMBER ATOM TYPES if (BufferAlloc(F_TYPES, TopOut.Natom())) return 1; // Check that atoms actually have a type. int NemptyTypes = 0; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) { - if (atm->Type().len() < 1) ++NemptyTypes; + if (!atm->HasType()) ++NemptyTypes; file_.CharToBuffer( *(atm->Type()) ); } - file_.FlushBuffer(); + if (flushFileBuffer( F_TYPES )) return 1; if (NemptyTypes > 0) mprintf("Warning: %i empty atom type names.\n", NemptyTypes); // TODO: Generate automatically @@ -2156,50 +2374,6 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { // but warn. if (WriteExtra(TopOut, TopOut.Natom())) return 1; - // CHAMBER only - write CMAP parameters - if (TopOut.HasCmap()) { - // CMAP COUNT - const FlagType f_count = (ptype_ == CHAMBER) ? F_CHM_CMAPC : F_CMAPC; - if (BufferAlloc(f_count, 2)) return 1; - file_.IntToBuffer( TopOut.Cmap().size() ); // CMAP terms - file_.IntToBuffer( TopOut.CmapGrid().size() ); // CMAP grids - file_.FlushBuffer(); - // CMAP GRID RESOLUTIONS - const FlagType f_grid_res = (ptype_ == CHAMBER) ? F_CHM_CMAPR : F_CMAPR; - if (BufferAlloc(f_grid_res, TopOut.CmapGrid().size())) return 1; - for (CmapGridArray::const_iterator grid = TopOut.CmapGrid().begin(); - grid != TopOut.CmapGrid().end(); ++grid) - file_.IntToBuffer( grid->Resolution() ); - file_.FlushBuffer(); - // CMAP GRIDS - int ngrid = 1; - const FlagType f_grid = (ptype_ == CHAMBER) ? F_CHM_CMAPP : F_CMAPP; - for (CmapGridArray::const_iterator grid = TopOut.CmapGrid().begin(); - grid != TopOut.CmapGrid().end(); - ++grid, ++ngrid) - { - if (BufferAlloc(f_grid, grid->Size(), ngrid)) return 1; - for (std::vector<double>::const_iterator it = grid->Grid().begin(); - it != grid->Grid().end(); ++it) - file_.DblToBuffer( *it ); - file_.FlushBuffer(); - } - // CMAP parameters - const FlagType f_param = (ptype_ == CHAMBER) ? F_CHM_CMAPI : F_CMAPI; - if (BufferAlloc(f_param, TopOut.Cmap().size())) return 1; - for (CmapArray::const_iterator it = TopOut.Cmap().begin(); - it != TopOut.Cmap().end(); ++it) - { - file_.IntToBuffer( it->A1() + 1 ); - file_.IntToBuffer( it->A2() + 1 ); - file_.IntToBuffer( it->A3() + 1 ); - file_.IntToBuffer( it->A4() + 1 ); - file_.IntToBuffer( it->A5() + 1 ); - file_.IntToBuffer( it->Idx() + 1 ); - } - file_.FlushBuffer(); - } - // Write solvent info if IFBOX > 0 if (ifbox > 0) { // Need to check if molecules are contiguous or not via @@ -2236,12 +2410,12 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { file_.IntToBuffer( finalSoluteRes ); // Already +1 file_.IntToBuffer( TopOut.Nmol() ); file_.IntToBuffer( firstSolventMol + 1 ); - file_.FlushBuffer(); + if (flushFileBuffer( F_SOLVENT_POINTER )) return 1; // ATOMS PER MOLECULE if (BufferAlloc(F_ATOMSPERMOL, TopOut.Nmol())) return 1; for (Topology::mol_iterator mol = TopOut.MolStart(); mol != TopOut.MolEnd(); mol++) file_.IntToBuffer( mol->NumAtoms() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_ATOMSPERMOL )) return 1; } else { // ----- Non-contiguous molecules ---------- // Molecules are not contiguous. In order to ensure that #s in the @@ -2291,12 +2465,12 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { file_.IntToBuffer( finalSoluteRes ); // Already +1 file_.IntToBuffer( segments.size() ); file_.IntToBuffer( firstSolventMol + 1 ); - file_.FlushBuffer(); + if (flushFileBuffer( F_SOLVENT_POINTER )) return 1; // ATOMS PER MOLECULE if (BufferAlloc(F_ATOMSPERMOL, segments.size())) return 1; for (SegArray::const_iterator it = segments.begin(); it != segments.end(); ++it) file_.IntToBuffer( it->first.Size() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_ATOMSPERMOL )) return 1; } // BOX DIMENSIONS if (BufferAlloc(F_PARMBOX, 4)) return 1; @@ -2310,20 +2484,20 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { file_.DblToBuffer( TopOut.ParmBox().Param(Box::X) ); file_.DblToBuffer( TopOut.ParmBox().Param(Box::Y) ); file_.DblToBuffer( TopOut.ParmBox().Param(Box::Z) ); - file_.FlushBuffer(); + if (flushFileBuffer( F_PARMBOX )) return 1; } // CAP info if (TopOut.Cap().NatCap() > 0) { if (BufferAlloc(F_CAP_INFO, 1)) return 1; file_.IntToBuffer( TopOut.Cap().NatCap()+1 ); - file_.FlushBuffer(); + if (flushFileBuffer( F_CAP_INFO )) return 1; if (BufferAlloc(F_CAP_INFO2, 4)) return 1; file_.DblToBuffer( TopOut.Cap().CutCap() ); file_.DblToBuffer( TopOut.Cap().xCap() ); file_.DblToBuffer( TopOut.Cap().yCap() ); file_.DblToBuffer( TopOut.Cap().zCap() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_CAP_INFO2 )) return 1; } // Only write GB params if actually present. At least one atom must have something. @@ -2341,23 +2515,79 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { if (BufferAlloc(F_RADII, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.DblToBuffer( atm->GBRadius() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_RADII )) return 1; // GB SCREENING PARAMS if (BufferAlloc(F_SCREEN, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.DblToBuffer( atm->Screen() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_SCREEN )) return 1; } - // Polarizability - only write if it needs to be there + // Polarizability + if (BufferAlloc(F_IPOL, 1)) return 1; + file_.IntToBuffer( TopOut.Ipol() ); + if (flushFileBuffer( F_IPOL )) return 1; if (TopOut.Ipol() > 0) { - if (BufferAlloc(F_IPOL, 1)) return 1; - file_.IntToBuffer( TopOut.Ipol() ); - file_.FlushBuffer(); + // Only write polarizabilities if IPOL is set. if (BufferAlloc(F_POLAR, TopOut.Natom())) return 1; for (Topology::atom_iterator atm = TopOut.begin(); atm != TopOut.end(); ++atm) file_.DblToBuffer( atm->Polar() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_POLAR )) return 1; + } + + // Write CMAP parameters + if (TopOut.HasCmap()) { + // CMAP COUNT + const FlagType f_count = (ptype_ == CHAMBER) ? F_CHM_CMAPC : F_CMAPC; + if (BufferAlloc(f_count, 2)) return 1; + file_.IntToBuffer( TopOut.Cmap().size() ); // CMAP terms + file_.IntToBuffer( TopOut.CmapGrid().size() ); // CMAP grids + if (flushFileBuffer( f_count )) return 1; + // CMAP GRID RESOLUTIONS + const FlagType f_grid_res = (ptype_ == CHAMBER) ? F_CHM_CMAPR : F_CMAPR; + if (BufferAlloc(f_grid_res, TopOut.CmapGrid().size())) return 1; + for (CmapGridArray::const_iterator grid = TopOut.CmapGrid().begin(); + grid != TopOut.CmapGrid().end(); ++grid) + file_.IntToBuffer( (int)grid->Resolution() ); + if (flushFileBuffer( f_grid_res )) return 1; + // CMAP GRIDS + int ngrid = 1; + const FlagType f_grid = (ptype_ == CHAMBER) ? F_CHM_CMAPP : F_CMAPP; + for (CmapGridArray::const_iterator grid = TopOut.CmapGrid().begin(); + grid != TopOut.CmapGrid().end(); + ++grid, ++ngrid) + { + int cmg_err = 0; + if (!grid->Title().empty()) { + std::string cmaptitle = grid->Title(); + if (cmaptitle.size() > 70) { + mprintf("Warning: CMAP title %s is too large (%zu), truncating.\n", + cmaptitle.c_str(), cmaptitle.size()); + cmaptitle.resize(70); + } + cmg_err = BufferAlloc(f_grid, grid->Size(), ngrid, cmaptitle); + } else + cmg_err = BufferAlloc(f_grid, grid->Size(), ngrid); + if (cmg_err != 0) return 1; + for (std::vector<double>::const_iterator it = grid->Grid().begin(); + it != grid->Grid().end(); ++it) + file_.DblToBuffer( *it ); + if (flushFileBuffer( f_grid )) return 1; + } + // CMAP terms + const FlagType f_param = (ptype_ == CHAMBER) ? F_CHM_CMAPI : F_CMAPI; + if (BufferAlloc(f_param, TopOut.Cmap().size())) return 1; + for (CmapArray::const_iterator it = TopOut.Cmap().begin(); + it != TopOut.Cmap().end(); ++it) + { + file_.IntToBuffer( it->A1() + 1 ); + file_.IntToBuffer( it->A2() + 1 ); + file_.IntToBuffer( it->A3() + 1 ); + file_.IntToBuffer( it->A4() + 1 ); + file_.IntToBuffer( it->A5() + 1 ); + file_.IntToBuffer( it->Idx() + 1 ); + } + if (flushFileBuffer( f_param )) return 1; } // LES parameters @@ -2365,7 +2595,7 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { // LES NTYP if (BufferAlloc(F_LES_NTYP, 1)) return 1; file_.IntToBuffer( TopOut.LES().Ntypes() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_LES_NTYP )) return 1; // Sanity check. if ( (int)TopOut.LES().Array().size() != TopOut.Natom() ) { mprinterr("Internal Error: # LES atoms (%zu) != # atoms in topology (%i).\n", @@ -2377,25 +2607,25 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { for (LES_Array::const_iterator les = TopOut.LES().Array().begin(); les != TopOut.LES().Array().end(); ++les) file_.IntToBuffer( les->Type() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_LES_TYPE )) return 1; // LES FAC if (BufferAlloc(F_LES_FAC, TopOut.LES().FAC().size())) return 1; for (std::vector<double>::const_iterator it = TopOut.LES().FAC().begin(); it != TopOut.LES().FAC().end(); ++it) file_.DblToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_LES_FAC )) return 1; // LES CNUM if (BufferAlloc(F_LES_CNUM, TopOut.LES().Array().size())) return 1; for (LES_Array::const_iterator les = TopOut.LES().Array().begin(); les != TopOut.LES().Array().end(); ++les) file_.IntToBuffer( les->Copy() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_LES_CNUM )) return 1; // LES ID if (BufferAlloc(F_LES_ID, TopOut.LES().Array().size())) return 1; for (LES_Array::const_iterator les = TopOut.LES().Array().begin(); les != TopOut.LES().Array().end(); ++les) file_.IntToBuffer( les->ID() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_LES_ID )) return 1; } if (hasOrigResNums || hasChainID || hasIcodes) { @@ -2419,7 +2649,7 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { if (err != 0) return 1; for (Topology::res_iterator res = TopOut.ResStart(); res != TopOut.ResEnd(); ++res) file_.IntToBuffer( res->OriginalResNum() ); - file_.FlushBuffer(); + if (flushFileBuffer( F_PDB_RES )) return 1; } if (hasChainID) { // PDB chain IDs. Max # chars currently supported is 4. @@ -2438,7 +2668,7 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { } file_.CharToBuffer( cid ); } - file_.FlushBuffer(); + if (flushFileBuffer( F_PDB_CHAIN )) return 1; } if (hasIcodes) { // PDB residue insertion codes @@ -2450,31 +2680,34 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { icode[0] = res->Icode(); file_.CharToBuffer( icode ); } - file_.FlushBuffer(); + if (flushFileBuffer( F_PDB_ICODE )) return 1; } if (hasOcc) { // PDB atomic occupancy + if (check_array_size(TopOut.Natom(), TopOut.Occupancy().size(), "PDB occupancy array")) return 1; if (BufferAlloc(F_PDB_OCC, TopOut.Natom())) return 1; for (std::vector<float>::const_iterator it = TopOut.Occupancy().begin(); it != TopOut.Occupancy().end(); ++it) file_.DblToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_PDB_OCC )) return 1; } if (hasBfac) { // PDB atomic B-factors + if (check_array_size(TopOut.Natom(), TopOut.Bfactor().size(), "PDB B-factor array")) return 1; if (BufferAlloc(F_PDB_BFAC, TopOut.Natom())) return 1; for (std::vector<float>::const_iterator it = TopOut.Bfactor().begin(); it != TopOut.Bfactor().end(); ++it) file_.DblToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_PDB_BFAC )) return 1; } if (hasNum) { // PDB original serial numbers + if (check_array_size(TopOut.Natom(), TopOut.PdbSerialNum().size(), "PDB serial number array")) return 1; if (BufferAlloc(F_PDB_NUM, TopOut.Natom())) return 1; for (std::vector<int>::const_iterator it = TopOut.PdbSerialNum().begin(); it != TopOut.PdbSerialNum().end(); ++it) file_.IntToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_PDB_NUM )) return 1; } // LJ C terms. @@ -2484,7 +2717,7 @@ int Parm_Amber::WriteParm(FileName const& fname, Topology const& TopOut) { if (BufferAlloc(F_LJ_C, ccoef.size())) return 1; for (std::vector<double>::const_iterator it = ccoef.begin(); it != ccoef.end(); ++it) file_.DblToBuffer( *it ); - file_.FlushBuffer(); + if (flushFileBuffer( F_LJ_C )) return 1; } return 0; diff --git a/src/Parm_Amber.h b/src/Parm_Amber.h index 7a6332ac4d..dd3a975e56 100644 --- a/src/Parm_Amber.h +++ b/src/Parm_Amber.h @@ -22,23 +22,25 @@ class Parm_Amber : public ParmIO { enum Type { UNKNOWN_FTYPE=0, FINT, FDOUBLE, FCHAR, FFLOAT }; /// Enumerated type for Amber Parmtop Flags. KEEP IN SYNC WITH FLAGS_ ARRAY enum FlagType { - F_POINTERS = 0, F_NAMES, F_CHARGE, F_MASS, F_RESNAMES, - F_RESNUMS, F_TYPES, F_BONDSH, F_BONDS, F_SOLVENT_POINTER, - F_ATOMSPERMOL, F_PARMBOX, F_ATYPEIDX, F_NUMEX, F_NB_INDEX, - F_LJ_A, F_LJ_B, F_LJ_C, F_EXCLUDE, F_RADII, - F_SCREEN, F_BONDRK, F_BONDREQ, F_ANGLETK, F_ANGLETEQ, - F_DIHPK, F_DIHPN, F_DIHPHASE, F_SCEE, F_SCNB, - F_SOLTY, F_ANGLESH, F_ANGLES, F_DIHH, F_DIH, - F_ASOL, F_BSOL, F_HBCUT, F_ITREE, F_JOIN, - F_IROTAT, F_ATOMICNUM, F_TITLE, F_RADSET, F_LES_NTYP, - F_LES_TYPE, F_LES_FAC, F_LES_CNUM, F_LES_ID, F_CAP_INFO, - F_CAP_INFO2, F_IPOL, F_POLAR, F_CTITLE, F_CHM_UBC, - F_CHM_UB, F_CHM_UBFC, F_CHM_UBEQ, F_CHM_NIMP, F_CHM_IMP, - F_CHM_NIMPT, F_CHM_IMPFC, F_CHM_IMPP, F_LJ14A, F_LJ14B, - F_CHM_CMAPC, F_CHM_CMAPR, F_CHM_CMAPP, F_CHM_CMAPI, F_FF_TYPE, - F_PDB_RES, F_PDB_CHAIN, F_PDB_ICODE, F_PDB_ALT, F_PDB_BFAC, - F_PDB_OCC, F_PDB_NUM, F_CMAPC, F_CMAPR, F_CMAPP, - F_CMAPI + F_POINTERS = 0, F_NAMES, F_CHARGE, F_MASS, F_RESNAMES, + F_RESNUMS, F_TYPES, F_BONDSH, F_BONDS, F_SOLVENT_POINTER, + F_ATOMSPERMOL, F_PARMBOX, F_ATYPEIDX, F_NUMEX, F_NB_INDEX, + F_LJ_A, F_LJ_B, F_LJ_C, F_EXCLUDE, F_RADII, + F_SCREEN, F_BONDRK, F_BONDREQ, F_ANGLETK, F_ANGLETEQ, + F_DIHPK, F_DIHPN, F_DIHPHASE, F_SCEE, F_SCNB, + F_SOLTY, F_ANGLESH, F_ANGLES, F_DIHH, F_DIH, + F_ASOL, F_BSOL, F_HBCUT, F_ITREE, F_JOIN, + F_IROTAT, F_ATOMICNUM, F_TITLE, F_RADSET, F_LES_NTYP, + F_LES_TYPE, F_LES_FAC, F_LES_CNUM, F_LES_ID, F_CAP_INFO, + F_CAP_INFO2, F_IPOL, F_POLAR, F_CTITLE, F_CHM_UBC, + F_CHM_UB, F_CHM_UBFC, F_CHM_UBEQ, F_CHM_NIMP, F_CHM_IMP, + F_CHM_NIMPT, F_CHM_IMPFC, F_CHM_IMPP, F_LJ14A, F_LJ14B, + F_CHM_CMAPC, F_CHM_CMAPR, F_CHM_CMAPP, F_CHM_CMAPI, F_FF_TYPE, + F_CHM_CHARGE, F_CHM_ANGLETEQ, F_CHM_LJ_A, F_CHM_LJ_B, + F_PDB_RES, F_PDB_CHAIN, F_PDB_ICODE, F_PDB_ALT, F_PDB_BFAC, + F_PDB_OCC, F_PDB_NUM, F_CMAPC, F_CMAPR, F_CMAPP, + F_CMAPI, F_DIHH_LARGE, F_DIH_LARGE, F_BNDH_LARGE, F_BND_LARGE, + F_ANGH_LARGE, F_ANG_LARGE, F_PNT_LARGE }; /// Used to hold %FLAG/FORMAT string pairs. Corresponds to FlagType. struct ParmFlag { @@ -143,9 +145,12 @@ class Parm_Amber : public ParmIO { // ----- Write ------------------------------- FortranData WriteFormat(FlagType) const; + int BufferAlloc(FlagType, FortranData const&, int, int, std::string const&); int BufferAlloc(FlagType, FortranData const&, int, int); int BufferAlloc(FlagType, int, int); + int BufferAlloc(FlagType, int, int, std::string const&); int BufferAlloc(FlagType f, int n) { return BufferAlloc(f, n, -1); } + int flushFileBuffer(FlagType); int WriteLJ(FlagType, FlagType, NonbondArray const&); int WriteBondParm(FlagType, FlagType, BondParmArray const&); int WriteBonds(FlagType, BondArray const&); @@ -156,6 +161,7 @@ class Parm_Amber : public ParmIO { int WriteIjoin(std::vector<int> const&); int WriteIrotat(std::vector<int> const&); int WriteExtra(Topology const&, int); + FlagType check_pointers(Topology const&, unsigned int, unsigned int, unsigned int) const; static const int AMBERPOINTERS_; /// Contain topology flags enumerated by FlagType @@ -181,6 +187,7 @@ class Parm_Amber : public ParmIO { int UB_count_[2]; ///< Urey-Bradley count: # bonds (x3), # parameters int N_impropers_; ///< Number of impropers (x5) int N_impTerms_; ///< Number of improper terms + int ncoords_; ///< Number of coordinates (# atoms * 3) int n_cmap_terms_; ///< Number of CMAP terms int n_cmap_grids_; ///< Number of CMAP grids @@ -191,6 +198,10 @@ class Parm_Amber : public ParmIO { bool writeChamber_; ///< If true write CHAMBER info bool writeEmptyArrays_; ///< If true try to write TREE, IROTATE, JOIN even if not present bool writePdbInfo_; ///< If true write chain IDs etc + bool writeComments_; ///< If false suppress writing %COMMENT lines + + bool has_valid_nonbond_params_; ///< Will set to false if invalid nonbonds detected on read + bool hasBadDihedrals_; ///< Set to true if bad dihedrals detected on read }; // ----------------------------------------------------------------------------- class Parm_Amber::FortranData { diff --git a/src/Parm_CharmmPsf.cpp b/src/Parm_CharmmPsf.cpp index 91a65cc9ba..717c69f504 100644 --- a/src/Parm_CharmmPsf.cpp +++ b/src/Parm_CharmmPsf.cpp @@ -4,11 +4,12 @@ #include <cstring> // strncmp #include <cctype> // isdigit #include "Parm_CharmmPsf.h" +#include "BufferedLine.h" +#include "CharmmParamFile.h" #include "CpptrajStdio.h" -#include "StringRoutines.h" #include "Mol.h" // UniqueCount() -#include "CharmmParamFile.h" -#include "BufferedLine.h" +#include "Parm/AssignParams.h" +#include "StringRoutines.h" /// CONSTRUCTOR Parm_CharmmPsf::Parm_CharmmPsf() : @@ -132,8 +133,13 @@ int Parm_CharmmPsf::ReadDihedrals(BufferedLine& infile, int ndihedral, const cha } } else { // Charmm Improper. Expect only one paramter per type. - DihedralParmType ipt = params_.IP().FindParam( types, found ); - parmOut.AddCharmmImproper( dih, ipt ); + DihedralParmArray ipa = params_.IP().FindParam( types, found ); + if (found) { + if (ipa.size() > 1) + mprintf("Warning: %zu improper parameters found for types %s - %s - %s - %s, expected only one." + "Warning: Only using first parameter.\n", ipa.size(), *(types[0]), *(types[1]), *(types[2]), *(types[3])); + parmOut.AddCharmmImproper( dih, ipa.front() ); + } } if (!found) { mprintf("Warning: Parameters not found for %s %s - %s - %s - %s\n", typestr, parmOut.AtomMaskName(a1).c_str(), parmOut.AtomMaskName(a2).c_str(), parmOut.AtomMaskName(a3).c_str(), parmOut.AtomMaskName(a4).c_str()); @@ -369,7 +375,7 @@ int Parm_CharmmPsf::ReadParm(FileName const& fname, Topology &parmOut) { double psfcharge; double psfmass; // typedef std::vector<std::string> Sarray; - ParmHolder<AtomType>& atomTypes = params_.AT(); + Cpptraj::Parm::ParmHolder<AtomType>& atomTypes = params_.AT(); // Sarray SegIDs; bool firstLine = true; enum PsfFormatType { T_CHARMM = 0, T_VMD }; @@ -566,7 +572,11 @@ int Parm_CharmmPsf::ReadParm(FileName const& fname, Topology &parmOut) { // Add nonbonded parameters if (params_.HasLJparams()) { - parmOut.AssignNonbondParams( atomTypes, params_.NB() ); + Cpptraj::Parm::AssignParams AP; + AP.SetDebug( debug_ ); + AP.SetVerbose( debug_ ); // TODO separate verbosity? + AP.AssignNonbondParams( parmOut, atomTypes, params_.NB(), params_.NB14(), + params_.LJC(), params_.HB() ); } return 0; @@ -762,9 +772,9 @@ int Parm_CharmmPsf::WriteParm(FileName const& fname, Topology const& parm) { if ((idx % 2)==0) outfile.Printf("\n"); outfile.Printf("\n"); // Write out NIMPHI section - WriteSectionHeader(outfile, "!NIMPHI: impropers", parm.Chamber().Impropers().size()); + WriteSectionHeader(outfile, "!NIMPHI: impropers", parm.Impropers().size()); idx = 1; - WriteDihedrals(parm.Chamber().Impropers(), idx, outfile, dihfmt); + WriteDihedrals(parm.Impropers(), idx, outfile, dihfmt); if ((idx % 2)==0) outfile.Printf("\n"); outfile.Printf("\n"); diff --git a/src/Parm_CharmmPsf.h b/src/Parm_CharmmPsf.h index 0b5ed474e9..0f8d4cd5d0 100644 --- a/src/Parm_CharmmPsf.h +++ b/src/Parm_CharmmPsf.h @@ -1,7 +1,7 @@ #ifndef INC_PARM_CHARMMPSF_H #define INC_PARM_CHARMMPSF_H #include "ParmIO.h" -#include "ParameterSet.h" +#include "Parm/ParameterSet.h" class BufferedLine; class Parm_CharmmPsf : public ParmIO { public : @@ -26,7 +26,7 @@ class Parm_CharmmPsf : public ParmIO { inline void WriteSectionHeader(CpptrajFile&, const char*, int) const; - ParameterSet params_; + Cpptraj::Parm::ParameterSet params_; bool extfmt_; ///< (write) If true use extended format bool cheq_; ///< (write) If true include extra columns for polarization (CHarge EQuilibration) bool xplor_; ///< (write) If true use XPLOR format PSF diff --git a/src/Parm_Mol2.cpp b/src/Parm_Mol2.cpp index 2ea4054ae5..c32b105a16 100644 --- a/src/Parm_Mol2.cpp +++ b/src/Parm_Mol2.cpp @@ -2,6 +2,7 @@ #include "Mol2File.h" #include "BondSearch.h" #include "CpptrajStdio.h" +#include "ModXNA_Info.h" // Parm_Mol2::ID_ParmFormat() bool Parm_Mol2::ID_ParmFormat(CpptrajFile& fileIn) { @@ -16,6 +17,11 @@ int Parm_Mol2::ReadParm(FileName const& fname, Topology &parmOut) { mprintf(" Reading Mol2 file %s as topology file.\n",infile.Filename().base()); // Get @<TRIPOS>MOLECULE information if (infile.ReadMolecule()) return 1; + ModXNA_Info* modxna = infile.CheckForModxna(); + if (modxna != 0) { + parmOut.SetModxna( *modxna ); + delete modxna; + } parmOut.SetParmName( infile.Mol2Title(), infile.Filename() ); // Get @<TRIPOS>ATOM information diff --git a/src/Parm_PDB.cpp b/src/Parm_PDB.cpp index 6680cace5e..1f78255fbd 100644 --- a/src/Parm_PDB.cpp +++ b/src/Parm_PDB.cpp @@ -131,6 +131,7 @@ int Parm_PDB::ReadParm(FileName const& fname, Topology &TopIn) { continue; } TopIn.AddAtomAltLoc( altLoc ); + TopIn.AddPdbSerialNum( atnum ); if (atnum >= (int)serial.size()) serial.resize( atnum+1, -1 ); serial[atnum] = TopIn.Natom(); diff --git a/src/PdbResMapType.h b/src/PdbResMapType.h new file mode 100644 index 0000000000..25b0a4fbfb --- /dev/null +++ b/src/PdbResMapType.h @@ -0,0 +1,23 @@ +#ifndef INC_PDBRESMAPTYPE_H +#define INC_PDBRESMAPTYPE_H +#include <string> +#include "NameType.h" +#include "Structure/StructureEnum.h" +namespace Cpptraj { +/// Hold PDB residue name, corresponding unit name and residue terminal type +class PdbResMapType { + public: + //PdbResMapType() : termType_(Structure::NON_TERMINAL) {} + PdbResMapType(std::string const& unitIn, NameType const& nameIn, Structure::TerminalType termIn) : + unitName_(unitIn), pdbName_(nameIn), termType_(termIn) {} + + std::string const& UnitName() const { return unitName_; } + NameType const& PdbName() const { return pdbName_; } + Structure::TerminalType TermType() const { return termType_; } + private: + std::string unitName_; + NameType pdbName_; + Structure::TerminalType termType_; +}; +} +#endif diff --git a/src/Remote.cpp b/src/Remote.cpp new file mode 100644 index 0000000000..d8bc2590a7 --- /dev/null +++ b/src/Remote.cpp @@ -0,0 +1,123 @@ +#include "Remote.h" +#include "CpptrajStdio.h" +#include "FileName.h" +#include <cstdlib> // system + +using namespace Cpptraj; + +/** The remote download command. */ +std::string Remote::cmd_ = ""; + +/** Flag for setting output file for remote command. */ +std::string Remote::oflag_ = ""; + +/** CONSTRUCTOR */ +Remote::Remote() : + overwrite_(false), + debug_(0) +{ + setRemoteDownloadCommand(); +} + +/** CONSTRUCTOR - base url */ +Remote::Remote(std::string const& baseUrl) : + overwrite_(false), + debug_(0), + url_(baseUrl) +{ + setRemoteDownloadCommand(); +} + +/** Set whether to overwrite existing files or not. */ +void Remote::SetOverwrite(bool b) { + overwrite_ = b; +} + +/** Set debug level */ +void Remote::SetDebug(int d) { + debug_ = d; +} + +/** Set the remote download command. */ +int Remote::setRemoteDownloadCommand() { + if (!cmd_.empty()) return 0; + // First try curl +# ifdef _WIN32 + int err = system("curl --version > NUL 2>&1"); +# else + int err = system("curl --version > /dev/null 2>&1"); +# endif + if (err == 0) { + mprintf("\tcurl found.\n"); + cmd_.assign("curl -s --show-error -f -L "); + oflag_.assign("-o "); + } else { +# ifdef _WIN32 + err = system("wget --version > NUL 2>&1"); +# else + err = system("wget --version > /dev/null 2>&1"); +# endif + if (err == 0) { + mprintf("\twget found.\n"); + cmd_.assign("wget --quiet "); + oflag_.assign("-O "); + } else { + mprinterr("Error: No working remote command found.\n"); + return 1; + } + } + return 0; +} + +/** Download file from base URL */ +int Remote::DownloadFile(std::string const& fname, std::string const& outputFnameIn) +const +{ + if (cmd_.empty()) { + mprinterr("Error: No remote download command set.\n"); + return 1; + } + if (fname.empty()) { + mprinterr("Error: No file name to download specified.\n"); + return 1; + } + FileName fileName(fname); + // Set output file name + FileName outputFname; + if (outputFnameIn.empty()) + outputFname = fileName.Base(); + else + outputFname.SetFileName( outputFnameIn ); + bool fileExists = File::Exists( outputFname ); + if (overwrite_) { + if (fileExists) + mprintf("Warning: Overwriting existing file '%s'\n", outputFname.full()); + } else { + if (fileExists) { + mprintf("Warning: Not overwriting existing file '%s'\n", outputFname.full()); + return 0; + } + } + // Set remote URL + std::string remoteUrl = url_ + "/" + fileName.Full(); + mprintf("\t %s => %s\n", remoteUrl.c_str(), outputFname.full()); + // Download File + std::string remoteCmd = cmd_ + oflag_ + outputFname.Full() + " " + remoteUrl; + if (debug_ > 0) + mprintf("DEBUG: %s\n", remoteCmd.c_str()); + int err = system(remoteCmd.c_str()); + if (err != 0) { + mprinterr("Error: Could not download %s => %s\n", remoteUrl.c_str(), outputFname.full()); + // FIXME: wget will leave behind empty files here + if (File::Exists(outputFname)) + File::Remove(outputFname); + return 1; + } + + return 0; +} + +/** Download file from base URL */ +int Remote::DownloadFile(std::string const& fname) const { + return DownloadFile(fname, ""); +} diff --git a/src/Remote.h b/src/Remote.h new file mode 100644 index 0000000000..497b425f85 --- /dev/null +++ b/src/Remote.h @@ -0,0 +1,31 @@ +#ifndef INC_REMOTE_H +#define INC_REMOTE_H +#include <string> +namespace Cpptraj { +/// Class for downloading remote files. +class Remote { + public: + /// CONSTRUCTOR + Remote(); + /// CONSTRUCTOR - Take remote base URL + Remote(std::string const&); + /// Set whether to overwrite files or not. + void SetOverwrite(bool); + /// Set debug level + void SetDebug(int); + /// Download file to output file assuming URL is remote directory + int DownloadFile(std::string const&, std::string const&) const; + /// Download file assuming URL is remote directory + int DownloadFile(std::string const&) const; + private: + /// Set remote download command + int setRemoteDownloadCommand(); + + bool overwrite_; ///< If true overwrite any existing files + int debug_; + std::string url_; ///< Remote base URL + static std::string cmd_; ///< Command to call to download remote files + static std::string oflag_; ///< Command output file flag +}; +} +#endif diff --git a/src/StringRoutines.cpp b/src/StringRoutines.cpp index 206211a8af..c46fe9a6a2 100644 --- a/src/StringRoutines.cpp +++ b/src/StringRoutines.cpp @@ -1,6 +1,7 @@ #include <cmath> // log10 #include <cctype> // isspace, isdigit #include <ctime> // for TimeString() +#include <locale> // for ToLower() #include <sstream> // istringstream, ostringstream #include <stdexcept> // BadConversion #include "StringRoutines.h" @@ -28,6 +29,17 @@ std::string AppendNumber(std::string const &fname, int number) { return oss.str(); } +/** Convert string to all lowercase */ +std::string ToLower(std::string const& strIn) { + if (strIn.empty()) return strIn; + std::locale loc; + std::string strOut; + strOut.reserve( strIn.size() ); + for (std::string::const_iterator it = strIn.begin(); it != strIn.end(); ++it) + strOut += std::tolower( *it, loc ); + return strOut; +} + /** \return 1 if S1 matches S2. 0 otherwise. * \param S1 String containing wildcards. * \param S2 String to match. diff --git a/src/StringRoutines.h b/src/StringRoutines.h index ba968c45b1..1bac566fbd 100644 --- a/src/StringRoutines.h +++ b/src/StringRoutines.h @@ -11,6 +11,8 @@ */ /// Append '.<number>' to string, useful for e.g. appending number to file name. std::string AppendNumber(std::string const &, int); +/// \return Input string converted to lowercase +std::string ToLower(std::string const& strIn); /// \return 1 if first string (containing wildcards *, ?) matches second. int WildcardMatch(std::string const&, std::string const&); /// \return number of characters needed to represent given digit. diff --git a/src/Structure/AddIons.cpp b/src/Structure/AddIons.cpp new file mode 100644 index 0000000000..ba21b86416 --- /dev/null +++ b/src/Structure/AddIons.cpp @@ -0,0 +1,436 @@ +#include "AddIons.h" +#include "../Parm/ParameterSet.h" +#include "../Parm/ParmHolder.h" +#include "../AtomType.h" +#include "../Constants.h" +#include "../CpptrajStdio.h" +#include "../DataSet_Coords.h" +#include "../DataSetList.h" +#include "../DistRoutines.h" +#include "../Topology.h" +#include <cmath> //fabs, lrint +#include <cstdlib> // FIXME debug + +using namespace Cpptraj::Structure; + +/** CONSTRUCTOR */ +AddIons::AddIons() : + Nion1_(0), + Nion2_(0), + debug_(0), + separation_(0.0) +{} + +/** Initialize */ +int AddIons::InitAddIons(std::string const& ion1nameIn, int Nion1, + std::string const& ion2nameIn, int Nion2, + double separationIn, int seedIn, int debugIn) +{ + debug_ = debugIn; + + if (ion1nameIn.empty()) { + mprinterr("Error: Must specify at least one ion name.\n"); + return 1; + } + ion1name_ = ion1nameIn; + if (Nion1 < 0) { + //mprinterr("Error: Number of %s ions cannot be less than 0 (%i)\n", ion1nameIn.c_str(), Nion1); + //return 1; + Nion1_ = 0; + } else + Nion1_ = Nion1; + + if (ion2nameIn.empty()) { + ion2name_.clear(); + Nion2_ = 0; + } else { + ion2name_ = ion2nameIn; + //if (Nion2 < 1) { + // mprinterr("Error: Number of second %s ions cannot be less than 1 (%i)\n", ion2nameIn.c_str(), Nion2); + // return 1; + //} + if (Nion2 < 0) + Nion2_ = 0; + else + Nion2_ = Nion2; + } + + separation_ = separationIn; + if (separation_ < 0.0) { + mprinterr("Error: Separation must be >= 0.0 (%f)\n", separation_); + return 1; + } + + RNG_.rn_set( seedIn ); + + return 0; +} + +/** Print setup info to stdout */ +void AddIons::PrintAddIonsInfo() const { + if (ion1name_.empty()) return; + mprintf("\tIon info:\n"); + if (Nion1_ < 1) + mprintf("\t Adding enough %s ions to neutralize.\n", ion1name_.c_str()); + else + mprintf("\t Adding %i %s ions.\n", Nion1_, ion1name_.c_str()); + if (!ion2name_.empty()) { + if (Nion2_ < 1) + mprintf("\t Adding enough %s ions to neutralize.\n", ion2name_.c_str()); + else + mprintf("\t Adding %i %s ions.\n", Nion2_, ion2name_.c_str()); + } + if (separation_ > 0.0) + mprintf("\t Minimum ion separation is %g Ang.\n", separation_); + mprintf("\t Ion RNG seed: %i\n", RNG_.Seed()); +} + +/** Get ion unit box from DataSetList. */ // TODO consolidate with Solvate::GetSolventUnit()? +DataSet_Coords* AddIons::GetIonUnit(std::string const& ionname, DataSetList const& DSL) const { + if (ionname.empty()) { + mprinterr("Internal Error: AddIons::GetIonUnit() called before ion name set.\n"); + return 0; + } + DataSetList sets = DSL.SelectGroupSets( "*", DataSet::COORDINATES ); // TODO specific set type for units? + // First try to match aspect, then match name + DataSet_Coords* ionUnit = 0; + // Aspect + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + { + DataSet_Coords* ds = static_cast<DataSet_Coords*>( *it ); + if (!ds->Meta().Aspect().empty()) { + if (ionname == ds->Meta().Aspect()) { + ionUnit = ds; + break; + } + } + } + // Name + if (ionUnit == 0) { + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + { + DataSet_Coords* ds = static_cast<DataSet_Coords*>( *it ); + if (ionname == ds->Meta().Name()) { + ionUnit = ds; + break; + } + } + } + if (ionUnit != 0) + mprintf("\t Ion unit: %s\n", ionUnit->legend()); + else + mprinterr("Error: Could not get ion unit named %s\n", ionname.c_str()); + + return ionUnit; +} + +/// \return Array containing radii for every atom +static inline std::vector<double> GetAtomRadii(DataSet_Coords* crd, Cpptraj::Parm::ParmHolder<AtomType> const& newAtomTypeParams) +{ + static const double ATOM_DEFAULT_RADIUS = 1.5; // To match LEAP + std::vector<double> OUT; + OUT.reserve( crd->Top().Natom() ); + + for (std::vector<Atom>::const_iterator at = crd->Top().begin(); at != crd->Top().end(); ++at) + { + bool found; + TypeNameHolder atype( at->Type() ); + AtomType AT = newAtomTypeParams.FindParam( atype, found ); + if (found && AT.HasLJ()) + OUT.push_back( AT.LJ().Radius() ); + else { + mprintf("Warning: Atom type parameter not found for '%s', using default radius %g\n", *atype[0], ATOM_DEFAULT_RADIUS); + OUT.push_back( ATOM_DEFAULT_RADIUS ); + } + } + return OUT; +} + +/** Add ions randomly, replacing solvent molecules. */ +int AddIons::AddIonsRand(Topology& topOut, Frame& frameOut, DataSetList const& DSL, + Cpptraj::Parm::ParameterSet const& set0) +const +{ + mprintf("\tAdding ions by randomly swapping with solvent.\n"); + // Check that there are solvent molecules. + int nsolvent = topOut.Nsolvent(); + if (nsolvent < 1) { + mprinterr("Error: No solvent present in '%s'. Add solvent first.\n", topOut.c_str()); + return 1; + } + // Unit total charge + double totalCharge = topOut.TotalCharge(); + if ( fabs(totalCharge) < Constants::SMALL ) { + mprintf("Warning: %s has a total charge of 0.\n", topOut.c_str()); + if (Nion1_ < 1) { + mprintf("Warning: Cannot neutralize.\n"); + return 0; + } + mprintf("Warning: Adding the ions anyway.\n"); + } else { + mprintf("\t Total charge on %s is %g\n", topOut.c_str(), totalCharge); + } + + // Get first ion + DataSet_Coords* Ion1 = GetIonUnit( ion1name_, DSL ); + if (Ion1 == 0) { + mprinterr("Error: Ion with name '%s' not found.\n", ion1name_.c_str()); + return 1; + } + // Check that there is a net charge + double chargeIon1 = Ion1->Top().TotalCharge(); + if ( fabs(chargeIon1) < Constants::SMALL) { + mprinterr("Error: Ion unit 1 '%s' does not have a net charge\n", Ion1->legend()); + return 1; + } + + // Get second ion + DataSet_Coords* Ion2 = 0; + double chargeIon2 = 0.0; + if (!ion2name_.empty()) { + Ion2 = GetIonUnit( ion2name_, DSL ); + if (Ion2 == 0) { + mprinterr("Error: Ion with name '%s' not found.\n", ion2name_.c_str()); + return 1; + } + // Check that there is a net charge + chargeIon2 = Ion2->Top().TotalCharge(); + if ( fabs(chargeIon2) < Constants::SMALL) { + mprinterr("Error: Ion unit 2 '%s' does not have a net charge\n", Ion2->legend()); + return 1; + } + } + + // Check that ion can actually neutralize + int iIon1 = Nion1_; + int iIon2 = Nion2_; + bool can_neutralize1 = true; + bool is_neutralized = false; + if (Nion1_ < 1) { + if ( (chargeIon1 < 0 && totalCharge < 0) || + (chargeIon1 > 0 && totalCharge > 0) ) + { + mprintf("Warning: First ion and system charges have same sign (%g and %g); can't neutralize.\n", + chargeIon1, totalCharge); + can_neutralize1 = false; + } else { + // Get the nearest integer number of ions needed to neutralize the system. + iIon1 = (int)lrint( fabs(totalCharge+(chargeIon2*Nion2_)) / fabs(chargeIon1) ); + mprintf("\t Number of %s ions required to neutralize: %i\n", ion1name_.c_str(), iIon1); + is_neutralized = true; + } + } + + bool can_neutralize2 = true; + if (Ion2 != 0 && Nion2_ < 1 && !is_neutralized) { + if ( (chargeIon2 < 0 && totalCharge < 0) || + (chargeIon2 > 0 && totalCharge > 0) ) + { + mprintf("Warning: Second ion and system charges have same sign (%g and %g); can't neutralize.\n", + chargeIon2, totalCharge); + can_neutralize2 = false; + } else { + // Get the nearest integer number of ions needed to neutralize the system. + iIon2 = (int)lrint( fabs(totalCharge+(chargeIon1*iIon1)) / fabs(chargeIon2) ); + mprintf("\t Number of %s ions required to neutralize: %i\n", ion2name_.c_str(), iIon2); + } + } + + if (!can_neutralize1 && !can_neutralize2) { + mprinterr("Error: Could not automatically neutralize system charge with specified ions.\n"); + return 1; + } + if (iIon1 > 0) + mprintf("\t Adding %i %s ions\n", iIon1, ion1name_.c_str()); + if (iIon2 > 0) + mprintf("\t Adding %i %s ions\n", iIon2, ion2name_.c_str()); + + // Check that there is enough solvent to swap + int nIons = iIon1 + iIon2; + if ( nIons == nsolvent ) + mprintf("Warning: # of ions to add (%i) is same as number of solvent molecules (%i)\n", nIons, nsolvent); + else if (nIons > nsolvent) { + mprinterr("Error: # of ions to add (%i) is larger than number of solvent molecules (%i)\n", nIons, nsolvent); + return 1; + } + + // Get atom radius for each ion + typedef std::vector<double> Darray; + + Darray ion1radii, ion2radii; + + ion1radii = GetAtomRadii( Ion1, set0.AT() ); + + if (Ion2 != 0) + ion2radii = GetAtomRadii( Ion2, set0.AT() ); + + //mprintf("DEBUG: Nsolvent = %i\n", topOut.Nsolvent()); + + std::vector<int> soluteMolNums; + std::vector<int> solventMolNums;// = topOut.SolventMolNums(); + VstatArray molStat; + molStat.reserve(topOut.Nmol()); + int molnum = 0; + for (Topology::mol_iterator mol = topOut.MolStart(); mol != topOut.MolEnd(); ++mol, ++molnum) + { + if (mol->IsSolvent()) { + solventMolNums.push_back( molnum ); + molStat.push_back( UNUSED ); + } else { + soluteMolNums.push_back( molnum ); + molStat.push_back( SOLUTE ); + } + } + // DEBUG + //mprintf("DEBUG: Solvent molecule #s:"); + //for (std::vector<int>::const_iterator it = solventMolNums.begin(); it != solventMolNums.end(); ++it) + // mprintf(" %i", *it); + //mprintf("\n"); // DEBUG + + //VstatArray solventStat(solventMolNums.size(), UNUSED); + + mprintf("\t Adding %d counter ions to \"%s\". %d solvent molecules will remain.\n", + iIon1 + iIon2, topOut.c_str(), (int)topOut.SolventMolNums().size() - iIon1 - iIon2); + + typedef std::vector<Vec3> Varray; + Varray ionPositions; + if (separation_ > 0.0) + ionPositions.reserve( nIons ); + double cut2 = separation_ * separation_; + + // To match how LEaP orders systems (solute/ions/solvent), need to have an atom map. + // First add solute. + std::vector<int> atomMap; + for (std::vector<int>::const_iterator imol = soluteMolNums.begin(); imol != soluteMolNums.end(); ++imol) + { + Molecule const& Mol = topOut.Mol( *imol ); + for (Unit::const_iterator seg = Mol.MolUnit().segBegin(); seg != Mol.MolUnit().segEnd(); ++seg) + for (int idx = seg->Begin(); idx != seg->End(); ++idx) + atomMap.push_back( idx ); + } + + // Add ions loop. Will initially be added to the end of the topology and reordered afterwards. + int failCounter = 0; + while ( iIon1 || iIon2 ) { + if (iIon1) { + if (place_ion(iIon1, failCounter, ionPositions, Ion1, topOut, frameOut, solventMolNums, cut2, nIons, atomMap, molStat)) + return 1; + } + if (iIon2) { + if (place_ion(iIon2, failCounter, ionPositions, Ion2, topOut, frameOut, solventMolNums, cut2, nIons, atomMap, molStat)) + return 1; + } + } + + // Add back any solvent that was not swapped + for (unsigned int imol = 0; imol != molStat.size(); ++imol) + { + if (molStat[imol] != SWAPPED && molStat[imol] != SOLUTE) { + Molecule const& Mol = topOut.Mol( imol ); + for (Unit::const_iterator seg = Mol.MolUnit().segBegin(); seg != Mol.MolUnit().segEnd(); ++seg) + for (int idx = seg->Begin(); idx != seg->End(); ++idx) + atomMap.push_back( idx ); + } + } + + // DEBUG + //mprintf("DEBUG: Atom Map:\n"); + //for (unsigned int idx = 0; idx != atomMap.size(); idx++) + // mprintf("\tOld=%8i -> New=%8u\n", atomMap[idx], idx); + + //FIXME this is not very efficient memory-wise + Topology* reorderedTop = topOut.ModifyByMap(atomMap); + if (reorderedTop == 0) { + mprinterr("Internal Error: Failed reordering system after adding ions.\n"); + return 1; + } + topOut = *reorderedTop; + delete reorderedTop; + + Frame frameOutCopy = frameOut; + frameOut.ModifyByMap( frameOutCopy, atomMap ); + + // TODO if PDB original residue number/atom number is present, it needs to be regenerated for ions/waters + + return 0; +} + +/** Select a solvent molecule to swap with that is not too close to other ions positions. */ +int AddIons::place_ion(int& iIon1, int& failCounter, Varray& ionPositions, + DataSet_Coords* ionCrd, Topology& topOut, Frame& frameOut, + std::vector<int>& solventMolNums, double cut2, int nIons, + std::vector<int>& atomMap, VstatArray& molStat) +const +{ + // Pick a random solvent molecule to replace + int solvIdx = RNG_.rn_num() % (int)solventMolNums.size(); + int ntries = 0; + while ( molStat[solventMolNums[solvIdx]] != UNUSED ) { + ntries++; + if (ntries > 100) { + mprinterr("Error: Could not find a solvent molecule to swap with after 100 tries.\n"); + return 1; + } + solvIdx = RNG_.rn_num() % (int)solventMolNums.size(); + } + + // Do not try it again. It will either be used or be invalid due to distances. + int solventMolNum = solventMolNums[solvIdx]; + if (debug_ > 0) + mprintf("DEBUG: ntries=%i Trying swap %s with solvent molecule %i (idx= %i)\n", ntries, ionCrd->legend(), solventMolNum, solvIdx); + molStat[solventMolNum] = TRIED; + + // Get position of solvent residue atom. TODO should this be the geometric center? + Molecule const& solventMol = topOut.Mol( solventMolNum ); + int firstAt = solventMol.MolUnit().Front(); + Vec3 pos( frameOut.XYZ(firstAt) ); + + // Check that this position isnt too close to other positions + bool placeIon = true; + for (Varray::const_iterator previousPos = ionPositions.begin(); previousPos != ionPositions.end(); ++previousPos) + { + // TODO imaging + double dist2 = DIST2_NoImage( pos, *previousPos ); + if (dist2 < cut2) { + ++failCounter; + placeIon = false; + break; + } + } + + if (placeIon) { + molStat[solventMolNum] = SWAPPED; + std::vector<int> validIonResidues; + validIonResidues.reserve( ionCrd->Top().Nres() ); + for (int ires = 0; ires != ionCrd->Top().Nres() ; ++ires) + validIonResidues.push_back( ires ); + Frame ionFrame = ionCrd->AllocateFrame(); //TODO allocate outside this routine + ionCrd->GetFrame(0, ionFrame); + ionFrame.CenterOnPoint( pos, false ); // Use geometric center + //Vec3 debugVec = ionFrame.VGeometricCenter(); + //debugVec.Print("DEBUG: check ion center"); + if (debug_ > 0) + mprintf("\t %zu: Placed %s in %s at (%4.2lf, %4.2lf, %4.2lf).\n", iIon1, ionCrd->legend(), topOut.c_str(), + pos[0], pos[1], pos[2]); + if (separation_ > 0.0) + ionPositions.push_back( pos ); + int ionAtoms0 = topOut.Natom(); + int ionAtoms1 = ionAtoms0 + ionCrd->Top().Natom(); + for (int iat = ionAtoms0; iat != ionAtoms1; iat++) + atomMap.push_back( iat ); + topOut.AddResidues( ionCrd->Top(), validIonResidues, frameOut, ionFrame, false ); + --iIon1; + // Resize the active solvent molecules array + for (unsigned int vidx = solvIdx + 1; vidx < solventMolNums.size(); vidx++) + solventMolNums[vidx-1] = solventMolNums[vidx]; + solventMolNums.resize( solventMolNums.size() - 1 ); + } + + // Safety valve + if (failCounter > 100) { + mprinterr("Error: Could not place %i ions with a minimum separation of %f after 100 tries.\n", nIons, separation_); + return 1; + } + + return 0; +} diff --git a/src/Structure/AddIons.h b/src/Structure/AddIons.h new file mode 100644 index 0000000000..392504f60e --- /dev/null +++ b/src/Structure/AddIons.h @@ -0,0 +1,49 @@ +#ifndef INC_CPPTRAJ_STRUCTURE_ADDIONS_H +#define INC_CPPTRAJ_STRUCTURE_ADDIONS_H +#include "../Random.h" +#include <string> +class DataSet_Coords; +class DataSetList; +class Frame; +class Topology; +class Vec3; +namespace Cpptraj { +namespace Parm { +class ParameterSet; +} +namespace Structure { +/// Used to add ions to a system +class AddIons { + public: + AddIons(); + /// Init - unit, ion1, Nion1, ion2, Nion2, separation, random seed, debug + int InitAddIons(std::string const&, int, std::string const&, int, double, int, int); + /// Print info to stdout + void PrintAddIonsInfo() const; + /// Add ions randomly + int AddIonsRand(Topology&, Frame&, DataSetList const&, Cpptraj::Parm::ParameterSet const&) const; + + /// \return True if at least 1 ion has been specified. + bool IsSetup() const { return !ion1name_.empty(); } + private: + typedef std::vector<Vec3> Varray; + + enum VmolStatType { UNUSED = 0, TRIED, SWAPPED, SOLUTE }; + typedef std::vector<VmolStatType> VstatArray; + + /// \return Ion unit specified by given name + DataSet_Coords* GetIonUnit(std::string const&, DataSetList const&) const; + /// Place ion within topology + int place_ion(int&, int&, Varray&, DataSet_Coords*, Topology&, Frame&, std::vector<int>&, double, int, std::vector<int>&, VstatArray&) const; + + std::string ion1name_; ///< Name of first ion + std::string ion2name_; ///< Name of second ion + int Nion1_; ///< Number of first ion to add + int Nion2_; ///< Number of second ion to add + int debug_; + double separation_; ///< Min. distance in Angstroms any ion can be from another ion + Random_Number RNG_; ///< Random number generator +}; +} +} +#endif diff --git a/src/Structure/BuildAtom.h b/src/Structure/BuildAtom.h deleted file mode 100644 index 1515d2ce9f..0000000000 --- a/src/Structure/BuildAtom.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef INC_STRUCTURE_BUILDATOM_H -#define INC_STRUCTURE_BUILDATOM_H -#include "StructureEnum.h" -namespace Cpptraj { -namespace Structure { -/// Hold information for an atom used when building/modelling new coordinates. -class BuildAtom { - public: - BuildAtom() : ctype_(IS_UNKNOWN_CHIRALITY) {} - /// Set chirality - void SetChirality(ChiralType c) { ctype_ = c; } - /// Set size of priority array based on number of bonds - //void SetNbonds(int n) { priority_.assign(n, -1); } - /// \return Pointer to priority array - //int* PriorityPtr() { return &(priority_[0]); } - /// Used to modify the priority array - std::vector<int>& ModifyPriority() { return priority_; } - - /// \return Atom chirality - ChiralType Chirality() const { return ctype_; } - /// \return Priority array - std::vector<int> const& Priority() const { return priority_; } - private: - ChiralType ctype_; ///< Chirality around atom - std::vector<int> priority_; ///< Indices of bonded atoms, sorted by priority -}; -} -} -#endif diff --git a/src/Structure/Builder.cpp b/src/Structure/Builder.cpp index 4b09556d77..6a0a403b13 100644 --- a/src/Structure/Builder.cpp +++ b/src/Structure/Builder.cpp @@ -1,109 +1,2580 @@ #include "Builder.h" -#include "BuildAtom.h" #include "Chirality.h" +#include "GenerateConnectivityArrays.h" #include "Zmatrix.h" +#include "../Constants.h" #include "../CpptrajStdio.h" +#include "../DistRoutines.h" #include "../Frame.h" +#include "../GuessAtomHybridization.h" +#include "../Parm/ParameterSet.h" #include "../Topology.h" +#include "../TorsionRoutines.h" +#include "../TypeNameHolder.h" #include <algorithm> // std::copy +#include <cmath> // fabs using namespace Cpptraj::Structure; +using namespace Cpptraj::Parm; + +#ifdef TIMER +Timer Builder::timeg_builder_IALsetup_ = Timer(); +Timer Builder::timeg_builder_IALspan_ = Timer(); +Timer Builder::timeg_builder_IALgen_ = Timer(); +Timer Builder::timeg_builder_IALgen_internals_ = Timer(); +Timer Builder::timeg_builder_IALgen_missing_ = Timer(); +Timer Builder::timeg_builder_torsions_ = Timer(); +Timer Builder::timeg_builder_angles_ = Timer(); +Timer Builder::timeg_builder_bonds_ = Timer(); +Timer Builder::timeg_builder_chirality_ = Timer(); +Timer Builder::timeg_ang_search_ = Timer(); +Timer Builder::timeg_ang_model_ = Timer(); +Timer Builder::timeg_MBA_getAngleParam_ = Timer(); +Timer Builder::timeg_MBA_getAtomHybrid_ = Timer(); +#endif /** CONSTRUCTOR */ Builder::Builder() : - debug_(0) + debug_(0), + params_(0), + currentTop_(0) {} -/** Combine two units. Fragment 1 will be merged into Fragment 0 and bonded. */ -int Builder::Combine(Topology& frag0Top, Frame& frag0frm, - Topology const& frag1Top, Frame const& frag1frm, - int bondAt0, int bondAt1) -{ - int natom0 = frag0Top.Natom(); - int newNatom = natom0 + frag1Top.Natom(); - - // Determine which "direction" we will be combining the fragments. - // Make atA belong to the smaller fragment. atB fragment will be "known". - // Ensure atB index is what it will be after fragments are combined. - Barray posKnown( newNatom, false ); - int atA, atB; - if (frag0Top.HeavyAtomCount() < frag1Top.HeavyAtomCount()) { - // Fragment 1 is larger - atA = bondAt0; - atB = bondAt1 + natom0; - for (int at = frag0Top.Natom(); at != newNatom; at++) - posKnown[at] = true; +/** Set optional parameter set. */ +void Cpptraj::Structure::Builder::SetParameters(Cpptraj::Parm::ParameterSet const* paramsIn) { + if (paramsIn == 0) { + mprinterr("Internal Error: Builder::SetParmaters called with null set.\n"); + return; + } + params_ = paramsIn; +} + +/** Set an atoms chirality */ +void Cpptraj::Structure::Builder::SetAtomChirality(int at, double chi) { + int cidx = getExistingChiralityIdx(at); + if (cidx == -1) { + internalChirality_.push_back( InternalChirality(at, chi) ); + } else { + mprintf("Warning: Overriding existing chirality %f for atom %i with %f\n", + internalChirality_[cidx].ChiralVal(), at+1, chi); + internalChirality_[cidx].SetChiralVal( chi ); + } +} + +/** Get length from parameter set if present. + * \return 1 if a length parameter was found. + */ +int Cpptraj::Structure::Builder::getLengthParam(double& dist, int ai, int aj, Topology const& topIn) +const +{ + if (params_ != 0 && topIn[ai].HasType() && topIn[aj].HasType()) { + TypeNameHolder btypes(2); + btypes.AddName( topIn[ai].Type() ); + btypes.AddName( topIn[aj].Type() ); + ParmHolder<BondParmType>::const_iterator it = params_->BP().GetParam( btypes ); + if (it != params_->BP().end()) { + dist = it->second.Req(); + if (debug_ > 1) + mprintf("DEBUG: Found bond parameter for %s (%s) - %s (%s): req=%g rk=%g\n", + topIn.AtomMaskName(ai).c_str(), *(topIn[ai].Type()), + topIn.AtomMaskName(aj).c_str(), *(topIn[aj].Type()), + it->second.Req(), it->second.Rk()); + return 1; + } + } + return 0; +} + +/** Get angle parameter if present. + * \return 1 if parameter found. + */ +int Cpptraj::Structure::Builder::getAngleParam(double& theta, int ai, int aj, int ak, Topology const& topIn) +const +{ + if (params_ != 0 && + topIn[ai].HasType() && + topIn[aj].HasType() && + topIn[ak].HasType()) + { + TypeNameHolder atypes(3); + atypes.AddName( topIn[ai].Type() ); + atypes.AddName( topIn[aj].Type() ); + atypes.AddName( topIn[ak].Type() ); + ParmHolder<AngleParmType>::const_iterator it = params_->AP().GetParam( atypes ); + if (it != params_->AP().end()) { + theta = it->second.Teq(); + if (debug_ > 1) + mprintf("DEBUG: Found angle parameter for %s (%s) - %s (%s) - %s (%s): teq=%g tk=%g\n", + topIn.AtomMaskName(ai).c_str(), *(topIn[ai].Type()), + topIn.AtomMaskName(aj).c_str(), *(topIn[aj].Type()), + topIn.AtomMaskName(ak).c_str(), *(topIn[ak].Type()), + it->second.Teq()*Constants::RADDEG, it->second.Tk()); + return 1; + } + } + return 0; +} + +/// Recursive function to return depth from an atom along bonds +static int atom_depth(int& depth, + int at, Topology const& topIn, std::vector<bool>& visited, int maxdepth) +{ + if (depth == maxdepth) return 0; + depth++; + visited[at] = true; + int depthFromHere = 1; + for (Atom::bond_iterator bat = topIn[at].bondbegin(); bat != topIn[at].bondend(); ++bat) + { + if (!visited[*bat]) + depthFromHere += atom_depth( depth, *bat, topIn, visited, maxdepth ); + } + return depthFromHere; +} + +/** \return Index of atom with longest 'depth' around an atom, ignoring one bonded atom. */ +int Builder::get_depths_around_atom(int at0, int at1, Topology const& topIn) const { + int largest_depth = 0; + int largest_depth_idx = -1; + Atom const& Atm0 = topIn[at0]; + if (debug_ > 0) + mprintf("DEBUG: Depths around %s\n", topIn.AtomMaskName(at0).c_str()); + for (Atom::bond_iterator bat = Atm0.bondbegin(); bat != Atm0.bondend(); ++bat) + { + if (*bat != at1) { + Barray visited(topIn.Natom(), false); + visited[at0] = true; + visited[at1] = true; + // Get depth from here + int currentDepth = 0; + int depth = atom_depth(currentDepth, *bat, topIn, visited, 10); + if (debug_ > 0) + mprintf("DEBUG:\t\t%s = %i\n", topIn.AtomMaskName(*bat).c_str(), depth); + if (depth > largest_depth) { + largest_depth = depth; + largest_depth_idx = *bat; + } + } + } + return largest_depth_idx; +} + +/** Adjust internals around a link so that atoms with longest 'depth' are trans. */ +int Builder::AdjustIcAroundLink(int at0, int at1, Frame const& frameIn, Topology const& topIn) +{ + int atA = get_depths_around_atom(at0, at1, topIn); + int atD = get_depths_around_atom(at1, at0, topIn); + if (atA < 0 || atD < 0) return 0; + if (debug_ > 0) + mprintf("DEBUG: Highest depth torsion is %s - %s - %s - %s\n", + topIn.AtomMaskName(atA).c_str(), + topIn.AtomMaskName(at0).c_str(), + topIn.AtomMaskName(at1).c_str(), + topIn.AtomMaskName(atD).c_str()); + // Get that torsion + int tidx = getExistingTorsionIdx(atA, at0, at1, atD); + if (tidx < 0) { + mprintf("Warning: Could not adjust internal torsion %s - %s - %s - %s, not present.\n", + topIn.AtomMaskName(atA).c_str(), + topIn.AtomMaskName(at0).c_str(), + topIn.AtomMaskName(at1).c_str(), + topIn.AtomMaskName(atD).c_str()); + return 0; + } + // Figure out the delta from 180 + double dTorsion = 180.0 * Constants::DEGRAD; + double dInternalValue = internalTorsions_[tidx].PhiVal(); + double tDiff = (dTorsion - dInternalValue); + if (debug_ > 0) + mprintf("\tdTorsion= %f dInternalValue= %f tDiff= %f\n", + dTorsion*Constants::RADDEG, dInternalValue*Constants::RADDEG, tDiff*Constants::RADDEG); + if (fabs(tDiff) > Constants::SMALL) { + // Find all ICs that share atoms 1 and 2 (J and K) + Iarray iTorsions = getExistingTorsionIdxs(at0, at1); + if (debug_ > 0) + mprintf("Twisting torsions centered on %s - %s by %f degrees\n", + topIn.LeapName(at0).c_str(), + topIn.LeapName(at1).c_str(), + tDiff*Constants::RADDEG); + for (Iarray::const_iterator idx = iTorsions.begin(); idx != iTorsions.end(); ++idx) + { + InternalTorsion& dih = internalTorsions_[*idx]; + double dNew = dih.PhiVal() + tDiff; + if (debug_ > 1) { + mprintf("Twisting torsion for atoms: %s-%s-%s-%s\n", + *(topIn[dih.AtI()].Name()), + *(topIn[dih.AtJ()].Name()), + *(topIn[dih.AtK()].Name()), + *(topIn[dih.AtL()].Name())); + mprintf("------- From %f to %f\n", dih.PhiVal()*Constants::RADDEG, dNew*Constants::RADDEG); + } + dih.SetPhiVal( dNew ); + } + } + + return 0; +} + +/** For existing torsions, see if all coordinates in that torsion + * exist. If so, update the torsion from the existing coordinates. + */ +int Builder::UpdateICsFromFrame(Frame const& frameIn, Topology const& topIn, Barray const& hasPosition) +{ + // Create a list of residues that have atoms with internals TODO combine with residuesThatNeedPositions()? + std::vector<Residue> residues; + std::vector<int> Rnums; + for (Tarray::const_iterator dih = internalTorsions_.begin(); + dih != internalTorsions_.end(); ++dih) + { + int rnum = topIn[dih->AtI()].ResNum(); + bool has_rnum = false; + for (std::vector<int>::const_iterator it = Rnums.begin(); it != Rnums.end(); ++it) { + if (*it == rnum) { + has_rnum = true; + break; + } + } + if (!has_rnum) { + if (debug_ > 0) + mprintf("DEBUG: Residue %s has internals.\n", topIn.TruncResNameNum(rnum).c_str()); + residues.push_back( topIn.Res(rnum) ); + Rnums.push_back(rnum); + } + } + // Get list of bonds. + BondArray myBonds = GenerateBondArray( residues, topIn.Atoms() ); + for (BondArray::const_iterator bnd = myBonds.begin(); bnd != myBonds.end(); ++bnd) { + if (debug_ > 1) + mprintf("Looking at torsions around: %s - %s\n", topIn.LeapName(bnd->A1()).c_str(), topIn.LeapName(bnd->A2()).c_str()); + // Find all ICs that share atoms 1 and 2 (J and K) + bool needsUpdate = false; + double tDiff = 0; + Iarray iTorsions = getExistingTorsionIdxs(bnd->A1(), bnd->A2()); + for (Iarray::const_iterator idx = iTorsions.begin(); idx != iTorsions.end(); ++idx) + { + InternalTorsion const& dih = internalTorsions_[*idx]; + if (hasPosition[dih.AtI()] && + hasPosition[dih.AtJ()] && + hasPosition[dih.AtK()] && + hasPosition[dih.AtL()]) + { + if (debug_ > 1) + mprintf("Measuring torsion of fixed atoms: %s - %s - %s - %s\n", + topIn.LeapName(dih.AtI()).c_str(), + topIn.LeapName(dih.AtJ()).c_str(), + topIn.LeapName(dih.AtK()).c_str(), + topIn.LeapName(dih.AtL()).c_str()); + double dTorsion = Torsion(frameIn.XYZ(dih.AtI()), + frameIn.XYZ(dih.AtJ()), + frameIn.XYZ(dih.AtK()), + frameIn.XYZ(dih.AtL())); + double dInternalValue = dih.PhiVal(); + tDiff = (dTorsion - dInternalValue); + if (debug_ > 1) + mprintf("\tdTorsion= %f dInternalValue= %f\n", dTorsion, dInternalValue); + needsUpdate = true; + } // END all coords present + } // END loop over torsions matching current bond + // If any difference was found, shift all of the torsions + if (needsUpdate) { + if (debug_ > 1) + mprintf("Twisting torsions centered on %s - %s by %f degrees\n", + topIn.LeapName(bnd->A1()).c_str(), + topIn.LeapName(bnd->A2()).c_str(), + tDiff*Constants::RADDEG); + for (Iarray::const_iterator idx = iTorsions.begin(); idx != iTorsions.end(); ++idx) + { + InternalTorsion& dih = internalTorsions_[*idx]; + double dNew = dih.PhiVal() + tDiff; + if (debug_ > 1) { + mprintf("Twisting torsion for atoms: %s-%s-%s-%s\n", + *(topIn[dih.AtI()].Name()), + *(topIn[dih.AtJ()].Name()), + *(topIn[dih.AtK()].Name()), + *(topIn[dih.AtL()].Name())); + mprintf("------- From %f to %f\n", dih.PhiVal()*Constants::RADDEG, dNew*Constants::RADDEG); + } + dih.SetPhiVal( dNew ); + } + } // END ICs need update + } // END loop over bonds + return 0; +} + +// ----------------------------------------------------------------------------- +/// Used to track atoms for mock externals +class MockAtom { + public: + /// CONSTRUCTOR + MockAtom() : idx_(-1), pos_(0.0), known_(false), buildInternals_(false) {} + /// CONSTRUCTOR - index, position + MockAtom(int idx, Vec3 const& pos) : idx_(idx), pos_(pos), known_(true), buildInternals_(false) {} + /// CONSTRUCTOR - index, unknown position + MockAtom(int idx) : idx_(idx), pos_(0.0), known_(false), buildInternals_(false) {} + /// Set position + void SetPos(Vec3 const& p) { pos_ = p; known_ = true; } + /// Set position status to unknown + void SetUnknown() { pos_ = Vec3(0.0); known_ = false; } + /// Set build internals status + void SetBuildInternals(bool b) { buildInternals_ = b; } + + int Idx() const { return idx_; } + Vec3 const& Pos() const { return pos_; } + bool Known() const { return known_; } + bool BuildInternals() const { return buildInternals_; } + private: + int idx_; ///< Atom index + Vec3 pos_; ///< Atom position + bool known_; ///< True if atom position is known + bool buildInternals_; ///< True if internals should be built for this atom +}; + +// ----------------------------------------------------------------------------- +/** Store info for modelling torsions around X-Y */ +class Cpptraj::Structure::Builder::TorsionModel { + public: + typedef std::vector<MockAtom> Marray; + /// CONSTRUCTOR + TorsionModel() : dAbsolute_(0), Xorientation_(0), Yorientation_(0), axHasKnownAtoms_(false), ayHasKnownAtoms_(false) {} + /// Initialize torsions around bonded atoms + int InitTorsion(int, int, Frame const&, Topology const&, std::vector<bool> const&, int); + /// Set up torsions around bonded atoms + int SetupTorsion(AtomType::HybridizationType, AtomType::HybridizationType, Topology const& topIn, double, double); + /// Build mock externals from given internals + int BuildMockExternals(Iarray const&, Tarray const&, Topology const&); + + /// \return Value of A-X-Y-D torsion in radians + double Absolute() const { return dAbsolute_; } + /// \return Value of orientation around X + double XOrientation() const { return Xorientation_; } + /// \return Value of orientation around Y + double YOrientation() const { return Yorientation_; } + /// \return Sorted atoms bonded to X excluding Y + Marray const& SortedAx() const { return sorted_ax_; } + /// \return Sorted atoms bonded to Y excluding X + Marray const& SortedAy() const { return sorted_ay_; } + /// \return Atom X + MockAtom const& AtX() const { return atX_; } + /// \return Atom Y + MockAtom const& AtY() const { return atY_; } + /// \return True if AX has known bonded atoms + bool AxHasKnownAtoms() const { return axHasKnownAtoms_; } + /// \return True if AY has known bonded atoms + bool AyHasKnownAtoms() const { return ayHasKnownAtoms_; } + /// Sort an array of MockAtoms the way that LEaP does + static Marray SortBondedAtomsLikeLeap(unsigned int&, Topology const& topIn, Marray const&); + private: + static int LeapAtomWeight(Atom const&); + //static inline std::vector<int> SiftBondedAtomsLikeLeap(unsigned int&, Atom const&, std::vector<bool> const&); + static inline void swap_heaviest(Marray&, Topology const&); + + MockAtom atX_; ///< Atom X + MockAtom atY_; ///< Atom Y + Marray sorted_ax_; ///< Hold the leap-sorted bonded atoms for atom X + Marray sorted_ay_; ///< Hold the leap-sorted bonded atoms for atom Y + double dAbsolute_; ///< Hold the value of the A-X-Y-D torsion in radians + double Xorientation_; ///< Orientation around the X atom TODO make an enum? + double Yorientation_; ///< Orientation around the Y atoms + bool axHasKnownAtoms_; ///< True if any atom around ax (other than ay) is known + bool ayHasKnownAtoms_; ///< True if any atom around ay (other than ax) is known +}; + +/** \return the LEaP 'weight' of an atom. + * Originally used to force the 'heaviest' atoms around a torsion trans to + * each other. The 'weight' of an atom is defined as its element number, + * unless the atom is CARBON, then it is 1000, making it the 'heaviest' atom. + */ +int Cpptraj::Structure::Builder::TorsionModel::LeapAtomWeight(Atom const& At) +{ + if ( At.Element() == Atom::CARBON ) + return 1000; + return At.AtomicNumber(); +} + +/** Place atoms with known position ahead of atoms with no known position. + * \param firstUnknownIdx Position in output array of the first unknown atom. + * \param At The atom to sift. + * \param hasPosition Array indicating whether atoms have position. + */ +/*std::vector<int> + Cpptraj::Structure::Builder::TorsionModel::SiftBondedAtomsLikeLeap(unsigned int& firstUnknownIdx, + Atom const& At, + std::vector<bool> const& hasPosition) +{ + std::vector<int> out; + out.reserve( At.Nbonds() ); + for (Atom::bond_iterator bat = At.bondbegin(); bat != At.bondend(); ++bat) + if (hasPosition[*bat]) + out.push_back( *bat ); + firstUnknownIdx = out.size(); + for (Atom::bond_iterator bat = At.bondbegin(); bat != At.bondend(); ++bat) + if (!hasPosition[*bat]) + out.push_back( *bat ); + return out; +}*/ + +static inline void swap_mock_atom(MockAtom& lhs, MockAtom& rhs) { + MockAtom tmp = lhs; + lhs = rhs; + rhs = tmp; +} + +void Cpptraj::Structure::Builder::TorsionModel::swap_heaviest(Marray& bondedAtoms, Topology const& topIn) +{ + // Find the index of the heaviest atom + int iHighest = 0; + int iPos = 0; + for (Marray::const_iterator it = bondedAtoms.begin(); it != bondedAtoms.end(); ++it) + { + int iWeight = LeapAtomWeight( topIn[it->Idx()] ); + if ( iHighest < iWeight ) { + iHighest = iWeight; + iPos = (int)(it - bondedAtoms.begin()); + } + } + // If highest weight atom not already in front, swap it there. + if (iHighest != 0) swap_mock_atom( bondedAtoms[0], bondedAtoms[iPos] ); +} + +/** Order atoms bonded to the given atom in a manner similar to LEaP's + * zModelOrderAtoms. In that routine, first atoms were sorted into + * known position > unknown position. Then the heaviest atom in each + * subgroup was swapped with the first element of that list. + * The ignore atom is the index of the atom this atom is bonded to that + * forms the torsion we are interested in. + */ +std::vector<MockAtom> + Cpptraj::Structure::Builder::TorsionModel::SortBondedAtomsLikeLeap(unsigned int& firstUnknownIdx, + Topology const& topIn, + std::vector<MockAtom> const& bondedAtoms) +{ + typedef std::vector<MockAtom> Marray; + Marray known_out; + known_out.reserve( bondedAtoms.size() ); + // Sift so that atoms with known position are at the front + for (Marray::const_iterator it = bondedAtoms.begin(); it != bondedAtoms.end(); ++it) + if (it->Known()) + known_out.push_back( *it ); + firstUnknownIdx = known_out.size(); + swap_heaviest(known_out, topIn); + // Unknown atoms go at the back. + // In order to match the way LEaP performs sifting, known atoms are + // added in order, but unknown atoms are added in reverse order. + Marray unknown_out; + unknown_out.reserve(bondedAtoms.size() - known_out.size() + 1); + for (Marray::const_reverse_iterator it = bondedAtoms.rbegin(); it != bondedAtoms.rend(); ++it) + if (!it->Known()) + unknown_out.push_back( *it ); + swap_heaviest(unknown_out, topIn); + // Append unknown array to known array and return + for (Marray::const_iterator it = unknown_out.begin(); it != unknown_out.end(); ++it) + known_out.push_back( *it ); + + return known_out; +} + +/** Assuming atoms have been ordered with SortBondedAtomsLikeLeap, + * calculate the orientation of the iB atom with respect to the + * triangle (iA, iX, iY). This orientation will be used by the + * CreateSpXSpX routines to determine which torsion values to use. + */ +static inline double calculateOrientation(MockAtom const& iX, double chiX, Atom const& AX, MockAtom const& iA, MockAtom const& iY, MockAtom const& iB) +{ + using namespace Cpptraj::Structure::Chirality; + double dOrientation = 1.0; + if (iX.Known() && + iA.Known() && + iY.Known() && + iB.Known()) + { + dOrientation = VectorAtomChirality( iX.Pos(), iA.Pos(), iY.Pos(), iB.Pos() ); +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("ORIENTATION: known = %f\n", dOrientation); +# endif } else { - // Fragment 0 is larger or equal - atA = bondAt1 + natom0; - atB = bondAt0; - for (int at = 0; at != natom0; at++) - posKnown[at] = true; - } - - // Combine fragment1 into fragment 0 topology - Topology& combinedTop = frag0Top; - combinedTop.AppendTop( frag1Top ); - // Combined fragment1 into fragment 0 coords. - // Need to save the original coords in frame0 since SetupFrameV does not preserve. - double* tmpcrd0 = new double[natom0*3]; - std::copy( frag0frm.xAddress(), frag0frm.xAddress()+frag0frm.size(), tmpcrd0 ); - frag0frm.SetupFrameV( combinedTop.Atoms(), CoordinateInfo(frag0frm.BoxCrd(), false, false, false)); - std::copy( tmpcrd0, tmpcrd0+natom0*3, frag0frm.xAddress() ); - std::copy( frag1frm.xAddress(), frag1frm.xAddress()+frag1frm.size(), frag0frm.xAddress()+natom0*3 ); - Frame& CombinedFrame = frag0frm; - delete[] tmpcrd0; - - int chiralityDebug; - if (debug_ < 1) - chiralityDebug = 0; + double dChi = chiX; + if (fabs(dChi) < Constants::SMALL) { +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("default chirality on\n"); +# endif + dChi = 1.0; + } +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("ORIENTATION: Chirality %f\n", dChi); +# endif + dOrientation = chiralityToOrientation(dChi, AX, iA.Idx(), iY.Idx(), iB.Idx(), -1); + } + return dOrientation; +} + +/** Initialize model torsion for bonded atoms. */ +int Cpptraj::Structure::Builder::TorsionModel::InitTorsion(int ax, int ay, + Frame const& frameIn, + Topology const& topIn, + std::vector<bool> const& hasPosition, + int aAtomIdx) +{ + if (hasPosition[ax]) + atX_ = MockAtom(ax, frameIn.XYZ(ax)); + else + atX_ = MockAtom(ax); + if (hasPosition[ay]) + atY_ = MockAtom(ay, frameIn.XYZ(ay)); else - chiralityDebug = debug_ - 1; - // Get the chirality around each atom before the bond is added. - BuildAtom AtomA; - if (combinedTop[atA].Nbonds() > 2) - AtomA.SetChirality( DetermineChirality(atA, combinedTop, CombinedFrame, chiralityDebug) ); + atY_ = MockAtom(ay); + Atom const& AX = topIn[ax]; + Atom const& AY = topIn[ay]; + // Create array of AX bonded atoms + axHasKnownAtoms_ = false; + sorted_ax_.clear(); + sorted_ax_.reserve( AX.Nbonds() - 1 ); + for (Atom::bond_iterator bat = AX.bondbegin(); bat != AX.bondend(); ++bat) { + if (*bat != ay) { + if (hasPosition[*bat]) { + axHasKnownAtoms_ = true; + sorted_ax_.push_back( MockAtom(*bat, frameIn.XYZ(*bat)) ); + } else + sorted_ax_.push_back( MockAtom(*bat) ); + sorted_ax_.back().SetBuildInternals( (aAtomIdx == -1 || aAtomIdx == *bat) ); + } + } + // Create array of AY bonded atoms + ayHasKnownAtoms_ = false; + sorted_ay_.clear(); + sorted_ay_.reserve( AY.Nbonds() - 1 ); + for (Atom::bond_iterator bat = AY.bondbegin(); bat != AY.bondend(); ++bat) { + if (*bat != ax) { + if (hasPosition[*bat]) { + ayHasKnownAtoms_ = true; + sorted_ay_.push_back( MockAtom(*bat, frameIn.XYZ(*bat)) ); + } else + sorted_ay_.push_back( MockAtom(*bat) ); + sorted_ay_.back().SetBuildInternals( (aAtomIdx == -1 || aAtomIdx == *bat) ); + } + } + return 0; +} + +/** Set up model torsion for bonded atoms. */ +int Cpptraj::Structure::Builder::TorsionModel::SetupTorsion(AtomType::HybridizationType Hx, + AtomType::HybridizationType Hy, + Topology const& topIn, + double chiX, double chiY) +// double orientX, double orientY) +{ + if (Hx != AtomType::UNKNOWN_HYBRIDIZATION && Hy != AtomType::UNKNOWN_HYBRIDIZATION) { + if (Hy > Hx) { + mprinterr("Internal Error: TorsionModel::SetupTorsion() called with AX hybrid > AY hybrid.\n"); + return 1; + } + } + // Sort AX bonds + unsigned int firstUnknownIdxX = 0; + sorted_ax_ = SortBondedAtomsLikeLeap(firstUnknownIdxX, topIn, sorted_ax_); + // Sort AY bonds + unsigned int firstUnknownIdxY = 0; + sorted_ay_ = SortBondedAtomsLikeLeap(firstUnknownIdxY, topIn, sorted_ay_); + // Calculate the chirality around atom X + Xorientation_ = 0; + if (Hx == AtomType::SP3) { + if (sorted_ax_.size() < 2) + Xorientation_ = 1.0; + else + Xorientation_ = calculateOrientation( atX_, chiX, topIn[atX_.Idx()], sorted_ax_[0], atY_, sorted_ax_[1] ); + } + // Calculate the chirality around atom Y + Yorientation_ = 0; + if (Hy == AtomType::SP3) { + if (sorted_ay_.size() < 2) + Yorientation_ = 1.0; + else + Yorientation_ = calculateOrientation( atY_, chiY, topIn[atY_.Idx()], sorted_ay_[0], atX_, sorted_ay_[1] ); + } +# ifdef CPPTRAJ_DEBUG_BUILDER + // DEBUG + Atom const& AX = topIn[atX_.Idx()]; + Atom const& AY = topIn[atY_.Idx()]; + //mprintf("Orientation around: %s = %f (chiX= %f)\n", *(AX.Name()), Xorientation_, chiX); + mprintf("Orientation around: %s = %f\n", *(AX.Name()), Xorientation_); + //mprintf("Orientation around: %s = %f {", *(AX.Name()), Xorientation_); + //for (Atom::bond_iterator bat = AX.bondbegin(); bat != AX.bondend(); ++bat) mprintf(" %s", *(topIn[*bat].Name())); + //mprintf("}\n"); + for (Marray::const_iterator it = sorted_ax_.begin(); it != sorted_ax_.end(); ++it) + mprintf("Atom %li: %s (%i) (build=%i)\n", it - sorted_ax_.begin(), *(topIn[it->Idx()].Name()), (int)it->Known(), (int)it->BuildInternals()); + //mprintf("Orientation around: %s = %f (chiY= %f)\n", *(AY.Name()), Yorientation_, chiY); + mprintf("Orientation around: %s = %f\n", *(AY.Name()), Yorientation_); + //mprintf("Orientation around: %s = %f {", *(AY.Name()), Yorientation_); + //for (Atom::bond_iterator bat = AY.bondbegin(); bat != AY.bondend(); ++bat) mprintf(" %s", *(topIn[*bat].Name())); + //mprintf("}\n"); + for (Marray::const_iterator it = sorted_ay_.begin(); it != sorted_ay_.end(); ++it) + mprintf("Atom %li: %s (%i) (build=%i)\n", it - sorted_ay_.begin(), *(topIn[it->Idx()].Name()), (int)it->Known(), (int)it->BuildInternals()); +# endif + // Calculate the actual torsion angle between A-X-Y-D + if (sorted_ax_[0].Known() && + atX_.Known() && + atY_.Known() && + sorted_ay_[0].Known()) + { + dAbsolute_ = Torsion( sorted_ax_[0].Pos().Dptr(), + atX_.Pos().Dptr(), + atY_.Pos().Dptr(), + sorted_ay_[0].Pos().Dptr() ); + } else { + dAbsolute_ = 180.0 * Constants::DEGRAD; + } +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("DABSOLUTE= %g\n", dAbsolute_); +# endif + return 0; +} + +/// Used to find mock atom +static inline std::vector<MockAtom>::iterator find_mock_atom(std::vector<MockAtom>& outerAtoms, int idx) +{ + std::vector<MockAtom>::iterator it = outerAtoms.begin(); + for (; it != outerAtoms.end(); ++it) + if (it->Idx() == idx) return it; + return outerAtoms.end(); +} + +/** Build mock external coordinates around the given torsion using + * the given internal coordinates. + * By definition, the two central atoms will be the same for each + * IC in iaTorsions. + */ +int Cpptraj::Structure::Builder::TorsionModel::BuildMockExternals(Iarray const& iaTorsions, + Tarray const& internalTorsionsIn, + Topology const& topIn) // DEBUG topIn for debug only +{ + if (iaTorsions.empty()) { + mprinterr("Internal Error: TorsionModel::BuildMockExternals() called with no internal torsions.\n"); + return 1; + } +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("======= Started mock coords from: %s\n", topIn.LeapName(internalTorsionsIn[iaTorsions.front()].AtI()).c_str()); + mprintf("======== %zu Torsions to build mock coords from:\n", iaTorsions.size()); + for (Iarray::const_iterator idx = iaTorsions.begin(); idx != iaTorsions.end(); ++idx) { + InternalTorsion const& ic = internalTorsionsIn[*idx]; + mprintf("------- Known torsion: %s - %s - %s - %s %f\n", + topIn.LeapName(ic.AtI()).c_str(), + topIn.LeapName(ic.AtJ()).c_str(), + topIn.LeapName(ic.AtK()).c_str(), + topIn.LeapName(ic.AtL()).c_str(), + ic.PhiVal()*Constants::RADDEG); + } +# endif + // Define coordinates for the central atoms. + //Vec3 posX(0, 0, 0); + //Vec3 posY(1, 0, 0); + atX_.SetPos( Vec3(0, 0, 0) ); + atY_.SetPos( Vec3(1, 0, 0) ); + Vec3 const& posX = atX_.Pos(); + Vec3 const& posY = atY_.Pos(); + + // Tell the outer atoms they do not have defined positions. + for (Marray::iterator it = sorted_ax_.begin(); it != sorted_ax_.end(); ++it) + it->SetUnknown(); + for (Marray::iterator it = sorted_ay_.begin(); it != sorted_ay_.end(); ++it) + it->SetUnknown(); + +// // Hold info on X-Y outer atoms + typedef std::vector<MockAtom> Marray; + Marray outerAtoms; + + // Define outer atoms + for (Iarray::const_iterator idx = iaTorsions.begin(); idx != iaTorsions.end(); ++idx) + { + InternalTorsion const& ic = internalTorsionsIn[*idx]; + if (idx == iaTorsions.begin()) { + // Define first outer atom as being in the XY plane + outerAtoms.push_back( MockAtom(ic.AtI(), Vec3(1, 1, 0)) ); + } else { + Marray::iterator mi = find_mock_atom( outerAtoms, ic.AtI() ); + if (mi == outerAtoms.end()) + outerAtoms.push_back( MockAtom(ic.AtI()) ); + } + Marray::iterator ml = find_mock_atom( outerAtoms, ic.AtL() ); + if (ml == outerAtoms.end()) + outerAtoms.push_back( MockAtom(ic.AtL()) ); + } +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("DEBUG: Outer atoms:\n"); + for (Marray::const_iterator it = outerAtoms.begin(); it != outerAtoms.end(); ++it) + mprintf("DEBUG:\t\t%i %4s (%i) {%f %f %f}\n", it->Idx()+1, topIn.AtomMaskName(it->Idx()).c_str(), + (int)it->Known(), it->Pos()[0], it->Pos()[1], it->Pos()[2]); +# endif + // Loop through the known torsions looking for those that + // have one position defined, then build coords for the + // other atom and mark the torsion as used. + std::vector<bool> used( iaTorsions.size(), false ); + unsigned int nused = 0; + for (unsigned int idx = 0; idx != iaTorsions.size(); idx++) { + //bool gotOne = false; + for (unsigned int jdx = 0; jdx != iaTorsions.size(); jdx++) { + if (!used[jdx]) { + InternalTorsion const& iInt = internalTorsionsIn[iaTorsions[jdx]]; + Marray::iterator tmpAt1 = find_mock_atom(outerAtoms, iInt.AtI()); + Marray::iterator tmpAt4 = find_mock_atom(outerAtoms, iInt.AtL()); + if (tmpAt1 == outerAtoms.end()) { + mprinterr("Internal Error: TorsionModel::BuildMockExternals(): Outer atom I %i not found.\n", iInt.AtI()+1); + return 1; + } + if (tmpAt4 == outerAtoms.end()) { + mprinterr("Internal Error: TorsionModel::BuildMockExternals(): Outer atom L %i not found.\n", iInt.AtL()+1); + return 1; + } + Vec3 maPC1, maPC2; + Marray::iterator tgt = outerAtoms.end(); + Marray::iterator knownAt = outerAtoms.end(); + if (tmpAt4->Known()) { + tgt = tmpAt1; + maPC1 = posX; + maPC2 = posY; + knownAt = tmpAt4; + } else if (tmpAt1->Known()) { + //gotOne = true; // FIXME needed? + tgt = tmpAt4; + maPC1 = posY; + maPC2 = posX; + knownAt = tmpAt1; + } + if (tgt != outerAtoms.end()) { + //gotOne = true; +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("======= Building mock coord for: %s\n", topIn.LeapName(tgt->Idx()).c_str()); + mprintf("======= Using torsion: %s - %s - %s - %s (p1known= %i, p4known= %i)\n", + topIn.LeapName(iInt.AtI()).c_str(), + topIn.LeapName(iInt.AtJ()).c_str(), + topIn.LeapName(iInt.AtK()).c_str(), + topIn.LeapName(iInt.AtL()).c_str(), + (int)tmpAt1->Known(), (int)tmpAt4->Known()); +# endif + // Now build the coordinate for the target atom + tgt->SetPos( Zmatrix::AtomIposition(maPC1, maPC2, knownAt->Pos(), 1.0, 90.0, iInt.PhiVal()*Constants::RADDEG) ); +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("ZMatrixAll: %f,%f,%f\n", tgt->Pos()[0], tgt->Pos()[1], tgt->Pos()[2]); +# endif + used[jdx] = true; + nused++; + break; + } + } // END IC not yet used + } // END inner loop over ICs + } // END outer loop over ICs + if (nused < used.size()) { + mprinterr("Error: There are %u torsions left over for mock coords.\n", used.size() - nused); + return 1; + } +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("DEBUG: Final outer atoms:\n"); + for (Marray::const_iterator it = outerAtoms.begin(); it != outerAtoms.end(); ++it) { + mprintf("DEBUG:\t\t%i %4s (%i) {%f %f %f}\n", it->Idx()+1, topIn.AtomMaskName(it->Idx()).c_str(), + (int)it->Known(), it->Pos()[0], it->Pos()[1], it->Pos()[2]); + } +# endif + // Update the outer atom positions for this torsion + for (Marray::const_iterator it = outerAtoms.begin(); it != outerAtoms.end(); ++it) { + Marray::iterator itx = find_mock_atom(sorted_ax_, it->Idx()); + if (itx != sorted_ax_.end()) { + itx->SetPos( it->Pos() ); + } else { + itx = find_mock_atom(sorted_ay_, it->Idx()); + if (itx != sorted_ay_.end()) { + itx->SetPos( it->Pos() ); + } else { + mprinterr("Internal Error: TorsionModel::BuildMockExternals(): Could not update mock atom.\n"); + return 1; + } + } + } + + return 0; +} + +// ----------------------------------------------------------------------------- +/** Determine the chirality around a single atom. Assume all positions are known. */ +double Builder::DetermineChiralityAroundAtom(int at, Frame const& frameIn, Topology const& topIn) +{ + double dChi = 0; + determineChirality(dChi, at, frameIn, topIn, std::vector<bool>(topIn.Natom(), true)); + return dChi; +} + +/** Update all indices in internals according to the given offset. */ +void Builder::UpdateIndicesWithOffset(int atomOffset) { + for (Tarray::iterator it = internalTorsions_.begin(); it != internalTorsions_.end(); ++it) + it->OffsetIndices( atomOffset ); + for (Aarray::iterator it = internalAngles_.begin(); it != internalAngles_.end(); ++it) + it->OffsetIndices( atomOffset ); + for (Larray::iterator it = internalBonds_.begin(); it != internalBonds_.end(); ++it) + it->OffsetIndices( atomOffset ); + for (Carray::iterator it = internalChirality_.begin(); it != internalChirality_.end(); ++it) + it->OffsetIndices( atomOffset ); +} + +/** Find any existing torsions around ax-ay. */ +Builder::Iarray Builder::getExistingTorsionIdxs(int ax, int ay) const { + Iarray iTorsions; + for (Tarray::const_iterator it = internalTorsions_.begin(); it != internalTorsions_.end(); ++it) + { + if ((it->AtJ() == ax && it->AtK() == ay) || + (it->AtJ() == ay && it->AtK() == ax)) + { + iTorsions.push_back( it - internalTorsions_.begin() ); + } + } + return iTorsions; +} + +/** \return index of existing torsion matching the 4 given atoms, -1 for no match. */ +int Builder::getExistingTorsionIdx(int ai, int aj, int ak, int al) const { + //mprintf("SEARCHING FOR %i %i %i %i\n", ai, aj, ak, al); + int idx = -1; + for (Tarray::const_iterator it = internalTorsions_.begin(); it != internalTorsions_.end(); ++it) + { + //mprintf("\t\t%i %i %i %i\n", it->AtI(), it->AtJ(), it->AtK(), it->AtL()); + if ( (it->AtI() == ai && it->AtJ() == aj && it->AtK() == ak && it->AtL() == al) || + (it->AtI() == al && it->AtJ() == ak && it->AtK() == aj && it->AtL() == ai) ) + { + idx = (int)(it - internalTorsions_.begin()); + //mprintf("FOUND at index %i\n", idx); + break; + } + } + return idx; +} + +/** \return Index of existing angle matching the 3 given atoms, -1 for no match. */ +int Builder::getExistingAngleIdx(int ai, int aj, int ak) const { + int idx = -1; + for (Aarray::const_iterator it = internalAngles_.begin(); it != internalAngles_.end(); ++it) + { + if ((it->AtI() == ai && it->AtJ() == aj && it->AtK() == ak) || + (it->AtI() == ak && it->AtJ() == aj && it->AtK() == ai)) + { + idx = (int)(it - internalAngles_.begin()); + break; + } + } + return idx; +} + +/** \return Index of existing bond matching the 2 given atoms, -1 for no match. */ +int Builder::getExistingBondIdx(int ai, int aj) const { + int idx = -1; + for (Larray::const_iterator it = internalBonds_.begin(); it != internalBonds_.end(); ++it) + { + if ((it->AtI() == ai && it->AtJ() == aj) || + (it->AtI() == aj && it->AtJ() == ai)) + { + idx = (int)(it - internalBonds_.begin()); + break; + } + } + return idx; +} + +/** \return Index of existing chirality value matching given atom, 1 for no match. */ +int Builder::getExistingChiralityIdx(int ai) const { + int idx = -1; + for (Carray::const_iterator it = internalChirality_.begin(); it != internalChirality_.end(); ++it) + { + if (it->AtI() == ai) { + idx = (int)(it - internalChirality_.begin()); + break; + } + } + return idx; +} + +/** Determine hybridization in the same manner as leap */ +AtomType::HybridizationType Builder::getAtomHybridization(Atom const& aAtom, std::vector<Atom> const& atoms) const { + AtomType::HybridizationType H1 = AtomType::UNKNOWN_HYBRIDIZATION; + // Check if hybridization is defined in the parameter set. + if (params_ != 0) { + ParmHolder<AtomType>::const_iterator it; + if (aAtom.HasType()) { + it = params_->AT().GetParam( TypeNameHolder(aAtom.Type()) ); + if (it != params_->AT().end()) + H1 = it->second.Hybridization(); + } + } + // Use the cpptraj guess. + if (H1 == AtomType::UNKNOWN_HYBRIDIZATION) { + H1 = GuessAtomHybridization(aAtom, atoms); + // FIXME this is a bit of a hack. If we get an SP type here its likely we + // are generating internals for a fragment that has not been bonded + // yet. Do SP2 instead. + if (H1 == AtomType::SP) + H1 = AtomType::SP2; + } + // If still unknown, guess in the same way leap does. + if (H1 == AtomType::UNKNOWN_HYBRIDIZATION) { + // TODO bond orders? + int iSingle = 0; + int iDouble = 0; + int iTriple = 0; + int iAromatic = 0; + for (int i = 0; i < aAtom.Nbonds(); i++) + iSingle++; + //printf("iAtomHybridization: %s isingle=%i\n", iSingle); + if ( iAromatic != 0 ) H1 = AtomType::SP2; + // one or more triple bonds makes the atom SP1 + else if ( iTriple != 0 ) H1 = AtomType::SP; + // Two or more double bonds makes the atom linear, SP1 + else if ( iDouble >= 2 ) H1 = AtomType::SP; + // One double bond makes the atom SP2 + else if ( iDouble != 0 ) H1 = AtomType::SP2; + // Otherwise the atom is SP3 + else H1 = AtomType::SP3; + } + + return H1; +} + +/** Model bond */ +double Builder::ModelBondLength(int ai, int aj, Topology const& topIn) const { + // First look up parameter + double dist = 0; + if (getLengthParam(dist, ai, aj, topIn)) { + return dist; + } + Atom const& AI = topIn[ai]; + Atom const& AJ = topIn[aj]; + AtomType::HybridizationType hybridI = getAtomHybridization( AI, topIn.Atoms() ); + AtomType::HybridizationType hybridJ = getAtomHybridization( AJ, topIn.Atoms() ); + + if (hybridI == AtomType::UNKNOWN_HYBRIDIZATION || + hybridJ == AtomType::UNKNOWN_HYBRIDIZATION) + { + // Default to bond length based on elements + dist = Atom::GetBondLength( AI.Element(), AJ.Element() ); + } else { + // Use leap method based on atom hybridization + AtomType::HybridizationType hybrid1, hybrid2; + if (hybridI < hybridJ) { + hybrid1 = hybridI; + hybrid2 = hybridJ; + } else { + hybrid1 = hybridJ; + hybrid2 = hybridI; + } + if (hybrid1 == AtomType::SP3 && hybrid2 == AtomType::SP3) + dist = 1.5; + else if (hybrid1 == AtomType::SP2 && hybrid2 == AtomType::SP3) + dist = 1.4; + else if (hybrid1 == AtomType::SP && hybrid2 == AtomType::SP3) + dist = 1.3; + else if (hybrid1 == AtomType::SP2 && hybrid2 == AtomType::SP2) + dist = 1.35; + else if (hybrid1 == AtomType::SP && hybrid2 == AtomType::SP2) + dist = 1.3; + else if (hybrid1 == AtomType::SP && hybrid2 == AtomType::SP) + dist = 1.1; + else + dist = Atom::GetBondLength( AI.Element(), AJ.Element() ); + } + return dist; +} + +/** Model angle */ +double Builder::ModelBondAngle(int ai, int aj, int ak, Topology const& topIn) const { + // First look up parameter + double theta = 0; +# ifdef TIMER + timeg_MBA_getAngleParam_.Start(); +# endif + if (getAngleParam(theta, ai, aj, ak, topIn)) { +# ifdef TIMER + timeg_MBA_getAngleParam_.Stop(); +# endif + return theta; + } +# ifdef TIMER + timeg_MBA_getAngleParam_.Stop(); +# endif + Atom const& AJ = topIn[aj]; + // Figure out hybridization and chirality of atom j. + if (debug_ > 0) { + mprintf("DEBUG:\t\tI %s Nbonds: %i\n", topIn[ai].ElementName(), topIn[ai].Nbonds()); + mprintf("DEBUG:\t\tJ %s Nbonds: %i\n", AJ.ElementName(), AJ.Nbonds()); + mprintf("DEBUG:\t\tK %s Nbonds: %i\n", topIn[ak].ElementName(), topIn[ak].Nbonds()); + } +# ifdef TIMER + timeg_MBA_getAtomHybrid_.Start(); +# endif + AtomType::HybridizationType hybrid = getAtomHybridization( AJ, topIn.Atoms() ); +# ifdef TIMER + timeg_MBA_getAtomHybrid_.Stop(); +# endif + // Guess hybrid if needed + //if (hybrid == AtomType::UNKNOWN_HYBRIDIZATION) + // hybrid = GuessAtomHybridization(AJ, topIn.Atoms()); + // Set from number of bonds if still unknown. This is a pretty crude guess. + if (hybrid == AtomType::UNKNOWN_HYBRIDIZATION) { + switch (AJ.Nbonds()) { + case 4 : hybrid = AtomType::SP3; break; + case 3 : hybrid = AtomType::SP2; break; + case 2 : hybrid = AtomType::SP; break; + default : mprinterr("Internal Error: AssignTheta(): Unhandled # bonds for %s (%i)\n", topIn.AtomMaskName(aj).c_str(), AJ.Nbonds()); return 1; + } + } + + // Assign a theta based on hybridization + switch (hybrid) { + case AtomType::SP3 : theta = 109.5 * Constants::DEGRAD; break; + case AtomType::SP2 : theta = 120.0 * Constants::DEGRAD; break; + case AtomType::SP : theta = 180.0 * Constants::DEGRAD; break; + default : mprinterr("Internal Error: AssignTheta(): Unhandled hybridization for %s (%i)\n", topIn.AtomMaskName(aj).c_str(), AJ.Nbonds()); return 1; + } + return theta; +} + +/** Model torsion */ +void Builder::ModelTorsion(TorsionModel const& MT, unsigned int iBondX, unsigned int iBondY, double dvalIn) +{ + if (iBondX >= MT.SortedAx().size() || + iBondY >= MT.SortedAy().size()) + return; +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("CALLING ModelTorsion for iBondX=%u iBondY=%u dVal=%g\n",iBondX,iBondY,dvalIn*Constants::RADDEG); +# endif + MockAtom const& AA = MT.SortedAx()[iBondX]; + MockAtom const& AX = MT.AtX(); + MockAtom const& AY = MT.AtY(); + MockAtom const& AD = MT.SortedAy()[iBondY]; + if ( !(AA.BuildInternals() || AD.BuildInternals()) ) { +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("%s does not need internals.\n", *((*currentTop_)[AA.Idx()].Name())); +# endif + return; + } + int aa = AA.Idx(); + int ax = AX.Idx(); + int ay = AY.Idx(); + int ad = AD.Idx(); + // If the coordinates for the atoms are defined then + // measure the torsion angle between them and use that for + // the internal. + double phiVal = dvalIn; + if (AA.Known() && + AX.Known() && + AY.Known() && + AD.Known()) + { + phiVal = Torsion( AA.Pos().Dptr(), + AX.Pos().Dptr(), + AY.Pos().Dptr(), + AD.Pos().Dptr() ); +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf(" %s replacing dval with %f\n", *((*currentTop_)[aa].Name()), phiVal*Constants::RADDEG); +# endif + } + // Look for an existing internal + int icIdx = getExistingTorsionIdx( aa, ax, ay, ad ); + if (icIdx < 0) { + if (debug_ > 1) + mprintf("++++Torsion INTERNAL: %f to %s - %s - %s - %s\n", phiVal*Constants::RADDEG, + currentTop_->LeapName(aa).c_str(), + currentTop_->LeapName(ax).c_str(), + currentTop_->LeapName(ay).c_str(), + currentTop_->LeapName(ad).c_str()); + internalTorsions_.push_back( InternalTorsion(aa, ax, ay, ad, phiVal) ); + } else { + if (debug_ > 1) + mprintf( "Torsional INTERNAL already exists: %f\n", internalTorsions_[icIdx].PhiVal()*Constants::RADDEG ); + } +} + +/** Create torsions around SP3-SP3. */ +void Builder::createSp3Sp3Torsions(TorsionModel const& MT) { + // First twist the torsion so that the AD torsion has + // the same absolute angle that is measured + // and twist all the others with it. + static const double PIOVER3 = Constants::PI / 3.0; + double dADOffset = MT.Absolute() - Constants::PI ; + double d180 = Constants::PI + dADOffset ; + double dm60 = -PIOVER3 + dADOffset ; + double d60 = PIOVER3 + dADOffset ; + + if ( MT.XOrientation() > 0.0 ) { + if ( MT.YOrientation() > 0.0 ) { + ModelTorsion( MT, 0, 0, d180); + ModelTorsion( MT, 0, 1, dm60); + ModelTorsion( MT, 0, 2, d60); + ModelTorsion( MT, 1, 0, dm60); + ModelTorsion( MT, 1, 1, d60); + ModelTorsion( MT, 1, 2, d180); + ModelTorsion( MT, 2, 0, d60); + ModelTorsion( MT, 2, 1, d180); + ModelTorsion( MT, 2, 2, dm60); + } else { + ModelTorsion( MT, 0, 0, d180); + ModelTorsion( MT, 0, 1, d60); + ModelTorsion( MT, 0, 2, dm60); + ModelTorsion( MT, 1, 0, dm60); + ModelTorsion( MT, 1, 1, d180); + ModelTorsion( MT, 1, 2, d60); + ModelTorsion( MT, 2, 0, d60); + ModelTorsion( MT, 2, 1, dm60); + ModelTorsion( MT, 2, 2, d180); + } + } else { + if ( MT.YOrientation() > 0.0 ) { + ModelTorsion( MT, 0, 0, d180); + ModelTorsion( MT, 0, 1, dm60); + ModelTorsion( MT, 0, 2, d60); + ModelTorsion( MT, 1, 0, d60); + ModelTorsion( MT, 1, 1, d180); + ModelTorsion( MT, 1, 2, dm60); + ModelTorsion( MT, 2, 0, dm60); + ModelTorsion( MT, 2, 1, d60); + ModelTorsion( MT, 2, 2, d180); + } else { + ModelTorsion( MT, 0, 0, d180); + ModelTorsion( MT, 0, 1, d60); + ModelTorsion( MT, 0, 2, dm60); + ModelTorsion( MT, 1, 0, d60); + ModelTorsion( MT, 1, 1, dm60); + ModelTorsion( MT, 1, 2, d180); + ModelTorsion( MT, 2, 0, dm60); + ModelTorsion( MT, 2, 1, d180); + ModelTorsion( MT, 2, 2, d60); + } + } + + return; +} + +/** Create torsions around SP3-SP2. */ +void Builder::createSp3Sp2Torsions(TorsionModel const& MT) { + // First twist the torsion so that the AD torsion has + // the same absolute angle that is measured + // and twist all the others with it. + static const double PIOVER3 = Constants::PI / 3.0; + static const double PIOVER3x2 = PIOVER3 * 2.0; + double dADOffset = MT.Absolute() - Constants::PI ; + double d180 = Constants::PI + dADOffset ; + double dm60 = -PIOVER3 + dADOffset ; + double d60 = PIOVER3 + dADOffset ; + double dm120 = -PIOVER3x2 + dADOffset ; + double d120 = PIOVER3x2 + dADOffset ; + double d0 = dADOffset ; + + if ( MT.XOrientation() > 0.0 ) { + ModelTorsion( MT, 0, 0, d180); + ModelTorsion( MT, 0, 1, d0); + ModelTorsion( MT, 1, 0, dm60); + ModelTorsion( MT, 1, 1, d120); + ModelTorsion( MT, 2, 0, d60); + ModelTorsion( MT, 2, 1, dm120); + } else { + ModelTorsion( MT, 0, 0, d180); + ModelTorsion( MT, 0, 1, d0); + ModelTorsion( MT, 1, 0, d60); + ModelTorsion( MT, 1, 1, dm120); + ModelTorsion( MT, 2, 0, dm60); + ModelTorsion( MT, 2, 1, d120); + } + + return; +} + +void Builder::createSp2Sp2Torsions(TorsionModel const& MT) { + // First twist the torsion so that the AD torsion has + // the same absolute angle that is measured + // and twist all the others with it. + double dADOffset = MT.Absolute() - Constants::PI ; + double d180 = Constants::PI + dADOffset ; + double d0 = dADOffset ; + //mprintf("In ModelCreateSp2Sp2Torsions, dAbsolute= %g, dADOffset= %g, d180= %g, d0= %g\n", + // MT.Absolute()*Constants::RADDEG, + // dADOffset * Constants::RADDEG, + // d180 * Constants::RADDEG, + // d0 * Constants::RADDEG); + + ModelTorsion( MT, 0, 0, d180 ); + ModelTorsion( MT, 0, 1, d0 ); + ModelTorsion( MT, 1, 0, d0 ); + ModelTorsion( MT, 1, 1, d180 ); + return; +} + +/** Assign torsions around bonded atoms in manner similar to LEaP's ModelAssignTorsionsAround. */ +int Builder::assignTorsionsAroundBond(int a1, int a2, Frame const& frameIn, Topology const& topIn, Barray const& hasPosition, int aAtomIdx) +{ + // Save address of current topology. + // These are required for the ModelTorsion routine. TODO zero at the end? + currentTop_ = &topIn; + // No need to do this if either atom only has 1 bond. + if (topIn[a1].Nbonds() < 2 || topIn[a2].Nbonds() < 2) + return 0; + // Get atom hybridizations + AtomType::HybridizationType H1 = getAtomHybridization( topIn[a1], topIn.Atoms() ); + AtomType::HybridizationType H2 = getAtomHybridization( topIn[a2], topIn.Atoms() );//AtomType::UNKNOWN_HYBRIDIZATION; + if (H1 == AtomType::UNKNOWN_HYBRIDIZATION) + mprintf("Warning: No hybridization set for atom %s\n", topIn.AtomMaskName(a1).c_str()); + if (H2 == AtomType::UNKNOWN_HYBRIDIZATION) + mprintf("Warning: No hybridization set for atom %s\n", topIn.AtomMaskName(a2).c_str()); + // Ensure the hybridization of ax is > ay + int ax, ay; + AtomType::HybridizationType Hx, Hy; // DEBUG + if (H1 == AtomType::UNKNOWN_HYBRIDIZATION || H2 == AtomType::UNKNOWN_HYBRIDIZATION) { + // Do not try to sort. + ax = a1; + ay = a2; + Hx = H1; + Hy = H2; + } else if (H1 < H2) { + ax = a2; + ay = a1; + Hx = H2; + Hy = H1; + } else { + ax = a1; + ay = a2; + Hx = H1; + Hy = H2; + } + static const char* hstr[] = { "SP1", "SP2", "SP3", "Unknown" }; + if (debug_ > 0) { + mprintf("DEBUG: assignTorsionsAroundBond: AX= %s (%s) AY= %s (%s), aAtomIdx= %i", + *(topIn[ax].Name()), hstr[Hx], + *(topIn[ay].Name()), hstr[Hy], aAtomIdx+1); + if (aAtomIdx != -1) mprintf(" %s", topIn.AtomMaskName(aAtomIdx).c_str()); // DEBUG + mprintf("\n"); // DEBUG + } + TorsionModel mT; + if (mT.InitTorsion( ax, ay, frameIn, topIn, hasPosition, aAtomIdx )) { + mprinterr("Error: Could not init model torsion.\n"); + return 1; + } + // Check if there is at least one atom on either side of the ax-ay pair + // whose position is known. + //Atom const& AX = topIn[ax]; + //Atom const& AY = topIn[ay]; +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("bKnownX=%i bKnownY=%i\n", (int)mT.AxHasKnownAtoms(), (int)mT.AyHasKnownAtoms()); +# endif + if (!(mT.AxHasKnownAtoms() && mT.AyHasKnownAtoms())) { + // Find any existing internal coords around ax-ay + Iarray iTorsions = getExistingTorsionIdxs(ax, ay); + if (!iTorsions.empty()) { +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("Using INTERNALs to fit new torsions around: %s - %s\n", + topIn.LeapName(ax).c_str(), topIn.LeapName(ay).c_str()); +# endif + if (mT.BuildMockExternals(iTorsions, internalTorsions_, topIn)) { + mprinterr("Error: Building mock externals around %s - %s failed.\n", + topIn.AtomMaskName(ax).c_str(), topIn.AtomMaskName(ay).c_str()); + return 1; + } + } +# ifdef CPPTRAJ_DEBUG_BUILDER + else { + mprintf("Completely free in assigning new torsions for: %s - %s\n", + topIn.LeapName(ax).c_str(), topIn.LeapName(ay).c_str()); + } +# endif + } +# ifdef CPPTRAJ_DEBUG_BUILDER + else { + // Use existing atoms to determine torsions + mprintf("Using externals to fit new torsions around: %s - %s\n", + topIn.LeapName(ax).c_str(), + topIn.LeapName(ay).c_str()); + } +# endif + // Get chiralities around X and Y if they exist + double chiX = 0; + int Xcidx = getExistingChiralityIdx( ax ); + if (Xcidx != -1) chiX = internalChirality_[Xcidx].ChiralVal(); + double chiY = 0; + int Ycidx = getExistingChiralityIdx( ay ); + if (Ycidx != -1) chiY = internalChirality_[Ycidx].ChiralVal(); + // Set up the torsion model + if (mT.SetupTorsion(Hx, Hy, topIn, chiX, chiY)) + { + mprinterr("Error: Could not set up torsions around %s - %s\n", + topIn.LeapName(ax).c_str(), + topIn.LeapName(ay).c_str()); + return 1; + } + + // Build the new internals + if (Hx == AtomType::SP3 && Hy == AtomType::SP3) { +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("SP3 SP3\n"); +# endif + createSp3Sp3Torsions(mT); + } else if (Hx == AtomType::SP3 && Hy == AtomType::SP2) { +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("SP3 SP2\n"); +# endif + createSp3Sp2Torsions(mT); + } else if (Hx == AtomType::SP2 && Hy == AtomType::SP2) { +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("SP2 SP2\n"); +# endif + createSp2Sp2Torsions(mT); + } else { + mprinterr("Error: Currently only Sp3-Sp3/Sp3-Sp2/Sp2-Sp2 are supported\n" + "Error: ---Tried to superimpose torsions for: *-%s-%s-*\n" + "Error: --- With %s - %s\n" + "Error: --- Sp0 probably means a new atom type is involved\n" + "Error: --- which needs to be defined prior to this routine.\n", + topIn.AtomMaskName(ax).c_str(), topIn.AtomMaskName(ay).c_str(), + hstr[Hx], hstr[Hy]); + return 1; + } + + return 0; +} + +/** Build angle internal. */ +void Builder::buildAngleInternal(int a1, int a2, int a3, Frame const& frameIn, Topology const& topIn, + Barray const& hasPosition) +{ + double dValue = 0; + if (hasPosition[a1] && + hasPosition[a2] && + hasPosition[a3]) + { + dValue = CalcAngle( frameIn.XYZ(a1), frameIn.XYZ(a2), frameIn.XYZ(a3) ); + } else { + dValue = ModelBondAngle( a1, a2, a3, topIn ); + } + internalAngles_.push_back( InternalAngle(a1, a2, a3, dValue) ); + if (debug_ > 1) + mprintf("++++Angle INTERNAL: %f for %s - %s - %s\n", dValue*Constants::RADDEG, + topIn.LeapName(a1).c_str(), + topIn.LeapName(a2).c_str(), + topIn.LeapName(a3).c_str()); +} + +/** Build bond internal. */ +void Builder::buildBondInternal(int a1, int a2, Frame const& frameIn, Topology const& topIn, + Barray const& hasPosition) +{ + double dValue = 0; + if (hasPosition[a1] && + hasPosition[a2]) + { + dValue = sqrt(DIST2_NoImage( frameIn.XYZ(a1), frameIn.XYZ(a2) ) ); + } else { + dValue = ModelBondLength( a1, a2, topIn ); + } + internalBonds_.push_back( InternalBond(a1, a2, dValue) ); + if (debug_ > 1) + mprintf("++++Bond INTERNAL: %f for %s - %s\n", dValue, + topIn.LeapName(a1).c_str(), + topIn.LeapName(a2).c_str()); +} + + +/** Determine chirality around a single atom. + * \return 1 if chirality was determined, 0 if left undefined. + */ +int Builder::determineChirality(double& dChi, int at, Frame const& frameIn, Topology const& topIn, Barray const& hasPosition) +{ + using namespace Cpptraj::Structure::Chirality; + dChi = 0.0; + if (!hasPosition[at]) { + return 0; + } + // Only check atoms with 3 or 4 bonds + Atom const& A0 = topIn[at]; +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("CHIRALITY CALCULATION FOR %s (nbonds= %i)\n", *(A0.Name()), A0.Nbonds()); + for (Atom::bond_iterator bat = A0.bondbegin(); bat != A0.bondend(); ++bat) + mprintf("\tneighbor %s (id= %i) [%i]\n", *(topIn[*bat].Name()), *bat, (int)hasPosition[*bat]); +# endif + if ( A0.Nbonds() == 3 || + A0.Nbonds() == 4 ) + { + int aAtomA = -1; + int aAtomB = -1; + int aAtomC = -1; + int aAtomD = -1; + chiralityOrderNeighbors(A0, aAtomA, aAtomB, aAtomC, aAtomD); + + bool knowA = (aAtomA != -1 && hasPosition[aAtomA]); + bool knowB = (aAtomB != -1 && hasPosition[aAtomB]); + bool knowC = (aAtomC != -1 && hasPosition[aAtomC]); + bool knowD = (aAtomD != -1 && hasPosition[aAtomD]); +# ifdef CPPTRAJ_DEBUG_BUILDER + if (knowA) mprintf("Chirality order A %s %i\n", *(topIn[aAtomA].Name()), aAtomA); + if (knowB) mprintf("Chirality order B %s %i\n", *(topIn[aAtomB].Name()), aAtomB); + if (knowC) mprintf("Chirality order C %s %i\n", *(topIn[aAtomC].Name()), aAtomC); + if (knowD) mprintf("Chirality order D %s %i\n", *(topIn[aAtomD].Name()), aAtomD); +# endif + Vec3 vPA, vPB, vPC, vPD; + if (knowA) vPA = Vec3(frameIn.XYZ(aAtomA)); + if (knowB) vPB = Vec3(frameIn.XYZ(aAtomB)); + if (knowC) vPC = Vec3(frameIn.XYZ(aAtomC)); + if (knowD) vPD = Vec3(frameIn.XYZ(aAtomD)); + + dChi = VectorAtomNormalizedChirality( Vec3(frameIn.XYZ(at)), + vPA, knowA, + vPB, knowB, + vPC, knowC, + vPD, knowD ); + return 1; + } +/* + BuildAtom bldAt; + if (topIn[at].Nbonds() > 2 && hasPosition[at]) { + // All bonded atoms must have position + bool bonded_atoms_have_position = true; + for (Atom::bond_iterator bat = topIn[at].bondbegin(); bat != topIn[at].bondend(); ++bat) + { + if (!hasPosition[*bat]) { + bonded_atoms_have_position = false; + break; + } + } + if (bonded_atoms_have_position) { + if (bldAt.DetermineChirality(at, topIn, frameIn, 0)) {// FIXME debug level + mprinterr("Error: Problem determining chirality of atom %s\n", + topIn.AtomMaskName(at).c_str()); + return 1; + } + } + mprintf("Got chirality from external coordinates\n" ); + mprintf("++++Chirality INTERNAL: %f for %s\n", bldAt.TorsionVal()*Constants::RADDEG, + topIn.LeapName(at).c_str()); + } else { + mprintf("Left chirality undefined for %s\n",topIn.LeapName(at).c_str() ); + }*/ + return 0; +} + +/** Generate internal coordinates in the same manner as LEaP's + * BuildInternalsForContainer. + */ +int Builder::GenerateInternals(Frame const& frameIn, Topology const& topIn, Barray const& hasPosition) +{ if (debug_ > 0) - mprintf("DEBUG:\tAtom %4s chirality %6s\n", combinedTop.AtomMaskName(atA).c_str(), chiralStr(AtomA.Chirality())); - BuildAtom AtomB; - if (combinedTop[atB].Nbonds() > 2) - AtomB.SetChirality( DetermineChirality(atB, combinedTop, CombinedFrame, chiralityDebug) ); + mprintf("DEBUG: ----- Entering Builder::GenerateInternals. -----\n"); + // First generate the bond array for use in determining torsions. + BondArray bonds = GenerateBondArray( topIn.Residues(), topIn.Atoms() ); + // Loop over bonds to determine torsions. + for (BondArray::const_iterator bnd = bonds.begin(); bnd != bonds.end(); ++bnd) + { + if (debug_ > 0) { + if (topIn[bnd->A1()].Nbonds() > 1 && topIn[bnd->A2()].Nbonds() > 1) + mprintf("Building torsion INTERNALs around: %s - %s\n", + topIn.LeapName(bnd->A1()).c_str(), topIn.LeapName(bnd->A2()).c_str()); // DEBUG + } + if (assignTorsionsAroundBond( bnd->A1(), bnd->A2(), frameIn, topIn, hasPosition, -1 )) { + mprinterr("Error Assign torsions around bond %s - %s failed.\n", + topIn.AtomMaskName(bnd->A1()).c_str(), + topIn.AtomMaskName(bnd->A2()).c_str()); + return 1; + } + } + // Loop over angles. + AngleArray angles = GenerateAngleArray( topIn.Residues(), topIn.Atoms() ); + for (AngleArray::const_iterator ang = angles.begin(); ang != angles.end(); ++ang) + { + buildAngleInternal(ang->A1(), ang->A2(), ang->A3(), frameIn, topIn, hasPosition); + } + // Loop over bonds + for (BondArray::const_iterator bnd = bonds.begin(); bnd != bonds.end(); ++bnd) + { + buildBondInternal(bnd->A1(), bnd->A2(), frameIn, topIn, hasPosition); + } + // Chirality + Iarray atomIdxs = GenerateAtomArray(topIn.Residues(), topIn.Atoms()); + for (Iarray::const_iterator it = atomIdxs.begin(); it != atomIdxs.end(); ++it) { + double dValue = 0; + if (determineChirality(dValue, *it, frameIn, topIn, hasPosition)) { + if (debug_ > 1) { + mprintf("Got chirality from external coordinates\n" ); + mprintf("++++Chirality INTERNAL: %f for %s\n", dValue, + topIn.LeapName(*it).c_str()); + } + } else { + if (debug_ > 1) + mprintf("Left chirality undefined for %s\n",topIn.LeapName(*it).c_str() ); + } + internalChirality_.push_back( InternalChirality(*it, dValue) ); + } if (debug_ > 0) - mprintf("DEBUG:\tAtom %4s chirality %6s\n", combinedTop.AtomMaskName(atB).c_str(), chiralStr(AtomB.Chirality())); + mprintf("DEBUG: ----- Leaving Builder::GenerateInternals. ------\n"); + return 0; +} + +/** Build internal coordinates around an atom. */ +int Builder::generateAtomInternals(int at, Frame const& frameIn, Topology const& topIn, Barray const& hasPosition) +{ + if (debug_ > 0) + mprintf( "Building internals for: %s\n", topIn.LeapName(at).c_str()); + // Torsions +# ifdef TIMER + timeg_builder_torsions_.Start(); +# endif + Atom const& AtA = topIn[at]; + for (Atom::bond_iterator bat = AtA.bondbegin(); bat != AtA.bondend(); ++bat) { + Atom const& AtB = topIn[*bat]; + for (Atom::bond_iterator cat = AtB.bondbegin(); cat != AtB.bondend(); ++cat) { + if (*cat != at) { + Atom const& AtC = topIn[*cat]; + if (debug_ > 1) + mprintf("Building torsion INTERNALs for: %s around: %s - %s\n", + topIn.LeapName(at).c_str(), + topIn.LeapName(*bat).c_str(), + topIn.LeapName(*cat).c_str()); + Iarray iTorsions = getExistingTorsionIdxs(*bat, *cat); + int iShouldBe = (AtB.Nbonds() - 1) * (AtC.Nbonds() - 1); +# ifdef CPPTRAJ_DEBUG_BUILDER + mprintf("ISHOULDBE= %i ITORSIONS= %zu\n", iShouldBe, iTorsions.size()); +# endif + if (iShouldBe != (int)iTorsions.size()) { + assignTorsionsAroundBond(*bat, *cat, frameIn, topIn, hasPosition, at); + } + } + } + } +# ifdef TIMER + timeg_builder_torsions_.Stop(); +# endif + // Angles +# ifdef TIMER + timeg_builder_angles_.Start(); +# endif + for (Atom::bond_iterator bat = AtA.bondbegin(); bat != AtA.bondend(); ++bat) { + Atom const& AtB = topIn[*bat]; + for (Atom::bond_iterator cat = AtB.bondbegin(); cat != AtB.bondend(); ++cat) { + if (*cat != at) { + if (debug_ > 1) + mprintf("Building angle INTERNAL for: %s - %s - %s\n", + topIn.LeapName(at).c_str(), + topIn.LeapName(*bat).c_str(), + topIn.LeapName(*cat).c_str()); +# ifdef TIMER + timeg_ang_search_.Start(); +# endif + int aidx = getExistingAngleIdx(at, *bat, *cat); +# ifdef TIMER + timeg_ang_search_.Stop(); +# endif + if (aidx < 0) { + double dValue = 0; + if (hasPosition[at] && + hasPosition[*bat] && + hasPosition[*cat]) + { + if (debug_ > 1) mprintf("Got bond angle from externals\n"); + dValue = CalcAngle(frameIn.XYZ(at), frameIn.XYZ(*bat), frameIn.XYZ(*cat)); + } else { + if (debug_ > 1) mprintf("Got bond angle from model builder\n"); +# ifdef TIMER + timeg_ang_model_.Start(); +# endif + dValue = ModelBondAngle(at, *bat, *cat, topIn); +# ifdef TIMER + timeg_ang_model_.Stop(); +# endif + } + if (debug_ > 1) + mprintf("++++Angle INTERNAL: %f for %s - %s - %s\n", dValue*Constants::RADDEG, + topIn.LeapName(at).c_str(), + topIn.LeapName(*bat).c_str(), + topIn.LeapName(*cat).c_str()); + internalAngles_.push_back(InternalAngle(at, *bat, *cat, dValue)); + } else { + if (debug_ > 1) mprintf("Angle INTERNAL was already defined\n"); + } + } + } // END loop over atoms bonded to B + } // END loop over atoms bonded to A +# ifdef TIMER + timeg_builder_angles_.Stop(); +# endif + // Bonds +# ifdef TIMER + timeg_builder_bonds_.Start(); +# endif + for (Atom::bond_iterator bat = AtA.bondbegin(); bat != AtA.bondend(); ++bat) { + if (debug_ > 1) + mprintf("Building bond INTERNAL for: %s - %s\n", + topIn.LeapName(at).c_str(), + topIn.LeapName(*bat).c_str()); + int bidx = getExistingBondIdx(at, *bat); + if (bidx < 0) { + double dValue = 0; + if (hasPosition[at] && + hasPosition[*bat]) + { + if (debug_ > 1) mprintf("Got bond length from externals\n"); + dValue = sqrt(DIST2_NoImage(frameIn.XYZ(at), frameIn.XYZ(*bat))); + } else { + if (debug_ > 1) mprintf("Got bond length from the model builder\n"); + dValue = ModelBondLength(at, *bat, topIn); + } + if (debug_ > 1) + mprintf("++++Bond INTERNAL: %f for %s - %s\n", dValue, + topIn.LeapName(at).c_str(), + topIn.LeapName(*bat).c_str()); + internalBonds_.push_back(InternalBond(at, *bat, dValue)); + } else { + if (debug_ > 1) mprintf( "Bond length INTERNAL already defined\n" ); + } + } // END loop over atoms bonded to A +# ifdef TIMER + timeg_builder_bonds_.Stop(); +# endif + // Chirality +# ifdef TIMER + timeg_builder_chirality_.Start(); +# endif + double dChi = 0; + int cidx = getExistingChiralityIdx(at); + if (determineChirality(dChi, at, frameIn, topIn, hasPosition)) { + if (debug_ > 1) { + mprintf("Got chirality from external coordinates\n" ); + mprintf("++++Chirality INTERNAL: %f for %s\n", dChi, + topIn.LeapName(at).c_str()); + } + if (cidx == -1) + internalChirality_.push_back( InternalChirality(at, dChi) ); + else { + // Check that this chirality matches previously determine chirality + if (!internalChirality_[cidx].ChiralityMatches(dChi)) + mprintf("Warning: Atom %s chirality (%f) does not match previous chirality (%f)\n", + topIn.AtomMaskName(at).c_str(), dChi, internalChirality_[cidx].ChiralVal()); + } + } else { + if (debug_ > 1) { + if (cidx == -1) + mprintf("Left chirality undefined for %s\n",topIn.LeapName(at).c_str() ); + else + mprintf("Using already-defined chirality (%f).\n", internalChirality_[cidx].ChiralVal()); + } + } +# ifdef TIMER + timeg_builder_chirality_.Stop(); +# endif + return 0; +} + +int Builder::GenerateInternalsAroundLink(int at0, int at1, + Frame const& frameIn, Topology const& topIn, + Barray const& hasPosition, + BuildType btype) +{ + Atom const& A0 = topIn[at0]; + Residue const& R0 = topIn.Res(A0.ResNum()); + // In order to mimic the way LEaP does things, mark all atoms before + // this residue as having position, and all other atoms as not having + // position. + Barray tmpHasPosition( topIn.Natom(), false ); + for (int at = 0; at < R0.FirstAtom(); at++) + tmpHasPosition[at] = true; + return GenerateInternalsAroundLink(at0, at1, frameIn, topIn, hasPosition, btype, tmpHasPosition); +} + +/** Generate internal coordinates around a bond linking two residues + * in the same manner as LEaP. + * \param zmatrix Hold output ICs + * \param at0 Atom in residue we are linking to (i.e. the current residue). + * \param at1 Atom in resiude we are linking from. + */ +int Builder::GenerateInternalsAroundLink(int at0, int at1, + Frame const& frameIn, Topology const& topIn, + Barray const& hasPosition, + BuildType btype, + Barray const& tmpHasPosition) +{ + if (debug_ > 0) { + mprintf("DEBUG: ----- Entering Builder::GenerateInternalsAroundLink. -----\n"); + mprintf("DEBUG: Link: %s to %s\n", topIn.AtomMaskName(at0).c_str(), topIn.AtomMaskName(at1).c_str()); + } +# ifdef TIMER + timeg_builder_IALsetup_.Start(); +# endif + // Sanity check + Atom const& A0 = topIn[at0]; + Atom const& A1 = topIn[at1]; + if (A0.ResNum() == A1.ResNum()) { + mprintf("Warning: Builder::GenerateInternalsAroundLink(): Atoms are in the same residue.\n"); + //return 1; + } - // Create the bond + //Residue const& R0 = topIn.Res(A0.ResNum()); + //Barray tmpHasPosition( topIn.Natom(), false ); + //for (int at = nextTempHasPositionStart_; at < R0.FirstAtom(); at++) + // tmpHasPosition_[at] = true; + //nextTempHasPositionStart_ = R0.FirstAtom(); + // Create spanning tree across the link + int actualAt1; + if (btype == BUILD) + // Want the full tree + actualAt1 = -1; + else + // Only want the 'forward' tree + actualAt1 = at1; +# ifdef TIMER + timeg_builder_IALsetup_.Stop(); + timeg_builder_IALspan_.Start(); +# endif + Iarray span_atoms = GenerateSpanningTree(at0, actualAt1, 4, topIn.Atoms()); +# ifdef TIMER + timeg_builder_IALspan_.Stop(); + timeg_builder_IALgen_.Start(); + timeg_builder_IALgen_internals_.Start(); +# endif + for (Iarray::const_iterator it = span_atoms.begin(); it != span_atoms.end(); ++it) + { + //mprintf("SPANNING TREE ATOM: %s\n", *(topIn[*it].Name())); + if (generateAtomInternals(*it, frameIn, topIn, tmpHasPosition)) { + mprinterr("Error: Could not generate internals for atom %s\n", topIn.AtomMaskName(*it).c_str()); + return 1; + } + } +# ifdef TIMER + timeg_builder_IALgen_internals_.Stop(); + timeg_builder_IALgen_missing_.Start(); +# endif + // FIXME this is a hack to make certain we have all the angle/bond terms we need if (debug_ > 0) - mprintf("DEBUG: Bonding atom %s to %s\n", combinedTop.AtomMaskName(atA).c_str(), combinedTop.AtomMaskName(atB).c_str()); - combinedTop.AddBond( atA, atB ); // TODO pseudo-parameter? - // // Regenerate the molecule info FIXME should Topology just do this? - if (combinedTop.DetermineMolecules()) return 1; + mprintf("DEBUG: LOOKING FOR MISSING ANGLE/BOND PARAMS.\n"); + for (Tarray::const_iterator dih = internalTorsions_.begin(); dih != internalTorsions_.end(); ++dih) + { + int idx = getExistingAngleIdx(dih->AtI(), dih->AtJ(), dih->AtK()); + if (idx < 0) buildAngleInternal( dih->AtI(), dih->AtJ(), dih->AtK(), frameIn, topIn, hasPosition ); + idx = getExistingAngleIdx(dih->AtJ(), dih->AtK(), dih->AtL()); + if (idx < 0) buildAngleInternal( dih->AtJ(), dih->AtK(), dih->AtL(), frameIn, topIn, hasPosition ); + idx = getExistingBondIdx(dih->AtI(), dih->AtJ()); + if (idx < 0) buildBondInternal( dih->AtI(), dih->AtJ(), frameIn, topIn, hasPosition ); + idx = getExistingBondIdx(dih->AtK(), dih->AtL()); + if (idx < 0) buildBondInternal( dih->AtK(), dih->AtL(), frameIn, topIn, hasPosition ); + } + if (debug_ > 0) + mprintf("DEBUG: ----- Leaving Builder::GenerateInternalsAroundLink. -----\n"); +# ifdef TIMER + timeg_builder_IALgen_missing_.Stop(); + timeg_builder_IALgen_.Stop(); +# endif + return 0; +} - // Determine priorities - if (combinedTop[atA].Nbonds() > 2) { - //AtomA.SetNbonds(combinedTop[atA].Nbonds()); - SetPriority(AtomA.ModifyPriority(), atA, combinedTop, CombinedFrame, chiralityDebug); +/** Write timing data to stdout. Only availabe if TIMER was defined. */ +void Builder::PrintTiming(int indent, double total) +{ +# ifdef TIMER + timeg_builder_IALsetup_.WriteTiming(indent, "Internals Around Link Setup :", total); + timeg_builder_IALspan_.WriteTiming (indent, "Internals Around Link Span :", total); + timeg_builder_IALgen_.WriteTiming (indent, "Internals Around Link Gen :", total); + timeg_builder_IALgen_missing_.WriteTiming (indent+1, "Link Gen missing terms :", timeg_builder_IALgen_.Total()); + timeg_builder_IALgen_internals_.WriteTiming(indent+1, "Link Gen atom internals :", timeg_builder_IALgen_.Total()); + timeg_builder_torsions_.WriteTiming (indent+2, "Torsions :", timeg_builder_IALgen_internals_.Total()); + timeg_builder_angles_.WriteTiming (indent+2, "Angles :", timeg_builder_IALgen_internals_.Total()); + timeg_ang_search_.WriteTiming(indent+3, "Search :", timeg_builder_angles_.Total()); + timeg_ang_model_.WriteTiming (indent+3, "Model :", timeg_builder_angles_.Total()); + timeg_MBA_getAngleParam_.WriteTiming(indent+4,"GetParam :", timeg_ang_model_.Total()); + timeg_MBA_getAtomHybrid_.WriteTiming(indent+4,"GetHybrid :", timeg_ang_model_.Total()); + timeg_builder_bonds_.WriteTiming (indent+2, "Bonds :", timeg_builder_IALgen_internals_.Total()); + timeg_builder_chirality_.WriteTiming(indent+2, "Chirality :", timeg_builder_IALgen_internals_.Total()); +# endif + return; +} + +/** For debugging, print all the complete internals associated with the given atom. */ +void Builder::printAllInternalsForAtom(int at, Topology const& topIn, Barray const& hasPosition) const +{ + mprintf("DEBUG: All internals for atom %s\n", topIn.LeapName(at).c_str()); + for (Tarray::const_iterator dih = internalTorsions_.begin(); dih != internalTorsions_.end(); ++dih) + { + if (at == dih->AtI()) { + if (hasPosition[dih->AtJ()] && + hasPosition[dih->AtK()] && + hasPosition[dih->AtL()]) + { + mprintf("DEBUG:\t\t%s - %s - %s Phi= %f\n", + topIn.LeapName(dih->AtJ()).c_str(), + topIn.LeapName(dih->AtK()).c_str(), + topIn.LeapName(dih->AtL()).c_str(), + dih->PhiVal()*Constants::RADDEG); + } + } else if (at == dih->AtL()) { + if (hasPosition[dih->AtK()] && + hasPosition[dih->AtJ()] && + hasPosition[dih->AtI()]) + { + mprintf("DEBUG:\t\t%s - %s - %s Phi= %f\n", + topIn.LeapName(dih->AtK()).c_str(), + topIn.LeapName(dih->AtJ()).c_str(), + topIn.LeapName(dih->AtI()).c_str(), + dih->PhiVal()*Constants::RADDEG); + } + } } - if (combinedTop[atB].Nbonds() > 2) { - //AtomB.SetNbonds(combinedTop[atB].Nbonds()); - SetPriority(AtomB.ModifyPriority(), atB, combinedTop, CombinedFrame, chiralityDebug); + for (Aarray::const_iterator ang = internalAngles_.begin(); ang != internalAngles_.end(); ++ang) + { + if (at == ang->AtI()) { + if (hasPosition[ang->AtJ()] && + hasPosition[ang->AtK()]) + { + mprintf("DEBUG:\t\t%s - %s Theta= %f\n", + topIn.LeapName(ang->AtJ()).c_str(), + topIn.LeapName(ang->AtK()).c_str(), + ang->ThetaVal()*Constants::RADDEG); + } + } else if (at == ang->AtK()) { + if (hasPosition[ang->AtJ()] && + hasPosition[ang->AtI()]) + { + mprintf("DEBUG:\t\t%s - %s Theta= %f\n", + topIn.LeapName(ang->AtJ()).c_str(), + topIn.LeapName(ang->AtI()).c_str(), + ang->ThetaVal()*Constants::RADDEG); + } + } } + for (Larray::const_iterator bnd = internalBonds_.begin(); bnd != internalBonds_.end(); ++bnd) + { + if (at == bnd->AtI()) { + if (hasPosition[bnd->AtJ()]) { + mprintf("DEBUG:\t\t%s length= %f\n", topIn.LeapName(bnd->AtJ()).c_str(), bnd->DistVal()); + } + } else if (at == bnd->AtJ()) { + if (hasPosition[bnd->AtI()]) { + mprintf("DEBUG:\t\t%s length= %f\n", topIn.LeapName(bnd->AtI()).c_str(), bnd->DistVal()); + } + } + } +} +// ----------------------------------------------- - // Generate Zmatrix only for ICs involving bonded atoms - Zmatrix bondZmatrix; +/** Find internal coordinates for given atom. + * Find torsion that contains this atom as one of the end atoms. The other + * three atoms must have known position. + * There must be a bond and angle that lie on the torsion and include + * the given atom as a terminal atom. + * \return 1 if complete internal coords were found, 0 if not. + */ +int Builder::getIcFromInternals(InternalCoords& icOut, int at, Barray const& hasPosition) const +{ + for (Tarray::const_iterator dih = internalTorsions_.begin(); dih != internalTorsions_.end(); ++dih) + { + if (at == dih->AtI()) { + if (hasPosition[dih->AtJ()] && + hasPosition[dih->AtK()] && + hasPosition[dih->AtL()]) + { + int bidx = getExistingBondIdx(dih->AtI(), dih->AtJ()); + if (bidx > -1) { + int aidx = getExistingAngleIdx(dih->AtI(), dih->AtJ(), dih->AtK()); + if (aidx > -1) { + icOut = InternalCoords(dih->AtI(), dih->AtJ(), dih->AtK(), dih->AtL(), + internalBonds_[bidx].DistVal(), + internalAngles_[aidx].ThetaVal()*Constants::RADDEG, + dih->PhiVal()*Constants::RADDEG); + return 1; + } + } + } + } else if (at == dih->AtL()) { + if (hasPosition[dih->AtK()] && + hasPosition[dih->AtJ()] && + hasPosition[dih->AtI()]) + { + int bidx = getExistingBondIdx(dih->AtL(), dih->AtK()); + if (bidx > -1) { + int aidx = getExistingAngleIdx(dih->AtL(), dih->AtK(), dih->AtJ()); + if (aidx > -1) { + icOut = InternalCoords(dih->AtL(), dih->AtK(), dih->AtJ(), dih->AtI(), + internalBonds_[bidx].DistVal(), + internalAngles_[aidx].ThetaVal()*Constants::RADDEG, + dih->PhiVal()*Constants::RADDEG); + return 1; + } + } + } + } + } // END loop over internal torsions - bondZmatrix.SetDebug( debug_ ); - if (bondZmatrix.SetupICsAroundBond(atA, atB, CombinedFrame, combinedTop, posKnown, AtomA, AtomB)) { - mprinterr("Error: Zmatrix setup for ICs around %s and %s failed.\n", - combinedTop.AtomMaskName(atA).c_str(), - combinedTop.AtomMaskName(atB).c_str()); + return 0; +} + +/** Find an angle that has this atom as a terminal atom and the other + * two atoms with their coordinates specified. Then look for another + * angle which has this atom as the terminal and shares the center + * atom with the first angle and also has all of its coordinates + * specified. + * \return 1 if both angles found, 0 if not. + */ +int Builder::getTwoAnglesFromInternals(InternalAngle& a1, InternalAngle& a2, + InternalBond& b1, + int at, Barray const& hasPosition) +const +{ + for (Aarray::const_iterator ang1 = internalAngles_.begin(); ang1 != internalAngles_.end(); ++ang1) + { + int ai = -1; // The atom that needs its position defined + int aj = -1; // Atom bonded to ai + //int ak = -1; // Atom bonded to aj + int bidx = -1; // Index of ai-aj bond internal + if (at == ang1->AtI() && hasPosition[ang1->AtJ()] && hasPosition[ang1->AtK()]) { + ai = ang1->AtI(); + aj = ang1->AtJ(); + //ak = ang1->AtK(); + a1 = *ang1; + } else if (at == ang1->AtK() && hasPosition[ang1->AtJ()] && hasPosition[ang1->AtI()]) { + ai = ang1->AtK(); + aj = ang1->AtJ(); + //ak = ang1->AtI(); + a1 = InternalAngle(ang1->AtK(), ang1->AtJ(), ang1->AtI(), ang1->ThetaVal()); + } + if (ai != -1) + bidx = getExistingBondIdx(ai, aj); + if (bidx > -1) { + b1 = internalBonds_[bidx]; + // Find another angle matching ai-aj with aj and ak positions known + for (Aarray::const_iterator ang2 = ang1 + 1; ang2 != internalAngles_.end(); ++ang2) + { + if (ai == ang2->AtI() && aj == ang2->AtJ() && hasPosition[ang2->AtJ()] && hasPosition[ang2->AtK()]) { + a2 = *ang2; + return 1; + } else + if (ai == ang2->AtK() && aj == ang2->AtJ() && hasPosition[ang2->AtJ()] && hasPosition[ang2->AtI()]) { + a2 = InternalAngle(ang2->AtK(), ang2->AtJ(), ang2->AtI(), ang2->ThetaVal()); + return 1; + } + } + } + } // END outer loop over angle internals + return 0; +} + +/** Get angle for atom whose other two atoms have known position. */ // TODO combined with getTwoAngles above +int Builder::getAngleFromInternals(InternalAngle& a1, InternalBond& b1, + int at, Barray const& hasPosition) +const +{ + for (Aarray::const_iterator ang = internalAngles_.begin(); ang != internalAngles_.end(); ++ang) + { + if (at == ang->AtI() && hasPosition[ang->AtJ()] && hasPosition[ang->AtK()]) { + int bidx = getExistingBondIdx(ang->AtI(), ang->AtJ()); + if (bidx > -1) { + a1 = *ang; + b1 = internalBonds_[bidx]; + return 1; + } + } else if (at == ang->AtK() && hasPosition[ang->AtJ()] && hasPosition[ang->AtI()]) { + int bidx = getExistingBondIdx(ang->AtK(), ang->AtJ()); + if (bidx > -1) { + a1 = InternalAngle( ang->AtK(), ang->AtJ(), ang->AtI(), ang->ThetaVal() ); + b1 = internalBonds_[bidx]; + return 1; + } + } + } // END loop over internal angles + return 0; +} + +/** Get bond for atom whose other atom has known position. */ +int Builder::getBondFromInternals(InternalBond& b1, int at, Barray const& hasPosition) +const +{ + for (Larray::const_iterator bnd = internalBonds_.begin(); bnd != internalBonds_.end(); ++bnd) + { + if (at == bnd->AtI() && hasPosition[bnd->AtJ()]) { + b1 = *bnd; + return 1; + } else + if (at == bnd->AtJ() && hasPosition[bnd->AtI()]) { + b1 = InternalBond(bnd->AtJ(), bnd->AtI(), bnd->DistVal()); + return 1; + } + } + return 0; +} + +// ----------------------------------------------- +class Builder::AtomIC { + public: + AtomIC(int at, int idx) : at_(at), idx_(idx), priority_(9999) {} + + void SetIC(InternalCoords const& ic) { ic_ = ic; priority_ = 0; } + void SetAngles(InternalAngle const& a1, InternalAngle const& a2, InternalBond const& b1) { a1_ = a1; a2_ = a2; b1_ = b1; priority_ = 1; } + void SetAngle(InternalAngle const& a1, InternalBond const& b1) { a1_ = a1; b1_ = b1; priority_ = 2; } + void SetBond(InternalBond const& b1) { b1_ = b1; priority_ = 3; } + + int Idx() const { return idx_; } + int At() const { return at_; } + int Priority() const { return priority_; } + InternalCoords const& IC() const { return ic_; } + InternalAngle const& A1() const { return a1_; } + InternalAngle const& A2() const { return a2_; } + InternalBond const& B1() const { return b1_; } + + bool operator<(AtomIC const& rhs) const { + if (priority_ == rhs.priority_) { + return (idx_ < rhs.idx_); + } else { + return (priority_ < rhs.priority_); + } + } + private: + int at_; ///< Index in topology + int idx_; ///< LEAP index, for sorting + int priority_; ///< Build priority, 0 is max + InternalCoords ic_; + InternalAngle a1_; + InternalAngle a2_; + InternalBond b1_; +}; +// ----------------------------------------------- + +/** Get all internal coordinates for an atom. */ +Builder::AtomIC Builder::getInternalCoordsForAtom(int at, int idx, Barray const& hasPosition, Topology const& topIn) const +{ + AtomIC atomIC(at, idx); + InternalCoords ic; + if (getIcFromInternals(ic, at, hasPosition)) { + if (debug_ > 0) // TODO should be behind an ifdef? + mprintf("Atom %s has torsion/angle/bond internals.\n", topIn.LeapName(at).c_str()); + atomIC.SetIC( ic ); + return atomIC; + } + InternalAngle a1, a2; + InternalBond b1; + if (getTwoAnglesFromInternals(a1, a2, b1, at, hasPosition)) { + if (debug_ > 0) + mprintf("Atom %s has two angle internals.\n", topIn.LeapName(at).c_str()); + atomIC.SetAngles(a1, a2, b1); + return atomIC; + } + if (getAngleFromInternals(a1, b1, at, hasPosition)) { + if (debug_ > 0) + mprintf("Atom %s has angle internal.\n", topIn.LeapName(at).c_str()); + atomIC.SetAngle(a1, b1); + return atomIC; + } + if (getBondFromInternals(b1, at, hasPosition)) { + if (debug_ > 0) + mprintf("Atom %s has bond internal.\n", topIn.LeapName(at).c_str()); + atomIC.SetBond(b1); + return atomIC; + } + return atomIC; +} + +/** Build atom using two angles. */ +int Builder::buildCoordsFromTwoAngles(Vec3& vNew, + int at, InternalAngle const& Ang1, InternalAngle const& Ang2, InternalBond const& Bnd, + Frame const& frameOut, Topology const& topIn, Barray const& hasPosition) +const +{ + int aAtomA, aAtomB, aAtomC; + if (at == Ang1.AtI()) { + aAtomC = Ang1.AtJ(); + aAtomA = Ang1.AtK(); + } else { + aAtomC = Ang1.AtJ(); + aAtomA = Ang1.AtI(); + } + if (at == Ang2.AtI()) + aAtomB = Ang2.AtK(); + else + aAtomB = Ang2.AtI(); + Vec3 vAtomC = Vec3( frameOut.XYZ(aAtomC) ); + Vec3 vAtomA = Vec3( frameOut.XYZ(aAtomA) ); + Vec3 vAtomB = Vec3( frameOut.XYZ(aAtomB) ); + + if (debug_ > 1) { + mprintf("Building atom %s using two angles\n", topIn.LeapName(at).c_str()); + mprintf("Using %s - %s - %s and %s - %s - %s\n", + topIn.LeapName(Ang1.AtI()).c_str(), + topIn.LeapName(Ang1.AtJ()).c_str(), + topIn.LeapName(Ang1.AtK()).c_str(), + topIn.LeapName(Ang2.AtI()).c_str(), + topIn.LeapName(Ang2.AtJ()).c_str(), + topIn.LeapName(Ang2.AtK()).c_str()); + mprintf("Using first-center-second %s - %s - %s\n", + topIn.LeapName(aAtomA).c_str(), + topIn.LeapName(aAtomC).c_str(), + topIn.LeapName(aAtomB).c_str()); + mprintf("AngleA = %f\n", Ang1.ThetaVal()*Constants::RADDEG ); + mprintf("AngleB = %f\n", Ang2.ThetaVal()*Constants::RADDEG ); + mprintf("Bond = %f\n", Bnd.DistVal() ); + } + double dChi = 0.0; + int retVal = determineChirality( dChi, aAtomC, frameOut, topIn, hasPosition ); + if (retVal != 0) { + //mprinterr("Error: Could not determine chirality for %s\n", topIn.LeapName(aAtomC).c_str()); + dChi = 1.0; + // TODO check for INTERNAL chirality. + } else { + if (debug_ > 1) + mprintf("Got EXTERNAL chirality: %f\n", dChi ); + } + + // Calculate the orientation of aAtomD with respect to aAtomA - aAtomC - aAtomB + double dOrient = Cpptraj::Structure::Chirality::chiralityToOrientation( dChi, topIn[aAtomC], aAtomA, aAtomB, at, -1 ); + if (debug_ > 1) { + mprintf( "The chirality of the ATOM to build is: %f\n", dChi ); + mprintf( "The orientation of the atom to build is: %f\n", dOrient ); + } + // NOTE: below is just testing reverse to match leap + //Vec3 vNew = ZMatrixBondTwoAnglesOrientation(vAtomC, vAtomB, vAtomA, + // Bnd.DistVal(), Ang2.ThetaVal(), Ang1.ThetaVal(), -dOrient); + vNew = Zmatrix::PosFromBondTwoAnglesOrientation(vAtomC, vAtomA, vAtomB, + Bnd.DistVal(), Ang1.ThetaVal(), Ang2.ThetaVal(), dOrient); + return 0; +} + +/** Build coordinates for an atom from internals. + * \return 1 if atom was built, 0 otherwise. + */ +int Builder::buildCoordsForAtom(int at, Frame& frameOut, Topology const& topIn, Barray const& hasPosition) +const +{ + // Find an internal coordinate for the atom. + InternalCoords ic; + if (getIcFromInternals(ic, at, hasPosition)) { + //printAllInternalsForAtom(at, topIn, hasPosition); // DEBUG + Vec3 posI = Zmatrix::AtomIposition(ic, frameOut); + if (debug_ > 1) { + mprintf("Building atom %s using torsion/angle/bond\n", topIn.LeapName(at).c_str()); + mprintf("Using %s - %s - %s - %s\n", + topIn.LeapName(ic.AtI()).c_str(), + topIn.LeapName(ic.AtJ()).c_str(), + topIn.LeapName(ic.AtK()).c_str(), + topIn.LeapName(ic.AtL()).c_str()); + mprintf( "Torsion = %f\n", ic.Phi() ); + mprintf( "Angle = %f\n", ic.Theta() ); + mprintf( "Bond = %f\n", ic.Dist() ); + mprintf( "ZMatrixAll: %f,%f,%f\n", posI[0], posI[1], posI[2]); + } + frameOut.SetXYZ( ic.AtI(), posI ); return 1; } - if (debug_ > 0) - bondZmatrix.print(&combinedTop); - if (bondZmatrix.SetToFrame( CombinedFrame, posKnown )) { - mprinterr("Error: Conversion from bondZmatrix to Cartesian coords failed.\n"); + // Check if we can get two angle internals for this atom + InternalAngle a1, a2; + InternalBond b1; + if (getTwoAnglesFromInternals(a1, a2, b1, at, hasPosition)) { + Vec3 posI; + // TODO error checking + buildCoordsFromTwoAngles(posI, at, a1, a2, b1, frameOut, topIn, hasPosition); + frameOut.SetXYZ( at, posI ); + return 1; + } + // Check if we can get a single angle for this atom + if (getAngleFromInternals(a1, b1, at, hasPosition)) { + Vec3 posI = Zmatrix::AtomIposition(frameOut.XYZ(a1.AtJ()), frameOut.XYZ(a1.AtK()), b1.DistVal(), a1.ThetaVal() ); + if (debug_ > 1) { + mprintf("Building atom %s using angle/bond\n", topIn.LeapName(at).c_str()); + mprintf("Using %s - %s - %s\n", + topIn.LeapName(a1.AtI()).c_str(), topIn.LeapName(a1.AtJ()).c_str(), topIn.LeapName(a1.AtK()).c_str()); + mprintf( "Angle = %f\n", a1.ThetaVal()*Constants::RADDEG ); + mprintf( "Bond = %f\n", b1.DistVal() ); + mprintf("ZMatrixBondAngle: %f,%f,%f\n", posI[0], posI[1], posI[2]); + } + frameOut.SetXYZ( a1.AtI(), posI ); return 1; } + // Check if we can get a bond for this atom + if (getBondFromInternals(b1, at, hasPosition)) { + Vec3 posI = Zmatrix::AtomIposition(frameOut.XYZ(b1.AtJ()), b1.DistVal()); + if (debug_ > 1) { + mprintf("Building atom %s using bond\n", topIn.LeapName(at).c_str()); + mprintf("Using %s - %s\n", + topIn.LeapName(b1.AtI()).c_str(), topIn.LeapName(b1.AtJ()).c_str()); + mprintf( "Bond = %f\n", b1.DistVal() ); + mprintf( "ZMatrixBond: %f,%f,%f\n", posI[0], posI[1], posI[2]); + } + frameOut.SetXYZ( b1.AtI(), posI ); + return 1; + } + return 0; +} +/** Build coordinates for any atom with an internal that does + * not have its position set. Use same atom order as leap sequence. + */ +int Builder::BuildSequenceFromInternals(Frame& frameOut, Topology const& topIn, + Barray& hasPosition, int at0, int at1) +const +{ + // Create a list of atoms that may need positions + Iarray atomIndices = GenerateSpanningTree(at0, at1, -1, topIn.Atoms()); + + // Count how many atoms need their positions set + unsigned int nAtomsThatNeedPositions = 0; + for (std::vector<int>::const_iterator it = atomIndices.begin(); + it != atomIndices.end(); ++it) + if (!hasPosition[*it]) + nAtomsThatNeedPositions++; + if (debug_ > 0) + mprintf("DEBUG: %u atoms need positions.\n", nAtomsThatNeedPositions); + if (nAtomsThatNeedPositions == 0) return 0; + + // Loop over residue atoms + while (nAtomsThatNeedPositions > 0) { + unsigned int nAtomsBuilt = 0; + for (std::vector<int>::const_iterator idx = atomIndices.begin(); + idx != atomIndices.end(); ++idx) + { + if (!hasPosition[*idx]) { + if (buildCoordsForAtom(*idx, frameOut, topIn, hasPosition)) { + hasPosition[ *idx ] = true; + nAtomsBuilt++; + nAtomsThatNeedPositions--; + } + } + } // END loop over atom indices + // If we built no atoms this is a problem + if (nAtomsBuilt < 1) { + mprinterr("Error: No more atoms could be built in sequence for %s\n", topIn.c_str()); + return 1; + } + } // END atoms need positions return 0; } + +/** \return Array of residues with atoms that need positions. */ // TODO does this need to be separate +std::vector<Residue> Builder::residuesThatNeedPositions(Topology const& topIn, + Barray const& hasPosition) +const +{ + // FIXME does this routine need to be more efficient? Use std::set? + std::vector<Residue> residues; + std::vector<int> Rnums; + for (Tarray::const_iterator dih = internalTorsions_.begin(); + dih != internalTorsions_.end(); ++dih) + { + if (!hasPosition[dih->AtI()] || !hasPosition[dih->AtL()]) { + int rnum = topIn[dih->AtI()].ResNum(); + bool has_rnum = false; + for (std::vector<int>::const_iterator it = Rnums.begin(); it != Rnums.end(); ++it) { + if (*it == rnum) { + has_rnum = true; + break; + } + } + if (!has_rnum) { + residues.push_back( topIn.Res(rnum) ); + Rnums.push_back(rnum); + } + } + } + for (Aarray::const_iterator ang = internalAngles_.begin(); + ang != internalAngles_.end(); ++ang) + { + if (!hasPosition[ang->AtI()] || !hasPosition[ang->AtK()]) { + int rnum = topIn[ang->AtI()].ResNum(); + bool has_rnum = false; + for (std::vector<int>::const_iterator it = Rnums.begin(); it != Rnums.end(); ++it) { + if (*it == rnum) { + has_rnum = true; + break; + } + } + if (!has_rnum) { + residues.push_back( topIn.Res(rnum) ); + Rnums.push_back(rnum); + } + } + } + for (Larray::const_iterator bnd = internalBonds_.begin(); + bnd != internalBonds_.end(); ++bnd) + { + if (!hasPosition[bnd->AtI()] || !hasPosition[bnd->AtJ()]) { + int rnum = topIn[bnd->AtI()].ResNum(); + bool has_rnum = false; + for (std::vector<int>::const_iterator it = Rnums.begin(); it != Rnums.end(); ++it) { + if (*it == rnum) { + has_rnum = true; + break; + } + } + if (!has_rnum) { + residues.push_back( topIn.Res(rnum) ); + Rnums.push_back(rnum); + } + } + } + if (!Rnums.empty() && debug_ > 0) { + for (std::vector<int>::const_iterator it = Rnums.begin(); it != Rnums.end(); ++it) + mprintf("DEBUG: Need to build for residue %s\n", topIn.TruncResNameNum(*it).c_str()); + } + return residues; +} + +/** Build in cases where known positions are sparse. Try to build atoms + * that have the most "known" internal coords first, then update + * internal coords status. + */ +int Builder::sparseBuildFromInternals(std::vector<AtomIC>& needsBuilding, Frame& frameOut, Topology const& topIn, Barray& hasPosition) +const +{ + if (debug_ > 0) + mprintf("DEBUG: No complete internal coordinates. Trying a sparse build.\n"); + unsigned int nAtomsThatNeedPositions = needsBuilding.size(); + + unsigned int currentBuildIdx = 0; + while (nAtomsThatNeedPositions > 0) { + bool built_an_atom = false; + // Build the atom with the highest priority + AtomIC const& currentBuildAtom = needsBuilding[currentBuildIdx]; + int at = currentBuildAtom.At(); + if (debug_ > 0) + mprintf("DEBUG: Current build atom is %i %s\n", at+1, topIn.AtomMaskName(at).c_str()); + + if (currentBuildAtom.Priority() == 0) { + //printAllInternalsForAtom(at, topIn, hasPosition); // DEBUG + Vec3 posI = Zmatrix::AtomIposition(currentBuildAtom.IC(), frameOut); + if (debug_ > 1) { + mprintf("Building atom %s using torsion/angle/bond\n", topIn.LeapName(at).c_str()); + mprintf("Using %s - %s - %s - %s\n", + topIn.LeapName(currentBuildAtom.IC().AtI()).c_str(), + topIn.LeapName(currentBuildAtom.IC().AtJ()).c_str(), + topIn.LeapName(currentBuildAtom.IC().AtK()).c_str(), + topIn.LeapName(currentBuildAtom.IC().AtL()).c_str()); + mprintf( "Torsion = %f\n", currentBuildAtom.IC().Phi() ); + mprintf( "Angle = %f\n", currentBuildAtom.IC().Theta() ); + mprintf( "Bond = %f\n", currentBuildAtom.IC().Dist() ); + mprintf( "ZMatrixAll: %f,%f,%f\n", posI[0], posI[1], posI[2]); + } + frameOut.SetXYZ( currentBuildAtom.IC().AtI(), posI ); // TODO use at? + hasPosition[at] = true; + built_an_atom = true; + } else if (currentBuildAtom.Priority() == 1) { + Vec3 posI; + // TODO error checking + buildCoordsFromTwoAngles(posI, at, currentBuildAtom.A1(), currentBuildAtom.A2(), currentBuildAtom.B1(), + frameOut, topIn, hasPosition); + frameOut.SetXYZ( at, posI ); + hasPosition[at] = true; + built_an_atom = true; + } else if (currentBuildAtom.Priority() == 2) { + Vec3 posI = Zmatrix::AtomIposition(frameOut.XYZ(currentBuildAtom.A1().AtJ()), + frameOut.XYZ(currentBuildAtom.A1().AtK()), + currentBuildAtom.B1().DistVal(), currentBuildAtom.A1().ThetaVal() ); + if (debug_ > 1) { + mprintf("Building atom %s using angle/bond\n", topIn.LeapName(at).c_str()); + mprintf("Using %s - %s - %s\n", + topIn.LeapName(currentBuildAtom.A1().AtI()).c_str(), + topIn.LeapName(currentBuildAtom.A1().AtJ()).c_str(), + topIn.LeapName(currentBuildAtom.A1().AtK()).c_str()); + mprintf( "Angle = %f\n", currentBuildAtom.A1().ThetaVal()*Constants::RADDEG ); + mprintf( "Bond = %f\n", currentBuildAtom.B1().DistVal() ); + mprintf("ZMatrixBondAngle: %f,%f,%f\n", posI[0], posI[1], posI[2]); + } + frameOut.SetXYZ( currentBuildAtom.A1().AtI(), posI ); + hasPosition[at] = true; + built_an_atom = true; + } else if (currentBuildAtom.Priority() == 3) { + Vec3 posI = Zmatrix::AtomIposition(frameOut.XYZ(currentBuildAtom.B1().AtJ()), currentBuildAtom.B1().DistVal()); + if (debug_ > 1) { + mprintf("Building atom %s using bond\n", topIn.LeapName(at).c_str()); + mprintf("Using %s - %s\n", + topIn.LeapName(currentBuildAtom.B1().AtI()).c_str(), topIn.LeapName(currentBuildAtom.B1().AtJ()).c_str()); + mprintf( "Bond = %f\n", currentBuildAtom.B1().DistVal() ); + mprintf( "ZMatrixBond: %f,%f,%f\n", posI[0], posI[1], posI[2]); + } + frameOut.SetXYZ( currentBuildAtom.B1().AtI(), posI ); + hasPosition[at] = true; + built_an_atom = true; + } + if (!built_an_atom) { + mprinterr("Error: Failed building atom %i %s\n", at+1, topIn.AtomMaskName(at).c_str()); + return 1; + } + currentBuildIdx++; + nAtomsThatNeedPositions--; + if (currentBuildIdx == needsBuilding.size()) break; + // Now that we have built an atom, see if we can find new complete ICs for remaining atoms to build + for (unsigned int idx2 = currentBuildIdx; idx2 < needsBuilding.size(); idx2++) + { + //needsBuilding.push_back( getInternalCoordsForAtom(*it, it - atomIndices.begin(), hasPosition, topIn) ); + needsBuilding[idx2] = getInternalCoordsForAtom( needsBuilding[idx2].At(), needsBuilding[idx2].Idx(), hasPosition, topIn ); + } + // Sort remaining atoms to build. + std::sort( needsBuilding.begin() + currentBuildIdx, needsBuilding.end() ); + if (debug_ > 0) { + mprintf("DEBUG: Atoms that need building:\n"); + for (std::vector<AtomIC>::const_iterator it = needsBuilding.begin() + currentBuildIdx; it != needsBuilding.end(); ++it) + mprintf("\t%i atom %i %s (%i)\n", it->Idx(), it->At()+1, topIn.AtomMaskName( it->At() ).c_str(), it->Priority() ); + } + } // END loop over build atoms + return 0; +} + +/** Build coordinates for any atom with an internal that does + * not have its position set. + */ +int Builder::BuildFromInternals(Frame& frameOut, Topology const& topIn, Barray& hasPosition) +const +{ + //mprintf("DEBUG: CALLING BuildFromInternals()\n"); + // Create a list of residues that have atoms that need positions + std::vector<Residue> residues = residuesThatNeedPositions(topIn, hasPosition); + //mprintf("DEBUG: residues:"); + //for (std::vector<Residue>::const_iterator it = residues.begin(); it != residues.end(); ++it) + // mprintf(" %s", it->c_str()); + //mprintf("\n"); +// std::vector<int> Rnums; +// for (Tarray::const_iterator dih = internalTorsions_.begin(); +// dih != internalTorsions_.end(); ++dih) +// { +// if (!hasPosition[dih->AtI()]) { +// int rnum = topIn[dih->AtI()].ResNum(); +// bool has_rnum = false; +// for (std::vector<int>::const_iterator it = Rnums.begin(); it != Rnums.end(); ++it) { +// if (*it == rnum) { +// has_rnum = true; +// break; +// } +// } +// if (!has_rnum) { +// mprintf("DEBUG: Need to build for residue %s\n", topIn.TruncResNameNum(rnum).c_str()); +// residues.push_back( topIn.Res(rnum) ); +// Rnums.push_back(rnum); +// } +// } +// } + // Generate array over residue in same order that leap would do + Iarray atomIndices = GenerateAtomArray(residues, topIn.Atoms()); + //mprintf("DEBUG: atomIndices:"); + //for (Iarray::const_iterator it = atomIndices.begin(); it != atomIndices.end(); ++it) + // mprintf(" %i", *it); + //mprintf("\n"); + residues.clear(); + + // Count how many atoms need their positions set + std::vector<AtomIC> needsBuilding; + unsigned int nAtomsThatNeedPositions = 0; + for (std::vector<int>::const_iterator it = atomIndices.begin(); + it != atomIndices.end(); ++it) + { + if (!hasPosition[*it]) { + nAtomsThatNeedPositions++; + needsBuilding.push_back( getInternalCoordsForAtom(*it, it - atomIndices.begin(), hasPosition, topIn) ); + } + } + std::sort( needsBuilding.begin(), needsBuilding.end() ); + if (debug_ > 0) { + mprintf("DEBUG: Atoms that need building:\n"); + for (std::vector<AtomIC>::const_iterator it = needsBuilding.begin(); it != needsBuilding.end(); ++it) + mprintf("\t%i atom %i %s (%i)\n", it->Idx(), it->At()+1, topIn.AtomMaskName( it->At() ).c_str(), it->Priority() ); + mprintf("DEBUG: %u atoms need positions.\n", nAtomsThatNeedPositions); + } + if (nAtomsThatNeedPositions == 0) return 0; + + // FIXME TEST - If no "complete" internal coords currently, try a "sparse" build. + if (needsBuilding.front().Priority() > 0) + return sparseBuildFromInternals(needsBuilding, frameOut, topIn, hasPosition); + + // Loop over residue atoms + while (nAtomsThatNeedPositions > 0) { + unsigned int nAtomsBuilt = 0; + for (std::vector<int>::const_iterator idx = atomIndices.begin(); + idx != atomIndices.end(); ++idx) + { + int at = *idx; + int atToBuildAround = -1; + if (!hasPosition[at]) { + // Position of atom is not known. + if (debug_ > 0) + mprintf("BUILD: Position of %s is not known.\n", *(topIn[at].Name())); // DEBUG + // Is this bonded to an atom with known position? + for (Atom::bond_iterator bat = topIn[at].bondbegin(); bat != topIn[at].bondend(); ++bat) { + if (hasPosition[*bat]) { + atToBuildAround = *bat; + break; + } + } + } else { + // Position of atom is known. + if (debug_ > 0) + mprintf("BUILD: Position of %s is known.\n", *(topIn[at].Name())); // DEBUG + atToBuildAround = at; + } + // Build unknown positions around known atom + if (atToBuildAround != -1) { + if (debug_ > 0) + mprintf("Building externals from %s\n", topIn.LeapName(atToBuildAround).c_str()); + Atom const& bAtom = topIn[atToBuildAround]; + for (Atom::bond_iterator bat = bAtom.bondbegin(); bat != bAtom.bondend(); ++bat) + { + if (!hasPosition[*bat]) { + if (debug_ > 0) + printAllInternalsForAtom(*bat, topIn, hasPosition); // DEBUG + if (buildCoordsForAtom(*bat, frameOut, topIn, hasPosition)) { + hasPosition[ *bat ] = true; + nAtomsBuilt++; + nAtomsThatNeedPositions--; + } + } + } // END loop over atoms bonded to atom with known position + } + } // END loop over residue atoms + // If we built no atoms this is a problem + if (nAtomsBuilt < 1) { + mprinterr("Error: No more atoms could be built for %s\n", topIn.c_str()); + return 1; + } + } // END loop while atoms need position + return 0; +} + +/** Generate a Zmatrix from the current internals. TODO only for atoms that need it? */ +/* +int Builder::GetZmatrixFromInternals(Zmatrix& zmatrix, Topology const& topIn) const { + mprintf("DEBUG: ----- Enter GetZmatrixFromInternals -----\n"); + zmatrix.clear(); + + for (Tarray::const_iterator dih = internalTorsions_.begin(); dih != internalTorsions_.end(); ++dih) + { + // Get angles i-j-k and j-k-l + int aidx0 = getExistingAngleIdx(dih->AtI(), dih->AtJ(), dih->AtK()); + int aidx1 = getExistingAngleIdx(dih->AtJ(), dih->AtK(), dih->AtL()); + if (aidx0 < 0) { + mprinterr("Error: Missing angle0 internal for %s - %s - %s\n", + topIn.AtomMaskName(dih->AtI()).c_str(), + topIn.AtomMaskName(dih->AtJ()).c_str(), + topIn.AtomMaskName(dih->AtK()).c_str()); + return 1; + } + if (aidx1 < 0) { + mprinterr("Error: Missing angle1 internal for %s - %s - %s\n", + topIn.AtomMaskName(dih->AtJ()).c_str(), + topIn.AtomMaskName(dih->AtK()).c_str(), + topIn.AtomMaskName(dih->AtL()).c_str()); + return 1; + } + // Get Bonds i-j and k-l + int bidx0 = getExistingBondIdx(dih->AtI(), dih->AtJ()); + int bidx1 = getExistingBondIdx(dih->AtK(), dih->AtL()); + if (bidx0 < 0) { + mprinterr("Error: Missing bond0 internal for %s - %s\n", + topIn.LeapName(dih->AtI()).c_str(), + topIn.LeapName(dih->AtJ()).c_str()); + //mprintf("DEBUG: Internal %s - %s - %s - %s\n", + // topIn.LeapName(dih->AtI()).c_str(), + // topIn.LeapName(dih->AtJ()).c_str(), + // topIn.LeapName(dih->AtK()).c_str(), + // topIn.LeapName(dih->AtL()).c_str()); + } + if (bidx1 < 0) { + mprinterr("Error: Missing bond1 internal for %s - %s\n", + topIn.AtomMaskName(dih->AtK()).c_str(), + topIn.AtomMaskName(dih->AtL()).c_str()); + } + // Add internal coordinates + zmatrix.AddIC( InternalCoords(dih->AtI(), dih->AtJ(), dih->AtK(), dih->AtL(), + internalBonds_[bidx0].DistVal(), + internalAngles_[aidx0].ThetaVal()*Constants::RADDEG, + dih->PhiVal()*Constants::RADDEG) ); + zmatrix.AddIC( InternalCoords(dih->AtL(), dih->AtK(), dih->AtJ(), dih->AtI(), + internalBonds_[bidx1].DistVal(), + internalAngles_[aidx1].ThetaVal()*Constants::RADDEG, + dih->PhiVal()*Constants::RADDEG) ); + } // END loop over internal torsions + mprintf("DEBUG: ----- Exit GetZmatrixFromInternals -----\n"); + return 0; +}*/ diff --git a/src/Structure/Builder.h b/src/Structure/Builder.h index 86087d0bec..2b9ec86946 100644 --- a/src/Structure/Builder.h +++ b/src/Structure/Builder.h @@ -1,24 +1,286 @@ #ifndef INC_STRUCTURE_BUILDER_H #define INC_STRUCTURE_BUILDER_H #include <vector> +#include "../AtomType.h" +#ifdef TIMER +# include "../Timer.h" // DEBUG +#endif +class Atom; class Topology; class Frame; +class Residue; +class Vec3; namespace Cpptraj { +namespace Parm { +class ParameterSet; +} namespace Structure { +class Zmatrix; +class InternalCoords; /// Used to attach different topology/frame combos using internal coordinates class Builder { public: + typedef std::vector<bool> Barray; + /// Build type + enum BuildType { + BUILD = 0, ///< For cases where some external coordinates may already be known. + SEQUENCE ///< For cases where no external coordinates are known. + }; /// CONSTRUCTOR Builder(); - /// Combine second fragment into first fragment and bond - int Combine(Topology&, Frame&, Topology const&, Frame const&, int, int); - /// Set debug + /// Set debug level void SetDebug(int d) { debug_ = d; } + /// Set optional parameter set + void SetParameters(Cpptraj::Parm::ParameterSet const*); + /// Set atom chirality + void SetAtomChirality(int, double); + /// Update the internal coordinates in given Zmatrix with values from Frame/Parameters TODO combine into BuildFromInternals? + int UpdateICsFromFrame(Frame const&, Topology const&, Barray const&); + /// Generate internal coordinates in the same manner as LEaP + int GenerateInternals(Frame const&, Topology const&, Barray const&); + /// Generate internal coordinates around a link between residues in same manner as LEaP + int GenerateInternalsAroundLink(int, int, Frame const&, Topology const&, Barray const&, BuildType, Barray const&); + int GenerateInternalsAroundLink(int, int, Frame const&, Topology const&, Barray const&, BuildType); + /// Update existing indices with given offset + void UpdateIndicesWithOffset(int); + + /// \return LEaP chirality value around given atom + static double DetermineChiralityAroundAtom(int, Frame const&, Topology const&); + /// Build position from internals for any atom with unset position; some positions may be known. + int BuildFromInternals(Frame&, Topology const&, Barray&) const; + /// Build position from internals for any atom with unset position + int BuildSequenceFromInternals(Frame&, Topology const&, Barray&, int, int) const; + /// \return Zmatrix from current internals + //int GetZmatrixFromInternals(Zmatrix&, Topology const&) const; + /// Adjust torsion around a bond so that atoms with longest 'depth' are trans + int AdjustIcAroundLink(int, int, Frame const&, Topology const&); + + static void PrintTiming(int, double); private: - typedef std::vector<bool> Barray; + typedef std::vector<int> Iarray; + + /// Used to hold parameters for modeling a torsion + class TorsionModel; + /// Hold torsion + class InternalTorsion; + /// Hold angle + class InternalAngle; + /// Hold bond + class InternalBond; + /// Hold chirality + class InternalChirality; + + class AtomIC; + + typedef std::vector<InternalTorsion> Tarray; + typedef std::vector<InternalAngle> Aarray; + typedef std::vector<InternalBond> Larray; + typedef std::vector<InternalChirality> Carray; + + /// Get length parameter for atoms + int getLengthParam(double&, int, int, Topology const&) const; + /// Get angle parameter for atoms. + int getAngleParam(double&, int, int, int, Topology const&) const; + /// Calculte phi value for a torsion in a TorsionModel + void ModelTorsion(TorsionModel const&, unsigned int, unsigned int, double); + /// Get angle parameter/model an angle value + double ModelBondAngle(int, int, int, Topology const&) const; + /// Get bond parameter/model a bond length + double ModelBondLength(int, int, Topology const&) const; + /// Create torsion around SP3-SP3 linkage + void createSp3Sp3Torsions(TorsionModel const&); + /// Create torsion around SP3-SP2 linkage + void createSp3Sp2Torsions(TorsionModel const&); + /// Create torsion around SP2-SP2 linkage + void createSp2Sp2Torsions(TorsionModel const&); + /// Dtermine atom hybridization in the same way as leap + AtomType::HybridizationType getAtomHybridization(Atom const&, std::vector<Atom> const&) const; + /// Model torsions around a bond in the same manner as LEaP + int assignTorsionsAroundBond(int, int, Frame const&, Topology const&, Barray const&, int); + /// Get any existing internal torsion indices around specified atoms + Iarray getExistingTorsionIdxs(int, int) const; + /// Get specific internal torsion + int getExistingTorsionIdx(int, int, int, int) const; + /// Get specific internal angle + int getExistingAngleIdx(int, int, int) const; + /// Get specific internal bond + int getExistingBondIdx(int, int) const; + /// Get specific chirality + int getExistingChiralityIdx(int) const; + /// Build angle internal + void buildAngleInternal(int, int, int, Frame const&, Topology const&, Barray const&); + /// Build bond internal + void buildBondInternal(int, int, Frame const&, Topology const&, Barray const&); + + /// Determine chirality around an atom + static int determineChirality(double&, int, Frame const&, Topology const&, Barray const&); + + /// Generate internal coords for a given atom + int generateAtomInternals(int, Frame const&, Topology const&, Barray const&); + /// Get complete internal coords that can be used to construct specified atom + int getIcFromInternals(InternalCoords&, int, Barray const&) const; + /// Get two angles with ai-aj in common and all positions but ai known + int getTwoAnglesFromInternals(InternalAngle&, InternalAngle&, InternalBond&, int, Barray const&) const; + /// Get angle with all positions but ai known + int getAngleFromInternals(InternalAngle&, InternalBond&, int, Barray const&) const; + /// Get bond with aj position known + int getBondFromInternals(InternalBond&, int, Barray const&) const; + /// For debug, print all valid internals associated with an atom + void printAllInternalsForAtom(int, Topology const&, Barray const&) const; + /// \\return index of atom with longest 'depth' bonded to a given atom (ignoring one bonded atom). + int get_depths_around_atom(int, int, Topology const&) const; + /// Get any complete internal coords for specified atom + AtomIC getInternalCoordsForAtom(int, int, Barray const&, Topology const&) const; + /// Build XYZ coords for an atom from 2 angles and 1 bond + int buildCoordsFromTwoAngles(Vec3&, int, InternalAngle const&, InternalAngle const&, InternalBond const&, + Frame const&, Topology const&, Barray const&) const; + /// Build XYZ coords for an atom if internals are available + int buildCoordsForAtom(int, Frame&, Topology const&, Barray const&) const; + /// Build atoms based on build priority; for cases where known atoms are sparse + int sparseBuildFromInternals(std::vector<AtomIC>&, Frame&, Topology const&, Barray&) const; + /// \return array containing all residues with atoms that need positions + std::vector<Residue> residuesThatNeedPositions(Topology const&, Barray const&) const; int debug_; + Cpptraj::Parm::ParameterSet const* params_; + + Topology const* currentTop_; ///< Topology for the createSpXSpXTorsions/ModelTorsion routines + Tarray internalTorsions_; + Aarray internalAngles_; + Larray internalBonds_; + Carray internalChirality_; + Iarray Rnums_; ///< Hold residue indices pertaining to current internals +# ifdef TIMER + static Timer timeg_builder_IALsetup_; + static Timer timeg_builder_IALspan_; + static Timer timeg_builder_IALgen_; + static Timer timeg_builder_IALgen_internals_; + static Timer timeg_builder_IALgen_missing_; + static Timer timeg_builder_torsions_; + static Timer timeg_builder_angles_; + static Timer timeg_builder_bonds_; + static Timer timeg_builder_chirality_; + static Timer timeg_ang_search_; + static Timer timeg_ang_model_; + static Timer timeg_MBA_getAngleParam_; + static Timer timeg_MBA_getAtomHybrid_; +# endif +}; +/// ----- Hold torsion internal ------------------ +class Cpptraj::Structure::Builder::InternalTorsion { + public: + /// CONSTRUCTOR + InternalTorsion() : ai_(-1), aj_(-1), ak_(-1), al_(-1), phi_(0) {} + /// CONSTRUCTOR + InternalTorsion(int i, int j, int k, int l, double p) : + ai_(i), aj_(j), ak_(k), al_(l), phi_(p) {} + /// Set the phi value in radians + void SetPhiVal(double p) { phi_ = p; } + /// Offset indices by given value + void OffsetIndices(int o) { + ai_ += o; + aj_ += o; + ak_ += o; + al_ += o; + } + + int AtI() const { return ai_; } + int AtJ() const { return aj_; } + int AtK() const { return ak_; } + int AtL() const { return al_; } + double PhiVal() const { return phi_; } + private: + int ai_; + int aj_; + int ak_; + int al_; + double phi_; +}; +// ----- Hold angle internal --------------------- +class Cpptraj::Structure::Builder::InternalAngle { + public: + /// CONSTRUCTOR + InternalAngle() : ai_(-1), aj_(-1), ak_(-1), theta_(0) {} + /// CONSTRUCTOR + InternalAngle(int i, int j, int k, double t) : + ai_(i), aj_(j), ak_(k), theta_(t) {} + /// Set the phi value in radians + void SetThetaVal(double t) { theta_ = t; } + /// Offset indices by given value + void OffsetIndices(int o) { + ai_ += o; + aj_ += o; + ak_ += o; + } + + int AtI() const { return ai_; } + int AtJ() const { return aj_; } + int AtK() const { return ak_; } + double ThetaVal() const { return theta_; } + private: + int ai_; + int aj_; + int ak_; + double theta_; +}; +// ----- Hold bond internal ---------------------- +class Cpptraj::Structure::Builder::InternalBond { + public: + /// CONSTRUCTOR + InternalBond() : ai_(-1), aj_(-1), dist_(0) {} + /// CONSTRUCTOR + InternalBond(int i, int j, double d) : + ai_(i), aj_(j), dist_(d) {} + /// Set the distance value in angstroms + void SetDistVal(double d) { dist_ = d; } + /// Offset indices by given value + void OffsetIndices(int o) { + ai_ += o; + aj_ += o; + } + + int AtI() const { return ai_; } + int AtJ() const { return aj_; } + double DistVal() const { return dist_; } + private: + int ai_; + int aj_; + double dist_; +}; +// ----- Hold chirality value -------------------- +class Cpptraj::Structure::Builder::InternalChirality { + public: + /// CONSTRUCTOR + InternalChirality() : ai_(-1), dChi_(0) {} + /// CONSTRUCTOR + InternalChirality(int i, double d) : ai_(i), dChi_(d) {} + /// Set the chirality value TODO use enum? + void SetChiralVal(double d) { dChi_ = d; } + /// Offset indices by given value + void OffsetIndices(int o) { ai_ += o; } + + /// \return true if given chirality matches this one + bool ChiralityMatches(double d) const { + int thisC = 0; + if (dChi_ > 0) + thisC = 1; + else if (dChi_ < 0) + thisC = -1; + int otherC = 0; + if (d > 0) + otherC = 1; + else if (d < 0) + otherC = -1; + return (thisC == otherC); + } + + int AtI() const { return ai_; } + double ChiralVal() const { return dChi_; } + private: + int ai_; + double dChi_; }; +// ----------------------------------------------- } } #endif diff --git a/src/Structure/CMakeLists.txt b/src/Structure/CMakeLists.txt index 88701e311c..a98547d991 100644 --- a/src/Structure/CMakeLists.txt +++ b/src/Structure/CMakeLists.txt @@ -1,13 +1,20 @@ #CMake buildfile for CPPTRAJ Structure subdirectory. target_sources(cpptraj_common_obj PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/AddIons.cpp ${CMAKE_CURRENT_LIST_DIR}/Builder.cpp ${CMAKE_CURRENT_LIST_DIR}/Chirality.cpp + ${CMAKE_CURRENT_LIST_DIR}/Creator.cpp ${CMAKE_CURRENT_LIST_DIR}/Disulfide.cpp ${CMAKE_CURRENT_LIST_DIR}/FunctionalGroup.cpp ${CMAKE_CURRENT_LIST_DIR}/FxnGroupBuilder.cpp + ${CMAKE_CURRENT_LIST_DIR}/GenerateConnectivityArrays.cpp ${CMAKE_CURRENT_LIST_DIR}/HisProt.cpp ${CMAKE_CURRENT_LIST_DIR}/InternalCoords.cpp - ${CMAKE_CURRENT_LIST_DIR}/Model.cpp + ${CMAKE_CURRENT_LIST_DIR}/LeastSquaresPlane.cpp + ${CMAKE_CURRENT_LIST_DIR}/MetalCenterFinder.cpp + ${CMAKE_CURRENT_LIST_DIR}/PdbCleaner.cpp + ${CMAKE_CURRENT_LIST_DIR}/RingFinder.cpp + ${CMAKE_CURRENT_LIST_DIR}/Solvate.cpp ${CMAKE_CURRENT_LIST_DIR}/StructureEnum.cpp ${CMAKE_CURRENT_LIST_DIR}/StructureRoutines.cpp ${CMAKE_CURRENT_LIST_DIR}/SugarBuilder.cpp diff --git a/src/Structure/Chirality.cpp b/src/Structure/Chirality.cpp index f63aba5569..609ab45202 100644 --- a/src/Structure/Chirality.cpp +++ b/src/Structure/Chirality.cpp @@ -1,10 +1,12 @@ #include "Chirality.h" +#include "../Atom.h" #include "../Constants.h" #include "../CpptrajStdio.h" #include "../Frame.h" #include "../Topology.h" #include "../TorsionRoutines.h" -#include <vector> +#include "../Vec3.h" +#include <cmath> // fabs #include <algorithm> // sort /// \return Total priority (i.e. sum of atomic numbers) of atoms bonded to given atom. @@ -199,3 +201,191 @@ Cpptraj::Structure::ChiralType double tors; return DetermineChirality(tors, &priority[0], atnum, topIn, frameIn, -1); } + +// ===== LEaP Chirality routines =============================================== +/** LEaP routine for determining atom chirality. + * This is done by crossing A to B and then dotting the + * result with C. TODO use Chirality in StructureEnum? + * The chirality of the vectors is determined by the sign of + * the result, which is determined by whether or not C has + * a component in the direction AxB or in the opposite direction. + */ +double Cpptraj::Structure::Chirality::VectorAtomChirality(Vec3 const& Center, + Vec3 const& A, Vec3 const& B, Vec3 const& C) +{ + Vec3 vA = A - Center; + Vec3 vB = B - Center; + Vec3 vC = C - Center; + Vec3 vCross = vA.Cross( vB ); + double dot = vCross * vC; + if (dot > 0) + return 1.0; + else if (dot < 0) + return -1.0; + return 0.0; +} + +/** LEaP routine for determining atom chirality when positions may or + * may not be defined. Currently the criteria for chirality is + * absolute orientation of the vectors joining this atom to its neighbors. + * The neighbors are passed as vPA, vPB, vPC, vPD and bA, bB, bC, bD + * define whether or not the position is defined. + * + * This routine calculates the chirality using the defined vectors and + * then flips the sign depending on which vectors were used to calculate + * the chirality. If the ATOMs have (fKnown) set then their coordinate + * is considered to be known. + */ +double Cpptraj::Structure::Chirality::VectorAtomNormalizedChirality(Vec3 const& Center, + Vec3 const& vPA, bool bA, + Vec3 const& vPB, bool bB, + Vec3 const& vPC, bool bC, + Vec3 const& vPD, bool bD) +{ + double dChi = 0; + + if (!bA) { + // If A is not known then use B,C,D to calc chirality. + // The chirality calculated will be negative w.r.t. the + // correct chirality. + if (!bB || !bC || !bD) return dChi; + dChi = -VectorAtomChirality( Center, vPB, vPC, vPD ); + return dChi; + } + + if (!bB) { + // If B is not known then use A,C,D to calc chirality. + // The chirality calculated will be correct. + if (!bB || !bD) return dChi; + dChi = VectorAtomChirality( Center, vPA, vPC, vPD ); + return dChi; + } + + if (!bC) { + // If C is not known then use A,B,D to calc chirality. + // The chirality calculated will be negative w.r.t. the + // correct chirality. + if (!bD) return dChi; + dChi = -VectorAtomChirality( Center, vPA, vPB, vPD ); + return dChi; + } + + dChi = VectorAtomChirality( Center, vPA, vPB, vPC ); + + return dChi; +} + +/** \return index of atom less than all others but larger than aLast */ +static inline int findLeastLargerThan(Atom const& aAtom, int aLast) +{ + int aSmall = -1; + for (Atom::bond_iterator aCur = aAtom.bondbegin(); aCur != aAtom.bondend(); ++aCur) + { + if (aLast != -1) { + if (aLast >= *aCur) continue; + } + if (aSmall == -1) + aSmall = *aCur; + else if ( *aCur < aSmall ) + aSmall = *aCur; + } + return aSmall; +} + +/** Transform the orientation that has been measured with + * respect to the ordering in aaOrig[4] to the ordering + * in aaNew[4]. Return the result. + * + * The transformation is done by swapping ATOMs in aaOrig until + * the order matches that of aaNew, each time two ATOMs are swapped, + * flip the sign of the orientation. + * + * SIDE EFFECT: The order in aaOrig is changed. + */ +static inline void chiralityTransformOrientation(double dOrig, int* aaOrig, double& dPNew, const int* aaNew) +{ + dPNew = dOrig; + for (int i=0; i<4; i++ ) { + int j = i; + for ( ; j<4; j++ ) { + if ( aaOrig[j] == aaNew[i] ) + break; + } + if ( j >= 4 ) { + mprinterr("Error: Comparing atoms %i %i %i and %i to atoms %i %i %i and %i.\n", + aaOrig[0]+1, aaOrig[1]+1, aaOrig[2]+1, aaOrig[3]+1, + aaNew[0]+1, aaNew[1]+1, aaNew[2]+1, aaNew[3]+1); + mprinterr("Error: This error may be due to faulty Connection atoms.\n"); + // TODO fatal + } + // Swap elements and flip sign + if ( j != i ) { + std::swap( aaOrig[j], aaOrig[i] ); + dPNew = -dPNew; + } + } +} + +/** Sort neighbors of given atom in the same manner as LEaP. */ +void Cpptraj::Structure::Chirality::chiralityOrderNeighbors(Atom const& aAtom, + int& aPAtomA, int& aPAtomB, + int& aPAtomC, int& aPAtomD) +{ + aPAtomA = -1; + aPAtomB = -1; + aPAtomC = -1; + aPAtomD = -1; + + if (aAtom.Nbonds() < 1) return; + + aPAtomA = findLeastLargerThan(aAtom, -1); + if (aAtom.Nbonds() < 2) return; + + aPAtomB = findLeastLargerThan(aAtom, aPAtomA); + if (aAtom.Nbonds() < 3) return; + + aPAtomC = findLeastLargerThan(aAtom, aPAtomB); + if (aAtom.Nbonds() < 4) return; + + aPAtomD = findLeastLargerThan(aAtom, aPAtomC); +} + +/** Transform the chirality which has been measured with + * respect to ATOM ID ordering to an arbitrary ordering. + */ +double Cpptraj::Structure::Chirality::chiralityToOrientation(double dChirality, Atom const& aCenter, + int aAtomA, int aAtomB, int aAtomC, int aAtomD) +{ + if (fabs(dChirality) < Constants::SMALL) return 0.0; + + int aaOrig[4]; + chiralityOrderNeighbors( aCenter, aaOrig[0], aaOrig[1], aaOrig[2], aaOrig[3] ); + + int aaNew[4]; + aaNew[0] = aAtomA; + aaNew[1] = aAtomB; + aaNew[2] = aAtomC; + aaNew[3] = aAtomD; + + bool newNull = (aaNew[3] == -1); + bool origNull = (aaOrig[3] == -1); + if (newNull && !origNull) { + for (int i = 0; i < 4; i++) { + bool found = false; + for (int j=0; j<3; j++) found |= (aaOrig[i] == aaNew[j]); + if ( !found ) { + aaNew[3] = aaOrig[i]; + break; + } + } + } else if (!newNull && origNull) { + mprinterr("Error: Only three neighbors around: aCenter, but orientation has 4\n"); + } + + double dOrient; + chiralityTransformOrientation( dChirality, aaOrig, dOrient, aaNew ); + + return dOrient; +} + + diff --git a/src/Structure/Chirality.h b/src/Structure/Chirality.h index de6c1f4981..ef846dc1ba 100644 --- a/src/Structure/Chirality.h +++ b/src/Structure/Chirality.h @@ -2,8 +2,10 @@ #define INC_STRUCTURE_CHIRALITY_H #include <vector> #include "StructureEnum.h" -class Topology; +class Atom; class Frame; +class Topology; +class Vec3; namespace Cpptraj { namespace Structure { @@ -15,6 +17,22 @@ ChiralType DetermineChirality(int, Topology const&, Frame const&, int); ChiralType SetPriority(std::vector<int>&, int, Topology const&, Frame const&, int); /// \return Chirality at specified atom, set priority, no warnings ChiralType SetPriority_silent(std::vector<int>&, int, Topology const&, Frame const&); + +/// This namespace will hold the LEaP chirality routines +namespace Chirality { + +/// Calculate chirality in same manner as LEaP. All atom positions should be known. +double VectorAtomChirality(Vec3 const&, Vec3 const&, Vec3 const&, Vec3 const&); +/// Calculate chirality in same manner as LEaP. Some atom positions may not be known. +double VectorAtomNormalizedChirality(Vec3 const&, + Vec3 const&, bool, Vec3 const&, bool, + Vec3 const&, bool, Vec3 const&, bool); +/// Order atoms for chirality calculation like LEaP +void chiralityOrderNeighbors(Atom const&, int&, int&, int&, int&); +/// Transform given chirality to an orientation +double chiralityToOrientation(double, Atom const&, int, int, int, int); + +} } } #endif diff --git a/src/Structure/Creator.cpp b/src/Structure/Creator.cpp new file mode 100644 index 0000000000..7b4a42ecc2 --- /dev/null +++ b/src/Structure/Creator.cpp @@ -0,0 +1,503 @@ +#include "Creator.h" +#include "GenerateConnectivityArrays.h" // For setting atom scan direction +#include "../ArgList.h" +#include "../CpptrajStdio.h" +#include "../DataSet_Coords.h" // TODO new coords type +#include "../DataSet_NameMap.h" +#include "../DataSet_Parameters.h" +#include "../DataSet_PdbResMap.h" +#include "../DataSetList.h" + +using namespace Cpptraj::Structure; + +/** CONSTRUCTOR */ +Creator::Creator() : + mainParmSet_(0), + pdbResidueMap_(0), + debug_(0), + free_parmset_mem_(false) +{} + +/** CONSTRUCTOR */ +Creator::Creator(int d) : + mainParmSet_(0), + debug_(d), + free_parmset_mem_(false) +{} + +/** DESTRUCTOR */ +Creator::~Creator() { + if (mainParmSet_ != 0 && free_parmset_mem_) + delete mainParmSet_; +} + +const char* Creator::parm_keywords_ = "parmset <parameter setname>"; + +const char* Creator::template_keywords_ = "lib <template setname>"; + +const char* Creator::other_keywords_ = "atomscandir {f|b}"; + +/** Initialize */ +int Creator::InitCreator(ArgList& argIn, DataSetList const& DSL, int debugIn) +{ + t_total_.Start(); + debug_ = debugIn; + + // PDB residue map TODO handle multiple maps? + pdbResidueMap_ = (DataSet_PdbResMap*)DSL.FindSetOfType( "*", DataSet::PDBRESMAP ); + if (pdbResidueMap_ != 0) { + if (debug_ > 0) { + mprintf("DEBUG: PDB residue map data set: %s\n", pdbResidueMap_->legend()); + pdbResidueMap_->PrintPdbResMap(); + } + } + + // Atom scan direction + std::string atomscandir = argIn.GetStringKey("atomscandir"); + if (!atomscandir.empty()) { + if (atomscandir == "f") + Cpptraj::Structure::SetAtomScanDirection(Cpptraj::Structure::SCAN_ATOMS_FORWARDS); + else if (atomscandir == "b") + Cpptraj::Structure::SetAtomScanDirection(Cpptraj::Structure::SCAN_ATOMS_BACKWARDS); + else { + mprinterr("Error: Unrecognized keyword for 'atomscandir' : %s\n", atomscandir.c_str()); + return 1; + } + } + + t_get_templates_.Start(); + if (getTemplates(argIn, DSL)) return 1; + t_get_templates_.Stop(); + t_get_parameters_.Start(); + if (getParameterSets(argIn, DSL)) return 1; + t_get_parameters_.Stop(); + UpdateTemplateElements(); + + // Get any atom name maps + DataSetList nameMapSets = DSL.GetSetsOfType("*", DataSet::NAMEMAP); + for (DataSetList::const_iterator ds = nameMapSets.begin(); + ds != nameMapSets.end(); ++ds) + { + NameMaps_.push_back( static_cast<DataSet_NameMap*>( *ds ) ); + if (debug_ > 0) + mprintf("DEBUG: Atom name map: %s\n", NameMaps_.back()->legend()); + } + t_total_.Stop(); + return 0; +} + +/** Write timing info to stdout. */ +void Creator::TimingInfo(double total, int indent) const { + t_total_.WriteTiming(indent, "Get templates/parms:", total); + t_get_templates_.WriteTiming (indent+1, "Get templates :", t_total_.Total()); + t_get_parameters_.WriteTiming(indent+1, "Get parameters :", t_total_.Total()); +} + +/** Update template atom elements from atom types in parameter set. */ +void Creator::UpdateTemplateElements() const { + if (mainParmSet_ == 0) return; + + for (Carray::const_iterator cit = Templates_.begin(); cit != Templates_.end(); ++cit) + { + DataSet_Coords* crd = cit->second; + if (debug_ > 0) + mprintf("DEBUG: Updating atom elements in '%s'\n", crd->legend()); + // Loop over template atoms + Topology& templateTop = *(crd->TopPtr()); + for (int at = 0; at != templateTop.Natom(); at++) { + Cpptraj::Parm::ParmHolder<AtomType>::const_iterator it; + if (templateTop[at].HasType()) { + it = mainParmSet_->AT().GetParam( TypeNameHolder(templateTop[at].Type()) ); + if (it != mainParmSet_->AT().end()) { + if (debug_ > 1) + mprintf("DEBUG:\t\tSetting atom %s element to %s\n", *(templateTop[at].Name()), it->second.EltStr()); + templateTop.SetAtom(at).SetElementFromSymbol( it->second.EltStr()[0], + it->second.EltStr()[1] ); + } + } + } // END loop over template atoms + } // END loop over templates +} + +/** Try to identify residue template DataSet from the given name; + * could be data set name or residue name. + */ +DataSet_Coords* Creator::IdTemplateFromName(std::string const& nameIn) +const +{ + Carray::const_iterator it = Templates_.find( nameIn ); + if (it == Templates_.end()) { + mprintf("Warning: No template found named '%s'\n", nameIn.c_str()); + return 0; + } + return it->second; + //MetaData::SearchString search( nameIn ); + //for (Carray::const_iterator it = Templates_.begin(); it != Templates_.end(); ++it) { + // if ((*it)->Meta().Match_WildCard(search)) { + // return *it; + // } + //} + // No aspect. Convert to NameType TODO check for truncation + //NameType rname( nameIn ); + //return IdTemplateFromResname( NameType(nameIn), Cpptraj::Structure::NON_TERMINAL ); +} + +/** Try to identify residue template DataSet from the given residue + * name (from e.g. the PDB/Mol2/etc file). + */ +DataSet_Coords* Creator::IdTemplateFromResname(NameType const& rname, + TerminalType termType) +const +{ + std::vector<DataSet_Coords*> Out; + + // See if a PDB residue map exists. + std::string targetUnitName; + if (pdbResidueMap_ != 0) { + targetUnitName = pdbResidueMap_->FindUnitName(rname, termType); +// if (!targetUnitName.empty()) +// mprintf("DEBUG: Found mapped name for '%s' (%s) -> '%s'\n", *rname, Structure::terminalStr(termType), targetUnitName.c_str()); + } + if (targetUnitName.empty()) { + targetUnitName = rname.Truncated(); +// mprintf("DEBUG: Target unit name: %s\n", targetUnitName.c_str()); + } + // Most residue templates have name in aspect currently. + // Residue templates loaded separately (via a mol2) may just + // have name. +// for (Carray::const_iterator it = Templates_.begin(); it != Templates_.end(); ++it) { +// if ((*it)->Meta().Aspect().empty()) { +// if ((*it)->Meta().Name() == targetUnitName) +// Out.push_back( *it ); +// } else if ((*it)->Meta().Aspect() == targetUnitName) +// Out.push_back( *it ); +// } + Carray::const_iterator it = Templates_.find( targetUnitName ); + if (it == Templates_.end()) { + mprintf("Warning: No template found named '%s'\n", targetUnitName.c_str()); + return 0; + } + return it->second; + +/* + //DataSet_Coords* out = 0; + if (termType != Cpptraj::Structure::NON_TERMINAL) { + // Looking for a terminal residue. Need to get sets with AssociatedData_ResId + for (Carray::const_iterator it = Templates_.begin(); it != Templates_.end(); ++it) { + AssociatedData* ad = (*it)->GetAssociatedData( AssociatedData::RESID ); + if (ad != 0) { + AssociatedData_ResId const& resid = static_cast<AssociatedData_ResId const&>( *ad ); + if (rname == resid.ResName() && termType == resid.TermType()) { + //out = *it; + //break; + Out.push_back( *it ); + } + } + } + } + if (Out.empty()) { + //if (out == 0) { + // Terminal residue with alias not found or non-terminal residue. + if (debug_ > 0 && termType != Cpptraj::Structure::NON_TERMINAL) + mprintf("DEBUG: No aliased terminal residue found for '%s'\n", *rname); + // Assume Coords set aspect is what we need + for (Carray::const_iterator it = Templates_.begin(); it != Templates_.end(); ++it) { + if ( (*it)->Meta().Aspect().size() < NameType::max() ) { + if ( rname == NameType( (*it)->Meta().Aspect() ) ) { + //out = *it; + //break; + Out.push_back( *it ); + } + } + } + } + if (Out.empty()) { + //if (out == 0) { + // As a final attempt, just look for the name + for (Carray::const_iterator it = Templates_.begin(); it != Templates_.end(); ++it) { + if ( (*it)->Meta().Name().size() < NameType::max() ) { + if ( rname == NameType( (*it)->Meta().Name() ) ) { + //out = *it; + //break; + Out.push_back( *it ); + } + } + } + } +*/ +/* if (Out.empty()) return 0; + if (Out.size() > 1) { + mprintf("Warning: Multiple templates match '%s':", *rname); + for (std::vector<DataSet_Coords*>::const_iterator it = Out.begin(); it != Out.end(); ++it) + mprintf(" %s", (*it)->legend()); + mprintf("\n"); + mprintf("Warning: Using the last template loaded.\n"); + } + //return out; + return Out.back();*/ +} + +/// \return Aspect, or Name if Aspect is empty +static inline std::string getTemplateName(DataSet* ds) +{ + if (ds->Meta().Aspect().empty()) + return ds->Meta().Name(); + else + return ds->Meta().Aspect(); +} + +/** Add coords set as a template */ +void Creator::addCoordsAsTemplate(DataSet_Coords* ds) { + std::string templateName = getTemplateName( ds ); + Carray::iterator unit = Templates_.lower_bound( templateName ); + if (unit == Templates_.end() || unit->first != templateName) { + unit = Templates_.insert( unit, Cpair( templateName, ds ) ); + } else { + mprintf("Warning: Replacing template %s with %s\n", unit->second->legend(), ds->legend()); + unit->second = ds; + } +} + +/** Get templates */ +int Creator::getTemplates(ArgList& argIn, DataSetList const& DSL) { + // Clear existing templates + Templates_.clear(); + std::string lib = argIn.GetStringKey("lib"); + if (lib.empty()) { + mprintf("\tNo template(s) specified with 'lib'; using any loaded templates.\n"); + DataSetList sets = DSL.SelectGroupSets( "*", DataSet::COORDINATES ); // TODO specific set type for units? + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + { + DataSet_Coords* ds = static_cast<DataSet_Coords*>( *it ); + // Should only be a single residue FIXME need new set type + if ( ds->Top().Nres() == 1 ) { + addCoordsAsTemplate( ds ); + //Templates_.push_back( (DataSet_Coords*)(*it) ); + } + } + } else { + while (!lib.empty()) { + DataSetList sets = DSL.SelectGroupSets( lib, DataSet::COORDINATES ); // TODO specific set type for units? + if (sets.empty()) { + mprintf("Warning: No sets corresponding to '%s'\n", lib.c_str()); + } else { + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + { + // Should only be a single residue FIXME need new set type + //DataSet_Coords const& ds = static_cast<DataSet_Coords const&>( *(*it) ); + //if ( ds.Top().Nres() == 1 ) + // Templates_.push_back( (DataSet_Coords*)(*it) ); + addCoordsAsTemplate( static_cast<DataSet_Coords*>( *it ) ); + } + } + lib = argIn.GetStringKey("lib"); + } + } + if (!Templates_.empty()) { + mprintf("\t%zu residue templates found:\n", Templates_.size()); + if (debug_ > 0) { + for (Carray::const_iterator it = Templates_.begin(); it != Templates_.end(); ++it) { + mprintf("\t%s", it->second->legend()); +// AssociatedData* ad = (*it)->GetAssociatedData( AssociatedData::RESID ); +// if (ad != 0) { +// AssociatedData_ResId const& resid = static_cast<AssociatedData_ResId const&>( *ad ); +// resid.Ainfo(); +// } + mprintf("\n"); + } + } + } + + return 0; +} + +/** Get parameter sets. */ +int Creator::getParameterSets(ArgList& argIn, DataSetList const& DSL) { + // Clear any existing set + if (mainParmSet_ != 0) { + if (free_parmset_mem_) delete mainParmSet_; + } + mainParmSet_ = 0; + free_parmset_mem_ = false; + // Look for parmset args + typedef std::vector<DataSet_Parameters*> Parray; + Parray ParamSets; + std::string parmset = argIn.GetStringKey("parmset"); + if (parmset.empty()) { + mprintf("\tNo parameter set(s) specified with 'parmset'; using any loaded sets.\n"); + // See if there are any parameter sets. + DataSetList sets = DSL.GetSetsOfType( "*", DataSet::PARAMETERS ); + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + ParamSets.push_back( (DataSet_Parameters*)(*it) ); + } else { + while (!parmset.empty()) { + DataSetList sets = DSL.GetSetsOfType( parmset, DataSet::PARAMETERS ); + if (sets.empty()) { + mprintf("Warning: No parameter sets corresponding to '%s'\n", parmset.c_str()); + } else { + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + ParamSets.push_back( (DataSet_Parameters*)(*it) ); + } + parmset = argIn.GetStringKey("parmset"); + } + } + //if (ParamSets.empty()) { + // mprinterr("Error: No parameter sets.\n"); + // return CpptrajState::ERR; + //} + if (!ParamSets.empty()) { + mprintf("\tParameter sets:\n"); + for (Parray::const_iterator it = ParamSets.begin(); it != ParamSets.end(); ++it) + mprintf("\t %s\n", (*it)->legend()); + + // Combine parameters if needed + + if (ParamSets.size() == 1) + mainParmSet_ = ParamSets.front(); + else { + free_parmset_mem_ = true; + mprintf("\tCombining parameter sets.\n"); + Parray::const_iterator it = ParamSets.begin(); + mprintf("\t Initial parameter set: %s\n", (*it)->legend()); + mainParmSet_ = new DataSet_Parameters( *(*it) ); + ++it; + Cpptraj::Parm::ParameterSet::UpdateCount UC; + for (; it != ParamSets.end(); ++it) { + mprintf("\t Adding parameter set: %s\n", (*it)->legend()); + mainParmSet_->UpdateParamSet( *(*it), UC, debug_, debug_+1 ); // Make it so verbosity is at least 1 to report overwritten params + } + } + } + return 0; +} + +/** Get alias if present */ +bool Creator::GetAlias(NameType& newName, NameType const& oldName) +const +{ + for (Narray::const_iterator it = NameMaps_.begin(); it != NameMaps_.end(); ++it) + { + if ((*it)->GetName( newName, oldName )) + return true; + } + return false; +} + +/** Count missing atoms from template */ +int Creator::CountAtomsMissingFromTemplate(Topology const& topIn, + int rnum, + DataSet_Coords* resTemplate) +const +{ + int nTgtAtomsMissing = 0; + Residue const& resIn = topIn.Res(rnum); + // For each atom in topIn, find a template atom + for (int itgt = resIn.FirstAtom(); itgt != resIn.LastAtom(); itgt++) + { + NameType const& tgtName = topIn[itgt].Name(); + //mprintf("DEBUG: Search for atom %s\n", *tgtName); + bool found = false; + // Check if this atom has an alias. + NameType alias; + bool has_alias = GetAlias( alias, tgtName ); +// if (creator.GetAlias( alias, tgtName )) { +// mprintf("DEBUG: Atom %s alias is %s\n", *tgtName, *alias); +// } + // See if tgtName matches a reference (template) atom name. + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) + { + NameType const& refName = resTemplate->Top()[iref].Name(); + if (refName == tgtName) { + found = true; + break; + } + } + if (!found && has_alias) { + // See if alias matches a reference (template) atom name. + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) { + NameType const& refName = resTemplate->Top()[iref].Name(); + if (refName == alias) { + found = true; + break; + } + } // END search template for alias + } // END do alias search + if (!found) { + //mprintf("Warning: Input atom %s was not mapped to a template atom.\n", + // topIn.TruncAtomResNameOnumId( itgt ).c_str()); + nTgtAtomsMissing++; + } + } + return nTgtAtomsMissing; +} + +/** Map atoms in residue to template. */ +std::vector<int> Creator::MapAtomsToTemplate(Topology const& topIn, + int rnum, + DataSet_Coords* resTemplate, + std::vector<NameType>& sourceAtomNames, + int& nTgtAtomsMissing) +const +{ + nTgtAtomsMissing = 0; + std::vector<int> mapOut(resTemplate->Top().Natom(), -1); + mapOut.reserve( resTemplate->Top().Natom() ); + Residue const& resIn = topIn.Res(rnum); + // For each atom in topIn, find a template atom + for (int itgt = resIn.FirstAtom(); itgt != resIn.LastAtom(); itgt++) + { + NameType const& tgtName = topIn[itgt].Name(); + //mprintf("DEBUG: Search for atom %s\n", *tgtName); + bool found = false; + // Check if this atom has an alias. + NameType alias; + bool has_alias = GetAlias( alias, tgtName ); +// if (creator.GetAlias( alias, tgtName )) { +// mprintf("DEBUG: Atom %s alias is %s\n", *tgtName, *alias); +// } + // See if tgtName matches a reference (template) atom name. + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) + { + NameType const& refName = resTemplate->Top()[iref].Name(); + if (refName == tgtName) { + sourceAtomNames[itgt] = tgtName; + mapOut[iref] = itgt; + found = true; + break; + } + } + if (!found && has_alias) { + // See if alias matches a reference (template) atom name. + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) { + NameType const& refName = resTemplate->Top()[iref].Name(); + if (refName == alias) { + sourceAtomNames[itgt] = alias; + mapOut[iref] = itgt; + found = true; + break; + } + } // END search template for alias + } // END do alias search + if (!found) { + mprintf("Warning: Input atom %s was not mapped to a template atom.\n", + topIn.TruncAtomResNameOnumId( itgt ).c_str()); + nTgtAtomsMissing++; + } + } +/* + for (int iref = 0; iref != resTemplate->Top().Natom(); iref++) + { + // Find this atom name in topIn + NameType const& refName = resTemplate->Top()[iref].Name(); + int iat = -1; + for (int itgt = resIn.FirstAtom(); itgt != resIn.LastAtom(); itgt++) { + if ( refName == topIn[itgt].Name() ) { + iat = itgt; + break; + } + } + + mapOut.push_back( iat ); + }*/ + return mapOut; +} diff --git a/src/Structure/Creator.h b/src/Structure/Creator.h new file mode 100644 index 0000000000..d6ddc7a388 --- /dev/null +++ b/src/Structure/Creator.h @@ -0,0 +1,81 @@ +#ifndef INC_STRUCTURE_CREATOR_H +#define INC_STRUCTURE_CREATOR_H +#include <vector> +#include <string> +#include <map> +#include "StructureEnum.h" // TerminalType +#include "../Timer.h" +class ArgList; +class DataSet_Coords; +class DataSet_NameMap; +class DataSet_Parameters; +class DataSet_PdbResMap; +class DataSetList; +class NameType; +class Topology; +namespace Cpptraj { +namespace Structure { +/// Used to create a system from individual units +class Creator { + //typedef std::vector<DataSet_Coords*> Carray; + typedef std::pair<std::string, DataSet_Coords*> Cpair; + typedef std::map<std::string, DataSet_Coords*> Carray; + typedef std::vector<DataSet_NameMap*> Narray; + public: + /// CONSTRUCTOR + Creator(); + /// CONSTRUCTOR - debug level + Creator(int); + /// DESTRUCTOR + ~Creator(); + /// Associated parameter keywords for InitCreator + static const char* parm_keywords_; + /// Associated template keywords for InitCreator + static const char* template_keywords_; + /// Other keywords for InitCreator + static const char* other_keywords_; + /// Initialize the Creator + int InitCreator(ArgList&, DataSetList const&, int); + /// Write timing info to stdout + void TimingInfo(double, int) const; + + /// \return True if a parameter set is defined + bool HasMainParmSet() const { return (mainParmSet_ != 0); } + /// \return Main parm set + DataSet_Parameters const* MainParmSetPtr() const { return mainParmSet_; } + /// \return True if there are templates + bool HasTemplates() const { return (!Templates_.empty()); } + /// Identify residue template from name + DataSet_Coords* IdTemplateFromName(std::string const&) const; + /// Identify residue template from residue name + DataSet_Coords* IdTemplateFromResname(NameType const&, TerminalType) const; + /// Get name map if its present + bool GetAlias(NameType&, NameType const&) const; + /// Count atoms missing from template + int CountAtomsMissingFromTemplate(Topology const&, int, DataSet_Coords*) const; + /// Create an atom map of source atom names to template names + std::vector<int> MapAtomsToTemplate(Topology const&, int, DataSet_Coords*, + std::vector<NameType>&, int&) const; + private: + /// Get templates + int getTemplates(ArgList&, DataSetList const&); + /// Get parameter sets + int getParameterSets(ArgList&, DataSetList const&); + /// Update template atom elements from parameter set + void UpdateTemplateElements() const; + /// Add coords set as a template + void addCoordsAsTemplate(DataSet_Coords*); + + DataSet_Parameters* mainParmSet_; ///< Hold optional parameter set. + DataSet_PdbResMap* pdbResidueMap_; ///< Hold optional PDB residue map set. + Carray Templates_; ///< Hold unit templates. + Narray NameMaps_; ///< Hold atom name maps. + int debug_; ///< Debug level + bool free_parmset_mem_; ///< True if main parm set is combined and should be freed + Timer t_total_; + Timer t_get_templates_; + Timer t_get_parameters_; +}; +} +} +#endif diff --git a/src/Structure/Disulfide.cpp b/src/Structure/Disulfide.cpp index 4b42a3b746..b4ad2139c9 100644 --- a/src/Structure/Disulfide.cpp +++ b/src/Structure/Disulfide.cpp @@ -1,6 +1,7 @@ #include "Disulfide.h" #include "ResStatArray.h" #include "StructureRoutines.h" +#include "../ArgList.h" #include "../CpptrajStdio.h" #include "../DistRoutines.h" #include "../Frame.h" @@ -9,14 +10,54 @@ using namespace Cpptraj::Structure; +/** CONSTRUCTOR */ +Disulfide::Disulfide() : + disulfidecut_(2.5), + searchForNewDisulfides_(true), + addNewBonds_(NO_ADD_BONDS) +{} + +/** Keywords recognized by InitDisulfide */ +const char* Disulfide::keywords_ = + "\t[{nodisulfides |\n" + "\t existingdisulfides |\n" + "\t [cysmask <cysmask>] [disulfidecut <cut>] [newcysname <name>]}]\n"; + +/** Init with args */ +int Disulfide::InitDisulfide(ArgList& argIn, AddType addTypeIn, int debugIn) +{ + addNewBonds_ = addTypeIn; + disulfidecut_ = argIn.getKeyDouble("disulfidecut", 2.5); + newcysnamestr_ = argIn.GetStringKey("newcysname", "CYX"); + cysmaskstr_ = argIn.GetStringKey("cysmask", ":CYS@SG"); + searchForNewDisulfides_ = !argIn.hasKey("existingdisulfides"); + return 0; +} + +/** Print info to stdout. */ +//void Disulfide::DisulfideInfo() const { + + /** Search for disulfide bonds. */ -int Cpptraj::Structure::SearchForDisulfides(ResStatArray& resStat, +int Disulfide::SearchForDisulfides(ResStatArray& resStat, Topology& topIn, + Frame const& frameIn, + std::vector<BondType>& LeapBonds) +const +{ + return searchForDisulfides(resStat, disulfidecut_, newcysnamestr_, + cysmaskstr_, searchForNewDisulfides_, + topIn, frameIn, LeapBonds, addNewBonds_); +} + +/** Search for disulfide bonds. */ +int Disulfide::searchForDisulfides(ResStatArray& resStat, double disulfidecut, std::string const& newcysnamestr, std::string const& cysmaskstr, bool searchForNewDisulfides, Topology& topIn, Frame const& frameIn, - std::vector<BondType>& LeapBonds) + std::vector<BondType>& LeapBonds, + AddType addNewBonds) { // Disulfide search typedef std::vector<int> Iarray; @@ -34,6 +75,8 @@ int Cpptraj::Structure::SearchForDisulfides(ResStatArray& resStat, } if (topIn.SetupIntegerMask( cysmask )) return 1; cysmask.MaskInfo(); + typedef std::vector<bool> Barray; + Barray cysSulfurHasH( cysmask.Nselected(), false ); if (cysmask.None()) mprintf("Warning: No cysteine sulfur atoms selected by %s\n", cysmaskstr.c_str()); else { @@ -43,6 +86,13 @@ int Cpptraj::Structure::SearchForDisulfides(ResStatArray& resStat, if (topIn[*at].Element() != Atom::SULFUR) mprintf("Warning: Atom '%s' does not appear to be sulfur.\n", topIn.ResNameNumAtomNameNum(*at).c_str()); + // Check if the sulfur is bonded to a hydrogen. + for (Atom::bond_iterator bat = topIn[*at].bondbegin(); + bat != topIn[*at].bondend(); ++bat) + { + if ( topIn[*bat].Element() == Atom::HYDROGEN ) + cysSulfurHasH[at - cysmask.begin()] = true; + } } int nExistingDisulfides = 0; @@ -86,9 +136,11 @@ int Cpptraj::Structure::SearchForDisulfides(ResStatArray& resStat, if (searchForNewDisulfides) { // Only search with atoms that do not have an existing partner. Iarray s_idxs; // Indices into cysmask/disulfidePartner - for (int idx = 0; idx != cysmask.Nselected(); idx++) - if (disulfidePartner[idx] == -1) + for (int idx = 0; idx != cysmask.Nselected(); idx++) { + if (disulfidePartner[idx] == -1) { s_idxs.push_back( idx ); + } + } mprintf("\t%zu sulfur atoms do not have a partner.\n", s_idxs.size()); if (!s_idxs.empty()) { // In some structures, there may be 2 potential disulfide partners @@ -135,8 +187,16 @@ int Cpptraj::Structure::SearchForDisulfides(ResStatArray& resStat, mprintf("\t Potential disulfide: %s to %s (%g Ang.)\n", topIn.ResNameNumAtomNameNum(at1).c_str(), topIn.ResNameNumAtomNameNum(at2).c_str(), sqrt(it->first)); + if (cysSulfurHasH[it->second.first]) + mprintf("Warning: Sulfur %s could disulfide bond but already has a bond to hydrogen. Check for improperly added hydrogen.\n", + topIn.ResNameNumAtomNameNum(at1).c_str()); + if (cysSulfurHasH[it->second.second]) + mprintf("Warning: Sulfur %s could disulfide bond but already has a bond to hydrogen. Check for improperly added hydrogen.\n", + topIn.ResNameNumAtomNameNum(at2).c_str()); disulfidePartner[it->second.first ] = it->second.second; disulfidePartner[it->second.second] = it->second.first; + if (addNewBonds == ADD_BONDS) + topIn.AddBond( at1, at2 ); } } // END loop over sorted distances } // END s_idxs not empty() diff --git a/src/Structure/Disulfide.h b/src/Structure/Disulfide.h index c89bea4ec4..9f5df092c8 100644 --- a/src/Structure/Disulfide.h +++ b/src/Structure/Disulfide.h @@ -2,6 +2,7 @@ #define INC_STRUCTURE_DISULFIDE_H #include <string> #include <vector> +class ArgList; class BondType; class CpptrajFile; class Frame; @@ -9,10 +10,33 @@ class Topology; namespace Cpptraj { namespace Structure { class ResStatArray; -/// Search for disulfide bonds -int SearchForDisulfides(ResStatArray&, +/// Used to search for disulfide bonds and rename residues appropriately +class Disulfide { + public: + /// Constructor + Disulfide(); + /// Keywords recognized by InitDisulfide + static const char* keywords_; + /// Will indicate whether we want to add newly detected disulfide bonds to Topology + enum AddType { ADD_BONDS = 0, NO_ADD_BONDS }; + /// Init from args + int InitDisulfide(ArgList&, AddType, int); + /// Print info to stdout + //void DisulfideInfo() const; + /// Search for disulfide bonds + int SearchForDisulfides(ResStatArray&, Topology&, Frame const&, std::vector<BondType>&) const; + private: + /// Search for disulfide bonds + static int searchForDisulfides(ResStatArray&, double, std::string const&, std::string const&, bool, - Topology&, Frame const&, std::vector<BondType>&); + Topology&, Frame const&, std::vector<BondType>&, AddType); + + double disulfidecut_; ///< Distance cutoff for disulfide bonds in Ang. + std::string newcysnamestr_; ///< Name of cysteine residues involved in disulfide bonds + std::string cysmaskstr_; ///< Cysteine mask string + bool searchForNewDisulfides_; ///< If true, look for new disulfides in addition to existing bonds + AddType addNewBonds_; ///< Indicate whether newly detected disulfides should be added to Topology +}; } } #endif diff --git a/src/Structure/FunctionalGroup.cpp b/src/Structure/FunctionalGroup.cpp index 3522d2ad8f..6caae8b56b 100644 --- a/src/Structure/FunctionalGroup.cpp +++ b/src/Structure/FunctionalGroup.cpp @@ -46,7 +46,7 @@ int FunctionalGroup::SetupFromTop(Topology const& groupTop, Atom::AtomicElementT AtomMap groupmap; //groupmap.SetDebug(10); // DEBUG groupmap.Setup( groupTop, Frame() ); - groupmap.DetermineAtomIDs(); + groupmap.AssignUniqueAtomIDs(); for (int idx = 0; idx != groupmap.Natom(); idx++) AddAtom( groupmap[idx].Name(), groupmap[idx].Unique() ); diff --git a/src/Structure/FxnGroupBuilder.cpp b/src/Structure/FxnGroupBuilder.cpp index 1fe421aa12..4699890d99 100644 --- a/src/Structure/FxnGroupBuilder.cpp +++ b/src/Structure/FxnGroupBuilder.cpp @@ -285,9 +285,16 @@ const /** Check for functional groups that need to be separate residues. */ int FxnGroupBuilder::CheckForFunctionalGroups(Sugar& sugar, Topology& topIn, Frame& frameIn) -const { + resTypes_.clear(); int rnum = sugar.ResNum(topIn); + // First check if there is a terminal group on the sugar anomeric carbon + if (CheckIfSugarIsTerminal( sugar, topIn, frameIn )) { + mprinterr("Error: Checking if if sugar %s has terminal functional groups failed.\n", + topIn.TruncResNameOnumId(sugar.ResNum(topIn)).c_str()); + return 1; + } + // Check the rest of the sugar int original_at0 = topIn.Res(rnum).FirstAtom(); int original_at1 = topIn.Res(rnum).LastAtom(); std::string sugarName = topIn.TruncResNameOnumId(rnum); @@ -296,11 +303,11 @@ const bool atomsRemain = true; while (atomsRemain) { // Even if the residue is split, rnum will always refer to the original - // sugar since the split SO3 will come AFTER this residue. - // Find an oxygen that is both bound to a chain carbon and an SO3 group - // in this residue. + // sugar since the split functional group will come AFTER this residue. + // Find an oxygen that is both bound to a chain carbon and a recognized + // functional group in this residue. int o_idx = -1; - int so3_idx = -1; + int hvy_idx = -1; Iarray selected; FunctionalGroup::Type groupType = FunctionalGroup::UNRECOGNIZED_GROUP; Iarray::const_iterator cat = sugar.ChainAtoms().begin(); @@ -326,20 +333,20 @@ const // DEBUG groupType = IdFunctionalGroup(selected, rnum, *sat, o_idx, topIn); if (groupType != FunctionalGroup::UNRECOGNIZED_GROUP) { - so3_idx = *sat; + hvy_idx = *sat; break; } } // END loop over bonds to oxygen - if (so3_idx != -1) break; + if (hvy_idx != -1) break; } // END atom is oxygen } // END loop over bonds to carbon - if (so3_idx != -1) break; + if (hvy_idx != -1) break; } // END loop over chain atoms if (cat == sugar.ChainAtoms().end()) atomsRemain = false; else { // sanity check - if (so3_idx == -1 || o_idx == -1 || selected.empty()) { + if (hvy_idx == -1 || o_idx == -1 || selected.empty()) { mprinterr("Internal Error: Functional group index is negative.\n"); return 1; } @@ -385,8 +392,9 @@ const sugarName.c_str()); return 1; } - // Set the split residue as terminal + // Set the split residue as terminal, increment the residue offset topIn.SetRes(rnum+1).SetTerminal(true); + resTypes_.push_back( groupType ); // Reorder the frame to match Frame oldFrame = frameIn; frameIn.SetCoordinatesByMap( oldFrame, atomMap ); @@ -398,6 +406,18 @@ const //atomsRemain = false; // DEBUG } // END while atoms remain + // Record new residue numbers for found types. + int resOffset = (int)resTypes_.size(); + if (resOffset > 0) { + mprintf("Info: Split off %i groups from residue %i: ", resOffset, rnum+1); + for (FTarray::const_iterator rt = resTypes_.begin(); rt != resTypes_.end(); ++rt) { + mprintf(" %i:%s", rnum+resOffset+1, FunctionalGroup::typeString(*rt)); + foundGroups_.push_back( FxnResType(rnum+resOffset, *rt) ); + --resOffset; + } + mprintf("\n"); + } + return 0; } @@ -405,7 +425,6 @@ const * to be a separate ROH residue. */ int FxnGroupBuilder::CheckIfSugarIsTerminal(Sugar& sugar, Topology& topIn, Frame& frameIn) -const { int rnum = sugar.ResNum(topIn); int anomericAtom = sugar.AnomericAtom(); @@ -484,6 +503,7 @@ const } // Set the split residue as terminal topIn.SetRes(rnum+1).SetTerminal(true); + resTypes_.push_back( groupType ); // DEBUG //for (int at = original_at0; at != original_at1; at++) // mprintf("DEBUG:\t\tAtomMap[%i] = %i\n", at, atomMap[at]); @@ -494,3 +514,150 @@ const sugar.RemapIndices( atomMap, original_at0, original_at1 ); return 0; } + +/** Print out warnings related to found functional groups. */ +void FxnGroupBuilder::LeapFxnGroupWarning(Topology const& topIn) const { + for (FRarray::const_iterator it = foundGroups_.begin(); it != foundGroups_.end(); ++it) + { + int rnum = it->Ires(); + if ( it->Ftype() == FunctionalGroup::G_SO3 ) { + mprintf("Warning: Residue '%s'; after LEaP, will need to adjust the charge on the link oxygen by +0.031.\n", + topIn.TruncResNameNum(rnum).c_str()); + } else if ( it->Ftype() == FunctionalGroup::G_CH3 ) { + mprintf("Warning: Residue '%s'; after LEaP, will need to adjust the charge on the carbon bonded to link oxygen by -0.039.\n", + topIn.TruncResNameNum(rnum).c_str()); + } else if ( it->Ftype() == FunctionalGroup::G_ACX ) { + mprintf("Warning: Residue '%s'; after LEaP, will need to adjust the charge on the carbon bonded to link oxygen by +0.008.\n", + topIn.TruncResNameNum(rnum).c_str()); + } + } +} + +/// \return index of oxygen atom bonded to this atom but not in same residue +static inline int getLinkOxygenIdx(Topology const& leaptop, int at, int rnum) { + int o_idx = -1; + for (Atom::bond_iterator bat = leaptop[at].bondbegin(); + bat != leaptop[at].bondend(); ++bat) + { + if (leaptop[*bat].Element() == Atom::OXYGEN && leaptop[*bat].ResNum() != rnum) { + o_idx = *bat; + break; + } + } + return o_idx; +} + +/// \return index of carbon bonded to link oxygen not in same residue +static inline int getLinkCarbonIdx(Topology const& leaptop, int at, int rnum) +{ + int o_idx = getLinkOxygenIdx(leaptop, at, rnum); + if (o_idx == -1) return o_idx; + int c_idx = -1; + for (Atom::bond_iterator bat = leaptop[o_idx].bondbegin(); + bat != leaptop[o_idx].bondend(); ++bat) + { + if (leaptop[*bat].Element() == Atom::CARBON && leaptop[*bat].ResNum() != rnum) { + c_idx = *bat; + break; + } + } + return c_idx; +} + +/** Modify functional groups if needed. */ +int FxnGroupBuilder::ModifyFxnGroups(Topology& leaptop, bool& top_is_modified) +const +{ + // Make necessary adjustments for found residues + // NOTE: If deoxy carbons are ever handled, need to add H1 hydrogen and + // add the former -OH charge to the carbon. + for (FRarray::const_iterator it = foundGroups_.begin(); it != foundGroups_.end(); ++it) + { + int rnum = it->Ires(); + Residue const& res = leaptop.Res(rnum); + if (it->Ftype() == FunctionalGroup::G_SO3) { + int o_idx = -1; + // Need to adjust the charge on the bonded oxygen by +0.031 + for (int at = res.FirstAtom(); at != res.LastAtom(); at++) { + if (leaptop[at].Element() == Atom::SULFUR) { + o_idx = getLinkOxygenIdx( leaptop, at, rnum ); + if (o_idx != -1) break; + } + } + if (o_idx == -1) { + mprinterr("Error: Could not find oxygen link atom for '%s'\n", + leaptop.TruncResNameOnumId(rnum).c_str()); + return 1; + } + double newcharge = leaptop[o_idx].Charge() + 0.031; + mprintf("\tFxn group '%s'; changing charge on %s from %f to %f\n", *(res.Name()), + leaptop.AtomMaskName(o_idx).c_str(), leaptop[o_idx].Charge(), newcharge); + leaptop.SetAtom(o_idx).SetCharge( newcharge ); + top_is_modified = true; + } else if (it->Ftype() == FunctionalGroup::G_CH3) { // MEX + int c_idx = -1; + // Need to adjust the charge on the carbon bonded to link oxygen by -0.039 + for (int at = res.FirstAtom(); at != res.LastAtom(); at++) { + if (leaptop[at].Element() == Atom::CARBON) { + c_idx = getLinkCarbonIdx( leaptop, at, rnum ); + if (c_idx != -1) break; + } + } + if (c_idx == -1) { + mprinterr("Error: Could not find carbon bonded to oxygen link atom for '%s'\n", + leaptop.TruncResNameOnumId(rnum).c_str()); + return 1; + } + double newcharge = leaptop[c_idx].Charge() - 0.039; + mprintf("\tFxn group '%s'; changing charge on %s from %f to %f\n", *(res.Name()), + leaptop.AtomMaskName(c_idx).c_str(), leaptop[c_idx].Charge(), newcharge); + leaptop.SetAtom(c_idx).SetCharge( newcharge ); + top_is_modified = true; + } else if (it->Ftype() == FunctionalGroup::G_ACX) { + int c_idx = -1; + // Need to adjust the charge on the carbon bonded to link oxygen by +0.008 + for (int at = res.FirstAtom(); at != res.LastAtom(); at++) { + if (leaptop[at].Element() == Atom::CARBON) { + // This needs to be the acetyl carbon, ensure it is bonded to an oxygen + for (Atom::bond_iterator bat = leaptop[at].bondbegin(); + bat != leaptop[at].bondend(); ++bat) + { + if (leaptop[*bat].Element() == Atom::OXYGEN) { + c_idx = getLinkCarbonIdx( leaptop, at, rnum ); + if (c_idx != -1) break; + } + } + if (c_idx != -1) break; + } + } + if (c_idx == -1) { + mprinterr("Error: Could not find carbon bonded to oxygen link atom for '%s'\n", + leaptop.TruncResNameOnumId(rnum).c_str()); + return 1; + } + double newcharge = leaptop[c_idx].Charge() + 0.008; + mprintf("\tFxn group '%s'; changing charge on %s from %f to %f\n", *(res.Name()), + leaptop.AtomMaskName(c_idx).c_str(), leaptop[c_idx].Charge(), newcharge); + leaptop.SetAtom(c_idx).SetCharge( newcharge ); + top_is_modified = true; + } + } // END loop over residues + + // DEBUG: Print out total charge on each residue + double total_q = 0; + for (Topology::res_iterator res = leaptop.ResStart(); res != leaptop.ResEnd(); ++res) + { + double tcharge = 0; + for (int at = res->FirstAtom(); at != res->LastAtom(); ++at) { + total_q += leaptop[at].Charge(); + tcharge += leaptop[at].Charge(); + } + if (debug_ > 0) { + mprintf("DEBUG:\tResidue %10s charge= %12.5f\n", + leaptop.TruncResNameOnumId(res-leaptop.ResStart()).c_str(), tcharge); + } + } + mprintf("\tTotal charge: %16.8f\n", total_q); + + return 0; +} diff --git a/src/Structure/FxnGroupBuilder.h b/src/Structure/FxnGroupBuilder.h index 3a1fb06c45..3e9f319c4e 100644 --- a/src/Structure/FxnGroupBuilder.h +++ b/src/Structure/FxnGroupBuilder.h @@ -8,19 +8,28 @@ namespace Cpptraj { namespace Structure { class Sugar; /// Class to help prepare recognized functional groups -// TODO change function names, update help text -// TODO combine CheckForFunctionalGroups and CheckIfSugarIsTerminal +// TODO Determine if we need GetGroup() class FxnGroupBuilder { - public: - /// CONSTRUCTOR - take debug level - FxnGroupBuilder(int); - /// Determine if sugar has sulfates that need SO3 residue(s) - int CheckForFunctionalGroups(Sugar&, Topology&, Frame&) const; - /// Determine if sugar is terminal and need an ROH residue - int CheckIfSugarIsTerminal(Sugar&, Topology&, Frame&) const; + public: + class FxnResType; + /// CONSTRUCTOR - take debug level + FxnGroupBuilder(int); + /// Determine if sugar has functional groups that need to be split off into separate residues + int CheckForFunctionalGroups(Sugar&, Topology&, Frame&); + /// Make any necessary modifications to found functional groups in Topology + int ModifyFxnGroups(Topology&, bool&) const; + /// Print LEAP-related warnings for found functional groups + void LeapFxnGroupWarning(Topology const&) const; + + typedef std::vector<FxnResType>::const_iterator const_iterator; + const_iterator begin() const { return foundGroups_.begin(); } + const_iterator end() const { return foundGroups_.end(); } + unsigned int NgroupsFound() const { return foundGroups_.size(); } private: typedef std::vector<int> Iarray; typedef std::vector<FunctionalGroup> FGarray; + typedef std::vector<FxnResType> FRarray; + typedef std::vector<FunctionalGroup::Type> FTarray; /// \return identity of the group bonded to given atom FunctionalGroup::Type IdFunctionalGroup_Silent(Iarray&, int, int, int, Topology const&) const; /// \return identity of the group bonded to given atom, print to stdout @@ -31,10 +40,27 @@ class FxnGroupBuilder { /// \return Functional group if one is recognized FGarray::const_iterator GetGroup(Iarray&, Iarray const&, int, int, Topology const&) const; - FGarray functionalGroups_; ///< Recognized functional groups (FunctionalGroupType). + /// Determine if sugar anomeric carbon has a terminal functional group + int CheckIfSugarIsTerminal(Sugar&, Topology&, Frame&); + + FGarray functionalGroups_; ///< Functional groups to search for (FunctionalGroupType). + FRarray foundGroups_; ///< Groups that have been found + FTarray resTypes_; ///< Groups that have been found in current call of CheckForFunctionalGroups() int debug_; ///< Debug level }; +// ----------------------------------------------------------------------------- +/// Used to keep track of found functional groups +class FxnGroupBuilder::FxnResType { + public: + FxnResType() : ires_(-1), ftype_(FunctionalGroup::UNRECOGNIZED_GROUP) {} + FxnResType(int ir, FunctionalGroup::Type ft) : ires_(ir), ftype_(ft) {} + int Ires() const { return ires_; } + FunctionalGroup::Type Ftype() const { return ftype_; } + private: + int ires_; ///< Residue # of the functional group + FunctionalGroup::Type ftype_; ///< Type of functional group +}; } } #endif diff --git a/src/Structure/GenerateConnectivityArrays.cpp b/src/Structure/GenerateConnectivityArrays.cpp new file mode 100644 index 0000000000..328ce4ad6f --- /dev/null +++ b/src/Structure/GenerateConnectivityArrays.cpp @@ -0,0 +1,388 @@ +#include "GenerateConnectivityArrays.h" +#include "../ParameterTypes.h" +#include "../Atom.h" +#include "../Residue.h" +#include "../CpptrajStdio.h" +#include <algorithm> // std::swap + +/// The direction in which atoms in residues should be scanned +static Cpptraj::Structure::AtomScanDirectionType CpptrajStructureAtomScanDirection_ = Cpptraj::Structure::SCAN_ATOMS_BACKWARDS; + +/** Set default atom scan direction. */ +void Cpptraj::Structure::SetAtomScanDirection( AtomScanDirectionType direction ) { + if (direction == SCAN_ATOMS_BACKWARDS) + mprintf("\tSetting atom scan direction to backwards.\n"); + else + mprintf("\tSetting atom scan direction to forwards.\n"); + CpptrajStructureAtomScanDirection_ = direction; +} + +/// Set start and end atoms along with offset based on atom scan direction +static inline void set_indices(int& start, int& end, int& offset, int firstatom, int lastatom) +{ + if (CpptrajStructureAtomScanDirection_ == Cpptraj::Structure::SCAN_ATOMS_BACKWARDS) { + start = lastatom - 1; + end = firstatom - 1; + offset = -1; + } else { + start = firstatom; + end = lastatom; + offset = 1; + } +} + +/** Generate atom array in same order as LEaP. */ +std::vector<int> Cpptraj::Structure::GenerateAtomArray(std::vector<Residue> const& residues, + std::vector<Atom> const& atoms) +{ + std::vector<int> out; + for (std::vector<Residue>::const_iterator res = residues.begin(); res != residues.end(); ++res) + { + int start, end, offset; + set_indices(start, end, offset, res->FirstAtom(), res->LastAtom()); + for (int iat = start; iat != end; iat += offset) + out.push_back( iat ); + } + return out; +} + +/** From atom connectivity, generate a bond array in the same order as LEaP. */ // TODO use in GenerateBAT +BondArray Cpptraj::Structure::GenerateBondArray(std::vector<Residue> const& residues, + std::vector<Atom> const& atoms) +{ + BondArray out; + // BONDS + //int bidx = 0; // DEBUG + for (std::vector<Residue>::const_iterator res = residues.begin(); res != residues.end(); ++res) + { + int start, end, offset; + // FIXME - this is a hack to get cpptraj to spit out solvent bonds the same way leap does. Leap lib/mol2 files get forwards direction. + if (res->NameIsSolvent()) { + start = res->FirstAtom(); + end = res->LastAtom(); + offset = 1; + for (int iat = start; iat != end; iat += offset) + { + Atom const& At = atoms[iat]; + for (Atom::bond_iterator bat = At.bondbegin(); bat != At.bondend(); ++bat) + { + if (iat > *bat) { + out.push_back( BondType(iat, *bat, -1) ); + } + } + } + } else { + set_indices(start, end, offset, res->FirstAtom(), res->LastAtom()); + for (int iat = start; iat != end; iat += offset) + //for (int iat = res->LastAtom()-1; iat >= res->FirstAtom(); iat--) + { + Atom const& At = atoms[iat]; + for (Atom::bond_iterator bat = At.bondbegin(); bat != At.bondend(); ++bat) + { + if (iat < *bat) { + //mprintf("DEBUG: BOND i= %i %i - %i (%i %i)\n", bidx++, iat+1, *bat+1, iat*3, *bat*3); + out.push_back( BondType(iat, *bat, -1) ); + } + //else + // mprintf("DEBUG: X i= %i %i - %i (%i %i)\n", bidx++, iat+1, *bat+1, iat*3, *bat*3); + } + } + } + } + return out; +} + +/** Generate a spanning tree around two atoms in the same manner as LEaP. + * If at1 is -1, get the full tree. Otherwise, just get the tree in + * the direction of at0. + */ +std::vector<int> Cpptraj::Structure::GenerateSpanningTree(int at0, int at1, int targetDepth, + std::vector<Atom> const& atoms) +{ + std::vector<int> out; + + std::vector<bool> atomSeen(atoms.size(), false); + + std::vector<int> queue; + std::vector<int> depth; + + out.push_back( at0 ); + queue.push_back( at0 ); + depth.push_back( 0 ); + atomSeen[at0] = true; + unsigned int idx = 0; + while (idx < queue.size()) { + Atom const& currentAt = atoms[queue[idx]]; + for (Atom::bond_iterator bat = currentAt.bondbegin(); bat != currentAt.bondend(); ++bat) + { + if (*bat != at1 && !atomSeen[*bat]) { + out.push_back( *bat ); + atomSeen[*bat] = true; + if (targetDepth < 1) { + if (atoms[*bat].Nbonds() > 1) { + queue.push_back( *bat ); + depth.push_back( depth[idx]+1 ); + } + } else { + if (depth[idx] + 1 < targetDepth && atoms[*bat].Nbonds() > 1) { + queue.push_back( *bat ); + depth.push_back( depth[idx]+1 ); + } + } + } + } + idx++; + } + + return out; +} + +/** From atom connectiviy, generate an angle array in the same order as LEaP. */ // TODO use in GenerateBAT +AngleArray Cpptraj::Structure::GenerateAngleArray(std::vector<Residue> const& residues, + std::vector<Atom> const& atoms) +{ + AngleArray out; + // ANGLES TODO combine above +// int aidx = 0; + for (std::vector<Residue>::const_iterator res = residues.begin(); res != residues.end(); ++res) + { + int start, end, offset; + set_indices(start, end, offset, res->FirstAtom(), res->LastAtom()); + for (int iat1 = start; iat1 != end; iat1 += offset) + //for (int iat1 = res->LastAtom()-1; iat1 >= res->FirstAtom(); iat1--) + { + Atom const& At1 = atoms[iat1]; + for (int bidx1 = 0; bidx1 < At1.Nbonds(); bidx1++) { + int iat2 = At1.Bond(bidx1); + Atom const& At2 = atoms[iat2]; + for (int bidx2 = 0; bidx2 < At2.Nbonds(); bidx2++) { + int iat3 = At2.Bond(bidx2); + if (iat1 < iat3) { + //mprintf("DEBUG: ANGLE i= %i %i - %i - %i (%i %i %i)\n", aidx++, iat1+1, iat2+1, iat3+1, iat1*3, iat2*3, iat3*3); + out.push_back( AngleType(iat1, iat2, iat3, -1) ); + } + } + } + } + } + return out; +} + +/** From atom connectivity, generate a dihedral array in the same order as LEaP. */ // TODO use in GenerateBAT +DihedralArray Cpptraj::Structure::GenerateDihedralArray(std::vector<Residue> const& residues, + std::vector<Atom> const& atoms) +{ + DihedralArray out; + // TORSIONS TODO combine above +// int didx = 0; + for (std::vector<Residue>::const_iterator res = residues.begin(); res != residues.end(); ++res) + { + int start, end, offset; + set_indices(start, end, offset, res->FirstAtom(), res->LastAtom()); + for (int iat1 = start; iat1 != end; iat1 += offset) + //for (int iat1 = res->LastAtom()-1; iat1 >= res->FirstAtom(); iat1--) + { + Atom const& At1 = atoms[iat1]; + for (int bidx1 = 0; bidx1 < At1.Nbonds(); bidx1++) { + int iat2 = At1.Bond(bidx1); + Atom const& At2 = atoms[iat2]; + for (int bidx2 = 0; bidx2 < At2.Nbonds(); bidx2++) { + int iat3 = At2.Bond(bidx2); + if (iat3 != iat1) { + Atom const& At3 = atoms[iat3]; + for (int bidx3 = 0; bidx3 < At3.Nbonds(); bidx3++) { + int iat4 = At3.Bond(bidx3); + if (iat4 != iat2 && iat1 < iat4) { + //mprintf("DEBUG: DIHEDRAL i= %i %i - %i - %i - %i (%i %i %i %i)\n", didx++, iat1+1, iat2+1, iat3+1, iat4+1, iat1*3, iat2*3, iat3*3, iat4*3); + out.push_back( DihedralType( iat1, iat2, iat3, iat4, -1 ) ); + } + } + } + } + } + } + } + return out; +} + +/** Try to order an improper the same way that LEaP does. + * LEaP has wild card names first, followed by atom types + * in alphabetical order. + */ +static void order_improper_atoms(int* indices, std::vector<Atom> const& atoms) +{ + if (atoms[indices[0]].Type() > atoms[indices[1]].Type()) std::swap( indices[0], indices[1] ); + if (atoms[indices[1]].Type() > atoms[indices[2]].Type()) std::swap( indices[1], indices[2] ); + if (atoms[indices[0]].Type() > atoms[indices[1]].Type()) std::swap( indices[0], indices[1] ); + if (atoms[indices[1]].Type() > atoms[indices[2]].Type()) std::swap( indices[1], indices[2] ); +} + +// DEBUG +static inline void printName(Atom const& AJ) { + mprintf(" :%i@%s (%s)", AJ.ResNum()+1, AJ.Name().Truncated().c_str(), AJ.Type().Truncated().c_str()); +} + +/** From atom connectivity, generate an improper array in the same order as LEaP. + * No attempt is made to determine if this is an sp2 center; that is done + * during parameterization. + */ +DihedralArray Cpptraj::Structure::GenerateImproperArray(std::vector<Residue> const& residues, + std::vector<Atom> const& atoms) +{ + DihedralArray out; +// int iidx = 0; + for (std::vector<Residue>::const_iterator res = residues.begin(); res != residues.end(); ++res) + { + int start, end, offset; + set_indices(start, end, offset, res->FirstAtom(), res->LastAtom()); + for (int iat3 = start; iat3 != end; iat3 += offset) + //for (int iat3 = res->LastAtom()-1; iat3 >= res->FirstAtom(); iat3--) + { + Atom const& AJ = atoms[iat3]; + if (AJ.Nbonds() >= 3) { + for (int bidx0 = 0; bidx0 < AJ.Nbonds(); bidx0++) { + for (int bidx1 = bidx0 + 1; bidx1 < AJ.Nbonds(); bidx1++) { + for (int bidx2 = bidx1 + 1; bidx2 < AJ.Nbonds(); bidx2++) { + int iat1 = AJ.BondIdxArray()[bidx0]; + int iat2 = AJ.BondIdxArray()[bidx1]; + int iat4 = AJ.BondIdxArray()[bidx2]; +// mprintf("DEBUG: IMPROPER i= %i %i - %i - %i - %i (%i %i %i %i)\n", iidx++, iat1+1, iat2+1, iat3+1, iat4+1, iat1*3, iat2*3, iat3*3, iat4*3); + int indices[3]; + indices[0] = iat1; + indices[1] = iat2; + indices[2] = iat4; + order_improper_atoms(indices, atoms); + out.push_back( DihedralType(indices[0], indices[1], iat3, indices[2], DihedralType::BOTH) ); + // DEBUG + //mprintf("DEBUG:\tOriginal order :"); + //printName(atoms[iat1]); + //printName(atoms[iat2]); + //printName(atoms[iat3]); + //printName(atoms[iat4]); + //mprintf("\nDEBUG:\tLeap order :"); + //printName(atoms[indices[0]]); + //printName(atoms[indices[1]]); + //printName(atoms[iat3]); + //printName(atoms[indices[2]]); + //mprintf("\n"); + } + } + } // END outer loop over bond indices + } + } // END loop over residue atoms + } // END loop over residues + return out; +} + +/// Given 2 bonded atoms at1 and at2, get all angles at1-at2-X +static inline void enumerateAngles(AngleArray& angles, int at1, int at2, std::vector<Atom> const& atoms) +{ + Atom const& A2 = atoms[at2]; + if (A2.Nbonds() > 1) { + for (Atom::bond_iterator bat = A2.bondbegin(); bat != A2.bondend(); ++bat) + { + if (*bat != at1 && at1 < *bat) { + mprintf("DEBUG: ANGLE i= %zu %i - %i - %i (%i %i %i)\n", angles.size(), at1+1, at2+1, *bat+1, at1*3, at2*3, *bat*3); + angles.push_back( AngleType(at1, at2, *bat, -1) ); + } + } + } +} + +/// Given 2 bonded atoms at1 and at2, get all torsions X-at1-at2-Y +static inline void enumerateDihedrals(DihedralArray& dihedrals, int at1, int at2, std::vector<Atom> const& atoms) +{ + Atom const& A1 = atoms[at1]; + Atom const& A2 = atoms[at2]; + if (A1.Nbonds() > 1 && A2.Nbonds() > 1) { + for (Atom::bond_iterator bat1 = A1.bondbegin(); bat1 != A1.bondend(); ++bat1) + { + if (*bat1 != at2) { + for (Atom::bond_iterator bat2 = A2.bondbegin(); bat2 != A2.bondend(); ++bat2) + { + if (*bat2 != at1) { + // LEaP convention appears to be first atom less than last atom + if (*bat1 < *bat2) + dihedrals.push_back( DihedralType(*bat1, at1, at2, *bat2, -1) ); + else + dihedrals.push_back( DihedralType(*bat2, at2, at1, *bat1, -1) ); + } + } + } + } + } +} + +/** Generate angle and torsion arrays from given bond array. */ +void Cpptraj::Structure::GenerateAngleAndTorsionArraysFromBonds(AngleArray& angles, + DihedralArray& dihedrals, + std::vector<Atom> const& atoms, + BondArray const& allBonds) +{ + for (BondArray::const_iterator it = allBonds.begin(); it != allBonds.end(); ++it) + { + // Forward direction. A1-A2-X + enumerateAngles( angles, it->A1(), it->A2(), atoms ); + // Reverse direction. A2-A1-X + enumerateAngles( angles, it->A2(), it->A1(), atoms ); + // Dihedrals + enumerateDihedrals( dihedrals, it->A1(), it->A2(), atoms ); + } +} + +/** Merge two separate bond arrays. */ +void Cpptraj::Structure::MergeBondArrays(BondArray& bondsOut, + BondArray const& bonds, + BondArray const& bondsh, + std::vector<Atom> const& atoms) +{ + bondsOut.clear(); + bondsOut.reserve( bonds.size() + bondsh.size() ); + + BondArray::const_iterator bx = bonds.begin(); + BondArray::const_iterator by = bondsh.begin(); + + while (bx != bonds.end() && by != bondsh.end()) { + // Which one goes next? + Atom const& bx0 = atoms[bx->A1()]; + Atom const& by0 = atoms[by->A1()]; + if (bx0.ResNum() == by0.ResNum()) { + if (bx->A1() == by->A1()) { + // Same residue, same A1. Lower A2 goes first. + if (by->A2() < bx->A2()) { + bondsOut.push_back( *by ); + ++by; + } else { + bondsOut.push_back( *bx ); + ++bx; + } + } else { + // Same residue. Higher A1 goes first. FIXME fix for scan direction forwards + if (by->A1() > bx->A1()) { + bondsOut.push_back( *by ); + ++by; + } else { + bondsOut.push_back( *bx ); + ++bx; + } + } + } else { + // Lower residue goes first. + if (by0.ResNum() < bx0.ResNum()) { + bondsOut.push_back( *by ); + ++by; + } else { + bondsOut.push_back( *bx ); + ++bx; + } + } + } // END loop over both + if (bx != bonds.end()) { + for (; bx != bonds.end(); ++bx) + bondsOut.push_back( *bx ); + } + if (by != bondsh.end()) { + for (; by != bondsh.end(); ++by) + bondsOut.push_back( *by ); + } +} diff --git a/src/Structure/GenerateConnectivityArrays.h b/src/Structure/GenerateConnectivityArrays.h new file mode 100644 index 0000000000..ce131873ec --- /dev/null +++ b/src/Structure/GenerateConnectivityArrays.h @@ -0,0 +1,34 @@ +#ifndef INC_STRUCTURE_GENERATECONNECTIVITYARRAYS_H +#define INC_STRUCTURE_GENERATECONNECTIVITYARRAYS_H +#include <vector> +class BondArray; +class AngleArray; +class DihedralArray; +class Residue; +class Atom; +namespace Cpptraj { +namespace Structure { +/// Specify direction in which atoms in residues should be scanned +enum AtomScanDirectionType { SCAN_ATOMS_BACKWARDS = 0, SCAN_ATOMS_FORWARDS }; +/// Set default atom scan direction +void SetAtomScanDirection(AtomScanDirectionType); +/// Generate array of atom indices in same order as leap +std::vector<int> GenerateAtomArray(std::vector<Residue> const&, std::vector<Atom> const&); +/// Generate bond array in same order as leap +BondArray GenerateBondArray(std::vector<Residue> const&, std::vector<Atom> const&); +/// Generate a spanning tree +std::vector<int> GenerateSpanningTree(int, int, int, std::vector<Atom> const&); +/// Generate angle array in same order as leap +AngleArray GenerateAngleArray(std::vector<Residue> const&, std::vector<Atom> const&); +/// Generate proper dihedral array in same order as leap +DihedralArray GenerateDihedralArray(std::vector<Residue> const&, std::vector<Atom> const&); +/// Generate improper dihedral array in same order as leap +DihedralArray GenerateImproperArray(std::vector<Residue> const&, std::vector<Atom> const&); +/// Generate angle and torsion arrays from bonds +void GenerateAngleAndTorsionArraysFromBonds(AngleArray&, DihedralArray&, std::vector<Atom> const&, BondArray const&); +/// Merge two bond arrays +void MergeBondArrays(BondArray&, BondArray const&, BondArray const&, std::vector<Atom> const&); + +} +} +#endif diff --git a/src/Structure/HisProt.cpp b/src/Structure/HisProt.cpp index ff19256dd7..68d2e4d726 100644 --- a/src/Structure/HisProt.cpp +++ b/src/Structure/HisProt.cpp @@ -1,11 +1,65 @@ #include "HisProt.h" #include "StructureRoutines.h" +#include "../ArgList.h" #include "../CpptrajStdio.h" #include "../NameType.h" #include "../Topology.h" using namespace Cpptraj::Structure; +/** CONSTRUCTOR */ +HisProt::HisProt() {} + +/// Warn if name length greater than NameType max +static inline void warn_length(std::string const& nameIn) { + if (nameIn.size() >= NameType::max()) + mprintf("Warning: Name '%s' is too large and will be truncated.\n", nameIn.c_str()); +} + +const char* HisProt::keywords_ = + "\t[{nohisdetect |\n" + "\t [nd1 <nd1>] [ne2 <ne2] [hisname <his>] [hiename <hie>]\n" + "\t [hidname <hid>] [hipname <hip]} [defaulthis <default>]]\n"; + +/** Initialize from args. Get atom/residue names. */ +int HisProt::InitHisProt(ArgList& argIn, int debugIn) { + nd1name_ = argIn.GetStringKey("nd1", "ND1"); + ne2name_ = argIn.GetStringKey("ne2", "NE2"); + hisname_ = argIn.GetStringKey("hisname", "HIS"); + hiename_ = argIn.GetStringKey("hiename", "HIE"); + hidname_ = argIn.GetStringKey("hidname", "HID"); + hipname_ = argIn.GetStringKey("hipname", "HIP"); + default_ = argIn.GetStringKey("defaulthis"); + warn_length(nd1name_); + warn_length(ne2name_); + warn_length(hisname_); + warn_length(hiename_); + warn_length(hidname_); + warn_length(hipname_); + if (!default_.empty()) + warn_length(default_); + return 0; +} + +/** Print info to stdout. */ +void HisProt::HisProtInfo() const { + mprintf("\tHistidine protonation detection:\n"); + mprintf("\t\tND1 atom name : %s\n", nd1name_.c_str()); + mprintf("\t\tNE2 atom name : %s\n", ne2name_.c_str()); + mprintf("\t\tHistidine original residue name : %s\n", hisname_.c_str()); + mprintf("\t\tEpsilon-protonated residue name : %s\n", hiename_.c_str()); + mprintf("\t\tDelta-protonated residue name : %s\n", hidname_.c_str()); + mprintf("\t\tDoubly-protonated residue name : %s\n", hipname_.c_str()); + if (!default_.empty()) + mprintf("\t\tDefault residue name : %s\n", default_.c_str()); +} + +/** Determine histidine protonation from hydrogens. */ +int HisProt::DetermineHisProt(Topology& topIn) const { + return determineHisProt(topIn, nd1name_, ne2name_, hisname_, + hiename_, hiename_, hipname_, default_); +} + /** Try to determine histidine protonation from existing hydrogens. * Change residue names as appropriate. * \param topIn Input topology. @@ -15,14 +69,16 @@ using namespace Cpptraj::Structure; * \param HieName Name for epsilon-protonated His. * \param HidName Name for delta-protonated His. * \param HipName Name for doubly-protonated His. + * \param defaultName optional residue name for default if nothing else detected */ -int Cpptraj::Structure::DetermineHisProt( Topology& topIn, +int HisProt::determineHisProt( Topology& topIn, NameType const& ND1, NameType const& NE2, NameType const& HisName, NameType const& HieName, NameType const& HidName, - NameType const& HipName ) + NameType const& HipName, + std::string const& defaultName ) { typedef std::vector<int> Iarray; mprintf("\tAttempting to determine histidine form from any existing H atoms.\n"); @@ -98,12 +154,13 @@ int Cpptraj::Structure::DetermineHisProt( Topology& topIn, mprintf("\t\t%s => %s\n", topIn.TruncResNameOnumId(*rnum).c_str(), *HieName); ChangeResName( topIn.SetRes(*rnum), HieName ); nchanged++; + } else if (!defaultName.empty()) { + // Default + NameType defName(defaultName); + mprintf("\tUsing default name '%s' for %s\n", *defName, topIn.TruncResNameOnumId(*rnum).c_str()); + ChangeResName( topIn.SetRes(*rnum), defName ); + nchanged++; } - //else { - // // Default to epsilon - // mprintf("\tUsing default name '%s' for %s\n", *HieName, topIn.TruncResNameOnumId(*rnum).c_str()); - // HisResNames.push_back( HieName ); - //} } if (nchanged == 0) mprintf("\tNo histidine names were changed.\n"); diff --git a/src/Structure/HisProt.h b/src/Structure/HisProt.h index f9e9539454..30a609c84e 100644 --- a/src/Structure/HisProt.h +++ b/src/Structure/HisProt.h @@ -1,13 +1,46 @@ #ifndef INC_STRUCTURE_HISPROT_H #define INC_STRUCTURE_HISPROT_H +#include <string> +class ArgList; class Topology; class NameType; namespace Cpptraj { namespace Structure { -/// Try to determine protonation state of histidines from any hydrogens present. -int DetermineHisProt(Topology&, - NameType const&, NameType const&, - NameType const&, NameType const&, NameType const&, NameType const&); +/// For determining Histidine protonation +class HisProt { + public: + /// CONSTRUCTOR + HisProt(); + /// \return keywords recognized by init + static const char* keywords_; + /// Initialize + int InitHisProt(ArgList&, int); + /// Print info to stdout + void HisProtInfo() const; + /// \return Epsilon-protonated name + std::string const& EpsilonProtHisName() const { return hiename_; } + /// \return Delta-protonated name + std::string const& DeltaProtHisName() const { return hidname_; } + /// \return Doubly-protonated name + std::string const& DoubleProtHisName() const { return hipname_; } + /// Determine histidine protonation from hydrogen atom placement + int DetermineHisProt(Topology&) const; + private: + /// Try to determine protonation state of histidines from any hydrogens present. + static int determineHisProt(Topology&, + NameType const&, NameType const&, + NameType const&, NameType const&, + NameType const&, NameType const&, + std::string const&); + + std::string nd1name_; ///< Delta nitrogen atom name + std::string ne2name_; ///< Epsilon nitrogen atom name + std::string hisname_; ///< Histidine original residue name + std::string hiename_; ///< Epsilon-protonated residue name + std::string hidname_; ///< Delta-protonated residue name + std::string hipname_; ///< Doubly-protonated residue name + std::string default_; ///< Default name if nothing detected +}; } } #endif diff --git a/src/Structure/InternalCoords.cpp b/src/Structure/InternalCoords.cpp index 3161f023c7..08b65e39fe 100644 --- a/src/Structure/InternalCoords.cpp +++ b/src/Structure/InternalCoords.cpp @@ -67,3 +67,19 @@ void InternalCoords::printIC(Topology const& top) const { top.AtomMaskName(AtL()).c_str(), val_[0], val_[1], val_[2]); } + +/** Remap internal coords indices. */ +/*void InternalCoords::RemapIndices(std::vector<int> const& map) { + if (ati_ != NO_ATOM) ati_ = map[AtI()]; + if (idx_[0] != NO_ATOM) idx_[0] = map[AtJ()]; + if (idx_[1] != NO_ATOM) idx_[1] = map[AtK()]; + if (idx_[2] != NO_ATOM) idx_[2] = map[AtL()]; +}*/ + +/** Offset internal coords indices. */ +void InternalCoords::OffsetIndices(int offset) { + if (ati_ != NO_ATOM) ati_ += offset; + if (idx_[0] != NO_ATOM) idx_[0] += offset; + if (idx_[1] != NO_ATOM) idx_[1] += offset; + if (idx_[2] != NO_ATOM) idx_[2] += offset; +} diff --git a/src/Structure/InternalCoords.h b/src/Structure/InternalCoords.h index 3be154e9d8..7dc8f1c3a0 100644 --- a/src/Structure/InternalCoords.h +++ b/src/Structure/InternalCoords.h @@ -1,5 +1,6 @@ #ifndef INC_STRUCTURE_INTERNALCOORDS_H #define INC_STRUCTURE_INTERNALCOORDS_H +#include <vector> class Topology; namespace Cpptraj { namespace Structure { @@ -23,7 +24,41 @@ class InternalCoords { InternalCoords(InternalCoords const&); /// ASSIGNMENT InternalCoords& operator=(InternalCoords const&); - + /// Less than another IC using AI < AL < AK < AJ + bool operator<(InternalCoords const& rhs) const { + if (ati_ == rhs.ati_) { + if (idx_[2] == rhs.idx_[2]) { // Atom L + if (idx_[1] == rhs.idx_[1]) { // Atom K + if (idx_[0] == rhs.idx_[0]) { // Atom J + return false; // Equal + } else { + return (idx_[0] < rhs.idx_[0]); + } + } else { + return (idx_[1] < rhs.idx_[1]); + } + } else { + return (idx_[2] < rhs.idx_[2]); + } + } else { + return (ati_ < rhs.ati_); + } + } + /// \return True if all indices are equal + bool operator==(InternalCoords const& rhs) const { + return ( ati_ == rhs.ati_ && + idx_[0] == rhs.idx_[0] && + idx_[1] == rhs.idx_[1] && + idx_[2] == rhs.idx_[2] ); + } + /// \return True if any index is not equal + bool operator!=(InternalCoords const& rhs) const { + return ( ati_ != rhs.ati_ || + idx_[0] != rhs.idx_[0] || + idx_[1] != rhs.idx_[1] || + idx_[2] != rhs.idx_[2] ); + } + /// Indictaes no atom set static const int NO_ATOM; double Dist() const { return val_[0]; } @@ -38,6 +73,16 @@ class InternalCoords { static unsigned int sizeInBytes() { return (4*sizeof(int)) + (3*sizeof(double)); } void printIC(Topology const&) const; + /// Remap internal indices according to given map + //void RemapIndices(std::vector<int> const&); + /// Offset internal indices by given offset + void OffsetIndices(int); + /// Set the value of Phi + void SetPhi(double p) { val_[2] = p; } + /// Set the value of theta + void SetTheta(double t) { val_[1] = t; } + /// Set the value of distance + void SetDist(double d) { val_[0] = d; } private: int ati_; ///< Atom I index int idx_[3]; ///< Atom indices for distance, angle, torsion diff --git a/src/Structure/LeastSquaresPlane.cpp b/src/Structure/LeastSquaresPlane.cpp new file mode 100644 index 0000000000..c631a7a4ef --- /dev/null +++ b/src/Structure/LeastSquaresPlane.cpp @@ -0,0 +1,139 @@ +#include "LeastSquaresPlane.h" +#include "../AtomMask.h" +#include "../Constants.h" +#include "../Frame.h" +#include <algorithm> // sort +#include <cmath> // sqrt, acos, cos, pow + +using namespace Cpptraj::Structure; + +/** CONSTRUCTOR */ +LeastSquaresPlane::LeastSquaresPlane() +{} + +/** Solves a cubic equation: ax^3 + bx^2 + cx + d = 0 using "Cardan's formula" + * (see: Bronstein, S.131f) + */ +double LeastSquaresPlane::solve_cubic_eq(double a, double b, double c, double d) { + const double one3 = 1.0 / 3.0; + const double one27 = 1.0 / 27.0; + double droot = 0; + + double r, s, t; + double p, q, rho, phi; + double D, u, v; + std::vector<double> dtmp(3); + + /* Coeff. for normal form x^3 + rx^2 + sx + t = 0 */ + r = b / a; + s = c / a; + t = d / a; + + /* Coeff. for red. eq. y^3 + py + q = 0 with y = x + r/3 bzw. (x = y - r/3) */ + p = s - r * r * one3; + q = 2.0 * r * r * r * one27 - r * s * one3 + t; + + /* Dummy variables */ + rho = sqrt(-p * p * p * one27); + phi = acos(-q / (2.0 * rho)); + + /* Discriminante(?) */ + D = pow((p * one3),3) + q * q * 0.25; + + if(D > 0){ /* x real -> one real solution */ + u = pow(-q * 0.5 + sqrt(D), one3); + v = -p / u * one3; + droot = (u + v) - r * one3; + } else { // D <= 0 + /* three real solutions (d < 0) | one real solution + one real double solution or + one real triple solution (d = 0) */ + dtmp[0] = 2.0 * pow(rho, one3) * cos(phi * one3) - r * one3; + dtmp[1] = 2.0 * pow(rho, one3) * cos((phi + Constants::TWOPI ) * one3) - r * one3; + dtmp[2] = 2.0 * pow(rho, one3) * cos((phi + Constants::FOURPI) * one3) - r * one3; + + sort(dtmp.begin(), dtmp.end()); + + //qsort((void *) dtmp, (size_t) 3, sizeof(double), cmpdouble); + droot = dtmp[0]; + } + return droot; +} + +/** Calcs (least-squares best) plane through a series of points + * relative to their center of geom. (the latter has to be done outside this routine), + * returns (normalized) coeff. for plane eq. ax + by + cz = 0 + * following: Crystal Structure Analysis for Chem. and Biol., + * Glusker, Lewis, Rossi, S. 460ff + */ +Vec3 LeastSquaresPlane::leastSquaresPlane(unsigned int n, const double* vcorr) { + double Xout, Yout, Zout; + if (n == 9) { // Special case, only 3 coords + double x1 = vcorr[3] - vcorr[0]; + double y1 = vcorr[4] - vcorr[1]; + double z1 = vcorr[5] - vcorr[2]; + double x2 = vcorr[6] - vcorr[3]; + double y2 = vcorr[7] - vcorr[4]; + double z2 = vcorr[8] - vcorr[5]; + + Xout = y1 * z2 - z1 * y2; + Yout = z1 * x2 - x1 * z2; + Zout = x1 * y2 - y1 * x2; + } else { // General case + // Calc Var. + double dSumXX = 0.0; + double dSumYY = 0.0; + double dSumZZ = 0.0; + double dSumXY = 0.0; + double dSumXZ = 0.0; + double dSumYZ = 0.0; + + for (unsigned int i = 0; i < n; i+=3) { + dSumXX += vcorr[i ] * vcorr[i ]; + dSumYY += vcorr[i+1] * vcorr[i+1]; + dSumZZ += vcorr[i+2] * vcorr[i+2]; + + dSumXY += vcorr[i ] * vcorr[i+1]; + dSumXZ += vcorr[i ] * vcorr[i+2]; + dSumYZ += vcorr[i+1] * vcorr[i+2]; + } + + // Calc coeff. for -l^3 + o * l^2 + p * l + q = 0 + double o = dSumXX + dSumYY + dSumZZ; + double p = pow(dSumXY,2) + pow(dSumXZ,2) + pow(dSumYZ,2) - + (dSumXX * dSumYY + dSumXX * dSumZZ + dSumYY * dSumZZ); + double q = dSumXX * dSumYY * dSumZZ + 2.0 * dSumXY * dSumXZ * dSumYZ - + (dSumXX * dSumYZ * dSumYZ + dSumYY * dSumXZ * dSumXZ + dSumZZ * dSumXY * dSumXY); + + // Solve cubic eq. + double root = solve_cubic_eq(-1.0, o, p, q); + + // Calc determinents + Xout = (dSumYY - root) * dSumXZ - dSumXY * dSumYZ; + Yout = (dSumXX - root) * dSumYZ - dSumXY * dSumXZ; + Zout = dSumXY * dSumXY - (dSumYY - root) * (dSumXX - root); + } + // Normalize + double dnorm = 1.0 / sqrt((Xout * Xout) + (Yout * Yout) + (Zout * Zout)); + return Vec3(Xout * dnorm, Yout * dnorm, Zout * dnorm); +} + +/** Calculate vector normal to plane passing through selected atoms. */ +void LeastSquaresPlane::CalcLeastSquaresPlane(Frame const& currentFrame, + AtomMask const& maskIn, bool useMassIn) +{ + if (useMassIn) + cxyz_ = currentFrame.VCenterOfMass(maskIn); + else + cxyz_ = currentFrame.VGeometricCenter(maskIn); + vcorr_.clear(); + vcorr_.reserve( maskIn.Nselected() * 3 ); + for (AtomMask::const_iterator atom = maskIn.begin(); atom != maskIn.end(); ++atom) + { + Vec3 XYZ = currentFrame.XYZ( *atom ); + XYZ -= cxyz_; + vcorr_.push_back( XYZ[0] ); + vcorr_.push_back( XYZ[1] ); + vcorr_.push_back( XYZ[2] ); + } + nxyz_ = leastSquaresPlane(vcorr_.size(), &vcorr_[0]); +} diff --git a/src/Structure/LeastSquaresPlane.h b/src/Structure/LeastSquaresPlane.h new file mode 100644 index 0000000000..e132de3613 --- /dev/null +++ b/src/Structure/LeastSquaresPlane.h @@ -0,0 +1,30 @@ +#ifndef INC_STRUCTURE_LEASTSQUARESPLANE_H +#define INC_STRUCTURE_LEASTSQUARESPLANE_H +#include <vector> +#include "../Vec3.h" +class Frame; +class AtomMask; +class Vec3; +namespace Cpptraj { +namespace Structure { +/// Used to calculate the vector normal to a plane passing through a series of points +class LeastSquaresPlane { + public: + LeastSquaresPlane(); + /// Calculate vector normal to plane passing through atoms in given mask + void CalcLeastSquaresPlane(Frame const&, AtomMask const&, bool); + /// \return Vector normal to plane + Vec3 const& Nxyz() const { return nxyz_; } + /// \return Origin of vector normal to plane (plane center) + Vec3 const& Cxyz() const { return cxyz_; } + private: + static double solve_cubic_eq(double,double,double,double); + static Vec3 leastSquaresPlane(unsigned int, const double*); + + std::vector<double> vcorr_; ///< Will hold selected coordinates after centering. + Vec3 nxyz_; ///< Hold vector normal to the plane + Vec3 cxyz_; ///< Hold center (origin of vector normal to the plane) +}; +} +} +#endif diff --git a/src/Structure/Makefile b/src/Structure/Makefile index 5e676cc6a6..402e793eec 100644 --- a/src/Structure/Makefile +++ b/src/Structure/Makefile @@ -8,6 +8,11 @@ DEL_FILE = /bin/rm -f # Objects OBJECTS=$(STRUCTURE_SOURCES:.cpp=.o) +# General rules +.cpp.o: + $(VB)echo CXX $< + $(VB)$(CXX) $(DIRECTIVES) $(CPPTRAJ_INC) $(CXXFLAGS) -c -o $@ $< + # Default target: objects all: $(OBJECTS) diff --git a/src/Structure/MetalCenterFinder.cpp b/src/Structure/MetalCenterFinder.cpp new file mode 100644 index 0000000000..a4c9f0e3c5 --- /dev/null +++ b/src/Structure/MetalCenterFinder.cpp @@ -0,0 +1,128 @@ +#include "MetalCenterFinder.h" +#include "../ArgList.h" +#include "../CpptrajStdio.h" +#include "../DistRoutines.h" +#include "../Topology.h" +#include <cmath> + +using namespace Cpptraj::Structure; + +/** CONSTRUCTOR */ +MetalCenterFinder::MetalCenterFinder() : + dcut2_(9.0), + debug_(0) +{} + +/** Init with args */ +int MetalCenterFinder::InitMetalCenters(ArgList& argIn, int debugIn) +{ + debug_ = debugIn; + std::string metalMaskStr = argIn.GetStringKey("metalmask"); + if (metalMaskStr.empty()) { + metalMaskStr.assign("@ZN,MG"); + mprintf("\tUsing default metal mask string.\n"); + } + if (metalMask_.SetMaskString( metalMaskStr )) { + mprinterr("Error: Invalid mask '%s' given for 'metalmask'\n", metalMaskStr.c_str()); + return 1; + } + + std::string coordAtomMaskStr = argIn.GetStringKey("coordatommask"); + if (coordAtomMaskStr.empty()) { + coordAtomMaskStr.assign("@/O,S"); + mprintf("\tUsing default coordinating atom mask string.\n"); + } + if (coordAtomMask_.SetMaskString( coordAtomMaskStr )) { + mprinterr("Error: Invalid mask '%s' given for 'coordatommask'\n", coordAtomMaskStr.c_str()); + return 1; + } + + double distcut = argIn.getKeyDouble("mcdist", 3.0); + if (distcut <= 0) { + mprinterr("Error: Invalid distance cutoff: %g\n", distcut); + return 1; + } + dcut2_ = distcut*distcut; + + return 0; +} + +/** Print info to stdout */ +void MetalCenterFinder::PrintMetalCenterInfo() const { + mprintf("\tMetal center mask: %s\n", metalMask_.MaskString()); + mprintf("\tCoordinating atom mask: %s\n", coordAtomMask_.MaskString()); + mprintf("\tDistance cutoff: %g Ang.\n", sqrt(dcut2_)); +} + +/** Find metal centers. */ +int MetalCenterFinder::FindMetalCenters(Topology const& topIn, Frame const& frameIn) +{ + metalCenters_.clear(); + + if (topIn.SetupIntegerMask( metalMask_, frameIn )) { + mprinterr("Error: Could not set up metal center mask '%s'\n", metalMask_.MaskString()); + return 1; + } + if (metalMask_.None()) { + mprintf("Warning: Nothing selected by metal center mask '%s'\n", metalMask_.MaskString()); + return 0; + } + metalMask_.MaskInfo(); + + if (topIn.SetupIntegerMask( coordAtomMask_, frameIn )) { + mprinterr("Error: Could not set up metal center mask '%s'\n", coordAtomMask_.MaskString()); + return 1; + } + if (coordAtomMask_.None()) { + mprintf("Warning: Nothing selected by coordinating atom mask '%s'\n", coordAtomMask_.MaskString()); + return 0; + } + coordAtomMask_.MaskInfo(); + + // OUTER loop over coordinating atoms + for (int idx0 = 0; idx0 != coordAtomMask_.Nselected(); idx0++) + { + int coordAt = coordAtomMask_[idx0]; + const double* xyz0 = frameIn.XYZ( coordAt ); + // INNER loop over metal center atoms + for (int idx1 = 0; idx1 != metalMask_.Nselected(); idx1++) + { + int metalAt = metalMask_[idx1]; + const double* xyz1 = frameIn.XYZ( metalAt ); + + double dist2 = DIST2_NoImage( xyz0, xyz1 ); + if (dist2 < dcut2_) { + mprintf("\tPotential metal center at %s, coordinating atom %s, dist %f Ang\n", + topIn.AtomMaskName(metalAt).c_str(), + topIn.AtomMaskName(coordAt).c_str(), + sqrt(dist2)); + MCmap::iterator it = metalCenters_.lower_bound( metalAt ); + if (it == metalCenters_.end() || it->first != metalAt) { + if (debug_ > 0) + mprintf("DEBUG: New metal center.\n"); + it = metalCenters_.insert(it, MCpair(metalAt, Iarray(1, coordAt))); + } else { + if (debug_ > 0) + mprintf("DEBUG: Existing metal center.\n"); + it->second.push_back( coordAt ); + } + } + } // END inner loop over metal center atoms + } // END outer loop over coordinating atoms + + return 0; +} + +/** Print metal centers to stdout */ +void MetalCenterFinder::PrintMetalCenters(Topology const& topIn) const { + mprintf("\t%zu metal centers.\n", metalCenters_.size()); + for (MCmap::const_iterator it = metalCenters_.begin(); it != metalCenters_.end(); ++it) + { + mprintf("\t %s (%zu coordinating atoms):", + topIn.TruncAtomResNameOnumId(it->first).c_str(), + it->second.size()); + for (Iarray::const_iterator jt = it->second.begin(); jt != it->second.end(); ++jt) + mprintf(" %s", topIn.TruncAtomResNameOnumId(*jt).c_str()); + mprintf("\n"); + } +} diff --git a/src/Structure/MetalCenterFinder.h b/src/Structure/MetalCenterFinder.h new file mode 100644 index 0000000000..94ab85863d --- /dev/null +++ b/src/Structure/MetalCenterFinder.h @@ -0,0 +1,38 @@ +#ifndef INC_STRUCTURE_METALCENTERFINDER_H +#define INC_STRUCTURE_METALCENTERFINDER_H +#include "../AtomMask.h" +#include <vector> +#include <map> +class ArgList; +class Frame; +class Topology; +namespace Cpptraj { +namespace Structure { +/// Used for finding and preparing metal centers +class MetalCenterFinder { + public: + /// CONSTRUCTOR + MetalCenterFinder(); + /// Init with arguments + int InitMetalCenters(ArgList&, int); + /// Find metal centers + int FindMetalCenters(Topology const&, Frame const&); + /// Print Info to stdout + void PrintMetalCenterInfo() const; + /// Print found metal centers to stdout + void PrintMetalCenters(Topology const&) const; + private: + typedef std::vector<int> Iarray; + typedef std::pair<int, Iarray> MCpair; + /// Map metal center index to coordinating atom indices + typedef std::map<int, Iarray> MCmap; + + MCmap metalCenters_; ///< Hold metal centers and coordinating atoms + AtomMask metalMask_; ///< Mask containing potential metal centers + AtomMask coordAtomMask_; ///< Mask containing potential coordinating atoms + double dcut2_; ///< Distance cutoff in Ang^2 + int debug_; +}; +} +} +#endif diff --git a/src/Structure/Model.cpp b/src/Structure/Model.cpp deleted file mode 100644 index affbf21f06..0000000000 --- a/src/Structure/Model.cpp +++ /dev/null @@ -1,258 +0,0 @@ -#include "Model.h" -#include "BuildAtom.h" -#include "../CpptrajStdio.h" -#include "../Topology.h" -#include "../TorsionRoutines.h" -#include "../Constants.h" - -/** Attempt to assign a reasonable value for theta internal coordinate for - * atom i given that atoms j and k have known positions. - */ -int Cpptraj::Structure::Model::AssignTheta(double& theta, int ai, int aj, int ak, Topology const& topIn, Frame const& frameIn, std::vector<bool> const& atomPositionKnown, int debug) -{ - // Figure out hybridization and chirality of atom j. - if (debug > 0) - mprintf("DEBUG: AssignTheta for atom j : %s\n", topIn.AtomMaskName(aj).c_str()); - - enum HybridizationType { SP = 0, SP2, SP3, UNKNOWN_HYBRIDIZATION }; - - Atom const& AJ = topIn[aj]; - if (debug > 0) { - mprintf("DEBUG:\t\tI %s Nbonds: %i\n", topIn[ai].ElementName(), topIn[ai].Nbonds()); - mprintf("DEBUG:\t\tJ %s Nbonds: %i\n", AJ.ElementName(), AJ.Nbonds()); - mprintf("DEBUG:\t\tK %s Nbonds: %i\n", topIn[ak].ElementName(), topIn[ak].Nbonds()); - } - // Sanity check - if (AJ.Nbonds() < 2) { - mprinterr("Internal Error: AssignTheta() called for atom J %s with fewer than 2 bonds.\n", topIn.AtomMaskName(aj).c_str()); - return 1; - } - - HybridizationType hybrid = UNKNOWN_HYBRIDIZATION; - // Handle specific elements - switch (AJ.Element()) { - case Atom::CARBON : - switch (AJ.Nbonds()) { - case 2 : hybrid = SP; break; - case 3 : hybrid = SP2; break; - case 4 : hybrid = SP3; break; - } - break; - case Atom::NITROGEN : - switch (AJ.Nbonds()) { - case 2 : hybrid = SP2; break; - case 3 : - // Check for potential SP2. If only 1 of the bonded atoms is - // hydrogen, assume SP2. TODO actually check for aromaticity. - int n_hydrogens = 0; - for (Atom::bond_iterator bat = AJ.bondbegin(); bat != AJ.bondend(); ++bat) - if (topIn[*bat].Element() == Atom::HYDROGEN) - n_hydrogens++; - if (n_hydrogens == 1) - hybrid = SP2; - else - hybrid = SP3; - break; - } - break; - case Atom::OXYGEN : - switch (AJ.Nbonds()) { - case 2 : hybrid = SP3; break; - } - break; - case Atom::SULFUR : - switch (AJ.Nbonds()) { - case 2 : hybrid = SP3; break; - } - break; - default: hybrid = UNKNOWN_HYBRIDIZATION; break; - } - // Fill in what values we can for known atoms -/* std::vector<double> knownTheta( AJ.Nbonds() ); - int knownIdx = -1; - for (int idx = 0; idx < AJ.Nbonds(); idx++) { - int atnum = AJ.Bond(idx); - if (atnum != ak && atomPositionKnown[atnum]) { - knownTheta[idx] = CalcAngle(frameIn.XYZ(atnum), - frameIn.XYZ(aj), - frameIn.XYZ(ak)); - mprintf("DEBUG:\t\tKnown theta for %s = %g\n", topIn.AtomMaskName(atnum).c_str(), knownTheta[idx]*Constants::RADDEG); - if (knownIdx == -1) knownIdx = idx; // FIXME handle more than 1 known - } - } - if (knownIdx == -1) {*/ - //mprintf("DEBUG:\t\tNo known theta.\n"); - if (hybrid == UNKNOWN_HYBRIDIZATION) { - // Assign a theta based on number of bonds - switch (AJ.Nbonds()) { - case 4 : hybrid = SP3; break; - case 3 : hybrid = SP2; break; - case 2 : hybrid = SP; break; - default : mprinterr("Internal Error: AssignTheta(): Unhandled # bonds for %s (%i)\n", topIn.AtomMaskName(aj).c_str(), AJ.Nbonds()); return 1; - } - } - // Assign a theta based on hybridization - switch (hybrid) { - case SP3 : theta = 109.5 * Constants::DEGRAD; break; - case SP2 : theta = 120.0 * Constants::DEGRAD; break; - case SP : theta = 180.0 * Constants::DEGRAD; break; - default : mprinterr("Internal Error: AssignTheta(): Unhandled hybridization for %s (%i)\n", topIn.AtomMaskName(aj).c_str(), AJ.Nbonds()); return 1; - }/* - } else { - theta = knownTheta[knownIdx]; // TODO just use above guess via hybrid? - }*/ - - return 0; -} - -/// Recursive function to return depth from an atom along bonds -static int atom_depth(int& depth, - int at, Topology const& topIn, std::vector<bool>& visited, int maxdepth) -{ - if (depth == maxdepth) return 0; - depth++; - visited[at] = true; - int depthFromHere = 1; - for (Atom::bond_iterator bat = topIn[at].bondbegin(); bat != topIn[at].bondend(); ++bat) - { - if (!visited[*bat]) - depthFromHere += atom_depth( depth, *bat, topIn, visited, maxdepth ); - } - return depthFromHere; -} - -static inline double wrap360(double phi) { - if (phi > Constants::PI) - return phi - Constants::TWOPI; - else if (phi < -Constants::PI) - return phi + Constants::TWOPI; - else - return phi; -} - -/** Attempt to assign a reasonable value for phi internal coordinate for atom i - * given that atoms j k and l have known positions. - * j - k - * / \ - * i l - */ -int Cpptraj::Structure::Model::AssignPhi(double& phi, int ai, int aj, int ak, int al, - Topology const& topIn, Frame const& frameIn, - std::vector<bool> const& atomPositionKnown, - BuildAtom const& AtomJ, int debug) -{ - // Figure out hybridization and chirality of atom j. - if (debug > 0) - mprintf("DEBUG: AssignPhi for atom j : %s\n", topIn.AtomMaskName(aj).c_str()); - - Atom const& AJ = topIn[aj]; - if (debug > 0) mprintf("DEBUG:\t\tNbonds: %i\n", AJ.Nbonds()); - // If atom J only has 2 bonds, ai-aj-ak-al is the only possibility. - if (AJ.Nbonds() < 3) { - if (debug > 0) - mprintf("DEBUG:\t\tFewer than 3 bonds. Setting phi to -180.\n"); - phi = -180 * Constants::DEGRAD; - return 0; - } - - // TODO check that atom i actually ends up on the list? - std::vector<int> const& priority = AtomJ.Priority(); - if (debug > 0) { - mprintf("DEBUG: Original chirality around J %s is %s\n", topIn.AtomMaskName(aj).c_str(), chiralStr(AtomJ.Chirality())); - mprintf("DEBUG:\t\tPriority around J %s(%i):", - topIn.AtomMaskName(aj).c_str(), (int)atomPositionKnown[aj]); - for (int idx = 0; idx < AJ.Nbonds(); idx++) - mprintf(" %s(%i)", topIn.AtomMaskName(priority[idx]).c_str(), (int)atomPositionKnown[priority[idx]]); - mprintf("\n"); - } - - // Fill in what values we can for known atoms - std::vector<double> knownPhi( AJ.Nbonds() ); - int knownIdx = -1; - for (int idx = 0; idx < AJ.Nbonds(); idx++) { - int atnum = priority[idx]; - if (atnum != ak && atomPositionKnown[atnum] && - atomPositionKnown[aj] && - atomPositionKnown[ak] && - atomPositionKnown[al]) - { - knownPhi[idx] = Torsion(frameIn.XYZ(atnum), - frameIn.XYZ(aj), - frameIn.XYZ(ak), - frameIn.XYZ(al)); - if (debug > 0) - mprintf("DEBUG:\t\tKnown phi for %s = %g\n", topIn.AtomMaskName(atnum).c_str(), knownPhi[idx]*Constants::RADDEG); - if (knownIdx == -1) knownIdx = idx; // FIXME handle more than 1 known - } - } - - // If we have to assign an initial phi, make trans the longer branch - if (knownIdx == -1) { - std::vector<bool> visited = atomPositionKnown; - // TODO: Ensure bonded atoms are not yet visited? - visited[aj] = true; - visited[ak] = true; - std::vector<int> depth( AJ.Nbonds() ); - for (int idx = 0; idx < AJ.Nbonds(); idx++) { - int atnum = priority[idx]; - if (atnum != ak) { - int currentDepth = 0; - depth[idx] = atom_depth(currentDepth, atnum, topIn, visited, 10); - if (debug > 0) - mprintf("DEBUG:\t\tAJ %s depth from %s is %i\n", - topIn.AtomMaskName(aj).c_str(), topIn.AtomMaskName(atnum).c_str(), depth[idx]); - if (knownIdx == -1 && depth[idx] < 3) { - knownIdx = idx; - knownPhi[idx] = 0; - } - } - } - } - - // The interval will be 360 / (number of bonds - 1) - double interval = Constants::TWOPI / (AJ.Nbonds() - 1); - - double startPhi; - if (knownIdx == -1) { - startPhi = -180*Constants::DEGRAD; - if (debug > 0) mprintf("DEBUG:\t\tNo known phi. Setting to %g.\n", startPhi*Constants::RADDEG); - knownIdx = 0; - } else - startPhi = knownPhi[knownIdx]; - - if (AtomJ.Chirality() == IS_R) { - startPhi = -startPhi; - interval = -interval; - } - if (debug > 0) { - mprintf("DEBUG:\t\tStart phi is %g degrees\n", startPhi*Constants::RADDEG); - mprintf("DEBUG:\t\tInterval is %g degrees\n", interval * Constants::RADDEG); - } - - // Forward direction - double currentPhi = startPhi; - for (int idx = knownIdx; idx < AJ.Nbonds(); idx++) { - int atnum = priority[idx]; - if (atnum != ak) { - if (atnum == ai) phi = currentPhi; - if (debug > 0) - mprintf("DEBUG:\t\t\t%s phi= %g\n", topIn.AtomMaskName(atnum).c_str(), currentPhi*Constants::RADDEG); - currentPhi += interval; - currentPhi = wrap360(currentPhi); - } - } - // Reverse direction - currentPhi = startPhi - interval; - for (int idx = knownIdx - 1; idx > -1; idx--) { - int atnum = priority[idx]; - if (atnum != ak) { - if (atnum == ai) phi = currentPhi; - if (debug > 0) - mprintf("DEBUG:\t\t\t%s phi= %g\n", topIn.AtomMaskName(atnum).c_str(), currentPhi*Constants::RADDEG); - currentPhi -= interval; - currentPhi = wrap360(currentPhi); - } - } - - return 0; -} diff --git a/src/Structure/Model.h b/src/Structure/Model.h deleted file mode 100644 index 240e64875e..0000000000 --- a/src/Structure/Model.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef INC_STRUCTURE_MODEL_H -#define INC_STRUCTURE_MODEL_H -#include <vector> -#include "StructureEnum.h" -class Topology; -class Frame; -namespace Cpptraj { -namespace Structure { -class BuildAtom; -/// Routines to generate model parameters -namespace Model { -/// Given atoms J K and L, attempt to assign a reasonable value for phi for atom I -int AssignPhi(double&, int, int, int, int, Topology const&, Frame const&, std::vector<bool> const&, BuildAtom const&, int); -/// Given atoms J and K, attempt to assign a reasonable value for theta for atom I -int AssignTheta(double&, int, int, int, Topology const&, Frame const&, std::vector<bool> const&, int); - -} // END namespace Model -} // END namespace Structure -} // END namespace Cpptraj -#endif diff --git a/src/Structure/PdbCleaner.cpp b/src/Structure/PdbCleaner.cpp new file mode 100644 index 0000000000..6554e89275 --- /dev/null +++ b/src/Structure/PdbCleaner.cpp @@ -0,0 +1,250 @@ +#include "PdbCleaner.h" +#include "../ArgList.h" +#include "../CpptrajStdio.h" +#include "../Topology.h" +#include <map> + +using namespace Cpptraj::Structure; + +/** CONSTRUCTOR */ +PdbCleaner::PdbCleaner() : + debug_(0), + remove_water_(false), + remove_h_(false) +{} + +/** Print help text. */ +void PdbCleaner::Help() { + mprintf("\t[nowat [watermask <watermask>] [noh]\n" + "\t[keepaltloc {<alt loc ID>|highestocc}]\n" + "\t[stripmask <stripmask>]\n"); +} + +/** Initialize */ +int PdbCleaner::InitPdbCleaner(ArgList& argIn, std::string const& solventResNameIn, + Iarray const& pdbResToRemoveIn) +{ + resnumsToRemove_ = pdbResToRemoveIn; + remove_water_ = argIn.hasKey("nowat"); + if (solventResNameIn.empty()) + waterMask_ = ":HOH"; + else + waterMask_ = argIn.GetStringKey("watermask", ":" + solventResNameIn); + remove_h_ = argIn.hasKey("noh"); + altLocArg_ = argIn.GetStringKey("keepaltloc"); + if (!altLocArg_.empty()) { + if (altLocArg_ != "highestocc" && + altLocArg_.size() > 1) + { + mprinterr("Error: Invalid keyword for 'keepaltloc' '%s'; must be 'highestocc' or 1 character.\n", + altLocArg_.c_str()); + return 1; + } + } + stripMask_ = argIn.GetStringKey("stripmask"); + + return 0; +} + +/** Setup */ +int PdbCleaner::SetupPdbCleaner(Topology const& topIn) { + // If keeping highest alt loc, check that alt locs and occupancies are present. + if (altLocArg_ == "highestocc") { + if (topIn.AtomAltLoc().empty()) { + mprintf("Warning: 'highestocc' specified but no atom alternate location info.\n"); + altLocArg_.clear(); + } else if (topIn.Occupancy().empty()) { + mprintf("Warning: 'highestocc' specified but no atom occupancy info.\n"); + altLocArg_.clear(); + } + } + // Check if alternate atom location IDs are present + if (!topIn.AtomAltLoc().empty()) { + // For LEaP, must have only 1 atom alternate location + char firstAltLoc = ' '; + for (std::vector<char>::const_iterator altLocId = topIn.AtomAltLoc().begin(); + altLocId != topIn.AtomAltLoc().end(); + ++altLocId) + { + if (firstAltLoc == ' ') { + // Find first non-blank alternate location ID + if (*altLocId != ' ') + firstAltLoc = *altLocId; + } else if (*altLocId != ' ' && *altLocId != firstAltLoc) { + // Choose a default if necessary + if (altLocArg_.empty()) { + altLocArg_.assign(1, firstAltLoc); + mprintf("Warning: '%s' has atoms with multiple alternate location IDs.\n" + "Warning: Keeping only '%s'.\n" + "Warning: To choose a specific location to keep use the 'keepaltloc <char>'\n" + "Warning: keyword.\n", topIn.c_str(), altLocArg_.c_str()); + } + break; + } + } + } + return 0; +} + +/** Print info to stdout. */ +void PdbCleaner::PdbCleanerInfo() const { + if (remove_water_) + mprintf("\tRemoving solvent. Solvent mask= '%s'\n", waterMask_.c_str()); + if (remove_h_) + mprintf("\tRemoving hydrogens.\n"); + if (!altLocArg_.empty()) + mprintf("\tIf present, keeping only alternate atom locations denoted by '%s'\n", altLocArg_.c_str()); + if (!stripMask_.empty()) + mprintf("\tRemoving atoms in mask '%s'\n", stripMask_.c_str()); +} + +/** Modify coords according to user wishes. */ +int PdbCleaner::ModifyCoords( Topology& topIn, Frame& frameIn ) +const +{ + // Create a mask denoting which atoms will be kept. + std::vector<bool> atomsToKeep( topIn.Natom(), true ); + // Previously-determined array of residues to remove + for (Iarray::const_iterator rnum = resnumsToRemove_.begin(); + rnum != resnumsToRemove_.end(); ++rnum) + { + Residue const& res = topIn.Res( *rnum ); + mprintf("\tRemoving %s\n", topIn.TruncResNameOnumId( *rnum ).c_str()); + for (int at = res.FirstAtom(); at != res.LastAtom(); at++) + atomsToKeep[at] = false; + } + // User-specified strip mask + if (!stripMask_.empty()) { + AtomMask mask; + if (mask.SetMaskString( stripMask_ )) { + mprinterr("Error: Invalid mask string '%s'\n", stripMask_.c_str()); + return 1; + } + if (topIn.SetupIntegerMask( mask )) return 1; + mask.MaskInfo(); + if (!mask.None()) { + for (AtomMask::const_iterator atm = mask.begin(); atm != mask.end(); ++atm) + atomsToKeep[*atm] = false; + } + } + if (remove_water_) { + // Do not use cpptraj definition of solvent in case we have e.g. bound HOH + AtomMask mask; + if (mask.SetMaskString( waterMask_ )) { + mprinterr("Error: Invalid solvent mask string '%s'\n", waterMask_.c_str()); + return 1; + } + if (topIn.SetupIntegerMask( mask )) return 1; + mask.MaskInfo(); + if (!mask.None()) { + for (AtomMask::const_iterator atm = mask.begin(); atm != mask.end(); ++atm) + atomsToKeep[*atm] = false; + } + + } + // Identify alternate atom location groups. + if (!altLocArg_.empty()) { + if (topIn.AtomAltLoc().empty()) { + mprintf("\tNo alternate atom locations.\n"); + } else { + // Map atom name to atom indices + typedef std::map<NameType, std::vector<int>> AlocMapType; + AlocMapType alocMap; + for (int rnum = 0; rnum != topIn.Nres(); rnum++) { + alocMap.clear(); + for (int at = topIn.Res(rnum).FirstAtom(); at != topIn.Res(rnum).LastAtom(); at++) { + if (topIn.AtomAltLoc()[at] != ' ') { + AlocMapType::iterator it = alocMap.find( topIn[at].Name() ); + if (it == alocMap.end()) { + alocMap.insert( std::pair<NameType, std::vector<int>>( topIn[at].Name(), + std::vector<int>(1, at) )); + } else { + it->second.push_back( at ); + } + } + } // END loop over atoms in residue + if (!alocMap.empty()) { + if (debug_ > 0) + mprintf("DEBUG: Alternate loc. for %s\n", topIn.TruncResNameOnumId(rnum).c_str()); + // Loop over atoms with alternate locations + for (AlocMapType::const_iterator it = alocMap.begin(); it != alocMap.end(); ++it) { + if (debug_ > 0) { + // Print all alternate atoms + mprintf("\t'%s'", *(it->first)); + for (std::vector<int>::const_iterator at = it->second.begin(); + at != it->second.end(); ++at) + mprintf(" %s[%c]", *(topIn[*at].Name()), topIn.AtomAltLoc()[*at]); + mprintf("\n"); + } + // For each, choose which location to keep. + if (altLocArg_.size() == 1) { + // Keep only specified character + char altLocChar = altLocArg_[0]; + for (std::vector<int>::const_iterator at = it->second.begin(); + at != it->second.end(); ++at) + if (topIn.AtomAltLoc()[*at] != altLocChar) + atomsToKeep[*at] = false; + } else { + // Keep highest occupancy + if (topIn.Occupancy().empty()) { + mprintf("\tNo occupancy.\n"); // TODO error? + } else { + int highestOccAt = -1; + float highestOcc = 0; + for (std::vector<int>::const_iterator at = it->second.begin(); + at != it->second.end(); ++at) + { + if (highestOccAt == -1) { + highestOccAt = *at; + highestOcc = topIn.Occupancy()[*at]; + } else if (topIn.Occupancy()[*at] > highestOcc) { + highestOccAt = *at; + highestOcc = topIn.Occupancy()[*at]; + } + } + // Set everything beside highest occ to false + for (std::vector<int>::const_iterator at = it->second.begin(); + at != it->second.end(); ++at) + if (*at != highestOccAt) + atomsToKeep[*at] = false; + } + } + } // END loop over atoms with alternate locations + } + } // END loop over residue numbers + } + } + // Denote hydrogens if removing + if (remove_h_) { + for (int at = 0; at != topIn.Natom(); at++) + if (topIn[at].Element() == Atom::HYDROGEN) + atomsToKeep[at] = false; + } + + // Set up mask of only kept atoms. + AtomMask keptAtoms; + keptAtoms.SetNatoms( topIn.Natom() ); + for (int idx = 0; idx != topIn.Natom(); idx++) { + if (atomsToKeep[idx]) + keptAtoms.AddSelectedAtom(idx); + } + if (keptAtoms.Nselected() == topIn.Natom()) + // Keeping everything, no modifications + return 0; + // Modify top/frame + Topology* newTop = topIn.modifyStateByMask( keptAtoms ); + if (newTop == 0) { + mprinterr("Error: Could not create new topology.\n"); + return 1; + } + newTop->Brief("After removing atoms:"); + Frame newFrame; + newFrame.SetupFrameV(newTop->Atoms(), frameIn.CoordsInfo()); + newFrame.SetFrame(frameIn, keptAtoms); + + topIn = *newTop; + frameIn = newFrame; + delete newTop; + + return 0; +} diff --git a/src/Structure/PdbCleaner.h b/src/Structure/PdbCleaner.h new file mode 100644 index 0000000000..87ae1d763f --- /dev/null +++ b/src/Structure/PdbCleaner.h @@ -0,0 +1,39 @@ +#ifndef INC_STRUCTURE_PDBCLEANER_H +#define INC_STRUCTURE_PDBCLEANER_H +#include <vector> +#include <string> +class ArgList; +class Frame; +class Topology; +namespace Cpptraj { +namespace Structure { +/// Used to clean up structures read from a PDB +class PdbCleaner { + typedef std::vector<int> Iarray; + public: + PdbCleaner(); + void SetDebug(int d) { debug_ = d; } + /// Help text + static void Help(); + /// Initialize + int InitPdbCleaner(ArgList&, std::string const&, Iarray const&); + /// Setup + int SetupPdbCleaner(Topology const&); + /// Info + void PdbCleanerInfo() const; + /// Modify top/frame + int ModifyCoords(Topology&, Frame&) const; + /// \return True if option to remove water is set + bool RemoveWater() const { return remove_water_; } + private: + int debug_; + bool remove_water_; ///< If true, remove any water. + bool remove_h_; ///< If true, remove hydrogen atoms. + std::string waterMask_; ///< Mask expression for selecting water. + std::string altLocArg_; ///< Only keep atoms with this alternate location identifier. + std::string stripMask_; ///< General mask for removing atoms. + Iarray resnumsToRemove_; ///< Other residue numbers to remove. +}; +} +} +#endif diff --git a/src/Structure/ResStatArray.h b/src/Structure/ResStatArray.h index 04d443718f..02a522e924 100644 --- a/src/Structure/ResStatArray.h +++ b/src/Structure/ResStatArray.h @@ -27,6 +27,12 @@ class ResStatArray { iterator begin() { return resStat_.begin(); } /// \return iterator to end iterator end() { return resStat_.end(); } + + typedef std::vector<Type>::const_iterator const_iterator; + /// \return const iterator to beginning + const_iterator begin() const { return resStat_.begin(); } + /// \return iterator to end + const_iterator end() const { return resStat_.end(); } private: typedef std::vector<Type> Rarray; Rarray resStat_; ///< Status of each residue in a topology diff --git a/src/Structure/RingFinder.cpp b/src/Structure/RingFinder.cpp new file mode 100644 index 0000000000..e2575b3127 --- /dev/null +++ b/src/Structure/RingFinder.cpp @@ -0,0 +1,232 @@ +#include "RingFinder.h" +#include "../AtomMask.h" +#include "../CharMask.h" +#include "../CpptrajStdio.h" +#include "../Topology.h" +#include <map> + +using namespace Cpptraj::Structure; + +/** CONSTRUCTOR */ +RingFinder::RingFinder() : + debug_(0) +{} + +/** Set debug level */ +void RingFinder::SetDebug(int debugIn) { + debug_ = debugIn; +} + +/** Init ring finder. */ +int RingFinder::InitRingFinder(ArgList& argIn) { + return 0; +} + +static void visitAtom( int at, int previousAt, int res, Topology const& topIn, std::vector<bool>& Visited, std::vector<int>& startAtoms ) +{ + if (Visited[at]) { + //mprintf("Already visited %s %zu\n", topIn.AtomMaskName(at).c_str(), startAtoms.size()); + startAtoms.push_back( at ); + } else { + Visited[at] = true; + Atom const& currentAt = topIn[at]; + for (Atom::bond_iterator bat = currentAt.bondbegin(); bat != currentAt.bondend(); ++bat) + { + if (*bat != previousAt && topIn[*bat].Nbonds() > 1 && topIn[*bat].ResNum() == res) { + visitAtom( *bat, at, res, topIn, Visited, startAtoms ); + } + } + } +} + +static std::vector<int> findCycle(int at, int tgtAt, int previousAt, int res, Topology const& topIn, + std::vector<bool> Visited, std::vector<int> ringAtoms) +{ + if (at == tgtAt) { + //mprintf("CYCLE FOUND (%zu).", ringAtoms.size()); + //for (std::vector<int>::const_iterator it = ringAtoms.begin(); it != ringAtoms.end(); ++it) + // mprintf(" %s", topIn.AtomMaskName(*it).c_str()); + //mprintf("\n"); + return ringAtoms; + } + Visited[at] = true; + ringAtoms.push_back( at ); + Atom const& currentAt = topIn[at]; + typedef std::vector<int> Iarray; + std::vector<Iarray> ringAtArray( currentAt.Nbonds() ); + std::vector<Iarray>::iterator ringIt = ringAtArray.begin(); + std::vector<Iarray>::iterator shortestRing = ringAtArray.end(); + for (Atom::bond_iterator bat = currentAt.bondbegin(); bat != currentAt.bondend(); ++bat, ++ringIt) + { + if (*bat != previousAt && topIn[*bat].Nbonds() > 1 && + topIn[*bat].ResNum() == res && !Visited[*bat]) + { + *ringIt = findCycle(*bat, tgtAt, at, res, topIn, Visited, ringAtoms); + if (!ringIt->empty()) { + if (shortestRing == ringAtArray.end()) + shortestRing = ringIt; + else if (ringIt->size() < shortestRing->size()) + shortestRing = ringIt; + } + } + } + // If multiple paths were found, return the shortest. + if (shortestRing != ringAtArray.end()) + return *shortestRing; + return std::vector<int>(); +} + +void RingFinder::useCachedRings(Topology const& topIn, int res, CharMask const& cmask, RingNamesType const& ringNamesArray) +{ + if (debug_ > 0) + mprintf("DEBUG: Using cached values for residue %s, %zu rings.\n", topIn.TruncResNameNum(res).c_str(), ringNamesArray.size()); + for (RingNamesType::const_iterator rnames = ringNamesArray.begin(); rnames != ringNamesArray.end(); ++rnames) + { + // Find all ring atoms. They must be present and selected. + bool allAtomsFound = true; + std::vector<int> ringAtoms; + ringAtoms.reserve(rnames->size()); + for (AtomNameArray::const_iterator aname = rnames->begin(); aname != rnames->end(); ++aname) + { + NameType const& atmName = *aname; + int at = topIn.FindAtomInResidue(res, atmName); + if (at < 0) { + mprintf("Warning: Ring atom %s not found in residue %s\n", *atmName, topIn.TruncResNameNum(res).c_str()); + allAtomsFound = false; + break; + } + if (!cmask.AtomInCharMask(at)) { + allAtomsFound = false; + break; + } + ringAtoms.push_back(at); + } + if (allAtomsFound) + rings_.push_back( AtomMask(ringAtoms, topIn.Natom()) ); + } // END loop over rings in residue +} + +/** Set up ring finder for topology. */ +int RingFinder::SetupRingFinder(Topology const& topIn, AtomMask const& maskIn) { + rings_.clear(); + + typedef std::pair<NameType, RingNamesType> RingCachePair; + typedef std::map<NameType, RingNamesType> RingCacheType; + // Hold names of ring atoms for each unique type of residue. + RingCacheType RingCache; + + CharMask cmask( maskIn.ConvertToCharMask(), maskIn.Nselected() ); + + std::vector<bool> Visited(topIn.Natom(), false); // TODO only have visited for residue atoms + // Do not look for rings that span residues. + for (int res = 0; res < topIn.Nres(); res++) { + Residue const& currentRes = topIn.Res(res); + // Check the cache + RingCacheType::const_iterator it = RingCache.find( currentRes.Name() ); + if ( it != RingCache.end() ) { + useCachedRings( topIn, res, cmask, it->second ); + continue; + } + // First time this residue has been seen. Do the full ring search. + RingNamesType ringNamesArray; + // Ignore solvent + if (topIn.Mol( topIn[currentRes.FirstAtom()].MolNum() ).IsSolvent()) continue; + std::vector<int> startAtoms; + int idx = 0; + // Initial scan for start atoms + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); at++, idx++) + { + if (cmask.AtomInCharMask( at )) { + Atom const& currentAt = topIn[at]; + if (currentAt.Nbonds() > 1) { + //mprintf("Starting at %s\n", topIn.AtomMaskName(at).c_str()); + Visited.assign( topIn.Natom(), false ); + Visited[at] = true; + for (Atom::bond_iterator bat = currentAt.bondbegin(); bat != currentAt.bondend(); ++bat) + { + if (topIn[*bat].Nbonds() > 1 && topIn[*bat].ResNum() == res) { + visitAtom( *bat, at, res, topIn, Visited, startAtoms ); + if (!startAtoms.empty()) break; + } + } + } + if (!startAtoms.empty()) break; + } + } + if (debug_ > 0 && !startAtoms.empty()) { + mprintf("Potential start atoms:"); + for (std::vector<int>::const_iterator it = startAtoms.begin(); it != startAtoms.end(); ++it) + mprintf(" %s", topIn.AtomMaskName(*it).c_str()); + mprintf("\n"); + } + // Loop over potential start atoms + Visited.assign( topIn.Natom(), false ); + for (std::vector<int>::const_iterator it = startAtoms.begin(); it != startAtoms.end(); ++it) + { + if (!cmask.AtomInCharMask( *it )) continue; + Atom const& startAt = topIn[*it]; + // Need to have at least 2 bonds + if (startAt.Nbonds() > 1) { + // Loop over all other combinations of bonded atoms. Want to see if + // we can make a cycle from at1 to at2: + // at1 - startAt - at2 TODO check that bonded atoms are in the same residue + for (int bidx1 = 0; bidx1 != startAt.Nbonds(); bidx1++) { + int at1 = startAt.Bond(bidx1); + if (topIn[at1].ResNum() == res) { + for (int bidx2 = bidx1 + 1; bidx2 != startAt.Nbonds(); bidx2++) { + int at2 = startAt.Bond(bidx2); + if (topIn[at2].ResNum() == res) { + //mprintf("Check <- %s - %s - %s ->\n", + // topIn.AtomMaskName(at1).c_str(), + // topIn.AtomMaskName(*it).c_str(), + // topIn.AtomMaskName(at2).c_str()); + Visited[*it] = true; + std::vector<int> tmpAtoms; + std::vector<int> ringAtoms = findCycle(at1, at2, *it, res, topIn, Visited, tmpAtoms); + if (!ringAtoms.empty()) { + // Fill in the rest of the atoms + ringAtoms.push_back( at2 ); + ringAtoms.push_back( *it ); + // Mark the ring atoms as visited + Visited[at2] = true; + for (std::vector<int>::const_iterator rt = ringAtoms.begin(); rt != ringAtoms.end(); ++rt) + Visited[*rt] = true; + // Only add the ring if all atoms were found + bool allfound = true; + if (debug_ > 0) mprintf("RING FOUND (%zu): {", ringAtoms.size()); + for (std::vector<int>::const_iterator rt = ringAtoms.begin(); rt != ringAtoms.end(); ++rt) { + if (debug_ > 0) mprintf(" %s", topIn.AtomMaskName(*rt).c_str()); + if (!cmask.AtomInCharMask( *rt )) allfound = false; + } + if (debug_ > 0) mprintf(" }\n"); + if (allfound) { + rings_.push_back( AtomMask(ringAtoms, topIn.Natom()) ); + AtomNameArray rnames; + rnames.reserve( ringAtoms.size() ); + for (std::vector<int>::const_iterator zt = ringAtoms.begin(); zt != ringAtoms.end(); ++zt) + rnames.push_back( topIn[*zt].Name() ); + ringNamesArray.push_back( rnames ); + } + } + } // END bond atom 2 in residue + } // END inner loop over bonds + } // END bond atom 1 in residue + } // END outer loop over bonds + } // END # bonds > 1 + } // END loop over potential start atoms + RingCache.insert( RingCachePair( currentRes.Name(), ringNamesArray ) ); + } // END loop over all residues + + return 0; +} + +/** Print found rings to stdout. */ +void RingFinder::PrintRings(Topology const& topIn) const { + mprintf("\t%zu rings found.\n", rings_.size()); + for (Marray::const_iterator mask = rings_.begin(); mask != rings_.end(); ++mask) { + mprintf("\t %i atoms:", mask->Nselected()); + for (AtomMask::const_iterator it = mask->begin(); it != mask->end(); ++it) + mprintf(" %s", topIn.AtomMaskName(*it).c_str()); + mprintf("\n"); + } +} diff --git a/src/Structure/RingFinder.h b/src/Structure/RingFinder.h new file mode 100644 index 0000000000..8225cea1ba --- /dev/null +++ b/src/Structure/RingFinder.h @@ -0,0 +1,34 @@ +#ifndef INC_STRUCTURE_RINGFINDER_H +#define INC_STRUCTURE_RINGFINDER_H +#include <vector> +class ArgList; +class AtomMask; +class CharMask; +class NameType; +class Topology; +namespace Cpptraj { +namespace Structure { +/// Used to look for rings in residues +class RingFinder { + public: + RingFinder(); + void SetDebug(int); + int InitRingFinder(ArgList&); + int SetupRingFinder(Topology const&, AtomMask const&); + + unsigned int Nrings() const { return rings_.size(); } + void PrintRings(Topology const&) const; + AtomMask const& operator[](int idx) const { return rings_[idx]; } + private: + typedef std::vector<AtomMask> Marray; + typedef std::vector<NameType> AtomNameArray; + typedef std::vector<AtomNameArray> RingNamesType; + + void useCachedRings(Topology const&, int, CharMask const&, RingNamesType const&); + + Marray rings_; ///< Array of masks corresponding to rings + int debug_; +}; +} +} +#endif diff --git a/src/Structure/Solvate.cpp b/src/Structure/Solvate.cpp new file mode 100644 index 0000000000..ae5029ba53 --- /dev/null +++ b/src/Structure/Solvate.cpp @@ -0,0 +1,1359 @@ +#include "Solvate.h" +#include "../Action_AutoImage.h" +#include "../ArgList.h" +#include "../CharMask.h" +#include "../CpptrajStdio.h" +#include "../DataSet_Coords.h" +#include "../DataSetList.h" +#include "../Frame.h" +#include "../Topology.h" +#include "../Parm/ParameterSet.h" +#include <algorithm> //std::max +#include <cmath> // cos, sin, sqrt + +// DEBUG +//#inc lude "../Trajout_Single.h" + +using namespace Cpptraj::Structure; + +/** CONSTRUCTOR */ +Solvate::Solvate() : + debug_(0), + nsolvent_(0), + bufferX_(0), + bufferY_(0), + bufferZ_(0), + bufferD_(0), + closeness_(1.0), + isotropic_(false), + clip_(true), + center_(true) +{ +} + +const char* Solvate::SetboxKeywords() { + return "[{buffer <buffer> | bufx <bufx> bufy <bufy> bufz <bufz>}]"; +} + +const char* Solvate::SolvateKeywords1() { + return "{buffer <buffer> | bufx <bufx> bufy <bufy> bufz <bufz> | nsolvent <#>}"; +} + +const char* Solvate::SolvateKeywords2() { + return "solventbox <unit> [closeness <closeness>] [{iso|aniso}] [nocenter]"; +} + +/** Get any buffer arguments */ +int Solvate::getBufferArg(ArgList& argIn, double defaultBuffer) { + if (argIn.Contains("buffer")) { + bufferX_ = argIn.getKeyDouble("buffer", defaultBuffer); + bufferY_ = bufferX_; + bufferZ_ = bufferX_; + bufferD_ = bufferX_; + } else { + bufferX_ = argIn.getKeyDouble("bufx", defaultBuffer); + bufferY_ = argIn.getKeyDouble("bufy", defaultBuffer); + bufferZ_ = argIn.getKeyDouble("bufz", defaultBuffer); + bufferD_ = argIn.getKeyDouble("bufd", defaultBuffer); + } + if (nsolvent_ < 1) { + if (bufferX_ < 0 || bufferY_ < 0 || bufferZ_ < 0) { + mprinterr("Error: Either 'buffer' or 'bufx/bufy/bufx' must be specified and >= 0\n"); + return 1; + } + } + return 0; +} + +/** Initialize arguments. */ +int Solvate::InitSolvate(ArgList& argIn, bool octIn, int debugIn) { + debug_ = debugIn; + doTruncatedOct_ = octIn; + nsolvent_ = (unsigned int)argIn.getKeyInt("nsolvent", 0); + if (nsolvent_ > 0) { + if (doTruncatedOct_) { + mprinterr("Error: 'nsolvent' currently does not work for truncated octahedral cells.\n"); + return 1; + } + clip_ = false; + mprintf("Warning: The 'nsolvent' functionality is currently EXPERIMENTAL.\n"); + } + + if (getBufferArg(argIn, -1.0)) return 1; + + if (doTruncatedOct_) { + if (argIn.hasKey("aniso")) + isotropic_ = false; + else + isotropic_ = true; + } else { + isotropic_ = argIn.hasKey("iso"); + } + + solventBoxName_ = argIn.GetStringKey("solventbox"); + if (solventBoxName_.empty()) { + mprinterr("Error: Specify solvent box unit name with 'solventbox'\n"); + return 1; + } + + closeness_ = argIn.getKeyDouble("closeness", 1.0); + center_ = !argIn.hasKey("nocenter"); + + if (doTruncatedOct_ && nsolvent_ < 1) { + if (!clip_) { + mprinterr("Error: Truncated octahedral box currently requires 'clip'.\n"); + return 1; + } + } + + return 0; +} + +/** Initialize args for setbox */ +int Solvate::InitSetbox(ArgList& argIn, int debugIn) { + debug_ = debugIn; + nsolvent_ = 0; + + if (getBufferArg(argIn, 0.0)) return 1; + + return 0; +} + +/** Print info to stdout */ +void Solvate::PrintSolvateInfo() const { + if (doTruncatedOct_) + mprintf("\tAdding solvent from %s using a truncated octahedral unit cell.\n", solventBoxName_.c_str()); + else + mprintf("\tAdding solvent from %s using an orthorhombic unit cell.\n", solventBoxName_.c_str()); + if (nsolvent_ > 0) + mprintf("\t %u target number of solvent molecules.\n", nsolvent_); + mprintf("\t Solvent buffer XYZ: %g %g %g Ang.\n", bufferX_, bufferY_, bufferZ_); + mprintf("\t Solvent closeness: %g Ang.\n", closeness_); + if (isotropic_) + mprintf("\t Solute will be centered at the origin and principal-aligned before solvating.\n"); + if (clip_) + mprintf("\t Solvent outside the primary unit cell will be removed.\n"); + if (center_) + mprintf("\t Final system will be centered at box center after solvation.\n"); +} + +/** Get solvent unit box from DataSetList */ +DataSet_Coords* Solvate::GetSolventUnit(DataSetList const& DSL) const { + if (solventBoxName_.empty()) { + mprinterr("Internal Error: Solvate::GetSolventUnit() called before solventBoxName_ set.\n"); + return 0; + } + DataSetList sets = DSL.SelectGroupSets( "*", DataSet::COORDINATES ); // TODO specific set type for units? + // First try to match aspect, then match name + DataSet_Coords* solventUnit = 0; + // Aspect + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + { + DataSet_Coords* ds = static_cast<DataSet_Coords*>( *it ); + if (!ds->Meta().Aspect().empty()) { + if (solventBoxName_ == ds->Meta().Aspect()) { + solventUnit = ds; + break; + } + } + } + // Name + if (solventUnit == 0) { + for (DataSetList::const_iterator it = sets.begin(); it != sets.end(); ++it) + { + DataSet_Coords* ds = static_cast<DataSet_Coords*>( *it ); + if (solventBoxName_ == ds->Meta().Name()) { + solventUnit = ds; + break; + } + } + } + if (solventUnit != 0) + mprintf("\t Solvent unit: %s\n", solventUnit->legend()); + else + mprinterr("Error: Could not get solvent unit named %s\n", solventBoxName_.c_str()); + + return solventUnit; +} + +/** Atom default radius in Angstroms from LEaP */ +const double Solvate::ATOM_DEFAULT_RADIUS_ = 1.5; + +/** Get radii for atoms in topology */ +std::vector<double> Solvate::getAtomRadii(double& maxR, Topology const& topOut, + Cpptraj::Parm::ParameterSet const& set0) +const +{ + using namespace Cpptraj::Parm; + maxR = 0; + std::vector<double> Radii; + Radii.reserve( topOut.Natom() ); + for (int at = 0; at < topOut.Natom(); at++) + { + // Get radius + double atom_radius = 0.0; + //bool has_vdw = false; + if (topOut[at].HasType()) { + ParmHolder<AtomType>::const_iterator it = set0.AT().GetParam( TypeNameHolder(topOut[at].Type()) ); + if (it != set0.AT().end() && it->second.HasLJ()) { + atom_radius = it->second.LJ().Radius(); + //has_vdw = true; + } + } + if (atom_radius < 0.1) { + if (topOut[at].Element() == Atom::HYDROGEN) + atom_radius = 1.0; + else + atom_radius = ATOM_DEFAULT_RADIUS_; + } + Radii.push_back( atom_radius ); + maxR = std::max(maxR, atom_radius); + } + return Radii; +} + +/** Set VDW bounding box. */ +int Solvate::setVdwBoundingBox(double& boxX, double& boxY, double& boxZ, + std::vector<double> const& Radii, + Frame& frameOut, bool orient) +const +{ + if (orient) { + // Center on origin and align principal axes. + Vec3 ctr = frameOut.VGeometricCenter(); + ctr.Neg(); + frameOut.Translate(ctr); + + Matrix_3x3 Inertia; + Vec3 Eval; + frameOut.CalculateInertia( AtomMask(0, frameOut.Natom()), Inertia ); + Inertia.Diagonalize( Eval ); + //mprintf("Eigenvalues: %f %f %f\n", Eval[0], Eval[1], Eval[2]); + + // Check the handedness of the diagonalized matrix + // If it is the wrong hand then it will transform the unit into a mirror image. + Vec3 vPos = Inertia.Row1().Cross( Inertia.Row2() ); + //mprintf("VPOS= %f %f %f\n", vPos[0], vPos[1], vPos[2]); + double dDot = vPos * Inertia.Row3(); + //mprintf( "The handedness of the transformation is (+1=Right): %f\n", dDot ); + + // If the handedness of the matrix is wrong then change it + if ( dDot < 0.0 ) { + Inertia[6] *= -1.0; + Inertia[7] *= -1.0; + Inertia[8] *= -1.0; + } + + //frameOut.Rotate( Inertia ); + // CPPTRAJ inverse rotate consistent with MatrixTimesVector from LEAP + frameOut.InverseRotate( Inertia ); + } + + // Set vdw bounding box + double Xmin = 0; + double Ymin = 0; + double Zmin = 0; + double Xmax = 0; + double Ymax = 0; + double Zmax = 0; + + for (int at = 0; at < frameOut.Natom(); at++) + { + // Get radius + double atom_radius = Radii[at]; + + const double* XYZ = frameOut.XYZ(at); + //mprintf("DBG: %12.4f %12.4f %12.4f %12.4f\n", XYZ[0], XYZ[1], XYZ[2], atom_radius); + double dXp = XYZ[0] + atom_radius; + double dYp = XYZ[1] + atom_radius; + double dZp = XYZ[2] + atom_radius; + double dXm = XYZ[0] - atom_radius; + double dYm = XYZ[1] - atom_radius; + double dZm = XYZ[2] - atom_radius; + if (at == 0) { + Xmin = dXm; + Ymin = dYm; + Zmin = dZm; + Xmax = dXp; + Ymax = dYp; + Zmax = dZp; + } else { + if (dXm < Xmin) Xmin = dXm; + if (dYm < Ymin) Ymin = dYm; + if (dZm < Zmin) Zmin = dZm; + if (dXp > Xmax) Xmax = dXp; + if (dYp > Ymax) Ymax = dYp; + if (dZp > Zmax) Zmax = dZp; + } + } + //mprintf("Min= %f %f %f Max= %f %f %f\n", Xmin, Ymin, Zmin, Xmax, Ymax, Zmax); + // Define box + boxX = Xmax - Xmin; + boxY = Ymax - Ymin; + boxZ = Zmax - Zmin; + + // Define center + Vec3 toCenter( -(Xmin + 0.5 * boxX), + -(Ymin + 0.5 * boxY), + -(Zmin + 0.5 * boxZ) ); +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf("ToolCenterUnitByRadii translate vector is %f %f %f\n", toCenter[0], toCenter[1], toCenter[2]); // DEBUG +# endif + // Translate to origin + frameOut.Translate(toCenter); + + return 0; +} + +/** Set VDW bounding box */ +int Solvate::SetVdwBoundingBox(Topology& topOut, Frame& frameOut, Cpptraj::Parm::ParameterSet const& set0) +{ + // Set vdw box + double soluteMaxR; + std::vector<double> soluteRadii = getAtomRadii(soluteMaxR, topOut, set0) ; + double boxX, boxY, boxZ; + if (setVdwBoundingBox(boxX, boxY, boxZ, soluteRadii, frameOut, isotropic_)) { + mprinterr("Error: Setting vdw bounding box for %s failed.\n", topOut.c_str()); + return 1; + } + mprintf("\t Solute vdw bounding box: %-5.3f %-5.3f %-5.3f\n", boxX, boxY, boxZ); + + double dXWidth = boxX + bufferX_ * 2; + double dYWidth = boxY + bufferY_ * 2; + double dZWidth = boxZ + bufferZ_ * 2; + + mprintf("\t Total bounding box for atom centers: %5.3f %5.3f %5.3f\n", + dXWidth, dYWidth, dZWidth ); + + // Setup box + frameOut.ModifyBox().SetupFromXyzAbg(boxX, boxY, boxZ, 90.0, 90.0, 90.0); + frameOut.BoxCrd().PrintInfo(); + topOut.SetParmBox( frameOut.BoxCrd() ); + mprintf("\t Total vdw box size:%s%5.3f %5.3f %5.3f angstroms.\n", " ", + frameOut.BoxCrd().Param(Box::X), + frameOut.BoxCrd().Param(Box::Y), + frameOut.BoxCrd().Param(Box::Z)); + mprintf("\t Volume: %5.3f A^3\n", frameOut.BoxCrd().CellVolume()); + return 0; +} + +/** Scale buffer if needed to meet diagonal clearance. */ +void Solvate::octBoxCheck(Frame const& frameOut) { + if (frameOut.Natom() < 1) return; + double dPBuf[4]; + + dPBuf[0] = bufferX_; + dPBuf[1] = bufferY_; + dPBuf[2] = bufferZ_; + dPBuf[3] = bufferD_; + //mprintf("dPBuf %f %f %f %f\n", dPBuf[0], dPBuf[1], dPBuf[2], dPBuf[3]); + + const double* XYZ = frameOut.XYZ(0); + double dXmax = XYZ[0]; + double dYmax = XYZ[1]; + double dZmax = XYZ[2]; + double dXmin = XYZ[0]; + double dYmin = XYZ[1]; + double dZmin = XYZ[2]; + + for (int at = 1; at < frameOut.Natom(); at++) + { + XYZ = frameOut.XYZ(at); + if ( XYZ[0] > dXmax ) + dXmax = XYZ[0]; + else if ( XYZ[0] < dXmin ) + dXmin = XYZ[0]; + if ( XYZ[1] > dYmax ) + dYmax = XYZ[1]; + else if ( XYZ[1] < dYmin ) + dYmin = XYZ[1]; + if ( XYZ[2] > dZmax ) + dZmax = XYZ[2]; + else if ( XYZ[2] < dZmin ) + dZmin = XYZ[2]; + } + + // calc halfbox on centers + double dXhalf = 0.5 * (dXmax - dXmin) + dPBuf[0]; + double dYhalf = 0.5 * (dYmax - dYmin) + dPBuf[1]; + double dZhalf = 0.5 * (dZmax - dZmin) + dPBuf[2]; + + // find unit vector of diagonal + double dX = dYhalf * dZhalf; + double dY = dXhalf * dZhalf; + double dZ = dXhalf * dYhalf; + + double dTmp = 1.0 / sqrt( dX*dX + dY*dY + dZ*dZ ); + + double dXunit = dX * dTmp; + double dYunit = dY * dTmp; + double dZunit = dZ * dTmp; + + // find max atom distance from origin along the diagonal + double dMax = 0.0; + for (int at = 0; at < frameOut.Natom(); at++) + { + XYZ = frameOut.XYZ(at); + dTmp = fabs(XYZ[0]) * dXunit + + fabs(XYZ[1]) * dYunit + + fabs(XYZ[2]) * dZunit; + if ( dTmp > dMax ) + dMax = dTmp; + } + + // calc distance of diagonal face from origin + double dBmax = 0.5 * sqrt( dXhalf*dXhalf + dYhalf*dYhalf + dZhalf*dZhalf ); + + // see if diagonal clearance is satisfied + dTmp = dMax + dPBuf[3]; + if ( dTmp <= dBmax ) { + if ( dPBuf[3] == 0.0 ) + mprintf("\t (Diagonal clearance is %f)\n", dMax ); + return; + } + + // not satisfied: scale up box + dTmp /= dBmax; + mprintf("\t Scaling up box by a factor of %f to meet diagonal cut criterion\n", dTmp ); + + bufferX_ *= dTmp; + bufferY_ *= dTmp; + bufferZ_ *= dTmp; +} + +/** Rotate 45 deg. around z axis, (90-tetra/2) around y axis, 90 around x axis. + * (1 0 0) (cos2 0 -sin2) (cos1 -sin1 0) + * (0 0 -1) ( 0 1 0) (sin1 cos1 0) + * (0 1 0) (sin2 0 cos2) ( 0 0 1) + * + * cntr-clk clock clock + * Looking down + axis of rotation toward origin + * + * For isotropic truncated octahedral box only. + */ +void Solvate::ewald_rotate(Frame& frameOut, double& dPAngle) +{ + double tetra_angl = 2 * acos( 1. / sqrt(3.) ); + double pi = 3.1415927; // FIXME use Constants + double phi = pi / 4.; + double cos1 = cos(phi); + double sin1 = sin(phi); + phi = pi/2. - tetra_angl/2.; + double cos2 = sqrt(2.)/sqrt(3.); + double sin2=1./sqrt(3.); + + double t11= cos2*cos1; + double t12=-cos2*sin1; + double t13=-sin2; + double t21=-sin2*cos1; + double t22= sin2*sin1; + double t23=-cos2; + double t31= sin1; + double t32= cos1; + double t33=0; + + //lAtoms = lLoop( (OBJEKT)uUnit, ATOMS ); + //while ( (aAtom = (ATOM)oNext(&lAtoms)) != NULL ) { + // double dX, dY, dZ; + double* xyz = frameOut.xAddress(); + for (int at = 0; at != frameOut.Natom(); at++, xyz += 3) + { + double dX = xyz[0]; + double dY = xyz[1]; + double dZ = xyz[2]; + + xyz[0] = t11*dX + t12*dY + t13*dZ; + xyz[1] = t21*dX + t22*dY + t23*dZ; + xyz[2] = t31*dX + t32*dY + t33*dZ; + } + dPAngle = tetra_angl*180./pi; +} + +/** Adjust box widths */ +void Solvate::adjustBoxWidths(double& dXWidth, double& dYWidth, double& dZWidth, + double& boxX, double& boxY, double& boxZ) +const +{ + if (isotropic_) { + double dTemp = dXWidth * dYWidth * dZWidth; + + double dMax = std::max(dXWidth, dYWidth); + dMax = std::max(dMax, dZWidth); + dXWidth = dYWidth = dZWidth = dMax; + + dTemp = (dMax * dMax * dMax - dTemp ) / dTemp; + + mprintf("\t Total bounding box for atom centers: %5.3f %5.3f %5.3f\n", + dXWidth, dYWidth, dZWidth ); + mprintf("\t (box expansion for 'iso' is %5.1lf%%)\n", dTemp * 100.0 ); + + // To make the actual clip right, 'iso' the solute box + dTemp = std::max(boxX, boxY); + dTemp = std::max(dTemp, boxZ); + //dXBox = dYBox = dZBox = dTemp; + boxX = boxY = boxZ = dTemp; + } else + mprintf("\t Total bounding box for atom centers: %5.3f %5.3f %5.3f\n", + dXWidth, dYWidth, dZWidth ); +} + +/** Calculate total density */ +void Solvate::calculateDensity(Topology const& topOut, Frame const& frameOut, Cpptraj::Parm::ParameterSet const& set0) +{ + // Sum mass + double sumMass = 0.0; + for (int at = 0; at < topOut.Natom(); at++) { + if (topOut[at].HasType()) { + Cpptraj::Parm::ParmHolder<AtomType>::const_iterator it = set0.AT().GetParam( TypeNameHolder(topOut[at].Type()) ); + if (it != set0.AT().end()) { + sumMass += it->second.Mass(); + } + } + } + if (sumMass > 0.0) { + mprintf("\t Total mass %5.3f amu, Density %5.3lf g/cc\n", sumMass, sumMass / (frameOut.BoxCrd().CellVolume() * 0.602204)); + } else { + mprintf("Warning: Mass could not be determined, so density unknown (i.e. type of all atoms could not be found)\n"); + } +} + +/** Calculate the number of boxes needed to create a given layer */ +unsigned int Solvate::nBoxesInLayer(int n) { + // Special case; no layers is 1 cube + if (n < 1) return 1; + unsigned int nSide = (unsigned int)n + 2; + // Special case; 1 layer, center cube is surrounded by 26 boxes (3x3x3 cubes minus the center). + if (nSide == 3) return 26; + unsigned int nSidem1 = nSide - 1; + unsigned int cube = nSide * nSide * nSide; + unsigned int cubem1 = nSidem1 * nSidem1 * nSidem1; + return cube - cubem1; +} + +/** Calculate the number of boxes needed to create a given cube */ +unsigned int Solvate::nBoxesInCube(int n) { + // Special case; no layers is 1 cube + if (n < 1) return 1; + unsigned int nSide = (unsigned int)n + 2; + // Special case; 1 layer, 27 boxes (3x3x3 cubes). + if (nSide == 3) return 27; + unsigned int cube = nSide * nSide * nSide; + return cube; +} + +static inline void checkBuffer(double& buf, double min, double max) { + if (buf < min) buf = min; + if (buf > max) buf = max; +} + +/** Create box, fill with target number of solvent molecules. */ +int Solvate::SolvateBoxWithExactNumber(Topology& topOut, Frame& frameOut, Cpptraj::Parm::ParameterSet const& set0, + DataSetList const& DSL) +{ + mprintf("\tAdding %u solvent molecules.\n", nsolvent_); + if (nsolvent_ < 1) return 0; + // Sanity check + if (topOut.Natom() != frameOut.Natom()) { + mprinterr("Internal Error: Solvate::SolvateBox(): Topology %s #atoms %i != frame #atoms %i\n", + topOut.c_str(), topOut.Natom(), frameOut.Natom()); + return 1; + } + // Get solvent unit box + DataSet_Coords* solventUnitBox = GetSolventUnit( DSL ); + if (solventUnitBox == 0) { + mprinterr("Error: Getting solvent unit failed.\n"); + return 1; + } + DataSet_Coords& SOLVENTBOX = static_cast<DataSet_Coords&>( *solventUnitBox ); + + // TODO check COORDS size + Frame solventFrame = SOLVENTBOX.AllocateFrame(); + SOLVENTBOX.GetFrame(0, solventFrame); + + // Set vdw box for solvent + double solventBoxVol = 0; + double solventMaxR; + std::vector<double> solventRadii = getAtomRadii(solventMaxR, SOLVENTBOX.Top(), set0); + double solventX, solventY, solventZ; + if (solventFrame.BoxCrd().HasBox()) { + // Use input box lengths + // TODO check ortho? + solventX = solventFrame.BoxCrd().Param(Box::X); + solventY = solventFrame.BoxCrd().Param(Box::Y); + solventZ = solventFrame.BoxCrd().Param(Box::Z); + solventBoxVol = solventFrame.BoxCrd().CellVolume(); + } else { + if (setVdwBoundingBox(solventX, solventY, solventZ, solventRadii, solventFrame, false)) { + mprinterr("Error: Setting vdw bounding box for %s failed.\n", SOLVENTBOX.legend()); + return 1; + } + solventBoxVol = solventX * solventY * solventZ; + } + mprintf("\t Solvent unit box: %5.3f %5.3f %5.3f (%g Ang^3)\n", solventX, solventY, solventZ, solventBoxVol); + + // Set solute box + double soluteMaxR; + std::vector<double> soluteRadii = getAtomRadii(soluteMaxR, topOut, set0); + double boxX, boxY, boxZ; + if (setVdwBoundingBox(boxX, boxY, boxZ, soluteRadii, frameOut, isotropic_)) { + mprinterr("Error: Setting vdw bounding box for %s failed.\n", topOut.c_str()); + return 1; + } + // Check if buffers need to be increased for trunc oct. + if (doTruncatedOct_) + octBoxCheck( frameOut ); + mprintf("\t Solute vdw bounding box: %-5.3f %-5.3f %-5.3f\n", boxX, boxY, boxZ); + + // Ratio of solute box size to solvent box size + double soluteFac = (boxX*boxY*boxZ) / solventBoxVol; + mprintf("\t Solute is %g times the solvent box.\n", soluteFac); + // Estimate how many solvent molecules will be removed by solvent + unsigned int nMolsRemovedBySolute = (unsigned int)ceil( soluteFac * (double)SOLVENTBOX.Top().Nmol() ); + mprintf("\t Estimating approximately %u solvent molecules will be removed by solute.\n", nMolsRemovedBySolute); + + // How many "layers" are needed to be over the target number? + long int nSolventAdded = 0; + int layer = 0; + while (nSolventAdded < nsolvent_) { + nSolventAdded = (long int)(nBoxesInCube(layer) * (unsigned int)SOLVENTBOX.Top().Nmol()); + nSolventAdded = nSolventAdded - (long int)nMolsRemovedBySolute; + mprintf("DEBUG: Layer %i, # solvent added = %li\n", layer, nSolventAdded); + layer++; + } + // NOTE: layer is actually layer+1 right now + if (layer > 1) { + layer = (layer - 1) + 2; + } + + double dXWidth = ((double)layer * solventX); + double dYWidth = ((double)layer * solventY); + double dZWidth = ((double)layer * solventZ); + mprintf("DEBUG: Estimated size with buffer: %f %f %f\n", dXWidth, dYWidth, dZWidth); + + // See how many solvent boxes required in each dimension + int iX = (int)( dXWidth / solventX ) + 1; + int iY = (int)( dYWidth / solventY ) + 1; + int iZ = (int)( dZWidth / solventZ ) + 1; + + // Calculate the center of the first solvent box + // (the one that goes in the max XYZ corner), given + // that the solute is centered at 0,0,0 + double dXStart = 0.5 * solventX * (double) (iX-1); + double dYStart = 0.5 * solventY * (double) (iY-1); + double dZStart = 0.5 * solventZ * (double) (iZ-1); + +// int firstSolventAtom = topOut.Natom(); // DEBUG + int firstSolventRes = topOut.Nres(); +// mprintf("DEBUG: First solvent atom %i, first solvent res %i\n", topOut.Natom(), firstSolventRes); + + addSolventUnits(iX, iY, iZ, soluteMaxR, dXStart, dYStart, dZStart, solventX, solventY, solventZ, + solventFrame, SOLVENTBOX.Top(), frameOut, topOut, + soluteRadii, solventRadii); + // DEBUG +// Trajout_Single trajout; +// trajout.InitTrajWrite("BigCube.mol2", ArgList(), DataSetList(), TrajectoryFile::MOL2FILE); +// trajout.SetupTrajWrite(&topOut, frameOut.CoordsInfo(), 1); +// trajout.WriteSingle(0, frameOut); +// trajout.EndTraj(); + // END DEBUG + + // Define the size of the new solvent/solute system + double maxX, maxY, maxZ; + soluteRadii = getAtomRadii(soluteMaxR, topOut, set0) ; + if (setVdwBoundingBox(maxX, maxY, maxZ, soluteRadii, frameOut, false)) { + mprinterr("Error: Setting vdw bounding box for solute/solvent system failed.\n", topOut.c_str()); + return 1; + } + + if (firstSolventRes >= topOut.Nres()) { + mprinterr("Internal Error: Solvate::SolvateBoxWithExactNumber(): No solvent added.\n"); + return 1; + } + + //unsigned int nBoxesForSolvent = (unsigned int)ceil( (double)nsolvent / (double)SOLVENTBOX.Top().Nmol() ); +// // Calculate the solvent box density +// double solventBoxDensity = (double)SOLVENTBOX.Top().Nmol() / solventBoxVol; +// mprintf("\t Solvent box density is %g mols/Ang^3\n", solventBoxDensity); +// // Calculate how many solvent molecules we actually need to add given that solute will remove some +// unsigned int neededNumberOfSolvent = nsolvent_ + nMolsRemovedBySolute; +// // Calculate what volume of solvent is needed to hit the actual solvent molecule target +// double tgtVol = (double)neededNumberOfSolvent / solventBoxDensity; +// mprintf("\t Target volume: %g Ang^3\n", tgtVol); +// // Calculate number of solvent boxes needed +// //unsigned int neededNumberOfBoxes = (unsigned int)ceil( tgtVol / solventBoxVol ); +// //mprintf("\t Need %u solvent boxes.\n", neededNumberOfBoxes); +// double tgtLen = pow(tgtVol, (1.0/3.0)); +// mprintf("\t Target length: %g Ang\n", tgtLen); +// double bX = (tgtLen - boxX) / 2.0; +// double bY = (tgtLen - boxY) / 2.0; +// double bZ = (tgtLen - boxZ) / 2.0; +// mprintf("\t Buffer: %g %g %g\n", bX, bY, bZ); + + //unsigned int nSolventBoxesNeeded = (unsigned int)ceil( (double)neededNumberOfSolvent / (double)SOLVENTBOX.Top().Nmol() ); + //mprintf("\t Estimating %u solvent boxes will be needed.\n", nSolventBoxesNeeded); + + frameOut.CenterOnOrigin(false); + + // FIXME make user-specifiable + double alpha, beta, gamma; + if (doTruncatedOct_) { + alpha = Box::TruncatedOctAngle(); + beta = alpha; + gamma = alpha; + } else { + alpha = 90.0; + beta = 90.0; + gamma = 90.0; + } + int negtol = -5; + + double bufX = boxX + ((maxX - boxX) / 2.0); + double bufY = boxY + ((maxY - boxY) / 2.0); + double bufZ = boxZ + ((maxZ - boxZ) / 2.0); + + if (doTruncatedOct_) { + if (bufX >= bufY && bufX >= bufZ) { bufY = bufX; bufZ = bufX; } + if (bufY >= bufX && bufY >= bufZ) { bufX = bufY; bufZ = bufY; } + if (bufZ >= bufX && bufZ >= bufY) { bufX = bufZ; bufY = bufZ; } + } + + // Mask selecting everything that should be kept. Always keep solute + CharMask cmask( topOut.Natom() ); + for (int ires = 0; ires < firstSolventRes; ires++) { + Residue const& currentRes = topOut.Res(ires); + //mprintf("\t\t%s\n", topOut.TruncResNameNum(ires).c_str()); + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); at++) { + cmask.SelectAtom(at, true); + } + } +// cmask.MaskInfo(); // DEBUG + + // This loop uses the same logic as my old Solvate.sh script + // (https://github.com/drroe/Solvate.sh/blob/master/Solvate.sh) + int smallestNegDiff = 0; + Vec3 smallestBuf(0.0); + int nTimesSmallestSeen = 0; + bool loop = true; + int ntries = 0; + double change = 0.001; + int lastdiff = 0; + Box newBox; + while (loop) { + mprintf("DEBUG: %i) Buffer %f %f %f\n", ntries, bufX, bufY, bufZ); + // Define the unit cell + newBox.SetupFromXyzAbg( bufX, bufY, bufZ, alpha, beta, gamma ); + newBox.PrintInfo(); + // Convert to fractional + int nSolventInCell = 0; + Matrix_3x3 const& recip = newBox.FracCell(); + for (int ires = firstSolventRes; ires < topOut.Nres(); ires++) { + bool inCell = true; + Residue const& currentRes = topOut.Res(ires); + //mprintf("\t\t%s\n", topOut.TruncResNameNum(ires).c_str()); + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); at++) { + const double* XYZ = frameOut.XYZ(at); + Vec3 fc = recip * Vec3( XYZ ); + //mprintf("\t\t\t%s xyz={%f %f %f} frac={%f %f %f}\n", topOut.AtomMaskName(at).c_str(), XYZ[0], XYZ[1], XYZ[2], fc[0], fc[1], fc[2]); + if (fc[0] > 0.5) { inCell = false; break; } + if (fc[1] > 0.5) { inCell = false; break; } + if (fc[2] > 0.5) { inCell = false; break; } + if (fc[0] < -0.5) { inCell = false; break; } + if (fc[1] < -0.5) { inCell = false; break; } + if (fc[2] < -0.5) { inCell = false; break; } + } + //mprintf("\t\tInCell= %i\n", (int)inCell); + if (inCell) { + // Keep solvent + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); at++) + cmask.SelectAtom(at, true); + nSolventInCell++; + } else { + // Remove solvent + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); at++) + cmask.SelectAtom(at, false); + } + } // END loop over solvent residues + //cmask.MaskInfo(); // DEBUG + //mprintf("DEBUG: Should select %i atoms.\n", firstSolventAtom + (nSolventInCell*topOut.Res(firstSolventRes).NumAtoms())); + + // How far off is it? + int diff = nsolvent_ - nSolventInCell; + mprintf("DEBUG:\t%i solvent residues in cell. Diff: %i\n", nSolventInCell, diff); + + if (diff < 0) { + if (smallestNegDiff == 0 || diff > smallestNegDiff) { + smallestNegDiff = diff; + smallestBuf = Vec3(bufX, bufY, bufZ); + nTimesSmallestSeen = 1; + } else if (smallestNegDiff == diff) { + nTimesSmallestSeen++; + // Update smallest buffer; presumably is closer + smallestBuf = Vec3(bufX, bufY, bufZ); + } + } + mprintf("DEBUG: SmallestNegDiff= %i nTimesSmallestSeen= %i\n", smallestNegDiff, nTimesSmallestSeen); + // If this is the first time through choose an appropriate change val + if (ntries == 0) { + change = 0.001; + } + // See if we have tol more waters than the target TODO + if ((diff < 0 && nTimesSmallestSeen > 2) || (diff < 0 && diff >= negtol)) { + // Close enough, just remove the last water residue(s) + int nToRemove = -diff; + mprintf("\tOnly %i solvent molecules off, removing them.\n", nToRemove); + for (int ires = topOut.Nres() - 1; ires > firstSolventRes-1; ires--) { + Residue const& currentRes = topOut.Res(ires); + if (cmask.AtomInCharMask( currentRes.FirstAtom() )) { + mprintf("Removing %s\n", topOut.TruncResNameNum(ires).c_str()); + for (int at = currentRes.FirstAtom(); at != currentRes.LastAtom(); at++) + cmask.SelectAtom(at, false); + nToRemove--; + } + if (nToRemove < 1) break; + } + if (nToRemove > 0) { + mprinterr("Error: Could not remove enough solvent residues.\n"); + return 1; + } + //int LASTRES = firstSolventRes + nSolventInCell; + //int FIRSTRES = LASTRES + diff + 1; + //mprintf("\tOnly %i off, removing solvent residue(s) (%i-%i)", diff, FIRSTRES, LASTRES); + //for (int RRES = LASTRES; RRES >= FIRSTRES; RRES--) { + // mprintf("DEBUG: remove $MOLNAME $MOLNAME.%i\n", RRES-1); + //} + loop = false; + } else if (diff == 0) { + loop = false; + mprintf("DEBUG: Found.\n"); + } else { + double CHANGE_DIR = 0; + if ( lastdiff > 0 && diff < 0) { + change = change / 2.0; + CHANGE_DIR=-1; + } else if ( lastdiff < 0 && diff > 0) { + change = change / 2.0; + CHANGE_DIR=-1; + } else if (ntries > 0) { + // If we took a step and the size of the step we just took is smaller + // than the remaining distance to target, increase the step size. + int STEPSIZE = diff - lastdiff; + if (STEPSIZE < 0) { + STEPSIZE = -STEPSIZE; + } + int ABSDIFF = diff; + if (ABSDIFF < 0) { + ABSDIFF = -ABSDIFF; + } + //printf " STEP=%i ABS=%i " $STEPSIZE $ABSDIFF + if ( STEPSIZE > 0 && STEPSIZE < ABSDIFF) { + change = change * 2.4; + CHANGE_DIR=1; + } + } + lastdiff = diff; + // Choose a new buffer value + double CD = change * (double)diff; // TODO should be minus? + double newbufX = bufX + CD; // TODO should be minus + double newbufY = bufY + CD; // TODO should be minus + double newbufZ = bufZ + CD; // TODO should be minus + //CheckBuffer $newbuffer; + //lastbuffer=$buffer + checkBuffer(newbufX, boxX, maxX); + checkBuffer(newbufY, boxY, maxY); + checkBuffer(newbufZ, boxZ, maxZ); + bufX = newbufX; + bufY = newbufY; + bufZ = newbufZ; + mprintf("DEBUG: Change: %G (%g) newBuf= %f %f %f\n", change, CHANGE_DIR, bufX, bufY, bufZ); + } // END change calc + + // Safety valve + ntries++; + if (ntries > 100) { + mprintf("\tTaking too long - moving on...\n"); + loop = false; + mprintf("DEBUG: SmallestNegDiff %i (%i) : %f %f %f\n", smallestNegDiff, nTimesSmallestSeen, smallestBuf[0], smallestBuf[1], smallestBuf[2]); + } + } // END cell loop + +// cmask.MaskInfo(); + AtomMask imask( cmask.ConvertToIntMask(), topOut.Natom() ); +// imask.MaskInfo(); + Topology* newParm = topOut.modifyStateByMask( imask ); + if (newParm == 0) { + mprinterr("Error: Could not create topology with the desired # of solvent.\n"); + return 1; + } + topOut = *newParm; + delete newParm; + topOut.Brief("Topology with target # of solvent:"); + + Frame newFrame; + newFrame.SetupFrameV(topOut.Atoms(), frameOut.CoordsInfo()); + newFrame.SetFrame( frameOut, imask ); + frameOut = newFrame; + // --------------------------------------------- + // Define the size of the new solvent/solute system + soluteRadii = getAtomRadii(soluteMaxR, topOut, set0) ; + if (setVdwBoundingBox(boxX, boxY, boxZ, soluteRadii, frameOut, false)) { + mprinterr("Error: Setting vdw bounding box for solute/solvent system failed.\n", topOut.c_str()); + return 1; + } + if (doTruncatedOct_) { + double dAngle = 0; + ewald_rotate(frameOut, dAngle); + //mprintf("EwaldRotate: %f\n", dAngle); + // Add an angstrom to the desired box size rather than using the bounding box size + dAngle = clipX_ + .5; // NOTE: If truncoct is enabled for nsolvent, clipX_ will be 0 + boxX = boxY = boxZ = dAngle * sqrt(3.0) * 0.5; + } + + // Setup box + double boxBeta = 90.0; + if (doTruncatedOct_) { + boxBeta = Box::TruncatedOctAngle(); + boxX *= 2.0; + boxY *= 2.0; + boxZ *= 2.0; + } + newBox.SetupFromXyzAbg( boxX, boxY, boxZ, boxBeta, boxBeta, boxBeta ); + // --------------------------------------------- + frameOut.SetBox( newBox ); + frameOut.BoxCrd().PrintInfo("\t "); + topOut.SetParmBox( frameOut.BoxCrd() ); + mprintf("\t Volume: %5.3lf A^3\n", frameOut.BoxCrd().CellVolume()); + + // Reimage FIXME create separate init routine for autoimage + Action_AutoImage autoimage; + ArgList actionargs; + DataSetList tempdsl; + DataFileList tempdfl; + ActionInit AI(tempdsl, tempdfl); + if (autoimage.Init(actionargs, AI, debug_) != Action::OK) { + mprinterr("Error: Could not initialize autoimage for post-solvate.\n"); + return 1; + } + ActionSetup AS( &topOut, frameOut.CoordsInfo(), 1 ); + Action::RetType ret = autoimage.Setup( AS ); + if ( ret == Action::ERR || ret == Action::SKIP ) { + mprinterr("Error: Could not setup autoimage for post-solvate.\n"); + return 1; + } + ActionFrame frm( &frameOut, 0 ); + ret = autoimage.DoAction(0, frm); + if (ret == Action::ERR) { + mprinterr("Error: Could not autoimage post-solvate.\n"); + return 1; + } + + calculateDensity(topOut, frameOut, set0); + + return 0; +} + +/** Create box, fill with solvent */ +int Solvate::SolvateBox(Topology& topOut, Frame& frameOut, Cpptraj::Parm::ParameterSet const& set0, + DataSetList const& DSL) +{ + if (nsolvent_ > 0) { + return SolvateBoxWithExactNumber(topOut, frameOut, set0, DSL); + } + mprintf("\tAdding solvent.\n"); + // Sanity check + if (topOut.Natom() != frameOut.Natom()) { + mprinterr("Internal Error: Solvate::SolvateBox(): Topology %s #atoms %i != frame #atoms %i\n", + topOut.c_str(), topOut.Natom(), frameOut.Natom()); + return 1; + } + // Get solvent unit box + DataSet_Coords* solventUnitBox = GetSolventUnit( DSL ); + if (solventUnitBox == 0) { + mprinterr("Error: Getting solvent unit failed.\n"); + return 1; + } + DataSet_Coords& SOLVENTBOX = static_cast<DataSet_Coords&>( *solventUnitBox ); + + // TODO Remove any existing box info? + //if (frameOut.BoxCrd.HasBox()) + // TODO principal align + + // Set vdw box + double soluteMaxR; + std::vector<double> soluteRadii = getAtomRadii(soluteMaxR, topOut, set0); + // DEBUG + //for (int iat = 0; iat != topOut.Natom(); iat++) + // mprintf("SOLUTERADIUS %s %f\n",*(topOut[iat].Name()), soluteRadii[iat]); + double boxX, boxY, boxZ; + if (setVdwBoundingBox(boxX, boxY, boxZ, soluteRadii, frameOut, isotropic_)) { + mprinterr("Error: Setting vdw bounding box for %s failed.\n", topOut.c_str()); + return 1; + } + // Check if buffers need to be increased for trunc oct. + if (doTruncatedOct_) + octBoxCheck( frameOut ); + mprintf("\t Solute vdw bounding box: %-5.3f %-5.3f %-5.3f\n", boxX, boxY, boxZ); + + double dXWidth = boxX + bufferX_ * 2; + double dYWidth = boxY + bufferY_ * 2; + double dZWidth = boxZ + bufferZ_ * 2; + + adjustBoxWidths(dXWidth, dYWidth, dZWidth, boxX, boxY, boxZ); +/* + if (isotropic_) { + double dTemp = dXWidth * dYWidth * dZWidth; + + double dMax = std::max(dXWidth, dYWidth); + dMax = std::max(dMax, dZWidth); + dXWidth = dYWidth = dZWidth = dMax; + + dTemp = (dMax * dMax * dMax - dTemp ) / dTemp; + + mprintf("\t Total bounding box for atom centers: %5.3f %5.3f %5.3f\n", + dXWidth, dYWidth, dZWidth ); + mprintf("\t (box expansion for 'iso' is %5.1lf%%)\n", dTemp * 100.0 ); + + // To make the actual clip right, 'iso' the solute box + dTemp = std::max(boxX, boxY); + dTemp = std::max(dTemp, boxZ); + //dXBox = dYBox = dZBox = dTemp; + boxX = boxY = boxZ = dTemp; + } else + mprintf("\t Total bounding box for atom centers: %5.3f %5.3f %5.3f\n", + dXWidth, dYWidth, dZWidth ); +*/ + + if (clip_) { + // If the solvated system should be clipped to the exact + // size the user specified then note the criterion + // & dimensions (for 0,0,0-centered system) + //iCriteria |= TOOLOUTSIDEOFBOX; + clipX_ = 0.5 * boxX + bufferX_; + clipY_ = 0.5 * boxY + bufferY_; + clipZ_ = 0.5 * boxZ + bufferZ_; +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf("cCriteria: %f %f %f\n", clipX_, clipY_, clipZ_); // DEBUG +# endif + } + + // TODO check COORDS size + Frame solventFrame = SOLVENTBOX.AllocateFrame(); + SOLVENTBOX.GetFrame(0, solventFrame); + + // Set vdw box for solvent + double solventMaxR; + std::vector<double> solventRadii = getAtomRadii(solventMaxR, SOLVENTBOX.Top(), set0); + double solventX, solventY, solventZ; + if (solventFrame.BoxCrd().HasBox()) { + // Use input box lengths + // TODO check ortho? + solventX = solventFrame.BoxCrd().Param(Box::X); + solventY = solventFrame.BoxCrd().Param(Box::Y); + solventZ = solventFrame.BoxCrd().Param(Box::Z); + } else { + if (setVdwBoundingBox(solventX, solventY, solventZ, solventRadii, solventFrame, false)) { + mprinterr("Error: Setting vdw bounding box for %s failed.\n", SOLVENTBOX.legend()); + return 1; + } + } + mprintf("\t Solvent unit box: %5.3f %5.3f %5.3f\n", solventX, solventY, solventZ); + + // See how many solvent boxes required in each dimension + + int iX = (int)( dXWidth / solventX ) + 1; + int iY = (int)( dYWidth / solventY ) + 1; + int iZ = (int)( dZWidth / solventZ ) + 1; + + // Calculate the center of the first solvent box + // (the one that goes in the max XYZ corner), given + // that the solute is centered at 0,0,0 + double dXStart = 0.5 * solventX * (double) (iX-1); + double dYStart = 0.5 * solventY * (double) (iY-1); + double dZStart = 0.5 * solventZ * (double) (iZ-1); + + /* If the caller wants a solvent shell then */ + /* make sure that the box used to find interesting solute */ + /* spheres takes into account the dFarness parameter */ + /* so that there are at least some solute spheres in */ + /* the interesting list to check against solvent */ + + //if ( bShell ) + // dBuffer = dFarness; + //else + // dBuffer = 0.0; + + addSolventUnits(iX, iY, iZ, soluteMaxR, dXStart, dYStart, dZStart, solventX, solventY, solventZ, + solventFrame, SOLVENTBOX.Top(), frameOut, topOut, + soluteRadii, solventRadii); + + // Define the size of the new solvent/solute system + soluteRadii = getAtomRadii(soluteMaxR, topOut, set0) ; + if (setVdwBoundingBox(boxX, boxY, boxZ, soluteRadii, frameOut, false)) { + mprinterr("Error: Setting vdw bounding box for solute/solvent system failed.\n", topOut.c_str()); + return 1; + } + if (doTruncatedOct_) { + double dAngle = 0; + ewald_rotate(frameOut, dAngle); + //mprintf("EwaldRotate: %f\n", dAngle); + // Add an angstrom to the desired box size rather than using the bounding box size + dAngle = clipX_ + .5; + boxX = boxY = boxZ = dAngle * sqrt(3.0) * 0.5; + } + + // Setup box + double boxBeta = 90.0; + if (doTruncatedOct_) { + boxBeta = Box::TruncatedOctAngle(); + boxX *= 2.0; + boxY *= 2.0; + boxZ *= 2.0; + } + //mprintf("Max: %f %f %f\n", boxX, boxY, boxZ); + frameOut.ModifyBox().SetupFromXyzAbg(boxX, boxY, boxZ, boxBeta, boxBeta, boxBeta); + frameOut.BoxCrd().PrintInfo("\t "); + topOut.SetParmBox( frameOut.BoxCrd() ); + //mprintf("\t Total vdw box size:%s%5.3f %5.3f %5.3f angstroms.\n", " ", + // frameOut.BoxCrd().Param(Box::X), + // frameOut.BoxCrd().Param(Box::Y), + // frameOut.BoxCrd().Param(Box::Z)); + mprintf("\t Volume: %5.3lf A^3\n", frameOut.BoxCrd().CellVolume()); + calculateDensity(topOut, frameOut, set0); +/* // Sum mass + double sumMass = 0.0; + for (int at = 0; at < topOut.Natom(); at++) { + if (topOut[at].HasType()) { + Cpptraj::Parm::ParmHolder<AtomType>::const_iterator it = set0.AT().GetParam( TypeNameHolder(topOut[at].Type()) ); + if (it != set0.AT().end()) { + sumMass += it->second.Mass(); + } + } + } + if (sumMass > 0.0) { + mprintf("\t Total mass %5.3f amu, Density %5.3lf g/cc\n", sumMass, sumMass / (frameOut.BoxCrd().CellVolume() * 0.602204)); + } else { + mprintf("Warning: Mass could not be determined, so density unknown (i.e. type of all atoms could not be found)\n"); + }*/ + // Center if needed + if (center_) { + double dX2 = boxX * 0.5; + double dY2 = boxY * 0.5; + double dZ2 = boxZ * 0.5; + double* xptr = frameOut.xAddress(); + for (int at = 0; at < frameOut.Natom(); at++, xptr += 3) + { + xptr[0] += dX2; + xptr[1] += dY2; + xptr[2] += dZ2; + } + } + + return 0; +} + +/** \return a list of solute atoms that might clash with solvent. */ +int Solvate::findCloseSoluteAtoms(std::vector<int>& closeSoluteAtoms, double soluteMaxR, + int firstSolventAtom, Frame const& frameOut, Vec3 const& vCenter, + double dXWidth, double dYWidth, double dZWidth +# ifdef CPPTRAJ_DEBUG_SOLVATE + ,std::vector<double> const& soluteRadii // DEBUG +# endif + ) +const +{ + closeSoluteAtoms.clear(); +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf( "Searching for close solute atoms, buffer zone %f solute max %f closeness %f\n", 0.0, soluteMaxR, closeness_); // DEBUG +# endif + // Determine clearance from the box for testing whether + // a solute atom might contact an atom in the box. Assumes + // solvent box includes vdw. + double dTemp = soluteMaxR * 2.5 * closeness_; + + // FIXME do buffer zone? + // when building a shell, solute atoms within the + // shell distance are also of interest + // dTemp += dBufferZone; + + double dXmin = vCenter[0] - dXWidth/2.0 - dTemp; + double dXmax = vCenter[0] + dXWidth/2.0 + dTemp; + double dYmin = vCenter[1] - dYWidth/2.0 - dTemp; + double dYmax = vCenter[1] + dYWidth/2.0 + dTemp; + double dZmin = vCenter[2] - dZWidth/2.0 - dTemp; + double dZmax = vCenter[2] + dZWidth/2.0 + dTemp; +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf("Search clearances %f Min= %f %f %f Max= %f %f %f\n", dTemp, dXmin, dYmin, dZmin, dXmax, dYmax, dZmax); // DEBUG +# endif + + // Loop over solute atoms + for (int at = 0; at < firstSolventAtom; at++) + { + const double* XYZ = frameOut.XYZ(at); + if ( XYZ[0] < dXmin ) continue; + if ( XYZ[0] > dXmax ) continue; + if ( XYZ[1] < dYmin ) continue; + if ( XYZ[1] > dYmax ) continue; + if ( XYZ[2] < dZmin ) continue; + if ( XYZ[2] > dZmax ) continue; + + // all atom.coords inside solvent limit, so add to list +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf("Found an interesting sphere %f %f %f r=%f\n", XYZ[0], XYZ[1], XYZ[2], soluteRadii[at] ); // DEBUG +# endif + closeSoluteAtoms.push_back( at ); + } + return 0; +} + +/** LEaP's closeness modifier. Was just set to 1. Included here just in case. */ +const double Solvate::CLOSENESSMODIFIER_ = 1.0; + +/** Determine which solvent residues will not clash with existing solute atoms. */ +int Solvate::determineValidSolventResidues(std::vector<int>& validSolventResidues, + std::vector<int> const& closeSoluteAtoms, + Frame const& solventFrame, Topology const& solventTop, + Frame const& frameOut, + std::vector<double> const& soluteRadii, + std::vector<double> const& solventRadii) +const +{ + validSolventResidues.clear(); + for (int vres = 0; vres < solventTop.Nres(); vres++) + { + Residue const& solventRes = solventTop.Res(vres); + bool collision = false; + // Check each atom in the solvent residue against list of close solute atoms + for (int vat = solventRes.FirstAtom(); vat != solventRes.LastAtom(); vat++) + { + const double* VXYZ = solventFrame.XYZ(vat); + // First check for clipping + if (clip_) { + double dXabs = fabs(VXYZ[0]); + double dYabs = fabs(VXYZ[1]); + double dZabs = fabs(VXYZ[2]); +# ifdef CPPTRAJ_DEBUG_SOLVATE + if ( dXabs >= clipX_ ) { collision = true; mprintf("CLIP %12.4f %12.4f %12.4f\n",VXYZ[0],VXYZ[1],VXYZ[2]); break; } // DEBUG + if ( dYabs >= clipY_ ) { collision = true; mprintf("CLIP %12.4f %12.4f %12.4f\n",VXYZ[0],VXYZ[1],VXYZ[2]); break; } // DEBUG + if ( dZabs >= clipZ_ ) { collision = true; mprintf("CLIP %12.4f %12.4f %12.4f\n",VXYZ[0],VXYZ[1],VXYZ[2]); break; } // DEBUG +# else + if ( dXabs >= clipX_ ) { collision = true; break; } + if ( dYabs >= clipY_ ) { collision = true; break; } + if ( dZabs >= clipZ_ ) { collision = true; break; } +# endif + // Check if atom falls outside of oct/diagonal clip + if (doTruncatedOct_) { + double dX = 0.5 * (clipX_ - dXabs) / clipX_; + dX = fabs( dX - 0.5 ); + double dY = 0.5 * (clipY_ - dYabs) / clipY_; + dY = fabs( dY - 0.5 ); + double dZ = 0.5 * (clipZ_ - dZabs) / clipZ_; + dZ = fabs( dZ - 0.5 ); + if ( ( dX + dY + dZ ) > 0.75 ) { collision = true; break; } + } + } // END if clip + double dR = solventRadii[vat] * closeness_ * CLOSENESSMODIFIER_; + // Loop over close solute atoms, check for clash + for (std::vector<int>::const_iterator uat = closeSoluteAtoms.begin(); uat != closeSoluteAtoms.end(); ++uat) + { + const double* UXYZ = frameOut.XYZ(*uat); + double dX = VXYZ[0] - UXYZ[0]; + double dY = VXYZ[1] - UXYZ[1]; + double dZ = VXYZ[2] - UXYZ[2]; + + double dist2 = dX*dX + dY*dY + dZ*dZ; +// mprintf("RADIUS %f\n", soluteRadii[*uat]); + double dRadii = dR + soluteRadii[*uat]; + dRadii *= dRadii; + + if (dist2 < dRadii) { + collision = true; +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf("OVERLAP %12.4f %12.4f %12.4f %12.4f %12.4f %12.4f %12.4f\n", VXYZ[0],VXYZ[1],VXYZ[2], dist2, dRadii, solventRadii[vat], soluteRadii[*uat]); // DEBUG +# endif + break; + } + } // END loop over close solute atoms + if (collision) break; + } // END loop over solvent residue atoms + if (!collision) + validSolventResidues.push_back( vres ); + } // END loop over solvent residues + return 0; +} + +/** Add as many solvent units as needed to complete solvation. */ +int Solvate::addSolventUnits(int numX, int numY, int numZ, double soluteMaxR, + double dXStart, double dYStart, double dZStart, + double dXSolvent, double dYSolvent, double dZSolvent, + Frame& solventFrame, Topology const& solventTop, + Frame& frameOut, Topology& topOut, + std::vector<double> const& soluteRadii, + std::vector<double> const& solventRadii) +const +{ + if (debug_ > 0) { + mprintf( "Max R = %f\n", soluteMaxR); + mprintf( "The number of boxes: x=%2d y=%2d z=%2d\n", numX, numY, numZ ); + } + int NboxesToAdd = numX * numY * numZ; + int NatomsToAdd = NboxesToAdd * solventTop.Natom(); + mprintf("\t Will add %i solvent boxes, max %i atoms.\n", NboxesToAdd, NatomsToAdd); + frameOut.IncreaseX( NatomsToAdd ); + + // Current solvent unit center + Vec3 currentSolventCenter = solventFrame.VGeometricCenter(); + + int firstSolventAtom = topOut.Natom(); + if (debug_ > 0) + mprintf("DEBUG: First solvent atom is %i\n", firstSolventAtom+1); + + std::vector<int> bondedAtoms; + bondedAtoms.reserve(12); // Reserve for 6 bonds + + std::vector<int> closeSoluteAtoms; + std::vector<int> validSolventResidues; + + double dX = dXStart; + for ( int ix=0; ix < numX; ix++, dX -= dXSolvent ) { + double dY = dYStart; + for ( int iy=0; iy < numY; iy++, dY -= dYSolvent ) { + double dZ = dZStart; + for ( int iz=0; iz < numZ; iz++, dZ -= dZSolvent ) { +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf( "Adding box at: x=%d y=%d z=%d\n", ix, iy, iz); // DEBUG +# endif + Vec3 vPos(dX, dY, dZ); + + findCloseSoluteAtoms(closeSoluteAtoms, soluteMaxR, firstSolventAtom, frameOut, vPos, + dXSolvent, dYSolvent, dZSolvent +# ifdef CPPTRAJ_DEBUG_SOLVATE + , soluteRadii // DEBUG soluteRadii +# endif + ); +# ifdef CPPTRAJ_DEBUG_SOLVATE + mprintf( "Center of solvent box is: %lf, %lf, %lf\n", dX, dY, dZ ); // DEBUG +# endif + Vec3 trans( dX - currentSolventCenter[0], + dY - currentSolventCenter[1], + dZ - currentSolventCenter[2] ); + solventFrame.Translate(trans); + //Vec3 debugVec = solventFrame.VGeometricCenter(); + //debugVec.Print("DEBUG: check solvent center"); + + determineValidSolventResidues(validSolventResidues, closeSoluteAtoms, solventFrame, solventTop, + frameOut, soluteRadii, solventRadii); + + // Update the current solvent center + currentSolventCenter[0] = dX; + currentSolventCenter[1] = dY; + currentSolventCenter[2] = dZ; + + // Add valid residues from solvent unit to output topology for this cube + topOut.AddResidues( solventTop, validSolventResidues, frameOut, solventFrame, true ); + // Append solvent frame + //frameOut.AppendFrame( solventFrame ); + } // END loop over Z + } // END loop over Y + } // END loop over X + + return 0; +} diff --git a/src/Structure/Solvate.h b/src/Structure/Solvate.h new file mode 100644 index 0000000000..a3a2c5df3f --- /dev/null +++ b/src/Structure/Solvate.h @@ -0,0 +1,97 @@ +#ifndef INC_SOLVATE_H +#define INC_SOLVATE_H +#include <string> +#include <vector> +class ArgList; +class DataSet_Coords; +class DataSetList; +class Frame; +class Topology; +class Vec3; +namespace Cpptraj { +namespace Parm { +class ParameterSet; +} +namespace Structure { +/// Used to add solvent to a frame/topology pair. +class Solvate { + public: + /// CONSTRUCTOR + Solvate(); + /// Initialize + int InitSolvate(ArgList&, bool, int); + /// Initialize for setbox + int InitSetbox(ArgList&, int); + /// Set VDW bounding box + int SetVdwBoundingBox(Topology&, Frame&, Cpptraj::Parm::ParameterSet const& set0); + /// Solvate with box + int SolvateBox(Topology&, Frame&, Cpptraj::Parm::ParameterSet const&, DataSetList const&); + + static const char* SetboxKeywords(); + static const char* SolvateKeywords1(); + static const char* SolvateKeywords2(); + + /// \return Solvent box name + std::string const& SolventBoxName() const { return solventBoxName_; } + /// Print solvate info to stdout + void PrintSolvateInfo() const; + private: + /// \return Solvent unit selected from given DataSetList + DataSet_Coords* GetSolventUnit(DataSetList const&) const; + /// Adjust box widths + void adjustBoxWidths(double&, double&, double&, double&, double&, double&) const; + /// Calculate density + static void calculateDensity(Topology const&, Frame const&, Cpptraj::Parm::ParameterSet const&); + /// \return number of boxes needed to create layer + static unsigned int nBoxesInLayer(int); + /// \return number of boxes needed to create cube + static unsigned int nBoxesInCube(int); + /// Solvate with box and specified number of solvent + int SolvateBoxWithExactNumber(Topology&, Frame&, Cpptraj::Parm::ParameterSet const&, DataSetList const&); + /// Get buffer arguments + int getBufferArg(ArgList&, double); + /// Get radii for atoms in topology + std::vector<double> getAtomRadii(double&, Topology const&, + Cpptraj::Parm::ParameterSet const&) const; + /// Set vdW bounding box + int setVdwBoundingBox(double&, double&, double&, std::vector<double> const&, Frame&, bool) const; + /// Find solute atoms within a solvent box at given center + int findCloseSoluteAtoms(std::vector<int>&, double, int, Frame const&, Vec3 const&, double, double, double +# ifdef CPPTRAJ_DEBUG_SOLVATE + , std::vector<double> const& +# endif + ) const; + /// Determine which solvent residues do not clash with given solute atoms + int determineValidSolventResidues(std::vector<int>&, std::vector<int> const&, + Frame const&, Topology const&, Frame const&, + std::vector<double> const&, std::vector<double> const&) const; + /// Scale up buffer sizes for oct box if needed + void octBoxCheck(Frame const&); + /// Ewald rotate for trun. oct system + static void ewald_rotate(Frame&, double&); + /// Add solvent unit boxes + int addSolventUnits(int, int, int, double, double, double, double, double, double, double, + Frame&, Topology const&, Frame&, Topology&, + std::vector<double> const&, std::vector<double> const&) const; + + int debug_; + unsigned int nsolvent_; + double bufferX_; + double bufferY_; + double bufferZ_; + double bufferD_; + double closeness_; + double clipX_; + double clipY_; + double clipZ_; + bool isotropic_; + bool clip_; + bool center_; + bool doTruncatedOct_; + std::string solventBoxName_; + static const double ATOM_DEFAULT_RADIUS_; ///< Atom default radius from LEaP + static const double CLOSENESSMODIFIER_; ///< Overlap closeness modifier from LEaP +}; +} +} +#endif diff --git a/src/Structure/StructureEnum.cpp b/src/Structure/StructureEnum.cpp index 1ef86d24f8..b158ff2838 100644 --- a/src/Structure/StructureEnum.cpp +++ b/src/Structure/StructureEnum.cpp @@ -3,10 +3,19 @@ /** \return string corresponding to ChiralType */ const char* Cpptraj::Structure::chiralStr(ChiralType ct) { switch (ct) { - case CHIRALITY_ERR : return "Error"; case IS_S : return "S"; case IS_R : return "R"; case IS_UNKNOWN_CHIRALITY : return "Unknown"; } return 0; } + +/** return string corresponding to TerminalType */ +const char* Cpptraj::Structure::terminalStr(TerminalType tt) { + switch (tt) { + case BEG_TERMINAL : return "Begin"; + case NON_TERMINAL : return "Non"; + case END_TERMINAL : return "End"; + } + return 0; +} diff --git a/src/Structure/StructureEnum.h b/src/Structure/StructureEnum.h index 311767921a..a860a4befd 100644 --- a/src/Structure/StructureEnum.h +++ b/src/Structure/StructureEnum.h @@ -1,12 +1,21 @@ #ifndef INC_STRUCTURE_STRUCTUREENUM_H #define INC_STRUCTURE_STRUCTUREENUM_H namespace Cpptraj { +/** @brief The namespace for all structure related classes. + * + * This namespace holds all classes related to building systems. + */ namespace Structure { enum ChiralType { CHIRALITY_ERR = 0, IS_S, IS_R, IS_UNKNOWN_CHIRALITY }; /// \return String corresponding to ChiralType const char* chiralStr(ChiralType); +/// Residue terminal type +enum TerminalType { BEG_TERMINAL = 0, NON_TERMINAL, END_TERMINAL }; +/// \return String corresponding to TerminalType +const char* terminalStr(TerminalType); + } } #endif diff --git a/src/Structure/SugarBuilder.cpp b/src/Structure/SugarBuilder.cpp index 8e6ea7cff8..bb733177eb 100644 --- a/src/Structure/SugarBuilder.cpp +++ b/src/Structure/SugarBuilder.cpp @@ -20,9 +20,34 @@ SugarBuilder::SugarBuilder(int debugIn) : offset_(0.2), hasGlycam_(false), useSugarName_(false), - debug_(debugIn) + debug_(debugIn), + FGB_(0) {} +/** DESTRUCTOR */ +SugarBuilder::~SugarBuilder() { + if (FGB_ != 0) delete FGB_; +} + +/** Sugar options */ +const char* SugarBuilder::keywords_ = + "\t[{nosugars |\n" + "\t sugarmask <sugarmask> [noc1search] [nosplitres]\n" + "\t [rescut <residue cutoff>] [bondoffset <offset>]\n" + "\t [resmapfile <file>]\n" + "\t [hasglycam] [determinesugarsby {geom|name}]\n" + "\t }]\n"; + +/** Get options from arglist */ +int SugarBuilder::InitSugarBuilder(ArgList& argIn) { + return InitOptions( argIn.hasKey("hasglycam"), + argIn.getKeyDouble("rescut", 8.0), + argIn.getKeyDouble("bondoffset", 0.2), + argIn.GetStringKey("sugarmask"), + argIn.GetStringKey("determinesugarsby", "geometry"), + argIn.GetStringKey("resmapfile") ); +} + /** Initialize options. */ int SugarBuilder::InitOptions(bool hasGlycamIn, double rescutIn, @@ -1709,7 +1734,8 @@ void SugarBuilder::CacheResidueCenters(Topology const& topIn, Frame const& frame /** Attempt to find any missing linkages to the anomeric carbon in sugar. */ int SugarBuilder::FindSugarC1Linkages(int rnum1, int c_beg, Topology& topIn, Frame const& frameIn, - NameType const& solventResName) + NameType const& solventResName, + std::vector<BondType>& LeapBonds) const { //Residue const& res1 = topIn.SetRes(rnum1); @@ -1799,6 +1825,7 @@ const mprintf("\t Adding bond between %s and %s\n", topIn.ResNameNumAtomNameNum(c_beg).c_str(), topIn.ResNameNumAtomNameNum(closest_at).c_str()); + LeapBonds.push_back( BondType(c_beg, closest_at, -1) ); topIn.AddBond(c_beg, closest_at); } return 0; @@ -1807,25 +1834,28 @@ const /** Try to fix issues with sugar structure before trying to identify. */ int SugarBuilder::FixSugarsStructure(Topology& topIn, Frame& frameIn, bool c1bondsearch, bool splitres, - NameType const& solventResName) + NameType const& solventResName, + std::vector<BondType>& LeapBonds) { // Set up an AtomMap for this residue to help determine stereocenters. // This is required by the IdSugarRing() function. //myMap_.SetDebug(debug_); // DEBUG + myMap_.SetAllowNoBonds( true ); if (myMap_.Setup(topIn, frameIn)) { mprinterr("Internal Error: FixSugarsStructure: Atom map setup failed.\n"); return 1; } - myMap_.DetermineAtomIDs(); + myMap_.AssignUniqueAtomIDs(); Sugars_.clear(); AtomMask sugarMask(sugarmaskstr_); - mprintf("\tLooking for sugars selected by '%s'\n", sugarMask.MaskString()); + if (debug_ > 0) + mprintf("DEBUG:\tLooking for sugars selected by '%s'\n", sugarMask.MaskString()); if (topIn.SetupIntegerMask( sugarMask )) return 1; //sugarMask.MaskInfo(); mprintf("\tSelected %i sugar atoms.\n", sugarMask.Nselected()); if (sugarMask.None()) { - mprintf("Warning: No sugar atoms selected by %s\n", sugarMask.MaskString()); + //mprintf("Warning: No sugar atoms selected by %s\n", sugarMask.MaskString()); return 0; } // Cache residue distances if we will be looking for linkages @@ -1869,7 +1899,7 @@ int SugarBuilder::FixSugarsStructure(Topology& topIn, Frame& frameIn, if (sugar->NotSet()) continue; int anomericAtom = sugar->AnomericAtom(); int rnum = sugar->ResNum(topIn); - if (FindSugarC1Linkages(rnum, anomericAtom, topIn, frameIn, solventResName)) { + if (FindSugarC1Linkages(rnum, anomericAtom, topIn, frameIn, solventResName, LeapBonds)) { mprinterr("Error: Search for bonds to anomeric carbon '%s' failed.\n", topIn.AtomMaskName(anomericAtom).c_str()); return 1; @@ -1880,26 +1910,17 @@ int SugarBuilder::FixSugarsStructure(Topology& topIn, Frame& frameIn, //for (std::vector<Sugar>::const_iterator sugar = sugarResidues.begin(); // sugar != sugarResidues.end(); ++sugar) // sugar->PrintInfo(topIn); - FxnGroupBuilder FGB(debug_); - if (splitres) { - // Loop over sugar indices to see if residues have ROH that must be split off - for (std::vector<Sugar>::iterator sugar = Sugars_.begin(); - sugar != Sugars_.end(); ++sugar) - { - if (sugar->NotSet()) continue; - if (FGB.CheckIfSugarIsTerminal(*sugar, topIn, frameIn)) { - mprinterr("Error: Checking if sugar %s has terminal functional groups failed.\n", - topIn.TruncResNameOnumId(sugar->ResNum(topIn)).c_str()); - return 1; - } - } // End loop over sugar indices - // Loop over chain indices to see if residues need to be split + if (splitres) { + if (FGB_ != 0) + delete FGB_; + FGB_ = new FxnGroupBuilder(debug_); + // Loop over chain indices to see if functional groups should be split into separate residues for (std::vector<Sugar>::iterator sugar = Sugars_.begin(); sugar != Sugars_.end(); ++sugar) { if (sugar->NotSet()) continue; - if (FGB.CheckForFunctionalGroups(*sugar, topIn, frameIn)) { + if (FGB_->CheckForFunctionalGroups(*sugar, topIn, frameIn)) { mprinterr("Error: Checking if sugar %s has functional groups failed.\n", topIn.TruncResNameOnumId( sugar->ResNum(topIn) ).c_str()); return 1; @@ -1909,9 +1930,13 @@ int SugarBuilder::FixSugarsStructure(Topology& topIn, Frame& frameIn, //for (std::vector<Sugar>::const_iterator sugar = sugarResidues.begin(); // sugar != sugarResidues.end(); ++sugar) // sugar->PrintInfo(topIn); + if (FGB_->NgroupsFound() > 0) { + mprintf("\t Found %u functional groups:\n", FGB_->NgroupsFound()); + for (FxnGroupBuilder::const_iterator it = FGB_->begin(); it != FGB_->end(); ++it) + mprintf("\t %li : %s (%s)\n", it - FGB_->begin(), topIn.TruncResNameNum(it->Ires()).c_str(), FunctionalGroup::typeString(it->Ftype())); + } } - return 0; } @@ -1929,9 +1954,10 @@ int SugarBuilder::PrepareSugars(bool errorsAreFatal, if (topIn.SetupIntegerMask( sugarMask )) return 1; //sugarMask.MaskInfo(); mprintf("\t%i sugar atoms selected in %zu residues.\n", sugarMask.Nselected(), Sugars_.size()); - if (sugarMask.None()) - mprintf("Warning: No sugar atoms selected by %s\n", sugarMask.MaskString()); - else { + if (sugarMask.None()) { + if (debug_ > 0) + mprintf("DEBUG: No sugar atoms selected by %s\n", sugarMask.MaskString()); + } else { CharMask cmask( sugarMask.ConvertToCharMask(), sugarMask.Nselected() ); if (debug_ > 0) { for (std::vector<Sugar>::const_iterator sugar = Sugars_.begin(); @@ -1965,7 +1991,7 @@ int SugarBuilder::PrepareSugars(bool errorsAreFatal, { //outfile->Printf("%s\n", LeapInterface::LeapBond(bnd->A1(), bnd->A2(), leapunitname, topIn).c_str()); LeapBonds.push_back( *bnd ); - topIn.RemoveBond(bnd->A1(), bnd->A2()); + //topIn.RemoveBond(bnd->A1(), bnd->A2()); } // Remove bonds between sugars for (std::set<BondType>::const_iterator bnd = sugarBondsToRemove.begin(); @@ -1973,18 +1999,38 @@ int SugarBuilder::PrepareSugars(bool errorsAreFatal, { //outfile->Printf("%s\n", LeapInterface::LeapBond(bnd->A1(), bnd->A2(), leapunitname, topIn).c_str()); LeapBonds.push_back( *bnd ); - topIn.RemoveBond(bnd->A1(), bnd->A2()); + //topIn.RemoveBond(bnd->A1(), bnd->A2()); } // Bonds to sugars have been removed, so regenerate molecule info - topIn.DetermineMolecules(); - // Set each sugar as terminal - for (std::vector<Sugar>::const_iterator sugar = Sugars_.begin(); sugar != Sugars_.end(); ++sugar) - { - int rnum = sugar->ResNum(topIn); - topIn.SetRes(rnum).SetTerminal(true); - if (rnum - 1 > -1) - topIn.SetRes(rnum-1).SetTerminal(true); - } + //topIn.DetermineMolecules(); } return 0; } + +/** When being used in prepareforleap, this is used to set each sugar as + * terminal, which LEaP needs. + */ +void SugarBuilder::SetEachSugarAsTerminal(Topology& topIn) const { + // Set each sugar as terminal + for (std::vector<Sugar>::const_iterator sugar = Sugars_.begin(); sugar != Sugars_.end(); ++sugar) + { + int rnum = sugar->ResNum(topIn); + topIn.SetRes(rnum).SetTerminal(true); + if (rnum - 1 > -1) + topIn.SetRes(rnum-1).SetTerminal(true); + } +} + +/** Print warnings related to functional groups. */ +void SugarBuilder::PrintFxnGroupWarnings(Topology const& topIn) const { + if (FGB_ != 0) + FGB_->LeapFxnGroupWarning(topIn); +} + +/** Perform any necessary topology modifications for found functional groups. */ +int SugarBuilder::ModifyFoundFxnGroups(Topology& topIn, bool& top_is_modified) const { + int err = 0; + if (FGB_ != 0) + err = FGB_->ModifyFxnGroups(topIn, top_is_modified); + return err; +} diff --git a/src/Structure/SugarBuilder.h b/src/Structure/SugarBuilder.h index 28e93a3d75..b0e116069e 100644 --- a/src/Structure/SugarBuilder.h +++ b/src/Structure/SugarBuilder.h @@ -8,6 +8,7 @@ class NameType; namespace Cpptraj { namespace Structure { // Forward declares +class FxnGroupBuilder; class Sugar; class ResStatArray; /// Class for preparing sugars in a topology @@ -17,15 +18,25 @@ class SugarBuilder { typedef std::vector<Sugar> Array; /// CONSTRUCTOR - Take debug level SugarBuilder(int); - /// Init options: hasGlycam, residue cutoff, bond offset, sugar mask str, determineSugarsBy, resmapfile - int InitOptions(bool, double, double, std::string const&, std::string const&, std::string const&); + /// DESTRUCTOR + ~SugarBuilder(); + /// Keywords + static const char* keywords_; + /// Initialize from ArgList + int InitSugarBuilder(ArgList&); /// \return true if given res name is a recognized PDB sugar bool IsRecognizedPdbSugar(NameType const&) const; /// ID sugar rings, find missing C1 links, split off functional groups int FixSugarsStructure(Topology&, Frame&, - bool, bool, NameType const&); + bool, bool, NameType const&, std::vector<BondType>&); /// Identify sugars, do renaming, remove bonds, generate leap input int PrepareSugars(bool, ResStatArray&, Topology&, Frame const&, std::vector<BondType>&); + /// Set each sugar as a terminal residue + void SetEachSugarAsTerminal(Topology&) const; + /// Print any found functional group warnings + void PrintFxnGroupWarnings(Topology const&) const; + /// Perform any necessary modifications for found functional groups + int ModifyFoundFxnGroups(Topology&, bool&) const; private: typedef std::vector<int> Iarray; @@ -38,6 +49,8 @@ class SugarBuilder { typedef std::pair<std::string, int> ResIdxPairType; typedef std::map<std::string, int> ResIdxMapType; + /// Init options: hasGlycam, residue cutoff, bond offset, sugar mask str, determineSugarsBy, resmapfile + int InitOptions(bool, double, double, std::string const&, std::string const&, std::string const&); /// Set a reduced PDB res to glycam map when dat file not found. void SetGlycamPdbResMap(); /// Load PDB res to glycam map from dat file @@ -86,7 +99,7 @@ class SugarBuilder { /// Cache residue centers for determining linkages void CacheResidueCenters(Topology const&, Frame const&); /// Try to find missing linkages to anomeric carbon in sugar. - int FindSugarC1Linkages(int, int, Topology&, Frame const&, NameType const&) const; + int FindSugarC1Linkages(int, int, Topology&, Frame const&, NameType const&, std::vector<BondType>&) const; @@ -116,6 +129,7 @@ class SugarBuilder { bool useSugarName_; ///< If true, base form/chirality on name instead of geometry AtomMap myMap_; ///< Used to determine unique atoms for chirality int debug_; + FxnGroupBuilder* FGB_; }; } } diff --git a/src/Structure/Zmatrix.cpp b/src/Structure/Zmatrix.cpp index 538564c2b9..2d2dab8ad3 100644 --- a/src/Structure/Zmatrix.cpp +++ b/src/Structure/Zmatrix.cpp @@ -1,11 +1,9 @@ #include <vector> -#include <algorithm> // std::sort, std::min, std::max +#include <algorithm> // std::sort, std::min, std::max, std::find, std::swap #include <stack> #include <cmath> // cos -#include <utility> // std::pair #include "Zmatrix.h" -#include "BuildAtom.h" -#include "Model.h" +#include "GenerateConnectivityArrays.h" #include "../Frame.h" #include "../CpptrajStdio.h" #include "../Constants.h" @@ -43,6 +41,11 @@ void Zmatrix::clear() { seedAt2_ = InternalCoords::NO_ATOM; } +/** Sort ICs. */ +void Zmatrix::sort() { + std::sort( IC_.begin(), IC_.end() ); +} + /// Error message for seed already set static inline int seed_err(int iseed) { mprinterr("Internal Error: Internal coord seed %i is already set.\n", iseed); @@ -77,6 +80,12 @@ int Zmatrix::AddIC(InternalCoords const& ic) { return 0; } +/** Calculate and add internal coordinate from frame. */ +int Zmatrix::AddIC(int ai, int aj, int ak, int al, Frame const& frameIn) { + addIc(ai, aj, ak, al, frameIn); + return 0; +} + /** Set IC at specified position. */ // TODO check if seed? void Zmatrix::SetIC(unsigned int idx, InternalCoords const& ic) { IC_[idx] = ic; @@ -93,7 +102,7 @@ std::vector<int> Zmatrix::AtomI_indices(int atomi) const { } /** Print to stdout */ -void Zmatrix::print(Topology* topIn) const { +void Zmatrix::print(Topology const* topIn) const { mprintf("%zu internal coords.\n", IC_.size()); mprintf("Seed IC indices : %i %i %i\n", icseed0_+1, icseed1_+1, icseed2_+1); mprintf("Seed Cart. indices : %i %i %i\n", seedAt0_+1, seedAt1_+1, seedAt2_+1); @@ -120,6 +129,12 @@ void Zmatrix::print(Topology* topIn) const { } } +/** Increment IC indices by given offset */ +void Zmatrix::OffsetIcIndices(int offset) { + for (ICarray::iterator it = IC_.begin(); it != IC_.end(); ++it) + it->OffsetIndices(offset); +} + /** \return True if all Cartesian seeds are set. */ bool Zmatrix::HasCartSeeds() const { bool has_cart_seed = (seedAt0_ != InternalCoords::NO_ATOM && @@ -167,17 +182,118 @@ static inline void MARK(int i, std::vector<bool>& isUsed, unsigned int& Nused) { } } -/** Calculate and add an internal coordinate given atom indices +/** Calculate an internal coordinate given atom indices * and corresponding Cartesian coordinates. */ -void Zmatrix::addIc(int at0, int at1, int at2, int at3, +static inline InternalCoords calcIc(int at0, int at1, int at2, int at3, const double* xyz0, const double* xyz1, const double* xyz2, const double* xyz3) { - IC_.push_back( InternalCoords(at0, at1, at2, at3, + return InternalCoords(at0, at1, at2, at3, sqrt(DIST2_NoImage(xyz0, xyz1)), CalcAngle(xyz0, xyz1, xyz2) * Constants::RADDEG, - Torsion(xyz0, xyz1, xyz2, xyz3) * Constants::RADDEG) ); + Torsion(xyz0, xyz1, xyz2, xyz3) * Constants::RADDEG); +} + +/** Calculate and add an internal coordinate given atom indices + * and corresponding Cartesian coordinates. + */ +void Zmatrix::addIc(int at0, int at1, int at2, int at3, Frame const& frameIn) { + IC_.push_back( calcIc(at0, at1, at2, at3, frameIn.XYZ(at0), frameIn.XYZ(at1), frameIn.XYZ(at2), frameIn.XYZ(at3)) ); +} + +/** Set seeds as 3 consecutive atoms from mol 0 for which positions are known. */ +int Zmatrix::AutoSetSeedsWithPositions(Frame const& frameIn, Topology const& topIn, int ires, Barray const& positionKnown) +{ + return autoSetSeeds_withPositions(frameIn, topIn, topIn.Res(ires).FirstAtom(), topIn.Res(ires).LastAtom(), positionKnown); +} + +/** Set seeds as 3 consecutive atoms for which positions are known. */ +int Zmatrix::autoSetSeeds_withPositions(Frame const& frameIn, Topology const& topIn, int startAtom, int endAtom, Barray const& positionKnown) +{ + seedAt0_ = InternalCoords::NO_ATOM; + seedAt1_ = InternalCoords::NO_ATOM; + seedAt2_ = InternalCoords::NO_ATOM; + + if (positionKnown.empty()) { + mprinterr("InternalError: Zmatrix::autoSetSeeds_withPositions() called with an empty known position array.\n"); + return 1; + } + int numAtoms = endAtom - startAtom; + if (numAtoms < 1) { + mprinterr("Internal Error: Zmatrix::autoSetSeeds_withPositions() called with start <= end atom.\n"); + return 1; + } + mprintf("DEBUG: autoSetSeeds_withPositions from atoms %s to %s\n", topIn.AtomMaskName(startAtom).c_str(), topIn.AtomMaskName(endAtom-1).c_str()); + // Special cases + if (numAtoms == 1) { + seedAt0_ = startAtom; + seed0Pos_ = Vec3(frameIn.XYZ(seedAt0_)); + return 0; + } else if (numAtoms == 2) { + seedAt0_ = startAtom; + seed0Pos_ = Vec3(frameIn.XYZ(seedAt0_)); + if (topIn[seedAt0_].Nbonds() != 1) { + mprinterr("Internal Error: Zmatrix::autoSetSeeds_simple(): 2 atoms but no bonds.\n"); + return 1; + } + seedAt1_ = topIn[seedAt0_].Bond(0); + seed1Pos_ = Vec3(frameIn.XYZ(seedAt1_)); + return 0; + } + // Loop over atoms in the molecule + int numS2bonds = -1; + for (int at = startAtom; at < endAtom; at++) { +// for (Unit::const_iterator seg = mol.MolUnit().segBegin(); +// seg != mol.MolUnit().segEnd(); ++seg) +// { +// for (int at = seg->Begin(); at != seg->End(); ++at) { + if (positionKnown[at]) { + Atom const& AJ = topIn[at]; + if (AJ.Nbonds() > 1) { + for (int bidx1 = 0; bidx1 < AJ.Nbonds(); bidx1++) { + for (int bidx2 = bidx1 + 1; bidx2 < AJ.Nbonds(); bidx2++) { + int bat1 = AJ.Bond(bidx1); + int bat2 = AJ.Bond(bidx2); + if (positionKnown[bat1] && positionKnown[bat2]) { + int s1 = at; + int s0, s2; + // b1 - AJ - b2 + Atom const& b1 = topIn[bat1]; + Atom const& b2 = topIn[bat2]; + // The atom with more bonds should be AK (seed 2) + if (b1.Nbonds() > b2.Nbonds()) { + s0 = bat2; + s2 = bat1; + } else { + s0 = bat1; + s2 = bat2; + } + if (numS2bonds == -1 || topIn[s2].Nbonds() > numS2bonds) { + seedAt0_ = s0; + seedAt1_ = s1; + seedAt2_ = s2; + numS2bonds = topIn[s2].Nbonds(); + } + } + } // END inner loop over bonded atoms + } // END outer loop over bonded atoms + } // END AJ bonds > 1 + } // END position of AJ is known + //} // END loop over segment atoms + } // END loop over segments + + if (seedAt0_ == InternalCoords::NO_ATOM || + seedAt1_ == InternalCoords::NO_ATOM || + seedAt2_ == InternalCoords::NO_ATOM) + { + mprinterr("Error: No suitable seed atoms with known positions could be found.\n"); + return 1; + } + seed0Pos_ = Vec3(frameIn.XYZ(seedAt0_)); + seed1Pos_ = Vec3(frameIn.XYZ(seedAt1_)); + seed2Pos_ = Vec3(frameIn.XYZ(seedAt2_)); + return 0; } /** Simple automatic setting of seeds for a molecule. @@ -190,11 +306,11 @@ int Zmatrix::autoSetSeeds_simple(Frame const& frameIn, Topology const& topIn, Mo seedAt1_ = InternalCoords::NO_ATOM; seedAt2_ = InternalCoords::NO_ATOM; - // Handle special cases if (mol.NumAtoms() < 1) { mprinterr("Internal Error: Zmatrix::autoSetSeeds_simple() called with an empty molecule.\n"); return 1; } + // Handle special cases if (mol.NumAtoms() == 1) { seedAt0_ = mol.MolUnit().Front(); seed0Pos_ = Vec3(frameIn.XYZ(seedAt0_)); @@ -330,7 +446,7 @@ int Zmatrix::traceMol(int atL0, int atK0, int atJ0, } // Create ICs for 1 bond atoms for (Iarray::const_iterator atI = OneBondAtoms.begin(); atI != OneBondAtoms.end(); ++atI) { - addIc(*atI, atJ, atK, atL, frameIn.XYZ(*atI), frameIn.XYZ(atJ), frameIn.XYZ(atK), frameIn.XYZ(atL)); + addIc(*atI, atJ, atK, atL, frameIn); if (debug_ > 1) { mprintf("DEBUG: Added (1 atom) "); IC_.back().printIC(topIn); @@ -357,7 +473,7 @@ int Zmatrix::traceMol(int atL0, int atK0, int atJ0, topIn.AtomMaskName(p.al_).c_str()); } if (!hasIC[p.ai_]) { - addIc(p.ai_, p.aj_, p.ak_, p.al_, frameIn.XYZ(p.ai_), frameIn.XYZ(p.aj_), frameIn.XYZ(p.ak_), frameIn.XYZ(p.al_)); + addIc(p.ai_, p.aj_, p.ak_, p.al_, frameIn); if (debug_ > 1) { mprintf("DEBUG: Added (stack) "); IC_.back().printIC(topIn); @@ -395,7 +511,7 @@ int Zmatrix::traceMol(int atL0, int atK0, int atJ0, } // Add lowest index as IC if (!hasIC[atI]) { - addIc(atI, atJ, atK, atL, frameIn.XYZ(atI), frameIn.XYZ(atJ), frameIn.XYZ(atK), frameIn.XYZ(atL)); + addIc(atI, atJ, atK, atL, frameIn); if (debug_ > 1) { mprintf("DEBUG: Added (next) "); IC_.back().printIC(topIn); @@ -434,6 +550,223 @@ int Zmatrix::traceMol(int atL0, int atK0, int atJ0, return 0; } +/** Add IC for the given atom. */ +int Zmatrix::addInternalCoordForAtom(int iat, Frame const& frameIn, Topology const& topIn) +{ + int maxScore = -1; + int maxAtj = -1; + int maxAtk = -1; + int maxAtl = -1; + Atom const& atomI = topIn[iat]; + for (Atom::bond_iterator jat = atomI.bondbegin(); jat != atomI.bondend(); ++jat) { + Atom const& atomJ = topIn[*jat]; + for (Atom::bond_iterator kat = atomJ.bondbegin(); kat != atomJ.bondend(); ++kat) { + if (*kat != iat) { + Atom const& atomK = topIn[*kat]; + for (Atom::bond_iterator lat = atomK.bondbegin(); lat != atomK.bondend(); ++lat) { + if (*lat != *jat && *lat != iat) { + int nbondScore = topIn[*lat].Nbonds(); + if (maxScore == -1 || nbondScore > maxScore) { + maxScore = nbondScore; + maxAtj = *jat; + maxAtk = *kat; + maxAtl = *lat; + } + //mprintf("DEBUG: Potential IC for %s [ %s - %s - %s ] score= %i\n", + // topIn.AtomMaskName(iat).c_str(), + // topIn.AtomMaskName(*jat).c_str(), + // topIn.AtomMaskName(*kat).c_str(), + // topIn.AtomMaskName(*lat).c_str(), + // nbondScore); + } + } + } + } + } + if (maxScore == -1) { + mprintf("Warning: Unable to define IC for atom %s\n", topIn.AtomMaskName(iat).c_str()); + } else { + addIc( iat, maxAtj, maxAtk, maxAtl, frameIn ); + } + return 0; +} + +// ----------------------------------------------- +/** \return the LEaP 'weight' of an atom. + * Originally used to force the 'heaviest' atoms around a torsion trans to + * each other. The 'weight' of an atom is defined as its element number, + * unless the atom is CARBON, then it is 1000, making it the 'heaviest' atom. + */ +static int LeapAtomWeight(Atom const& At) +{ + if ( At.Element() == Atom::CARBON ) + return 1000; + return At.AtomicNumber(); +} + +/** Order atoms bonded to the given atom in a manner similar to LEaP's + * zModelOrderAtoms. In that routine, first atoms were sorted into + * known position > unknown position. Then the heaviest atom in each + * subgroup was swapped with the first element of that list. Since at this + * point we assume all positions are known, we are just shifting the + * heaviest atom to the front of the list. + * The ignore atom is the index of the atom this atom is bonded to that + * forms the torsion we are interested in. + */ +static inline std::vector<int> SortBondedAtomsLikeLeap(Atom const& At, Topology const& topIn, int ignoreAtom) +{ + std::vector<int> out; + out.reserve( At.Nbonds() ); + // Find the index of the heaviest atom + int iHighest = 0; + int iPos = 0; + for (int idx = 0; idx < At.Nbonds(); idx++) { + int bat = At.Bond(idx); + if (bat != ignoreAtom) { + out.push_back( bat ); + int iWeight = LeapAtomWeight( topIn[bat] ); + if ( iHighest < iWeight ) { + iHighest = iWeight; + iPos = (int)out.size()-1; + } + } + } + // If highest weight atom not already in front, swap it there. + if (iPos != 0) std::swap( out[0], out[iPos] ); + + return out; +} + +/** Set up Zmatrix from Cartesian coordinates and topology in the same + * manner as LEaP's BuildInternalsForContainer/ModelAssignTorsionsAround. + * Currently assumes all positions are known. + */ +int Zmatrix::GenerateInternals(Frame const& frameIn, Topology const& topIn) +{ + clear(); + // First generate the bond array + BondArray bonds = GenerateBondArray( topIn.Residues(), topIn.Atoms() ); + // Loop over bonds + for (BondArray::const_iterator bnd = bonds.begin(); bnd != bonds.end(); ++bnd) + { + Atom const& A2 = topIn[bnd->A1()]; + Atom const& A3 = topIn[bnd->A2()]; + if (A2.Nbonds() > 1 && A3.Nbonds() > 1) { + //Residue const& R2 = topIn.Res(A2.ResNum()); + //Residue const& R3 = topIn.Res(A3.ResNum()); + mprintf("Building torsion INTERNALs around: %s - %s\n", + topIn.LeapName(bnd->A1()).c_str(), topIn.LeapName(bnd->A2()).c_str()); + Iarray sorted_a2 = SortBondedAtomsLikeLeap(A2, topIn, bnd->A2()); + Iarray sorted_a3 = SortBondedAtomsLikeLeap(A3, topIn, bnd->A1()); + mprintf("Orientation around: %s {", *(A2.Name())); + for (Atom::bond_iterator bat = A2.bondbegin(); bat != A2.bondend(); ++bat) mprintf(" %s", *(topIn[*bat].Name())); + mprintf("}\n"); + for (Iarray::const_iterator it = sorted_a2.begin(); it != sorted_a2.end(); ++it) + mprintf("Atom %li: %s\n", it - sorted_a2.begin(), *(topIn[*it].Name())); + mprintf("Orientation around: %s {", *(A3.Name())); + for (Atom::bond_iterator bat = A3.bondbegin(); bat != A3.bondend(); ++bat) mprintf(" %s", *(topIn[*bat].Name())); + mprintf("}\n"); + for (Iarray::const_iterator it = sorted_a3.begin(); it != sorted_a3.end(); ++it) + mprintf("Atom %li: %s\n", it - sorted_a3.begin(), *(topIn[*it].Name())); + // Build the torsions + int aj = bnd->A1(); + int ak = bnd->A2(); + for (Iarray::const_iterator ai = sorted_a2.begin(); ai != sorted_a2.end(); ++ai) { + for (Iarray::const_iterator al = sorted_a3.begin(); al != sorted_a3.end(); ++al) { + //double dval = Torsion(frameIn.XYZ(*ai), frameIn.XYZ(aj), frameIn.XYZ(ak), frameIn.XYZ(*al)); + addIc(*ai, aj, ak, *al, frameIn); + mprintf("++++Torsion INTERNAL: %f to %s - %s - %s - %s\n", + IC_.back().Phi(), + topIn.LeapName(*ai).c_str(), + topIn.LeapName(aj).c_str(), + topIn.LeapName(ak).c_str(), + topIn.LeapName(*al).c_str()); + addIc(*al, ak, aj, *ai, frameIn); + } + } + } + } + return 0; +} + +// ----------------------------------------------- +/** Set up Zmatrix from Cartesian coordinates and topology. + * Use torsions based on connectivity to create a complete set of ICs. + */ +int Zmatrix::SetFromFrameAndConnect(Frame const& frameIn, Topology const& topIn) //, int molnum) +{ + clear(); + + for (int iat1 = 0; iat1 < topIn.Natom(); iat1++) + { + Atom const& At1 = topIn[iat1]; + for (int bidx1 = 0; bidx1 < At1.Nbonds(); bidx1++) { + int iat2 = At1.Bond(bidx1); + Atom const& At2 = topIn[iat2]; + for (int bidx2 = 0; bidx2 < At2.Nbonds(); bidx2++) { + int iat3 = At2.Bond(bidx2); + if (iat3 != iat1) { + Atom const& At3 = topIn[iat3]; + for (int bidx3 = 0; bidx3 < At3.Nbonds(); bidx3++) { + int iat4 = At3.Bond(bidx3); + if (iat4 != iat2 && iat1 < iat4) { + //mprintf("DEBUG: DIHEDRAL %i - %i - %i - %i (%i %i %i %i)\n", iat1+1, iat2+1, iat3+1, iat4+1, iat1*3, iat2*3, iat3*3, iat4*3); + //out.push_back( DihedralType( iat1, iat2, iat3, iat4, -1 ) ); + addIc(iat1, iat2, iat3, iat4, frameIn); + addIc(iat4, iat3, iat2, iat1, frameIn); // FIXME should the reverse one be put in? + } + } + } + } + } + } + if (IC_.empty()) { + // Either 4-5 atoms in a tetrahedral configuration or else + // some other strange configuration. + mprintf("Warning: No ICs created for %s\n", topIn.c_str()); +/* + // Create ICs using 1st 3 heaviest atoms. + if (topIn.Natom() > 3) { + typedef std::pair<double,int> MIpair; + // Used to sort mass descending). + struct MassCmp { + inline bool operator()(MIpair const& lhs, MIpair const& rhs) const { + if (lhs.first == rhs.first) + return lhs.second < rhs.second; + else + return lhs.first > rhs.first; + } + }; + + std::vector<MIpair> MassIndices; + MassIndices.reserve( topIn.Natom() ); + for (int iat = 0; iat < topIn.Natom(); iat++) + MassIndices.push_back( MIpair(topIn[iat].Mass(), iat) ); + // Sort by mass + std::sort( MassIndices.begin(), MassIndices.end(), MassCmp() ); + mprintf("Sorted:"); + for (std::vector<MIpair>::const_iterator it = MassIndices.begin(); it != MassIndices.end(); ++it) + mprintf(" %s", topIn.AtomMaskName(it->second).c_str()); + mprintf("\n"); + // Set up ICs + for (int iat1 = 0; iat1 < topIn.Natom(); iat1++) { + std::vector<int> iats; + iats.reserve(3); + for (std::vector<MIpair>::const_iterator it = MassIndices.begin(); it != MassIndices.end(); ++it) + { + if (it->second != iat1) + iats.push_back( it->second ); + if (iats.size() == 3) break; + } + addIc(iat1, iats[0], iats[1], iats[2], frameIn); + } + } +*/ + } + + return 0; +} + /** Set up Zmatrix from Cartesian coordinates and topology. * This algorithm attempts to "trace" the molecule in a manner that * should make internal coordinate assignment more "natural". @@ -458,13 +791,17 @@ int Zmatrix::SetFromFrame_Trace(Frame const& frameIn, Topology const& topIn, int // See if we need to assign seed atoms if (!HasCartSeeds()) { - // First seed atom will just be first atom TODO lowest index heavy atom? - if (autoSetSeeds_simple(frameIn, topIn, currentMol)) { + int seedErr = 0; + //if (knownPositions.empty()) + // First seed atom will just be first atom TODO lowest index heavy atom? + seedErr = autoSetSeeds_simple(frameIn, topIn, currentMol); + //else + // seedErr = autoSetSeeds_withPositions(frameIn, topIn, currentMol, knownPositions); + if (seedErr != 0) { //if (autoSetSeeds(frameIn, topIn, maxnatom, currentMol.MolUnit().Front())) { mprinterr("Error: Could not automatically determine seed atoms.\n"); return 1; } - } else { // Seed atoms already set if (debug_ > 0) @@ -473,7 +810,7 @@ int Zmatrix::SetFromFrame_Trace(Frame const& frameIn, Topology const& topIn, int topIn.AtomMaskName(seedAt1_).c_str(), topIn.AtomMaskName(seedAt2_).c_str()); } - // Add IC seeds + // Add basic ICs for seeds if (seedAt0_ != InternalCoords::NO_ATOM) AddIC( InternalCoords(seedAt0_, InternalCoords::NO_ATOM, InternalCoords::NO_ATOM, InternalCoords::NO_ATOM, 0, 0, 0) ); @@ -512,7 +849,7 @@ int Zmatrix::SetFromFrame_Trace(Frame const& frameIn, Topology const& topIn, int // I // | // L - K - J - addIc(*bat, seedAt2_, seedAt1_, seedAt0_, frameIn.XYZ(*bat), frameIn.XYZ(seedAt2_), frameIn.XYZ(seedAt1_), frameIn.XYZ(seedAt0_)); + addIc(*bat, seedAt2_, seedAt1_, seedAt0_, frameIn); MARK(*bat, hasIC, nHasIC); // Follow improper branch if needed: L - K - I - ? if (traceMol(seedAt0_, seedAt1_, *bat, frameIn, topIn, maxnatom, nHasIC, hasIC)) return 1; @@ -524,7 +861,16 @@ int Zmatrix::SetFromFrame_Trace(Frame const& frameIn, Topology const& topIn, int if (nHasIC < maxnatom) { mprintf("Warning: Not all atoms have an associated internal coordinate.\n"); } - + // Add ICs for seeds + /*if (maxnatom > 3) { + //Atom const& SA0 = topIn[seedAt0_]; + //Atom const& SA1 = topIn[seedAt1_]; + //Atom const& SA2 = topIn[seedAt2_]; + // Seed 0; 0-1-2-X + addInternalCoordForAtom(seedAt0_, frameIn, topIn); + addInternalCoordForAtom(seedAt1_, frameIn, topIn); + addInternalCoordForAtom(seedAt2_, frameIn, topIn); + }*/ return 0; } @@ -539,215 +885,272 @@ int Zmatrix::SetFromFrame(Frame const& frameIn, Topology const& topIn, int molnu return SetFromFrame_Trace(frameIn, topIn, molnum); } -/** Given two bonded atoms A and B, where B has a depth of at least 2 - * (i.e., it is possible to have B be atom J where we can form J-K-L), - * set up a complete set of internal coordinates involving A and B in the - * direction of atom A. This means all internal coordinates with A and B - * as I and J (should be only 1), as J and K, and as K and L. - */ -int Zmatrix::SetupICsAroundBond(int atA, int atB, Frame const& frameIn, Topology const& topIn, - std::vector<bool> const& atomPositionKnown, - BuildAtom const& AtomA, BuildAtom const& AtomB) +// ----------------------------------------------------------------------------- +/* + * zvZMatrixCalculatePositionFromAngles() + * + * Original Author: Christian Schafmeister (1991) + * Adapted by : Dan Roe (2025) - any mistakes are mine! + * + * Use NEWTON-RAPHSON method for finding the coordinate for the vector(vC) + * which is dAngleA from the vector vA (on the X axis) and dAngleB from a + * vector (vB) which lies in the XY plane dAngleC from the X axis. + * + * The point is dBond from the origin. + * + */ +Vec3 Zmatrix::calculatePositionFromAngles( double dAngleA, double dAngleB, + double dAngleC, double dBond ) { - if (debug_ > 0) - mprintf("DEBUG: SetupICsAroundBond: atA= %s (%i) atB= %s (%i)\n", - topIn.AtomMaskName(atA).c_str(), atA+1, - topIn.AtomMaskName(atB).c_str(), atB+1); - IC_.clear(); + static const int MAXNEWTONSTEPS = 20; + double dCosA = cos(dAngleA); + double dSinA = sin(dAngleA); + double dCosB = cos(dAngleB); + double dCosC = cos(dAngleC); + double dSinC = sin(dAngleC); - Barray hasIC( topIn.Natom(), false ); - unsigned int nHasIC = 0; - // Mark known atoms as already having IC - for (std::vector<bool>::const_iterator it = atomPositionKnown.begin(); - it != atomPositionKnown.end(); ++it) - { - if (*it) MARK( it - atomPositionKnown.begin(), hasIC, nHasIC ); - } + // The idea is to minimize the function: + // E = ( DOT(vC,vB) - cos(dAngleB) )^2 + // using NEWTONS method + // The vector vC is constrained to make the angle + // dAngleA with vA + // The vector vC makes the angle (dX) with the XY plane + // and the parameter that is optimized is dX - // First, make sure atom B as a bond depth of at least 2. - // Choose K and L atoms given atA is I and atB is J. - Atom const& AJ = topIn[atB]; - typedef std::pair<int,int> Apair; - std::vector<Apair> KLpairs; - for (Atom::bond_iterator kat = AJ.bondbegin(); kat != AJ.bondend(); ++kat) - { - if (*kat != atA) { - //mprintf("DEBUG: kat= %s\n", topIn.AtomMaskName(*kat).c_str()); - Atom const& AK = topIn[*kat]; - for (Atom::bond_iterator lat = AK.bondbegin(); lat != AK.bondend(); ++lat) - { - if (*lat != atB && *lat != atA) { - //mprintf("DEBUG: lat= %s\n", topIn.AtomMaskName(*lat).c_str()); - KLpairs.push_back( Apair(*kat, *lat) ); - } - } - } - } - if (debug_ > 0) { - for (std::vector<Apair>::const_iterator it = KLpairs.begin(); - it != KLpairs.end(); ++it) - mprintf("DEBUG:\t\tKL pair %s - %s\n", topIn.AtomMaskName(it->first).c_str(), - topIn.AtomMaskName(it->second).c_str()); - } - if (KLpairs.empty()) { - mprinterr("Error: SetFromFrameAroundBond(): Could not find an atom pair bonded to atom %s\n", - topIn.AtomMaskName(atB).c_str()); - return 1; - } - // TODO be smarter about how K and L are selected? - double maxMass = topIn[KLpairs[0].first].Mass() + topIn[KLpairs[0].second].Mass(); - unsigned int maxIdx = 0; - for (unsigned int idx = 1; idx < KLpairs.size(); idx++) { - double sumMass = topIn[KLpairs[idx].first].Mass() + topIn[KLpairs[idx].second].Mass(); - if (sumMass > maxMass) { - maxMass = sumMass; - maxIdx = idx; - } - } - int atk0 = KLpairs[maxIdx].first; - int atl0 = KLpairs[maxIdx].second; - int modelDebug = 0; - if (debug_ > 0) { - mprintf("DEBUG: Chosen KL pair: %s - %s\n",topIn.AtomMaskName(atk0).c_str(), - topIn.AtomMaskName(atl0).c_str()); - modelDebug = debug_ - 1; - } - // ---- I J: Set dist, theta, phi for atA atB K L internal coord --- - if (debug_ > 0) - mprintf("DEBUG: IC (i j) %i - %i - %i - %i\n", atA+1, atB+1, atk0+1, atl0+1); - double newDist = Atom::GetBondLength( topIn[atA].Element(), topIn[atB].Element() ); - if (debug_ > 0) mprintf("DEBUG:\t\tnewDist= %g\n", newDist); - double newTheta = 0; - if (Cpptraj::Structure::Model::AssignTheta(newTheta, atA, atB, atk0, topIn, frameIn, atomPositionKnown, modelDebug)) { - mprinterr("Error: theta (i j) assignment failed.\n"); - return 1; - } - if (debug_ > 0) mprintf("DEBUG:\t\tnewTheta = %g\n", newTheta*Constants::RADDEG); - double newPhi = 0; - if (Cpptraj::Structure::Model::AssignPhi(newPhi, atA, atB, atk0, atl0, topIn, frameIn, - atomPositionKnown, AtomB, modelDebug)) - { - mprinterr("Error: phi (i j) assignment failed.\n"); - return 1; - } - if (debug_ > 0) mprintf("DEBUG:\t\tnewPhi = %g\n", newPhi*Constants::RADDEG); - IC_.push_back(InternalCoords( atA, atB, atk0, atl0, newDist, newTheta*Constants::RADDEG, newPhi*Constants::RADDEG )); - if (debug_ > 0) { - mprintf("DEBUG: MODEL I J IC: "); - IC_.back().printIC(topIn); - } - MARK( atA, hasIC, nHasIC ); - // ----- J K: Set up ICs for X atA atB K --------------------------- - Atom const& AJ1 = topIn[atA]; - int ati = -1; - //Atom const& AK1 = topIn[atB]; - //Atom const& AL1 = topIn[atk0]; - for (Atom::bond_iterator iat = AJ1.bondbegin(); iat != AJ1.bondend(); ++iat) - { - if (*iat != atB) { - if (ati == -1) ati = *iat; - // Use existing dist - newDist = sqrt( DIST2_NoImage(frameIn.XYZ(*iat), frameIn.XYZ(atA)) ); - // Set theta for I atA atB - newTheta = 0; - if (Cpptraj::Structure::Model::AssignTheta(newTheta, *iat, atA, atB, topIn, frameIn, atomPositionKnown, modelDebug)) { - mprinterr("Error: theta (j k) assignment failed.\n"); - return 1; - } - if (debug_ > 0) - mprintf("DEBUG:\t\tnewTheta = %g\n", newTheta*Constants::RADDEG); - // Set phi for I atA atB K - newPhi = 0; - if (Cpptraj::Structure::Model::AssignPhi(newPhi, *iat, atA, atB, atk0, topIn, frameIn, - atomPositionKnown, AtomA, modelDebug)) - { - mprinterr("Error: phi (j k) assignment failed.\n"); - return 1; - } - if (debug_ > 0) - mprintf("DEBUG:\t\tnewPhi = %g\n", newPhi*Constants::RADDEG); - IC_.push_back(InternalCoords( *iat, atA, atB, atk0, newDist, newTheta*Constants::RADDEG, newPhi*Constants::RADDEG )); - if (debug_ > 0) { - mprintf("DEBUG: MODEL J K IC: "); - IC_.back().printIC(topIn); - } - MARK( *iat, hasIC, nHasIC ); - // ----- K L: Set up ICs for X iat atA atB --------------------- - /*Atom const& AJ2 = topIn[*iat]; - for (Atom::bond_iterator i2at = AJ2.bondbegin(); i2at != AJ2.bondend(); ++i2at) - { - if (*i2at != atA && *i2at != atB && !hasIC[*i2at]) { - // Use existing dist and theta - newDist = sqrt( DIST2_NoImage(frameIn.XYZ(*i2at), frameIn.XYZ(*iat)) ); - newTheta = CalcAngle( frameIn.XYZ(*i2at), frameIn.XYZ(*iat), frameIn.XYZ(atA) ); - // Set phi for X iat atA atB - newPhi = 0; - if (Cpptraj::Structure::Model::AssignPhi(newPhi, *i2at, *iat, atA, atB, topIn, frameIn, atomPositionKnown, atomChirality)) { - mprinterr("Error: phi (k l) assignment failed.\n"); - return 1; - } - mprintf("DEBUG:\t\tnewPhi = %g\n", newPhi*Constants::RADDEG); - IC_.push_back(InternalCoords( *i2at, *iat, atA, atB, newDist, newTheta*Constants::RADDEG, newPhi*Constants::RADDEG )); - mprintf("DEBUG: MODEL K L IC: "); - IC_.back().printIC(topIn); - MARK( *i2at, hasIC, nHasIC ); - // Trace from atA *iat *i2at outwards - ToTrace.push_back(atA); - ToTrace.push_back(*iat); - ToTrace.push_back(*i2at); - //if (traceMol(atA, *iat, *i2at, frameIn, topIn, topIn.Natom(), nHasIC, hasIC)) return 1; - } - } */ + // A reasonable starting point + double dX = dAngleB; + int iCount = 0; + while ( iCount <MAXNEWTONSTEPS ) { + + double dCosX = cos(dX); + double dSinX = sin(dX); + + double dF1 = -2*dSinA*dSinC*(-dCosB + dCosA*dCosC + dCosX*dSinA*dSinC)*dSinX; + + double dF2 = -2.0*dCosX*dSinA*dSinC* (-dCosB + dCosA*dCosC + dCosX*dSinA*dSinC) + + 2.0*dSinA*dSinA*dSinC*dSinC*dSinX*dSinX; + + // MESSAGE( ( "Iteration %d dF1=%lf dF2=%lf dB=%lf\n", + // iCount, dF1, dF2, dX ) ); + if ( fabs(dF1) < Constants::SMALL*10.0 ) break; + if ( fabs(dF2) < Constants::SMALL ) { + mprinterr( "Could not optimize! dF1 = %f, dF2 = %f dX = %f steps=%d", dF1, dF2, dX, iCount ); } + double dXNew = dX - dF1/dF2; + if ( fabs(dXNew - dX) < Constants::SMALL ) break; + dX = dXNew; + iCount++; } - // Handle remaining atoms. - if (AJ1.Nbonds() > 1) { - if (AJ1.Nbonds() == 2) { - if (debug_ > 0) mprintf("DEBUG: 2 bonds to %s.\n", topIn.AtomMaskName(atA).c_str()); - if (traceMol(atB, atA, ati, frameIn, topIn, topIn.Natom(), nHasIC, hasIC)) - return 1; - } else { - // 3 or more bonds - std::vector<int> const& priority = AtomA.Priority(); - int at0 = -1; - int at1 = -1; - std::vector<int> remainingAtoms; - if (debug_ > 0) mprintf("DEBUG: %i bonds to %s\n", AJ1.Nbonds(), topIn.AtomMaskName(atA).c_str()); - for (std::vector<int>::const_iterator it = priority.begin(); it != priority.end(); ++it) { - if (*it != atB) { - if (debug_ > 0) mprintf("DEBUG:\t\t%s\n", topIn.AtomMaskName(*it).c_str()); - if (at0 == -1) - at0 = *it; - else if (at1 == -1) - at1 = *it; - else - remainingAtoms.push_back( *it ); - } - } - // at0 atA at1 - if (traceMol(at1, atA, at0, frameIn, topIn, topIn.Natom(), nHasIC, hasIC)) - return 1; - // at1 atA, at0 - if (traceMol(at0, atA, at1, frameIn, topIn, topIn.Natom(), nHasIC, hasIC)) - return 1; - // Remaining atoms. - for (std::vector<int>::const_iterator it = remainingAtoms.begin(); it != remainingAtoms.end(); ++it) { - if (traceMol(at0, atA, *it, frameIn, topIn, topIn.Natom(), nHasIC, hasIC)) - return 1; - } - } + +# ifdef CPPTRAJ_DEBUG_ZMATRIX + if ( iCount > MAXNEWTONSTEPS ) + mprintf("DEBUG: Exceeded maximum number of Newton Raphson steps: %d\n", MAXNEWTONSTEPS); +# endif + // Generate new coordinate + return Vec3( dBond*cos(dAngleA), + dBond*sin(dAngleA)*cos(dX), + dBond*sin(dAngleA)*sin(dX) ); +} + +/* + * ZMatrixBondTwoAnglesOrientation() + * Original Author: Christian Schafmeister (1991) + * Adapted by : Dan Roe (2025) - any mistakes are mine! + * + * Build the external coordinate for the atom when the orientation, + * a bond length and two angles are supplied. + * The orientation is a positive or negative number which specifies + * the orientation of the new position. It is calculated by: + * a=crossProduct( vPAtomA-vPCenter, vPAtomB-vPCenter ); + * orientation = dotProduct( vPPos-vPCenter, a ); + * + * \param vPAtomC points to the position of the central atom. + * \return Calculated position + */ +Vec3 Zmatrix::PosFromBondTwoAnglesOrientation( + Vec3 const& vPAtomC, Vec3 const& vPAtomA, Vec3 const& vPAtomB, + double dBond, double dAngleA, double dAngleB, double dOrient ) +{ + static const Vec3 vXAxis(1.0, 0.0, 0.0); + static const Vec3 vYAxis(0.0, 1.0, 0.0); + static const Vec3 vZAxis(0.0, 0.0, 1.0); + //MATRIX mT, mT1, mT2, mTX, mTY, mTZ, mTT; + //double dAngleX, dAngleY, dAngleZ; + //double dAngle; + //VECTOR vTrans, vTempAC, vTempBC, vTempXZ, vNew, vLab; + // The procedure for finding the the coordinate is: + // Translate vAtomC to the origin -> A'-C' + // Find angle between PROJ((A'-C'),YZ plane) & Y axis + // Rotate into XZ plane + // Find angle between (A''-C'') and X axis + // Rotate onto X axis + // Find angle between PROJ((B'''-C'''),YZ plane) and Y axis + // Rotate onto XY plane + // Calculate coordinates in 3Space + // Apply the reverse transformation to the new point + // Actually, all that is done is the elements for the + // forward transformations are calculated then used + // to generate an inverse transform matrix. + + Vec3 vTrans = vPAtomC; + Vec3 vTempAC = vPAtomA - vPAtomC; //vVectorSub( vPAtomA, vPAtomC ); + Vec3 vTempBC = vPAtomB - vPAtomC; //vVectorSub( vPAtomB, vPAtomC ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("AC= %f, %f, %f\n", vTempAC[0], vTempAC[1], vTempAC[2]); + mprintf("BC= %f, %f, %f\n", vTempBC[0], vTempBC[1], vTempBC[2]); +# endif + Vec3 vTempXZ = vTempAC; + vTempXZ[1] = 0.0; // VectorSetY( &vTempXZ, 0.0 ); + double dAngleY; + if (vTempXZ.Length() != 0.0) { // if ( dVectorLen(&vTempXZ) != 0.0 ) + //dAngleY = dAngleY = dVectorAbsAngle( &vTempXZ, &vXAxis, &vYAxis ); + vTempXZ.Normalize(); + dAngleY = vTempXZ.SignedAngle( vXAxis, vYAxis ); + } else + dAngleY = 0.0; +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("dAngleY= %f\n", dAngleY); +# endif + Matrix_3x3 mT; + mT.RotateAroundY( -dAngleY ); // MatrixYRotate( mT, -dAngleY ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mT.Print("mT (Y)"); +# endif + vTempAC = mT * vTempAC; // MatrixTimesVector( vTempAC, mT, vTempAC ); + vTempBC = mT * vTempBC; // MatrixTimesVector( vTempBC, mT, vTempBC ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("Rotated around Y\n" ); + mprintf("New AC= %f, %f, %f\n", vTempAC[0], vTempAC[1], vTempAC[2]); + mprintf("New BC= %f, %f, %f\n", vTempBC[0], vTempBC[1], vTempBC[2]); +# endif + vTempAC.Normalize(); + double dAngleZ = vTempAC.SignedAngle( vXAxis, vZAxis ); //dAngleZ = dVectorAbsAngle( &vTempAC, &vXAxis, &vZAxis ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("dAngleZ= %f\n", dAngleZ); +# endif + mT.RotateAroundZ(-dAngleZ); // MatrixZRotate( mT, -dAngleZ ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mT.Print("mT (Z)"); +# endif + vTempBC = mT * vTempBC; // MatrixTimesVector( vTempBC, mT, vTempBC ); +//#ifdef DEBUG +// MatrixTimesVector( vTempAC, mT, vTempAC ); +//#endif +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("Rotated around Z\n" ); + mprintf("New AC= %f, %f, %f\n", vTempAC[0], vTempAC[1], vTempAC[2]); + mprintf("New BC= %f, %f, %f\n", vTempBC[0], vTempBC[1], vTempBC[2]); +# endif + vTempBC[0] = 0; // VectorSetX( &vTempBC, 0.0 ); + + vTempBC.Normalize(); + double dAngleX = vTempBC.SignedAngle( vYAxis, vXAxis ); // dAngleX = dVectorAbsAngle( &vTempBC, &vYAxis, &vXAxis ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("dAngleX= %f\n", dAngleX); +# endif + // Build the transformation matrix to convert from + // lab coordinates to molecule coordinates in mT +// MatrixXRotate( mTX, dAngleX ); +// MatrixZRotate( mTZ, dAngleZ ); +// MatrixYRotate( mTY, dAngleY ); +// MatrixTranslate( mTT, dVX(&vTrans), dVY(&vTrans), dVZ(&vTrans) ); +// MatrixMultiply( mT1, mTZ, mTX ); +// MatrixMultiply( mT2, mTY, mT1 ); +// MatrixMultiply( mT, mTT, mT2 ); + Matrix_3x3 mT2; + mT2.CalcRotationMatrix( dAngleX, dAngleY, dAngleZ ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mT2.Print("mT2"); +# endif + // Calculate coordinates of new atom + double dAngle = CalcAngle(vPAtomA.Dptr(), vPAtomC.Dptr(), vPAtomB.Dptr()); //dAngle = dVectorAtomAngle( vPAtomA, vPAtomC, vPAtomB ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("dAngle= %f\n", dAngle); +# endif + Vec3 vLab = calculatePositionFromAngles( dAngleA, dAngleB, dAngle, dBond ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("vLab= %f %f %f\n", vLab[0], vLab[1], vLab[2]); +# endif + if ( dOrient != 0.0 ) { + vLab[2] = dOrient*vLab[2]; // VectorSetZ( &vLab, dOrient*dVZ(&vLab) ); } + // If there is no chirality defined yet then just + // leave it the way it is + + Vec3 vPPos = (mT2 * vLab) + vTrans; //MatrixTimesVector( vNew, mT, vLab ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf( "ZMatrix2Angle: %f,%f,%f\n", vPPos[0], vPPos[1], vPPos[2]); +# endif + return vPPos; +} - return 0; +/** \return Position of atom I from positions of atoms J and K, + * the corresponding distance I-J (in Ang.) and angle I-J-K + * (in radians). + */ +Vec3 Zmatrix::AtomIposition(Vec3 const& posJ, Vec3 const& posK, double rdist, double theta_rad) +{ + // J-K vector + Vec3 vTempX = posK - posJ; + Vec3 vTempXZ( vTempX[0], 0.0, vTempX[2] ); + vTempXZ.Normalize(); + // + static const Vec3 vXAxis(1.0, 0.0, 0.0); + static const Vec3 vYAxis(0.0, 1.0, 0.0); + static const Vec3 vZAxis(0.0, 0.0, 1.0); + double dAngleY = vTempXZ.SignedAngle( vXAxis, vYAxis ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf( "Angle around Y=%f\n", dAngleY ); +# endif + Matrix_3x3 mT; + mT.CalcRotationMatrix(vYAxis, dAngleY); + vTempX = mT * vTempX; +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("Rotated around Y = %f, %f, %f\n", vTempX[0], vTempX[1], vTempX[2]); +# endif + vTempX.Normalize(); + double dAngleZ = vTempX.SignedAngle( vXAxis, vZAxis ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("Angle around Z=%f\n", dAngleZ ); +# endif + Vec3 vNew( rdist*cos(theta_rad), rdist*sin(theta_rad), 0.0 ); +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("vNew: %f,%f,%f\n", vNew[0], vNew[1], vNew[2]); +# endif + mT.CalcRotationMatrix(vZAxis, -dAngleZ); + vNew = mT * vNew; + mT.CalcRotationMatrix(vYAxis, -dAngleY); + vNew = mT * vNew; +# ifdef CPPTRAJ_DEBUG_ZMATRIX + mprintf("vNew before MatrixTranslate: %f,%f,%f\n", vNew[0], vNew[1], vNew[2]); + mprintf("vTrans before MatrixTranslate: %f,%f,%f\n", posJ[0], posJ[1], posJ[2]); +# endif + Vec3 posI = vNew + posJ; + + return posI; } -// ----------------------------------------------------------------------------- -/** \return Position of atom I from given internal coordinate. */ -Vec3 Zmatrix::AtomIposition(InternalCoords const& ic, Frame const& frameOut) +/* \return Position of atom I from position of atom J, using the given I-J distance. + * Atom I will be placed at a distance rdist from posJ along the X axis. + * + */ +Vec3 Zmatrix::AtomIposition(Vec3 const& posJ, double rdist) { - double rdist = ic.Dist(); - double theta = ic.Theta(); - double phi = ic.Phi(); + Vec3 vNew( rdist, 0.0, 0.0 ); + vNew = vNew + posJ; + return vNew; +} + +/** \return Position of atom I from positions of atoms J, K, and L, + * and corresponding distance (in Ang) and angle/torsion + * values (in degrees). + */ +Vec3 Zmatrix::AtomIposition(Vec3 const& posJ, Vec3 const& posK, Vec3 const& posL, + double rdist, double theta, double phi) +{ +// double rdist = ic.Dist(); +// double theta = ic.Theta(); +// double phi = ic.Phi(); double sinTheta = sin(theta * Constants::DEGRAD); double cosTheta = cos(theta * Constants::DEGRAD); @@ -759,9 +1162,9 @@ Vec3 Zmatrix::AtomIposition(InternalCoords const& ic, Frame const& frameOut) rdist * cosPhi * sinTheta, rdist * sinPhi * sinTheta ); - Vec3 posL = Vec3( frameOut.XYZ( ic.AtL()) ); - Vec3 posK = Vec3( frameOut.XYZ( ic.AtK()) ); - Vec3 posJ = Vec3( frameOut.XYZ( ic.AtJ()) ); +// Vec3 posL = Vec3( frameOut.XYZ( ic.AtL()) ); +// Vec3 posK = Vec3( frameOut.XYZ( ic.AtK()) ); +// Vec3 posJ = Vec3( frameOut.XYZ( ic.AtJ()) ); Vec3 LK = posK - posL; Vec3 KJ = posJ - posK; @@ -779,6 +1182,21 @@ Vec3 Zmatrix::AtomIposition(InternalCoords const& ic, Frame const& frameOut) return posI; } +/** \return Position of atom I from given internal coordinate and Frame. */ +Vec3 Zmatrix::AtomIposition(InternalCoords const& ic, Frame const& frameOut) +{ + double rdist = ic.Dist(); + double theta = ic.Theta(); + double phi = ic.Phi(); + + Vec3 posJ = Vec3( frameOut.XYZ( ic.AtJ()) ); + Vec3 posK = Vec3( frameOut.XYZ( ic.AtK()) ); + Vec3 posL = Vec3( frameOut.XYZ( ic.AtL()) ); + + return AtomIposition(posJ, posK, posL, rdist, theta, phi); +} + + /** Set Cartesian coordinates in Frame from internal coordinates. * Assume none of the positions in frameOut can be used initially. */ @@ -814,6 +1232,7 @@ int Zmatrix::SetToFrame(Frame& frameOut, Barray& hasPosition) const { Barray isUsed( IC_.size(), false ); unsigned int Nused = 0; if (HasCartSeeds()) { + mprintf("\tUsing Cartesian seeds.\n"); if (icseed0_ != InternalCoords::NO_ATOM) MARK(icseed0_, isUsed, Nused); if (icseed1_ != InternalCoords::NO_ATOM) MARK(icseed1_, isUsed, Nused); if (icseed2_ != InternalCoords::NO_ATOM) MARK(icseed2_, isUsed, Nused); @@ -858,18 +1277,106 @@ int Zmatrix::SetToFrame(Frame& frameOut, Barray& hasPosition) const { } // END seed atom 0 } // END Does not have Cart. seeds // Find the lowest unused IC - unsigned int lowestUnusedIC = 0; - for (; lowestUnusedIC < IC_.size(); ++lowestUnusedIC) - if (!isUsed[lowestUnusedIC]) break; - if (debug_ > 0) mprintf("DEBUG: Lowest unused IC: %u\n", lowestUnusedIC+1); +// unsigned int lowestUnusedIC = 0; +// for (; lowestUnusedIC < IC_.size(); ++lowestUnusedIC) +// if (!isUsed[lowestUnusedIC]) break; +// if (debug_ > 0) mprintf("DEBUG: Lowest unused IC: %u\n", lowestUnusedIC+1); + // Out of the remaining ICs, count which ones do not have positions set. + Iarray positionsToSet; + //unsigned int remainingPositionsToSet = 0; + for (unsigned int icIdx = 0; icIdx != IC_.size(); ++icIdx) { + if (!isUsed[icIdx] && !hasPosition[IC_[icIdx].AtI()]) { + Iarray::const_iterator it = std::find(positionsToSet.begin(), positionsToSet.end(), IC_[icIdx].AtI()); + if (it == positionsToSet.end()) { + positionsToSet.push_back( IC_[icIdx].AtI() ); + if (debug_ > 1) mprintf("DEBUG:\t\tAtom %i needs its position set.\n", IC_[icIdx].AtI()+1); + } + } + } + if (debug_ > 0) mprintf("DEBUG: %zu positions to set.\n", positionsToSet.size()); + + //while (remainingPositionsToSet > 0 && Nused < IC_.size()) { + Iarray::const_iterator at_with_unset_pos = positionsToSet.begin(); + while (Nused < IC_.size()) { + // Get next atom that needs its position set + for (; at_with_unset_pos != positionsToSet.end(); ++at_with_unset_pos) + if (!hasPosition[*at_with_unset_pos]) break; + if (at_with_unset_pos == positionsToSet.end()) { + if (debug_ > 0) mprintf("DEBUG: No more positions to set.\n"); + break; + } + if (debug_ > 1) mprintf("DEBUG: Setting position of atom %i\n", (*at_with_unset_pos) + 1); + // Get IC that corresponds to this atom + int icIdx = -1; + for (unsigned int idx = 0; idx != IC_.size(); ++idx) { + if (IC_[idx].AtI() == *at_with_unset_pos) { + // All 3 of the connecting atoms must be set + if (hasPosition[ IC_[idx].AtJ() ] && + hasPosition[ IC_[idx].AtK() ] && + hasPosition[ IC_[idx].AtL() ]) + { + icIdx = (int)idx; + break; + } + } + } +/* + // Get the next IC with a position to set + int icIdx = -1; + for (unsigned int idx = 0; idx != IC_.size(); ++idx) { + if (!isUsed[idx] && !hasPosition[IC_[idx].AtI()]) { + // All 3 of the connecting atoms must be set + if (hasPosition[ IC_[idx].AtJ() ] && + hasPosition[ IC_[idx].AtK() ] && + hasPosition[ IC_[idx].AtL() ]) + { + icIdx = (int)idx; + break; + } else { + mprintf("DEBUG:\t\tIC %u is missing atoms.\n", idx+1); + } + } + }*/ + if (icIdx < 0) { + if (debug_ > 0) mprintf("DEBUG: Could not find complete IC yet.\n"); + ++at_with_unset_pos; + if (at_with_unset_pos == positionsToSet.end()) { + mprinterr("Error: Could not find next IC to use.\n"); + return 1; + } + continue; // FIXME + } + InternalCoords const& ic = IC_[icIdx]; + if (debug_ > 0) { + mprintf("DEBUG: Next IC to use is %i : %i %i %i %i r=%g theta=%g phi=%g\n", + icIdx+1, ic.AtI()+1, ic.AtJ()+1, ic.AtK()+1, ic.AtL()+1, + ic.Dist(), ic.Theta(), ic.Phi()); + mprintf( "Torsion = %f\n", ic.Phi() ); + mprintf( "Angle = %f\n", ic.Theta() ); + mprintf( "Bond = %f\n", ic.Dist() ); + } + Vec3 posI = AtomIposition(ic, frameOut); + + frameOut.SetXYZ( ic.AtI(), posI ); + hasPosition[ ic.AtI() ] = true; + //remainingPositionsToSet--; + MARK(icIdx, isUsed, Nused); + // Go back to start, new ICs may now be enabled + at_with_unset_pos = positionsToSet.begin(); + } // END loop over remaining positions +/* // Loop over remaining ICs while (Nused < IC_.size()) { // Find the next IC that is not yet used. - unsigned int idx = lowestUnusedIC; +// unsigned int idx = lowestUnusedIC; + unsigned int idx = 0; bool findNextIC = true; while (findNextIC) { - while (idx < IC_.size() && isUsed[idx]) idx++; + while (idx < IC_.size() && isUsed[idx]) { + mprintf("DEBUG:\t\tIC %u is used\n", idx+1); + idx++; + } if (idx >= IC_.size()) { mprinterr("Error: Could not find next IC to use.\n"); return 1; @@ -880,8 +1387,10 @@ int Zmatrix::SetToFrame(Frame& frameOut, Barray& hasPosition) const { hasPosition[ IC_[idx].AtL() ]) { findNextIC = false; - } else + } else { + mprintf("DEBUG:\t\tIC %u is missing atoms.\n", idx+1); idx++; + } } // END loop finding next atom to set if (debug_ > 0) mprintf("DEBUG: Next IC to use is %u\n", idx+1); @@ -899,6 +1408,6 @@ int Zmatrix::SetToFrame(Frame& frameOut, Barray& hasPosition) const { //break; // DEBUG } // END loop over internal coordinates - +*/ return 0; } diff --git a/src/Structure/Zmatrix.h b/src/Structure/Zmatrix.h index d778e34145..cd11068403 100644 --- a/src/Structure/Zmatrix.h +++ b/src/Structure/Zmatrix.h @@ -1,14 +1,12 @@ #ifndef INC_STRUCTURE_ZMATRIX_H #define INC_STRUCTURE_ZMATRIX_H #include "InternalCoords.h" -#include "StructureEnum.h" #include "../Vec3.h" class Frame; class Topology; class Molecule; namespace Cpptraj { namespace Structure { -class BuildAtom; /// Hold internal coordinates for a system. class Zmatrix { typedef std::vector<InternalCoords> ICarray; @@ -19,7 +17,7 @@ class Zmatrix { /// Set debug level void SetDebug(int d) { debug_ = d; } /// Print to stdout - void print(Topology*) const; + void print(Topology const*) const; /// Print to stdout, no atom names void print() const { print(0); } @@ -27,21 +25,34 @@ class Zmatrix { void reserve(unsigned int n) { IC_.reserve( n ); } /// Clear the Zmatrix void clear(); + /// Sort ICs by atom index (I < L < K < J) + void sort(); + /// \return the last added IC + InternalCoords const& back() const { return IC_.back(); } /// Add internal coordinate int AddIC(InternalCoords const&); + /// Calculate and add internal coordinate for specified atoms + int AddIC(int,int,int,int,Frame const&); /// Set specified IC void SetIC(unsigned int, InternalCoords const&); + /// Offset IC indices by given value + void OffsetIcIndices(int); /// Set seed atoms from frame/top int SetSeedPositions(Frame const&, Topology const&, int, int, int); + /// Set seed atoms as 3 consecutive atoms with known positions for specified residue # TODO deprecate? + int AutoSetSeedsWithPositions(Frame const&, Topology const&, int, Barray const&); + /// Try to generate complete ICs in same manner as LEaP + int GenerateInternals(Frame const&, Topology const&); + /// Try to generate complete ICs from atom connectivity + int SetFromFrameAndConnect(Frame const&, Topology const&);//, int); /// Convert specifed molecule of Frame/Topology to internal coordinates array int SetFromFrame(Frame const&, Topology const&, int); /// Convert molecule 0 of Frame/Topology to internal coordinates array int SetFromFrame(Frame const&, Topology const&); - /// Get internal coordinates around bond in one direction. - int SetupICsAroundBond(int, int, Frame const&, Topology const&, - std::vector<bool> const&, BuildAtom const&, BuildAtom const&); + /// \return Modifable reference to specified IC + InternalCoords& ModifyIC(unsigned int idx) { return IC_[idx]; } /// Set Frame from internal coords int SetToFrame(Frame&) const; @@ -62,17 +73,34 @@ class Zmatrix { unsigned int sizeInBytes() const { return (7*sizeof(int)) + (9*sizeof(double)) + // 3 Vec3 (IC_.size() * InternalCoords::sizeInBytes()); } - + /// \return XYZ position of atom I bonded to C using positions of atoms A-C-B, C-I distance, and 2 angles + static Vec3 PosFromBondTwoAnglesOrientation(Vec3 const&, Vec3 const&, Vec3 const&, + double, double, double, double); + /// \return XYZ position of atom I using positions of atoms J/K and distance (ang)/angle(rad) + static Vec3 AtomIposition(Vec3 const&, Vec3 const&, double, double); + /// \return XYZ position of atom I using position of atom J and distance (ang) + static Vec3 AtomIposition(Vec3 const&, double); + /// \return XYZ position of atom I using positions of atoms J/K/L and distance(ang)/angle/torsion (deg) + static Vec3 AtomIposition(Vec3 const&, Vec3 const&, Vec3 const&, double, double, double); /// \return XYZ position of atom I for given internal coordinate static Vec3 AtomIposition(InternalCoords const&, Frame const&); private: typedef std::vector<int> Iarray; + /// Set seeds as 3 consecutive atoms with known positions + int autoSetSeeds_withPositions(Frame const&, Topology const&, int, int, Barray const&); /// Simple version of auto set seeds based on connectivity only int autoSetSeeds_simple(Frame const&, Topology const&, Molecule const&); /// Calculate and add an internal coordinate given indices and Cartesian coords. - void addIc(int,int,int,int,const double*,const double*,const double*,const double*); - /// Add internal coordiantes by tracing a molecule + //inline void addIc(int,int,int,int,const double*,const double*,const double*,const double*); + /// Calculate and add an internal coordinate given indices and Cartesian coords. + inline void addIc(int,int,int,int,Frame const&); + /// Add internal coordinates by tracing a molecule int traceMol(int, int, int, Frame const&, Topology const&, unsigned int, unsigned int&, Barray&); + /// Add internal coordinate for given atom + int addInternalCoordForAtom(int, Frame const&, Topology const&); + /// Calculate coordinates for an atom based on three angles and a bond length + static Vec3 calculatePositionFromAngles(double, double, double, double); + /// Convert from Cartesian to minimal Zmatrix by tracing a molecule int SetFromFrame_Trace(Frame const&, Topology const&, int); /// \return True if IC seeds are set diff --git a/src/Structure/structuredepend b/src/Structure/structuredepend index 786f57a3d6..2bdebfb6b5 100644 --- a/src/Structure/structuredepend +++ b/src/Structure/structuredepend @@ -1,15 +1,22 @@ -Builder.o : Builder.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h BuildAtom.h Builder.h Chirality.h InternalCoords.h StructureEnum.h Zmatrix.h -Chirality.o : Chirality.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Chirality.h StructureEnum.h -Disulfide.o : Disulfide.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../DistRoutines.h ../FileName.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Disulfide.h ResStatArray.h StructureRoutines.h -FunctionalGroup.o : FunctionalGroup.cpp ../Atom.h ../AtomMap.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MapAtom.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h FunctionalGroup.h -FxnGroupBuilder.o : FxnGroupBuilder.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h FunctionalGroup.h FxnGroupBuilder.h StructureRoutines.h Sugar.h SugarToken.h -HisProt.o : HisProt.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h HisProt.h StructureRoutines.h -InternalCoords.o : InternalCoords.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h InternalCoords.h -Model.o : Model.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../TypeNameHolder.h ../Unit.h ../Vec3.h BuildAtom.h Model.h StructureEnum.h +AddIons.o : AddIons.cpp ../AssociatedData.h ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSetList.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../Dimension.h ../DistRoutines.h ../FileIO.h ../FileName.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Parm/../AtomType.h ../Parm/../CmapParmHolder.h ../Parm/../Constants.h ../Parm/../FileName.h ../Parm/../NameType.h ../Parm/../ParameterTypes.h ../Parm/../Parm/ParmEnum.h ../Parm/../TypeNameHolder.h ../Parm/DihedralParmHolder.h ../Parm/ImproperParmHolder.h ../Parm/ParameterSet.h ../Parm/ParmEnum.h ../Parm/ParmHolder.h ../Random.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../Unit.h ../Vec3.h AddIons.h +Builder.o : Builder.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../DistRoutines.h ../FileName.h ../Frame.h ../GuessAtomHybridization.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Parm/../AtomType.h ../Parm/../CmapParmHolder.h ../Parm/../Constants.h ../Parm/../FileName.h ../Parm/../NameType.h ../Parm/../ParameterTypes.h ../Parm/../Parm/ParmEnum.h ../Parm/../TypeNameHolder.h ../Parm/DihedralParmHolder.h ../Parm/ImproperParmHolder.h ../Parm/ParameterSet.h ../Parm/ParmEnum.h ../Parm/ParmHolder.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Timer.h ../Topology.h ../TorsionRoutines.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Builder.h Chirality.h GenerateConnectivityArrays.h InternalCoords.h StructureEnum.h Zmatrix.h +Chirality.o : Chirality.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../Unit.h ../Vec3.h Chirality.h StructureEnum.h +Creator.o : Creator.cpp ../ArgList.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataSet.h ../DataSetList.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../DataSet_NameMap.h ../DataSet_Parameters.h ../DataSet_PdbResMap.h ../Dimension.h ../FileIO.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Parm/../AtomType.h ../Parm/../CmapParmHolder.h ../Parm/../Constants.h ../Parm/../FileName.h ../Parm/../NameType.h ../Parm/../ParameterTypes.h ../Parm/../Parm/ParmEnum.h ../Parm/../TypeNameHolder.h ../Parm/DihedralParmHolder.h ../Parm/ImproperParmHolder.h ../Parm/ParameterSet.h ../Parm/ParmEnum.h ../Parm/ParmHolder.h ../PdbResMapType.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../Structure/StructureEnum.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../Unit.h ../Vec3.h Creator.h GenerateConnectivityArrays.h StructureEnum.h +Disulfide.o : Disulfide.cpp ../ArgList.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../DistRoutines.h ../FileName.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h Disulfide.h ResStatArray.h StructureRoutines.h +FunctionalGroup.o : FunctionalGroup.cpp ../Atom.h ../AtomMap.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MapAtom.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h FunctionalGroup.h +FxnGroupBuilder.o : FxnGroupBuilder.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h FunctionalGroup.h FxnGroupBuilder.h StructureRoutines.h Sugar.h SugarToken.h +GenerateConnectivityArrays.o : GenerateConnectivityArrays.cpp ../Atom.h ../Constants.h ../CpptrajStdio.h ../NameType.h ../ParameterTypes.h ../Residue.h ../SymbolExporting.h GenerateConnectivityArrays.h +HisProt.o : HisProt.cpp ../ArgList.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h HisProt.h StructureRoutines.h +InternalCoords.o : InternalCoords.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h InternalCoords.h +LeastSquaresPlane.o : LeastSquaresPlane.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Unit.h ../Vec3.h LeastSquaresPlane.h +MetalCenterFinder.o : MetalCenterFinder.cpp ../ArgList.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../DistRoutines.h ../FileName.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h MetalCenterFinder.h +PdbCleaner.o : PdbCleaner.cpp ../ArgList.h ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h PdbCleaner.h +RingFinder.o : RingFinder.cpp ../Atom.h ../AtomMask.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h RingFinder.h +Solvate.o : Solvate.cpp ../Action.h ../ActionState.h ../Action_AutoImage.h ../ArgList.h ../AssociatedData.h ../Atom.h ../AtomMask.h ../BaseIOtype.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DataFile.h ../DataFileList.h ../DataSet.h ../DataSetList.h ../DataSet_Coords.h ../DataSet_Coords_REF.h ../Dimension.h ../DispatchObject.h ../FileIO.h ../FileName.h ../FileTypes.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../MetaData.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Parm/../AtomType.h ../Parm/../CmapParmHolder.h ../Parm/../Constants.h ../Parm/../FileName.h ../Parm/../NameType.h ../Parm/../ParameterTypes.h ../Parm/../Parm/ParmEnum.h ../Parm/../TypeNameHolder.h ../Parm/DihedralParmHolder.h ../Parm/ImproperParmHolder.h ../Parm/ParameterSet.h ../Parm/ParmEnum.h ../Parm/ParmHolder.h ../Range.h ../ReferenceFrame.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../TextFormat.h ../Timer.h ../Topology.h ../Unit.h ../Vec3.h Solvate.h StructureEnum.o : StructureEnum.cpp StructureEnum.h StructureRoutines.o : StructureRoutines.cpp ../Atom.h ../CpptrajStdio.h ../NameType.h ../Residue.h ../SymbolExporting.h StructureRoutines.h -Sugar.o : Sugar.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Sugar.h SugarToken.h -SugarBuilder.o : SugarBuilder.cpp ../ArgList.h ../Atom.h ../AtomMap.h ../AtomMask.h ../AtomType.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DistRoutines.h ../FileIO.h ../FileName.h ../Frame.h ../ImageOption.h ../MapAtom.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../TypeNameHolder.h ../Unit.h ../Vec3.h Chirality.h FunctionalGroup.h FxnGroupBuilder.h LinkAtom.h ResStatArray.h StructureEnum.h StructureRoutines.h Sugar.h SugarBuilder.h SugarLinkAtoms.h SugarToken.h -SugarLinkAtoms.o : SugarLinkAtoms.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../Topology.h ../TypeNameHolder.h ../Unit.h ../Vec3.h LinkAtom.h SugarLinkAtoms.h +Sugar.o : Sugar.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h Sugar.h SugarToken.h +SugarBuilder.o : SugarBuilder.cpp ../ArgList.h ../Atom.h ../AtomMap.h ../AtomMask.h ../Box.h ../CharMask.h ../Constants.h ../CoordinateInfo.h ../CpptrajFile.h ../CpptrajStdio.h ../DistRoutines.h ../FileIO.h ../FileName.h ../Frame.h ../ImageOption.h ../MapAtom.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../Unit.h ../Vec3.h Chirality.h FunctionalGroup.h FxnGroupBuilder.h LinkAtom.h ResStatArray.h StructureEnum.h StructureRoutines.h Sugar.h SugarBuilder.h SugarLinkAtoms.h SugarToken.h +SugarLinkAtoms.o : SugarLinkAtoms.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../FileName.h ../Frame.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../StringRoutines.h ../SymbolExporting.h ../Topology.h ../Unit.h ../Vec3.h LinkAtom.h SugarLinkAtoms.h SugarToken.o : SugarToken.cpp ../ArgList.h ../CpptrajStdio.h SugarToken.h -Zmatrix.o : Zmatrix.cpp ../Atom.h ../AtomMask.h ../AtomType.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../DistRoutines.h ../FileName.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterHolders.h ../ParameterSet.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../TypeNameHolder.h ../Unit.h ../Vec3.h BuildAtom.h InternalCoords.h Model.h StructureEnum.h Zmatrix.h +Zmatrix.o : Zmatrix.cpp ../Atom.h ../AtomMask.h ../Box.h ../Constants.h ../CoordinateInfo.h ../CpptrajStdio.h ../DistRoutines.h ../FileName.h ../Frame.h ../ImageOption.h ../MaskToken.h ../Matrix_3x3.h ../ModXNA_Info.h ../Molecule.h ../NameType.h ../Parallel.h ../ParameterTypes.h ../Range.h ../ReplicaDimArray.h ../Residue.h ../Segment.h ../SymbolExporting.h ../Topology.h ../TorsionRoutines.h ../Unit.h ../Vec3.h GenerateConnectivityArrays.h InternalCoords.h Zmatrix.h diff --git a/src/Structure/structurefiles b/src/Structure/structurefiles index 0a0a55cc57..3f53f820b1 100644 --- a/src/Structure/structurefiles +++ b/src/Structure/structurefiles @@ -1,13 +1,20 @@ # Files for Structure subdirectory. STRUCTURE_SOURCES= \ + AddIons.cpp \ Builder.cpp \ Chirality.cpp \ + Creator.cpp \ Disulfide.cpp \ FunctionalGroup.cpp \ FxnGroupBuilder.cpp \ + GenerateConnectivityArrays.cpp \ HisProt.cpp \ InternalCoords.cpp \ - Model.cpp \ + LeastSquaresPlane.cpp \ + MetalCenterFinder.cpp \ + PdbCleaner.cpp \ + RingFinder.cpp \ + Solvate.cpp \ StructureEnum.cpp \ StructureRoutines.cpp \ SugarBuilder.cpp \ diff --git a/src/StructureCheck.cpp b/src/StructureCheck.cpp index 49aadcd8b0..812b520c0d 100644 --- a/src/StructureCheck.cpp +++ b/src/StructureCheck.cpp @@ -1,45 +1,109 @@ #include <cmath> // sqrt #include <algorithm> // sort #include "StructureCheck.h" -#include "Topology.h" +#include "CpptrajFile.h" #include "CpptrajStdio.h" #include "CharMask.h" #include "DistRoutines.h" +#include "Structure/LeastSquaresPlane.h" +#include "Topology.h" #ifdef _OPENMP # include <omp.h> #endif /// CONSTRUCTOR StructureCheck::StructureCheck() : + XP_Exclude_Mask_("&!@/XP"), bondoffset_(1.15), bondMinOffset_(0.50), - nonbondcut2_(0.64), // 0.8^2 - // NOTE: Default of 4.0 Ang for cutoff is from trial and error; seems - // to give a good balance between speed and grid size. - plcut_(4.0), + nonbondcut2_(0.64), // (0.8 Ang)^2 + plcut_(8.0), + ring_shortd2_(0.25), // Short ring-bond 0.5 Ang. distance cutoff + ring_dcut2_(1.562500), // 1.25 Ang. ring-bond distance cutoff + ring_acut_(1.1344640138), // 65 deg. ringvec-bondvec angle cutoff checkType_(NO_PL_1_MASK), debug_(0), bondcheck_(true), - saveProblems_(false) + ringcheck_(true), + saveProblems_(false), + checkExtraPts_(false), + lastFmt_(F_ATOM) {} +/** \return Ring-bond short distance cutoff in Ang. */ +double StructureCheck::RingShortDist() const { + return sqrt(ring_shortd2_); +} + +/** \return Ring-bond distance cutoff in Ang. */ +double StructureCheck::RingDist() const { + return sqrt(ring_dcut2_); +} + +/** \return Ring vector-bond vector angle cutoff in degrees. */ +double StructureCheck::RingAngleCut_Deg() const { + return ring_acut_ * Constants::RADDEG; +} + +/** Create mask string based on if we are excluding extra points or not. */ +std::string StructureCheck::checkMaskStr(std::string const& maskIn) +const +{ + std::string maskOut; + if (maskIn.empty()) + maskOut = "*" + XP_Exclude_Mask_; + else + maskOut = maskIn + XP_Exclude_Mask_; + //mprintf("DEBUG: StructureCheck::checkMaskStr(): String is %s\n", maskOut.c_str()); + return maskOut; +} + +/** Set options with default for extra points (exclude) */ +int StructureCheck::SetOptions(bool imageOn, bool checkBonds, bool saveProblemsIn, + int debugIn, + std::string const& mask1, std::string const& mask2, + double overlapCut, double bondLengthOffset, double bondMinOffset, + double pairListCut, + bool checkRings, double ring_shortd, double ring_dcut, double ring_acut) +{ + return SetOptions(imageOn, checkBonds, saveProblemsIn, false, debugIn, mask1, mask2, "", overlapCut, + bondLengthOffset, bondMinOffset, pairListCut, checkRings, ring_shortd, ring_dcut, ring_acut); +} + // StructureCheck::SetOptions() -int StructureCheck::SetOptions(bool imageOn, bool checkBonds, bool saveProblemsIn, int debugIn, - std::string const& mask1, std::string const& mask2, +int StructureCheck::SetOptions(bool imageOn, bool checkBonds, bool saveProblemsIn, bool checkExtraPtsIn, + int debugIn, + std::string const& mask1, std::string const& mask2, std::string const& XP_Exclude_MaskIn, double overlapCut, double bondLengthOffset, double bondMinOffset, - double pairListCut) + double pairListCut, + bool checkRings, double ring_shortd, double ring_dcut, double ring_acut) { imageOpt_.InitImaging( imageOn ); bondcheck_ = checkBonds; + ringcheck_ = checkRings; saveProblems_ = saveProblemsIn; + checkExtraPts_ = checkExtraPtsIn; debug_ = debugIn; bondoffset_ = bondLengthOffset; bondMinOffset_ = bondMinOffset; nonbondcut2_ = overlapCut * overlapCut; // Save cutoff squared. plcut_ = pairListCut; - if (Mask1_.SetMaskString( mask1 )) return 1; + if (ring_shortd > 0) + ring_shortd2_ = ring_shortd * ring_shortd; + if (ring_dcut > 0) + ring_dcut2_ = ring_dcut * ring_dcut; + if (ring_acut > 0) + ring_acut_ = ring_acut * Constants::DEGRAD; + if (!XP_Exclude_MaskIn.empty()) + XP_Exclude_Mask_ = XP_Exclude_MaskIn; + else + XP_Exclude_Mask_ = "&!@/XP"; // Select extra points by element + if (checkExtraPts_) { + XP_Exclude_Mask_.clear(); + } + if (Mask1_.SetMaskString( checkMaskStr(mask1) )) return 1; if (!mask2.empty()) { - if (Mask2_.SetMaskString( mask2 )) return 1; + if (Mask2_.SetMaskString( checkMaskStr(mask2) )) return 1; } // TODO error checking # ifdef _OPENMP @@ -52,6 +116,7 @@ int StructureCheck::SetOptions(bool imageOn, bool checkBonds, bool saveProblemsI } } # endif + rings_.SetDebug( debug_ ); return 0; } @@ -60,15 +125,19 @@ int StructureCheck::SetOptions(bool imageOn, bool checkBonds, bool saveProblemsI * the mask. */ void StructureCheck::ProcessBondArray(BondArray const& Bonds, BondParmArray const& Parm, - CharMask const& cMask) + CharMask const& cMask, std::vector<Atom> const& Atoms) { for (BondArray::const_iterator bnd = Bonds.begin(); bnd != Bonds.end(); ++bnd) { if ( cMask.AtomInCharMask(bnd->A1()) && cMask.AtomInCharMask(bnd->A2()) ) { - if (bnd->Idx() < 0) - mprintf("Warning: Bond parameters not present for atoms %i-%i, skipping.\n", - bnd->A1()+1, bnd->A2()+1); - else { + if (bnd->Idx() < 0) { + //mprintf("Warning: Bond parameters not present for atoms %i-%i, skipping.\n", + // bnd->A1()+1, bnd->A2()+1); + Atom::AtomicElementType a1Elt = Atoms[bnd->A1()].Element(); + Atom::AtomicElementType a2Elt = Atoms[bnd->A2()].Element(); + double Req_off = Atom::GetBondLength(a1Elt, a2Elt); + bondList_.push_back( Problem(bnd->A1(), bnd->A2(), Req_off) ); + } else { double Req_off = Parm[ bnd->Idx() ].Req();// + bondoffset_; //bondList_.push_back( Problem(bnd->A1(), bnd->A2(), Req_off*Req_off) ); bondList_.push_back( Problem(bnd->A1(), bnd->A2(), Req_off) ); @@ -81,15 +150,29 @@ void StructureCheck::ProcessBondArray(BondArray const& Bonds, BondParmArray cons void StructureCheck::SetupBondList(AtomMask const& iMask, Topology const& top) { CharMask cMask( iMask.ConvertToCharMask(), iMask.Nselected() ); - ProcessBondArray(top.Bonds(), top.BondParm(), cMask); - ProcessBondArray(top.BondsH(), top.BondParm(), cMask); + ProcessBondArray(top.Bonds(), top.BondParm(), cMask, top.Atoms()); + ProcessBondArray(top.BondsH(), top.BondParm(), cMask, top.Atoms()); + // Only look at bonds to heavy atoms for rings + ringBonds_.clear(); + ringBonds_.reserve( top.Bonds().size() ); + for (BondArray::const_iterator bnd = top.Bonds().begin(); bnd != top.Bonds().end(); ++bnd) + { + if ( cMask.AtomInCharMask(bnd->A1()) && cMask.AtomInCharMask(bnd->A2()) ) { + ringBonds_.push_back( Btype(bnd->A1(), bnd->A2()) ); + } + } } // StructureCheck::Setup() int StructureCheck::Setup(Topology const& topIn, Box const& boxIn) { +# ifdef TIMER + t_setup_.Start(); +# endif imageOpt_.SetupImaging( boxIn.HasBox() ); bondList_.clear(); + if (!checkExtraPts_) + mprintf("\tExcluding extra points using mask expression '%s'.\n", XP_Exclude_Mask_.c_str()); // Set up first mask if ( topIn.SetupIntegerMask( Mask1_ ) ) return 1; if (Mask1_.None()) { @@ -98,7 +181,13 @@ int StructureCheck::Setup(Topology const& topIn, Box const& boxIn) } checkType_ = NO_PL_1_MASK; // Set up bonds if specified. - if (bondcheck_) SetupBondList(Mask1_, topIn); +# ifdef TIMER + t_setup_bonds_.Start(); +# endif + if (bondcheck_ || ringcheck_) SetupBondList(Mask1_, topIn); +# ifdef TIMER + t_setup_bonds_.Stop(); +# endif // Set up second mask if specified. if ( Mask2_.MaskStringSet() ) { if (topIn.SetupIntegerMask( Mask2_ ) ) return 1; @@ -118,7 +207,7 @@ int StructureCheck::Setup(Topology const& topIn, Box const& boxIn) OuterMask_ = Mask1_; InnerMask_ = Mask2_; } - if (bondcheck_) SetupBondList(Mask2_, topIn); + if (bondcheck_ || ringcheck_) SetupBondList(Mask2_, topIn); checkType_ = NO_PL_2_MASKS; } // Check if pairlist should be used. @@ -126,6 +215,23 @@ int StructureCheck::Setup(Topology const& topIn, Box const& boxIn) ExclusionArray::ListOpt ex_list_opt = ExclusionArray::ONLY_GREATER_IDX; if (imageOpt_.ImagingEnabled() && !Mask2_.MaskStringSet()) { mprintf("\tUsing pair list.\n"); + // If pairlist cutoff < 0 try to use a heuristic to estimate. + if (plcut_ < 0) { + // Get the minimum dimension length + double minDimLen = boxIn.Param(Box::X); + if (boxIn.Param(Box::Y) < minDimLen) + minDimLen = boxIn.Param(Box::Y); + if (boxIn.Param(Box::Z) < minDimLen) + minDimLen = boxIn.Param(Box::Z); + // Have cutoff be sqrt of min dim len + plcut_ = sqrt(minDimLen); + if (plcut_ < 8.0) { + plcut_ = 8.0; + mprintf("\tSet pairlist cutoff to default of %f Ang.\n", plcut_); + } else + mprintf("\tSet pairlist cutoff to %f Ang. based on minimum box dimension %f Ang.\n", + plcut_, minDimLen); + } if (pairList_.InitPairList( plcut_, 0.1, debug_ )) { mprinterr("Error: StructureCheck: Could not init pair list.\n"); return 1; @@ -139,21 +245,53 @@ int StructureCheck::Setup(Topology const& topIn, Box const& boxIn) ex_list_opt = ExclusionArray::FULL; } // Set up exclusion list +# ifdef TIMER + t_setup_exclusion_.Start(); +# endif if (checkType_ == PL_1_MASK || checkType_ == NO_PL_1_MASK) { mprintf("\tExcluding bond interactions.\n"); // Set up atom exclusion list. Distance of 2 since we are not - // yet checking angles and dihedrals. + // yet checking angles and dihedrals. if (Excluded_.SetupExcluded(topIn.Atoms(), Mask1_, 2, ex_self_opt, ex_list_opt)) { mprinterr("Error: StructureCheck: Could not set up excluded atoms list.\n"); return 1; } } else mprintf("\tNot using exclusions.\n"); +# ifdef TIMER + t_setup_exclusion_.Stop(); +# endif // Sort bond list - if (bondcheck_) std::sort(bondList_.begin(), bondList_.end()); + if (bondcheck_ || ringcheck_) std::sort(bondList_.begin(), bondList_.end()); + // Find rings +# ifdef TIMER + t_setup_ringfinder_.Start(); +# endif + if (ringcheck_) { + if (rings_.SetupRingFinder(topIn, Mask1_)) { + mprinterr("Error: Could not set up ring finder.\n"); + return 1; + } + if (debug_ > 0) rings_.PrintRings(topIn); + } +# ifdef TIMER + t_setup_ringfinder_.Stop(); + t_setup_.Stop(); +# endif return 0; } +void StructureCheck::PrintTiming(int indent, double total) +const +{ +# ifdef TIMER + t_setup_.WriteTiming(indent, "Check Setup :", total); + t_setup_bonds_.WriteTiming (indent+1, "Setup check bonds :", t_setup_.Total()); + t_setup_exclusion_.WriteTiming (indent+1, "Setup check exclusions :", t_setup_.Total()); + t_setup_ringfinder_.WriteTiming(indent+1, "Setup check ringfinder :", t_setup_.Total()); +# endif +} + /** Sort problem list. If OpenMP, combine problems from each thread * into problemAtoms_ first. */ @@ -205,6 +343,394 @@ int StructureCheck::CheckBonds(Frame const& currentFrame) } // END pragma omp parallel # endif ConsolidateProblems(); + lastFmt_ = F_BOND; + + return Nproblems; +} + +/** Check if any bonds are passing through rings. */ +int StructureCheck::CheckRings(Frame const& currentFrame) { + return CheckRings(currentFrame, rings_, ringBonds_); +} + +/// DEBUG - For printing ring atoms in mask +//static inline void printRingAtoms(AtomMask const& maskIn) { +// for (AtomMask::const_iterator it = maskIn.begin(); it != maskIn.end(); ++it) +// mprintf(" %i", *it); +//} + +/** Check ring and bond */ +void StructureCheck::ring_bond_check(int& Nproblems, + double dist2, Btype const& bnd, Vec3 const& vbond, + AtomMask const& ringMask, + Cpptraj::Structure::LeastSquaresPlane const& ringVec +# ifdef _OPENMP + , int mythread +# endif + ) +{ + bool ring_intersect = false; + // Bond intersects ring if it meets the short cutoff or if the angle + // between the bond and the ring normal is less than a cutoff. + if (dist2 < ring_shortd2_) { + //mprintf("DEBUG: Bond %i - %i near ring (%f).", + // bnd.A1(), bnd.A2(), sqrt(dist2)); + //printRingAtoms(ringMask); + //mprintf("\n"); + ring_intersect = true; + } else { + //mprintf("DEBUG: Bond %i - %i near ring (%f), doing angle check.", + // bnd.A1(), bnd.A2(), sqrt(dist2)); + //printRingAtoms(ringMask); + //mprintf("\n"); + // Get the angle + double ang_in_rad = vbond.Angle( ringVec.Nxyz() ); + // Wrap the angle between 0-90 degrees + if (ang_in_rad > Constants::PIOVER2) + ang_in_rad = Constants::PI - ang_in_rad; + //mprintf("DEBUG:\t\tWrapped angle is %f deg.\n", Constants::RADDEG*ang_in_rad); + if (ang_in_rad < ring_acut_) { + //mprintf("DEBUG: Bond %i - %i near ring (%f) Ang= %f deg.", + // bnd.A1(), bnd.A2(), sqrt(dist2), + // Constants::RADDEG*ang_in_rad); + ////printRingAtoms(ringMask); + //mprintf("\n"); + ring_intersect = true; + } + } + if (ring_intersect) { + //mprintf("DEBUG: Bond intersects ring.\n"); + ++Nproblems; + if (saveProblems_) { + // Do not use constructor since we do not want to sort atoms + Problem newProb; + newProb.SetProb( bnd.A1(), ringMask.back(), sqrt(dist2) ); +# ifdef _OPENMP + thread_problemAtoms_[mythread] +# else + problemAtoms_ +# endif + .push_back( newProb ); + } + } // END angle cutoff satisfied +} + +bool StructureCheck::check_bond_not_in_ring(AtomMask const& ringMask, Btype const& bnd) +{ + return ( !ringMask.IsSelected(bnd.A1()) && + !ringMask.IsSelected(bnd.A2()) ); +} + +/** Check if any bonds are passing through rings, use pairlist. */ +int StructureCheck::checkRings_PL(Frame const& currentFrame, + Cpptraj::Structure::RingFinder const& rings, + std::vector<Btype> const& ringBonds, + std::vector<Cpptraj::Structure::LeastSquaresPlane> const& RingVecs) +{ + int Nproblems = 0; + // Need to create a pseudo-frame containing bond midpoints and + // ring centers. + unsigned int pseudo_natom = ringBonds.size() + rings.Nrings(); + + Frame pseudoFrame( pseudo_natom ); + pseudoFrame.SetBox( currentFrame.BoxCrd() ); + //pseudoFrame.ClearAtoms(); + + // Bonds first + int idx = 0; + int bond_max = (int)ringBonds.size(); + std::vector<Vec3> Vbonds( ringBonds.size() ); +# ifdef _OPENMP +# pragma omp parallel private(idx) + { +# pragma omp for +# endif + for (idx = 0; idx < bond_max; idx++) + { + const double* xyz1 = currentFrame.XYZ( ringBonds[idx].A1() ); + const double* xyz2 = currentFrame.XYZ( ringBonds[idx].A2() ); + Vec3 vbond( xyz2[0] - xyz1[0], + xyz2[1] - xyz1[1], + xyz2[2] - xyz1[2] ); + Vec3 vmid = Vec3(xyz1) + (vbond * 0.5); + vbond.Normalize(); + pseudoFrame.SetXYZ(idx, vmid); + Vbonds[idx] = vbond; + } +# ifdef _OPENMP + } // END pragma omp parallel +# endif + + // Rings second + idx = bond_max; + for (unsigned int jdx = 0; jdx != rings.Nrings(); jdx++, idx++) { + Cpptraj::Structure::LeastSquaresPlane const& ringVec = RingVecs[jdx]; + pseudoFrame.SetXYZ(idx, ringVec.Cxyz()); + } + + // Pseudo mask selecting everything + AtomMask pseudoMask(0, pseudo_natom); + + // Set up the pair list + int retVal = pairList_.CreatePairList(pseudoFrame, + pseudoFrame.BoxCrd().UnitCell(), + pseudoFrame.BoxCrd().FracCell(), pseudoMask); + if (retVal < 0) { + // Treat grid setup failure as one problem. + mprinterr("Error: Grid setup for ring-bond check failed.\n"); + return 1; + } else if (retVal > 0) { + // Atoms off the grid should count as problems as well. + Nproblems = retVal; + } + + // Loop over pairlist cells + int cidx; +# ifdef _OPENMP + int mythread; +# pragma omp parallel private(cidx,mythread) reduction(+: Nproblems) + { + mythread = omp_get_thread_num(); + thread_problemAtoms_[mythread].clear(); +# pragma omp for +# endif + for (cidx = 0; cidx < pairList_.NGridMax(); cidx++) + { + PairList::CellType const& thisCell = pairList_.Cell( cidx ); + if (thisCell.NatomsInGrid() > 0) + { + // cellList contains this cell index and all neighbors. + PairList::Iarray const& cellList = thisCell.CellList(); + // transList contains index to translation for the neighbor. + PairList::Iarray const& transList = thisCell.TransList(); + // Loop over all atoms of thisCell. + for (PairList::CellType::const_iterator it0 = thisCell.begin(); + it0 != thisCell.end(); ++it0) + { + Vec3 const& xyz0 = it0->ImageCoords(); + bool it0_is_bond = (it0->Idx() < bond_max); + // Calc interaction of atom to all other atoms in thisCell. + for (PairList::CellType::const_iterator it1 = it0 + 1; + it1 != thisCell.end(); ++it1) + { + bool it1_is_bond = (it1->Idx() < bond_max); + if (it0_is_bond != it1_is_bond) { + AtomMask const* ringMask = 0; + Cpptraj::Structure::LeastSquaresPlane const* ringVec = 0; + Btype const* rbnd = 0; + Vec3 const* vbond = 0; + if (it0_is_bond) { + ringMask = &(rings[it1->Idx() - bond_max]); + ringVec = &(RingVecs[it1->Idx() - bond_max]); + rbnd = &(ringBonds[it0->Idx()]); + vbond = &(Vbonds[it0->Idx()]); + } else { + ringMask = &(rings[it0->Idx() - bond_max]); + ringVec = &(RingVecs[it0->Idx() - bond_max]); + rbnd = &(ringBonds[it1->Idx()]); + vbond = &(Vbonds[it1->Idx()]); + } + if (check_bond_not_in_ring( *ringMask, *rbnd )) { + Vec3 const& xyz1 = it1->ImageCoords(); + Vec3 dxyz = xyz1 - xyz0; + double dist2 = dxyz.Magnitude2(); + if (dist2 < ring_dcut2_) { + ring_bond_check(Nproblems, dist2, *rbnd, *vbond, *ringMask, *ringVec +# ifdef _OPENMP + , mythread +# endif + ); + } // END outer distance cutoff satisfied + } // END bond not in ring + } // END it0 and it1 are not the same type + } // END loop over all other atoms of thisCell. + // Loop over all neighbor cells + for (unsigned int nidx = 1; nidx != cellList.size(); nidx++) + { + PairList::CellType const& nbrCell = pairList_.Cell( cellList[nidx] ); + // Translate vector for neighbor cell + Vec3 const& tVec = pairList_.TransVec( transList[nidx] ); + // Loop over every atom in nbrCell + for (PairList::CellType::const_iterator it1 = nbrCell.begin(); + it1 != nbrCell.end(); ++it1) + { + bool it1_is_bond = (it1->Idx() < bond_max); + if (it0_is_bond != it1_is_bond) { + AtomMask const* ringMask = 0; + Cpptraj::Structure::LeastSquaresPlane const* ringVec = 0; + Btype const* rbnd = 0; + Vec3 const* vbond = 0; + if (it0_is_bond) { + ringMask = &(rings[it1->Idx() - bond_max]); + ringVec = &(RingVecs[it1->Idx() - bond_max]); + rbnd = &(ringBonds[it0->Idx()]); + vbond = &(Vbonds[it0->Idx()]); + } else { + ringMask = &(rings[it0->Idx() - bond_max]); + ringVec = &(RingVecs[it0->Idx() - bond_max]); + rbnd = &(ringBonds[it1->Idx()]); + vbond = &(Vbonds[it1->Idx()]); + } + if (check_bond_not_in_ring( *ringMask, *rbnd )) { + Vec3 const& xyz1 = it1->ImageCoords(); + Vec3 dxyz = xyz1 + tVec - xyz0; + double dist2 = dxyz.Magnitude2(); + if (dist2 < ring_dcut2_) { + ring_bond_check(Nproblems, dist2, *rbnd, *vbond, *ringMask, *ringVec +# ifdef _OPENMP + , mythread +# endif + ); + } // END outer distance cutoff satisfied + } // END bond not in ring + } // END it0 and it1 are not the same type + } // END loop over every atom in neighbor cell + } // END loop over all neighbor cells + } // END loop over all atoms of thisCell + } // END thisCell has atoms + } // END loop over pairlist cells +# ifdef _OPENMP + } // END omp parallel +# endif + + return Nproblems; +} + +/** Check if any bonds are passing through rings, no pairlist. */ +int StructureCheck::checkRings_NoPL(Frame const& currentFrame, + Cpptraj::Structure::RingFinder const& rings, + std::vector<Btype> const& ringBonds, + std::vector<Cpptraj::Structure::LeastSquaresPlane> const& RingVecs) +{ + int Nproblems = 0; + int idx = 0; + int ring_max = (int)rings.Nrings(); + // Loop over bonds + int bond_max = (int)ringBonds.size(); +# ifdef _OPENMP + int mythread; +# pragma omp parallel private(idx,mythread) reduction(+: Nproblems) + { + mythread = omp_get_thread_num(); + thread_problemAtoms_[mythread].clear(); +# pragma omp for +# endif + for (idx = 0; idx < bond_max; idx++) + { + const double* xyz1 = currentFrame.XYZ( ringBonds[idx].A1() ); + const double* xyz2 = currentFrame.XYZ( ringBonds[idx].A2() ); + Vec3 vbond( xyz2[0] - xyz1[0], + xyz2[1] - xyz1[1], + xyz2[2] - xyz1[2] ); + Vec3 vmid = Vec3(xyz1) + (vbond * 0.5); + vbond.Normalize(); + // Loop over rings + for (int jdx = 0; jdx < ring_max; jdx++) + { + // Make sure this bond is not in this ring + AtomMask const& ringMask = rings[jdx]; + if ( !ringMask.IsSelected(ringBonds[idx].A1()) && + !ringMask.IsSelected(ringBonds[idx].A2()) ) + { + // Get the center distance + Cpptraj::Structure::LeastSquaresPlane const& ringVec = RingVecs[jdx]; + double dist2 = DIST2_NoImage( vmid.Dptr(), ringVec.Cxyz().Dptr() ); + if (dist2 < ring_dcut2_) { + ring_bond_check(Nproblems, dist2, ringBonds[idx], vbond, ringMask, ringVec +# ifdef _OPENMP + , mythread +# endif + ); +/* + bool ring_intersect = false; + // Bond intersects ring if it meets the short cutoff or if the angle + // between the bond and the ring normal is less than a cutoff. + if (dist2 < ring_shortd2_) { + mprintf("DEBUG: Bond %i - %i near ring %i (%f).", + ringBonds[idx].A1(), ringBonds[idx].A2(), jdx, sqrt(dist2)); + printRingAtoms(ringMask); + mprintf("\n"); + ring_intersect = true; + } else { + mprintf("DEBUG: Bond %i - %i near ring %i (%f), doing angle check.", + ringBonds[idx].A1(), ringBonds[idx].A2(), jdx, sqrt(dist2)); + printRingAtoms(ringMask); + mprintf("\n"); + // Get the angle + double ang_in_rad = vbond.Angle( ringVec.Nxyz() ); + // Wrap the angle between 0-90 degrees + if (ang_in_rad > Constants::PIOVER2) + ang_in_rad = Constants::PI - ang_in_rad; + mprintf("DEBUG:\t\tWrapped angle is %f deg.\n", Constants::RADDEG*ang_in_rad); + if (ang_in_rad < ring_acut_) { + mprintf("DEBUG: Bond %i - %i near ring %i (%f) Ang= %f deg.", + ringBonds[idx].A1(), ringBonds[idx].A2(), jdx, sqrt(dist2), + Constants::RADDEG*ang_in_rad); + //printRingAtoms(ringMask); + mprintf("\n"); + ring_intersect = true; + } + } + if (ring_intersect) { + mprintf("DEBUG: Bond intersects ring.\n"); + ++Nproblems; + if (saveProblems_) { + // Do not use constructor since we do not want to sort atoms + Problem newProb; + newProb.SetProb( ringBonds[idx].A1(), ringMask.back(), sqrt(dist2) ); +# ifdef _OPENMP + thread_problemAtoms_[mythread] +# else + problemAtoms_ +# endif + .push_back( newProb ); + } + } // END angle cutoff satisfied +*/ + } // END distance cutoff satisfied + } // END both bond atoms are not part of this ring + } // END loop over rings + } // END loop over bonds +# ifdef _OPENMP + } // END pragma omp parallel +# endif + return Nproblems; +} + +/** Check if any bonds are passing through rings. */ +int StructureCheck::CheckRings(Frame const& currentFrame, Cpptraj::Structure::RingFinder const& rings, std::vector<Btype> const& ringBonds) +{ + problemAtoms_.clear(); + // Get all ring vectors + typedef std::vector<Cpptraj::Structure::LeastSquaresPlane> Larray; + Larray RingVecs; + RingVecs.resize( rings.Nrings() ); + int idx = 0; + int ring_max = (int)rings.Nrings(); +# ifdef _OPENMP +# pragma omp parallel private(idx) + { +# pragma omp for +# endif + for (idx = 0; idx < ring_max; idx++) + { + // false = use geometric center + RingVecs[idx].CalcLeastSquaresPlane( currentFrame, rings[idx], false ); + } +# ifdef _OPENMP + } // END pragma omp parallel +# endif + + int Nproblems = 0; + if (checkType_ == PL_1_MASK) { + // TODO check for valid box + Nproblems = checkRings_PL(currentFrame, rings, ringBonds, RingVecs); + } else { + Nproblems = checkRings_NoPL(currentFrame, rings, ringBonds, RingVecs); + } + + ConsolidateProblems(); + lastFmt_ = F_RING; return Nproblems; } @@ -473,6 +999,49 @@ int StructureCheck::CheckOverlaps(Frame const& currentFrame) { Nproblems = Mask1_CheckOverlap(currentFrame); } //mprintf("Exiting CheckOverlaps() with %i\n\n", Nproblems); + lastFmt_ = F_ATOM; return Nproblems; } + +/** Write formats for problems. */ +const char* StructureCheck::Fmt_[] = { + "%i\t Warning: Atoms %i:%s and %i:%s are close (%.2f)\n", ///< F_ATOM + "%i\t Warning: Unusual bond length %i:%s to %i:%s (%.2f)\n", ///< F_BOND + "%i\t Warning: Bond involving atom %i:%s intersects ring involving atom %i:%s (%.2f)\n" ///< F_RING +}; + +#ifdef MPI +/** \return Format string of given type, for writing in parallel. */ +const char* StructureCheck::WriteFmt(int idx) { + if (idx < 0 || idx > (int)F_RING) return 0; + return Fmt_[idx]; +} +#endif + +/** Write formats for problems, no frame number. */ +const char* StructureCheck::NoFrameFmt_[] = { + "Warning: Atoms %i:%s and %i:%s are close (%.2f)\n", ///< F_ATOM + "Warning: Unusual bond length %i:%s to %i:%s (%.2f)\n", ///< F_BOND + "Warning: Bond involving atom %i:%s intersects ring involving atom %i:%s (%.2f)\n" ///< F_RING +}; + +/** Write current problems to the given file. */ +void StructureCheck::WriteProblemsToFile(CpptrajFile* outfile, int frameNum, Topology const& top) const { + if (outfile == 0) return; + for (const_iterator p = begin(); p != end(); ++p) { + outfile->Printf(Fmt_[lastFmt_], frameNum, + p->A1()+1, top.TruncResAtomName(p->A1()).c_str(), + p->A2()+1, top.TruncResAtomName(p->A2()).c_str(), p->D()); + } +} + +/** Write current problems to the given file, no frame number. */ +void StructureCheck::WriteProblemsToFile(CpptrajFile* outfile, Topology const& top) const { + if (outfile == 0) return; + for (const_iterator p = begin(); p != end(); ++p) { + outfile->Printf(NoFrameFmt_[lastFmt_], + p->A1()+1, top.TruncResAtomName(p->A1()).c_str(), + p->A2()+1, top.TruncResAtomName(p->A2()).c_str(), p->D()); + } +} diff --git a/src/StructureCheck.h b/src/StructureCheck.h index ea5a452913..3c29b2426c 100644 --- a/src/StructureCheck.h +++ b/src/StructureCheck.h @@ -5,22 +5,63 @@ #include "ExclusionArray.h" #include "AtomMask.h" #include "ParameterTypes.h" +#include "Structure/RingFinder.h" +#include "Timer.h" // Forward declares class Topology; class CharMask; +class CpptrajFile; +namespace Cpptraj { +namespace Structure { +class LeastSquaresPlane; +} +} /// Used to count potential structure problems. class StructureCheck { public: + // ------------------------------------------- + /// Cache heavy atom bond indices for checking with rings + class Btype { + public: + Btype(int a1, int a2) : a1_(a1), a2_(a2) {} + int A1() const { return a1_; } + int A2() const { return a2_; } + private: + int a1_; + int a2_; + }; + // ------------------------------------------- + /// CONSTRUCTOR StructureCheck(); - /// Options: imageOn, checkBonds, saveProblems, debug, mask1, mask2, ovrlpCut, bndLenOffset, minBndLenOffset, PListCut + /// Options: imageOn, checkBonds, saveProblems, check extrapoints, debug, mask1, mask2, extra points exclude mask, ovrlpCut, bndLenOffset, minBndLenOffset, PListCut + int SetOptions(bool, bool, bool, bool, int, std::string const&, std::string const&, std::string const&, + double, double, double, double, bool, double, double, double); + /// Options (no extra points): imageOn, checkBonds, saveProblems, debug, mask1, mask2, ovrlpCut, bndLenOffset, minBndLenOffset, PListCut int SetOptions(bool, bool, bool, int, std::string const&, std::string const&, - double, double, double, double); + double, double, double, double, bool, double, double, double); + /// Setup for given topology and box. int Setup(Topology const&, Box const&); /// \return Number of abnormal bonds. int CheckBonds(Frame const&); /// \return Number of atomic overlaps. int CheckOverlaps(Frame const&); + /// Check if any bonds are passing through rings. + int CheckRings(Frame const&); + /// Check if any of the given bonds are passing through given rings. + int CheckRings(Frame const&, Cpptraj::Structure::RingFinder const&, std::vector<Btype> const&); + /// Write existing problems to the given file + void WriteProblemsToFile(CpptrajFile*, int, Topology const&) const; + /// Write existing problems to the given file, no frame number + void WriteProblemsToFile(CpptrajFile*, Topology const&) const; +# ifdef MPI + /// \return Format string of given type, for writing in parallel + static const char* WriteFmt(int); +# endif + /// Print timing data to stdout + void PrintTiming(int, double) const; + /// Format of problems currently stored in problemAtoms_ + enum FmtType { F_ATOM =0, F_BOND, F_RING }; AtomMask const& Mask1() const { return Mask1_; } AtomMask const& Mask2() const { return Mask2_; } @@ -28,9 +69,14 @@ class StructureCheck { bool CheckBonds() const { return bondcheck_; } double BondOffset() const { return bondoffset_; } double BondMinOffset() const { return bondMinOffset_; } + bool CheckRings() const { return ringcheck_; } + double RingShortDist() const; + double RingDist() const; + double RingAngleCut_Deg() const; double NonBondCut2() const { return nonbondcut2_; } double PairListCut() const { return plcut_; } unsigned int Nbonds() const { return bondList_.size(); } + int Debug() const { return debug_; } # ifdef _OPENMP unsigned int Nthreads() const { return thread_problemAtoms_.size(); } # endif @@ -52,6 +98,8 @@ class StructureCheck { else return (atom1_ < rhs.atom1_); } + /// Set problem atoms and distance, do not sort atoms + void SetProb(int a1, int a2, double d) { atom1_ = a1; atom2_ = a2; dist_ = d; } double D() const { return dist_; } int A1() const { return atom1_; } int A2() const { return atom2_; } @@ -72,12 +120,35 @@ class StructureCheck { /// Iterator to end of list of problems from latest call to CheckX const_iterator end() const { return problemAtoms_.end(); } private: + /// Format strings corresponding to FmtType + static const char* Fmt_[]; + /// Format strings corresponding to FmtType, no frame number + static const char* NoFrameFmt_[]; /// Type of overlap check enum CheckType { NO_PL_1_MASK=0, NO_PL_2_MASKS, PL_1_MASK }; + /// \return mask string based on if extra points are being excluded + std::string checkMaskStr(std::string const&) const; /// Add selected bonds in BondArray to list to be checked. - void ProcessBondArray(BondArray const&, BondParmArray const&, CharMask const&); + void ProcessBondArray(BondArray const&, BondParmArray const&, CharMask const&, std::vector<Atom> const&); /// Add selected bonds in topology to list to be checked. void SetupBondList(AtomMask const&, Topology const&); + /// Check for intersection between bond and ring + void ring_bond_check(int&, double, Btype const&, Vec3 const&, AtomMask const&, + Cpptraj::Structure::LeastSquaresPlane const& +# ifdef _OPENMP + , int +# endif + ); + /// \return True if given bond not in given ring mask + static inline bool check_bond_not_in_ring(AtomMask const&, Btype const&); + /// Check for intersections between bonds and rings, no pair list + int checkRings_NoPL(Frame const&, Cpptraj::Structure::RingFinder const&, + std::vector<Btype> const&, + std::vector<Cpptraj::Structure::LeastSquaresPlane> const&); + /// Check for intersections between bonds and rings, use pair list + int checkRings_PL(Frame const&, Cpptraj::Structure::RingFinder const&, + std::vector<Btype> const&, + std::vector<Cpptraj::Structure::LeastSquaresPlane> const&); /// PairList version of CheckOverlap, 1 mask int PL1_CheckOverlap(Frame const&); /// Non-pairlist version of CheckOverlap, 1 mask @@ -88,6 +159,9 @@ class StructureCheck { void ConsolidateProblems(); /// Check for/record non-bonded interaction problem inline void DistanceCheck(Frame const&, int, int, Parray&, int&) const; + + std::vector<Btype> ringBonds_; + # ifdef _OPENMP std::vector<Parray> thread_problemAtoms_; # endif @@ -96,18 +170,32 @@ class StructureCheck { PairList pairList_; ///< Atom pair list ExclusionArray Excluded_; ///< Hold excluded atoms for pair list. ImageOption imageOpt_; ///< Used to determine if imaging should be used. + Cpptraj::Structure::RingFinder rings_; ///< Used to find rings Parray bondList_; ///< Array of bonds to check. AtomMask Mask1_; ///< Mask of atoms to check. AtomMask Mask2_; ///< Optional mask of atoms to check against atoms in Mask1 AtomMask OuterMask_; ///< Mask with the most atoms. AtomMask InnerMask_; ///< Mask with fewer atoms. + std::string XP_Exclude_Mask_; ///< Expression to deselect extra points double bondoffset_; ///< Report bonds larger than Req + bondoffset_ double bondMinOffset_; ///< Report bonds less than Req - bondMinOffset_ double nonbondcut2_; ///< Report distance^2 less than nonbondcut2_ double plcut_; ///< Pairlist cutoff + double ring_shortd2_; ///< Ring center to bond center short distance (Ang) cutoff squared. + double ring_dcut2_; ///< Ring center to bond center distance (Ang) cutoff squared. + double ring_acut_; ///< Ring perpendicular vector to bond vector angle cutoff (rad). CheckType checkType_; ///< Type of atom overlap check int debug_; ///< Debug level. bool bondcheck_; ///< If true check bonds as well + bool ringcheck_; ///< If true check bond/ring intersections bool saveProblems_; ///< If true save problems in problemAtoms_ + bool checkExtraPts_; ///< If true check extra points. + FmtType lastFmt_; ///< Format of problems currently stored in problemAtoms_ +# ifdef TIMER + Timer t_setup_; + Timer t_setup_bonds_; + Timer t_setup_exclusion_; + Timer t_setup_ringfinder_; +# endif }; #endif diff --git a/src/StructureMapper.cpp b/src/StructureMapper.cpp index a03553a470..921558db44 100644 --- a/src/StructureMapper.cpp +++ b/src/StructureMapper.cpp @@ -616,7 +616,7 @@ int StructureMapper::mapChiral(AtomMap& Ref, AtomMap& Tgt) { if (dR[1] < 0) ref_1 = -1; else - tgt_1 = 1; + ref_1 = 1; if (dT[0] < 0) tgt_0 = -1; else diff --git a/src/TopInfo.cpp b/src/TopInfo.cpp index c2ecc34673..d374773e28 100644 --- a/src/TopInfo.cpp +++ b/src/TopInfo.cpp @@ -18,7 +18,8 @@ TopInfo::TopInfo() : amn_width_(0), max_aname_len_(0), toStdout_(false), - noIntraRes_(false) + noIntraRes_(false), + printIndices_(true) {} /// CONSTRUCTOR - To Stdout @@ -30,7 +31,8 @@ TopInfo::TopInfo(Topology const* pIn) : max_type_len_(0), max_aname_len_(0), toStdout_(false), - noIntraRes_(false) + noIntraRes_(false), + printIndices_(true) { SetupTopInfo( 0, pIn, 0 ); } @@ -42,7 +44,8 @@ TopInfo::~TopInfo() { } // TopInfo::SetupTopInfo() -int TopInfo::SetupTopInfo(CpptrajFile* fIn, Topology const* pIn, DataSet_Coords* cIn) { +int TopInfo::SetupTopInfo(CpptrajFile* fIn, Topology const* pIn, DataSet_Coords* cIn) +{ if (cIn == 0 && pIn == 0) { mprinterr("Internal Error: TopInfo: Null topology\n"); return 1; @@ -477,7 +480,10 @@ void TopInfo::PrintBonds(BondArray const& barray, BondParmArray const& bondparm, printBond = false; } if (printBond) { - outfile_->Printf("%*i", nw, nb); + if (printIndices_) + outfile_->Printf("%*i", nw, nb); + else + outfile_->Printf("%*c", nw, ' '); int bidx = batom->Idx(); if ( bidx > -1 ) outfile_->Printf(" %6.2f %6.3f", bondparm[bidx].Rk(), bondparm[bidx].Req()); @@ -501,8 +507,8 @@ void TopInfo::PrintBonds(BondArray const& barray, BondParmArray const& bondparm, int TopInfo::PrintBondInfo(std::string const& mask1exp, std::string const& mask2exp, bool printUB) const { - if (printUB && !parm_->Chamber().HasChamber()) { - mprintf("Warning: '%s' does not have any CHARMM parameters.\n", parm_->c_str()); + if (printUB && parm_->UB().empty()) { + mprintf("Warning: '%s' does not have any Urey-Bradley parameters.\n", parm_->c_str()); return 0; } CharMask mask1( mask1exp ); @@ -514,8 +520,8 @@ int TopInfo::PrintBondInfo(std::string const& mask1exp, std::string const& mask2 bool hasParams; if (printUB) { label = "#UB"; - n_bonds = parm_->Chamber().UB().size(); - hasParams = !parm_->Chamber().UBparm().empty(); + n_bonds = parm_->UB().size(); + hasParams = !parm_->UBparm().empty(); } else { n_bonds = parm_->BondsH().size() + parm_->Bonds().size(); hasParams = !parm_->BondParm().empty(); @@ -532,7 +538,7 @@ int TopInfo::PrintBondInfo(std::string const& mask1exp, std::string const& mask2 max_type_len_, "T1", max_type_len_, "T2"); int nb = 1; if (printUB) - PrintBonds( parm_->Chamber().UB(), parm_->Chamber().UBparm(), mask1, mask2, nw, nb ); + PrintBonds( parm_->UB(), parm_->UBparm(), mask1, mask2, nw, nb ); else { PrintBonds( parm_->BondsH(), parm_->BondParm(), mask1, mask2, nw, nb ); PrintBonds( parm_->Bonds(), parm_->BondParm(), mask1, mask2, nw, nb ); @@ -570,7 +576,10 @@ void TopInfo::PrintAngles(AngleArray const& aarray, AngleParmArray const& anglep mask1.AtomInCharMask(atom2) || mask1.AtomInCharMask(atom3)); if (printAngle) { - outfile_->Printf("%*i", nw, na); + if (printIndices_) + outfile_->Printf("%*i", nw, na); + else + outfile_->Printf("%*c", nw, ' '); int aidx = aatom->Idx(); if ( aidx > -1 ) outfile_->Printf(" %6.3f %6.2f", angleparm[aidx].Tk(), @@ -628,7 +637,8 @@ int TopInfo::PrintAngleInfo(std::string const& mask1exp, std::string const& mask // TopInfo::PrintDihedrals() void TopInfo::PrintDihedrals(DihedralArray const& darray, DihedralParmArray const& dihedralparm, CharMask const& mask1, CharMask const& mask2, - CharMask const& mask3, CharMask const& mask4, int nw, int& nd) const + CharMask const& mask3, CharMask const& mask4, int nw, int& nd, + bool printExtraInfo, int tgtidx) const { if (darray.empty()) return; for (DihedralArray::const_iterator dih = darray.begin(); @@ -639,7 +649,9 @@ void TopInfo::PrintDihedrals(DihedralArray const& darray, DihedralParmArray cons int atom3 = dih->A3(); int atom4 = dih->A4(); bool printDihedral = false; - if (mask2.MaskStringSet() && mask3.MaskStringSet() && mask4.MaskStringSet()) + if (tgtidx != -1) + printDihedral = (tgtidx == dih->Idx()); + else if (mask2.MaskStringSet() && mask3.MaskStringSet() && mask4.MaskStringSet()) printDihedral = (mask1.AtomInCharMask(atom1) && mask2.AtomInCharMask(atom2) && mask3.AtomInCharMask(atom3) && @@ -652,14 +664,26 @@ void TopInfo::PrintDihedrals(DihedralArray const& darray, DihedralParmArray cons if (printDihedral) { // Determine dihedral type: 'E'nd, 'I'mproper, or 'B'oth char type = ' '; + if (!printIndices_) type = 'D'; // DEBUG if (dih->Type() == DihedralType::END ) type = 'E'; else if (dih->Type() == DihedralType::IMPROPER) type = 'I'; else if (dih->Type() == DihedralType::BOTH ) type = 'B'; - outfile_->Printf("%c %*i", type, nw, nd); + if (printIndices_) + outfile_->Printf("%c %*i", type, nw, nd); + else + outfile_->Printf("%c %*c", type, nw, ' '); int didx = dih->Idx(); - if ( didx > -1 ) + if ( didx > -1 ) { outfile_->Printf(" %7.3f %5.2f %4.1f",dihedralparm[didx].Pk(),dihedralparm[didx].Phase(), dihedralparm[didx].Pn()); + if (printExtraInfo) + outfile_->Printf(" %4.1f %4.1f", dihedralparm[didx].SCEE(), dihedralparm[didx].SCNB()); + } else { + // DEBUG + outfile_->Printf(" %7s %5s %4s", "NONE", "NONE", "NONE"); + if (printExtraInfo) + outfile_->Printf(" %4s %4s", "NONE", "NONE"); + } if ( !coords_.empty() ) outfile_->Printf(" %7.2f", Torsion( coords_.XYZ(atom1), coords_.XYZ(atom2), @@ -687,35 +711,37 @@ void TopInfo::PrintDihedrals(DihedralArray const& darray, DihedralParmArray cons // TopInfo::PrintDihedralInfo() int TopInfo::PrintDihedralInfo(std::string const& mask1exp, std::string const& mask2exp, std::string const& mask3exp, std::string const& mask4exp, - bool printImpropers) const + bool printImpropers, bool printExtraInfo, int tgtidx) const { - CharMask mask1( mask1exp ); - if (SetupMask( mask1 )) return 1; - CharMask mask2; - CharMask mask3; - CharMask mask4; - if (!mask2exp.empty() && SetupMask( mask2exp, mask2 )) return 1; - if (!mask3exp.empty() && SetupMask( mask3exp, mask3 )) return 1; - if (!mask4exp.empty() && SetupMask( mask4exp, mask4 )) return 1; - if (mask2exp.empty() != mask3exp.empty() || mask2exp.empty() != mask4exp.empty()) { - mprinterr("Error: Require either 1 mask or 4 masks.\n"); - return 1; + CharMask mask1, mask2, mask3, mask4; + if (tgtidx == -1) { + if (!mask1exp.empty() && SetupMask( mask1exp, mask1 )) return 1; + if (!mask2exp.empty() && SetupMask( mask2exp, mask2 )) return 1; + if (!mask3exp.empty() && SetupMask( mask3exp, mask3 )) return 1; + if (!mask4exp.empty() && SetupMask( mask4exp, mask4 )) return 1; + if (mask2exp.empty() != mask3exp.empty() || mask2exp.empty() != mask4exp.empty()) { + mprinterr("Error: Require either 1 mask or 4 masks.\n"); + return 1; + } } size_t n_torsions; const char* label = "Dih"; bool hasParams; if (printImpropers) { label = "Imp"; - n_torsions = parm_->Chamber().Impropers().size(); - hasParams = !parm_->Chamber().ImproperParm().empty(); + n_torsions = parm_->Impropers().size(); + hasParams = !parm_->ImproperParm().empty(); } else { n_torsions = parm_->DihedralsH().size() + parm_->Dihedrals().size(); hasParams = !parm_->DihedralParm().empty(); } int nw = std::max(3, DigitWidth(n_torsions)); outfile_->Printf("# %*s", nw, label); - if (hasParams) + if (hasParams) { outfile_->Printf(" %7s %5s %4s", "PK", "Phase", "PN"); + if (printExtraInfo) + outfile_->Printf(" %4s %4s", "SCEE", "SCNB"); + } if (!coords_.empty()) outfile_->Printf(" %7s", "Value"); outfile_->Printf(" %-*s %-*s %-*s %-*s %*s %*s %*s %*s %*s %*s %*s %*s\n", @@ -727,10 +753,10 @@ int TopInfo::PrintDihedralInfo(std::string const& mask1exp, std::string const& m max_type_len_, "T3", max_type_len_, "T4"); int nd = 1; if (printImpropers) { - PrintDihedrals( parm_->Chamber().Impropers(), parm_->Chamber().ImproperParm(), mask1, mask2, mask3, mask4, nw, nd ); + PrintDihedrals( parm_->Impropers(), parm_->ImproperParm(), mask1, mask2, mask3, mask4, nw, nd, printExtraInfo, tgtidx ); } else { - PrintDihedrals( parm_->DihedralsH(), parm_->DihedralParm(), mask1, mask2, mask3, mask4, nw, nd ); - PrintDihedrals( parm_->Dihedrals(), parm_->DihedralParm(), mask1, mask2, mask3, mask4, nw, nd ); + PrintDihedrals( parm_->DihedralsH(), parm_->DihedralParm(), mask1, mask2, mask3, mask4, nw, nd, printExtraInfo, tgtidx ); + PrintDihedrals( parm_->Dihedrals(), parm_->DihedralParm(), mask1, mask2, mask3, mask4, nw, nd, printExtraInfo, tgtidx ); } return 0; } diff --git a/src/TopInfo.h b/src/TopInfo.h index 9bdba56a46..a52018395f 100644 --- a/src/TopInfo.h +++ b/src/TopInfo.h @@ -17,6 +17,8 @@ class TopInfo { void SetNoIntraRes(bool b) { noIntraRes_ = b; } int SetupTopInfo(CpptrajFile*, Topology const*, DataSet_Coords*); int SetupTopInfo(Topology const* p, DataSet_Coords* c) { return SetupTopInfo(0, p, c); } + /// Toggle printing of parameter indices + void SetPrintParameterIndices(bool b) { printIndices_ = b; } int PrintAtomInfo(std::string const&) const; int PrintShortResInfo(std::string const&, int, int) const; @@ -27,7 +29,7 @@ class TopInfo { int PrintBondParm() const; int PrintAngleInfo(std::string const&, std::string const&, std::string const&) const; int PrintDihedralInfo(std::string const&, std::string const&, - std::string const&, std::string const&,bool) const; + std::string const&, std::string const&,bool,bool,int) const; int PrintChargeInfo(std::string const&, double&) const; int PrintMassInfo(std::string const&, double&) const; private: @@ -48,7 +50,7 @@ class TopInfo { int, int&) const; void PrintDihedrals(DihedralArray const&, DihedralParmArray const&, CharMask const&, CharMask const&, - CharMask const&, CharMask const&, int, int&) const; + CharMask const&, CharMask const&, int, int&,bool,int) const; CpptrajFile* outfile_; Topology const* parm_; @@ -59,5 +61,6 @@ class TopInfo { int max_aname_len_; ///< Max width of atom name in topology bool toStdout_; bool noIntraRes_; ///< If true, ignore intra-residue bonds/angles/dihedrals etc + bool printIndices_; ///< If true, print leading indices }; #endif diff --git a/src/Topology.cpp b/src/Topology.cpp index a7061e3282..e3142ef857 100644 --- a/src/Topology.cpp +++ b/src/Topology.cpp @@ -1,14 +1,17 @@ -#include <algorithm> // find -#include <map> // For atom types in append +#include <algorithm> // copy, fill #include <stack> // For large system molecule search #include "Topology.h" -#include "CpptrajStdio.h" -#include "StringRoutines.h" // integerToString -#include "Constants.h" // RADDEG, SMALL -#include "AtomType.h" #include "AtomMask.h" +#include "AtomType.h" // AppendTop() #include "CharMask.h" -#include "UpdateParameters.h" +#include "Constants.h" // SMALL +#include "CpptrajStdio.h" +#include "StringRoutines.h" // integerToString +#include "Parm/AssignParams.h" // AppendTop() +#include "Parm/GetParams.h" // AppendTop() +#include "Parm/Merge.h" // AppendTop() +#include "Parm/ParmHolder.h" // AppendTop() +#include "UpdateParameters.h" // AppendTop(). This include must be last const NonbondType Topology::LJ_EMPTY = NonbondType(); @@ -19,9 +22,22 @@ Topology::Topology() : NsolventMolecules_(0), pindex_(0), n_extra_pts_(0), - n_atom_types_(0) + hasNonContiguousMols_(false) { } +/** Copy the metadata from another Topology. */ +void Topology::CopyTopMetadata(Topology const& rhs) { + parmName_ = rhs.parmName_; + fileName_ = rhs.fileName_; + ff_desc_ = rhs.ff_desc_; + parmBox_ = rhs.parmBox_; +} + +/** Set the parm name only. */ +void Topology::SetParmTitle(std::string const& title) { + parmName_ = title; +} + // Topology::SetParmName() void Topology::SetParmName(std::string const& title, FileName const& filename) { parmName_ = title; @@ -49,6 +65,7 @@ unsigned int Topology::HeavyAtomCount() const { return hac; } + /** Reset all PDB-related info. * NOTE: This routine is used by AmbPDB. */ @@ -175,6 +192,15 @@ Range Topology::SoluteResidues() const { return solute_res; } +/** \return an array containing solvent molecule numbers. */ +std::vector<int> Topology::SolventMolNums() const { + std::vector<int> solventMolNums; + for (std::vector<Molecule>::const_iterator mol = molecules_.begin(); mol != molecules_.end(); ++mol) + if (mol->IsSolvent()) + solventMolNums.push_back( mol - molecules_.begin() ); + return solventMolNums; +} + /** Merge consecutive residues into a single residue. */ int Topology::MergeResidues(int startRes, int stopRes) { // Check that start and stop make sense @@ -313,6 +339,15 @@ std::string Topology::TruncAtomNameNum(int atom) const { return atom_name; } +/** Given an atom number, return a string in LEaP-style format. */ +std::string Topology::LeapName(int at) const { + int rnum = atoms_[at].ResNum(); + int idx = at - residues_[rnum].FirstAtom() + 1; + std::string out( ".R<" + residues_[rnum].Name().Truncated() + " " + integerToString(rnum+1) + + ">.A<" + atoms_[at].Name().Truncated() + " " + integerToString(idx) + ">"); + return out; +} + // Topology::TruncResNameNum() /** Given a residue index (starting from 0), return a string containing * residue name and number (starting from 1) with format: @@ -339,6 +374,20 @@ std::string Topology::TruncResNameOnumId(int res) const { return name; } +/** Given an atom index, return a string containing the residue name, + * original residue number, an optional chain ID, and the atom + * name with format: + * "<resname>_<onum>[_<id>]@<atom name>". + * Truncate residue and atom names so there are no blanks. + */ +std::string Topology::TruncAtomResNameOnumId(int at) const { + if (at < 0 || at >= (int)atoms_.size()) return std::string(""); + Atom const& thisAtom = atoms_[at]; + std::string name = TruncResNameOnumId( thisAtom.ResNum() ); + name.append( "@" + thisAtom.Name().Truncated() ); + return name; +} + // Topology::FindAtomInResidue() /** Find the atom # of the specified atom name in the given residue. * \param res Residue number to search. @@ -387,13 +436,13 @@ void Topology::Summary() const { if (nonbond_.Has_C_Coeff()) mprintf("\t\t\tLJ 12-6-4 C coefficients are present.\n"); } - if (chamber_.HasChamber()) { - mprintf("\t\tCHAMBER: %zu Urey-Bradley terms, %zu Impropers\n", - chamber_.UB().size(), chamber_.Impropers().size()); - if (HasCmap()) - mprintf("\t\t %zu CMAP grids, %zu CMAP terms.\n", - CmapGrid().size(), Cmap().size()); + if (HasChamber()) { + mprintf("\t\tCHAMBER: %zu Urey-Bradley terms, %zu Impropers, %zu LJ 1-4 terms.\n", + ub_.size(), impropers_.size(), nonbond_.LJ14().size()); } + if (HasCmap()) + mprintf("\t\t%zu CMAP grids, %zu CMAP terms.\n", + CmapGrid().size(), Cmap().size()); if (lesparm_.HasLES()) mprintf("\t\tLES info: %i types, %i copies\n", lesparm_.Ntypes(), lesparm_.Ncopies()); if (cap_.HasWaterCap()) @@ -435,6 +484,82 @@ int Topology::AddTopAtom(Atom const& atomIn, Residue const& resIn) residues_.back().SetLastAtom( atoms_.size() ); return 0; } + +/** This version takes a molecule number as well. */ +int Topology::addTopAtom(Atom const& atomIn, Residue const& resIn, + unsigned int molnum, bool isSolvent) +{ + unsigned int atnum = atoms_.size(); + AddTopAtom(atomIn, resIn); + atoms_.back().SetMol( molnum ); + if (molnum > molecules_.size()) + mprintf("Warning: AddTopAtom(): Molecule number %i is not consecutive.\n", molnum+1); + if (molnum >= molecules_.size()) { + molecules_.resize( molnum+1 ); + if (isSolvent) + NsolventMolecules_++; + } + molecules_[molnum].AddAtnum( atnum ); + return 0; +} + +/** Add specified residues from given topology to this topology. Mark solvent if needed. */ +int Topology::AddResidues(Topology const& solventTop, std::vector<int> const& solventResNums, + Frame& frameOut, Frame const& solventFrame, bool is_solvent) +{ + std::vector<int> bondedAtoms; + for (std::vector<int>::const_iterator ires = solventResNums.begin(); + ires != solventResNums.end(); ++ires) + { + int atomOffset = Natom(); + int resnum = Nres(); + int molnum = Nmol(); + Residue solventRes = solventTop.Res(*ires); + solventRes.SetOriginalNum( resnum + 1 ); + bondedAtoms.clear(); + for (int iat = solventRes.FirstAtom(); iat != solventRes.LastAtom(); iat++) + { + Atom solventAtom = solventTop[iat]; + // Save solvent bonds + for (Atom::bond_iterator bat = solventAtom.bondbegin(); bat != solventAtom.bondend(); ++bat) { + if (*bat > iat) { + bondedAtoms.push_back( iat + atomOffset - solventRes.FirstAtom() ); + bondedAtoms.push_back( *bat + atomOffset - solventRes.FirstAtom() ); + } + } + solventAtom.ClearBonds(); // FIXME AddTopAtom should clear + AddTopAtom( solventAtom, solventRes ); + atoms_.back().SetMol( molnum ); + atoms_.back().SetResNum( resnum ); + if (solventAtom.Element() == Atom::EXTRAPT) + n_extra_pts_++; + // Add PDB info if the topology already has it. FIXME read from incoming top + if (!bfactor_.empty()) bfactor_.push_back( 0 ); + if (!occupancy_.empty()) occupancy_.push_back( 1 ); + if (!pdbSerialNum_.empty()) pdbSerialNum_.push_back( Natom() ); + if (!atom_altloc_.empty()) atom_altloc_.push_back( ' ' ); + // Add extra arrays + if (!tree_.empty()) tree_.push_back("BLA"); + if (!ijoin_.empty()) ijoin_.push_back(0); + if (!irotat_.empty()) irotat_.push_back(0); + const double* VXYZ = solventFrame.XYZ(iat); + frameOut.AddXYZ( VXYZ ); + } // END loop over solvent atoms + // Add bonds + for (std::vector<int>::const_iterator it = bondedAtoms.begin(); it != bondedAtoms.end(); ++it) { + int at0 = *it; + ++it; + AddBond( at0, *it ); + } + // Add molecule + molecules_.push_back( Molecule(atomOffset, Natom()) ); + if (is_solvent) + molecules_.back().SetSolvent(); + NsolventMolecules_++; + } // END loop over solvent unit residues + return 0; +} + /* // Topology::StartNewMol() void Topology::StartNewMol() { @@ -475,7 +600,6 @@ const return false; } -// Topology::CommonSetup() /** Set up common to all topologies. * \param molsearch If true, determine molecules based on bond info. * \param renumberResidues If true, renumber residues if any residue is part of more than 1 molecule @@ -491,10 +615,7 @@ int Topology::CommonSetup(bool molsearch, bool renumberResidues) if (CheckExtraSize(occupancy_.size(), "PDB occupancy")) return 1; if (CheckExtraSize(bfactor_.size(), "PDB Bfactor")) return 1; if (CheckExtraSize(pdbSerialNum_.size(), "PDB serial #")) return 1; - // TODO: Make bond parm assignment / molecule search optional? - // Assign default lengths if necessary (for e.g. CheckStructure) - if (bondparm_.empty()) - AssignBondParameters(); + // Molecule search if (molsearch) { // Determine molecule info from bonds if (DetermineMolecules()) @@ -561,13 +682,10 @@ int Topology::CommonSetup(bool molsearch, bool renumberResidues) } } // END renumber residues based on molecules - // Set up solvent information. Only do this if there are molecules. - if (molsearch || !molecules_.empty()) { - if (SetSolventInfo()) { - mprinterr("Error: Could not determine solvent information for %s.\n", c_str()); - return 1; - } - } + // Set up solvent information + if (SetSolventInfo()) + mprinterr("Error: Could not determine solvent information for %s.\n", c_str()); + // Determine # of extra points. DetermineNumExtraPoints(); @@ -650,7 +768,11 @@ void Topology::Resize(Pointers const& pIn) { nonbond_.Clear(); cap_.Clear(); lesparm_.Clear(); - chamber_.Clear(); + ff_desc_.clear(); + ub_.clear(); + ubparm_.clear(); + impropers_.clear(); + improperparm_.clear(); tree_.clear(); ijoin_.clear(); irotat_.clear(); @@ -663,7 +785,6 @@ void Topology::Resize(Pointers const& pIn) { ipol_ = 0; NsolventMolecules_ = 0; n_extra_pts_ = 0; - n_atom_types_ = 0; atoms_.resize( pIn.natom_ ); residues_.resize( pIn.nres_ ); @@ -699,67 +820,41 @@ double Topology::GetVDWdepth(int a1) const { // Topology::SetAtomBondInfo() /** Set up bond information in the atoms array based on given BondArray. */ -void Topology::SetAtomBondInfo(BondArray const& bonds) { +/*void Topology::SetAtomBondInfo(BondArray const& bonds) { // Add bonds based on array for (BondArray::const_iterator bnd = bonds.begin(); bnd != bonds.end(); ++bnd) { atoms_[ bnd->A1() ].AddBondToIdx( bnd->A2() ); atoms_[ bnd->A2() ].AddBondToIdx( bnd->A1() ); } -} +}*/ // ----------------------------------------------------------------------------- -// Topology::AddBondParam() -/** Create parameters for given bond based on element types. */ -void Topology::AddBondParam(BondType& bnd, BP_mapType& bpMap) +/** Check if given bond parm exists in given bond parm array. Add if not. + * \return Index in bond parm array. + */ +int Topology::addBondParm(BondParmArray& bparray, BondParmType const& BPin) { - unsigned int bp_idx; - Atom::AtomicElementType a1Elt = atoms_[bnd.A1()].Element(); - Atom::AtomicElementType a2Elt = atoms_[bnd.A2()].Element(); - std::set<Atom::AtomicElementType> Eset; - Eset.insert( a1Elt ); - Eset.insert( a2Elt ); - // Has this bond parameter been defined? - BP_mapType::iterator bp = std::find(bpMap.begin(), bpMap.end(), Eset); - if (bp == bpMap.end()) { // Bond parameter Not defined - bp_idx = bondparm_.size(); - bpMap.push_back( Eset ); - bondparm_.push_back( BondParmType(0.0, Atom::GetBondLength(a1Elt, a2Elt)) ); - } else - bp_idx = bp - bpMap.begin(); - //mprintf("DEBUG:\t\t%i:[%s] -- %i:[%s] Cut=%f BPidx=%u\n", - // bnd.A1()+1, atoms_[bnd.A1()].c_str(), bnd.A2()+1, atoms_[bnd.A2()].c_str(), - // bondparm_[bp_idx].Req(), bp_idx); - bnd.SetIdx( bp_idx ); -} - -// Topology::AssignBondParameters() -void Topology::AssignBondParameters() { - mprintf("Warning: Determining bond length parameters from element types for '%s'.\n", c_str()); - bondparm_.clear(); - // Hold indices into bondparm for unique element pairs - BP_mapType bpMap; - for (BondArray::iterator bnd = bondsh_.begin(); bnd != bondsh_.end(); ++bnd) - AddBondParam( *bnd, bpMap ); - for (BondArray::iterator bnd = bonds_.begin(); bnd != bonds_.end(); ++bnd) - AddBondParam( *bnd, bpMap ); -} - -// Topology::AddBond() -void Topology::AddBond(int atom1, int atom2, BondParmType const& BPin) { // See if the BondParm exists. int pidx = -1; - for (BondParmArray::const_iterator bp = bondparm_.begin(); bp != bondparm_.end(); ++bp) - if ( fabs(BPin.Rk() - bp->Rk() ) < Constants::SMALL && - fabs(BPin.Req() - bp->Req()) < Constants::SMALL ) - { - pidx = (int)(bp - bondparm_.begin()); + for (BondParmArray::const_iterator bp = bparray.begin(); + bp != bparray.end(); ++bp) + { + if (BPin == *bp) { + pidx = (int)(bp - bparray.begin()); break; } + } if (pidx == -1) { - pidx = (int)bondparm_.size(); - bondparm_.push_back( BPin ); + pidx = (int)bparray.size(); + bparray.push_back( BPin ); } - //mprintf("DEBUG: Add bond %i - %i Rk=%f Req=%f (%i)\n", atom1+1, atom2+1, BPin.Rk(), BPin.Req(), pidx); + return pidx; +} + +// Topology::AddBond() +void Topology::AddBond(int atom1, int atom2, BondParmType const& BPin) { + // See if the BondParm exists. + int pidx = addBondParm( bondparm_, BPin );; AddBond( atom1, atom2, pidx ); } @@ -903,21 +998,40 @@ void Topology::AddBond(BondType const& bndIn, bool isH) { atoms_[bndIn.A2()].AddBondToIdx( bndIn.A1() ); } -// Topology::AddAngle() -void Topology::AddAngle(int atom1, int atom2, int atom3, AngleParmType const& APin) { +/** Clear bond arrays, but do not clear atom connectivity. Used + * when regenerating bond information from atom connectivity. + */ +void Topology::ClearBondArrays() { + bonds_.clear(); + bondsh_.clear(); +} + +/** Check if given angle parm exists in given angle parm array. Add if not. + * \return Index in angle parm array. + */ +int Topology::addAngleParm(AngleParmArray& aparray, AngleParmType const& APin) +{ // See if the AngleParm exists. int pidx = -1; - for (AngleParmArray::const_iterator ap = angleparm_.begin(); ap != angleparm_.end(); ++ap) - if ( fabs(APin.Tk() - ap->Tk() ) < Constants::SMALL && - fabs(APin.Teq() - ap->Teq()) < Constants::SMALL ) - { - pidx = (int)(ap - angleparm_.begin()); + for (AngleParmArray::const_iterator ap = aparray.begin(); + ap != aparray.end(); ++ap) + { + if (APin == *ap) { + pidx = (int)(ap - aparray.begin()); break; } + } if (pidx == -1) { - pidx = (int)angleparm_.size(); - angleparm_.push_back( APin ); + pidx = (int)aparray.size(); + aparray.push_back( APin ); } + return pidx; +} + +// Topology::AddAngle() +void Topology::AddAngle(int atom1, int atom2, int atom3, AngleParmType const& APin) { + // See if the AngleParm exists. + int pidx = addAngleParm( angleparm_, APin ); AddAngle( atom1, atom2, atom3, pidx ); } @@ -954,25 +1068,21 @@ void Topology::AddAngle(AngleType const& angIn, bool isH) { } // ----------------------------------------------- -// Topology::AddTorsionParm() /** Check if given dihedral parm exists in given dihedral parm array. Add if not. * \return Index in dihedral parm array. */ -int Topology::AddTorsionParm(DihedralParmArray& dparray, DihedralParmType const& DPin) +int Topology::addTorsionParm(DihedralParmArray& dparray, DihedralParmType const& DPin) { // See if the DihedralParm exists. int pidx = -1; for (DihedralParmArray::const_iterator dp = dparray.begin(); dp != dparray.end(); ++dp) - if ( fabs(DPin.Pk() - dp->Pk() ) < Constants::SMALL && - fabs(DPin.Pn() - dp->Pn() ) < Constants::SMALL && - fabs(DPin.Phase() - dp->Phase()) < Constants::SMALL && - fabs(DPin.SCEE() - dp->SCEE() ) < Constants::SMALL && - fabs(DPin.SCNB() - dp->SCNB() ) < Constants::SMALL ) - { + { + if (DPin == *dp) { pidx = (int)(dp - dparray.begin()); break; } + } if (pidx == -1) { pidx = (int)dparray.size(); dparray.push_back( DPin ); @@ -1012,7 +1122,7 @@ DihedralType Topology::SetTorsionParmIndex(DihedralType const& dihIn, /** Add given dihedral with given dihedral parm to dihedral array. */ void Topology::AddDihedral(DihedralType const& dih, DihedralParmType const& DPin) { - int pidx = AddTorsionParm(dihedralparm_, DPin); + int pidx = addTorsionParm(dihedralparm_, DPin); if (CheckTorsionRange(dih, "dihedral")) return; AddDihedral(dih, pidx); } @@ -1040,10 +1150,18 @@ void Topology::AddDihedral(DihedralType const& dihIn, bool isH) { dihedrals_.push_back( dihIn ); } +/** \return true if any CHARMM parameters are set (based on indices). */ +bool Topology::HasChamber() const { + if (!ub_.empty()) return true; + if (!impropers_.empty()) return true; + if (!nonbond_.LJ14().empty()) return true; + return false; +} + /** Add given Charmm improper with given improper parm to Charmm improper array. */ void Topology::AddCharmmImproper(DihedralType const& imp, DihedralParmType const& IPin) { - int pidx = AddTorsionParm(chamber_.SetImproperParm(), IPin); + int pidx = addTorsionParm(improperparm_, IPin); if (CheckTorsionRange(imp, "CHARMM improper")) return; AddCharmmImproper(imp, pidx); } @@ -1052,9 +1170,9 @@ void Topology::AddCharmmImproper(DihedralType const& imp, DihedralParmType const void Topology::AddCharmmImproper(DihedralType const& impIn, int pidxIn) { if (CheckTorsionRange(impIn, "CHARMM improper")) return; - DihedralType imp = SetTorsionParmIndex(impIn, chamber_.ImproperParm(), pidxIn, "CHARMM improper"); + DihedralType imp = SetTorsionParmIndex(impIn, improperparm_, pidxIn, "CHARMM improper"); // Update Charmm improper array. - chamber_.AddImproperTerm( imp ); + impropers_.push_back( imp ); } // ----------------------------------------------------------------------------- @@ -1165,6 +1283,7 @@ int Topology::NresInMol(int idx) const { * recursive search over the bonds of each atom. */ int Topology::DetermineMolecules() { + hasNonContiguousMols_ = false; // Since this is always done only print when debugging if (debug_>0) mprintf("\t%s: determining molecule info from bonds.\n",c_str()); // Reset molecule info for each atom @@ -1222,6 +1341,7 @@ int Topology::DetermineMolecules() { } } if (!nonContiguousMols.empty()) { + hasNonContiguousMols_ = true; mprintf("Warning: %zu molecules have non-contiguous segments of atoms.\n", nonContiguousMols.size()); for (std::vector< std::vector<Molecule>::const_iterator >::const_iterator it = nonContiguousMols.begin(); it != nonContiguousMols.end(); ++it) @@ -1232,8 +1352,8 @@ int Topology::DetermineMolecules() { mprintf(" %i-%i (%i) ", seg->Begin()+1, seg->End(), seg->Size()); mprintf("\n"); } - mprintf("Warning: The 'fixatomorder' command can be used to reorder the topology and any\n" - "Warning: associated coordinates.\n"); + //mprintf("Warning: The 'fixatomorder' command can be used to reorder the topology and any\n" + // "Warning: associated coordinates.\n"); } /* std::vector<Molecule>::iterator molecule = molecules_.begin(); @@ -1465,7 +1585,7 @@ int Topology::scale_dihedral_K(DihedralArray& dihedrals, CharMask const& Mask, if (newidx == -1) { // Scale and add new dihedral parameter type. DihedralParmType newparm = dihedralparm_[oldidx]; - newparm.Pk() *= scale_factor; + newparm.SetPk( newparm.Pk() * scale_factor ); //newparm.Pk() *= scale_factor; newidx = (int)dihedralparm_.size(); dihedralparm_.push_back( newparm ); newDihedralParms[oldidx] = newidx; @@ -1489,7 +1609,7 @@ int Topology::ScaleDihedralK(double scale_factor, std::string const& maskExpr, b // Scale all for (DihedralParmArray::iterator dk = dihedralparm_.begin(); dk != dihedralparm_.end(); ++dk) - dk->Pk() *= scale_factor; + dk->SetPk( dk->Pk() * scale_factor ); //dk->Pk() *= scale_factor; } else { // Scale only dihedrals with atoms in mask. Requires adding new types. CharMask Mask( maskExpr ); @@ -1529,10 +1649,16 @@ Topology* Topology::ModifyByMap(std::vector<int> const& MapIn, bool setupFullPar newParm->fileName_ = fileName_; newParm->radius_set_ = radius_set_; newParm->debug_ = debug_; - newParm->n_atom_types_ = n_atom_types_; - // Reverse Atom map + // Reverse Atom map. Generate here so it can be used to regenerate + // bonded atom info below. std::vector<int> atomMap( atoms_.size(),-1 ); + for (int newatom = 0; newatom < (int)MapIn.size(); newatom++) { + int oldatom = MapIn[ newatom ]; + // Store map of oldatom to newatom + atomMap[oldatom] = newatom; + } + // Save solvent status of atoms std::vector<bool> isSolvent; isSolvent.reserve( MapIn.size() ); @@ -1543,8 +1669,6 @@ Topology* Topology::ModifyByMap(std::vector<int> const& MapIn, bool setupFullPar for (int newatom = 0; newatom < (int)MapIn.size(); newatom++) { int oldatom = MapIn[ newatom ]; if (oldatom < 0) continue; - // Store map of oldatom to newatom - atomMap[oldatom] = newatom; // Copy oldatom Atom newparmAtom = atoms_[oldatom]; // Save oldatom residue number @@ -1560,8 +1684,15 @@ Topology* Topology::ModifyByMap(std::vector<int> const& MapIn, bool setupFullPar newParm->residues_.back().SetTerminal( cr.IsTerminal() ); oldres = curres; } - // Clear bond information from new atom + // Regenerate bond information for new atom, excluding any removed atoms. + std::vector<int> oldBondedAtoms = newparmAtom.BondIdxArray(); newparmAtom.ClearBonds(); + for (std::vector<int>::const_iterator it = oldBondedAtoms.begin(); it != oldBondedAtoms.end(); ++it) + { + int newBondedAtom = atomMap[*it]; + if (newBondedAtom > -1) + newparmAtom.AddBondToIdx( newBondedAtom ); + } // Set new atom num and residue num newparmAtom.SetResNum( newParm->residues_.size() - 1 ); // Check if this atom belongs to a solvent molecule. @@ -1591,8 +1722,8 @@ Topology* Topology::ModifyByMap(std::vector<int> const& MapIn, bool setupFullPar // Set up new bond information newParm->bonds_ = StripBondArray( bonds_, atomMap ); newParm->bondsh_ = StripBondArray( bondsh_, atomMap ); - newParm->SetAtomBondInfo( newParm->bonds_ ); - newParm->SetAtomBondInfo( newParm->bondsh_ ); +// newParm->SetAtomBondInfo( newParm->bonds_ ); +// newParm->SetAtomBondInfo( newParm->bondsh_ ); std::vector<int> parmMap( bondparm_.size(), -1 ); // Map[oldidx] = newidx StripBondParmArray( newParm->bonds_, parmMap, newParm->bondparm_ ); StripBondParmArray( newParm->bondsh_, parmMap, newParm->bondparm_ ); @@ -1681,8 +1812,11 @@ Topology* Topology::ModifyByMap(std::vector<int> const& MapIn, bool setupFullPar //mprintf("DEBUG: # new types %zu\n", oldTypeArray.size()); // Set up new nonbond and nonbond index arrays. newParm->nonbond_.SetNtypes( oldTypeArray.size() ); - if (chamber_.HasChamber()) - newParm->chamber_.SetNLJ14terms( (oldTypeArray.size()*(oldTypeArray.size()+1))/2 ); + if (!nonbond_.LJ14().empty()) + //newParm->nonbond_.SetNLJ14terms( (oldTypeArray.size()*(oldTypeArray.size()+1))/2 ); + newParm->nonbond_.SetNLJ14terms( newParm->nonbond_.NBarray().size() ); + if (!nonbond_.LJC_Array().empty()) + newParm->nonbond_.SetNLJCterms( newParm->nonbond_.NBarray().size() ); for (int a1idx = 0; a1idx != (int)oldTypeArray.size(); a1idx++) { int atm1 = oldTypeArray[a1idx]; @@ -1690,30 +1824,35 @@ Topology* Topology::ModifyByMap(std::vector<int> const& MapIn, bool setupFullPar { int atm2 = oldTypeArray[a2idx]; int oldnbidx = nonbond_.GetLJindex( atm1, atm2 ); + int newnbidx; if (oldnbidx > -1) { // This is a traditional LJ 6-12 term. Because of the way the LJ 1-4 // code is laid out in sander/pmemd the LJ matrix has to be laid out // indepdendent of the nonbond index array. - newParm->nonbond_.AddLJterm( a1idx, a2idx, nonbond_.NBarray(oldnbidx) ); + newnbidx = newParm->nonbond_.AddLJterm( a1idx, a2idx, nonbond_.NBarray(oldnbidx) ); } else { // This is an old LJ 10-12 hbond term. Add one to the LJ 6-12 matrix // and one to the hbond since that seems to be the convention. - newParm->nonbond_.AddLJterm( a1idx, a2idx, NonbondType() ); + newnbidx = newParm->nonbond_.AddLJterm( a1idx, a2idx, NonbondType() ); newParm->nonbond_.AddHBterm( a1idx, a2idx, nonbond_.HBarray((-oldnbidx)-1) ); } //int newnbidx = newParm->nonbond_.GetLJindex( a1idx, a2idx ); //mprintf("DEBUG: oldtypei=%i oldtypej=%i Old NB index=%i, newtypi=%i newtypej=%i new NB idx=%i testidx=%i\n", // atm1, atm2, oldnbidx, a1idx, a2idx, newnbidx, testidx); - if (chamber_.HasChamber()) { + if (!nonbond_.LJ14().empty()) { // Update LJ 1-4 as well. No need to worry about hbond terms here, // just recalculate the old index and determine new one. - int ibig = std::max(atm1, atm2) + 1; - int isml = std::min(atm1, atm2) + 1; - oldnbidx = (ibig*(ibig-1)/2+isml)-1; - ibig = a2idx + 1; - isml = a1idx + 1; - int newnbidx = (ibig*(ibig-1)/2+isml)-1; - newParm->chamber_.SetLJ14( newnbidx ) = chamber_.LJ14()[oldnbidx]; + //int ibig = std::max(atm1, atm2) + 1; + //int isml = std::min(atm1, atm2) + 1; + // oldnbidx = (ibig*(ibig-1)/2+isml)-1; + // ibig = a2idx + 1; + // isml = a1idx + 1; + //int newnbidx = (ibig*(ibig-1)/2+isml)-1; + newParm->nonbond_.SetLJ14( newnbidx ) = nonbond_.LJ14()[oldnbidx]; + } + if (!nonbond_.LJC_Array().empty()) { + // Update LJC + newParm->nonbond_.SetLJC( newnbidx, nonbond_.LJC_Array( oldnbidx ) ); } } } @@ -1736,49 +1875,52 @@ Topology* Topology::ModifyByMap(std::vector<int> const& MapIn, bool setupFullPar if (cap_.HasWaterCap()) mprintf("Warning: Stripping of CAP info not supported. Removing CAP info.\n"); // CHAMBER info - if (chamber_.HasChamber()) { - newParm->chamber_.SetDescription( chamber_.Description() ); + if (!ff_desc_.empty()) + newParm->ff_desc_ = ff_desc_; + if (!ub_.empty()) { // Urey-Bradley - newParm->chamber_.SetUB() = StripBondArray(chamber_.UB(),atomMap); - parmMap.assign( chamber_.UBparm().size(), -1 ); // Map[oldidx] = newidx - StripBondParmArray( newParm->chamber_.SetUB(), parmMap, - newParm->chamber_.SetUBparm(), chamber_.UBparm() ); + newParm->ub_ = StripBondArray( ub_, atomMap ); + parmMap.assign( ubparm_.size(), -1 ); // Map[oldidx] = newidx + StripBondParmArray( newParm->ub_, parmMap, + newParm->ubparm_, ubparm_ ); + } + if (!impropers_.empty()) { // Impropers - newParm->chamber_.SetImpropers() = StripDihedralArray(chamber_.Impropers(), atomMap); - parmMap.assign( chamber_.ImproperParm().size(), -1 ); - StripDihedralParmArray( newParm->chamber_.SetImpropers(), parmMap, - newParm->chamber_.SetImproperParm(), chamber_.ImproperParm() ); + newParm->impropers_ = StripDihedralArray(impropers_, atomMap); + parmMap.assign( improperparm_.size(), -1 ); + StripDihedralParmArray( newParm->impropers_, parmMap, + newParm->improperparm_, improperparm_ ); // NOTE 1-4 LJ parameters handled above - // CMAP terms - if (HasCmap()) { - // NOTE that atom indexing is updated but cmap indexing is not. So if - // any CMAP terms remain all CMAP entries remain. - for (CmapArray::const_iterator cmap = Cmap().begin(); - cmap != Cmap().end(); ++cmap) - { - int newA1 = atomMap[ cmap->A1() ]; - if (newA1 != -1) { - int newA2 = atomMap[ cmap->A2() ]; - if (newA2 != -1) { - int newA3 = atomMap[ cmap->A3() ]; - if (newA3 != -1) { - int newA4 = atomMap[ cmap->A4() ]; - if (newA4 != -1) { - int newA5 = atomMap[ cmap->A5() ]; - if (newA5 != -1) - newParm->AddCmapTerm( CmapType(newA1,newA2,newA3, - newA4,newA5,cmap->Idx()) ); - } + } + // CMAP terms + if (HasCmap()) { + // NOTE that atom indexing is updated but cmap indexing is not. So if + // any CMAP terms remain all CMAP entries remain. + for (CmapArray::const_iterator cmap = Cmap().begin(); + cmap != Cmap().end(); ++cmap) + { + int newA1 = atomMap[ cmap->A1() ]; + if (newA1 != -1) { + int newA2 = atomMap[ cmap->A2() ]; + if (newA2 != -1) { + int newA3 = atomMap[ cmap->A3() ]; + if (newA3 != -1) { + int newA4 = atomMap[ cmap->A4() ]; + if (newA4 != -1) { + int newA5 = atomMap[ cmap->A5() ]; + if (newA5 != -1) + newParm->AddCmapTerm( CmapType(newA1,newA2,newA3, + newA4,newA5,cmap->Idx()) ); } } } } - // Only add CMAP grids if there are CMAP terms left. - if (!newParm->Cmap().empty()) { - for (CmapGridArray::const_iterator g = CmapGrid().begin(); - g != CmapGrid().end(); ++g) - newParm->AddCmapGrid( *g ); - } + } + // Only add CMAP grids if there are CMAP terms left. + if (!newParm->Cmap().empty()) { + for (CmapGridArray::const_iterator g = CmapGrid().begin(); + g != CmapGrid().end(); ++g) + newParm->AddCmapGrid( *g ); } } // Amber extra info. @@ -1939,6 +2081,7 @@ int Topology::SplitResidue(AtomMask const& maskIn, NameType const& newName) return SplitResidue(maskIn, newName, atomMap); } +// ----------------------------------------------------------------------------- /** \return BondArray with bonds for which both atoms are still present. * \param atomMap format Map[oldAtom]=newAtom */ @@ -1991,10 +2134,10 @@ DihedralArray Topology::StripDihedralArray(DihedralArray const& dihIn, std::vect if (newA4 != -1) { // Since in Amber improper/end dihedrals are stored as negative #s, // atom index 0 cannot be in 3rd or 4th position. Reverse. - if (olddih->Type() != DihedralType::NORMAL && (newA3 == 0 || newA4 == 0)) - dihOut.push_back( DihedralType( newA4, newA3, newA2, newA1, - olddih->Type(), olddih->Idx() ) ); - else + //if (olddih->Type() != DihedralType::NORMAL && (newA3 == 0 || newA4 == 0)) + // dihOut.push_back( DihedralType( newA4, newA3, newA2, newA1, + // olddih->Type(), olddih->Idx() ) ); + //else dihOut.push_back( DihedralType( newA1, newA2, newA3, newA4, olddih->Type(), olddih->Idx() ) ); } @@ -2084,834 +2227,207 @@ void Topology::StripDihedralParmArray(DihedralArray& newDihedralArray, std::vect } } -// Topology::AddBondArray() -void Topology::AddBondArray(BondArray const& barray, BondParmArray const& bp, int atomOffset) { - if (bp.empty()) { - for (BondArray::const_iterator bond = barray.begin(); bond != barray.end(); ++bond) - AddBond( bond->A1() + atomOffset, bond->A2() + atomOffset ); - } else { - bool missingParameters = false; - for (BondArray::const_iterator bond = barray.begin(); bond != barray.end(); ++bond) { - if (bond->Idx() > -1) - AddBond( bond->A1() + atomOffset, bond->A2() + atomOffset, bp[bond->Idx()] ); - else { - missingParameters = true; - AddBond( bond->A1() + atomOffset, bond->A2() + atomOffset ); - } - } - if (missingParameters) - mprintf("Warning: Some bonds were missing parameters.\n"); - } -} - -// Topology::AddAngleArray() -void Topology::AddAngleArray(AngleArray const& aarray, AngleParmArray const& ap, int atomOffset) { - if (ap.empty()) - for (AngleArray::const_iterator angle = aarray.begin(); angle != aarray.end(); ++angle) - AddAngle( angle->A1() + atomOffset, - angle->A2() + atomOffset, - angle->A3() + atomOffset ); - else - for (AngleArray::const_iterator angle = aarray.begin(); angle != aarray.end(); ++angle) - AddAngle( angle->A1() + atomOffset, - angle->A2() + atomOffset, - angle->A3() + atomOffset, ap[angle->Idx()] ); -} - -// Topology::AddDihArray() -void Topology::AddDihArray(DihedralArray const& darray, DihedralParmArray const& dp, int atomOffset) -{ - if (dp.empty()) - for (DihedralArray::const_iterator dih = darray.begin(); dih != darray.end(); ++dih) - AddDihedral( DihedralType( dih->A1() + atomOffset, dih->A2() + atomOffset, - dih->A3() + atomOffset, dih->A4() + atomOffset, - dih->Type() ), -1 ); - else - for (DihedralArray::const_iterator dih = darray.begin(); dih != darray.end(); ++dih) - AddDihedral( DihedralType( dih->A1() + atomOffset, dih->A2() + atomOffset, - dih->A3() + atomOffset, dih->A4() + atomOffset, - dih->Type() ), dp[dih->Idx()] ); -} - -/// Map type indices to LJ parameters -class TypeArray { - public: - typedef std::map<int,AtomType> Tarray; - typedef Tarray::const_iterator const_iterator; - typedef std::pair<int,AtomType> Tpair; - TypeArray() {} - size_t size() const { return types_.size(); } - const_iterator begin() const { return types_.begin(); } - const_iterator end() const { return types_.end(); } - AtomType const& LastType() const { return lastType_->second; } - /// Add params for atom to array if not present - int AddAtomType(Atom const& atom, int anum, Topology const& top) { - if (atom.TypeIndex() < 0 || atom.Type().len() < 1) { - mprintf("Warning: Invalid atom type information in '%s'\n", top.c_str()); - return 1; - } - //mprintf("DEBUG: %s %s %i %s\n", *(atom.Name()), *(atom.Type()), anum, top.c_str()); - // See if index already present. - Tarray::iterator it = types_.find( atom.TypeIndex() ); - if (it == types_.end()) { - AtomType type(top.GetVDWradius(anum), top.GetVDWdepth(anum), atom.TypeIndex()); - //mprintf("\tAdding [%4zu] %4i %s %12.5g %12.5g (%s)\n", types_.size(), - // atom.TypeIndex(), *(atom.Type()), - // type.Radius(), type.Depth(), top.c_str()); - std::pair<Tarray::iterator, bool> ret = types_.insert( Tpair(atom.TypeIndex(), type) ); - lastType_ = ret.first; - } - return 0; - } - /// Add to array - void AddType(int idx, AtomType const& typeIn) { types_.insert(Tpair(idx, typeIn)); } - private: - Tarray types_; - Tarray::iterator lastType_; -}; - -/** This template can be used when doing Append() on a generic std::vector array - * of type T. The array will be appended to a given array of the same type. - * If one is empty and the other is not, values will be filled in if necessary. - */ -template <class T> class TopVecAppend { - public: - /// CONSTRUCTOR - TopVecAppend() {} - /// Append current array to given array of same type - void Append(std::vector<T>& arrayOut, std::vector<T> const& arrayToAdd, unsigned int expectedSize) - { - if (arrayToAdd.empty() && arrayOut.empty()) { - // Both arrays are empty. Nothing to do. - return; - } else if (arrayToAdd.empty()) { - // The current array is empty but the given array is not. Fill in - // array to append with blank values. - for (unsigned int idx = 0; idx != expectedSize; idx++) - arrayOut.push_back( T() ); - } else { - // Append current array to array to given array. TODO use std::copy? - for (typename std::vector<T>::const_iterator it = arrayToAdd.begin(); it != arrayToAdd.end(); ++it) - arrayOut.push_back( *it ); - } - } -}; - -// Topology::AppendTop() -int Topology::AppendTop(Topology const& NewTop) { - int atomOffset = (int)atoms_.size(); - //int resOffset = (int)residues_.size(); - - // NONBONDS - // Make sure that either both topologies have non-bond parameters or neither - // do. If the current topology is empty just check incoming topology. - bool doNonBond = true; - if (atoms_.empty()) { - doNonBond = NewTop.Nonbond().HasNonbond(); - } else { - doNonBond = (Nonbond().HasNonbond() && NewTop.Nonbond().HasNonbond()); - if (!doNonBond && (Nonbond().HasNonbond() != NewTop.Nonbond().HasNonbond())) { - if (Nonbond().HasNonbond()) - mprintf("Warning: Topology '%s' does not have non-bond parameters.\n", NewTop.c_str()); - else - mprintf("Warning: Topology '%s' does not have non-bond parameters.\n", c_str()); - } - } - // Create an array of existing nonbond types so we can compare to incoming. - TypeArray ExistingTypes; - if (doNonBond) { - for (atom_iterator atom = atoms_.begin(); atom != atoms_.end(); ++atom) { - if (ExistingTypes.AddAtomType(*atom, atom-atoms_.begin(), *this)) { - doNonBond = false; - break; - } - } - // DEBUG - if (debug_ > 0) { - mprintf("DEBUG: %zu existing atom type indices:\n", ExistingTypes.size()); - for (TypeArray::const_iterator ti = ExistingTypes.begin(); - ti != ExistingTypes.end(); ++ti) - mprintf("\t%8i %12.5g %12.5g\n", ti->first, ti->second.LJ().Radius(), ti->second.LJ().Depth()); - } - } - int NexistingAtomTypes = (int)ExistingTypes.size(); - int currentTypeIdx = NexistingAtomTypes; - - // ATOMS - typedef std::map<int,int> TypeMap; - TypeMap type_newToExisting; ///< Track what existing atom type new types correspond to. - TypeArray NewTypes; - for (atom_iterator atom = NewTop.begin(); atom != NewTop.end(); ++atom) - { - if (debug_ > 1) - mprintf("DBG: %6li %s %s %4i\n", atom-NewTop.begin(), - *(atom->Name()), *(atom->Type()), atom->TypeIndex()); - Atom CurrentAtom = *atom; - Residue const& res = NewTop.Res( CurrentAtom.ResNum() ); - // Bonds need to be cleared and re-added. - CurrentAtom.ClearBonds(); - // NONBONDS - if (doNonBond) { - if (NewTypes.AddAtomType(*atom, atom-NewTop.begin(), NewTop)) { - doNonBond = false; - } else { - // Update type index - int newTypeIdx = -1; - // Check if this atom type has already been added to existing types. - TypeMap::iterator it = type_newToExisting.find( atom->TypeIndex() ); - if (it == type_newToExisting.end()) { - // Type has not yet been mapped. See if it is an existing type. - for (TypeArray::const_iterator et = ExistingTypes.begin(); - et != ExistingTypes.end(); ++et) - if (et->second == NewTypes.LastType()) { - newTypeIdx = et->first; - type_newToExisting.insert(std::pair<int,int>(atom->TypeIndex(), newTypeIdx)); - if (debug_ > 1) - mprintf("\tType (%i) matches existing type (%i)\n", - atom->TypeIndex(), newTypeIdx); - break; - } - if (newTypeIdx == -1) { - // Type not found among existing types. Need new type index. - if (debug_ > 1) - mprintf("\tNeed new type. Converting %i to %i\n", - atom->TypeIndex(), currentTypeIdx); - newTypeIdx = currentTypeIdx; - type_newToExisting.insert(std::pair<int,int>(atom->TypeIndex(), newTypeIdx)); - ExistingTypes.AddType(newTypeIdx, NewTypes.LastType()); - currentTypeIdx++; - } - } else { - // Type has been mapped. - newTypeIdx = it->second; - if (debug_ > 1) - mprintf("\tType %i already present as %i.\n", atom->TypeIndex(),newTypeIdx); - } - // Update type index - CurrentAtom.SetTypeIndex( newTypeIdx ); - } - } - //AddTopAtom( CurrentAtom, Residue(res.Name(), CurrentAtom.ResNum() + resOffset + 1, - AddTopAtom( CurrentAtom, Residue(res.Name(), res.OriginalResNum(), - res.Icode(), res.ChainID()) ); - } // END loop over incoming atoms - // NONBONDS - if (!doNonBond) { - if (Nonbond().HasNonbond()) { - mprintf("Warning: Removing non-bond parameters\n"); - nonbond_.Clear(); - } - } else { - // DEBUG - if (debug_ > 0) { - mprintf("DEBUG: %zu new atom type indices:\n", NewTypes.size()); - for (TypeArray::const_iterator ti = NewTypes.begin(); - ti != NewTypes.end(); ++ti) - mprintf("\t%8i %12.5g %12.5g\n", ti->first, ti->second.LJ().Radius(), ti->second.LJ().Depth()); - mprintf("DEBUG: New to existing mapping:\n"); - for (TypeMap::const_iterator it = type_newToExisting.begin(); - it != type_newToExisting.end(); ++it) - mprintf("\t%6i to %6i\n", it->first, it->second); - mprintf("DEBUG: Atom Types:\n"); - for (TypeArray::const_iterator it = ExistingTypes.begin(); - it != ExistingTypes.end(); ++it) - { - mprintf("\t%8i %12.5g %12.5g (%8i)", it->first, it->second.LJ().Radius(), - it->second.LJ().Depth(), it->second.OriginalIdx()); - if (it->first >= NexistingAtomTypes) - mprintf(" (NEW)\n"); - else - mprintf(" (EXISTING)\n"); - } - } - // Set up new nonbond array. - NonbondParmType newNB; - newNB.SetupLJforNtypes( ExistingTypes.size() ); - // Go through all interactions. - for (TypeArray::const_iterator t1 = ExistingTypes.begin(); - t1 != ExistingTypes.end(); ++t1) - { - for (TypeArray::const_iterator t2 = ExistingTypes.begin(); - t2 != ExistingTypes.end(); ++t2) - { - if (t1->first >= t2->first) - { - bool OneIsNew = (t1->first >= NexistingAtomTypes); - bool TwoIsNew = (t2->first >= NexistingAtomTypes); - NonbondType LJ = LJ_EMPTY; - if (OneIsNew && TwoIsNew) { - // Both types from new topology. Look there for LJ params using - // the original atom indices. - int nbidx = NewTop.Nonbond().GetLJindex( t1->second.OriginalIdx(), - t2->second.OriginalIdx() ); - if (nbidx >= 0) - LJ = NewTop.Nonbond().NBarray( nbidx ); - } else if (!OneIsNew && !TwoIsNew) { - // Both types from existing topology. Look here for LJ params. - int nbidx = nonbond_.GetLJindex( t1->first, t2->first ); - if (nbidx >= 0) - LJ = nonbond_.NBarray( nbidx ); - } else { - // Mix new and existing. - LJ = t1->second.LJ().Combine_LB( t2->second.LJ() ); - } - if (debug_ > 1) - mprintf("DEBUG: Adding LJ term for %i %i A=%g B=%g\n", t1->first, t2->first, - LJ.A(), LJ.B()); - newNB.AddLJterm(t1->first, t2->first, LJ); - } - } - } - nonbond_ = newNB; - } - // EXTRA ATOM INFO - TopVecAppend<NameType> appendNameType; - appendNameType.Append( tree_, NewTop.tree_, NewTop.Natom() ); - TopVecAppend<int> appendInt; - appendInt.Append( ijoin_, NewTop.ijoin_, NewTop.Natom() ); - appendInt.Append( irotat_, NewTop.irotat_, NewTop.Natom() ); - appendInt.Append( pdbSerialNum_, NewTop.pdbSerialNum_, NewTop.Natom() ); - TopVecAppend<char> appendChar; - appendChar.Append( atom_altloc_, NewTop.atom_altloc_, NewTop.Natom() ); - TopVecAppend<float> appendFloat; - appendFloat.Append( occupancy_, NewTop.occupancy_, NewTop.Natom() ); - appendFloat.Append( bfactor_, NewTop.bfactor_, NewTop.Natom() ); - - // BONDS - AddBondArray(NewTop.Bonds(), NewTop.BondParm(), atomOffset); - AddBondArray(NewTop.BondsH(), NewTop.BondParm(), atomOffset); - // ANGLES - AddAngleArray(NewTop.Angles(), NewTop.AngleParm(), atomOffset); - AddAngleArray(NewTop.AnglesH(), NewTop.AngleParm(), atomOffset); - // DIHEDRALS - AddDihArray(NewTop.Dihedrals(), NewTop.DihedralParm(), atomOffset); - AddDihArray(NewTop.DihedralsH(), NewTop.DihedralParm(), atomOffset); - - // TODO append missing stuff? - - // Re-set up this topology - // TODO: Could get expensive for multiple appends. - return CommonSetup(); -} - // ----------------------------------------------------------------------------- -static void paramOverwriteWarning(const char* type) { - mprintf("Warning: An existing %s parameter would have been overwritten. This\n" - "Warning: usually means that the atom type information in the Topology is\n" - "Warning: incomplete. This can happen for example with Chamber topologies\n" - "Warning: if the original atom type names were > 4 characters.\n", type); - mprintf("Warning: The %s parameters in this topology may now be incorrect.\n", type); -} - -// GetBondParams() -static inline void GetBondParams(ParmHolder<BondParmType>& BP, std::vector<Atom> const& atoms, BondArray const& bonds, BondParmArray const& bpa) { - for (BondArray::const_iterator b = bonds.begin(); b != bonds.end(); ++b) - { - if (b->Idx() != -1) { - TypeNameHolder types(2); - types.AddName( atoms[b->A1()].Type() ); - types.AddName( atoms[b->A2()].Type() ); - ParameterHolders::RetType ret = BP.AddParm( types, bpa[b->Idx()], false ); - if (ret == ParameterHolders::ERR) - paramOverwriteWarning("bond"); - } - } -} - -// GetAngleParams() -static inline void GetAngleParams(ParmHolder<AngleParmType>& AP, std::vector<Atom> const& atoms, AngleArray const& angles, AngleParmArray const& apa) { - for (AngleArray::const_iterator b = angles.begin(); b != angles.end(); ++b) - { - if (b->Idx() != -1) { - TypeNameHolder types(3); - types.AddName( atoms[b->A1()].Type() ); - types.AddName( atoms[b->A2()].Type() ); - types.AddName( atoms[b->A3()].Type() ); - ParameterHolders::RetType ret = AP.AddParm( types, apa[b->Idx()], false ); - if (ret == ParameterHolders::ERR) - paramOverwriteWarning("angle"); - } - } -} - -// GetImproperParams() -static inline void GetImproperParams(ParmHolder<DihedralParmType>& IP, std::vector<Atom> const& atoms, DihedralArray const& imp, DihedralParmArray const& ipa) { - for (DihedralArray::const_iterator b = imp.begin(); b != imp.end(); ++b) - { - if (b->Idx() != -1) { - TypeNameHolder types(4); - types.AddName( atoms[b->A1()].Type() ); - types.AddName( atoms[b->A2()].Type() ); - types.AddName( atoms[b->A3()].Type() ); - types.AddName( atoms[b->A4()].Type() ); - ParameterHolders::RetType ret = IP.AddParm( types, ipa[b->Idx()], false ); - if (ret == ParameterHolders::ERR) - paramOverwriteWarning("improper"); - } - } -} - -// GetDihedralParams() -static inline void GetDihedralParams(DihedralParmHolder& DP, std::vector<Atom> const& atoms, DihedralArray const& dih, DihedralParmArray const& dpa) { - for (DihedralArray::const_iterator b = dih.begin(); b != dih.end(); ++b) - { - if (b->Idx() != -1) { - TypeNameHolder types(4); - types.AddName( atoms[b->A1()].Type() ); - types.AddName( atoms[b->A2()].Type() ); - types.AddName( atoms[b->A3()].Type() ); - types.AddName( atoms[b->A4()].Type() ); - //mprintf("DEBUG: dihedral %li ( %i %i %i %i )\n", b - dih.begin() + 1, b->A1()+1, b->A2()+1, b->A3()+1, b->A4()+1); - ParameterHolders::RetType ret = DP.AddParm( types, dpa[b->Idx()], false ); - if (ret == ParameterHolders::ERR) - paramOverwriteWarning("dihedral"); - } - } -} - -/** Used to map type names to type indices to access nonbond parameters. */ -typedef std::map<NameType, int> NameIdxMapType; - -/** \param atomTypes Output array of atom types. - * \param NB1 Current nonbond parameters. - * \param atoms Array of atoms. - * \param NB0 Output array of nonbond parameters. +/** Loop over atom type pairs, determine what the A and B + * parameters should be based on the LJ radius and depth, + * then compare to the existing A and B parameters. + * Warn if it does not match, store the current A and B + * parameters. + * \param atomTypesOut The atom types containing radii and depths. + * \param LJ612out The output LJ 6-12 A and B paramters. + * \param LJ1012ptr If not 0, the output LJ 10-12 parameters. */ -static inline void GetLJAtomTypes( ParmHolder<AtomType>& atomTypes, ParmHolder<NonbondType>& NB1, std::vector<Atom> const& atoms, NonbondParmType const& NB0, int debugIn) +/*static inline void GetLJterms(ParmHolder<AtomType> const& atomTypesOut, + ParmHolder<NonbondType>& LJ612out, + ParmHolder<HB_ParmType>* LJ1012ptr, + NonbondParmType const& NB0, + bool isLJ14, + int debugIn) { - // TODO check for off-diagonal terms - if (NB0.HasNonbond()) { - // Map type names to type indices to access nonbond parameters. - NameIdxMapType nameIdxMap; - for (std::vector<Atom>::const_iterator atm = atoms.begin(); atm != atoms.end(); ++atm) - { - // TODO check for blank type name? - TypeNameHolder types(1); - types.AddName( atm->Type() ); - int idx = NB0.GetLJindex( atm->TypeIndex(), atm->TypeIndex() ); - ParameterHolders::RetType ret; - if (idx > -1) { - NonbondType const& LJ = NB0.NBarray( idx ); - ret = atomTypes.AddParm( types, AtomType(LJ.Radius(), LJ.Depth(), atm->Mass()), true ); - } else - ret = atomTypes.AddParm( types, AtomType(atm->Mass()), true ); - if (ret == ParameterHolders::ADDED) - nameIdxMap.insert( std::pair<NameType, int>(atm->Type(), atm->TypeIndex()) ); - } - // Do atom type pairs + // Do atom type pairs, check for off-diagonal elements. + // Explicitly store pairs instead of regenerating to avoid round-off issues. unsigned int nModifiedOffDiagonal = 0; - for (ParmHolder<AtomType>::const_iterator i1 = atomTypes.begin(); i1 != atomTypes.end(); ++i1) + for (ParmHolder<AtomType>::const_iterator i1 = atomTypesOut.begin(); i1 != atomTypesOut.end(); ++i1) { - for (ParmHolder<AtomType>::const_iterator i2 = i1; i2 != atomTypes.end(); ++i2) + for (ParmHolder<AtomType>::const_iterator i2 = i1; i2 != atomTypesOut.end(); ++i2) { - // Determine what A and B parameters would be. NameType const& name1 = i1->first[0]; NameType const& name2 = i2->first[0]; + TypeNameHolder types(2); + types.AddName( name1 ); + types.AddName( name2 ); + // Extract original nonbonded parameters for this type pair. AtomType const& type1 = i1->second; AtomType const& type2 = i2->second; - NonbondType lj0 = type1.LJ().Combine_LB( type2.LJ() ); - // Extract original A and B parameters. - NameIdxMapType::const_iterator t1 = nameIdxMap.find( name1 ); - NameIdxMapType::const_iterator t2 = nameIdxMap.find( name2 ); - int idx1 = t1->second; - int idx2 = t2->second; + int idx1 = type1.OriginalIdx(); + int idx2 = type2.OriginalIdx(); int idx = NB0.GetLJindex( idx1, idx2 ); if (idx < 0) { - mprinterr("Error: No off-diagonal LJ for %s %s (%i %i)\n", + // This is LJ 10-12. + //mprinterr("Error: No off-diagonal LJ for %s %s (%i %i)\n", + // *name1, *name2, idx1, idx2); + //return; + if (LJ1012ptr != 0) { + mprintf("DEBUG: LJ 10-12 parameters detected for %s %s (%i %i)\n", *name1, *name2, idx1, idx2); - return; - } - NonbondType lj1 = NB0.NBarray( idx ); - // Compare them - if (lj0 != lj1) { - nModifiedOffDiagonal++; - if (debugIn > 0) { - double deltaA = fabs(lj0.A() - lj1.A()); - double deltaB = fabs(lj0.B() - lj1.B()); - mprintf("DEBUG: Potential off-diagonal LJ: %s %s expect A=%g B=%g, actual A=%g B=%g\n", - *name1, *name2, lj0.A(), lj0.B(), lj1.A(), lj1.B()); - mprintf("DEBUG:\tdeltaA= %g deltaB= %g\n", deltaA, deltaB); + LJ1012ptr->AddParm( types, NB0.HBarray((-idx)-1), false ); + } + } else { + // This is LJ 6-12. + // Determine what A and B parameters would be. + NonbondType lj0 = type1.LJ().Combine_LB( type2.LJ() ); + + NonbondType lj1; + if (isLJ14) + lj1 = NB0.LJ14( idx ); + else + lj1 = NB0.NBarray( idx ); + // Compare them + if (lj0 != lj1) { + nModifiedOffDiagonal++; + //if (debugIn > 0) { + double deltaA = fabs(lj0.A() - lj1.A()); + double deltaB = fabs(lj0.B() - lj1.B()); + mprintf("DEBUG: Potential off-diagonal LJ: %s %s expect A=%g B=%g, actual A=%g B=%g\n", + *name1, *name2, lj0.A(), lj0.B(), lj1.A(), lj1.B()); + mprintf("DEBUG:\tdeltaA= %g deltaB= %g\n", deltaA, deltaB); + double pe_a = (fabs(lj0.A() - lj1.A()) / lj0.A()); + double pe_b = (fabs(lj0.B() - lj1.B()) / lj0.B()); + mprintf("DEBUG:\tPEA= %g PEB= %g\n", pe_a, pe_b); + //} } + LJ612out.AddParm( types, lj1, false ); } - TypeNameHolder types(2); - types.AddName( name1 ); - types.AddName( name2 ); - NB1.AddParm( types, lj1, false ); } // END inner loop over atom types } // END outer loop over atom types if (nModifiedOffDiagonal > 0) mprintf("Warning: %u modified off-diagonal LJ terms present.\n", nModifiedOffDiagonal); - } else { - for (std::vector<Atom>::const_iterator atm = atoms.begin(); atm != atoms.end(); ++atm) - if (atm->Type().len() > 0) - atomTypes.AddParm( TypeNameHolder(atm->Type()), AtomType(atm->Mass()), true ); - } -} - -/** \return ParameterSet for this Topology. */ -ParameterSet Topology::GetParameters() const { - ParameterSet Params; - // Atom LJ types - GetLJAtomTypes( Params.AT(), Params.NB(), atoms_, nonbond_, debug_ ); - // Bond parameters. - GetBondParams( Params.BP(), atoms_, bonds_, bondparm_ ); - GetBondParams( Params.BP(), atoms_, bondsh_, bondparm_ ); - // Angle parameters. - GetAngleParams( Params.AP(), atoms_, angles_, angleparm_); - GetAngleParams( Params.AP(), atoms_, anglesh_, angleparm_); - // Dihedral parameters. - GetDihedralParams( Params.DP(), atoms_, dihedrals_, dihedralparm_); - GetDihedralParams( Params.DP(), atoms_, dihedralsh_, dihedralparm_); - // CHARMM parameters - if (chamber_.HasChamber()) { - // UB parameters - GetBondParams(Params.UB(), atoms_, chamber_.UB(), chamber_.UBparm()); - // Impropers - GetImproperParams( Params.IP(), atoms_, chamber_.Impropers(), chamber_.ImproperParm() ); - } +}*/ - return Params; -} -// ----------------------------------------------------------------------------- -/** Set parameters in array V for objects in array U using parameters from array T. - */ -/* -template<typename T, typename U, typename V> -void AssignParm(std::vector<Atom> const& atoms, - ParmHolder<T> const& newParams, // BondParmType - ParmHolder<int>& currentIndices, - U& objects, // BondArray - V& currentParams) // BondParmArray -{ - for (typename U::iterator obj = objects.begin(); obj != objects.end(); ++obj) { - TypeNameHolder types(obj->Nidx()); - for (unsigned int idx = 0; idx != obj->Nidx(); idx++) - types.AddName( atoms[obj->Atom(idx)].Type() ); - bool found; - // See if parameter already present. - int idx = currentIndices.FindParam( types, found ); - if (!found) { - // Search in new - T param = newParams.FindParam( types, found ); - if (found) { - // Add parameter - idx = (int)currentParams.size(); - currentParams.push_back( param ); - } else - idx = -1; - } - //if (idx == -1) - // mprintf("Warning: Bond parameter not found for bond %s-%s (%s-%s)\n", - // TruncResAtomNameNum(bnd->A1()).c_str(), - // TruncResAtomNameNum(bnd->A2()).c_str(), - // *types[0], *types[1]); - obj->SetIdx( idx ); - } -}*/ -/** Set parameters for bonds in given bond array. */ -void Topology::AssignBondParm(ParmHolder<BondParmType> const& newBondParams, - ParmHolder<int>& currentIndices, - BondArray& bonds, BondParmArray& bpa, const char* desc) -{ - for (BondArray::iterator bnd = bonds.begin(); bnd != bonds.end(); ++bnd) { - TypeNameHolder types(2); - types.AddName( atoms_[bnd->A1()].Type() ); - types.AddName( atoms_[bnd->A2()].Type() ); - bool found; - // See if parameter already present. - int idx = currentIndices.FindParam( types, found ); - if (!found) { - // Search in new - BondParmType bp = newBondParams.FindParam( types, found ); - if (found) { - // Add parameter - idx = (int)bpa.size(); - bpa.push_back( bp ); - currentIndices.AddParm( types, idx, false ); - } else - idx = -1; - } - if (idx == -1) - mprintf("Warning: parameter not found for %s %s-%s (%s-%s)\n", desc, - TruncResAtomNameNum(bnd->A1()).c_str(), - TruncResAtomNameNum(bnd->A2()).c_str(), - *types[0], *types[1]); - bnd->SetIdx( idx ); - } +// ----------------------------------------------------------------------------- +/** Append a topology to another with default options */ +int Topology::AppendTop(Topology const& NewTop) { + return AppendTop(NewTop, 0, false, false); } -/** Replace any current bond parameters with given bond parameters. */ -void Topology::AssignBondParams(ParmHolder<BondParmType> const& newBondParams) { - bondparm_.clear(); - ParmHolder<int> currentIndices; - //AssignParm<BondParmType, BondArray, BondParmArray>( atoms, newBondParams, currentIndices, bonds_, bondparm_ ); - AssignBondParm( newBondParams, currentIndices, bonds_, bondparm_, "bond" ); - AssignBondParm( newBondParams, currentIndices, bondsh_, bondparm_, "bond" ); -} +/** Append a topology to another */ +int Topology::AppendTop(Topology const& NewTop, int verbose_, bool reduce_bond_params, bool reduce_angle_params) { + using namespace Cpptraj::Parm; + Topology& topOut = *this; -/** Replace any current Urey-Bradley parameters with given UB parameters. */ -void Topology::AssignUBParams(ParmHolder<BondParmType> const& newBondParams) { - chamber_.SetUBparm().clear(); - ParmHolder<int> currentIndices; - AssignBondParm( newBondParams, currentIndices, chamber_.SetUB(), chamber_.SetUBparm(), "UB term" ); -} + unsigned int atomOffset = (unsigned int)topOut.Natom(); + unsigned int molOffset = (unsigned int)topOut.Nmol(); + if (debug_ > 0) + mprintf("DEBUG: Appending '%s' to '%s' (atom offset= %u mol offset= %u)\n", + NewTop.c_str(), topOut.c_str(), atomOffset, molOffset); + //int resOffset = (int)residues_.size(); -/** Set parameters for angles in given angle array. */ -void Topology::AssignAngleParm(ParmHolder<AngleParmType> const& newAngleParams, - ParmHolder<int>& currentIndices, - AngleArray& angles) -{ - for (AngleArray::iterator ang = angles.begin(); ang != angles.end(); ++ang) { - TypeNameHolder types(3); - types.AddName( atoms_[ang->A1()].Type() ); - types.AddName( atoms_[ang->A2()].Type() ); - types.AddName( atoms_[ang->A3()].Type() ); - bool found; - // See if parameter already present. - int idx = currentIndices.FindParam( types, found ); - if (!found) { - // Search in new - AngleParmType ap = newAngleParams.FindParam( types, found ); - if (found) { - // Add parameter - idx = (int)angleparm_.size(); - angleparm_.push_back( ap ); - currentIndices.AddParm( types, idx, false ); - } else - idx = -1; - } - if (idx == -1) - mprintf("Warning: Angle parameter not found for angle %s-%s-%s (%s-%s-%s)\n", - TruncResAtomNameNum(ang->A1()).c_str(), - TruncResAtomNameNum(ang->A2()).c_str(), - TruncResAtomNameNum(ang->A3()).c_str(), - *types[0], *types[1], *types[3]); - ang->SetIdx( idx ); + // Save nonbonded parameters from each topology + ParmHolder<AtomType> myAtomTypes, newAtomTypes; + ParmHolder<NonbondType> myNB, newNB; + ParmHolder<NonbondType> my14, new14; + ParmHolder<HB_ParmType> myHB, newHB; + ParmHolder<double> myLJC, newLJC; + Cpptraj::Parm::GetParams GP; + GP.SetDebug( debug_ ); + GP.GetLJAtomTypes( myAtomTypes, myNB, my14, myLJC, myHB, topOut.Atoms(), topOut.Nonbond() ); + GP.GetLJAtomTypes( newAtomTypes, newNB, new14, newLJC, newHB, NewTop.Atoms(), NewTop.Nonbond() ); + // Create combined nonbond parameter set + int nAtomTypeUpdated = UpdateParameters< ParmHolder<AtomType> >( myAtomTypes, newAtomTypes, "atom type", verbose_ ); + int nLJparamsUpdated = UpdateParameters< ParmHolder<NonbondType> >( myNB, newNB, "LJ 6-12", verbose_ ); + int n14paramsUpdated = UpdateParameters< ParmHolder<NonbondType> >( my14, new14, "LJ 6-12 1-4", verbose_ ); + int nljcparamsUpdated = UpdateParameters< ParmHolder<double> >( myLJC, newLJC, "LJ C", verbose_ ); + int nHBparamsUpdated = UpdateParameters< ParmHolder<HB_ParmType> >( myHB, newHB, "LJ 10-12", verbose_ ); + if (verbose_ > 0) + mprintf("\t%i atom types updated, %i LJ 6-12 params updated, %i 1-4 params updated, %i LJC params updated, %i LJ 10-12 params updated.\n", + nAtomTypeUpdated, nLJparamsUpdated, n14paramsUpdated, nljcparamsUpdated, nHBparamsUpdated); + + // Add incoming topology bond/angle/dihedral/cmap arrays to this one. + MergeBondArrays(reduce_bond_params, topOut.ModifyBonds(), topOut.ModifyBondsH(), topOut.ModifyBondParm(), topOut.Atoms(), + NewTop.Bonds(), NewTop.BondsH(), NewTop.BondParm(), NewTop.Atoms()); + MergeAngleArrays(reduce_angle_params, topOut.ModifyAngles(), topOut.ModifyAnglesH(), topOut.ModifyAngleParm(), topOut.Atoms(), + NewTop.Angles(), NewTop.AnglesH(), NewTop.AngleParm(), NewTop.Atoms()); + MergeDihedralArrays(topOut.ModifyDihedrals(), topOut.ModifyDihedralsH(), topOut.ModifyDihedralParm(), topOut.Atoms(), + NewTop.Dihedrals(), NewTop.DihedralsH(), NewTop.DihedralParm(), NewTop.Atoms()); + MergeCmapArrays(topOut.ModifyCmap(), topOut.ModifyCmapGrid(), topOut.Atoms(), topOut.Residues(), + NewTop.Cmap(), NewTop.CmapGrid(), NewTop.Atoms(), NewTop.Residues()); + MergeBondArray(topOut.ModifyUB(), topOut.ModifyUBparm(), topOut.Atoms(), + NewTop.UB(), NewTop.UBparm(), NewTop.Atoms()); + MergeImproperArray(topOut.ModifyImpropers(), topOut.ModifyImproperParm(), topOut.Atoms(), + NewTop.Impropers(), NewTop.ImproperParm(), NewTop.Atoms()); + + // Append incoming atoms to this topology. + for (AtArray::const_iterator atom = NewTop.begin(); atom != NewTop.end(); ++atom) + { + if (debug_ > 1) + mprintf("DEBUG: %6li %s %s %4i\n", atom-NewTop.begin(), + *(atom->Name()), *(atom->Type()), atom->TypeIndex()); + Atom CurrentAtom = *atom; + Residue const& res = NewTop.Res( CurrentAtom.ResNum() ); + // Bonds need to be cleared and re-added. + CurrentAtom.ClearBonds(); + for (Atom::bond_iterator bat = atom->bondbegin(); bat != atom->bondend(); ++bat) + CurrentAtom.AddBondToIdx( *bat + atomOffset ); + + topOut.addTopAtom( CurrentAtom, + Residue(res.Name(), res.OriginalResNum(), res.Icode(), res.ChainID()), + atom->MolNum()+molOffset, NewTop.Mol(atom->MolNum()).IsSolvent() ); } -} -/** Replace any current angle parameters with given angle parameters. */ -void Topology::AssignAngleParams(ParmHolder<AngleParmType> const& newAngleParams) { - angleparm_.clear(); - ParmHolder<int> currentIndices; - AssignAngleParm( newAngleParams, currentIndices, angles_ ); - AssignAngleParm( newAngleParams, currentIndices, anglesh_ ); -} + // EXTRA ATOM INFO + TopVecAppend<NameType> appendNameType; + appendNameType.Append( topOut.ModifyTreeChainClassification(), NewTop.TreeChainClassification(), NewTop.Natom() ); + TopVecAppend<int> appendInt; + appendInt.Append( topOut.ModifyJoinArray(), NewTop.JoinArray(), NewTop.Natom() ); + appendInt.Append( topOut.ModifyRotateArray(), NewTop.RotateArray(), NewTop.Natom() ); + appendInt.Append( topOut.ModifyPdbSerialNum(), NewTop.PdbSerialNum(), NewTop.Natom() ); + TopVecAppend<char> appendChar; + appendChar.Append( topOut.ModifyAtomAltLoc(), NewTop.AtomAltLoc(), NewTop.Natom() ); + TopVecAppend<float> appendFloat; + appendFloat.Append( topOut.ModifyOccupancy(), NewTop.Occupancy(), NewTop.Natom() ); + appendFloat.Append( topOut.ModifyBfactor(), NewTop.Bfactor(), NewTop.Natom() ); -/** Set parameters for dihedrals in given dihedral array. */ -void Topology::AssignImproperParm(ParmHolder<DihedralParmType> const& newImproperParams, - ParmHolder<int>& currentIndices, - DihedralArray& impropers) -{ - for (DihedralArray::iterator imp = impropers.begin(); imp != impropers.end(); ++imp) { - TypeNameHolder types(4); - types.AddName( atoms_[imp->A1()].Type() ); - types.AddName( atoms_[imp->A2()].Type() ); - types.AddName( atoms_[imp->A3()].Type() ); - types.AddName( atoms_[imp->A4()].Type() ); - bool found; - // See if parameter already present. - int idx = currentIndices.FindParam( types, found ); - if (!found) { - // Search in new - DihedralParmType ip = newImproperParams.FindParam( types, found ); - if (found) { - // Add parameter - idx = (int)chamber_.ImproperParm().size(); - chamber_.SetImproperParm().push_back( ip ); - currentIndices.AddParm( types, idx, false ); - } else - idx = -1; - } - if (idx == -1) - mprintf("Warning: Parameter not found for improper %s-%s-%s-%s (%s-%s-%s-%s)\n", - TruncResAtomNameNum(imp->A1()).c_str(), - TruncResAtomNameNum(imp->A2()).c_str(), - TruncResAtomNameNum(imp->A3()).c_str(), - TruncResAtomNameNum(imp->A4()).c_str(), - *types[0], *types[1], *types[3], *types[4]); - imp->SetIdx( idx ); + // Need to regenerate nonbonded info + if (verbose_ > 0) + mprintf("\tRegenerating nonbond parameters.\n"); + AssignParams assign; + assign.SetDebug( debug_ ); + assign.SetVerbose( verbose_ ); + if ( myAtomTypes.size() < 1) { + if (verbose_ > 1) + mprintf("Warning: No atom types; cannot assign nonbond parameters.\n"); + } else { + assign.AssignNonbondParams( topOut, myAtomTypes, myNB, my14, myLJC, myHB ); } -} -/** Replace any current improper parameters with given improper parameters. */ -void Topology::AssignImproperParams(ParmHolder<DihedralParmType> const& newImproperParams) { - chamber_.SetImproperParm().clear(); - ParmHolder<int> currentIndices; - AssignImproperParm( newImproperParams, currentIndices, chamber_.SetImpropers() ); -} + // The version of AddTopAtom() with molecule number already determines + // molecules and number of solvent molecules. + // Just need to determine the number of extra points. + topOut.DetermineNumExtraPoints(); -/** Set parameters for dihedrals in given dihedral array. */ -void Topology::AssignDihedralParm(DihedralParmHolder const& newDihedralParams, - DihedralArray& dihedralsIn) -{ - // Dihedrals can be a bit of a pain since there can be multiple - // multiplicities for a single dihedral type. In case multiplicities - // change, start with a fresh dihedral array containing only unique - // dihedrals. - DihedralArray tmpdih = dihedralsIn; - std::sort( tmpdih.begin(), tmpdih.end() ); - DihedralArray dihedrals; - for (DihedralArray::iterator dih = tmpdih.begin(); dih != tmpdih.end(); ++dih) { - if (dihedrals.empty()) - dihedrals.push_back( *dih ); + // GB radii set string + if (!NewTop.GBradiiSet().empty()) { + if (topOut.GBradiiSet().empty()) + topOut.SetGBradiiSet( NewTop.GBradiiSet() ); else { - DihedralType const& last = dihedrals.back(); - if ( last.A1() != dih->A1() || - last.A2() != dih->A2() || - last.A3() != dih->A3() || - last.A4() != dih->A4() ) - dihedrals.push_back( *dih ); - } - } - if (debug_ > 0) - mprintf("DEBUG: %zu incoming dihedrals, %zu unique dihedrals.\n", - dihedralsIn.size(), dihedrals.size()); - - ParmHolder< std::vector<int> > currentIndices; - dihedralsIn.clear(); - for (DihedralArray::iterator dih = dihedrals.begin(); dih != dihedrals.end(); ++dih) { - TypeNameHolder types(4); - types.AddName( atoms_[dih->A1()].Type() ); - types.AddName( atoms_[dih->A2()].Type() ); - types.AddName( atoms_[dih->A3()].Type() ); - types.AddName( atoms_[dih->A4()].Type() ); - bool found; - // See if parameter already present. - std::vector<int> idxs = currentIndices.FindParam( types, found ); - if (!found) { - // Not yet present; search in newDihedralParams for parameter(s). - DihedralParmArray dpa = newDihedralParams.FindParam( types, found ); - if (found) { - for (DihedralParmArray::const_iterator it = dpa.begin(); it != dpa.end(); ++it) - { - // Add parameter and save the index - int idx = (int)dihedralparm_.size(); - idxs.push_back( idx ); - dihedralparm_.push_back( *it ); - } - currentIndices.AddParm( types, idxs, false ); - } - } - if (idxs.empty()) { - mprintf("Warning: Dihedral parameters not found for dihedral %s-%s-%s-%s (%s-%s-%s-%s)\n", - TruncResAtomNameNum(dih->A1()).c_str(), - TruncResAtomNameNum(dih->A2()).c_str(), - TruncResAtomNameNum(dih->A3()).c_str(), - TruncResAtomNameNum(dih->A4()).c_str(), - *types[0], *types[1], *types[3], *types[4]); - DihedralType mydih = *dih; - mydih.SetIdx( -1 ); - dihedralsIn.push_back( mydih ); - } else { - bool multi = idxs.size() > 1; - // Actually add the dihedrals - for (std::vector<int>::const_iterator dpidx = idxs.begin(); dpidx != idxs.end(); ++dpidx) - { - DihedralType mydih = *dih; - mydih.SetIdx( *dpidx ); - if (multi) { - // If there are multiple parameters for the same dihedral, all but - // one of the 1-4 calcs need to be skipped. - if (dpidx+1 != idxs.end()) - mydih.SetSkip14(true); - else - mydih.SetSkip14(false); + // Do not repeat a GB radius string + std::size_t pos = topOut.GBradiiSet().find( NewTop.GBradiiSet() ); + if (pos == std::string::npos) { + std::string newName = topOut.GBradiiSet() + "+" + NewTop.GBradiiSet(); + if (newName.size() > 80) { + mprintf("Warning: New radius set name is > 80 characters: '%s'\n", newName.c_str()); + mprintf("Warning: This will be truncated to 80 characters in an Amber Topology.\n"); } - dihedralsIn.push_back( mydih ); - } - } - } -} - -/** Replace any current dihedral parameters with given dihedral parameters. */ -void Topology::AssignDihedralParams(DihedralParmHolder const& newDihedralParams) { - dihedralparm_.clear(); - AssignDihedralParm( newDihedralParams, dihedrals_ ); - AssignDihedralParm( newDihedralParams, dihedralsh_ ); -} - -/** Replace current nonbond parameters with given nonbond parameters. */ -//TODO Accept array of atom type names? -void Topology::AssignNonbondParams(ParmHolder<AtomType> const& newTypes, ParmHolder<NonbondType> const& newNB) { - // Generate array of existing types. - ParmHolder<AtomType> atomTypes; - for (std::vector<Atom>::const_iterator atm = atoms_.begin(); atm != atoms_.end(); ++atm) - { - if (atm->Type().len() > 0) { - TypeNameHolder types(1); - types.AddName(atm->Type()); - // Find in newTypes. - bool found; - AtomType newAT = newTypes.FindParam( types, found ); - if (!found) { - mprintf("Warning: No atom type information for type '%s'\n", *types[0]); - newAT = AtomType(atm->Mass()); - } - atomTypes.AddParm( types, newAT, true ); - } - } - if (atomTypes.size() < 1) { - mprintf("Warning: No atom type information in %s - cannot assign nonbond parameters.\n", - c_str()); - return; - } - // Regenerate nonbond params for existing types - nonbond_.Clear(); - nonbond_.SetupLJforNtypes( atomTypes.size() ); - int nidx1 = 0; - NameIdxMapType nameIdxMap; - for (ParmHolder<AtomType>::const_iterator t1 = atomTypes.begin(); t1 != atomTypes.end(); ++t1, nidx1++) - { - NameType const& name1 = t1->first[0]; - //mprintf("DEBUG: Type1= %s (%i)\n", *name1, nidx1); - AtomType const& type1 = t1->second; - nameIdxMap.insert( std::pair<NameType, int>(name1, nidx1) ); - int nidx2 = nidx1; - for (ParmHolder<AtomType>::const_iterator t2 = t1; t2 != atomTypes.end(); ++t2, nidx2++) - { - NameType const& name2 = t2->first[0]; - //mprintf("DEBUG:\t\tType2= %s (%i)\n", *name2, nidx2); - AtomType const& type2 = t2->second; - TypeNameHolder types(2); - types.AddName( name1 ); - types.AddName( name2 ); - // See if this parameter exists in the given nonbond array. - NonbondType LJAB; - ParmHolder<NonbondType>::const_iterator it = newNB.GetParam( types ); - if (it == newNB.end()) { - mprintf("NB parameter for %s %s not found. Generating.\n", *name1, *name2); - LJAB = type1.LJ().Combine_LB( type2.LJ() ); - } else { - mprintf("Using existing NB parameter for %s %s\n", *name1, *name2); - LJAB = it->second; + topOut.SetGBradiiSet( newName ); } - nonbond_.AddLJterm(nidx1, nidx2, LJAB); } } - // Reset the atom type indices. - for (std::vector<Atom>::iterator atm = atoms_.begin(); atm != atoms_.end(); ++atm) - { - int tidx = -1; - NameIdxMapType::const_iterator it = nameIdxMap.find( atm->Type() ); - if (it == nameIdxMap.end()) { - mprintf("Warning: Atom type not found for %s (type %s)\n", - TruncResAtomNameNum( atm - atoms_.begin() ).c_str(), - *(atm->Type())); - } else { - if (it->second < 0 || it->second >= (int)atomTypes.size()) { - mprinterr("Internal Error: Type index for %s (type %s) out of range: %i\n", - TruncResAtomNameNum( atm - atoms_.begin() ).c_str(), - *(atm->Type()), it->second); - } else - tidx = it->second; - } - atm->SetTypeIndex( tidx ); - } + return 0; } +// ----------------------------------------------------------------------------- /** \return True if any atom has a non-zero charge. */ bool Topology::HasChargeInfo() const { for (std::vector<Atom>::const_iterator at = atoms_.begin(); @@ -2921,6 +2437,15 @@ bool Topology::HasChargeInfo() const { return false; } +/** \return Total charge */ +double Topology::TotalCharge() const { + double sumQ = 0.0; + for (std::vector<Atom>::const_iterator at = atoms_.begin(); + at != atoms_.end(); ++at) + sumQ += at->Charge(); + return sumQ; +} + /** Redistribute charge on atoms to match given total target charge. */ int Topology::RedistributeCharge(double charge) { //mprintf("DEBUG: Redistribute charge for %s, total charge = %g\n", topIn.c_str(), charge); @@ -2959,59 +2484,3 @@ int Topology::RedistributeCharge(double charge) { } return 0; } - -// ----------------------------------------------------------------------------- - -/** Update/add to parameters in this topology with those from given set. */ -int Topology::UpdateParams(ParameterSet const& set1) { - ParameterSet set0 = GetParameters(); - // Check - if (set0.AT().size() < 1) - mprintf("Warning: No atom type information in '%s'\n", c_str()); - if (debug_ > 0) { - mprintf("DEBUG: Saving original parameters in originalp.dat, new parameters in newp.dat\n"); - set0.Debug("originalp.dat"); - } - - unsigned int updateCount; - // Bond parameters - updateCount = UpdateParameters< ParmHolder<BondParmType> >(set0.BP(), set1.BP(), "bond"); - if (updateCount > 0) { - mprintf("\tRegenerating bond parameters.\n"); - AssignBondParams( set0.BP() ); - } - // Angle parameters - updateCount = UpdateParameters< ParmHolder<AngleParmType> >(set0.AP(), set1.AP(), "angle"); - if (updateCount > 0) { - mprintf("\tRegenerating angle parameters.\n"); - AssignAngleParams( set0.AP() ); - } - // Dihedral parameters - updateCount = UpdateParameters< DihedralParmHolder >(set0.DP(), set1.DP(), "dihedral"); - if (updateCount > 0) { - mprintf("\tRegenerating dihedral parameters.\n"); - AssignDihedralParams( set0.DP() ); - } - // Urey-Bradley - updateCount = UpdateParameters< ParmHolder<BondParmType> >(set0.UB(), set1.UB(), "Urey-Bradley"); - if (updateCount > 0) { - mprintf("\tRegenerating UB parameters.\n"); - AssignUBParams( set0.UB() ); - } - // Improper parameters - updateCount = UpdateParameters< ParmHolder<DihedralParmType> >(set0.IP(), set1.IP(), "improper"); - if (updateCount > 0) { - mprintf("\tRegenerating improper parameters.\n"); - AssignImproperParams( set0.IP() ); - } - // Atom types - updateCount = UpdateParameters< ParmHolder<AtomType> >(set0.AT(), set1.AT(), "atom type"); - updateCount += UpdateParameters< ParmHolder<NonbondType> >(set0.NB(), set1.NB(), "LJ A-B"); - if (updateCount > 0) { - mprintf("\tRegenerating nonbond parameters.\n"); - AssignNonbondParams( set0.AT(), set0.NB() ); - } - - if (debug_ > 0) set0.Debug("newp.dat"); - return 0; -} diff --git a/src/Topology.h b/src/Topology.h index b13a9d0e92..2b0baae8b6 100644 --- a/src/Topology.h +++ b/src/Topology.h @@ -1,15 +1,15 @@ #ifndef INC_TOPOLOGY_H #define INC_TOPOLOGY_H #include <string> -#include <set> // BP_mapType +#include <set> // AtomDistance #include "Atom.h" #include "Residue.h" #include "Molecule.h" #include "ParameterTypes.h" -#include "ParameterSet.h" #include "Frame.h" #include "FileName.h" #include "Range.h" +#include "ModXNA_Info.h" class AtomMask; class CharMask; /// Hold information for all atoms @@ -23,10 +23,12 @@ class Topology { void SetIpol(int iIn) { ipol_ = iIn; } void SetPindex(int pIn) { pindex_ = pIn; } void SetGBradiiSet(std::string const& s) { radius_set_ = s; } + void CopyTopMetadata(Topology const&); + void SetParmTitle(std::string const&); void SetParmName(std::string const&, FileName const&); void SetDistMaskRef( Frame const& ); - /// Set value of NATYP from Amber Topology. Only needed for Amber. - void SetNatyp(int n) { n_atom_types_ = n; } + /// Add forcefield description + void AddDescription(std::string const& s) { ff_desc_.push_back( s ); } // ----- Return internal variables ----------- int Ipol() const { return ipol_; } int Pindex() const { return pindex_; } @@ -35,7 +37,9 @@ class Topology { int Nmol() const { return (int)molecules_.size(); } int Nsolvent() const { return NsolventMolecules_; } int NextraPts() const { return n_extra_pts_; } - inline int NatomTypes() const { return n_atom_types_; } + /// \return Strings describing forcefield + std::vector<std::string> const& Description() const { return ff_desc_; } + std::string const& ParmName() const { return parmName_; } FileName const& OriginalFilename() const { return fileName_; } std::string const& GBradiiSet() const { return radius_set_; } @@ -46,6 +50,7 @@ class Topology { atom_iterator end() const { return atoms_.end(); } const Atom &operator[](int idx) const { return atoms_[idx]; } std::vector<Atom> const& Atoms() const { return atoms_; } + std::vector<Atom>& ModifyAtoms() { return atoms_; } Atom& SetAtom(int idx) { return atoms_[idx]; } /// \return Count of "heavy" atoms (non-hydrogen, non-extra point) unsigned int HeavyAtomCount() const; @@ -62,6 +67,9 @@ class Topology { void AddTreeChainClassification(NameType const& n) { tree_.push_back(n); } void AddJoinArray(int j) { ijoin_.push_back(j); } void AddRotateArray(int r) { irotat_.push_back(r); } + std::vector<NameType>& ModifyTreeChainClassification() { return tree_; } + std::vector<int>& ModifyJoinArray() { return ijoin_; } + std::vector<int>& ModifyRotateArray() { return irotat_; } // ----- PDB info ---------------------------- /// Reset all PDB-related info void ResetPDBinfo(); @@ -81,6 +89,10 @@ class Topology { void AddOccupancy(float o) { occupancy_.push_back( o ); } void AddBfactor(float b) { bfactor_.push_back( b ); } void AddPdbSerialNum(int i) { pdbSerialNum_.push_back( i ); } + std::vector<char>& ModifyAtomAltLoc() { return atom_altloc_; } + std::vector<float>& ModifyOccupancy() { return occupancy_; } + std::vector<float>& ModifyBfactor() { return bfactor_; } + std::vector<int>& ModifyPdbSerialNum() { return pdbSerialNum_; } /// Set list of missing residues and residues missing heteroatoms void SetMissingResInfo(std::vector<Residue> const&, std::vector<Residue> const&); /// \return list of completely missing residues @@ -93,6 +105,7 @@ class Topology { inline res_iterator ResEnd() const { return residues_.end(); } const Residue& Res(int idx) const { return residues_[idx]; } Residue& SetRes(int idx) { return residues_[idx]; } + std::vector<Residue> const& Residues() const { return residues_; } Range SoluteResidues() const; /// Merge residues in given range int MergeResidues(int, int); @@ -101,54 +114,70 @@ class Topology { inline mol_iterator MolStart() const { return molecules_.begin(); } inline mol_iterator MolEnd() const { return molecules_.end(); } const Molecule& Mol(int idx) const { return molecules_[idx]; } + /// \return Array containing solvent molecule numbers + std::vector<int> SolventMolNums() const; /// \return number of residues in the specified molecule. int NresInMol(int) const; /// Determine molecules based on bond information int DetermineMolecules(); /// Designate all atoms as part of a single molecule. int SetSingleMolecule(); + /// \return True if molecules with non-contiguous residues are present + bool HasNoncontiguousMols() const { return hasNonContiguousMols_; } // ----- Bond-specific routines -------------- size_t Nbonds() const { return bonds_.size()+bondsh_.size(); } BondArray const& Bonds() const { return bonds_; } BondArray const& BondsH() const { return bondsh_; } BondParmArray const& BondParm() const { return bondparm_; } BondParmType& SetBondParm(int i) { return bondparm_[i]; } + BondArray& ModifyBonds() { return bonds_; } + BondArray& ModifyBondsH() { return bondsh_; } + BondParmArray& ModifyBondParm() { return bondparm_; } void AddBondParm(BondParmType const& b) { bondparm_.push_back( b ); } void AddBond(int i, int j) { AddBond(i, j, -1); } void AddBond(int, int, int); void AddBond(BondType const&, bool); void AddBond(int, int, BondParmType const&); int RemoveBond(int, int); - void AssignBondParams(ParmHolder<BondParmType> const&); + /// Clear bond arrays but not atom connectivity + void ClearBondArrays(); // ----- Angle-specific routines ------------- size_t Nangles() const { return angles_.size()+anglesh_.size(); } AngleArray const& Angles() const { return angles_; } AngleArray const& AnglesH() const { return anglesh_; } AngleParmArray const& AngleParm() const { return angleparm_; } AngleParmType& SetAngleParm(int i) { return angleparm_[i]; } + AngleArray& ModifyAngles() { return angles_; } + AngleArray& ModifyAnglesH() { return anglesh_; } + AngleParmArray& ModifyAngleParm() { return angleparm_; } void AddAngle(int i, int j, int k) { AddAngle(i, j, k, -1); } void AddAngle(int, int, int, int); void AddAngle(AngleType const&, bool); - void AddAngle(int, int, int, AngleParmType const&); - void AssignAngleParams(ParmHolder<AngleParmType> const&); + void AddAngle(int, int, int, AngleParmType const&); // ----- Dihedral-specific routines ---------- size_t Ndihedrals() const { return dihedrals_.size()+dihedralsh_.size(); } DihedralArray const& Dihedrals() const { return dihedrals_; } DihedralArray const& DihedralsH() const { return dihedralsh_; } DihedralParmArray const& DihedralParm() const { return dihedralparm_; } DihedralParmType& SetDihedralParm(int i) { return dihedralparm_[i]; } + DihedralArray& ModifyDihedrals() { return dihedrals_; } + DihedralArray& ModifyDihedralsH() { return dihedralsh_; } + DihedralParmArray& ModifyDihedralParm() { return dihedralparm_; } void AddDihedral(DihedralType const& d) { AddDihedral(d, -1); } void AddDihedral(DihedralType const&, int); void AddDihedral(int i, int j, int k, int l) { AddDihedral(DihedralType(i,j,k,l,-1), -1); } void AddDihedral(DihedralType const&, bool); void AddDihedral(DihedralType const&, DihedralParmType const&); - void AssignImproperParams(ParmHolder<DihedralParmType> const&); - void AssignDihedralParams(DihedralParmHolder const&); + /// \return Index of existing/added dihedral parameter in given array + static int addTorsionParm(DihedralParmArray&, DihedralParmType const&); + // ----- CMAP-specific routines -------------- bool HasCmap() const { return !cmapGrid_.empty(); } CmapGridArray const& CmapGrid() const { return cmapGrid_; } CmapArray const& Cmap() const { return cmap_; } CmapGridType& SetCmapGrid(int idx) { return cmapGrid_[idx];} + CmapGridArray& ModifyCmapGrid() { return cmapGrid_; } + CmapArray& ModifyCmap() { return cmap_; } void AddCmapGrid(CmapGridType const& g) { cmapGrid_.push_back(g); } void AddCmapTerm(CmapType const& c) { cmap_.push_back(c); } // ----- Non-bond routines ------------------- @@ -159,9 +188,12 @@ class Topology { double GetVDWdepth(int) const; /// \return Lennard-Jones 6-12 parameters for given pair of atoms inline NonbondType const& GetLJparam(int, int) const; - void AssignNonbondParams(ParmHolder<AtomType> const&, ParmHolder<NonbondType> const&); + /// \return Lennard-Jones 6-12 parameters for given pair of atoms, set the LJC parameter + inline NonbondType const& GetLJCparam(double&, int, int) const; /// \return True if any charge is non-zero bool HasChargeInfo() const; + /// \return Total charge + double TotalCharge() const; /// Redistribute charge on atoms in topology to match target total charge int RedistributeCharge(double); // ----- Water Cap Info ---------------------- @@ -171,12 +203,52 @@ class Topology { LES_ParmType const& LES() const { return lesparm_; } LES_ParmType& SetLES() { return lesparm_; } // ----- CHAMBER info ------------------------ - ChamberParmType const& Chamber() const { return chamber_; } - ChamberParmType& SetChamber() { return chamber_; } + /// \return true if any CHARMM parameters are set (based on indices). + bool HasChamber() const; + + /// Reserve space for future UB terms + void ReserveUBterms(unsigned int n) { ub_.reserve( n ); } + /// Resize for given number of UB parameters + void ResizeUBparm(unsigned int n) { ubparm_.resize( n ); } + /// Add a Urey-Bradley term + void AddUBterm(BondType const& bnd) { ub_.push_back( bnd ); } + /// Set specified Urey-Bradley parameter + BondParmType& SetUBparm(unsigned int idx) { return ubparm_[idx]; } + /// \return Array of Urey-Bradley terms + BondArray const& UB() const { return ub_; } + /// \return Array of Urey-Bradley parameters + BondParmArray const& UBparm() const { return ubparm_; } + /// \return Modifiable array of UB terms + BondArray& ModifyUB() { return ub_; } + /// \return Modifiable array of UB parameters + BondParmArray& ModifyUBparm() { return ubparm_; } + + /// Reserve space for future improper terms + void ReserveImproperTerms(unsigned int n) { impropers_.reserve( n ); } + /// Resize for given number of improper parameters + void ResizeImproperParm(unsigned int n) { improperparm_.resize( n ); } + /// \return Modifiable improper array + DihedralArray& ModifyImpropers() { return impropers_; } + /// \return Modifiable improper parm array + DihedralParmArray& ModifyImproperParm() { return improperparm_; } + /// Add improper term + void AddImproperTerm(DihedralType const& dih) { impropers_.push_back( dih ); } + /// Set specified improper parameter + DihedralParmType& SetImproperParm(unsigned int i) { return improperparm_[i]; } + /// \return Array of impropers + DihedralArray const& Impropers() const { return impropers_; } + /// \return Array of improper parameters + DihedralParmArray const& ImproperParm() const { return improperparm_; } + + void AddCharmmImproper(DihedralType const&, DihedralParmType const&); void AddCharmmImproper(DihedralType const&, int); void AddCharmmImproper(DihedralType const& i) { AddCharmmImproper(i, -1); } - void AssignUBParams(ParmHolder<BondParmType> const&); + // ----- ModXNA ------------------------------ + /// Set modxna info + void SetModxna(ModXNA_Info const& m) { modxna_ = m; } + /// \return modxna info + ModXNA_Info const& Modxna() const { return modxna_; } // ----- Misc routines ----------------------- /// Format: <res name>_<res num>@<atom name> std::string TruncResAtomName(int) const; @@ -190,18 +262,19 @@ class Topology { std::string AtomMaskName(int) const; /// Format: <atom name>_<atom num> std::string TruncAtomNameNum(int) const; + /// LEaP Format: R<res #>.A<at #> + std::string LeapName(int) const; /// Format: <res name>:<res num> std::string TruncResNameNum(int) const; /// Format: <res name>_<onum>[_<id>] std::string TruncResNameOnumId(int) const; + /// Format: <res name>_<onum>[_<id>]@<atom name> + std::string TruncAtomResNameOnumId(int) const; /// \return index of atom with given name in specified residue. int FindAtomInResidue(int, NameType const&) const; /// Mark all molecules matching given mask expression as solvent. int SetSolvent(std::string const&); - /// \return ParameterSet for this Topology - ParameterSet GetParameters() const; - /// Update parameters in this Topology with those in given set. - int UpdateParams(ParameterSet const&); + // ----- Print topology info ----------------- void Summary() const; void Brief(const char*) const; @@ -210,16 +283,23 @@ class Topology { void SetParmBox( Box const& bIn ) { parmBox_ = bIn; } void SetBoxFromTraj(Box const&); // ----- Setup routines ---------------------- + /// Add an atom to the topology inside given residue int AddTopAtom(Atom const&, Residue const&); + /// Add specified residues from given topology; optionally make them solvent + int AddResidues(Topology const&, std::vector<int> const&, Frame&, Frame const&, bool); + /// Add an atom to the topology inside given residue and molecule number + int addTopAtom(Atom const&, Residue const&, unsigned int, bool); //void StartNewMol(); /// Perform common final setup: optional molecule determination, renumber residues by molecules int CommonSetup(bool, bool); - /// Perform common final setup with molecule determination on, renumber residues off. + /// Perform common final setup with molecule determination on, renumber residues off int CommonSetup() { return CommonSetup(true, false); } /// Set up with no residue info TODO deprecate in favor of routine in CommonSetup? int Setup_NoResInfo(); /// Resize for given numbers of atoms/residues etc. Clears any existing data. void Resize(Pointers const&); + /// Count the number of extra points in the Topology TODO just have it a part of AddTopAtom + void DetermineNumExtraPoints(); // ----- Mask Routines ----------------------- int SetupIntegerMask(AtomMask &) const; int SetupCharMask(CharMask &) const; @@ -245,19 +325,22 @@ class Topology { Topology* ModifyByMap(std::vector<int> const& m) const { return ModifyByMap(m, true); } + /// Append topology to this one. Takes verbosity, reduce bond params, reduce angle params + int AppendTop(Topology const&, int, bool, bool); + /// Append topology to this one. No verbosity, no reduce bond/angle params. PYTRAJ relies on this. + int AppendTop(Topology const&); /// Split selected atoms in a residue into a new residue, populate the atom map int SplitResidue(AtomMask const&, NameType const&, std::vector<int>&); /// Split selected atoms in a residue into a new residue int SplitResidue(AtomMask const&, NameType const&); - /// Append topology to this one. - int AppendTop( Topology const& ); + private: - void SetAtomBondInfo(BondArray const&); - // NOTE: Use set so that elements are always sorted. - typedef std::vector< std::set<Atom::AtomicElementType> > BP_mapType; - void AddBondParam(BondType&, BP_mapType&); - void AssignBondParameters(); - static inline int AddTorsionParm(DihedralParmArray&, DihedralParmType const&); + typedef std::vector<std::string> Sarray; + + /// \return Index of existing/added bond parameter in given array + static inline int addBondParm(BondParmArray&, BondParmType const&); + /// \return Index of existing/added angle parameter in given array + static inline int addAngleParm(AngleParmArray&, AngleParmType const&); bool CheckTorsionRange(DihedralType const& dihIn, const char*) const; static inline DihedralType SetTorsionParmIndex(DihedralType const&, DihedralParmArray const&, @@ -269,7 +352,6 @@ class Topology { int NonrecursiveMolSearch(); void ClearMolecules(); void AtomDistance(int, int, int, std::set<int>&, int) const; - void DetermineNumExtraPoints(); int SetSolventInfo(); int scale_dihedral_K(DihedralArray&, CharMask const&, double, bool); @@ -285,14 +367,6 @@ class Topology { void StripDihedralParmArray(DihedralArray&, std::vector<int>&, DihedralParmArray&) const; void StripDihedralParmArray(DihedralArray&, std::vector<int>&, DihedralParmArray&, DihedralParmArray const&) const; - inline void AddBondArray(BondArray const&, BondParmArray const&, int); - inline void AddAngleArray(AngleArray const&, AngleParmArray const&, int); - inline void AddDihArray(DihedralArray const&, DihedralParmArray const&, int); - - void AssignBondParm(ParmHolder<BondParmType> const&, ParmHolder<int>&, BondArray&, BondParmArray&, const char*); - void AssignAngleParm(ParmHolder<AngleParmType> const&, ParmHolder<int>&, AngleArray&); - void AssignImproperParm(ParmHolder<DihedralParmType> const&, ParmHolder<int>&, DihedralArray&); - void AssignDihedralParm(DihedralParmHolder const&, DihedralArray&); static const NonbondType LJ_EMPTY; std::vector<Atom> atoms_; @@ -318,7 +392,12 @@ class Topology { // Amber-only parameters CapParmType cap_; ///< Water cap information LES_ParmType lesparm_; ///< LES parameters - ChamberParmType chamber_; ///< CHAMBER parameters + // Charmm parameters + Sarray ff_desc_; ///< Force field descriptions + BondArray ub_; ///< Urey-Bradley terms + BondParmArray ubparm_; ///< Urey-Bradley parameters + DihedralArray impropers_; ///< Improper terms + DihedralParmArray improperparm_; ///< Improper parameters // "Extra" Amber atom info std::vector<NameType> tree_; ///< Amber TREE_CHAIN_CLASSIFICATION array std::vector<int> ijoin_; ///< Amber JOIN_ARRAY array @@ -331,15 +410,17 @@ class Topology { std::vector<Residue> missingRes_; ///< List of residues missing from PDB std::vector<Residue> missingHet_; ///< List of residues missing heteroatoms in PDB + ModXNA_Info modxna_; + Box parmBox_; Frame refCoords_; ///< Internal reference coords for distance-based masks int debug_; - int ipol_; ///< 0 if fixed charge, 1 if polarizable - int NsolventMolecules_; ///< Number of molecules marked SOLVENT - int pindex_; ///< Internal index used to ID Topology - int n_extra_pts_; ///< Number of extra points. - int n_atom_types_; ///< Number of unique atom types. + int ipol_; ///< 0 if fixed charge, 1 if polarizable + int NsolventMolecules_; ///< Number of molecules marked SOLVENT + int pindex_; ///< Internal index used to ID Topology + int n_extra_pts_; ///< Number of extra points. + bool hasNonContiguousMols_; ///< Set to true during DetermineMolecules() if there are molecules with non-contiguous residues }; // ----- INLINE FUNCTIONS ------------------------------------------------------ NonbondType const& Topology::GetLJparam(int a1, int a2) const { @@ -348,6 +429,16 @@ NonbondType const& Topology::GetLJparam(int a1, int a2) const { return LJ_EMPTY; return nonbond_.NBarray( nbindex ); } +NonbondType const& Topology::GetLJCparam(double& LJC, int a1, int a2) const { + int nbindex = nonbond_.GetLJindex( atoms_[a1].TypeIndex(), atoms_[a2].TypeIndex() ); + if (nbindex < 0) // Means Amber Hbond, return A = B = 0.0 + return LJ_EMPTY; + if (nonbond_.Has_C_Coeff()) + LJC = nonbond_.LJC_Array(nbindex); + else + LJC = 0; + return nonbond_.NBarray( nbindex ); +} // ----------------------------------------------------------------------------- class Topology::Pointers { public: diff --git a/src/TorsionRoutines.cpp b/src/TorsionRoutines.cpp index 1abe27a97e..87fbe21d23 100644 --- a/src/TorsionRoutines.cpp +++ b/src/TorsionRoutines.cpp @@ -1,6 +1,7 @@ /*! \file TorsionRoutines.cpp \brief Routines used to calculate torsions and angles. */ +#include <algorithm> #include <cmath> #include "TorsionRoutines.h" #include "Constants.h" // PI, TWOPI @@ -40,6 +41,93 @@ double Torsion(const double *a1, const double *a2, const double *a3, const doubl return angle; } +/** Calculate the torsion and partial derivative. + * From Tom Darden's generic torsion code in AM_VAL_GEOM_torsion in + * amoeba_valence.f. + * Adapted to C++ by DRR - any mistakes are mine! + */ +void Torsion_and_part_deriv(const double* XA, const double* XB, const double* XC, const double* XD, + Vec3& dA, Vec3& dB, Vec3& dC, Vec3& dD, + double& cosphi, double& sinphi) +{ + Vec3 rab( XA[0] - XB[0], + XA[1] - XB[1], + XA[2] - XB[2] ); + Vec3 rcb( XC[0] - XB[0], + XC[1] - XB[1], + XC[2] - XB[2] ); + Vec3 rdc( XD[0] - XC[0], + XD[1] - XC[1], + XD[2] - XC[2] ); + + double onesizcb = 1.0/sqrt(rcb[0]*rcb[0]+rcb[1]*rcb[1]+rcb[2]*rcb[2]); + Vec3 ucb = rcb*onesizcb; + double dotp_ab_cb = rab[0]*ucb[0]+rab[1]*ucb[1]+rab[2]*ucb[2]; + // upab is unit vector along component rab perp to ucb + double dot = rab[0]*ucb[0]+rab[1]*ucb[1]+rab[2]*ucb[2]; + Vec3 upab = rab - ucb*dot; //dot*ucb; + double onesizpab = 1.0/sqrt(upab[0]*upab[0]+upab[1]*upab[1]+upab[2]*upab[2]); + upab = upab * onesizpab; + double dotp_dc_cb = rdc[0]*ucb[0]+rdc[1]*ucb[1]+rdc[2]*ucb[2]; + // updc is unit vector along component rdc perp to ucb + dot = rdc[0]*ucb[0]+rdc[1]*ucb[1]+rdc[2]*ucb[2]; + Vec3 updc = rdc - ucb*dot; //dot*ucb; + double onesizpdc = 1.0/sqrt(updc[0]*updc[0]+updc[1]*updc[1]+updc[2]*updc[2]); + updc = updc * onesizpdc; + // cosine of phi is given by dot product of upab and updc + + // cosphi must be returned in the range -1.d0 to 1.d0 + // small rounding issues in the 16th decimal place of the + // folloing sum can cause this value to lie outside of this range + // by 1E-16 when: + // upab[0] = updc[0] and upab[1] = updc[1] and upab[2] = updc[2] + + double cosphi_pre = upab[0]*updc[0]+upab[1]*updc[1]+upab[2]*updc[2]; + cosphi = std::min( std::max(cosphi_pre, -1.0), 1.0); + + // sine of phi is given by dot product of ucb and upab x updc + Vec3 rcross(upab[1]*updc[2] - upab[2]*updc[1], + upab[2]*updc[0] - upab[0]*updc[2], + upab[0]*updc[1] - upab[1]*updc[0]); + + //See note above of cosphi_pre + double sinphi_pre = rcross[0]*ucb[0]+rcross[1]*ucb[1]+rcross[2]*ucb[2]; + sinphi = std::min( std::max(sinphi_pre, -1.0), 1.0); + + // gradient of phi wrt ra is perp to abc plane---movement of ra by dr perp + // to abc plane results in dphi of dr/sizpab + // perp to abc given by upab x ucb (these are orthogonal unit vectors) + Vec3 upabc(upab[1]*ucb[2] - upab[2]*ucb[1], + upab[2]*ucb[0] - upab[0]*ucb[2], + upab[0]*ucb[1] - upab[1]*ucb[0]); + // grad of phi wrt rd is perp to bcd plane--calc sim to grad phi wrt ra + // perp given by updc x ucb or ucb x updc + Vec3 upbcd(ucb[1]*updc[2] - ucb[2]*updc[1], + ucb[2]*updc[0] - ucb[0]*updc[2], + ucb[0]*updc[1] - ucb[1]*updc[0]); + // now have enough for gradphi for a and d + dA = upabc * onesizpab; + dD = upbcd * onesizpdc; + //do m = 1,3 + // gradphi_abcd(m) = upabc(m) * onesizpab + // gradphi_abcd(9+m) = upbcd(m) * onesizpdc + //enddo + // following chap 5 of thesis of Bekker we have grad phi wrt b = -grad phi wrt a + // plus some vec S and rad phi wrt c = -grad phi wrt d - S + // S is perp to rcb; using simple torque rule and identity for + // triple cross product he derives S (eqn 5.20) + for (int m = 0; m < 3; m++) { + double vecS = (dotp_ab_cb*onesizcb)*dA[m] + (dotp_dc_cb*onesizcb)*dD[m]; + dB[m] = vecS - dA[m]; + dC[m] = -vecS - dD[m]; + } + //do m = 1,3 + // vecS(m) = (dotp_ab_cb*onesizcb)*gradphi_abcd(m) + (dotp_dc_cb*onesizcb)*gradphi_abcd(m+9) + // gradphi_abcd(m+3) = vecS(m) - gradphi_abcd(m) + // gradphi_abcd(m+6) = -vecS(m) - gradphi_abcd(m+9) + //enddo +} + /// Constant used in AS pucker calc static const double pi_over_5 = Constants::PI / 5.0; diff --git a/src/TorsionRoutines.h b/src/TorsionRoutines.h index 1cebe0e829..d9f86fe141 100644 --- a/src/TorsionRoutines.h +++ b/src/TorsionRoutines.h @@ -3,8 +3,12 @@ /*! \file TorsionRoutines.h \brief A collection of routines used to calculate angles and torsions */ +class Vec3; double Torsion(const double *, const double *, const double *, const double *); +void Torsion_and_part_deriv(const double*, const double*, const double*, const double*, + Vec3&, Vec3&, Vec3&, Vec3&, double&, double&); + double Pucker_AS(const double*, const double*, const double*, const double*, const double*, double&); double Pucker_CP(const double*, const double*, const double*, const double*, diff --git a/src/Traj_Mol2File.cpp b/src/Traj_Mol2File.cpp index 68a221d61f..98bfbffcd5 100644 --- a/src/Traj_Mol2File.cpp +++ b/src/Traj_Mol2File.cpp @@ -12,7 +12,8 @@ Traj_Mol2File::Traj_Mol2File() : currentSet_(0), hasCharges_(false), useSybylTypes_(false), - prependExt_(false) + prependExt_(false), + atomBondOrder_(false) {} bool Traj_Mol2File::ID_TrajFormat(CpptrajFile& fileIn) { @@ -92,12 +93,13 @@ int Traj_Mol2File::readFrame(int set, Frame& frameIn) { } void Traj_Mol2File::WriteHelp() { - mprintf("\tsingle : Write to a single file.\n" - "\tmulti : Write each frame to a separate file.\n" - "\tsybyltype: Convert Amber atom types (if present) to SYBYL types.\n" - "\tsybylatom: Amber to SYBYL atom type corresponding file (optional).\n" - "\tsybylbond: Amber to SYBYL bond type corresponding file (optional).\n" - "\tkeepext : Keep filename extension; write '<name>.<num>.<ext>' instead (implies 'multi').\n"); + mprintf("\tsingle : Write to a single file.\n" + "\tmulti : Write each frame to a separate file.\n" + "\tsybyltype : Convert Amber atom types (if present) to SYBYL types.\n" + "\tsybylatom : Amber to SYBYL atom type corresponding file (optional).\n" + "\tsybylbond : Amber to SYBYL bond type corresponding file (optional).\n" + "\tkeepext : Keep filename extension; write '<name>.<num>.<ext>' instead (implies 'multi').\n" + "\tatombondorder : Sort bonds by first atom index.\n"); } // Traj_Mol2File::processWriteArgs() @@ -112,6 +114,7 @@ int Traj_Mol2File::processWriteArgs(ArgList& argIn, DataSetList const& DSLin) { useSybylTypes_ = true; prependExt_ = argIn.hasKey("keepext"); // Implies MULTI if (prependExt_) mol2WriteMode_ = MULTI; + atomBondOrder_ = argIn.hasKey("atombondorder"); return 0; } @@ -235,16 +238,30 @@ int Traj_Mol2File::writeFrame(int set, Frame const& frameOut) { if (file_.Mol2Nbonds() > 0) { file_.WriteHeader(Mol2File::BOND); int bondnum = 1; - for (BondArray::const_iterator bidx = mol2Top_->Bonds().begin(); - bidx != mol2Top_->Bonds().end(); ++bidx) - file_.WriteMol2Bond(bondnum++, bidx->A1()+1, bidx->A2()+1, - (*mol2Top_)[bidx->A1()].Type(), - (*mol2Top_)[bidx->A2()].Type()); - for (BondArray::const_iterator bidx = mol2Top_->BondsH().begin(); - bidx != mol2Top_->BondsH().end(); ++bidx) - file_.WriteMol2Bond(bondnum++, bidx->A1()+1, bidx->A2()+1, - (*mol2Top_)[bidx->A1()].Type(), - (*mol2Top_)[bidx->A2()].Type()); + if (atomBondOrder_) { + // Use atom array + for (Topology::atom_iterator atom = mol2Top_->begin(); atom != mol2Top_->end(); ++atom) { + atnum = atom - mol2Top_->begin(); + for (Atom::bond_iterator bit = atom->bondbegin(); bit != atom->bondend(); ++bit) { + if (*bit > atnum) + file_.WriteMol2Bond(bondnum++, (atnum + 1), (*bit + 1), + (*mol2Top_)[atnum].Type(), + (*mol2Top_)[*bit ].Type()); + } + } + } else { + // Use bond arrays + for (BondArray::const_iterator bidx = mol2Top_->Bonds().begin(); + bidx != mol2Top_->Bonds().end(); ++bidx) + file_.WriteMol2Bond(bondnum++, bidx->A1()+1, bidx->A2()+1, + (*mol2Top_)[bidx->A1()].Type(), + (*mol2Top_)[bidx->A2()].Type()); + for (BondArray::const_iterator bidx = mol2Top_->BondsH().begin(); + bidx != mol2Top_->BondsH().end(); ++bidx) + file_.WriteMol2Bond(bondnum++, bidx->A1()+1, bidx->A2()+1, + (*mol2Top_)[bidx->A1()].Type(), + (*mol2Top_)[bidx->A2()].Type()); + } } //@<TRIPOS>SUBSTRUCTURE section file_.WriteHeader(Mol2File::SUBSTRUCT); diff --git a/src/Traj_Mol2File.h b/src/Traj_Mol2File.h index 1390bc2152..1d7033922a 100644 --- a/src/Traj_Mol2File.h +++ b/src/Traj_Mol2File.h @@ -46,6 +46,7 @@ class Traj_Mol2File : public TrajectoryIO { bool hasCharges_; bool useSybylTypes_; bool prependExt_; + bool atomBondOrder_; Mol2File file_; }; #endif diff --git a/src/TypeNameHolder.h b/src/TypeNameHolder.h index be362f7c90..5f1c8a7a61 100644 --- a/src/TypeNameHolder.h +++ b/src/TypeNameHolder.h @@ -1,21 +1,28 @@ #ifndef INC_TYPENAMEHOLDER_H #define INC_TYPENAMEHOLDER_H +#include <vector> #include <cstddef> // size_t #include "NameType.h" /// Used to hold one or more atom type names. class TypeNameHolder { + // Swap NameTypes + static inline void tswap(NameType& n0, NameType& n1) { + NameType tmp = n1; + n1 = n0; + n0 = tmp; + } public: typedef std::vector<NameType> Narray; typedef Narray::const_iterator const_iterator; TypeNameHolder() {} /// CONSTRUCTOR - Take single atom type name - TypeNameHolder(NameType const& nameIn) : types_(1, nameIn) {} + TypeNameHolder(NameType const& nameIn) : types_(1, nameIn), is_swapped_(false) {} /// CONSTRUCTOR - Take array of atom type names - TypeNameHolder(Narray const& namesIn) : types_(namesIn) {} + TypeNameHolder(Narray const& namesIn) : types_(namesIn), is_swapped_(false) {} /// CONSTRUCTOR - Reserve space for given number of type names - TypeNameHolder(int size) { types_.clear(); types_.reserve(size); } - /// CONSTRUCTOR - Set wildcard name and reserve space for given number of type names. - TypeNameHolder(int size, NameType const& wc) : wildcard_(wc) { types_.clear(); types_.reserve(size); } + TypeNameHolder(int size) : is_swapped_(false) { types_.clear(); types_.reserve(size); } +/* /// CONSTRUCTOR - Set wildcard name and reserve space for given number of type names. + TypeNameHolder(int size, NameType const& wc) : wildcard_(wc) { types_.clear(); types_.reserve(size); }*/ /// Add atom type name. void AddName(NameType const& n) { types_.push_back( n ); } /// \return Iterator to beginning of type name array. @@ -26,7 +33,54 @@ class TypeNameHolder { size_t Size() const { return types_.size(); } /// \return Type name at index NameType const& operator[](int idx) const { return types_[idx]; } + /// \return true if either direction is an exact match, no wildcard. + bool Match_NoWC(TypeNameHolder const& rhs) const { + if (types_.size() != rhs.types_.size()) return false; + // Forwards direction + bool match = true; + for (unsigned int idx = 0; idx != types_.size(); idx++) + if (types_[idx] != rhs.types_[idx]) { + match = false; + break; + } + if (match) return true; + // Reverse direction + match = true; + unsigned int idx2 = types_.size() - 1; + for (unsigned int idx = 0; idx != types_.size(); idx++, idx2--) + if (types_[idx] != rhs.types_[idx2]) { + match = false; + break; + } + return match; + } + /// \return true if either direction is an exact match, no wildcard. + bool operator==(TypeNameHolder const& rhs) const { return Match_NoWC(rhs); } + /// \return true if neither direction is an exact match. + bool operator!=(TypeNameHolder const& rhs) const { return !Match_NoWC(rhs); } /// \return true if either direction is a match, taking into account wildcard. + bool Match_WC(TypeNameHolder const& rhs, NameType const& wildcard) const { + // Sanity check + if (types_.size() != rhs.types_.size()) return false; + // Forwards direction + bool match = true; + for (unsigned int idx = 0; idx != types_.size(); idx++) + if (types_[idx] != rhs.types_[idx] && types_[idx] != wildcard) { + match = false; + break; + } + if (match) return true; + // Reverse direction + match = true; + unsigned int idx2 = types_.size() - 1; + for (unsigned int idx = 0; idx != types_.size(); idx++, idx2--) + if (types_[idx] != rhs.types_[idx2] && types_[idx] != wildcard) { + match = false; + break; + } + return match; + } +/* /// \return true if either direction is a match, taking into account wildcard. bool operator==(TypeNameHolder const& rhs) const { // Sanity check if (types_.size() != rhs.types_.size()) return false; @@ -47,7 +101,7 @@ class TypeNameHolder { break; } return match; - } + }*/ /// Will sort by type names in ascending order. bool operator<(TypeNameHolder const& rhs) const { if (types_.size() != rhs.types_.size()) { @@ -67,10 +121,87 @@ class TypeNameHolder { tstr.append( " " + std::string( *(*it) ) ); return tstr; } + /// \return string containing a description and atom type names + std::string TypeNameStr(std::string const& desc) const { + std::string OUT(desc); + switch (Size()) { + case 1 : OUT.append(" type " + types_[0].Truncated()); break; + case 2 : OUT.append(" type " + types_[0].Truncated() + " - " + types_[1].Truncated()); break; + case 3 : OUT.append(" type " + types_[0].Truncated() + " - " + types_[1].Truncated() + " - " + types_[2].Truncated()); break; + case 4 : OUT.append(" type " + types_[0].Truncated() + " - " + types_[1].Truncated() + " - " + types_[2].Truncated() + " - " + types_[3].Truncated()); break; + default: OUT.append(" type " + TypeString()); + } + return OUT; + } + /// Sort typenames so that the first typename < the last + void SortNames(NameType const& wc) { + if (types_.size() < 2) return; + unsigned int last = types_.size() - 1; + // Replace wildcards with spaces so they appear first + if (wc.len() > 0) { + if (types_[0] == wc) types_[0] = NameType(" "); + if (types_[last] == wc) types_[last] = NameType(" "); + } + if (types_[0] > types_[last]) { + // Need to swap TODO record if we swapped these names? + is_swapped_ = true; + if (types_.size() < 4) + tswap(types_[0], types_[last]); + else { + unsigned int half = types_.size() / 2; + unsigned int jj = last; + for (unsigned int ii = 0; ii < half; ii++, jj--) + tswap(types_[ii], types_[jj]); + } + } else + is_swapped_ = false; + // Restore wildcards + if (wc.len() > 0) { + if (types_[0] == " ") types_[0] = wc; + if (types_[last] == " ") types_[last] = wc; + } + } + /// Sort typenames so that the first typename < the last, no wildcard + void SortNames() { + if (types_.size() < 2) return; + unsigned int last = types_.size() - 1; + if (types_[0] > types_[last]) { + // Need to swap TODO record if we swapped these names? + if (types_.size() < 4) + tswap(types_[0], types_[last]); + else { + unsigned int half = types_.size() / 2; + unsigned int jj = last; + for (unsigned int ii = 0; ii < half; ii++, jj--) + tswap(types_[ii], types_[jj]); + } + } + } + /// Sort typenames alphabetically, preserving the 3rd position (for impropers) + void SortImproperByAlpha(NameType const& wc) { + if (types_.size() != 4) return; + if (wc.len() > 0) { + // Replace wildcards with spaces so they appear first + if (types_[0] == wc) types_[0] = NameType(" "); + if (types_[1] == wc) types_[1] = NameType(" "); + if (types_[3] == wc) types_[3] = NameType(" "); + } + if (types_[0] > types_[1]) tswap(types_[0], types_[1]); + if (types_[1] > types_[3]) tswap(types_[1], types_[3]); + if (types_[0] > types_[1]) tswap(types_[0], types_[1]); + if (types_[1] > types_[3]) tswap(types_[1], types_[3]); + if (wc.len() > 0) { + // Restore wildcards + if (types_[0] == " ") types_[0] = wc; + if (types_[1] == " ") types_[1] = wc; + if (types_[3] == " ") types_[3] = wc; + } + } /// \return size in bytes - size_t DataSize() const { return (types_.size()*NameType::DataSize()) + NameType::DataSize(); } + size_t DataSize() const { return (types_.size()*NameType::DataSize()); } private: Narray types_; - NameType wildcard_; + //NameType wildcard_; + bool is_swapped_; }; #endif diff --git a/src/UpdateParameters.h b/src/UpdateParameters.h index 8d9240fc0f..51b35d073b 100644 --- a/src/UpdateParameters.h +++ b/src/UpdateParameters.h @@ -4,23 +4,25 @@ // classes, e.g. ParameterSet and/or Topology. Therefore there are // no 'include' statements or forward declares as it is assumed // those files have already been included prior to this one. -static inline void PrintParmType(BondParmType const& bp) { mprintf(" %12.4f %12.4f\n", bp.Rk(), bp.Req()); } -static inline void PrintParmType(AngleParmType const& ap) { mprintf(" %12.4f %12.4f\n", ap.Tk(), ap.Teq()*Constants::RADDEG); } -static inline void PrintParmType(DihedralParmType const& dp) { mprintf(" %12.4f %12.4f %12.4f\n", dp.Pk(), dp.Pn(), dp.Phase()*Constants::RADDEG); } +static inline void PrintParmType(BondParmType const& bp) { mprintf(" %12.4f %12.4f", bp.Rk(), bp.Req()); } +static inline void PrintParmType(AngleParmType const& ap) { mprintf(" %12.4f %12.4f", ap.Tk(), ap.Teq()*Constants::RADDEG); } +static inline void PrintParmType(DihedralParmType const& dp) { mprintf(" %12.4f %12.4f %12.4f", dp.Pk(), dp.Pn(), dp.Phase()*Constants::RADDEG); } static inline void PrintParmType(DihedralParmArray const& dpa) { mprintf("\n"); for (DihedralParmArray::const_iterator it = dpa.begin(); it != dpa.end(); ++it) mprintf("\t\t%12.4f %12.4f %12.4f\n", it->Pk(), it->Pn(), it->Phase()*Constants::RADDEG); } -static inline void PrintParmType(AtomType const& at) { mprintf(" %12.4f %12.4f %12.4f\n", at.LJ().Radius(), at.LJ().Depth(), at.Mass()); } -static inline void PrintParmType(NonbondType const& nb) { mprintf(" %12.4E %12.4E\n", nb.A(), nb.B()); } +static inline void PrintParmType(AtomType const& at) { mprintf(" R=%g Depth=%g Mass=%g", at.LJ().Radius(), at.LJ().Depth(), at.Mass()); } +static inline void PrintParmType(NonbondType const& nb) { mprintf(" %12.4E %12.4E", nb.A(), nb.B()); } +static inline void PrintParmType(HB_ParmType const& hb) { mprintf(" %12.4E %12.4E %12.4E", hb.Asol(), hb.Bsol(), hb.HBcut()); } /** Add update parameters. * \param0 Parameters to add to/update. * \param1 New parameters. * \param desc Description of parameters. + * \param verbose Verbosity: 0 - silent, 1 - updated only, 2 - updated & same, 3 - all */ -template <typename T> int UpdateParameters(T& param0, T const& param1, const char* desc) +template <typename T> int UpdateParameters(T& param0, T const& param1, const char* desc, int verbose) { // DEBUG // mprintf("DEBUG: Current %s Parameters:\n", desc); @@ -30,18 +32,33 @@ template <typename T> int UpdateParameters(T& param0, T const& param1, const cha int updateCount = 0; for (typename T::const_iterator newp = param1.begin(); newp != param1.end(); ++newp) { - ParameterHolders::RetType ret = param0.AddParm( newp->first, newp->second, true ); - if (ret != ParameterHolders::ERR) { - if (ret == ParameterHolders::ADDED) { - mprintf("\tAdded NEW %s parameter:", desc); + Cpptraj::Parm::RetType ret = param0.AddParm( newp->first, newp->second, true ); + if (ret != Cpptraj::Parm::ERR) { + bool print = false; + if (ret == Cpptraj::Parm::ADDED) { + if (verbose > 2) { mprintf("\tAdded NEW %s parameter:", desc); print = true; } updateCount++; - } else if (ret == ParameterHolders::UPDATED) { - mprintf("\tUpdated %s parameter:", desc); + } else if (ret == Cpptraj::Parm::UPDATED) { + if (verbose > 0) { mprintf("\tUpdated %s parameter:", desc); print = true; } updateCount++; - } else if (ret == ParameterHolders::SAME) - mprintf("\tParameter for %s already present:", desc); - mprintf(" %s", newp->first.TypeString().c_str()); - PrintParmType( newp->second ); + } else if (ret == Cpptraj::Parm::SAME) { + if (verbose > 1) { mprintf("\tParameter for %s already present:", desc); print = true; } + } + if (print) { + mprintf(" %s", newp->first.TypeString().c_str()); + //PrintParmType( newp->second ); + // NOTE: For AtomType its possible only a partial update occurred. + // Get the new parameter explicitly. + typename T::const_iterator newIt = param0.GetParam( newp->first ); + if (ret == Cpptraj::Parm::UPDATED) { + mprintf(" From"); + PrintParmType( param0.PreviousParm() ); + mprintf(" to"); + PrintParmType( newIt->second ); + } else + PrintParmType( newIt->second ); + mprintf("\n"); + } //mprintf(" %s %s %12.4f %12.4f\n", // *(newp->first[0]), *(newp->first[1]), newp->second.Rk(), newp->second.Req()); } diff --git a/src/Version.h b/src/Version.h index a8fc48117a..1fe64fc8a6 100644 --- a/src/Version.h +++ b/src/Version.h @@ -12,7 +12,7 @@ * Whenever a number that precedes <revision> is incremented, all subsequent * numbers should be reset to 0. */ -#define CPPTRAJ_INTERNAL_VERSION "V6.31.0" +#define CPPTRAJ_INTERNAL_VERSION "V7.00.0" /// PYTRAJ relies on this #define CPPTRAJ_VERSION_STRING CPPTRAJ_INTERNAL_VERSION #endif diff --git a/src/cpptraj.Doxyfile b/src/cpptraj.Doxyfile index add3c6ae5a..57f0a6de18 100644 --- a/src/cpptraj.Doxyfile +++ b/src/cpptraj.Doxyfile @@ -1,110 +1,150 @@ -# Doxyfile 1.8.1.1 +# Doxyfile 1.9.4 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # -# All text after a hash (#) is considered a comment and will be ignored. +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. # The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" "). +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables: +# doxygen -x_noenv [configFile] #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 -# The PROJECT_NAME tag is a single word (or sequence of words) that should -# identify the project. Note that if you do not use Doxywizard you need -# to put quotes around the project name if it contains spaces. +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. PROJECT_NAME = Cpptraj -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. -PROJECT_NUMBER = 13 +PROJECT_NUMBER = V6.30.1 # Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer -# a quick idea about the purpose of the project. Keep the description short. +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "Trajectory Analysis Written in C++" -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. PROJECT_LOGO = -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. OUTPUT_DIRECTORY = ../doc/ -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. +# The default value is: NO. CREATE_SUBDIRS = NO +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# numer of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. +# The default value is: English. OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. +# The default value is: YES. REPEAT_BRIEF = YES -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief +# doxygen will generate a detailed section even if there is only a brief # description. +# The default value is: NO. ALWAYS_DETAILED_SEC = NO @@ -112,578 +152,791 @@ ALWAYS_DETAILED_SEC = NO # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. +# The default value is: NO. INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. FULL_PATH_NAMES = YES -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. SHORT_NAMES = NO -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. JAVADOC_AUTOBRIEF = NO -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. QT_AUTOBRIEF = NO -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. SEPARATE_MEMBER_PAGES = NO -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 8 -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:^^" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) ALIASES = -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding -# "class=itcl::class" will allow you to use the command class in the -# itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + # Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this -# tag. The format is ext=language, where ext is a file extension, and language -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = -# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all -# comments according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you -# can mix doxygen, HTML, and XML commands with Markdown formatting. -# Disable only in case of backward compatibilities issues. +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. MARKDOWN_SUPPORT = YES +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. +# The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. +# The default value is: NO. CPP_CLI_SUPPORT = NO -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. SIP_SUPPORT = NO -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first +# tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. +# The default value is: NO. DISTRIBUTE_GROUP_DOC = NO -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. SUBGROUPING = YES -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and -# unions are shown inside the group in which they are included (e.g. using -# @ingroup) instead of on a separate page (for HTML and Man pages) or -# section (for LaTeX and RTF). +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. INLINE_GROUPED_CLASSES = NO -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and -# unions with only public data fields will be shown inline in the documentation -# of the scope in which they are defined (i.e. file, namespace, or group -# documentation), provided this scope is documented. If set to NO (the default), -# structs, classes, and unions are shown on a separate page (for HTML and Man -# pages) or section (for LaTeX and RTF). +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. INLINE_SIMPLE_STRUCTS = NO -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. TYPEDEF_HIDES_STRUCT = NO -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penalty. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will roughly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -SYMBOL_CACHE_SIZE = 0 - -# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be -# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given -# their name and scope. Since this can be an expensive process and often the -# same symbol appear multiple times in the code, doxygen keeps a cache of -# pre-resolved symbols. If the cache is too small doxygen will become slower. -# If the cache is too large, memory is wasted. The cache size is given by this -# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 +# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. EXTRACT_ALL = NO -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. EXTRACT_PRIVATE = YES -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation. +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. EXTRACT_PACKAGE = NO -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. EXTRACT_STATIC = YES -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. EXTRACT_ANON_NSPACES = NO -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the # documentation. +# The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. HIDE_IN_BODY_DOCS = NO -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# The default value is: system dependent. CASE_SENSE_NAMES = YES -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. HIDE_SCOPE_NAMES = NO -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. SHOW_INCLUDE_FILES = YES -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. FORCE_LOCAL_INCLUDES = NO -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. SORT_MEMBER_DOCS = YES -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. SORT_BRIEF_DOCS = NO -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. SORT_GROUP_NAMES = NO -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. SORT_BY_SCOPE_NAME = NO -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to -# do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. STRICT_PROTO_MATCHING = NO -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. GENERATE_TODOLIST = YES -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. GENERATE_TESTLIST = YES -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. GENERATE_BUGLIST = YES -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. GENERATE_DEPRECATEDLIST= YES -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if <section_label> ... \endif and \cond <section_label> +# ... \endcond blocks. ENABLED_SECTIONS = -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or macro consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. +# The default value is: YES. SHOW_USED_FILES = YES -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. SHOW_FILES = YES -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. -# This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via -# popen()) the command <command> <input-file>, where <command> is the value of -# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. LAYOUT_FILE = -# The CITE_BIB_FILES tag can be used to specify one or more bib files -# containing the references data. This must be a list of .bib files. The -# .bib extension is automatically appended if omitted. Using this command -# requires the bibtex tool to be installed. See also -# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style -# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this -# feature you need bibtex and perl available in the search path. +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- -# configuration options related to warning and progress messages +# Configuration options related to warning and progress messages #--------------------------------------------------------------------------- -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. WARNINGS = YES -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. WARN_IF_UNDOCUMENTED = YES -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. +# The default value is: YES. WARN_IF_DOC_ERROR = YES -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC +# The default value is: NO. WARN_NO_PARAMDOC = NO -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT +# The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). WARN_LOGFILE = #--------------------------------------------------------------------------- -# configuration options related to the input files +# Configuration options related to the input files #--------------------------------------------------------------------------- -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. -INPUT = +INPUT = . ./Cluster ./Energy ./Parm ./Structure # This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py -# *.f90 *.f *.for *.vhd *.vhdl +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. +# # Note that relative paths are relative to the directory from which doxygen is # run. @@ -692,14 +945,16 @@ EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. +# The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = @@ -707,756 +962,1254 @@ EXCLUDE_PATTERNS = # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test +# ANamespace::AClass, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. EXAMPLE_RECURSIVE = NO -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command <filter> <input-file>, where <filter> -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. -# If FILTER_PATTERNS is specified, this tag will be -# ignored. +# by executing (via popen()) the command: +# +# <filter> <input-file> +# +# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. -# Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. -# The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + #--------------------------------------------------------------------------- -# configuration options related to source browsing +# Configuration options related to source browsing #--------------------------------------------------------------------------- -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. SOURCE_BROWSER = NO -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C, C++ and Fortran comments will always remain visible. +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. STRIP_CODE_COMMENTS = YES -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. REFERENCED_BY_RELATION = NO -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. REFERENCES_RELATION = NO -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. -# Otherwise they will link to the documentation. +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. REFERENCES_LINK_SOURCE = YES -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. VERBATIM_HEADERS = YES +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS +# tag is set to YES then doxygen will add the directory of each input to the +# include path. +# The default value is: YES. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_ADD_INC_PATHS = YES + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + #--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index +# Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. ALPHABETICAL_INDEX = YES -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- -# configuration options related to the HTML output +# Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. GENERATE_HTML = YES -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. Note that when using a custom header you are responsible -# for the proper inclusion of any scripts and style sheets that doxygen -# needs, which is dependent on the configuration options used. -# It is advised to generate a default header using "doxygen -w html -# header.html footer.html stylesheet.css YourConfigFile" and then modify -# that header. Note that the header is subject to change so you typically -# have to redo this when upgrading to a newer version of doxygen or when -# changing the value of configuration settings such as GENERATE_TREEVIEW! +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# style sheet in the HTML output directory as well, or it will be erased! +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that -# the files will be copied as-is; there are no commands or markers available. +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the style sheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. -# The allowed range is 0 to 359. +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a color-wheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use gray-scales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of -# entries shown in the various tree structured indices initially; the user -# can expand and collapse entries dynamically later on. Doxygen will expand -# the tree to such a level that at most the specified number of entries are -# visible (unless a fully collapsed tree already exceeds this amount). -# So setting the number of entries 1 will produce a full collapsed tree by -# default. 0 is a special value representing an infinite number of entries -# and will result in a full expanded tree by default. +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be # written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> -# Qt Help Project / Custom Filters</a>. +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> -# Qt Help Project / Filter Attributes</a>. +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project -# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) -# at top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. Since the tabs have the same information as the -# navigation tree you can set this option to NO if you already set -# GENERATE_TREEVIEW to YES. +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. -# Since the tree basically has the same information as the tab index you -# could consider to set DISABLE_INDEX to NO when enabling this option. +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values -# (range [0,1..20]) that doxygen will group on one line in the generated HTML -# documentation. Note that a value of 0 will completely suppress the enum -# values from appearing in the overview section. +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. +# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are -# not supported properly for IE 6.0, but are supported on all modern browsers. -# Note that when changing this option you need to delete any form_*.png files -# in the HTML output before the changes have effect. +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you may also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to -# the MathJax Content Delivery Network so you can quickly see the result without -# installing MathJax. -# However, it is strongly recommended to install a local -# copy of MathJax from http://www.mathjax.org before deployment. +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://www.mathjax.org/mathjax -# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension -# names that should be enabled during MathJax rendering. +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use <access key> + S +# (what the <access key> is depends on the OS and browser, but it is typically +# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down +# key> to jump into the search results window, the results can be navigated +# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel +# the search. The filter options can be selected when the cursor is inside the +# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> +# to select a filter and <Enter> or <escape> to activate or cancel the filter +# option. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a PHP enabled web server instead of at the web client -# using Javascript. Doxygen will generate the search PHP script and index -# file to put on the web server. The advantage of the server -# based approach is that it scales better to large projects and allows -# full text search. The disadvantages are that it is more difficult to setup -# and does not have live searching capabilities. +# implemented using a web server instead of a web client using JavaScript. There +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. SERVER_BASED_SEARCH = NO +# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain the +# search results. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: +# https://xapian.org/). +# +# See the section "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH = NO + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will return the search results when EXTERNAL_SEARCH is enabled. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. +# The default file is: searchdata.xml. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of +# to a relative location where the documentation can be found. The format is: +# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTRA_SEARCH_MAPPINGS = + #--------------------------------------------------------------------------- -# configuration options related to the LaTeX output +# Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# The default value is: YES. GENERATE_LATEX = YES -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. -# Note that when enabling USE_PDFLATEX this option is only used for -# generating bitmaps for formulas in the HTML output, but not in the -# Makefile that is written to the output directory. +# invoked. +# +# Note that when not enabling USE_PDFLATEX the default is latex when enabling +# USE_PDFLATEX the default is pdflatex and when in the later case latex is +# chosen this is overwritten by pdflatex. For specific output languages the +# default can have been set differently, this depends on the implementation of +# the output language. +# This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_CMD_NAME = latex -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate +# index for LaTeX. +# Note: This tag is used in the Makefile / make.bat. +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file +# (.tex). +# The default file is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to +# generate index for LaTeX. In case there is no backslash (\) as first character +# it will be automatically added in the LaTeX code. +# Note: This tag is used in the generated output file (.tex). +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. +# The default value is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_MAKEINDEX_CMD = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. COMPACT_LATEX = NO -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, letter, legal and -# executive. If left blank a4wide will be used. +# The PAPER_TYPE tag can be used to set the paper type that is used by the +# printer. +# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x +# 14 inches) and executive (7.25 x 10.5 inches). +# The default value is: a4. +# This tag requires that the tag GENERATE_LATEX is set to YES. PAPER_TYPE = a4 -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. +# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} +# If left blank no extra packages will be included. +# This tag requires that the tag GENERATE_LATEX is set to YES. EXTRA_PACKAGES = -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! +# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for +# the generated LaTeX document. The header should contain everything until the +# first chapter. If it is left blank doxygen will generate a standard header. It +# is highly recommended to start with a default header using +# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty +# and then modify the file new_header.tex. See also section "Doxygen usage" for +# information on how to generate the default header that doxygen normally uses. +# +# Note: Only use a user-defined header if you know what you are doing! +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. The following +# commands have a special meaning inside the header (and footer): For a +# description of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for -# the generated latex document. The footer should contain everything after -# the last chapter. If it is left blank doxygen will generate a -# standard footer. Notice: only use this tag if you know what you are doing! +# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for +# the generated LaTeX document. The footer should contain everything after the +# last chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. See also section "Doxygen +# usage" for information on how to generate the default footer that doxygen +# normally uses. Note: Only use a user-defined footer if you know what you are +# doing! +# This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the LATEX_OUTPUT output +# directory. Note that the files will be copied as-is; there are no commands or +# markers available. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is +# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will +# contain links (just like the HTML output) instead of page references. This +# makes the output suitable for online browsing using a PDF viewer. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. +# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX +# files. Set this option to YES, to get a higher quality PDF documentation. +# +# See also section LATEX_CMD_NAME for selecting the engine. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. USE_PDFLATEX = YES -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode +# command to the generated LaTeX files. This will instruct LaTeX to keep running +# if errors occur, instead of asking the user for help. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BATCHMODE = NO -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. +# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# index chapters (such as File Index, Compound Index, etc.) in the output. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HIDE_INDICES = NO -# If LATEX_SOURCE_CODE is set to YES then doxygen will include -# source code with syntax highlighting in the LaTeX output. -# Note that which sources are shown also depends on other settings -# such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the -# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See -# http://en.wikipedia.org/wiki/BibTeX for more info. +# bibliography, e.g. plainnat, or ieeetr. See +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# The default value is: plain. +# This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BIB_STYLE = plain +# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_TIMESTAMP = NO + +# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) +# path from which the emoji images will be read. If a relative path is entered, +# it will be relative to the LATEX_OUTPUT directory. If left blank the +# LATEX_OUTPUT directory will be used. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EMOJI_DIRECTORY = + #--------------------------------------------------------------------------- -# configuration options related to the RTF output +# Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# RTF output is optimized for Word 97 and may not look too pretty with other RTF +# readers/editors. +# The default value is: NO. GENERATE_RTF = NO -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: rtf. +# This tag requires that the tag GENERATE_RTF is set to YES. RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. COMPACT_RTF = NO -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will +# contain hyperlink fields. The RTF file will contain links (just like the HTML +# output) instead of page references. This makes the output suitable for online +# browsing using Word or some other Word compatible readers that support those +# fields. +# +# Note: WordPad (write) and others do not support links. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. RTF_HYPERLINKS = NO -# Load style sheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# configuration file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. +# +# See also section "Doxygen usage" for information on how to generate the +# default style sheet that doxygen normally uses. +# This tag requires that the tag GENERATE_RTF is set to YES. RTF_STYLESHEET_FILE = -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. +# Set optional variables used in the generation of an RTF document. Syntax is +# similar to doxygen's configuration file. A template extensions file can be +# generated using doxygen -e rtf extensionFile. +# This tag requires that the tag GENERATE_RTF is set to YES. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- -# configuration options related to the man page output +# Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# classes and files. +# The default value is: NO. GENERATE_MAN = NO -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. +# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. A directory man3 will be created inside the directory specified by +# MAN_OUTPUT. +# The default directory is: man. +# This tag requires that the tag GENERATE_MAN is set to YES. MAN_OUTPUT = man -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) +# The MAN_EXTENSION tag determines the extension that is added to the generated +# man pages. In case the manual section does not start with a number, the number +# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is +# optional. +# The default value is: .3. +# This tag requires that the tag GENERATE_MAN is set to YES. MAN_EXTENSION = .3 -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + +# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# will generate one additional man file for each entity documented in the real +# man page(s). These additional files only source the real man page, but without +# them the man command would be unable to find the correct page. +# The default value is: NO. +# This tag requires that the tag GENERATE_MAN is set to YES. MAN_LINKS = NO #--------------------------------------------------------------------------- -# configuration options related to the XML output +# Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# captures the structure of the code including all documentation. +# The default value is: NO. GENERATE_XML = NO -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. +# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: xml. +# This tag requires that the tag GENERATE_XML is set to YES. XML_OUTPUT = xml -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# listings (including syntax highlighting and cross-referencing information) to +# the XML output. Note that enabling this will significantly increase the size +# of the XML output. +# The default value is: YES. +# This tag requires that the tag GENERATE_XML is set to YES. -XML_SCHEMA = +XML_PROGRAMLISTING = YES -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# namespace members in file scope as well, matching the HTML output. +# The default value is: NO. +# This tag requires that the tag GENERATE_XML is set to YES. -XML_DTD = +XML_NS_MEMB_FILE_SCOPE = NO -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- -XML_PROGRAMLISTING = YES +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# that can be used to generate PDF. +# The default value is: NO. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. +# The default directory is: docbook. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_OUTPUT = docbook #--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output +# Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# the structure of the code including all documentation. Note that this feature +# is still experimental and incomplete at the moment. +# The default value is: NO. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- -# configuration options related to the Perl module output +# Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# file that captures the structure of the code including all documentation. +# +# Note that this feature is still experimental and incomplete at the moment. +# The default value is: NO. GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI +# output from the Perl module output. +# The default value is: NO. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. PERLMOD_LATEX = NO -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. -# This is useful -# if you want to understand what is going on. -# On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# formatted so it can be parsed by a human reader. This is useful if you want to +# understand what is going on. On the other hand, if this tag is set to NO, the +# size of the Perl module output will be much smaller and Perl will parse it +# just the same. +# The default value is: YES. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. PERLMOD_PRETTY = YES -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. +# The names of the make variables in the generated doxyrules.make file are +# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful +# so different doxyrules.make files included by the same Makefile don't +# overwrite each other's variables. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. PERLMOD_MAKEVAR_PREFIX = @@ -1464,332 +2217,465 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# C-preprocessor directives found in the sources and include files. +# The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be +# performed. Macro expansion can be done in a controlled way by setting +# EXPAND_ONLY_PREDEF to YES. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. MACRO_EXPANSION = NO -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then +# the macro expansion is limited to the macros specified with the PREDEFINED and +# EXPAND_AS_DEFINED tags. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. EXPAND_ONLY_PREDEF = NO -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# pointed to by INCLUDE_PATH will be searched when a #include is found. +# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# INCLUDE_PATH will be searched if a #include is found. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. +# contain include files that are not input files but should be processed by the +# preprocessor. Note that the INCLUDE_PATH is not recursive, so the setting of +# RECURSIVE has no effect here. +# This tag requires that the tag SEARCH_INCLUDES is set to YES. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. +# directories. If left blank, the patterns specified with FILE_PATTERNS will be +# used. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. INCLUDE_FILE_PATTERNS = -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. +# The PREDEFINED tag can be used to specify one or more macro names that are +# defined before the preprocessor is started (similar to the -D option of e.g. +# gcc). The argument of the tag is a list of macros of the form: name or +# name=definition (no spaces). If the definition and the "=" are omitted, "=1" +# is assumed. To prevent a macro definition from being undefined via #undef or +# recursively expanded use the := operator instead of the = operator. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. PREDEFINED = BINTRAJ \ MPI \ HASGZ \ HASBZ2 -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition that -# overrules the definition found in the source code. +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this +# tag can be used to specify a list of macro names that should be expanded. The +# macro definition that is found in the sources will be used. Use the PREDEFINED +# tag if you want to use a different macro definition that overrules the +# definition found in the source code. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. EXPAND_AS_DEFINED = -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all references to function-like macros -# that are alone on a line, have an all uppercase name, and do not end with a -# semicolon, because these will confuse the parser if not removed. +# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not +# removed. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration options related to external references #--------------------------------------------------------------------------- -# The TAGFILES option can be used to specify one or more tagfiles. For each -# tag file the location of the external documentation should be added. The -# format of a tag file without this location is as follows: -# +# The TAGFILES tag can be used to specify one or more tag files. For each tag +# file the location of the external documentation should be added. The format of +# a tag file without this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: -# # TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths -# or URLs. Note that each tag file must have a unique name (where the name does -# NOT include the path). If a tag file is not located in the directory in which -# doxygen is run, you must also specify the path to the tagfile here. +# where loc1 and loc2 can be relative or absolute paths or URLs. See the +# section "Linking to external documentation" for more information about the use +# of tag files. +# Note: Each tag file must have a unique name (where the name does NOT include +# the path). If a tag file is not located in the directory in which doxygen is +# run, you must also specify the path to the tagfile here. TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. +# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# tag file that is based on the input files it reads. See section "Linking to +# external documentation" for more information about the usage of tag files. GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. +# The default value is: NO. ALLEXTERNALS = NO -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be +# listed. +# The default value is: YES. EXTERNAL_GROUPS = YES -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# the related pages index. If set to NO, only the current project's pages will +# be listed. +# The default value is: YES. -PERL_PATH = /usr/bin/perl +EXTERNAL_PAGES = YES #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option also works with HAVE_DOT disabled, but it is recommended to -# install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. +DIA_PATH = -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. +# If set to YES the inheritance and collaboration graphs will hide inheritance +# and usage relations if the target is undocumented or is not a class. +# The default value is: YES. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) +# available from the path. This tool is part of Graphviz (see: +# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# Bell Labs. The other options in this section have no effect if this option is +# set to NO +# The default value is: YES. HAVE_DOT = NO -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is -# allowed to run in parallel. When set to 0 (the default) doxygen will -# base this on the number of processors available in the system. You can set it -# explicitly to a value larger than 0 to get control over the balance -# between CPU load and processing speed. +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed +# to run in parallel. When set to 0 doxygen will base this on the number of +# processors available in the system. You can set it explicitly to a value +# larger than 0 to get control over the balance between CPU load and processing +# speed. +# Minimum value: 0, maximum value: 32, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_NUM_THREADS = 0 -# By default doxygen will use the Helvetica font for all dot files that -# doxygen generates. When you want a differently looking font you can specify -# the font name using DOT_FONTNAME. You need to make sure dot is able to find -# the font, which can be done by putting it in a standard location or by setting -# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the -# directory containing the font. +# When you want a differently looking font in the dot files that doxygen +# generates you can specify the font name using DOT_FONTNAME. You need to make +# sure dot is able to find the font, which can be done by putting it in a +# standard location or by setting the DOTFONTPATH environment variable or by +# setting DOT_FONTPATH to the directory containing the font. +# The default value is: Helvetica. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTNAME = Helvetica -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. +# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of +# dot graphs. +# Minimum value: 4, maximum value: 24, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTSIZE = 10 -# By default doxygen will tell dot to use the Helvetica font. -# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to -# set the path where dot can find it. +# By default doxygen will tell dot to use the default font as specified with +# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set +# the path where dot can find it using this tag. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTPATH = -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# CLASS_DIAGRAMS tag to NO. +# If the CLASS_GRAPH tag is set to YES (or GRAPH) then doxygen will generate a +# graph for each documented class showing the direct and indirect inheritance +# relations. In case HAVE_DOT is set as well dot will be used to draw the graph, +# otherwise the built-in generator will be used. If the CLASS_GRAPH tag is set +# to TEXT the direct and indirect inheritance relations will be shown as texts / +# links. +# Possible values are: NO, YES, TEXT and GRAPH. +# The default value is: YES. CLASS_GRAPH = YES -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. +# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# graph for each documented class showing the direct and indirect implementation +# dependencies (inheritance, containment, and class references variables) of the +# class with other documented classes. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. COLLABORATION_GRAPH = YES -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies +# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# groups, showing the direct groups dependencies. See also the chapter Grouping +# in the manual. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. UML_LOOK = NO -# If the UML_LOOK tag is enabled, the fields and methods are shown inside -# the class node. If there are many fields or methods and many nodes the -# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS -# threshold limits the number of items for each type to make the size more -# managable. Set this to 0 for no limit. Note that the threshold may be -# exceeded by 50% before the limit is enforced. +# If the UML_LOOK tag is enabled, the fields and methods are shown inside the +# class node. If there are many fields or methods and many nodes the graph may +# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the +# number of items for each type to make the size more manageable. Set this to 0 +# for no limit. Note that the threshold may be exceeded by 50% before the limit +# is enforced. So when you set the threshold to 10, up to 15 fields may appear, +# but if the number exceeds 15, the total amount of fields shown is limited to +# 10. +# Minimum value: 0, maximum value: 100, default value: 10. +# This tag requires that the tag UML_LOOK is set to YES. UML_LIMIT_NUM_FIELDS = 10 -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. +# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS +# tag is set to YES, doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# will not generate fields with class member information in the UML graphs. The +# class diagrams will look similar to the default class diagrams but using UML +# notation for the relationships. +# Possible values are: NO, YES and NONE. +# The default value is: NO. +# This tag requires that the tag UML_LOOK is set to YES. + +DOT_UML_DETAILS = NO + +# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters +# to display on a single line. If the actual line length exceeds this threshold +# significantly it will wrapped across multiple lines. Some heuristics are apply +# to avoid ugly line breaks. +# Minimum value: 0, maximum value: 1000, default value: 17. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_WRAP_THRESHOLD = 17 + +# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and +# collaboration graphs will show the relations between templates and their +# instances. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. TEMPLATE_RELATIONS = NO -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. +# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to +# YES then doxygen will generate a graph for each documented file showing the +# direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. INCLUDE_GRAPH = YES -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. +# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are +# set to YES then doxygen will generate a graph for each documented file showing +# the direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. INCLUDED_BY_GRAPH = YES -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. +# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. CALL_GRAPH = NO -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. +# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. CALLER_GRAPH = NO -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will generate a graphical hierarchy of all classes instead of a textual one. +# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# hierarchy of all classes instead of a textual one. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. GRAPHICAL_HIERARCHY = YES -# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. +# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# dependencies a directory has on other directories in a graphical way. The +# dependency relations are determined by the #include relations between the +# files in the directories. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. DIRECTORY_GRAPH = YES +# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels +# of child directories generated in directory dependency graphs by dot. +# Minimum value: 1, maximum value: 25, default value: 1. +# This tag requires that the tag DIRECTORY_GRAPH is set to YES. + +DIR_GRAPH_MAX_DEPTH = 1 + # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are svg, png, jpg, or gif. -# If left blank png will be used. If you choose svg you need to set -# HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible in IE 9+ (other browsers do not have this requirement). +# generated by dot. For an explanation of the image formats see the section +# output formats in the documentation of the dot tool (Graphviz (see: +# http://www.graphviz.org/)). +# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order +# to make the SVG files visible in IE 9+ (other browsers do not have this +# requirement). +# Possible values are: png, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, +# gif, gif:cairo, gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, +# png:cairo, png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. +# The default value is: png. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. -# Note that this requires a modern browser other than Internet Explorer. -# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you -# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible. Older versions of IE do not have SVG support. +# +# Note that this requires a modern browser other than Internet Explorer. Tested +# and working are Firefox, Chrome, Safari, and Opera. +# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make +# the SVG files visible. Older versions of IE do not have SVG support. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. INTERACTIVE_SVG = NO -# The tag DOT_PATH can be used to specify the path where the dot tool can be +# The DOT_PATH tag can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). +# contain dot files that are included in the documentation (see the \dotfile +# command). +# This tag requires that the tag HAVE_DOT is set to YES. DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the -# \mscfile command). +# contain msc files that are included in the documentation (see the \mscfile +# command). MSCFILE_DIRS = -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. +# The DIAFILE_DIRS tag can be used to specify one or more directories that +# contain dia files that are included in the documentation (see the \diafile +# command). + +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file or to the filename of jar file +# to be used. If left blank, it is assumed PlantUML is not used or called during +# a preprocessing step. Doxygen will generate a warning when it encounters a +# \startuml command in this case and will not generate output for the diagram. + +PLANTUML_JAR_PATH = + +# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for plantuml. + +PLANTUML_CFG_FILE = + +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes +# that will be shown in the graph. If the number of nodes in a graph becomes +# larger than this value, doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that doxygen if the number of direct +# children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that +# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. +# Minimum value: 0, maximum value: 10000, default value: 50. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_GRAPH_MAX_NODES = 50 -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs +# generated by dot. A depth value of 3 means that only nodes reachable from the +# root by following a path via at most 3 edges will be shown. Nodes that lay +# further from the root node will be omitted. Note that setting this option to 1 +# or 2 may greatly reduce the computation time needed for large code bases. Also +# note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. +# Minimum value: 0, maximum value: 1000, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). +# background. This is disabled by default, because dot on Windows does not seem +# to support this out of the box. +# +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_TRANSPARENT = NO -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. +# makes dot run faster, but since only newer versions of dot (>1.8.10) support +# this, this feature is disabled by default. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. DOT_MULTI_TARGETS = NO -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. +# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# explaining the meaning of the various boxes and arrows in the dot generated +# graphs. +# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal +# graphical representation for inheritance and collaboration diagrams is used. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate +# files that are used to generate the various graphs. +# +# Note: This setting is not only used for dot files but also for msc temporary +# files. +# The default value is: YES. DOT_CLEANUP = YES diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 3ad2ce2e06..c633777ac6 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -1,155 +1,156 @@ ActionFrameCounter.o : ActionFrameCounter.cpp ActionFrameCounter.h ArgList.h CpptrajStdio.h -ActionList.o : ActionList.cpp Action.h ActionList.h ActionState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -ActionTopWriter.o : ActionTopWriter.cpp ActionState.h ActionTopWriter.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_AddAtom.o : Action_AddAtom.cpp Action.h ActionState.h ActionTopWriter.h Action_AddAtom.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Align.o : Action_Align.cpp Action.h ActionState.h Action_Align.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Angle.o : Action_Angle.cpp Action.h ActionState.h Action_Angle.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_AreaPerMol.o : Action_AreaPerMol.cpp Action.h ActionState.h Action_AreaPerMol.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_AtomMap.o : Action_AtomMap.cpp Action.h ActionState.h Action_AtomMap.h ArgList.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h StructureMapper.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_AtomicCorr.o : Action_AtomicCorr.cpp Action.h ActionState.h Action_AtomicCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_AtomicFluct.o : Action_AtomicFluct.cpp Action.h ActionFrameCounter.h ActionState.h Action_AtomicFluct.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_AutoImage.o : Action_AutoImage.cpp Action.h ActionState.h Action_AutoImage.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h Dist_Imaged.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h ImageRoutines.h ImageTypes.h Image_List.h Image_List_Unit.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Average.o : Action_Average.cpp Action.h ActionFrameCounter.h ActionState.h Action_Average.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Action_AvgBox.o : Action_AvgBox.cpp Action.h ActionState.h Action_AvgBox.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Bounds.o : Action_Bounds.cpp Action.h ActionState.h Action_Bounds.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Box.o : Action_Box.cpp Action.h ActionState.h Action_Box.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BoxArgs.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Center.o : Action_Center.cpp Action.h ActionState.h Action_Center.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Channel.o : Action_Channel.cpp Action.h ActionState.h Action_Channel.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_CheckChirality.o : Action_CheckChirality.cpp Action.h ActionState.h Action_CheckChirality.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_CheckStructure.o : Action_CheckStructure.cpp Action.h ActionState.h Action_CheckStructure.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Closest.o : Action_Closest.cpp Action.h ActionState.h ActionTopWriter.h Action_Closest.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h cuda_kernels/kernel_wrappers.cuh -Action_ClusterDihedral.o : Action_ClusterDihedral.cpp Action.h ActionState.h Action_ClusterDihedral.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_Contacts.o : Action_Contacts.cpp Action.h ActionState.h Action_Contacts.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_ConvertToFrac.o : Action_ConvertToFrac.cpp Action.h ActionState.h Action_ConvertToFrac.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_CreateCrd.o : Action_CreateCrd.cpp Action.h ActionState.h Action_CreateCrd.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_CreateReservoir.o : Action_CreateReservoir.cpp Action.h ActionState.h Action_CreateReservoir.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_DNAionTracker.o : Action_DNAionTracker.cpp Action.h ActionState.h Action_DNAionTracker.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_DSSP.o : Action_DSSP.cpp Action.h ActionState.h Action_DSSP.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Density.o : Action_Density.cpp Action.h ActionState.h Action_Density.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Diffusion.o : Action_Diffusion.cpp Action.h ActionState.h Action_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_double.h DiffusionResults.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Dihedral.o : Action_Dihedral.cpp Action.h ActionState.h Action_Dihedral.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_DihedralRMS.o : Action_DihedralRMS.cpp Action.h ActionState.h Action_DihedralRMS.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_Dipole.o : Action_Dipole.cpp Action.h ActionState.h Action_Dipole.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_DistRmsd.o : Action_DistRmsd.cpp Action.h ActionState.h Action_DistRmsd.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Distance.o : Action_Distance.cpp Action.h ActionState.h Action_Distance.h ArgList.h AssociatedData.h AssociatedData_NOE.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_EneDecomp.o : Action_EneDecomp.cpp Action.h ActionState.h Action_EneDecomp.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy/Ecalc_Nonbond.h Energy/EnergyDecomposer.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Energy.o : Action_Energy.cpp Action.h ActionState.h Action_Energy.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy.h Energy/Ecalc_Nonbond.h EnergyArray.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MdOpts.h MetaData.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Esander.o : Action_Esander.cpp Action.h ActionState.h Action_Esander.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy_Sander.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_FilterByData.o : Action_FilterByData.cpp Action.h ActionState.h Action_FilterByData.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_FixAtomOrder.o : Action_FixAtomOrder.cpp Action.h ActionState.h ActionTopWriter.h Action_FixAtomOrder.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomTopType.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_FixImagedBonds.o : Action_FixImagedBonds.cpp Action.h ActionState.h Action_FixImagedBonds.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_GIST.o : Action_GIST.cpp Action.h ActionState.h Action_GIST.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h GIST_PME.h GistEntropyUtils.h Grid.h GridBin.h GridMover.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h cuda_kernels/GistCudaSetup.cuh helpme_standalone.h -Action_Grid.o : Action_Grid.cpp Action.h ActionState.h Action_Grid.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskArray.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_GridFreeEnergy.o : Action_GridFreeEnergy.cpp Action.h ActionState.h Action_GridFreeEnergy.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_HydrogenBond.o : Action_HydrogenBond.cpp Action.h ActionState.h Action_HydrogenBond.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_Image.o : Action_Image.cpp Action.h ActionState.h Action_Image.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h Image_List.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_InfraredSpectrum.o : Action_InfraredSpectrum.cpp Action.h ActionState.h Action_InfraredSpectrum.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Jcoupling.o : Action_Jcoupling.cpp Action.h ActionState.h Action_Jcoupling.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_Keep.o : Action_Keep.cpp Action.h ActionState.h ActionTopWriter.h Action_Keep.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_LESsplit.o : Action_LESsplit.cpp Action.h ActionFrameCounter.h ActionState.h Action_LESsplit.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Action_LIE.o : Action_LIE.cpp Action.h ActionState.h Action_LIE.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_LipidOrder.o : Action_LipidOrder.cpp Action.h ActionState.h Action_LipidOrder.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_MakeStructure.o : Action_MakeStructure.cpp Action.h ActionState.h Action_MakeStructure.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_Mask.o : Action_Mask.cpp Action.h ActionFrameCounter.h ActionState.h Action_Mask.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Action_Matrix.o : Action_Matrix.cpp Action.h ActionFrameCounter.h ActionState.h Action_Matrix.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Vector.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_MinImage.o : Action_MinImage.cpp Action.h ActionState.h Action_MinImage.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_MinMaxDist.o : Action_MinMaxDist.cpp Action.h ActionState.h Action_MinMaxDist.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h InteractionData.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Molsurf.o : Action_Molsurf.cpp Action.h ActionState.h Action_Molsurf.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h molsurf.h -Action_MultiDihedral.o : Action_MultiDihedral.cpp Action.h ActionState.h Action_MultiDihedral.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_MultiPucker.o : Action_MultiPucker.cpp Action.h ActionState.h Action_MultiPucker.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Pucker.h Pucker_PuckerMask.h Pucker_PuckerSearch.h Pucker_PuckerToken.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_MultiVector.o : Action_MultiVector.cpp Action.h ActionState.h Action_MultiVector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_NAstruct.o : Action_NAstruct.cpp Action.h ActionFrameCounter.h ActionState.h Action_NAstruct.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Action_NMRrst.o : Action_NMRrst.cpp Action.h ActionState.h Action_NMRrst.h ArgList.h AssociatedData.h AssociatedData_NOE.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h ViewRst.h -Action_NativeContacts.o : Action_NativeContacts.cpp Action.h ActionState.h Action_NativeContacts.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_OrderParameter.o : Action_OrderParameter.cpp Action.h ActionState.h Action_OrderParameter.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Outtraj.o : Action_Outtraj.cpp Action.h ActionFrameCounter.h ActionState.h Action_Outtraj.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Action_PairDist.o : Action_PairDist.cpp Action.h ActionState.h Action_PairDist.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h Stats_Reduce.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Pairwise.o : Action_Pairwise.cpp Action.h ActionFrameCounter.h ActionState.h Action_Pairwise.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h DispatchObject.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Action_Principal.o : Action_Principal.cpp Action.h ActionState.h Action_Principal.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Projection.o : Action_Projection.cpp Action.h ActionFrameCounter.h ActionState.h Action_Projection.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Pucker.o : Action_Pucker.cpp Action.h ActionState.h Action_Pucker.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Action_Radgyr.o : Action_Radgyr.cpp Action.h ActionState.h Action_Radgyr.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Radial.o : Action_Radial.cpp Action.h ActionState.h Action_Radial.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Gpu.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h cuda_kernels/kernel_rdf.cuh -Action_RandomizeIons.o : Action_RandomizeIons.cpp Action.h ActionState.h Action_RandomizeIons.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Remap.o : Action_Remap.cpp Action.h ActionState.h ActionTopWriter.h Action_Remap.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_ReplicateCell.o : Action_ReplicateCell.cpp Action.h ActionFrameCounter.h ActionState.h ActionTopWriter.h Action_ReplicateCell.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Action_Rmsd.o : Action_Rmsd.cpp Action.h ActionState.h Action_Rmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Rotate.o : Action_Rotate.cpp Action.h ActionState.h Action_Rotate.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParallelSetFrameNum.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_RunningAvg.o : Action_RunningAvg.cpp Action.h ActionState.h Action_RunningAvg.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_STFC_Diffusion.o : Action_STFC_Diffusion.cpp Action.h ActionState.h Action_STFC_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Scale.o : Action_Scale.cpp Action.h ActionState.h Action_Scale.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_SetVelocity.o : Action_SetVelocity.cpp Action.h ActionState.h Action_SetVelocity.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Spam.o : Action_Spam.cpp Action.h ActionState.h Action_Spam.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataIO_Peaks.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector_Scalar.h DataSet_double.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h ImageOption.h KDE.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Strip.o : Action_Strip.cpp Action.h ActionState.h ActionTopWriter.h Action_Strip.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Surf.o : Action_Surf.cpp Action.h ActionState.h Action_Surf.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_SymmetricRmsd.o : Action_SymmetricRmsd.cpp Action.h ActionState.h Action_SymmetricRmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h ImageOption.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Temperature.o : Action_Temperature.cpp Action.h ActionState.h Action_Temperature.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Test.o : Action_Test.cpp Action.h ActionState.h Action_Test.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h Dist_Imaged.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Time.o : Action_Time.cpp Action.h ActionState.h Action_Time.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_ToroidalDiffusion.o : Action_ToroidalDiffusion.cpp Action.h ActionState.h Action_ToroidalDiffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DiffusionResults.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Translate.o : Action_Translate.cpp Action.h ActionState.h Action_Translate.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Unstrip.o : Action_Unstrip.cpp Action.h ActionState.h Action_Unstrip.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Unwrap.o : Action_Unwrap.cpp Action.h ActionState.h Action_Unwrap.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h Image_List.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Vector.o : Action_Vector.cpp Action.h ActionState.h Action_Vector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_VelocityAutoCorr.o : Action_VelocityAutoCorr.cpp Action.h ActionState.h Action_VelocityAutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Volmap.o : Action_Volmap.cpp Action.h ActionState.h Action_Volmap.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Volume.o : Action_Volume.cpp Action.h ActionState.h Action_Volume.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Action_Watershell.o : Action_Watershell.cpp Action.h ActionState.h Action_Watershell.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h cuda_kernels/kernel_wrappers.cuh -Action_XtalSymm.o : Action_XtalSymm.cpp Action.h ActionState.h Action_XtalSymm.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SpaceGroup.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -AnalysisList.o : AnalysisList.cpp ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_AmdBias.o : Analysis_AmdBias.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AmdBias.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_AutoCorr.o : Analysis_AutoCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Average.o : Analysis_Average.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Average.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_CalcDiffusion.o : Analysis_CalcDiffusion.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CalcDiffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_double.h DiffusionResults.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Clustering.o : Analysis_Clustering.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Clustering.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cluster/Algorithm.h Cluster/BestReps.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Control.h Cluster/DrawGraph.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Sieve.h Cluster/Silhouette.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_ConstantPHStats.o : Analysis_ConstantPHStats.cpp ActionState.h Analysis.h AnalysisState.h Analysis_ConstantPHStats.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_pH.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Corr.o : Analysis_Corr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Corr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_CrankShaft.o : Analysis_CrankShaft.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrankShaft.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_CrdFluct.o : Analysis_CrdFluct.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrdFluct.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_CrossCorr.o : Analysis_CrossCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrossCorr.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_CurveFit.o : Analysis_CurveFit.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Divergence.o : Analysis_Divergence.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Divergence.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_EvalPlateau.o : Analysis_EvalPlateau.cpp ActionState.h Analysis.h AnalysisState.h Analysis_EvalPlateau.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_FFT.o : Analysis_FFT.cpp ActionState.h Analysis.h AnalysisState.h Analysis_FFT.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_HausdorffDistance.o : Analysis_HausdorffDistance.cpp ActionState.h Analysis.h AnalysisState.h Analysis_HausdorffDistance.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Hist.o : Analysis_Hist.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h HistBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Analysis_IRED.o : Analysis_IRED.cpp ActionState.h Analysis.h AnalysisState.h Analysis_IRED.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Integrate.o : Analysis_Integrate.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Integrate.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_KDE.o : Analysis_KDE.cpp ActionState.h Analysis.h AnalysisState.h Analysis_KDE.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Lifetime.o : Analysis_Lifetime.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_LowestCurve.o : Analysis_LowestCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_LowestCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Matrix.o : Analysis_Matrix.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Matrix.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_MeltCurve.o : Analysis_MeltCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_MeltCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Modes.o : Analysis_Modes.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Modes.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Analysis_MultiHist.o : Analysis_MultiHist.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h Analysis_KDE.h Analysis_MultiHist.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Multicurve.o : Analysis_Multicurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h Analysis_Multicurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Overlap.o : Analysis_Overlap.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Overlap.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_PhiPsi.o : Analysis_PhiPsi.cpp ActionState.h Analysis.h AnalysisState.h Analysis_PhiPsi.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Project.o : Analysis_Project.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Project.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Regression.o : Analysis_Regression.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Regression.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_RemLog.o : Analysis_RemLog.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h Analysis_RemLog.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_RemLog.h DataSet_integer.h DataSet_integer_mem.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Rms2d.o : Analysis_Rms2d.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rms2d.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h QuaternionRMSD.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Unit.h Vec3.h -Analysis_RmsAvgCorr.o : Analysis_RmsAvgCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RmsAvgCorr.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Rotdif.o : Analysis_Rotdif.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rotdif.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Mesh.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SimplexMin.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_RunningAvg.o : Analysis_RunningAvg.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RunningAvg.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Slope.o : Analysis_Slope.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Slope.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Spline.o : Analysis_Spline.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Spline.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_State.o : Analysis_State.cpp ActionState.h Analysis.h AnalysisState.h Analysis_State.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Statistics.o : Analysis_Statistics.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h AssociatedData_NOE.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_TI.o : Analysis_TI.cpp ActionState.h Analysis.h AnalysisState.h Analysis_TI.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_TICA.o : Analysis_TICA.cpp ActionState.h Analysis.h AnalysisState.h Analysis_TICA.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordCovarMatrix.h CoordCovarMatrix_Full.h CoordCovarMatrix_Half.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Timecorr.o : Analysis_Timecorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Timecorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_VectorMath.o : Analysis_VectorMath.cpp ActionState.h Analysis.h AnalysisState.h Analysis_VectorMath.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Analysis_Wavelet.o : Analysis_Wavelet.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Wavelet.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterMap.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ProgressBar.h ProgressTimer.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h +ActionList.o : ActionList.cpp Action.h ActionList.h ActionState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +ActionTopWriter.o : ActionTopWriter.cpp ActionState.h ActionTopWriter.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_AddAtom.o : Action_AddAtom.cpp Action.h ActionState.h ActionTopWriter.h Action_AddAtom.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Align.o : Action_Align.cpp Action.h ActionState.h Action_Align.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Angle.o : Action_Angle.cpp Action.h ActionState.h Action_Angle.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_AreaPerMol.o : Action_AreaPerMol.cpp Action.h ActionState.h Action_AreaPerMol.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_AtomMap.o : Action_AtomMap.cpp Action.h ActionState.h Action_AtomMap.h ArgList.h AssociatedData.h Atom.h AtomMap.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h StructureMapper.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_AtomicCorr.o : Action_AtomicCorr.cpp Action.h ActionState.h Action_AtomicCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_AtomicFluct.o : Action_AtomicFluct.cpp Action.h ActionFrameCounter.h ActionState.h Action_AtomicFluct.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_AutoImage.o : Action_AutoImage.cpp Action.h ActionState.h Action_AutoImage.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h Dist_Imaged.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h ImageRoutines.h ImageTypes.h Image_List.h Image_List_Unit.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Average.o : Action_Average.cpp Action.h ActionFrameCounter.h ActionState.h Action_Average.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Action_AvgBox.o : Action_AvgBox.cpp Action.h ActionState.h Action_AvgBox.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Bounds.o : Action_Bounds.cpp Action.h ActionState.h Action_Bounds.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Box.o : Action_Box.cpp Action.h ActionState.h Action_Box.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BoxArgs.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Center.o : Action_Center.cpp Action.h ActionState.h Action_Center.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Channel.o : Action_Channel.cpp Action.h ActionState.h Action_Channel.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_CheckChirality.o : Action_CheckChirality.cpp Action.h ActionState.h Action_CheckChirality.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h Structure/Chirality.h Structure/StructureEnum.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_CheckStructure.o : Action_CheckStructure.cpp Action.h ActionState.h Action_CheckStructure.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PairList.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Structure/RingFinder.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Closest.o : Action_Closest.cpp Action.h ActionState.h ActionTopWriter.h Action_Closest.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h cuda_kernels/kernel_wrappers.cuh +Action_ClusterDihedral.o : Action_ClusterDihedral.cpp Action.h ActionState.h Action_ClusterDihedral.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_Contacts.o : Action_Contacts.cpp Action.h ActionState.h Action_Contacts.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_ConvertToFrac.o : Action_ConvertToFrac.cpp Action.h ActionState.h Action_ConvertToFrac.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_CreateCrd.o : Action_CreateCrd.cpp Action.h ActionState.h Action_CreateCrd.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_CreateReservoir.o : Action_CreateReservoir.cpp Action.h ActionState.h Action_CreateReservoir.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_DNAionTracker.o : Action_DNAionTracker.cpp Action.h ActionState.h Action_DNAionTracker.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_DSSP.o : Action_DSSP.cpp Action.h ActionState.h Action_DSSP.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Density.o : Action_Density.cpp Action.h ActionState.h Action_Density.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Diffusion.o : Action_Diffusion.cpp Action.h ActionState.h Action_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_double.h DiffusionResults.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Dihedral.o : Action_Dihedral.cpp Action.h ActionState.h Action_Dihedral.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_DihedralRMS.o : Action_DihedralRMS.cpp Action.h ActionState.h Action_DihedralRMS.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_Dipole.o : Action_Dipole.cpp Action.h ActionState.h Action_Dipole.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_DistRmsd.o : Action_DistRmsd.cpp Action.h ActionState.h Action_DistRmsd.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Distance.o : Action_Distance.cpp Action.h ActionState.h Action_Distance.h ArgList.h AssociatedData.h AssociatedData_NOE.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_EneDecomp.o : Action_EneDecomp.cpp Action.h ActionState.h Action_EneDecomp.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy/Ecalc_Nonbond.h Energy/EnergyDecomposer.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Energy.o : Action_Energy.cpp Action.h ActionState.h Action_Energy.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy.h Energy/CMAP.h Energy/Ecalc_Nonbond.h EnergyArray.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MdOpts.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PairList.h Parallel.h ParameterTypes.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Esander.o : Action_Esander.cpp Action.h ActionState.h Action_Esander.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy_Sander.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_FilterByData.o : Action_FilterByData.cpp Action.h ActionState.h Action_FilterByData.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_FixAtomOrder.o : Action_FixAtomOrder.cpp Action.h ActionState.h ActionTopWriter.h Action_FixAtomOrder.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomTopType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_FixImagedBonds.o : Action_FixImagedBonds.cpp Action.h ActionState.h Action_FixImagedBonds.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_GIST.o : Action_GIST.cpp Action.h ActionState.h Action_GIST.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h GIST_PME.h GistEntropyUtils.h Grid.h GridBin.h GridMover.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PairList.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h cuda_kernels/GistCudaSetup.cuh helpme_standalone.h +Action_Grid.o : Action_Grid.cpp Action.h ActionState.h Action_Grid.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskArray.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_GridFreeEnergy.o : Action_GridFreeEnergy.cpp Action.h ActionState.h Action_GridFreeEnergy.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_HydrogenBond.o : Action_HydrogenBond.cpp Action.h ActionState.h Action_HydrogenBond.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_Image.o : Action_Image.cpp Action.h ActionState.h Action_Image.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h Image_List.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_InfraredSpectrum.o : Action_InfraredSpectrum.cpp Action.h ActionState.h Action_InfraredSpectrum.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Jcoupling.o : Action_Jcoupling.cpp Action.h ActionState.h Action_Jcoupling.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_Keep.o : Action_Keep.cpp Action.h ActionState.h ActionTopWriter.h Action_Keep.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_LESsplit.o : Action_LESsplit.cpp Action.h ActionFrameCounter.h ActionState.h Action_LESsplit.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Action_LIE.o : Action_LIE.cpp Action.h ActionState.h Action_LIE.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_LipidOrder.o : Action_LipidOrder.cpp Action.h ActionState.h Action_LipidOrder.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_MakeStructure.o : Action_MakeStructure.cpp Action.h ActionState.h Action_MakeStructure.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_Mask.o : Action_Mask.cpp Action.h ActionFrameCounter.h ActionState.h Action_Mask.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Action_Matrix.o : Action_Matrix.cpp Action.h ActionFrameCounter.h ActionState.h Action_Matrix.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Vector.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_MinImage.o : Action_MinImage.cpp Action.h ActionState.h Action_MinImage.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_MinMaxDist.o : Action_MinMaxDist.cpp Action.h ActionState.h Action_MinMaxDist.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h InteractionData.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Molsurf.o : Action_Molsurf.cpp Action.h ActionState.h Action_Molsurf.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h molsurf.h +Action_MultiDihedral.o : Action_MultiDihedral.cpp Action.h ActionState.h Action_MultiDihedral.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_MultiPucker.o : Action_MultiPucker.cpp Action.h ActionState.h Action_MultiPucker.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Pucker.h Pucker_PuckerMask.h Pucker_PuckerSearch.h Pucker_PuckerToken.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_MultiVector.o : Action_MultiVector.cpp Action.h ActionState.h Action_MultiVector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_NAstruct.o : Action_NAstruct.cpp Action.h ActionFrameCounter.h ActionState.h Action_NAstruct.h ArgList.h AssociatedData.h Atom.h AtomMask.h AxisType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h PDBfile.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Action_NMRrst.o : Action_NMRrst.cpp Action.h ActionState.h Action_NMRrst.h ArgList.h AssociatedData.h AssociatedData_NOE.h Atom.h AtomMap.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h ViewRst.h +Action_NativeContacts.o : Action_NativeContacts.cpp Action.h ActionState.h Action_NativeContacts.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_OrderParameter.o : Action_OrderParameter.cpp Action.h ActionState.h Action_OrderParameter.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Outtraj.o : Action_Outtraj.cpp Action.h ActionFrameCounter.h ActionState.h Action_Outtraj.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Action_PairDist.o : Action_PairDist.cpp Action.h ActionState.h Action_PairDist.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h Stats_Reduce.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Pairwise.o : Action_Pairwise.cpp Action.h ActionFrameCounter.h ActionState.h Action_Pairwise.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h DispatchObject.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h PDBfile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Action_Principal.o : Action_Principal.cpp Action.h ActionState.h Action_Principal.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Projection.o : Action_Projection.cpp Action.h ActionFrameCounter.h ActionState.h Action_Projection.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Pucker.o : Action_Pucker.cpp Action.h ActionState.h Action_Pucker.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Action_Radgyr.o : Action_Radgyr.cpp Action.h ActionState.h Action_Radgyr.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Radial.o : Action_Radial.cpp Action.h ActionState.h Action_Radial.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Gpu.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h cuda_kernels/kernel_rdf.cuh +Action_RandomizeIons.o : Action_RandomizeIons.cpp Action.h ActionState.h Action_RandomizeIons.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Remap.o : Action_Remap.cpp Action.h ActionState.h ActionTopWriter.h Action_Remap.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_ReplicateCell.o : Action_ReplicateCell.cpp Action.h ActionFrameCounter.h ActionState.h ActionTopWriter.h Action_ReplicateCell.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Action_Rmsd.o : Action_Rmsd.cpp Action.h ActionState.h Action_Rmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Rotate.o : Action_Rotate.cpp Action.h ActionState.h Action_Rotate.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParallelSetFrameNum.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_RunningAvg.o : Action_RunningAvg.cpp Action.h ActionState.h Action_RunningAvg.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_STFC_Diffusion.o : Action_STFC_Diffusion.cpp Action.h ActionState.h Action_STFC_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Scale.o : Action_Scale.cpp Action.h ActionState.h Action_Scale.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_SetVelocity.o : Action_SetVelocity.cpp Action.h ActionState.h Action_SetVelocity.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Spam.o : Action_Spam.cpp Action.h ActionState.h Action_Spam.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataIO_Peaks.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector_Scalar.h DataSet_double.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h ImageOption.h KDE.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Strip.o : Action_Strip.cpp Action.h ActionState.h ActionTopWriter.h Action_Strip.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Surf.o : Action_Surf.cpp Action.h ActionState.h Action_Surf.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_SymmetricRmsd.o : Action_SymmetricRmsd.cpp Action.h ActionState.h Action_SymmetricRmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h ImageOption.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Temperature.o : Action_Temperature.cpp Action.h ActionState.h Action_Temperature.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Test.o : Action_Test.cpp Action.h ActionState.h Action_Test.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h Dist_Imaged.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Time.o : Action_Time.cpp Action.h ActionState.h Action_Time.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_ToroidalDiffusion.o : Action_ToroidalDiffusion.cpp Action.h ActionState.h Action_ToroidalDiffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DiffusionResults.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Translate.o : Action_Translate.cpp Action.h ActionState.h Action_Translate.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Unstrip.o : Action_Unstrip.cpp Action.h ActionState.h Action_Unstrip.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Unwrap.o : Action_Unwrap.cpp Action.h ActionState.h Action_Unwrap.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h Image_List.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Vector.o : Action_Vector.cpp Action.h ActionState.h Action_Vector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Structure/LeastSquaresPlane.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_VelocityAutoCorr.o : Action_VelocityAutoCorr.cpp Action.h ActionState.h Action_VelocityAutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Volmap.o : Action_Volmap.cpp Action.h ActionState.h Action_Volmap.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Volume.o : Action_Volume.cpp Action.h ActionState.h Action_Volume.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Action_Watershell.o : Action_Watershell.cpp Action.h ActionState.h Action_Watershell.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h cuda_kernels/kernel_wrappers.cuh +Action_XtalSymm.o : Action_XtalSymm.cpp Action.h ActionState.h Action_XtalSymm.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SpaceGroup.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +AmberParamFile.o : AmberParamFile.cpp AmberParamFile.h ArgList.h AssociatedData.h AtomType.h BufferedLine.h CmapParmHolder.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_LeapOpts.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/DihedralParmSet.h Parm/GB_Params.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h StringRoutines.h TextFormat.h TypeNameHolder.h +AnalysisList.o : AnalysisList.cpp ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_AmdBias.o : Analysis_AmdBias.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AmdBias.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_AutoCorr.o : Analysis_AutoCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Average.o : Analysis_Average.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Average.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_CalcDiffusion.o : Analysis_CalcDiffusion.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CalcDiffusion.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_double.h DiffusionResults.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Clustering.o : Analysis_Clustering.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Clustering.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cluster/Algorithm.h Cluster/BestReps.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Control.h Cluster/DrawGraph.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Sieve.h Cluster/Silhouette.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_ConstantPHStats.o : Analysis_ConstantPHStats.cpp ActionState.h Analysis.h AnalysisState.h Analysis_ConstantPHStats.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_pH.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Corr.o : Analysis_Corr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Corr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_CrankShaft.o : Analysis_CrankShaft.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrankShaft.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_CrdFluct.o : Analysis_CrdFluct.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrdFluct.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_CrossCorr.o : Analysis_CrossCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrossCorr.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_CurveFit.o : Analysis_CurveFit.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Divergence.o : Analysis_Divergence.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Divergence.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_EvalPlateau.o : Analysis_EvalPlateau.cpp ActionState.h Analysis.h AnalysisState.h Analysis_EvalPlateau.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_FFT.o : Analysis_FFT.cpp ActionState.h Analysis.h AnalysisState.h Analysis_FFT.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_HausdorffDistance.o : Analysis_HausdorffDistance.cpp ActionState.h Analysis.h AnalysisState.h Analysis_HausdorffDistance.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Hist.o : Analysis_Hist.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h HistBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Analysis_IRED.o : Analysis_IRED.cpp ActionState.h Analysis.h AnalysisState.h Analysis_IRED.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Integrate.o : Analysis_Integrate.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Integrate.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_KDE.o : Analysis_KDE.cpp ActionState.h Analysis.h AnalysisState.h Analysis_KDE.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Lifetime.o : Analysis_Lifetime.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_LowestCurve.o : Analysis_LowestCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_LowestCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Matrix.o : Analysis_Matrix.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Matrix.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_MeltCurve.o : Analysis_MeltCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_MeltCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Modes.o : Analysis_Modes.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Modes.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +Analysis_MultiHist.o : Analysis_MultiHist.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h Analysis_KDE.h Analysis_MultiHist.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Unit.h Vec3.h +Analysis_Multicurve.o : Analysis_Multicurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h Analysis_Multicurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Overlap.o : Analysis_Overlap.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Overlap.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_PhiPsi.o : Analysis_PhiPsi.cpp ActionState.h Analysis.h AnalysisState.h Analysis_PhiPsi.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Project.o : Analysis_Project.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Project.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Regression.o : Analysis_Regression.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Regression.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_RemLog.o : Analysis_RemLog.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h Analysis_RemLog.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_RemLog.h DataSet_integer.h DataSet_integer_mem.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Rms2d.o : Analysis_Rms2d.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rms2d.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h QuaternionRMSD.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h Unit.h Vec3.h +Analysis_RmsAvgCorr.o : Analysis_RmsAvgCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RmsAvgCorr.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Rotdif.o : Analysis_Rotdif.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rotdif.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Mesh.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h PubFFT.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SimplexMin.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_RunningAvg.o : Analysis_RunningAvg.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RunningAvg.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Slope.o : Analysis_Slope.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Slope.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Spline.o : Analysis_Spline.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Spline.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_State.o : Analysis_State.cpp ActionState.h Analysis.h AnalysisState.h Analysis_State.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Statistics.o : Analysis_Statistics.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h AssociatedData_NOE.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_TI.o : Analysis_TI.cpp ActionState.h Analysis.h AnalysisState.h Analysis_TI.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_TICA.o : Analysis_TICA.cpp ActionState.h Analysis.h AnalysisState.h Analysis_TICA.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordCovarMatrix.h CoordCovarMatrix_Full.h CoordCovarMatrix_Half.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Timecorr.o : Analysis_Timecorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Timecorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_VectorMath.o : Analysis_VectorMath.cpp ActionState.h Analysis.h AnalysisState.h Analysis_VectorMath.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Analysis_Wavelet.o : Analysis_Wavelet.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Wavelet.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ClusterMap.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h ParmFile.h ProgressBar.h ProgressTimer.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h ArgList.o : ArgList.cpp ArgList.h CpptrajStdio.h StringRoutines.h -Array1D.o : Array1D.cpp ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Array1D.o : Array1D.cpp ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h AssociatedData_Connect.o : AssociatedData_Connect.cpp ArgList.h AssociatedData.h AssociatedData_Connect.h CpptrajStdio.h AssociatedData_NOE.o : AssociatedData_NOE.cpp ArgList.h AssociatedData.h AssociatedData_NOE.h CpptrajStdio.h Atom.o : Atom.cpp Atom.h CpptrajStdio.h NameType.h SymbolExporting.h -AtomMap.o : AtomMap.cpp Atom.h AtomMap.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +AtomMap.o : AtomMap.cpp Atom.h AtomMap.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h AtomMask.o : AtomMask.cpp Atom.h AtomMask.h CpptrajStdio.h MaskToken.h Molecule.h NameType.h Residue.h Segment.h SymbolExporting.h Unit.h -AxisType.o : AxisType.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h AxisType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -BondSearch.o : BondSearch.cpp Atom.h AtomMask.h AtomType.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +AxisType.o : AxisType.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AxisType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h +BondSearch.o : BondSearch.cpp Atom.h AtomMask.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h PairList.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Timer.h Topology.h Unit.h Vec3.h Box.o : Box.cpp Box.h Constants.h CpptrajStdio.h Matrix_3x3.h Parallel.h Vec3.h BoxArgs.o : BoxArgs.cpp ArgList.h Box.h BoxArgs.h CpptrajStdio.h Matrix_3x3.h Parallel.h Vec3.h BufferedFrame.o : BufferedFrame.cpp BufferedFrame.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Parallel.h TextFormat.h @@ -157,9 +158,9 @@ BufferedLine.o : BufferedLine.cpp BufferedLine.h CpptrajFile.h CpptrajStdio.h Fi ByteRoutines.o : ByteRoutines.cpp CIFfile.o : CIFfile.cpp ArgList.h Atom.h BufferedLine.h CIFfile.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h Parallel.h StringRoutines.h SymbolExporting.h CharMask.o : CharMask.cpp Atom.h CharMask.h CpptrajStdio.h MaskToken.h Molecule.h NameType.h Residue.h Segment.h SymbolExporting.h Unit.h -CharmmParamFile.o : CharmmParamFile.cpp ArgList.h AtomType.h BufferedLine.h CharmmParamFile.h Constants.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h StringRoutines.h TypeNameHolder.h +CharmmParamFile.o : CharmmParamFile.cpp ArgList.h AtomType.h BufferedLine.h CharmmParamFile.h CmapParmHolder.h Constants.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/DihedralParmSet.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h StringRoutines.h TypeNameHolder.h Cluster/Algorithm.o : Cluster/Algorithm.cpp Cluster/Algorithm.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h CpptrajStdio.h -Cluster/Algorithm_DBscan.o : Cluster/Algorithm_DBscan.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cluster/Algorithm.h Cluster/Algorithm_DBscan.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Cluster/Algorithm_DBscan.o : Cluster/Algorithm_DBscan.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cluster/Algorithm.h Cluster/Algorithm_DBscan.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h Cluster/Algorithm_DPeaks.o : Cluster/Algorithm_DPeaks.cpp ArgList.h AssociatedData.h Cluster/Algorithm.h Cluster/Algorithm_DPeaks.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Mesh.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h ProgressBar.h Range.h Spline.h TextFormat.h Cluster/Algorithm_HierAgglo.o : Cluster/Algorithm_HierAgglo.cpp ArgList.h ArrayIterator.h Cluster/Algorithm.h Cluster/Algorithm_HierAgglo.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/DynamicMatrix.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Matrix.h Parallel.h ProgressBar.h Timer.h Cluster/Algorithm_Kmeans.o : Cluster/Algorithm_Kmeans.cpp ArgList.h Cluster/Algorithm.h Cluster/Algorithm_Kmeans.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Parallel.h ProgressBar.h Random.h @@ -169,103 +170,111 @@ Cluster/Centroid_Coord.o : Cluster/Centroid_Coord.cpp Atom.h AtomMask.h Box.h Cl Cluster/Cframes.o : Cluster/Cframes.cpp Cluster/Cframes.h Cluster/Cmatrix_Binary.o : Cluster/Cmatrix_Binary.cpp Cluster/Cframes.h Cluster/Cmatrix_Binary.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Parallel.h Cluster/Cmatrix_NC.o : Cluster/Cmatrix_NC.cpp Cluster/Cframes.h Cluster/Cmatrix_NC.h CpptrajStdio.h FileName.h NC_Routines.h -Cluster/Control.o : Cluster/Control.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Cluster/Algorithm.h Cluster/Algorithm_DBscan.h Cluster/Algorithm_DPeaks.h Cluster/Algorithm_HierAgglo.h Cluster/Algorithm_Kmeans.h Cluster/BestReps.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Control.h Cluster/DBI.h Cluster/DrawGraph.h Cluster/DynamicMatrix.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Output.h Cluster/PseudoF.h Cluster/Results.h Cluster/Results_Coords.h Cluster/Sieve.h Cluster/Silhouette.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_float.h DataSet_integer.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TypeNameHolder.h Unit.h Vec3.h +Cluster/Control.o : Cluster/Control.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Cluster/Algorithm.h Cluster/Algorithm_DBscan.h Cluster/Algorithm_DPeaks.h Cluster/Algorithm_HierAgglo.h Cluster/Algorithm_Kmeans.h Cluster/BestReps.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Control.h Cluster/DBI.h Cluster/DrawGraph.h Cluster/DynamicMatrix.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Output.h Cluster/PseudoF.h Cluster/Results.h Cluster/Results_Coords.h Cluster/Sieve.h Cluster/Silhouette.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_float.h DataSet_integer.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Unit.h Vec3.h Cluster/DBI.o : Cluster/DBI.cpp Cluster/CentroidArray.h Cluster/Cframes.h Cluster/DBI.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/DrawGraph.o : Cluster/DrawGraph.cpp AssociatedData.h Atom.h Cluster/Cframes.h Cluster/DrawGraph.h Cluster/Metric.h Cluster/MetricArray.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h PDBfile.h Parallel.h Range.h Residue.h SymbolExporting.h TextFormat.h Vec3.h Cluster/DynamicMatrix.o : Cluster/DynamicMatrix.cpp ArrayIterator.h Cluster/DynamicMatrix.h CpptrajStdio.h Matrix.h Cluster/List.o : Cluster/List.cpp AssociatedData.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_integer.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h ProgressBar.h Range.h TextFormat.h -Cluster/MetricArray.o : Cluster/MetricArray.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Metric_DME.h Cluster/Metric_QuatRMSD.h Cluster/Metric_RMS.h Cluster/Metric_SRMSD.h Cluster/Metric_Scalar.h Cluster/Metric_Torsion.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h QuaternionRMSD.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Cluster/Metric_DME.o : Cluster/Metric_DME.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_DME.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Cluster/MetricArray.o : Cluster/MetricArray.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h BaseIOtype.h Box.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Metric_DME.h Cluster/Metric_QuatRMSD.h Cluster/Metric_RMS.h Cluster/Metric_SRMSD.h Cluster/Metric_Scalar.h Cluster/Metric_Torsion.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h ProgressBar.h QuaternionRMSD.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Cluster/Metric_DME.o : Cluster/Metric_DME.cpp AssociatedData.h Atom.h AtomMask.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_DME.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h Cluster/Metric_Matrix2D.o : Cluster/Metric_Matrix2D.cpp AssociatedData.h Cluster/Metric.h Cluster/Metric_Matrix2D.h CpptrajFile.h DataSet.h DataSet_2D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -Cluster/Metric_QuatRMSD.o : Cluster/Metric_QuatRMSD.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_QuatRMSD.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h QuaternionRMSD.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Cluster/Metric_RMS.o : Cluster/Metric_RMS.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_RMS.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Cluster/Metric_SRMSD.o : Cluster/Metric_SRMSD.cpp ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_SRMSD.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Cluster/Metric_QuatRMSD.o : Cluster/Metric_QuatRMSD.cpp AssociatedData.h Atom.h AtomMask.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_QuatRMSD.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h QuaternionRMSD.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h +Cluster/Metric_RMS.o : Cluster/Metric_RMS.cpp AssociatedData.h Atom.h AtomMask.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_RMS.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h +Cluster/Metric_SRMSD.o : Cluster/Metric_SRMSD.cpp ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h Box.h Cluster/Centroid.h Cluster/Centroid_Coord.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_SRMSD.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h Unit.h Vec3.h Cluster/Metric_Scalar.o : Cluster/Metric_Scalar.cpp AssociatedData.h Cluster/Centroid.h Cluster/Centroid_Num.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_Scalar.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Cluster/Metric_Torsion.o : Cluster/Metric_Torsion.cpp AssociatedData.h Cluster/Centroid.h Cluster/Centroid_Num.h Cluster/Cframes.h Cluster/Metric.h Cluster/Metric_Torsion.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Cluster/Node.o : Cluster/Node.cpp AssociatedData.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_float.h DataSet_integer.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Cluster/Output.o : Cluster/Output.cpp ArrayIterator.h Cluster/Algorithm.h Cluster/BestReps.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Output.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Matrix.h Parallel.h Timer.h Cluster/PseudoF.o : Cluster/PseudoF.cpp Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/PseudoF.h Constants.h CpptrajStdio.h -Cluster/Results_Coords.o : Cluster/Results_Coords.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Metric_DME.h Cluster/Metric_RMS.h Cluster/Metric_SRMSD.h Cluster/Node.h Cluster/Results.h Cluster/Results_Coords.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h +Cluster/Results_Coords.o : Cluster/Results_Coords.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h BaseIOtype.h Box.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Metric_DME.h Cluster/Metric_RMS.h Cluster/Metric_SRMSD.h Cluster/Node.h Cluster/Results.h Cluster/Results_Coords.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h Cluster/Sieve.o : Cluster/Sieve.cpp AssociatedData.h Cluster/Cframes.h Cluster/Sieve.h CpptrajFile.h DataSet.h DataSet_PairwiseCache.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Random.h Range.h TextFormat.h Cluster/Silhouette.o : Cluster/Silhouette.cpp Cluster/CentroidArray.h Cluster/Cframes.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Silhouette.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h OnlineVarT.h Parallel.h ClusterMap.o : ClusterMap.cpp AssociatedData.h ClusterMap.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_2D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h ProgressBar.h ProgressTimer.h Range.h TextFormat.h Timer.h +CmapParmHolder.o : CmapParmHolder.cpp CmapParmHolder.h Constants.h CpptrajStdio.h ParameterTypes.h Parm/ParmEnum.h Cmd.o : Cmd.cpp Cmd.h DispatchObject.h CmdInput.o : CmdInput.cpp CmdInput.h StringRoutines.h CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h -Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h ActionTopWriter.h Action_AddAtom.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_AvgBox.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_ConvertToFrac.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_EneDecomp.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_Keep.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_MinMaxDist.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiPucker.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Test.h Action_Time.h Action_ToroidalDiffusion.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_CalcDiffusion.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_EvalPlateau.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Project.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_TICA.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BoxArgs.h BufferedLine.h CharMask.h Cluster/Algorithm.h Cluster/BestReps.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Control.h Cluster/DrawGraph.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Sieve.h Cluster/Silhouette.h ClusterMap.h Cmd.h CmdInput.h CmdList.h Command.h CompactFrameArray.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DiffusionResults.h DihedralSearch.h Dimension.h DispatchObject.h Energy.h Energy/Ecalc_Nonbond.h Energy/EnergyDecomposer.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h EwaldOptions.h ExclusionArray.h Exec.h Exec_AddMissingRes.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareClusters.h Exec_CompareEnergy.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CrdTransform.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_Emin.h Exec_ExtendedComparison.h Exec_Flatten.h Exec_GenerateAmberRst.h Exec_Graft.h Exec_Help.h Exec_HmassRepartition.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_ParseTiming.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrepareForLeap.h Exec_PrintData.h Exec_Random.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_Sequence.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h Exec_Zmatrix.h ExtendedSimilarity.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h GIST_PME.h Grid.h GridAction.h GridBin.h GridMover.h HistBin.h Hungarian.h ImageOption.h ImageTypes.h InputTrajCommon.h InteractionData.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParallelSetFrameNum.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Pucker.h Pucker_PuckerMask.h Pucker_PuckerSearch.h Pucker_PuckerToken.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Spline.h SplineFxnTable.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h cuda_kernels/GistCudaSetup.cuh helpme_standalone.h molsurf.h +Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h ActionTopWriter.h Action_AddAtom.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_AvgBox.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_ConvertToFrac.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_EneDecomp.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_Keep.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_MinMaxDist.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiPucker.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Test.h Action_Time.h Action_ToroidalDiffusion.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_CalcDiffusion.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_EvalPlateau.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Project.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_TICA.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AxisType.h BaseIOtype.h Box.h BoxArgs.h BufferedLine.h CharMask.h Cluster/Algorithm.h Cluster/BestReps.h Cluster/CentroidArray.h Cluster/Cframes.h Cluster/Control.h Cluster/DrawGraph.h Cluster/List.h Cluster/Metric.h Cluster/MetricArray.h Cluster/Node.h Cluster/Sieve.h Cluster/Silhouette.h ClusterMap.h Cmd.h CmdInput.h CmdList.h Command.h CompactFrameArray.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DiffusionResults.h DihedralSearch.h Dimension.h DispatchObject.h Energy.h Energy/Ecalc_Nonbond.h Energy/EnergyDecomposer.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h EwaldOptions.h ExclusionArray.h Exec.h Exec_AddMissingRes.h Exec_Analyze.h Exec_Build.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareClusters.h Exec_CompareEnergy.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CrdTransform.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_Desc.h Exec_Emin.h Exec_ExtendedComparison.h Exec_Flatten.h Exec_GenerateAmberRst.h Exec_Graft.h Exec_Help.h Exec_HmassRepartition.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_Mutate.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_ParseTiming.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrepareForLeap.h Exec_PrintData.h Exec_Random.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_Sequence.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_Source.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h Exec_Zmatrix.h ExtendedSimilarity.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h GIST_PME.h Grid.h GridAction.h GridBin.h GridMover.h HistBin.h Hungarian.h ImageOption.h ImageTypes.h InputTrajCommon.h InteractionData.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParallelSetFrameNum.h ParameterTypes.h Parm/GB_Params.h PubFFT.h Pucker.h Pucker_PuckerMask.h Pucker_PuckerSearch.h Pucker_PuckerToken.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Spline.h SplineFxnTable.h Structure/LeastSquaresPlane.h Structure/RingFinder.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h Unit.h Vec3.h cuda_kernels/GistCudaSetup.cuh helpme_standalone.h molsurf.h CompactFrameArray.o : CompactFrameArray.cpp Box.h CompactFrameArray.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h -Constraints.o : Constraints.cpp ArgList.h Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_inData.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h ForLoop_overSets.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h +Constraints.o : Constraints.cpp ArgList.h Atom.h AtomMask.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_inData.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h ForLoop_overSets.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h CoordCovarMatrix.o : CoordCovarMatrix.cpp ArrayIterator.h Atom.h AtomMask.h Box.h CoordCovarMatrix.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Unit.h Vec3.h CoordCovarMatrix_Full.o : CoordCovarMatrix_Full.cpp ArrayIterator.h Atom.h AtomMask.h CoordCovarMatrix.h CoordCovarMatrix_Full.h CpptrajStdio.h MaskToken.h Matrix.h Molecule.h NameType.h Residue.h Segment.h SymbolExporting.h Unit.h CoordCovarMatrix_Half.o : CoordCovarMatrix_Half.cpp ArrayIterator.h AssociatedData.h Atom.h AtomMask.h Constants.h CoordCovarMatrix.h CoordCovarMatrix_Half.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MaskToken.h Matrix.h MetaData.h Molecule.h NameType.h Parallel.h Range.h Residue.h Segment.h SymbolExporting.h TextFormat.h Unit.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h -Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Gpu.h HipDefinitions.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NDiff.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h Version.h +Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Gpu.h HipDefinitions.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NDiff.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h Version.h CpptrajFile.o : CpptrajFile.cpp CpptrajFile.h CpptrajStdio.h FileIO.h FileIO_Bzip2.h FileIO_Gzip.h FileIO_Mpi.h FileIO_MpiShared.h FileIO_Std.h FileName.h Parallel.h StringRoutines.h -CpptrajState.o : CpptrajState.cpp Action.h ActionList.h ActionState.h Action_CreateCrd.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleNavigator.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h +CpptrajState.o : CpptrajState.cpp Action.h ActionList.h ActionState.h Action_CreateCrd.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleNavigator.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h CpptrajStdio.o : CpptrajStdio.cpp Parallel.h CurveFit.o : CurveFit.cpp CurveFit.h -DataFile.o : DataFile.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Cluster/Cframes.h Cluster/Cmatrix_NC.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataFile.h DataIO.h DataIO_AmberEne.h DataIO_AmberLib.h DataIO_AmberPrep.h DataIO_CCP4.h DataIO_CharmmFastRep.h DataIO_CharmmOutput.h DataIO_CharmmRepLog.h DataIO_CharmmRtfPrm.h DataIO_Cmatrix_Binary.h DataIO_Cmatrix_NC.h DataIO_Cpout.h DataIO_Evecs.h DataIO_Gnuplot.h DataIO_Grace.h DataIO_Mdout.h DataIO_NetCDF.h DataIO_Numpy.h DataIO_OpenDx.h DataIO_Peaks.h DataIO_RemLog.h DataIO_Std.h DataIO_VecTraj.h DataIO_XVG.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TypeNameHolder.h Unit.h Vec3.h -DataFileList.o : DataFileList.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataFilter.o : DataFilter.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO.o : DataIO.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_AmberEne.o : DataIO_AmberEne.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberEne.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_AmberLib.o : DataIO_AmberLib.cpp ArgList.h AssociatedData.h AssociatedData_Connect.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberLib.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_AmberPrep.o : DataIO_AmberPrep.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberPrep.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h Structure/InternalCoords.h Structure/StructureEnum.h Structure/Zmatrix.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_CCP4.o : DataIO_CCP4.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ByteRoutines.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CCP4.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_CharmmFastRep.o : DataIO_CharmmFastRep.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmFastRep.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_CharmmOutput.o : DataIO_CharmmOutput.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmOutput.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_CharmmRepLog.o : DataIO_CharmmRepLog.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmRepLog.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_CharmmRtfPrm.o : DataIO_CharmmRtfPrm.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharmmParamFile.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmRtfPrm.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h DataSet_Topology.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Cmatrix_Binary.o : DataIO_Cmatrix_Binary.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cluster/Cframes.h Cluster/Cmatrix_Binary.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Cmatrix_Binary.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Cmatrix_NC.o : DataIO_Cmatrix_NC.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cluster/Cframes.h Cluster/Cmatrix_NC.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Cmatrix_NC.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Cpout.o : DataIO_Cpout.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Cpout.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Evecs.o : DataIO_Evecs.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedFrame.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Evecs.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Gnuplot.o : DataIO_Gnuplot.cpp ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Gnuplot.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Grace.o : DataIO_Grace.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Grace.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Mdout.o : DataIO_Mdout.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Mdout.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_NetCDF.o : DataIO_NetCDF.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cluster/Cframes.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_NetCDF.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Modes.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_Vector.h DataSet_Vector_Scalar.h DataSet_string.h DataSet_unsignedInt.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Routines.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h Version.h -DataIO_Numpy.o : DataIO_Numpy.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Numpy.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h libnpy/npy.hpp -DataIO_OpenDx.o : DataIO_OpenDx.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_OpenDx.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Peaks.o : DataIO_Peaks.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Peaks.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector_Scalar.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_RemLog.o : DataIO_RemLog.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_RemLog.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Std.o : DataIO_Std.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Cluster/Cframes.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Std.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_StringVar.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_VecTraj.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +DataFile.o : DataFile.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Cluster/Cframes.h Cluster/Cmatrix_NC.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataFile.h DataIO.h DataIO_AmberEne.h DataIO_AmberFF.h DataIO_AmberFrcmod.h DataIO_AmberLib.h DataIO_AmberPrep.h DataIO_CCP4.h DataIO_CharmmFastRep.h DataIO_CharmmOutput.h DataIO_CharmmRepLog.h DataIO_CharmmRtfPrm.h DataIO_Cmatrix_Binary.h DataIO_Cmatrix_NC.h DataIO_Coords.h DataIO_Cpout.h DataIO_Evecs.h DataIO_Gnuplot.h DataIO_Grace.h DataIO_LeapRC.h DataIO_Mdout.h DataIO_NetCDF.h DataIO_Numpy.h DataIO_OpenDx.h DataIO_Peaks.h DataIO_RemLog.h DataIO_Std.h DataIO_VecTraj.h DataIO_XVG.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Unit.h Vec3.h +DataFileList.o : DataFileList.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataFilter.o : DataFilter.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO.o : DataIO.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_AmberEne.o : DataIO_AmberEne.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberEne.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_AmberFF.o : DataIO_AmberFF.cpp AmberParamFile.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberFF.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +DataIO_AmberFrcmod.o : DataIO_AmberFrcmod.cpp AmberParamFile.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberFrcmod.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +DataIO_AmberLib.o : DataIO_AmberLib.cpp ArgList.h AssociatedData.h AssociatedData_Connect.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberLib.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_AmberPrep.o : DataIO_AmberPrep.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_AmberPrep.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h Structure/InternalCoords.h Structure/Zmatrix.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_CCP4.o : DataIO_CCP4.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ByteRoutines.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CCP4.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_CharmmFastRep.o : DataIO_CharmmFastRep.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmFastRep.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_CharmmOutput.o : DataIO_CharmmOutput.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmOutput.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_CharmmRepLog.o : DataIO_CharmmRepLog.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmRepLog.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_CharmmRtfPrm.o : DataIO_CharmmRtfPrm.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharmmParamFile.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmRtfPrm.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h DataSet_Topology.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/GetParams.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +DataIO_Cmatrix_Binary.o : DataIO_Cmatrix_Binary.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cluster/Cframes.h Cluster/Cmatrix_Binary.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Cmatrix_Binary.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Cmatrix_NC.o : DataIO_Cmatrix_NC.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cluster/Cframes.h Cluster/Cmatrix_NC.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Cmatrix_NC.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Coords.o : DataIO_Coords.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Coords.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h Trajin_Single.h Unit.h Vec3.h +DataIO_Cpout.o : DataIO_Cpout.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Cpout.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Evecs.o : DataIO_Evecs.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedFrame.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Evecs.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Modes.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Gnuplot.o : DataIO_Gnuplot.cpp ArgList.h Array1D.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Gnuplot.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Grace.o : DataIO_Grace.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Grace.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_LeapRC.o : DataIO_LeapRC.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedFrame.h BufferedLine.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataIO_AmberFF.h DataIO_AmberFrcmod.h DataIO_AmberLib.h DataIO_AmberPrep.h DataIO_Coords.h DataIO_LeapRC.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_LeapOpts.h DataSet_NameMap.h DataSet_Parameters.h DataSet_PdbResMap.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Build.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Parm/AssignParams.h Parm/DihedralParmHolder.h Parm/GB_Params.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h ParmIO.h Parm_Amber.h PdbResMapType.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h Structure/Creator.h Structure/StructureEnum.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h +DataIO_Mdout.o : DataIO_Mdout.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Mdout.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_NetCDF.o : DataIO_NetCDF.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cluster/Cframes.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_NetCDF.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Modes.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_Vector.h DataSet_Vector_Scalar.h DataSet_string.h DataSet_unsignedInt.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h Version.h +DataIO_Numpy.o : DataIO_Numpy.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Numpy.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h libnpy/npy.hpp +DataIO_OpenDx.o : DataIO_OpenDx.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_OpenDx.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Peaks.o : DataIO_Peaks.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Peaks.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector_Scalar.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_RemLog.o : DataIO_RemLog.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_RemLog.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Std.o : DataIO_Std.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Cluster/Cframes.h CmapParmHolder.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Std.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_NameMap.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_Parameters.h DataSet_StringVar.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_VecTraj.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h DataSet.o : DataSet.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Cluster/Cframes.h Cluster/Cmatrix_NC.h CompactFrameArray.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_FRM.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_PairwiseCache_NC.h DataSet_Parameters.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_Vector_Scalar.h DataSet_Zmatrix.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h DataSet_unsignedInt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Unit.h Vec3.h +DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Cluster/Cframes.h Cluster/Cmatrix_NC.h CmapParmHolder.h CompactFrameArray.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_FRM.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_LeapOpts.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_NameMap.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h DataSet_PairwiseCache_NC.h DataSet_Parameters.h DataSet_PdbResMap.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_Vector_Scalar.h DataSet_Zmatrix.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h DataSet_unsignedInt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/GB_Params.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h PdbResMapType.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h Structure/StructureEnum.h SymbolExporting.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Unit.h Vec3.h DataSet_1D.o : DataSet_1D.cpp ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h DataSet_2D.o : DataSet_2D.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_2D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_3D.o : DataSet_3D.cpp AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h -DataSet_Coords.o : DataSet_Coords.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataSet_Coords_CRD.o : DataSet_Coords_CRD.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_CRD.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataSet_Coords_FRM.o : DataSet_Coords_FRM.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_FRM.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DataSet_Coords_REF.o : DataSet_Coords_REF.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TrajFrameCounter.h Trajin.h Trajin_Single.h TypeNameHolder.h Unit.h Vec3.h -DataSet_Coords_TRJ.o : DataSet_Coords_TRJ.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h Trajin_Single.h TypeNameHolder.h Unit.h Vec3.h +DataSet_Coords.o : DataSet_Coords.cpp AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h +DataSet_Coords_CRD.o : DataSet_Coords_CRD.cpp AssociatedData.h Atom.h AtomMask.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_CRD.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h +DataSet_Coords_FRM.o : DataSet_Coords_FRM.cpp AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_FRM.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h +DataSet_Coords_REF.o : DataSet_Coords_REF.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TrajFrameCounter.h Trajin.h Trajin_Single.h Unit.h Vec3.h +DataSet_Coords_TRJ.o : DataSet_Coords_TRJ.cpp AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h Trajin_Single.h Unit.h Vec3.h DataSet_GridDbl.o : DataSet_GridDbl.cpp ArrayIterator.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h DataSet_GridDbl.h Dimension.h FileIO.h FileName.h Grid.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h Vec3.h DataSet_GridFlt.o : DataSet_GridFlt.cpp ArrayIterator.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Grid.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h Vec3.h +DataSet_LeapOpts.o : DataSet_LeapOpts.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_LeapOpts.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Parm/GB_Params.h Range.h TextFormat.h DataSet_Mat3x3.o : DataSet_Mat3x3.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_Mat3x3.h Dimension.h FileIO.h FileName.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h DataSet_MatrixDbl.o : DataSet_MatrixDbl.cpp ArrayIterator.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_2D.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h Matrix.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_MatrixFlt.o : DataSet_MatrixFlt.cpp ArrayIterator.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_2D.h DataSet_MatrixFlt.h Dimension.h FileIO.h FileName.h Matrix.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_Mesh.o : DataSet_Mesh.cpp AssociatedData.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Mesh.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h Spline.h TextFormat.h DataSet_Modes.o : DataSet_Modes.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_2D.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Unit.h Vec3.h +DataSet_NameMap.o : DataSet_NameMap.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_NameMap.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h DataSet_PHREMD_Explicit.o : DataSet_PHREMD_Explicit.cpp AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h DataSet_PHREMD_Implicit.o : DataSet_PHREMD_Implicit.cpp AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PHREMD.h DataSet_PHREMD_Implicit.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h DataSet_PairwiseCache.o : DataSet_PairwiseCache.cpp AssociatedData.h Cluster/Cframes.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PairwiseCache.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_PairwiseCache_MEM.o : DataSet_PairwiseCache_MEM.cpp ArrayIterator.h AssociatedData.h Cluster/Cframes.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PairwiseCache.h DataSet_PairwiseCache_MEM.h Dimension.h FileIO.h FileName.h Matrix.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h DataSet_PairwiseCache_NC.o : DataSet_PairwiseCache_NC.cpp AssociatedData.h Cluster/Cframes.h Cluster/Cmatrix_NC.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PairwiseCache.h DataSet_PairwiseCache_NC.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h -DataSet_Parameters.o : DataSet_Parameters.cpp AssociatedData.h AtomType.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Parameters.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h TextFormat.h TypeNameHolder.h +DataSet_Parameters.o : DataSet_Parameters.cpp AssociatedData.h AtomType.h CmapParmHolder.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Parameters.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h TextFormat.h TypeNameHolder.h +DataSet_PdbResMap.o : DataSet_PdbResMap.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PdbResMap.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h PdbResMapType.h Range.h Structure/StructureEnum.h TextFormat.h DataSet_RemLog.o : DataSet_RemLog.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h ReplicaDimArray.h TextFormat.h DataSet_StringVar.o : DataSet_StringVar.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_StringVar.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_Tensor.o : DataSet_Tensor.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_Tensor.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h SymmetricTensor.h TextFormat.h -DataSet_Topology.o : DataSet_Topology.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Topology.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h +DataSet_Topology.o : DataSet_Topology.cpp AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Topology.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h DataSet_Vector.o : DataSet_Vector.cpp ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h SymbolExporting.h TextFormat.h Vec3.h DataSet_Vector_Scalar.o : DataSet_Vector_Scalar.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Vector_Scalar.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h -DataSet_Zmatrix.o : DataSet_Zmatrix.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Zmatrix.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h Structure/InternalCoords.h Structure/StructureEnum.h Structure/Zmatrix.h TextFormat.h Vec3.h +DataSet_Zmatrix.o : DataSet_Zmatrix.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Zmatrix.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h Structure/InternalCoords.h Structure/Zmatrix.h TextFormat.h Vec3.h DataSet_double.o : DataSet_double.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_float.o : DataSet_float.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_float.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_integer_disk.o : DataSet_integer_disk.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_disk.h Dimension.h FileIO.h FileName.h File_TempName.h MetaData.h NC_Routines.h Parallel.h Range.h TextFormat.h @@ -274,94 +283,101 @@ DataSet_pH.o : DataSet_pH.cpp AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio. DataSet_string.o : DataSet_string.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_string.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_unsignedInt.o : DataSet_unsignedInt.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_unsignedInt.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Deprecated.o : Deprecated.cpp CpptrajStdio.h Deprecated.h DispatchObject.h -DiffusionResults.o : DiffusionResults.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DiffusionResults.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -DihedralSearch.o : DihedralSearch.cpp ArgList.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DihedralSearch.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +DiffusionResults.o : DiffusionResults.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DiffusionResults.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +DihedralSearch.o : DihedralSearch.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DihedralSearch.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h DistRoutines.o : DistRoutines.cpp Box.h DistRoutines.h ImageOption.h Matrix_3x3.h Parallel.h Vec3.h Dist_Imaged.o : Dist_Imaged.cpp Dist_Imaged.h Matrix_3x3.h Parallel.h Vec3.h -Energy.o : Energy.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h Energy.h Energy/Ene_Angle.h Energy/Ene_Bond.h Energy/Ene_LJ_6_12.h Energy/Kernel_Harmonic.h ExclusionArray.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Energy/Ecalc_Nonbond.o : Energy/Ecalc_Nonbond.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ecalc_Nonbond.h Energy/Ene_Decomp_Nonbond.h Energy/Ene_LJPME_6_12.h Energy/Ene_LJ_6_12.h Energy/Ene_Nonbond.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_Decomp.h Energy/EwaldCalc_Decomp_LJPME.h Energy/EwaldCalc_Decomp_PME.h Energy/EwaldCalc_LJPME.h Energy/EwaldCalc_PME.h Energy/EwaldCalc_Regular.h Energy/EwaldParams.h Energy/EwaldParams_LJPME.h Energy/Ewald_Recip.h Energy/Kernel_EwaldAdjust.h Energy/Kernel_LJPME_Adjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_Decomp_LJLR.h PairListEngine_Ewald_Decomp_LJPME.h PairListEngine_Ewald_LJLR.h PairListEngine_Ewald_LJPME.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h helpme_standalone.h -Energy/EnergyDecomposer.o : Energy/EnergyDecomposer.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DistRoutines.h Energy/Ecalc_Nonbond.h Energy/Ene_Angle.h Energy/Ene_Bond.h Energy/Ene_LJ_6_12.h Energy/EnergyDecomposer.h Energy/Kernel_Fourier.h Energy/Kernel_Harmonic.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h Stats_Reduce.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h +Energy.o : Energy.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h Energy.h Energy/Ene_Angle.h Energy/Ene_Bond.h Energy/Ene_LJ_12_6_4.h Energy/Ene_LJ_6_12.h Energy/Kernel_Harmonic.h ExclusionArray.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Energy/CMAP.o : Energy/CMAP.cpp ArrayIterator.h Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/CMAP.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Energy/Ecalc_Nonbond.o : Energy/Ecalc_Nonbond.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ecalc_Nonbond.h Energy/Ene_Decomp_Nonbond.h Energy/Ene_LJPME_6_12.h Energy/Ene_LJ_12_6_4.h Energy/Ene_LJ_6_12.h Energy/Ene_Nonbond.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_Decomp.h Energy/EwaldCalc_Decomp_LJCPME.h Energy/EwaldCalc_Decomp_LJPME.h Energy/EwaldCalc_Decomp_PME.h Energy/EwaldCalc_LJCPME.h Energy/EwaldCalc_LJPME.h Energy/EwaldCalc_PME.h Energy/EwaldCalc_Regular.h Energy/EwaldParams.h Energy/EwaldParams_LJPME.h Energy/Ewald_Recip.h Energy/Kernel_EwaldAdjust.h Energy/Kernel_LJPME_Adjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_Decomp_LJCLR.h PairListEngine_Ewald_Decomp_LJLR.h PairListEngine_Ewald_Decomp_LJPME.h PairListEngine_Ewald_LJCLR.h PairListEngine_Ewald_LJLR.h PairListEngine_Ewald_LJPME.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Topology.h Unit.h Vec3.h helpme_standalone.h +Energy/EnergyDecomposer.o : Energy/EnergyDecomposer.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DistRoutines.h Energy/Ecalc_Nonbond.h Energy/Ene_Angle.h Energy/Ene_Bond.h Energy/Ene_LJ_6_12.h Energy/EnergyDecomposer.h Energy/Kernel_Fourier.h Energy/Kernel_Harmonic.h EwaldOptions.h ExclusionArray.h FileIO.h FileName.h FileTypes.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h Stats_Reduce.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h Unit.h Vec3.h Energy/ErfcFxn.o : Energy/ErfcFxn.cpp CpptrajStdio.h Energy/ErfcFxn.h SplineFxnTable.h +Energy/EwaldCalc_Decomp_LJCPME.o : Energy/EwaldCalc_Decomp_LJCPME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ene_LJ_12_6_4.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_Decomp.h Energy/EwaldCalc_Decomp_LJCPME.h Energy/EwaldParams.h Energy/Kernel_EwaldAdjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_Decomp_LJCLR.h PairListTemplate.h Parallel.h ParameterTypes.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Unit.h Vec3.h helpme_standalone.h Energy/EwaldCalc_Decomp_LJPME.o : Energy/EwaldCalc_Decomp_LJPME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ene_LJPME_6_12.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_Decomp.h Energy/EwaldCalc_Decomp_LJPME.h Energy/EwaldParams.h Energy/EwaldParams_LJPME.h Energy/Kernel_EwaldAdjust.h Energy/Kernel_LJPME_Adjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h EwaldOptions.h ExclusionArray.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_Decomp_LJPME.h PairListTemplate.h Parallel.h ParameterTypes.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Unit.h Vec3.h helpme_standalone.h Energy/EwaldCalc_Decomp_PME.o : Energy/EwaldCalc_Decomp_PME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ene_LJ_6_12.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_Decomp.h Energy/EwaldCalc_Decomp_PME.h Energy/EwaldParams.h Energy/Kernel_EwaldAdjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_Decomp_LJLR.h PairListTemplate.h Parallel.h ParameterTypes.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Unit.h Vec3.h helpme_standalone.h +Energy/EwaldCalc_LJCPME.o : Energy/EwaldCalc_LJCPME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ene_LJ_12_6_4.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_LJCPME.h Energy/EwaldParams.h Energy/Kernel_EwaldAdjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_LJCLR.h PairListTemplate.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Topology.h Unit.h Vec3.h helpme_standalone.h Energy/EwaldCalc_LJPME.o : Energy/EwaldCalc_LJPME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ene_LJPME_6_12.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_LJPME.h Energy/EwaldParams.h Energy/EwaldParams_LJPME.h Energy/Kernel_EwaldAdjust.h Energy/Kernel_LJPME_Adjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h EwaldOptions.h ExclusionArray.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_LJPME.h PairListTemplate.h Parallel.h ParameterTypes.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Unit.h Vec3.h helpme_standalone.h Energy/EwaldCalc_PME.o : Energy/EwaldCalc_PME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ene_LJ_6_12.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_PME.h Energy/EwaldParams.h Energy/Kernel_EwaldAdjust.h Energy/PME_Recip.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_LJLR.h PairListTemplate.h Parallel.h ParameterTypes.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Unit.h Vec3.h helpme_standalone.h Energy/EwaldCalc_Regular.o : Energy/EwaldCalc_Regular.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/Ene_LJ_6_12.h Energy/ErfcFxn.h Energy/EwaldCalc.h Energy/EwaldCalc_Regular.h Energy/EwaldParams.h Energy/Ewald_Recip.h Energy/Kernel_EwaldAdjust.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListEngine_Ewald_LJLR.h PairListTemplate.h Parallel.h ParameterTypes.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Unit.h Vec3.h -Energy/EwaldParams.o : Energy/EwaldParams.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/ErfcFxn.h Energy/EwaldParams.h EwaldOptions.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Energy/EwaldParams_LJPME.o : Energy/EwaldParams_LJPME.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/EwaldParams_LJPME.h EwaldOptions.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Energy/EwaldParams.o : Energy/EwaldParams.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/ErfcFxn.h Energy/EwaldParams.h EwaldOptions.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Topology.h Unit.h Vec3.h +Energy/EwaldParams_LJPME.o : Energy/EwaldParams_LJPME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/EwaldParams_LJPME.h EwaldOptions.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Topology.h Unit.h Vec3.h Energy/Ewald_Recip.o : Energy/Ewald_Recip.cpp Box.h Constants.h CpptrajStdio.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/Ewald_Recip.h EwaldOptions.h Matrix_3x3.h Parallel.h ParameterTypes.h SplineFxnTable.h StringRoutines.h Timer.h Vec3.h Energy/PME_Recip.o : Energy/PME_Recip.cpp Box.h CpptrajStdio.h Energy/PME_Recip.h Energy/PME_RecipParams.h Matrix_3x3.h Parallel.h Timer.h Vec3.h helpme_standalone.h Energy/PME_RecipParams.o : Energy/PME_RecipParams.cpp Box.h CpptrajStdio.h Energy/PME_RecipParams.h EwaldOptions.h Matrix_3x3.h Parallel.h Vec3.h -Energy/VDW_LongRange_Correction.o : Energy/VDW_LongRange_Correction.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/VDW_LongRange_Correction.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Energy/VDW_LongRange_Correction.o : Energy/VDW_LongRange_Correction.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/VDW_LongRange_Correction.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h EnergyArray.o : EnergyArray.cpp CpptrajFile.h CpptrajStdio.h EnergyArray.h FileIO.h FileName.h Parallel.h -Energy_Sander.o : Energy_Sander.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy_Sander.h FileName.h FileTypes.h File_TempName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Energy_Sander.o : Energy_Sander.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy_Sander.h FileName.h FileTypes.h File_TempName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h EnsembleIn.o : EnsembleIn.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h EnsembleIn.h FileName.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h Timer.h TrajFrameCounter.h Unit.h Vec3.h -EnsembleIn_Multi.o : EnsembleIn_Multi.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h EnsembleIn.h EnsembleIn_Multi.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -EnsembleIn_Single.o : EnsembleIn_Single.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleIn.h EnsembleIn_Single.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h +EnsembleIn_Multi.o : EnsembleIn_Multi.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h EnsembleIn.h EnsembleIn_Multi.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryIO.h Unit.h Vec3.h +EnsembleIn_Single.o : EnsembleIn_Single.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleIn.h EnsembleIn_Single.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h TrajectoryIO.h Unit.h Vec3.h EnsembleNavigator.o : EnsembleNavigator.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h EnsembleIn.h EnsembleNavigator.h FileName.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h Timer.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h Unit.h Vec3.h EnsembleOut.o : EnsembleOut.cpp ActionFrameCounter.h BaseIOtype.h Box.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h FileName.h FileTypes.h FramePtrArray.h Matrix_3x3.h OutputTrajCommon.h Parallel.h Range.h ReplicaDimArray.h TrajectoryFile.h Vec3.h -EnsembleOutList.o : EnsembleOutList.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOutList.h EnsembleOut_Multi.h EnsembleOut_Single.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TrajectoryFile.h TypeNameHolder.h Unit.h Vec3.h -EnsembleOut_Multi.o : EnsembleOut_Multi.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOut_Multi.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -EnsembleOut_Single.o : EnsembleOut_Single.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOut_Single.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h +EnsembleOutList.o : EnsembleOutList.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOutList.h EnsembleOut_Multi.h EnsembleOut_Single.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TrajectoryFile.h Unit.h Vec3.h +EnsembleOut_Multi.o : EnsembleOut_Multi.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOut_Multi.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h Unit.h Vec3.h +EnsembleOut_Single.o : EnsembleOut_Single.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOut_Single.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h Unit.h Vec3.h EwaldOptions.o : EwaldOptions.cpp ArgList.h CpptrajStdio.h EwaldOptions.h ExclusionArray.o : ExclusionArray.cpp Atom.h AtomMask.h CharMask.h CpptrajStdio.h ExclusionArray.h MaskToken.h Molecule.h NameType.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Unit.h -Exec_AddMissingRes.o : Exec_AddMissingRes.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h CompactFrameArray.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnergyArray.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_AddMissingRes.h Exec_AddMissingRes_Pres.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MdOpts.h MetaData.h Minimize_SteepestDescent.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Calc.o : Exec_Calc.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Calc.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CatCrd.o : Exec_CatCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CatCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Change.o : Exec_Change.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Change.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ClusterMap.o : Exec_ClusterMap.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterMap.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ClusterMap.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CombineCoords.o : Exec_CombineCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CombineCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Commands.o : Exec_Commands.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Commands.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CompareClusters.o : Exec_CompareClusters.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareClusters.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CompareEnergy.o : Exec_CompareEnergy.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h Energy/Kernel_Fourier.h Energy/Kernel_Harmonic.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareEnergy.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CompareTop.o : Exec_CompareTop.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareTop.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CrdOut.o : Exec_CrdOut.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdOut.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Exec_CrdTransform.o : Exec_CrdTransform.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdTransform.h ExtendedSimilarity.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_CreateSet.o : Exec_CreateSet.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CreateSet.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_DataFile.o : Exec_DataFile.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFile.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_DataFilter.o : Exec_DataFilter.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFilter.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_DataSetCmd.o : Exec_DataSetCmd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h AssociatedData_Connect.h AssociatedData_NOE.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_string.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataSetCmd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Emin.o : Exec_Emin.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnergyArray.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Emin.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MdOpts.h MetaData.h Minimize_SteepestDescent.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ExtendedComparison.o : Exec_ExtendedComparison.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ExtendedComparison.h ExtendedSimilarity.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Flatten.o : Exec_Flatten.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Flatten.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_GenerateAmberRst.o : Exec_GenerateAmberRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_GenerateAmberRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h ImageOption.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Graft.o : Exec_Graft.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Graft.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/Builder.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_HmassRepartition.o : Exec_HmassRepartition.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_HmassRepartition.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_LoadCrd.o : Exec_LoadCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_LoadTraj.o : Exec_LoadTraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadTraj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ParallelAnalysis.o : Exec_ParallelAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParallelAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ParmBox.o : Exec_ParmBox.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BoxArgs.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmBox.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ParmSolvent.o : Exec_ParmSolvent.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmSolvent.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ParmStrip.o : Exec_ParmStrip.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmStrip.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ParmWrite.o : Exec_ParmWrite.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmWrite.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ParseTiming.o : Exec_ParseTiming.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParseTiming.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_PermuteDihedrals.o : Exec_PermuteDihedrals.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h ExclusionArray.h Exec.h Exec_PermuteDihedrals.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h ImageOption.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Exec_Precision.o : Exec_Precision.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Precision.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_PrepareForLeap.o : Exec_PrepareForLeap.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrepareForLeap.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h LeapInterface.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h Structure/Disulfide.h Structure/HisProt.h Structure/ResStatArray.h Structure/Sugar.h Structure/SugarBuilder.h Structure/SugarToken.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Exec_PrintData.o : Exec_PrintData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrintData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Random.o : Exec_Random.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Random.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ReadData.o : Exec_ReadData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ReadEnsembleData.o : Exec_ReadEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_RotateDihedral.o : Exec_RotateDihedral.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RotateDihedral.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Sequence.o : Exec_Sequence.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h AssociatedData_Connect.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Sequence.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/Builder.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Top.o : Exec_Top.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Top.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_Traj.o : Exec_Traj.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Traj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_UpdateParameters.o : Exec_UpdateParameters.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_UpdateParameters.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -Exec_ViewRst.o : Exec_ViewRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h ViewRst.h -Exec_Zmatrix.o : Exec_Zmatrix.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Zmatrix.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Zmatrix.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/InternalCoords.h Structure/StructureEnum.h Structure/Zmatrix.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -ExtendedSimilarity.o : ExtendedSimilarity.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h ExtendedSimilarity.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Exec_AddMissingRes.o : Exec_AddMissingRes.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h CharMask.h CompactFrameArray.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnergyArray.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_AddMissingRes.h Exec_AddMissingRes_Pres.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MdOpts.h MetaData.h Minimize_SteepestDescent.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h ParmFile.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h Trajout_Single.h Unit.h Vec3.h +Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Build.o : Exec_Build.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h ActionTopWriter.h Action_FixAtomOrder.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h AssociatedData_Connect.h Atom.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataIO_Coords.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_LeapOpts.h DataSet_Parameters.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h ExclusionArray.h Exec.h Exec_Build.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h ImageOption.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h PairList.h Parallel.h ParameterTypes.h Parm/AssignParams.h Parm/DihedralParmHolder.h Parm/GB_Params.h Parm/ImproperParmHolder.h Parm/LJ1264_Params.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h ParmFile.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h Structure/AddIons.h Structure/Builder.h Structure/Creator.h Structure/Disulfide.h Structure/HisProt.h Structure/PdbCleaner.h Structure/ResStatArray.h Structure/RingFinder.h Structure/Solvate.h Structure/StructureEnum.h Structure/Sugar.h Structure/SugarBuilder.h Structure/SugarToken.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h +Exec_Calc.o : Exec_Calc.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Calc.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CatCrd.o : Exec_CatCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CatCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Change.o : Exec_Change.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_NameMap.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Change.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/GB_Params.h Parm/LJ1264_Params.h Parm/ParmEnum.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h +Exec_ClusterMap.o : Exec_ClusterMap.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h ClusterMap.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ClusterMap.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CombineCoords.o : Exec_CombineCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CombineCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Commands.o : Exec_Commands.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Commands.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CompareClusters.o : Exec_CompareClusters.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareClusters.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CompareEnergy.o : Exec_CompareEnergy.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h Energy/Kernel_Fourier.h Energy/Kernel_Harmonic.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareEnergy.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CompareTop.o : Exec_CompareTop.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareTop.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CrdOut.o : Exec_CrdOut.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdOut.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h Unit.h Vec3.h +Exec_CrdTransform.o : Exec_CrdTransform.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdTransform.h ExtendedSimilarity.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_CreateSet.o : Exec_CreateSet.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CreateSet.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_DataFile.o : Exec_DataFile.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFile.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_DataFilter.o : Exec_DataFilter.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataFilter.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFilter.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_DataSetCmd.o : Exec_DataSetCmd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h AssociatedData_Connect.h AssociatedData_NOE.h Atom.h AtomMask.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_string.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataSetCmd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Desc.o : Exec_Desc.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Desc.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Emin.o : Exec_Emin.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnergyArray.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Emin.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MdOpts.h MetaData.h Minimize_SteepestDescent.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ExtendedComparison.o : Exec_ExtendedComparison.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ExtendedComparison.h ExtendedSimilarity.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Flatten.o : Exec_Flatten.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Flatten.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_GenerateAmberRst.o : Exec_GenerateAmberRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_GenerateAmberRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h ImageOption.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Graft.o : Exec_Graft.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h AssociatedData_Connect.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Graft.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/Builder.h Structure/InternalCoords.h Structure/Zmatrix.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_HmassRepartition.o : Exec_HmassRepartition.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_HmassRepartition.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_LoadCrd.o : Exec_LoadCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h Unit.h Vec3.h +Exec_LoadTraj.o : Exec_LoadTraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadTraj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Mutate.o : Exec_Mutate.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Mutate.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/Creator.h Structure/StructureEnum.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ParallelAnalysis.o : Exec_ParallelAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParallelAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ParmBox.o : Exec_ParmBox.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BoxArgs.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmBox.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ParmSolvent.o : Exec_ParmSolvent.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmSolvent.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ParmStrip.o : Exec_ParmStrip.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmStrip.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ParmWrite.o : Exec_ParmWrite.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmWrite.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ParseTiming.o : Exec_ParseTiming.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParseTiming.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_PermuteDihedrals.o : Exec_PermuteDihedrals.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h ExclusionArray.h Exec.h Exec_PermuteDihedrals.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h ImageOption.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h PairList.h Parallel.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/RingFinder.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h Unit.h Vec3.h +Exec_Precision.o : Exec_Precision.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Precision.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_PrepareForLeap.o : Exec_PrepareForLeap.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMap.h AtomMask.h BaseIOtype.h Box.h CharMask.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrepareForLeap.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h LeapInterface.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h Remote.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h Structure/Disulfide.h Structure/HisProt.h Structure/MetalCenterFinder.h Structure/PdbCleaner.h Structure/ResStatArray.h Structure/Sugar.h Structure/SugarBuilder.h Structure/SugarToken.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h Unit.h Vec3.h +Exec_PrintData.o : Exec_PrintData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrintData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Random.o : Exec_Random.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Random.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ReadData.o : Exec_ReadData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ReadEnsembleData.o : Exec_ReadEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_RotateDihedral.o : Exec_RotateDihedral.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RotateDihedral.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Sequence.o : Exec_Sequence.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h AssociatedData_Connect.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Sequence.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/AssignParams.h Parm/DihedralParmHolder.h Parm/GB_Params.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/Builder.h Structure/Creator.h Structure/StructureEnum.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h +Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h Unit.h Vec3.h +Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Source.o : Exec_Source.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataIO_LeapRC.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Source.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CompactFrameArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Top.o : Exec_Top.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Top.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_Traj.o : Exec_Traj.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Traj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +Exec_UpdateParameters.o : Exec_UpdateParameters.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_UpdateParameters.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/AssignParams.h Parm/DihedralParmHolder.h Parm/GetParams.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h +Exec_ViewRst.o : Exec_ViewRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h ViewRst.h +Exec_Zmatrix.o : Exec_Zmatrix.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Zmatrix.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Zmatrix.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h Structure/InternalCoords.h Structure/Zmatrix.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +ExtendedSimilarity.o : ExtendedSimilarity.cpp AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h ExtendedSimilarity.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h ExternalFxn.o : ExternalFxn.cpp Random.h FileIO_Bzip2.o : FileIO_Bzip2.cpp CpptrajStdio.h FileIO.h FileIO_Bzip2.h FileIO_Gzip.o : FileIO_Gzip.cpp CpptrajStdio.h FileIO.h FileIO_Gzip.h @@ -372,73 +388,83 @@ FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileType.o : FileType.cpp FileType.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h -ForLoop.o : ForLoop.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -ForLoop_inData.o : ForLoop_inData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h DataSet_string.h DataSet_unsignedInt.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_inData.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -ForLoop_overSets.o : ForLoop_overSets.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_overSets.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h +ForLoop.o : ForLoop.cpp AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +ForLoop_inData.o : ForLoop_inData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h DataSet_string.h DataSet_unsignedInt.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_inData.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +ForLoop_overSets.o : ForLoop_overSets.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_overSets.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h Frame.o : Frame.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Unit.h Vec3.h -GIST_PME.o : GIST_PME.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/Kernel_EwaldAdjust.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h FileName.h Frame.h GIST_PME.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h helpme_standalone.h +GIST_PME.o : GIST_PME.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Energy/ErfcFxn.h Energy/EwaldParams.h Energy/Kernel_EwaldAdjust.h Energy/PME_RecipParams.h Energy/VDW_LongRange_Correction.h EwaldOptions.h ExclusionArray.h FileName.h Frame.h GIST_PME.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h PairList.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SplineFxnTable.h SymbolExporting.h Timer.h Topology.h Unit.h Vec3.h helpme_standalone.h GistEntropyUtils.o : GistEntropyUtils.cpp CpptrajFile.h FileIO.h FileName.h GistEntropyUtils.h Parallel.h Vec3.h Gpu.o : Gpu.cpp Gpu.h -GridAction.o : GridAction.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +GridAction.o : GridAction.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridAction.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h GridBin.o : GridBin.cpp Box.h CpptrajStdio.h GridBin.h Matrix_3x3.h Parallel.h Vec3.h -GridMover.o : GridMover.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h +GridMover.o : GridMover.cpp AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h GridMover.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h +GuessAtomHybridization.o : GuessAtomHybridization.cpp Atom.h AtomType.h Constants.h GuessAtomHybridization.h NameType.h ParameterTypes.h SymbolExporting.h HistBin.o : HistBin.cpp Constants.h CpptrajStdio.h Dimension.h HistBin.h Hungarian.o : Hungarian.cpp ArrayIterator.h Constants.h CpptrajStdio.h Hungarian.h Matrix.h ImageRoutines.o : ImageRoutines.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h Frame.h ImageOption.h ImageRoutines.h ImageTypes.h Image_List.h Image_List_Mask.h Image_List_Pair.h Image_List_Pair_CoM.h Image_List_Pair_First.h Image_List_Pair_Geom.h Image_List_Unit.h Image_List_Unit_CoM.h Image_List_Unit_First.h Image_List_Unit_Geom.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Unit.h Vec3.h -Image_List_Mask.o : Image_List_Mask.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h Image_List.h Image_List_Mask.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Image_List_Pair.o : Image_List_Pair.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h Image_List.h Image_List_Pair.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Image_List_Unit.o : Image_List_Unit.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h Image_List.h Image_List_Unit.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Image_List_Mask.o : Image_List_Mask.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h Image_List.h Image_List_Mask.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h +Image_List_Pair.o : Image_List_Pair.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h Image_List.h Image_List_Pair.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Image_List_Unit.o : Image_List_Unit.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h Image_List.h Image_List_Unit.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h InputTrajCommon.o : InputTrajCommon.cpp CpptrajStdio.h FileName.h InputTrajCommon.h TrajFrameCounter.h -InteractionData.o : InteractionData.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h InteractionData.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +InteractionData.o : InteractionData.cpp AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h InteractionData.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h KDE.o : KDE.cpp AssociatedData.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h HistBin.h KDE.h MetaData.h Parallel.h Range.h TextFormat.h -LeapInterface.o : LeapInterface.cpp ArgList.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h File_TempName.h Frame.h LeapInterface.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +LeapInterface.o : LeapInterface.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h File_TempName.h Frame.h LeapInterface.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h MapAtom.o : MapAtom.cpp Atom.h MapAtom.h NameType.h SymbolExporting.h -MaskArray.o : MaskArray.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +MaskArray.o : MaskArray.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h MaskToken.o : MaskToken.cpp ArgList.h Atom.h CpptrajStdio.h DistRoutines.h ImageOption.h MaskToken.h Molecule.h NameType.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Unit.h Matrix_3x3.o : Matrix_3x3.cpp Constants.h CpptrajStdio.h Matrix_3x3.h Parallel.h Vec3.h MdOpts.o : MdOpts.cpp ArgList.h Constants.h Constraints.h CpptrajStdio.h MdOpts.h ParameterTypes.h MetaData.o : MetaData.cpp CpptrajStdio.h FileName.h MetaData.h Range.h StringRoutines.h -Minimize_SteepestDescent.o : Minimize_SteepestDescent.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h EnergyArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Minimize_SteepestDescent.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Mol.o : Mol.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Mol.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Mol2File.o : Mol2File.cpp Atom.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Mol2File.h NameType.h Parallel.h Residue.h StringRoutines.h SymbolExporting.h +Minimize_SteepestDescent.o : Minimize_SteepestDescent.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h EnergyArray.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Minimize_SteepestDescent.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h PotentialFunction.h PotentialTerm.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h +ModXNA_Info.o : ModXNA_Info.cpp ArgList.h CpptrajStdio.h ModXNA_Info.h +Mol.o : Mol.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Mol.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Mol2File.o : Mol2File.cpp Atom.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h ModXNA_Info.h Mol2File.h NameType.h Parallel.h Residue.h StringRoutines.h SymbolExporting.h NC_Routines.o : NC_Routines.cpp CpptrajStdio.h NC_Routines.h NDiff.o : NDiff.cpp ArgList.h BufferedLine.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NDiff.h Parallel.h StringRoutines.h NameType.o : NameType.cpp CpptrajStdio.h NameType.h NetcdfFile.o : NetcdfFile.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParallelNetcdf.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Unit.h Vec3.h Version.h OMM_helpers.o : OMM_helpers.cpp Constants.h OMM_helpers.h ParameterTypes.h -OutputTrajCommon.o : OutputTrajCommon.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h +OutputTrajCommon.o : OutputTrajCommon.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h Unit.h Vec3.h PDBfile.o : PDBfile.cpp Atom.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h PDBfile.h Parallel.h Residue.h StringRoutines.h SymbolExporting.h PairList.o : PairList.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Timer.h Unit.h Vec3.h Parallel.o : Parallel.cpp Parallel.h ParallelNetcdf.o : ParallelNetcdf.cpp CpptrajStdio.h Parallel.h ParallelNetcdf.h ParallelSetFrameNum.o : ParallelSetFrameNum.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h ParallelSetFrameNum.h Range.h TextFormat.h -ParameterSet.o : ParameterSet.cpp AtomType.h Constants.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h TypeNameHolder.h UpdateParameters.h -ParmFile.o : ParmFile.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedFrame.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Parm_Amber.h Parm_CIF.h Parm_CharmmPsf.h Parm_Gromacs.h Parm_Mol2.h Parm_PDB.h Parm_SDF.h Parm_Tinker.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_Amber.o : Parm_Amber.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedFrame.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h ExclusionArray.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_Amber.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_CIF.o : Parm_CIF.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h CIFfile.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_CIF.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_CharmmPsf.o : Parm_CharmmPsf.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h CharmmParamFile.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Mol.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_CharmmPsf.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_Gromacs.o : Parm_Gromacs.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_Gromacs.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_Mol2.o : Parm_Mol2.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Mol2File.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_Mol2.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_PDB.o : Parm_PDB.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_PDB.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_SDF.o : Parm_SDF.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_SDF.h Range.h ReplicaDimArray.h Residue.h SDFfile.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Parm_Tinker.o : Parm_Tinker.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmIO.h Parm_Tinker.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TinkerFile.h Topology.h TypeNameHolder.h Unit.h Vec3.h -PotentialFunction.o : PotentialFunction.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h ExclusionArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MdOpts.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialFunction.h PotentialTerm.h PotentialTerm_Angle.h PotentialTerm_Bond.h PotentialTerm_Dihedral.h PotentialTerm_LJ_Coulomb.h PotentialTerm_OpenMM.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Parm/AssignParams.o : Parm/AssignParams.cpp Atom.h AtomMask.h AtomType.h Box.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h GuessAtomHybridization.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/../Structure/GenerateConnectivityArrays.h Parm/AssignParams.h Parm/DihedralParmHolder.h Parm/GetParams.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmArray.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Parm/Bond_Params.o : Parm/Bond_Params.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/Bond_Params.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Parm/DihedralParmSet.o : Parm/DihedralParmSet.cpp AtomType.h CmapParmHolder.h Constants.h CpptrajStdio.h FileName.h NameType.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/DihedralParmSet.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h TypeNameHolder.h +Parm/GB_Params.o : Parm/GB_Params.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/GB_Params.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Parm/GetParams.o : Parm/GetParams.cpp Atom.h AtomMask.h AtomType.h Box.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/DihedralParmSet.h Parm/GetParams.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Parm/LJ1264_Params.o : Parm/LJ1264_Params.cpp ArgList.h Atom.h AtomMask.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/LJ1264_Params.h Parm/ParmEnum.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h +Parm/Merge.o : Parm/Merge.cpp Atom.h Constants.h CpptrajStdio.h NameType.h ParameterTypes.h Parm/Merge.h Parm/ParmEnum.h Parm/ParmHolder.h Residue.h StringRoutines.h SymbolExporting.h TypeNameHolder.h +Parm/ParameterSet.o : Parm/ParameterSet.cpp AtomType.h CmapParmHolder.h Constants.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h TypeNameHolder.h UpdateParameters.h +Parm/ParmEnum.o : Parm/ParmEnum.cpp Parm/ParmEnum.h +ParmFile.o : ParmFile.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedFrame.h BufferedLine.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h ParmFile.h ParmIO.h Parm_Amber.h Parm_CIF.h Parm_CharmmPsf.h Parm_Gromacs.h Parm_Mol2.h Parm_PDB.h Parm_SDF.h Parm_Tinker.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Parm_Amber.o : Parm_Amber.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h BufferedFrame.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h ExclusionArray.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/GetParams.h ParmIO.h Parm_Amber.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h Unit.h Vec3.h +Parm_CIF.o : Parm_CIF.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h CIFfile.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmIO.h Parm_CIF.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h +Parm_CharmmPsf.o : Parm_CharmmPsf.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h CharmmParamFile.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Mol.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/AssignParams.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h ParmIO.h Parm_CharmmPsf.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Parm_Gromacs.o : Parm_Gromacs.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmIO.h Parm_Gromacs.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h +Parm_Mol2.o : Parm_Mol2.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Mol2File.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmIO.h Parm_Mol2.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Parm_PDB.o : Parm_PDB.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterTypes.h ParmIO.h Parm_PDB.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Timer.h Topology.h Unit.h Vec3.h +Parm_SDF.o : Parm_SDF.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmIO.h Parm_SDF.h Range.h ReplicaDimArray.h Residue.h SDFfile.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Parm_Tinker.o : Parm_Tinker.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h BondSearch.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h ParmIO.h Parm_Tinker.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TinkerFile.h Topology.h Unit.h Vec3.h +PotentialFunction.o : PotentialFunction.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h ExclusionArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MdOpts.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PotentialFunction.h PotentialTerm.h PotentialTerm_Angle.h PotentialTerm_Bond.h PotentialTerm_Dihedral.h PotentialTerm_LJ_Coulomb.h PotentialTerm_OpenMM.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h PotentialTerm.o : PotentialTerm.cpp PotentialTerm.h -PotentialTerm_Angle.o : PotentialTerm_Angle.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h EnergyArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialTerm.h PotentialTerm_Angle.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -PotentialTerm_Bond.o : PotentialTerm_Bond.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h EnergyArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialTerm.h PotentialTerm_Bond.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -PotentialTerm_Dihedral.o : PotentialTerm_Dihedral.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h EnergyKernel_NonBond_Simple.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialTerm.h PotentialTerm_Dihedral.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -PotentialTerm_LJ_Coulomb.o : PotentialTerm_LJ_Coulomb.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h EnergyKernel_NonBond_Simple.h ExclusionArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MdOpts.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialTerm.h PotentialTerm_LJ_Coulomb.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -PotentialTerm_OpenMM.o : PotentialTerm_OpenMM.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MdOpts.h Molecule.h NameType.h OMM_helpers.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PotentialTerm.h PotentialTerm_OpenMM.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +PotentialTerm_Angle.o : PotentialTerm_Angle.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h EnergyArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PotentialTerm.h PotentialTerm_Angle.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +PotentialTerm_Bond.o : PotentialTerm_Bond.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h EnergyArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PotentialTerm.h PotentialTerm_Bond.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +PotentialTerm_Dihedral.o : PotentialTerm_Dihedral.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h EnergyKernel_NonBond_Simple.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PotentialTerm.h PotentialTerm_Dihedral.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +PotentialTerm_LJ_Coulomb.o : PotentialTerm_LJ_Coulomb.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h EnergyKernel_NonBond_Simple.h ExclusionArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MdOpts.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h PotentialTerm.h PotentialTerm_LJ_Coulomb.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +PotentialTerm_OpenMM.o : PotentialTerm_OpenMM.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h EnergyArray.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MdOpts.h ModXNA_Info.h Molecule.h NameType.h OMM_helpers.h Parallel.h ParameterTypes.h PotentialTerm.h PotentialTerm_OpenMM.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h ProgressBar.o : ProgressBar.cpp CpptrajStdio.h ProgressBar.h ProgressTimer.o : ProgressTimer.cpp CpptrajStdio.h ProgressTimer.h Timer.h PubFFT.o : PubFFT.cpp ArrayIterator.h ComplexArray.h CpptrajStdio.h PubFFT.h -Pucker_PuckerMask.o : Pucker_PuckerMask.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Pucker_PuckerMask.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Pucker_PuckerSearch.o : Pucker_PuckerSearch.cpp ArgList.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Pucker.h Pucker_PuckerMask.h Pucker_PuckerSearch.h Pucker_PuckerToken.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Pucker_PuckerToken.o : Pucker_PuckerToken.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Pucker_PuckerMask.h Pucker_PuckerToken.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Pucker_PuckerMask.o : Pucker_PuckerMask.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Pucker_PuckerMask.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Pucker_PuckerSearch.o : Pucker_PuckerSearch.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Pucker.h Pucker_PuckerMask.h Pucker_PuckerSearch.h Pucker_PuckerToken.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h +Pucker_PuckerToken.o : Pucker_PuckerToken.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Pucker_PuckerMask.h Pucker_PuckerToken.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Unit.h Vec3.h QuaternionRMSD.o : QuaternionRMSD.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h QuaternionRMSD.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Unit.h Vec3.h qcprot.h RNG.o : RNG.cpp CpptrajStdio.h RNG.h RNG_Marsaglia.o : RNG_Marsaglia.cpp CpptrajStdio.h RNG.h RNG_Marsaglia.h @@ -446,12 +472,13 @@ RNG_MersenneTwister.o : RNG_MersenneTwister.cpp CpptrajStdio.h RNG.h RNG_Mersenn RNG_PCG32.o : RNG_PCG32.cpp CpptrajStdio.h RNG.h RNG_PCG32.h pcg_random.hpp RNG_Stdlib.o : RNG_Stdlib.cpp RNG.h RNG_Stdlib.h RNG_Xoshiro128pp.o : RNG_Xoshiro128pp.cpp RNG.h RNG_Xoshiro128pp.h xoshiro128plusplus.h -RPNcalc.o : RPNcalc.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +RPNcalc.o : RPNcalc.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h Random.o : Random.cpp CpptrajStdio.h RNG.h RNG_Marsaglia.h RNG_MersenneTwister.h RNG_PCG32.h RNG_Stdlib.h RNG_Xoshiro128pp.h Random.h pcg_random.hpp Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h StringRoutines.h -ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h -ReferenceAction.o : ReferenceAction.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Unit.h Vec3.h +ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h +ReferenceAction.o : ReferenceAction.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h Unit.h Vec3.h RemdReservoirNC.o : RemdReservoirNC.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h RemdReservoirNC.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Unit.h Vec3.h +Remote.o : Remote.cpp CpptrajStdio.h FileName.h Remote.h Residue.o : Residue.cpp CpptrajStdio.h NameType.h Residue.h SDFfile.o : SDFfile.cpp Atom.h CpptrajFile.h FileIO.h FileName.h NameType.h Parallel.h SDFfile.h StringRoutines.h SymbolExporting.h SimplexMin.o : SimplexMin.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Random.h Range.h SimplexMin.h TextFormat.h @@ -460,69 +487,76 @@ Spline.o : Spline.cpp CpptrajStdio.h Spline.h SplineFxnTable.o : SplineFxnTable.cpp Constants.h CpptrajStdio.h Spline.h SplineFxnTable.h StringRoutines.h Stats_Reduce.o : Stats_Reduce.cpp OnlineVarT.h Parallel.h Stats_Reduce.h StringRoutines.o : StringRoutines.cpp CpptrajStdio.h StringRoutines.h -Structure/Builder.o : Structure/Builder.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/BuildAtom.h Structure/Builder.h Structure/Chirality.h Structure/InternalCoords.h Structure/StructureEnum.h Structure/Zmatrix.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Structure/Chirality.o : Structure/Chirality.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Chirality.h Structure/StructureEnum.h SymbolExporting.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Structure/Disulfide.o : Structure/Disulfide.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Disulfide.h Structure/ResStatArray.h Structure/StructureRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Structure/FunctionalGroup.o : Structure/FunctionalGroup.cpp Atom.h AtomMap.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/FunctionalGroup.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Structure/FxnGroupBuilder.o : Structure/FxnGroupBuilder.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/FunctionalGroup.h Structure/FxnGroupBuilder.h Structure/StructureRoutines.h Structure/Sugar.h Structure/SugarToken.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Structure/HisProt.o : Structure/HisProt.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/HisProt.h Structure/StructureRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Structure/InternalCoords.o : Structure/InternalCoords.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/InternalCoords.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Structure/Model.o : Structure/Model.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/BuildAtom.h Structure/Model.h Structure/StructureEnum.h SymbolExporting.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h +Structure/AddIons.o : Structure/AddIons.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DistRoutines.h FileIO.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Structure/../Parm/../AtomType.h Structure/../Parm/../CmapParmHolder.h Structure/../Parm/../Constants.h Structure/../Parm/../FileName.h Structure/../Parm/../NameType.h Structure/../Parm/../ParameterTypes.h Structure/../Parm/../Parm/ParmEnum.h Structure/../Parm/../TypeNameHolder.h Structure/../Parm/DihedralParmHolder.h Structure/../Parm/ImproperParmHolder.h Structure/../Parm/ParameterSet.h Structure/../Parm/ParmEnum.h Structure/../Parm/ParmHolder.h Structure/AddIons.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h +Structure/Builder.o : Structure/Builder.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h GuessAtomHybridization.h ImageOption.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/../Parm/../AtomType.h Structure/../Parm/../CmapParmHolder.h Structure/../Parm/../Constants.h Structure/../Parm/../FileName.h Structure/../Parm/../NameType.h Structure/../Parm/../ParameterTypes.h Structure/../Parm/../Parm/ParmEnum.h Structure/../Parm/../TypeNameHolder.h Structure/../Parm/DihedralParmHolder.h Structure/../Parm/ImproperParmHolder.h Structure/../Parm/ParameterSet.h Structure/../Parm/ParmEnum.h Structure/../Parm/ParmHolder.h Structure/Builder.h Structure/Chirality.h Structure/GenerateConnectivityArrays.h Structure/InternalCoords.h Structure/StructureEnum.h Structure/Zmatrix.h SymbolExporting.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h +Structure/Chirality.o : Structure/Chirality.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Chirality.h Structure/StructureEnum.h SymbolExporting.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Structure/Creator.o : Structure/Creator.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h CmapParmHolder.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_NameMap.h DataSet_Parameters.h DataSet_PdbResMap.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/DihedralParmHolder.h Parm/ImproperParmHolder.h Parm/ParameterSet.h Parm/ParmEnum.h Parm/ParmHolder.h PdbResMapType.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Structure/Creator.h Structure/GenerateConnectivityArrays.h Structure/StructureEnum.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Structure/Disulfide.o : Structure/Disulfide.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Disulfide.h Structure/ResStatArray.h Structure/StructureRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/FunctionalGroup.o : Structure/FunctionalGroup.cpp Atom.h AtomMap.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/FunctionalGroup.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/FxnGroupBuilder.o : Structure/FxnGroupBuilder.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/FunctionalGroup.h Structure/FxnGroupBuilder.h Structure/StructureRoutines.h Structure/Sugar.h Structure/SugarToken.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/GenerateConnectivityArrays.o : Structure/GenerateConnectivityArrays.cpp Atom.h Constants.h CpptrajStdio.h NameType.h ParameterTypes.h Residue.h Structure/GenerateConnectivityArrays.h SymbolExporting.h +Structure/HisProt.o : Structure/HisProt.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/HisProt.h Structure/StructureRoutines.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/InternalCoords.o : Structure/InternalCoords.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/InternalCoords.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/LeastSquaresPlane.o : Structure/LeastSquaresPlane.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h Segment.h Structure/LeastSquaresPlane.h SymbolExporting.h Unit.h Vec3.h +Structure/MetalCenterFinder.o : Structure/MetalCenterFinder.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/MetalCenterFinder.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/PdbCleaner.o : Structure/PdbCleaner.cpp ArgList.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/PdbCleaner.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/RingFinder.o : Structure/RingFinder.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/RingFinder.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/Solvate.o : Structure/Solvate.cpp Action.h ActionState.h Action_AutoImage.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h Structure/../Parm/../AtomType.h Structure/../Parm/../CmapParmHolder.h Structure/../Parm/../Constants.h Structure/../Parm/../FileName.h Structure/../Parm/../NameType.h Structure/../Parm/../ParameterTypes.h Structure/../Parm/../Parm/ParmEnum.h Structure/../Parm/../TypeNameHolder.h Structure/../Parm/DihedralParmHolder.h Structure/../Parm/ImproperParmHolder.h Structure/../Parm/ParameterSet.h Structure/../Parm/ParmEnum.h Structure/../Parm/ParmHolder.h Structure/Solvate.h SymbolExporting.h TextFormat.h Timer.h Topology.h Unit.h Vec3.h Structure/StructureEnum.o : Structure/StructureEnum.cpp Structure/StructureEnum.h Structure/StructureRoutines.o : Structure/StructureRoutines.cpp Atom.h CpptrajStdio.h NameType.h Residue.h Structure/StructureRoutines.h SymbolExporting.h -Structure/Sugar.o : Structure/Sugar.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Sugar.h Structure/SugarToken.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h -Structure/SugarBuilder.o : Structure/SugarBuilder.cpp ArgList.h Atom.h AtomMap.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DistRoutines.h FileIO.h FileName.h Frame.h ImageOption.h MapAtom.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Chirality.h Structure/FunctionalGroup.h Structure/FxnGroupBuilder.h Structure/LinkAtom.h Structure/ResStatArray.h Structure/StructureEnum.h Structure/StructureRoutines.h Structure/Sugar.h Structure/SugarBuilder.h Structure/SugarLinkAtoms.h Structure/SugarToken.h SymbolExporting.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Structure/SugarLinkAtoms.o : Structure/SugarLinkAtoms.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h Structure/LinkAtom.h Structure/SugarLinkAtoms.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Structure/Sugar.o : Structure/Sugar.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Sugar.h Structure/SugarToken.h SymbolExporting.h Topology.h Unit.h Vec3.h +Structure/SugarBuilder.o : Structure/SugarBuilder.cpp ArgList.h Atom.h AtomMap.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DistRoutines.h FileIO.h FileName.h Frame.h ImageOption.h MapAtom.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Chirality.h Structure/FunctionalGroup.h Structure/FxnGroupBuilder.h Structure/LinkAtom.h Structure/ResStatArray.h Structure/StructureEnum.h Structure/StructureRoutines.h Structure/Sugar.h Structure/SugarBuilder.h Structure/SugarLinkAtoms.h Structure/SugarToken.h SymbolExporting.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Structure/SugarLinkAtoms.o : Structure/SugarLinkAtoms.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h Structure/LinkAtom.h Structure/SugarLinkAtoms.h SymbolExporting.h Topology.h Unit.h Vec3.h Structure/SugarToken.o : Structure/SugarToken.cpp ArgList.h CpptrajStdio.h Structure/SugarToken.h -Structure/Zmatrix.o : Structure/Zmatrix.cpp Atom.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/BuildAtom.h Structure/InternalCoords.h Structure/Model.h Structure/StructureEnum.h Structure/Zmatrix.h SymbolExporting.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -StructureCheck.o : StructureCheck.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h ExclusionArray.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StructureCheck.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h Vec3.h -StructureMapper.o : StructureMapper.cpp AssociatedData.h Atom.h AtomMap.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Chirality.h Structure/StructureEnum.h StructureMapper.h SymbolExporting.h TextFormat.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -SymmetricRmsdCalc.o : SymmetricRmsdCalc.cpp ArrayIterator.h Atom.h AtomMap.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h Hungarian.h ImageOption.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h Topology.h TypeNameHolder.h Unit.h Vec3.h +Structure/Zmatrix.o : Structure/Zmatrix.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/GenerateConnectivityArrays.h Structure/InternalCoords.h Structure/Zmatrix.h SymbolExporting.h Topology.h TorsionRoutines.h Unit.h Vec3.h +StructureCheck.o : StructureCheck.cpp Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DistRoutines.h ExclusionArray.h FileIO.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h PairList.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/LeastSquaresPlane.h Structure/RingFinder.h StructureCheck.h SymbolExporting.h Timer.h Topology.h Unit.h Vec3.h +StructureMapper.o : StructureMapper.cpp AssociatedData.h Atom.h AtomMap.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h Structure/Chirality.h Structure/StructureEnum.h StructureMapper.h SymbolExporting.h TextFormat.h Topology.h TorsionRoutines.h Unit.h Vec3.h +SymmetricRmsdCalc.o : SymmetricRmsdCalc.cpp ArrayIterator.h Atom.h AtomMap.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h Hungarian.h ImageOption.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricRmsdCalc.h Topology.h Unit.h Vec3.h TextBlockBuffer.o : TextBlockBuffer.cpp BufferedLine.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Parallel.h TextBlockBuffer.h TextFormat.o : TextFormat.cpp StringRoutines.h TextFormat.h Timer.o : Timer.cpp CpptrajStdio.h Timer.h TinkerFile.o : TinkerFile.cpp ArgList.h Atom.h AtomMask.h Box.h BufferedLine.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TinkerFile.h Unit.h Vec3.h -TopInfo.o : TopInfo.cpp AssociatedData.h Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h DistRoutines.h FileIO.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Mol.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h TopInfo.h Topology.h TorsionRoutines.h TypeNameHolder.h Unit.h Vec3.h -Topology.o : Topology.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Unit.h UpdateParameters.h Vec3.h +TopInfo.o : TopInfo.cpp AssociatedData.h Atom.h AtomMask.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h DistRoutines.h FileIO.h FileName.h Frame.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Mol.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h TopInfo.h Topology.h TorsionRoutines.h Unit.h Vec3.h +Topology.o : Topology.cpp Atom.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Parm/AssignParams.h Parm/GetParams.h Parm/Merge.h Parm/ParmEnum.h Parm/ParmHolder.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Unit.h UpdateParameters.h Vec3.h TorsionRoutines.o : TorsionRoutines.cpp Constants.h TorsionRoutines.h Vec3.h TrajFrameCounter.o : TrajFrameCounter.cpp ArgList.h CpptrajStdio.h TrajFrameCounter.h -TrajIOarray.o : TrajIOarray.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_AmberCoord.o : Traj_AmberCoord.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedFrame.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Traj_AmberCoord.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_AmberNetcdf.o : Traj_AmberNetcdf.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParallelNetcdf.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_AmberNetcdf.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_AmberRestart.o : Traj_AmberRestart.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedFrame.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextBlockBuffer.h TextFormat.h Topology.h Traj_AmberRestart.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_AmberRestartNC.o : Traj_AmberRestartNC.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_AmberRestartNC.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_Binpos.o : Traj_Binpos.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_Binpos.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_CIF.o : Traj_CIF.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CIFfile.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_CIF.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_CharmmCor.o : Traj_CharmmCor.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_CharmmCor.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_CharmmDcd.o : Traj_CharmmDcd.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ByteRoutines.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_CharmmDcd.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_CharmmRestart.o : Traj_CharmmRestart.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedFrame.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h Traj_CharmmRestart.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_Conflib.o : Traj_Conflib.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_Conflib.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_DTR.o : Traj_DTR.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_DTR.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h vmdplugin/dtrplugin.hxx -Traj_GmxDump.o : Traj_GmxDump.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxDump.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_GmxTng.o : Traj_GmxTng.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxTng.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_GmxTrX.o : Traj_GmxTrX.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h ByteRoutines.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxTrX.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_GmxXtc.o : Traj_GmxXtc.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxXtc.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_Gro.o : Traj_Gro.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_Gro.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_H5.o : Traj_H5.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_H5.h TrajectoryIO.h TypeNameHolder.h Unit.h Units.h Vec3.h -Traj_H5MD.o : Traj_H5MD.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_H5MD.h TrajectoryIO.h TypeNameHolder.h Unit.h Units.h Vec3.h -Traj_Mol2File.o : Traj_Mol2File.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Mol2File.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_Mol2File.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_NcEnsemble.o : Traj_NcEnsemble.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FrameArray.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParallelNetcdf.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_NcEnsemble.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_PDBfile.o : Traj_PDBfile.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Tensor.h Dimension.h DistRoutines.h FileIO.h FileName.h Frame.h FramePtrArray.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricTensor.h TextFormat.h Timer.h Topology.h Traj_PDBfile.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_SDF.o : Traj_SDF.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SDFfile.h Segment.h SymbolExporting.h Topology.h Traj_SDF.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_SQM.o : Traj_SQM.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_SQM.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_Tinker.o : Traj_Tinker.cpp Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TinkerFile.h Topology.h Traj_Tinker.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h -Traj_XYZ.o : Traj_XYZ.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h Traj_XYZ.h TrajectoryIO.h TypeNameHolder.h Unit.h Vec3.h +TrajIOarray.o : TrajIOarray.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryFile.h TrajectoryIO.h Unit.h Vec3.h +Traj_AmberCoord.o : Traj_AmberCoord.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedFrame.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Topology.h Traj_AmberCoord.h TrajectoryIO.h Unit.h Vec3.h +Traj_AmberNetcdf.o : Traj_AmberNetcdf.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParallelNetcdf.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_AmberNetcdf.h TrajectoryIO.h Unit.h Vec3.h +Traj_AmberRestart.o : Traj_AmberRestart.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedFrame.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextBlockBuffer.h TextFormat.h Topology.h Traj_AmberRestart.h TrajectoryIO.h Unit.h Vec3.h +Traj_AmberRestartNC.o : Traj_AmberRestartNC.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_AmberRestartNC.h TrajectoryIO.h Unit.h Vec3.h +Traj_Binpos.o : Traj_Binpos.cpp Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_Binpos.h TrajectoryIO.h Unit.h Vec3.h +Traj_CIF.o : Traj_CIF.cpp Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h CIFfile.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_CIF.h TrajectoryIO.h Unit.h Vec3.h +Traj_CharmmCor.o : Traj_CharmmCor.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_CharmmCor.h TrajectoryIO.h Unit.h Vec3.h +Traj_CharmmDcd.o : Traj_CharmmDcd.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h ByteRoutines.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_CharmmDcd.h TrajectoryIO.h Unit.h Vec3.h +Traj_CharmmRestart.o : Traj_CharmmRestart.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedFrame.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h Traj_CharmmRestart.h TrajectoryIO.h Unit.h Vec3.h +Traj_Conflib.o : Traj_Conflib.cpp Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_Conflib.h TrajectoryIO.h Unit.h Vec3.h +Traj_DTR.o : Traj_DTR.cpp Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_DTR.h TrajectoryIO.h Unit.h Vec3.h vmdplugin/dtrplugin.hxx +Traj_GmxDump.o : Traj_GmxDump.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxDump.h TrajectoryIO.h Unit.h Vec3.h +Traj_GmxTng.o : Traj_GmxTng.cpp Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxTng.h TrajectoryIO.h Unit.h Vec3.h +Traj_GmxTrX.o : Traj_GmxTrX.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h ByteRoutines.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxTrX.h TrajectoryIO.h Unit.h Vec3.h +Traj_GmxXtc.o : Traj_GmxXtc.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_GmxXtc.h TrajectoryIO.h Unit.h Vec3.h +Traj_Gro.o : Traj_Gro.cpp Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_Gro.h TrajectoryIO.h Unit.h Vec3.h +Traj_H5.o : Traj_H5.cpp Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_H5.h TrajectoryIO.h Unit.h Units.h Vec3.h +Traj_H5MD.o : Traj_H5MD.cpp Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_H5MD.h TrajectoryIO.h Unit.h Units.h Vec3.h +Traj_Mol2File.o : Traj_Mol2File.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Mol2File.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_Mol2File.h TrajectoryIO.h Unit.h Vec3.h +Traj_NcEnsemble.o : Traj_NcEnsemble.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FrameArray.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h ParallelNetcdf.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h Traj_NcEnsemble.h TrajectoryIO.h Unit.h Vec3.h +Traj_PDBfile.o : Traj_PDBfile.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Tensor.h Dimension.h DistRoutines.h FileIO.h FileName.h Frame.h FramePtrArray.h ImageOption.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h SymmetricTensor.h TextFormat.h Timer.h Topology.h Traj_PDBfile.h TrajectoryIO.h Unit.h Vec3.h +Traj_SDF.o : Traj_SDF.cpp Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SDFfile.h Segment.h SymbolExporting.h Topology.h Traj_SDF.h TrajectoryIO.h Unit.h Vec3.h +Traj_SQM.o : Traj_SQM.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h Traj_SQM.h TrajectoryIO.h Unit.h Vec3.h +Traj_Tinker.o : Traj_Tinker.cpp Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TinkerFile.h Topology.h Traj_Tinker.h TrajectoryIO.h Unit.h Vec3.h +Traj_XYZ.o : Traj_XYZ.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h Traj_XYZ.h TrajectoryIO.h Unit.h Vec3.h TrajectoryFile.o : TrajectoryFile.cpp Atom.h BaseIOtype.h Box.h BufferedFrame.h BufferedLine.h CIFfile.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h FileTypes.h FramePtrArray.h Matrix_3x3.h Mol2File.h NC_Routines.h NameType.h NetcdfFile.h PDBfile.h Parallel.h ReplicaDimArray.h Residue.h SDFfile.h SymbolExporting.h TextFormat.h TinkerFile.h Traj_AmberCoord.h Traj_AmberNetcdf.h Traj_AmberRestart.h Traj_AmberRestartNC.h Traj_Binpos.h Traj_CIF.h Traj_CharmmCor.h Traj_CharmmDcd.h Traj_CharmmRestart.h Traj_Conflib.h Traj_DTR.h Traj_GmxDump.h Traj_GmxTng.h Traj_GmxTrX.h Traj_GmxXtc.h Traj_Gro.h Traj_H5.h Traj_H5MD.h Traj_Mol2File.h Traj_NcEnsemble.h Traj_PDBfile.h Traj_SDF.h Traj_SQM.h Traj_Tinker.h Traj_XYZ.h TrajectoryFile.h TrajectoryIO.h Vec3.h TrajectoryIO.o : TrajectoryIO.cpp BaseIOtype.h Box.h CoordinateInfo.h CpptrajStdio.h FramePtrArray.h Matrix_3x3.h Parallel.h ReplicaDimArray.h TrajectoryIO.h Vec3.h -TrajinList.o : TrajinList.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_RemLog.h Dimension.h EnsembleIn.h EnsembleIn_Multi.h EnsembleIn_Single.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryFile.h TrajectoryIO.h Trajin.h TrajinList.h Trajin_Multi.h Trajin_Single.h TypeNameHolder.h Unit.h Vec3.h -Trajin_Multi.o : Trajin_Multi.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryIO.h Trajin.h Trajin_Multi.h TypeNameHolder.h Unit.h Vec3.h -Trajin_Single.o : Trajin_Single.cpp ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajectoryFile.h TrajectoryIO.h Trajin.h Trajin_Single.h TypeNameHolder.h Unit.h Vec3.h -TrajoutList.o : TrajoutList.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h -Trajout_Single.o : Trajout_Single.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h +TrajinList.o : TrajinList.cpp ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_RemLog.h Dimension.h EnsembleIn.h EnsembleIn_Multi.h EnsembleIn_Single.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryFile.h TrajectoryIO.h Trajin.h TrajinList.h Trajin_Multi.h Trajin_Single.h Unit.h Vec3.h +Trajin_Multi.o : Trajin_Multi.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryIO.h Trajin.h Trajin_Multi.h Unit.h Vec3.h +Trajin_Single.o : Trajin_Single.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajectoryFile.h TrajectoryIO.h Trajin.h Trajin_Single.h Unit.h Vec3.h +TrajoutList.o : TrajoutList.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TrajoutList.h Trajout_Single.h Unit.h Vec3.h +Trajout_Single.o : Trajout_Single.cpp ActionFrameCounter.h ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Segment.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h Trajout_Single.h Unit.h Vec3.h Units.o : Units.cpp Constants.h CpptrajStdio.h Units.h Vec3.o : Vec3.cpp Constants.h CpptrajStdio.h Vec3.h -ViewRst.o : ViewRst.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Unit.h Vec3.h ViewRst.h -main.o : main.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Unit.h Vec3.h +ViewRst.o : ViewRst.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterTypes.h ParmFile.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h Unit.h Vec3.h ViewRst.h +main.o : main.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomMask.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h ModXNA_Info.h Molecule.h NameType.h Parallel.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Segment.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h Unit.h Vec3.h molsurf.o : molsurf.c molsurf.h qcprot.o : qcprot.cpp CpptrajStdio.h qcprot.h vmdplugin/dtrplugin.o : vmdplugin/dtrplugin.cpp ByteRoutines.h vmdplugin/dtrplugin.hxx vmdplugin/vmddir.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index 9b4880e855..23e461b336 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -99,6 +99,7 @@ COMMON_SOURCES= \ Action_Volume.cpp \ Action_Watershell.cpp \ Action_XtalSymm.cpp \ + AmberParamFile.cpp \ AnalysisList.cpp \ Analysis_AmdBias.cpp \ Analysis_AutoCorr.cpp \ @@ -162,6 +163,7 @@ COMMON_SOURCES= \ CharmmParamFile.cpp \ CIFfile.cpp \ ClusterMap.cpp \ + CmapParmHolder.cpp \ Cmd.cpp \ CmdInput.cpp \ CmdList.cpp \ @@ -184,6 +186,8 @@ COMMON_SOURCES= \ DataFilter.cpp \ DataIO.cpp \ DataIO_AmberEne.cpp \ + DataIO_AmberFF.cpp \ + DataIO_AmberFrcmod.cpp \ DataIO_AmberLib.cpp \ DataIO_AmberPrep.cpp \ DataIO_CCP4.cpp \ @@ -193,15 +197,17 @@ COMMON_SOURCES= \ DataIO_CharmmRtfPrm.cpp \ DataIO_Cmatrix_Binary.cpp \ DataIO_Cmatrix_NC.cpp \ + DataIO_Coords.cpp \ DataIO_Cpout.cpp \ DataIO_Evecs.cpp \ DataIO_Gnuplot.cpp \ DataIO_Grace.cpp \ - DataIO_OpenDx.cpp \ - DataIO_Peaks.cpp \ + DataIO_LeapRC.cpp \ DataIO_Mdout.cpp \ DataIO_NetCDF.cpp \ DataIO_Numpy.cpp \ + DataIO_OpenDx.cpp \ + DataIO_Peaks.cpp \ DataIO_RemLog.cpp \ DataIO_Std.cpp \ DataIO_VecTraj.cpp \ @@ -219,15 +225,18 @@ COMMON_SOURCES= \ DataSet_Coords_TRJ.cpp \ DataSet_GridDbl.cpp \ DataSet_GridFlt.cpp \ + DataSet_LeapOpts.cpp \ DataSet_Mat3x3.cpp \ DataSet_MatrixDbl.cpp \ DataSet_MatrixFlt.cpp \ DataSet_Mesh.cpp \ DataSet_Modes.cpp \ + DataSet_NameMap.cpp \ DataSet_PairwiseCache.cpp \ DataSet_PairwiseCache_MEM.cpp \ DataSet_PairwiseCache_NC.cpp \ DataSet_Parameters.cpp \ + DataSet_PdbResMap.cpp \ DataSet_pH.cpp \ DataSet_PHREMD_Explicit.cpp \ DataSet_PHREMD_Implicit.cpp \ @@ -263,6 +272,7 @@ COMMON_SOURCES= \ ExclusionArray.cpp \ Exec_AddMissingRes.cpp \ Exec_Analyze.cpp \ + Exec_Build.cpp \ Exec_Calc.cpp \ Exec_CatCrd.cpp \ Exec_Change.cpp \ @@ -279,6 +289,7 @@ COMMON_SOURCES= \ Exec_DataFile.cpp \ Exec_DataFilter.cpp \ Exec_DataSetCmd.cpp \ + Exec_Desc.cpp \ Exec_Emin.cpp \ Exec_ExtendedComparison.cpp \ Exec_Flatten.cpp \ @@ -288,6 +299,7 @@ COMMON_SOURCES= \ Exec_HmassRepartition.cpp \ Exec_LoadCrd.cpp \ Exec_LoadTraj.cpp \ + Exec_Mutate.cpp \ Exec_ParallelAnalysis.cpp \ Exec_ParmBox.cpp \ Exec_ParmSolvent.cpp \ @@ -310,6 +322,7 @@ COMMON_SOURCES= \ Exec_SequenceAlign.cpp \ Exec_Show.cpp \ Exec_SortEnsembleData.cpp \ + Exec_Source.cpp \ Exec_SplitCoords.cpp \ Exec_System.cpp \ Exec_Top.cpp \ @@ -341,6 +354,7 @@ COMMON_SOURCES= \ GridAction.cpp \ GridMover.cpp \ GridBin.cpp \ + GuessAtomHybridization.cpp \ HistBin.cpp \ Hungarian.cpp \ ImageRoutines.cpp \ @@ -358,6 +372,7 @@ COMMON_SOURCES= \ MdOpts.cpp \ MetaData.cpp \ Minimize_SteepestDescent.cpp \ + ModXNA_Info.cpp \ Mol.cpp \ Mol2File.cpp \ NameType.cpp \ @@ -366,7 +381,6 @@ COMMON_SOURCES= \ NetcdfFile.cpp \ OMM_helpers.cpp \ OutputTrajCommon.cpp \ - ParameterSet.cpp \ PDBfile.cpp \ PairList.cpp \ Parallel.cpp \ @@ -399,6 +413,7 @@ COMMON_SOURCES= \ ExternalFxn.cpp \ Random.cpp \ Range.cpp \ + Remote.cpp \ RNG.cpp \ RNG_Marsaglia.cpp \ RNG_MersenneTwister.cpp \ @@ -482,7 +497,7 @@ SOURCES=$(COMMON_SOURCES) \ # by libcpptraj. They MUST have the '.LIBCPPTRAJ.o' extension and will be # compiled with the '-DLIBCPPTRAJ' define. # NOTE: This variable MUST be in cpptrajfiles as the cmake build expects it. -LIBCPPTRAJ_OBJECTS=$(COMMON_SOURCES:.cpp=.o) $(CSOURCES:.c=.o) $(CLUSTER_SOURCEFILES:.cpp=.o) $(STRUCTURE_SOURCEFILES:.cpp=.o) $(ENERGY_SOURCEFILES:.cpp=.o) \ +LIBCPPTRAJ_OBJECTS=$(COMMON_SOURCES:.cpp=.o) $(CSOURCES:.c=.o) $(CLUSTER_SOURCEFILES:.cpp=.o) $(STRUCTURE_SOURCEFILES:.cpp=.o) $(PARM_SOURCEFILES:.cpp=.o) $(ENERGY_SOURCEFILES:.cpp=.o) \ Action_Esander.LIBCPPTRAJ.o \ Command.LIBCPPTRAJ.o \ Cpptraj.LIBCPPTRAJ.o \ @@ -613,7 +628,7 @@ LIBCPPTRAJ_PARM_OBJECTS= \ CharmmParamFile.o \ ExclusionArray.o \ Mol.o \ - ParameterSet.o \ + Parm/ParameterSet.o \ ParmFile.o \ Parm_Amber.o \ Parm_CharmmPsf.o \ diff --git a/src/cpptrajheaders b/src/cpptrajheaders index a41e634b9e..07f2afd243 100644 --- a/src/cpptrajheaders +++ b/src/cpptrajheaders @@ -101,6 +101,7 @@ CPPTRAJ_HEADERS = \ ./Action_Volume.h \ ./Action_Watershell.h \ ./Action_XtalSymm.h \ + ./AmberParamFile.h \ ./Analysis_AmdBias.h \ ./Analysis_AutoCorr.h \ ./Analysis_Average.h \ @@ -171,6 +172,7 @@ CPPTRAJ_HEADERS = \ ./CharmmParamFile.h \ ./CIFfile.h \ ./ClusterMap.h \ + ./CmapParmHolder.h \ ./Cmd.h \ ./CmdInput.h \ ./CmdList.h \ @@ -196,6 +198,8 @@ CPPTRAJ_HEADERS = \ ./DataFileList.h \ ./DataFilter.h \ ./DataIO_AmberEne.h \ + ./DataIO_AmberFF.h \ + ./DataIO_AmberFrcmod.h \ ./DataIO_AmberLib.h \ ./DataIO_AmberPrep.h \ ./DataIO_CCP4.h \ @@ -205,11 +209,13 @@ CPPTRAJ_HEADERS = \ ./DataIO_CharmmRtfPrm.h \ ./DataIO_Cmatrix_Binary.h \ ./DataIO_Cmatrix_NC.h \ + ./DataIO_Coords.h \ ./DataIO_Cpout.h \ ./DataIO_Evecs.h \ ./DataIO_Gnuplot.h \ ./DataIO_Grace.h \ ./DataIO.h \ + ./DataIO_LeapRC.h \ ./DataIO_Mdout.h \ ./DataIO_NetCDF.h \ ./DataIO_Numpy.h \ @@ -236,16 +242,19 @@ CPPTRAJ_HEADERS = \ ./DataSet_integer_disk.h \ ./DataSet_integer.h \ ./DataSet_integer_mem.h \ + ./DataSet_LeapOpts.h \ ./DataSetList.h \ ./DataSet_Mat3x3.h \ ./DataSet_MatrixDbl.h \ ./DataSet_MatrixFlt.h \ ./DataSet_Mesh.h \ ./DataSet_Modes.h \ + ./DataSet_NameMap.h \ ./DataSet_PairwiseCache.h \ ./DataSet_PairwiseCache_MEM.h \ ./DataSet_PairwiseCache_NC.h \ ./DataSet_Parameters.h \ + ./DataSet_PdbResMap.h \ ./DataSet_pH.h \ ./DataSet_PHREMD_Explicit.h \ ./DataSet_PHREMD.h \ @@ -283,6 +292,7 @@ CPPTRAJ_HEADERS = \ ./Exec_AddMissingRes.h \ ./Exec_AddMissingRes_Pres.h \ ./Exec_Analyze.h \ + ./Exec_Build.h \ ./Exec_Calc.h \ ./Exec_CatCrd.h \ ./Exec_Change.h \ @@ -299,6 +309,7 @@ CPPTRAJ_HEADERS = \ ./Exec_DataFile.h \ ./Exec_DataFilter.h \ ./Exec_DataSetCmd.h \ + ./Exec_Desc.h \ ./Exec_Emin.h \ ./Exec_ExtendedComparison.h \ ./Exec_Flatten.h \ @@ -331,6 +342,7 @@ CPPTRAJ_HEADERS = \ ./Exec_Set.h \ ./Exec_Show.h \ ./Exec_SortEnsembleData.h \ + ./Exec_Source.h \ ./Exec_SplitCoords.h \ ./Exec_System.h \ ./Exec_Top.h \ @@ -367,6 +379,7 @@ CPPTRAJ_HEADERS = \ ./GridBin.h \ ./Grid.h \ ./GridMover.h \ + ./GuessAtomHybridization.h \ ./helpme_standalone.h \ ./HipDefinitions.h \ ./HistBin.h \ @@ -416,8 +429,6 @@ CPPTRAJ_HEADERS = \ ./Parallel.h \ ./ParallelNetcdf.h \ ./ParallelSetFrameNum.h \ - ./ParameterHolders.h \ - ./ParameterSet.h \ ./ParameterTypes.h \ ./Parm_Amber.h \ ./Parm_CharmmPsf.h \ @@ -430,6 +441,7 @@ CPPTRAJ_HEADERS = \ ./Parm_SDF.h \ ./Parm_Tinker.h \ ./PDBfile.h \ + ./PdbResMapType.h \ ./PotentialFunction.h \ ./PotentialTerm_Angle.h \ ./PotentialTerm_Bond.h \ @@ -453,6 +465,7 @@ CPPTRAJ_HEADERS = \ ./ReferenceAction.h \ ./ReferenceFrame.h \ ./RemdReservoirNC.h \ + ./Remote.h \ ./ReplicaDimArray.h \ ./ReplicaInfo.h \ ./Residue.h \ @@ -561,17 +574,21 @@ CPPTRAJ_HEADERS = \ Cluster/Results.h \ Cluster/Sieve.h \ Cluster/Silhouette.h \ - Structure/BuildAtom.h \ Structure/Builder.h \ Structure/Chirality.h \ + Structure/Creator.h \ Structure/Disulfide.h \ Structure/FunctionalGroup.h \ Structure/FxnGroupBuilder.h \ + Structure/GenerateConnectivityArrays.h \ Structure/HisProt.h \ Structure/InternalCoords.h \ + Structure/LeastSquaresPlane.h \ Structure/LinkAtom.h \ - Structure/Model.h \ + Structure/MetalCenterFinder.h \ + Structure/PdbCleaner.h \ Structure/ResStatArray.h \ + Structure/RingFinder.h \ Structure/StructureEnum.h \ Structure/StructureRoutines.h \ Structure/SugarBuilder.h \ diff --git a/test/1d23.tip3p.lj1264.parm7 b/test/1d23.tip3p.lj1264.parm7 new file mode 100644 index 0000000000..3a4dcf3cef --- /dev/null +++ b/test/1d23.tip3p.lj1264.parm7 @@ -0,0 +1,22191 @@ +%VERSION VERSION_STAMP = V0001.000 DATE = 02/05/26 13:37:46 +%FLAG TITLE +%FORMAT(20a4) +default_name +%FLAG POINTERS +%FORMAT(10I8) + 10058 17 9645 452 536 694 1162 1458 0 0 + 16073 3168 452 694 1458 52 103 71 32 0 + 0 0 0 0 0 0 0 1 34 0 + 0 +%FLAG ATOM_NAME +%FORMAT(20a4) +HO5'O5' C5' H5' H5''C4' H4' O4' C1' H1' N1 C6 H6 C5 H5 C4 N4 H41 H42 N3 +C2 O2 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' +N9 C8 H8 N7 C5 C6 O6 N1 H1 C2 N2 H21 H22 N3 C4 C3' H3' C2' H2' H2'' +O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N9 C8 H8 N7 C5 C6 N6 +H61 H62 N1 C2 H2 N3 C4 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5'' +C4' H4' O4' C1' H1' N1 C6 H6 C5 C7 H71 H72 H73 C4 O4 N3 H3 C2 O2 C3' +H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N1 C6 H6 +C5 H5 C4 N4 H41 H42 N3 C2 O2 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' +H5' H5''C4' H4' O4' C1' H1' N9 C8 H8 N7 C5 C6 O6 N1 H1 C2 N2 H21 H22 +N3 C4 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' +N9 C8 H8 N7 C5 C6 N6 H61 H62 N1 C2 H2 N3 C4 C3' H3' C2' H2' H2''O3' +P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N1 C6 H6 C5 C7 H71 H72 H73 +C4 O4 N3 H3 C2 O2 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' +H4' O4' C1' H1' N1 C6 H6 C5 H5 C4 N4 H41 H42 N3 C2 O2 C3' H3' C2' H2' +H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N9 C8 H8 N7 C5 C6 +O6 N1 H1 C2 N2 H21 H22 N3 C4 C3' H3' C2' H2' H2''O3' HO3'HO5'O5' C5' H5' +H5''C4' H4' O4' C1' H1' N1 C6 H6 C5 H5 C4 N4 H41 H42 N3 C2 O2 C3' H3' +C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N9 C8 H8 N7 +C5 C6 O6 N1 H1 C2 N2 H21 H22 N3 C4 C3' H3' C2' H2' H2''O3' P OP1 OP2 +O5' C5' H5' H5''C4' H4' O4' C1' H1' N9 C8 H8 N7 C5 C6 N6 H61 H62 N1 C2 +H2 N3 C4 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' +H1' N1 C6 H6 C5 C7 H71 H72 H73 C4 O4 N3 H3 C2 O2 C3' H3' C2' H2' H2'' +O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N1 C6 H6 C5 H5 C4 N4 +H41 H42 N3 C2 O2 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' +O4' C1' H1' N9 C8 H8 N7 C5 C6 O6 N1 H1 C2 N2 H21 H22 N3 C4 C3' H3' +C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N9 C8 H8 N7 +C5 C6 N6 H61 H62 N1 C2 H2 N3 C4 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' +C5' H5' H5''C4' H4' O4' C1' H1' N1 C6 H6 C5 C7 H71 H72 H73 C4 O4 N3 H3 +C2 O2 C3' H3' C2' H2' H2''O3' P OP1 OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' +N1 C6 H6 C5 H5 C4 N4 H41 H42 N3 C2 O2 C3' H3' C2' H2' H2''O3' P OP1 +OP2 O5' C5' H5' H5''C4' H4' O4' C1' H1' N9 C8 H8 N7 C5 C6 O6 N1 H1 C2 +N2 H21 H22 N3 C4 C3' H3' C2' H2' H2''O3' HO3'MG MG MG MG MG MG MG MG +MG O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 +H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O +H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 O H1 H2 +%FLAG CHARGE +%FORMAT(5E16.8) + 8.05790106E+00 -1.15128491E+01 -1.25733870E-01 1.37396142E+00 1.37396142E+00 + 2.96841267E+00 2.14294248E+00 -6.72585093E+00 -2.11378680E-01 3.57703749E+00 + -6.17735970E-01 -3.33468090E-01 4.17837339E+00 -9.51568506E+00 3.39481449E+00 + 1.53777990E+01 -1.78086538E+01 7.86110022E+00 7.86110022E+00 -1.41186380E+01 + 1.45031286E+01 -1.19319620E+01 1.29924999E+00 1.79489655E+00 -1.55618442E+00 + 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 + -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 + 2.96841267E+00 2.14294248E+00 -6.72585093E+00 6.52358340E-01 3.18161358E+00 + 1.05142671E+00 1.34116128E+00 3.63899331E+00 -1.04322668E+01 3.62805993E+00 + 8.96172714E+00 -1.03848888E+01 -9.20772819E+00 6.41424960E+00 1.35428134E+01 + -1.68191829E+01 7.71714405E+00 7.71714405E+00 -1.20923183E+01 3.30552522E+00 + 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 + -9.53390736E+00 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 + -1.25733870E-01 1.37396142E+00 1.37396142E+00 2.96841267E+00 2.14294248E+00 + -6.72585093E+00 7.85381130E-01 3.34925874E+00 -4.88357640E-01 2.92832361E+00 + 3.42032571E+00 -1.12522703E+01 1.32111675E+00 1.25679203E+01 -1.66242043E+01 + 7.59323241E+00 7.59323241E+00 -1.38926815E+01 1.04158667E+01 1.08969354E+00 + -1.35154799E+01 6.92447400E+00 1.29924999E+00 1.79489655E+00 -1.55618442E+00 + 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 + -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 + 2.96841267E+00 2.14294248E+00 -6.72585093E+00 1.23911640E+00 3.28730292E+00 + -4.35512970E-01 -4.02530607E+00 4.75055361E+00 4.55557500E-02 -4.13463987E+00 + 1.40311710E+00 1.40311710E+00 1.40311710E+00 9.46466262E+00 -1.01370655E+01 + -7.90847820E+00 6.23202660E+00 1.03447997E+01 -1.07165346E+01 1.29924999E+00 + 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 -9.53390736E+00 + 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 + 1.37396142E+00 1.37396142E+00 2.96841267E+00 2.14294248E+00 -6.72585093E+00 + -2.11378680E-01 3.57703749E+00 -6.17735970E-01 -3.33468090E-01 4.17837339E+00 + -9.51568506E+00 3.39481449E+00 1.53777990E+01 -1.78086538E+01 7.86110022E+00 + 7.86110022E+00 -1.41186380E+01 1.45031286E+01 -1.19319620E+01 1.29924999E+00 + 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 -9.53390736E+00 + 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 + 1.37396142E+00 1.37396142E+00 2.96841267E+00 2.14294248E+00 -6.72585093E+00 + 6.52358340E-01 3.18161358E+00 1.05142671E+00 1.34116128E+00 3.63899331E+00 + -1.04322668E+01 3.62805993E+00 8.96172714E+00 -1.03848888E+01 -9.20772819E+00 + 6.41424960E+00 1.35428134E+01 -1.68191829E+01 7.71714405E+00 7.71714405E+00 + -1.20923183E+01 3.30552522E+00 1.29924999E+00 1.79489655E+00 -1.55618442E+00 + 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 + -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 + 2.96841267E+00 2.14294248E+00 -6.72585093E+00 7.85381130E-01 3.34925874E+00 + -4.88357640E-01 2.92832361E+00 3.42032571E+00 -1.12522703E+01 1.32111675E+00 + 1.25679203E+01 -1.66242043E+01 7.59323241E+00 7.59323241E+00 -1.38926815E+01 + 1.04158667E+01 1.08969354E+00 -1.35154799E+01 6.92447400E+00 1.29924999E+00 + 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 -9.53390736E+00 + 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 + 1.37396142E+00 1.37396142E+00 2.96841267E+00 2.14294248E+00 -6.72585093E+00 + 1.23911640E+00 3.28730292E+00 -4.35512970E-01 -4.02530607E+00 4.75055361E+00 + 4.55557500E-02 -4.13463987E+00 1.40311710E+00 1.40311710E+00 1.40311710E+00 + 9.46466262E+00 -1.01370655E+01 -7.90847820E+00 6.23202660E+00 1.03447997E+01 + -1.07165346E+01 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 + 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 + -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 2.96841267E+00 + 2.14294248E+00 -6.72585093E+00 -2.11378680E-01 3.57703749E+00 -6.17735970E-01 + -3.33468090E-01 4.17837339E+00 -9.51568506E+00 3.39481449E+00 1.53777990E+01 + -1.78086538E+01 7.86110022E+00 7.86110022E+00 -1.41186380E+01 1.45031286E+01 + -1.19319620E+01 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 + 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 + -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 2.96841267E+00 + 2.14294248E+00 -6.72585093E+00 6.52358340E-01 3.18161358E+00 1.05142671E+00 + 1.34116128E+00 3.63899331E+00 -1.04322668E+01 3.62805993E+00 8.96172714E+00 + -1.03848888E+01 -9.20772819E+00 6.41424960E+00 1.35428134E+01 -1.68191829E+01 + 7.71714405E+00 7.71714405E+00 -1.20923183E+01 3.30552522E+00 1.29924999E+00 + 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 -1.19337843E+01 + 8.01052308E+00 8.05790106E+00 -1.15128491E+01 -1.25733870E-01 1.37396142E+00 + 1.37396142E+00 2.96841267E+00 2.14294248E+00 -6.72585093E+00 -2.11378680E-01 + 3.57703749E+00 -6.17735970E-01 -3.33468090E-01 4.17837339E+00 -9.51568506E+00 + 3.39481449E+00 1.53777990E+01 -1.78086538E+01 7.86110022E+00 7.86110022E+00 + -1.41186380E+01 1.45031286E+01 -1.19319620E+01 1.29924999E+00 1.79489655E+00 + -1.55618442E+00 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 + -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 + 1.37396142E+00 2.96841267E+00 2.14294248E+00 -6.72585093E+00 6.52358340E-01 + 3.18161358E+00 1.05142671E+00 1.34116128E+00 3.63899331E+00 -1.04322668E+01 + 3.62805993E+00 8.96172714E+00 -1.03848888E+01 -9.20772819E+00 6.41424960E+00 + 1.35428134E+01 -1.68191829E+01 7.71714405E+00 7.71714405E+00 -1.20923183E+01 + 3.30552522E+00 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 + 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 + -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 2.96841267E+00 + 2.14294248E+00 -6.72585093E+00 7.85381130E-01 3.34925874E+00 -4.88357640E-01 + 2.92832361E+00 3.42032571E+00 -1.12522703E+01 1.32111675E+00 1.25679203E+01 + -1.66242043E+01 7.59323241E+00 7.59323241E+00 -1.38926815E+01 1.04158667E+01 + 1.08969354E+00 -1.35154799E+01 6.92447400E+00 1.29924999E+00 1.79489655E+00 + -1.55618442E+00 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 + -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 + 1.37396142E+00 2.96841267E+00 2.14294248E+00 -6.72585093E+00 1.23911640E+00 + 3.28730292E+00 -4.35512970E-01 -4.02530607E+00 4.75055361E+00 4.55557500E-02 + -4.13463987E+00 1.40311710E+00 1.40311710E+00 1.40311710E+00 9.46466262E+00 + -1.01370655E+01 -7.90847820E+00 6.23202660E+00 1.03447997E+01 -1.07165346E+01 + 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 + -9.53390736E+00 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 + -1.25733870E-01 1.37396142E+00 1.37396142E+00 2.96841267E+00 2.14294248E+00 + -6.72585093E+00 -2.11378680E-01 3.57703749E+00 -6.17735970E-01 -3.33468090E-01 + 4.17837339E+00 -9.51568506E+00 3.39481449E+00 1.53777990E+01 -1.78086538E+01 + 7.86110022E+00 7.86110022E+00 -1.41186380E+01 1.45031286E+01 -1.19319620E+01 + 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 + -9.53390736E+00 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 + -1.25733870E-01 1.37396142E+00 1.37396142E+00 2.96841267E+00 2.14294248E+00 + -6.72585093E+00 6.52358340E-01 3.18161358E+00 1.05142671E+00 1.34116128E+00 + 3.63899331E+00 -1.04322668E+01 3.62805993E+00 8.96172714E+00 -1.03848888E+01 + -9.20772819E+00 6.41424960E+00 1.35428134E+01 -1.68191829E+01 7.71714405E+00 + 7.71714405E+00 -1.20923183E+01 3.30552522E+00 1.29924999E+00 1.79489655E+00 + -1.55618442E+00 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 + -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 + 1.37396142E+00 2.96841267E+00 2.14294248E+00 -6.72585093E+00 7.85381130E-01 + 3.34925874E+00 -4.88357640E-01 2.92832361E+00 3.42032571E+00 -1.12522703E+01 + 1.32111675E+00 1.25679203E+01 -1.66242043E+01 7.59323241E+00 7.59323241E+00 + -1.38926815E+01 1.04158667E+01 1.08969354E+00 -1.35154799E+01 6.92447400E+00 + 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 + -9.53390736E+00 2.12453796E+01 -1.41423270E+01 -1.41423270E+01 -9.02732742E+00 + -1.25733870E-01 1.37396142E+00 1.37396142E+00 2.96841267E+00 2.14294248E+00 + -6.72585093E+00 1.23911640E+00 3.28730292E+00 -4.35512970E-01 -4.02530607E+00 + 4.75055361E+00 4.55557500E-02 -4.13463987E+00 1.40311710E+00 1.40311710E+00 + 1.40311710E+00 9.46466262E+00 -1.01370655E+01 -7.90847820E+00 6.23202660E+00 + 1.03447997E+01 -1.07165346E+01 1.29924999E+00 1.79489655E+00 -1.55618442E+00 + 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 + -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 + 2.96841267E+00 2.14294248E+00 -6.72585093E+00 -2.11378680E-01 3.57703749E+00 + -6.17735970E-01 -3.33468090E-01 4.17837339E+00 -9.51568506E+00 3.39481449E+00 + 1.53777990E+01 -1.78086538E+01 7.86110022E+00 7.86110022E+00 -1.41186380E+01 + 1.45031286E+01 -1.19319620E+01 1.29924999E+00 1.79489655E+00 -1.55618442E+00 + 1.30836114E+00 1.30836114E+00 -9.53390736E+00 2.12453796E+01 -1.41423270E+01 + -1.41423270E+01 -9.02732742E+00 -1.25733870E-01 1.37396142E+00 1.37396142E+00 + 2.96841267E+00 2.14294248E+00 -6.72585093E+00 6.52358340E-01 3.18161358E+00 + 1.05142671E+00 1.34116128E+00 3.63899331E+00 -1.04322668E+01 3.62805993E+00 + 8.96172714E+00 -1.03848888E+01 -9.20772819E+00 6.41424960E+00 1.35428134E+01 + -1.68191829E+01 7.71714405E+00 7.71714405E+00 -1.20923183E+01 3.30552522E+00 + 1.29924999E+00 1.79489655E+00 -1.55618442E+00 1.30836114E+00 1.30836114E+00 + -1.19337843E+01 8.01052308E+00 3.64446000E+01 3.64446000E+01 3.64446000E+01 + 3.64446000E+01 3.64446000E+01 3.64446000E+01 3.64446000E+01 3.64446000E+01 + 3.64446000E+01 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 + 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 -1.51973982E+01 + 7.59869910E+00 7.59869910E+00 -1.51973982E+01 7.59869910E+00 7.59869910E+00 + -1.51973982E+01 7.59869910E+00 7.59869910E+00 +%FLAG ATOMIC_NUMBER +%FORMAT(10I8) + 1 8 6 1 1 6 1 8 6 1 + 7 6 1 6 1 6 7 1 1 7 + 6 8 6 1 6 1 1 8 15 8 + 8 8 6 1 1 6 1 8 6 1 + 7 6 1 7 6 6 8 7 1 6 + 7 1 1 7 6 6 1 6 1 1 + 8 15 8 8 8 6 1 1 6 1 + 8 6 1 7 6 1 7 6 6 7 + 1 1 7 6 1 7 6 6 1 6 + 1 1 8 15 8 8 8 6 1 1 + 6 1 8 6 1 7 6 1 6 6 + 1 1 1 6 8 7 1 6 8 6 + 1 6 1 1 8 15 8 8 8 6 + 1 1 6 1 8 6 1 7 6 1 + 6 1 6 7 1 1 7 6 8 6 + 1 6 1 1 8 15 8 8 8 6 + 1 1 6 1 8 6 1 7 6 1 + 7 6 6 8 7 1 6 7 1 1 + 7 6 6 1 6 1 1 8 15 8 + 8 8 6 1 1 6 1 8 6 1 + 7 6 1 7 6 6 7 1 1 7 + 6 1 7 6 6 1 6 1 1 8 + 15 8 8 8 6 1 1 6 1 8 + 6 1 7 6 1 6 6 1 1 1 + 6 8 7 1 6 8 6 1 6 1 + 1 8 15 8 8 8 6 1 1 6 + 1 8 6 1 7 6 1 6 1 6 + 7 1 1 7 6 8 6 1 6 1 + 1 8 15 8 8 8 6 1 1 6 + 1 8 6 1 7 6 1 7 6 6 + 8 7 1 6 7 1 1 7 6 6 + 1 6 1 1 8 1 1 8 6 1 + 1 6 1 8 6 1 7 6 1 6 + 1 6 7 1 1 7 6 8 6 1 + 6 1 1 8 15 8 8 8 6 1 + 1 6 1 8 6 1 7 6 1 7 + 6 6 8 7 1 6 7 1 1 7 + 6 6 1 6 1 1 8 15 8 8 + 8 6 1 1 6 1 8 6 1 7 + 6 1 7 6 6 7 1 1 7 6 + 1 7 6 6 1 6 1 1 8 15 + 8 8 8 6 1 1 6 1 8 6 + 1 7 6 1 6 6 1 1 1 6 + 8 7 1 6 8 6 1 6 1 1 + 8 15 8 8 8 6 1 1 6 1 + 8 6 1 7 6 1 6 1 6 7 + 1 1 7 6 8 6 1 6 1 1 + 8 15 8 8 8 6 1 1 6 1 + 8 6 1 7 6 1 7 6 6 8 + 7 1 6 7 1 1 7 6 6 1 + 6 1 1 8 15 8 8 8 6 1 + 1 6 1 8 6 1 7 6 1 7 + 6 6 7 1 1 7 6 1 7 6 + 6 1 6 1 1 8 15 8 8 8 + 6 1 1 6 1 8 6 1 7 6 + 1 6 6 1 1 1 6 8 7 1 + 6 8 6 1 6 1 1 8 15 8 + 8 8 6 1 1 6 1 8 6 1 + 7 6 1 6 1 6 7 1 1 7 + 6 8 6 1 6 1 1 8 15 8 + 8 8 6 1 1 6 1 8 6 1 + 7 6 1 7 6 6 8 7 1 6 + 7 1 1 7 6 6 1 6 1 1 + 8 1 12 12 12 12 12 12 12 12 + 12 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 8 1 + 1 8 1 1 8 1 1 8 1 1 + 8 1 1 8 1 1 8 1 1 8 + 1 1 8 1 1 8 1 1 +%FLAG MASS +%FORMAT(5E16.8) + 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 3.09700000E+01 1.60000000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 3.09700000E+01 1.60000000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 3.09700000E+01 1.60000000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 + 1.60000000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 + 1.60000000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 + 1.60000000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.20100000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 3.09700000E+01 1.60000000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.60000000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 2.43050000E+01 2.43050000E+01 2.43050000E+01 + 2.43050000E+01 2.43050000E+01 2.43050000E+01 2.43050000E+01 2.43050000E+01 + 2.43050000E+01 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.00800000E+00 +%FLAG ATOM_TYPE_INDEX +%FORMAT(10I8) + 1 2 3 4 4 3 4 5 3 6 + 7 8 9 8 10 8 7 11 11 7 + 8 12 3 4 3 13 13 5 14 12 + 12 5 3 4 4 3 4 5 3 6 + 7 8 15 7 8 8 12 7 11 8 + 7 11 11 7 8 3 4 3 13 13 + 5 14 12 12 5 3 4 4 3 4 + 5 3 6 7 8 15 7 8 8 7 + 11 11 7 8 15 7 8 3 4 3 + 13 13 5 14 12 12 5 3 4 4 + 3 4 5 3 6 7 8 9 8 3 + 13 13 13 8 12 7 11 8 12 3 + 4 3 13 13 5 14 12 12 5 3 + 4 4 3 4 5 3 6 7 8 9 + 8 10 8 7 11 11 7 8 12 3 + 4 3 13 13 5 14 12 12 5 3 + 4 4 3 4 5 3 6 7 8 15 + 7 8 8 12 7 11 8 7 11 11 + 7 8 3 4 3 13 13 5 14 12 + 12 5 3 4 4 3 4 5 3 6 + 7 8 15 7 8 8 7 11 11 7 + 8 15 7 8 3 4 3 13 13 5 + 14 12 12 5 3 4 4 3 4 5 + 3 6 7 8 9 8 3 13 13 13 + 8 12 7 11 8 12 3 4 3 13 + 13 5 14 12 12 5 3 4 4 3 + 4 5 3 6 7 8 9 8 10 8 + 7 11 11 7 8 12 3 4 3 13 + 13 5 14 12 12 5 3 4 4 3 + 4 5 3 6 7 8 15 7 8 8 + 12 7 11 8 7 11 11 7 8 3 + 4 3 13 13 2 1 1 2 3 4 + 4 3 4 5 3 6 7 8 9 8 + 10 8 7 11 11 7 8 12 3 4 + 3 13 13 5 14 12 12 5 3 4 + 4 3 4 5 3 6 7 8 15 7 + 8 8 12 7 11 8 7 11 11 7 + 8 3 4 3 13 13 5 14 12 12 + 5 3 4 4 3 4 5 3 6 7 + 8 15 7 8 8 7 11 11 7 8 + 15 7 8 3 4 3 13 13 5 14 + 12 12 5 3 4 4 3 4 5 3 + 6 7 8 9 8 3 13 13 13 8 + 12 7 11 8 12 3 4 3 13 13 + 5 14 12 12 5 3 4 4 3 4 + 5 3 6 7 8 9 8 10 8 7 + 11 11 7 8 12 3 4 3 13 13 + 5 14 12 12 5 3 4 4 3 4 + 5 3 6 7 8 15 7 8 8 12 + 7 11 8 7 11 11 7 8 3 4 + 3 13 13 5 14 12 12 5 3 4 + 4 3 4 5 3 6 7 8 15 7 + 8 8 7 11 11 7 8 15 7 8 + 3 4 3 13 13 5 14 12 12 5 + 3 4 4 3 4 5 3 6 7 8 + 9 8 3 13 13 13 8 12 7 11 + 8 12 3 4 3 13 13 5 14 12 + 12 5 3 4 4 3 4 5 3 6 + 7 8 9 8 10 8 7 11 11 7 + 8 12 3 4 3 13 13 5 14 12 + 12 5 3 4 4 3 4 5 3 6 + 7 8 15 7 8 8 12 7 11 8 + 7 11 11 7 8 3 4 3 13 13 + 2 1 16 16 16 16 16 16 16 16 + 16 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 17 1 + 1 17 1 1 17 1 1 17 1 1 + 17 1 1 17 1 1 17 1 1 17 + 1 1 17 1 1 17 1 1 +%FLAG NUMBER_EXCLUDED_ATOMS +%FORMAT(10I8) + 5 7 10 5 4 12 6 11 14 7 + 12 9 4 7 3 6 4 2 1 2 + 2 1 9 5 4 2 1 5 7 3 + 2 7 10 5 4 12 6 11 14 7 + 12 7 3 6 7 7 4 7 3 5 + 4 2 1 1 1 9 5 4 2 1 + 5 7 3 2 7 10 5 4 12 6 + 11 14 7 12 7 3 6 8 8 5 + 2 1 4 3 2 1 1 9 5 4 + 2 1 5 7 3 2 7 10 5 4 + 12 6 11 14 7 13 12 4 9 6 + 3 2 1 5 3 3 2 2 1 9 + 5 4 2 1 5 7 3 2 7 10 + 5 4 12 6 11 14 7 12 9 4 + 7 3 6 4 2 1 2 2 1 9 + 5 4 2 1 5 7 3 2 7 10 + 5 4 12 6 11 14 7 12 7 3 + 6 7 7 4 7 3 5 4 2 1 + 1 1 9 5 4 2 1 5 7 3 + 2 7 10 5 4 12 6 11 14 7 + 12 7 3 6 8 8 5 2 1 4 + 3 2 1 1 9 5 4 2 1 5 + 7 3 2 7 10 5 4 12 6 11 + 14 7 13 12 4 9 6 3 2 1 + 5 3 3 2 2 1 9 5 4 2 + 1 5 7 3 2 7 10 5 4 12 + 6 11 14 7 12 9 4 7 3 6 + 4 2 1 2 2 1 9 5 4 2 + 1 5 7 3 2 7 10 5 4 12 + 6 11 14 7 12 7 3 6 7 7 + 4 7 3 5 4 2 1 1 1 6 + 5 4 2 1 1 1 5 7 10 5 + 4 12 6 11 14 7 12 9 4 7 + 3 6 4 2 1 2 2 1 9 5 + 4 2 1 5 7 3 2 7 10 5 + 4 12 6 11 14 7 12 7 3 6 + 7 7 4 7 3 5 4 2 1 1 + 1 9 5 4 2 1 5 7 3 2 + 7 10 5 4 12 6 11 14 7 12 + 7 3 6 8 8 5 2 1 4 3 + 2 1 1 9 5 4 2 1 5 7 + 3 2 7 10 5 4 12 6 11 14 + 7 13 12 4 9 6 3 2 1 5 + 3 3 2 2 1 9 5 4 2 1 + 5 7 3 2 7 10 5 4 12 6 + 11 14 7 12 9 4 7 3 6 4 + 2 1 2 2 1 9 5 4 2 1 + 5 7 3 2 7 10 5 4 12 6 + 11 14 7 12 7 3 6 7 7 4 + 7 3 5 4 2 1 1 1 9 5 + 4 2 1 5 7 3 2 7 10 5 + 4 12 6 11 14 7 12 7 3 6 + 8 8 5 2 1 4 3 2 1 1 + 9 5 4 2 1 5 7 3 2 7 + 10 5 4 12 6 11 14 7 13 12 + 4 9 6 3 2 1 5 3 3 2 + 2 1 9 5 4 2 1 5 7 3 + 2 7 10 5 4 12 6 11 14 7 + 12 9 4 7 3 6 4 2 1 2 + 2 1 9 5 4 2 1 5 7 3 + 2 7 10 5 4 12 6 11 14 7 + 12 7 3 6 7 7 4 7 3 5 + 4 2 1 1 1 6 5 4 2 1 + 1 1 1 1 1 1 1 1 1 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 2 1 + 1 2 1 1 2 1 1 2 1 1 + 2 1 1 2 1 1 2 1 1 2 + 1 1 2 1 1 2 1 1 +%FLAG NONBONDED_PARM_INDEX +%FORMAT(10I8) + 1 2 4 7 11 16 22 29 37 46 + 56 67 79 92 106 121 137 2 3 5 + 8 12 17 23 30 38 47 57 68 80 + 93 107 122 138 4 5 6 9 13 18 + 24 31 39 48 58 69 81 94 108 123 + 139 7 8 9 10 14 19 25 32 40 + 49 59 70 82 95 109 124 140 11 12 + 13 14 15 20 26 33 41 50 60 71 + 83 96 110 125 141 16 17 18 19 20 + 21 27 34 42 51 61 72 84 97 111 + 126 142 22 23 24 25 26 27 28 35 + 43 52 62 73 85 98 112 127 143 29 + 30 31 32 33 34 35 36 44 53 63 + 74 86 99 113 128 144 37 38 39 40 + 41 42 43 44 45 54 64 75 87 100 + 114 129 145 46 47 48 49 50 51 52 + 53 54 55 65 76 88 101 115 130 146 + 56 57 58 59 60 61 62 63 64 65 + 66 77 89 102 116 131 147 67 68 69 + 70 71 72 73 74 75 76 77 78 90 + 103 117 132 148 79 80 81 82 83 84 + 85 86 87 88 89 90 91 104 118 133 + 149 92 93 94 95 96 97 98 99 100 + 101 102 103 104 105 119 134 150 106 107 + 108 109 110 111 112 113 114 115 116 117 + 118 119 120 135 151 121 122 123 124 125 + 126 127 128 129 130 131 132 133 134 135 + 136 152 137 138 139 140 141 142 143 144 + 145 146 147 148 149 150 151 152 153 +%FLAG RESIDUE_LABEL +%FORMAT(20a4) +DC5 DG DA DT DC DG DA DT DC DG3 DC5 DG DA DT DC DG DA DT DC DG3 +MG MG MG MG MG MG MG MG MG WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT WAT +WAT WAT WAT WAT WAT WAT WAT WAT +%FLAG RESIDUE_POINTER +%FORMAT(10I8) + 1 29 62 94 126 156 189 221 253 283 + 317 345 378 410 442 472 505 537 569 599 + 633 634 635 636 637 638 639 640 641 642 + 645 648 651 654 657 660 663 666 669 672 + 675 678 681 684 687 690 693 696 699 702 + 705 708 711 714 717 720 723 726 729 732 + 735 738 741 744 747 750 753 756 759 762 + 765 768 771 774 777 780 783 786 789 792 + 795 798 801 804 807 810 813 816 819 822 + 825 828 831 834 837 840 843 846 849 852 + 855 858 861 864 867 870 873 876 879 882 + 885 888 891 894 897 900 903 906 909 912 + 915 918 921 924 927 930 933 936 939 942 + 945 948 951 954 957 960 963 966 969 972 + 975 978 981 984 987 990 993 996 999 1002 + 1005 1008 1011 1014 1017 1020 1023 1026 1029 1032 + 1035 1038 1041 1044 1047 1050 1053 1056 1059 1062 + 1065 1068 1071 1074 1077 1080 1083 1086 1089 1092 + 1095 1098 1101 1104 1107 1110 1113 1116 1119 1122 + 1125 1128 1131 1134 1137 1140 1143 1146 1149 1152 + 1155 1158 1161 1164 1167 1170 1173 1176 1179 1182 + 1185 1188 1191 1194 1197 1200 1203 1206 1209 1212 + 1215 1218 1221 1224 1227 1230 1233 1236 1239 1242 + 1245 1248 1251 1254 1257 1260 1263 1266 1269 1272 + 1275 1278 1281 1284 1287 1290 1293 1296 1299 1302 + 1305 1308 1311 1314 1317 1320 1323 1326 1329 1332 + 1335 1338 1341 1344 1347 1350 1353 1356 1359 1362 + 1365 1368 1371 1374 1377 1380 1383 1386 1389 1392 + 1395 1398 1401 1404 1407 1410 1413 1416 1419 1422 + 1425 1428 1431 1434 1437 1440 1443 1446 1449 1452 + 1455 1458 1461 1464 1467 1470 1473 1476 1479 1482 + 1485 1488 1491 1494 1497 1500 1503 1506 1509 1512 + 1515 1518 1521 1524 1527 1530 1533 1536 1539 1542 + 1545 1548 1551 1554 1557 1560 1563 1566 1569 1572 + 1575 1578 1581 1584 1587 1590 1593 1596 1599 1602 + 1605 1608 1611 1614 1617 1620 1623 1626 1629 1632 + 1635 1638 1641 1644 1647 1650 1653 1656 1659 1662 + 1665 1668 1671 1674 1677 1680 1683 1686 1689 1692 + 1695 1698 1701 1704 1707 1710 1713 1716 1719 1722 + 1725 1728 1731 1734 1737 1740 1743 1746 1749 1752 + 1755 1758 1761 1764 1767 1770 1773 1776 1779 1782 + 1785 1788 1791 1794 1797 1800 1803 1806 1809 1812 + 1815 1818 1821 1824 1827 1830 1833 1836 1839 1842 + 1845 1848 1851 1854 1857 1860 1863 1866 1869 1872 + 1875 1878 1881 1884 1887 1890 1893 1896 1899 1902 + 1905 1908 1911 1914 1917 1920 1923 1926 1929 1932 + 1935 1938 1941 1944 1947 1950 1953 1956 1959 1962 + 1965 1968 1971 1974 1977 1980 1983 1986 1989 1992 + 1995 1998 2001 2004 2007 2010 2013 2016 2019 2022 + 2025 2028 2031 2034 2037 2040 2043 2046 2049 2052 + 2055 2058 2061 2064 2067 2070 2073 2076 2079 2082 + 2085 2088 2091 2094 2097 2100 2103 2106 2109 2112 + 2115 2118 2121 2124 2127 2130 2133 2136 2139 2142 + 2145 2148 2151 2154 2157 2160 2163 2166 2169 2172 + 2175 2178 2181 2184 2187 2190 2193 2196 2199 2202 + 2205 2208 2211 2214 2217 2220 2223 2226 2229 2232 + 2235 2238 2241 2244 2247 2250 2253 2256 2259 2262 + 2265 2268 2271 2274 2277 2280 2283 2286 2289 2292 + 2295 2298 2301 2304 2307 2310 2313 2316 2319 2322 + 2325 2328 2331 2334 2337 2340 2343 2346 2349 2352 + 2355 2358 2361 2364 2367 2370 2373 2376 2379 2382 + 2385 2388 2391 2394 2397 2400 2403 2406 2409 2412 + 2415 2418 2421 2424 2427 2430 2433 2436 2439 2442 + 2445 2448 2451 2454 2457 2460 2463 2466 2469 2472 + 2475 2478 2481 2484 2487 2490 2493 2496 2499 2502 + 2505 2508 2511 2514 2517 2520 2523 2526 2529 2532 + 2535 2538 2541 2544 2547 2550 2553 2556 2559 2562 + 2565 2568 2571 2574 2577 2580 2583 2586 2589 2592 + 2595 2598 2601 2604 2607 2610 2613 2616 2619 2622 + 2625 2628 2631 2634 2637 2640 2643 2646 2649 2652 + 2655 2658 2661 2664 2667 2670 2673 2676 2679 2682 + 2685 2688 2691 2694 2697 2700 2703 2706 2709 2712 + 2715 2718 2721 2724 2727 2730 2733 2736 2739 2742 + 2745 2748 2751 2754 2757 2760 2763 2766 2769 2772 + 2775 2778 2781 2784 2787 2790 2793 2796 2799 2802 + 2805 2808 2811 2814 2817 2820 2823 2826 2829 2832 + 2835 2838 2841 2844 2847 2850 2853 2856 2859 2862 + 2865 2868 2871 2874 2877 2880 2883 2886 2889 2892 + 2895 2898 2901 2904 2907 2910 2913 2916 2919 2922 + 2925 2928 2931 2934 2937 2940 2943 2946 2949 2952 + 2955 2958 2961 2964 2967 2970 2973 2976 2979 2982 + 2985 2988 2991 2994 2997 3000 3003 3006 3009 3012 + 3015 3018 3021 3024 3027 3030 3033 3036 3039 3042 + 3045 3048 3051 3054 3057 3060 3063 3066 3069 3072 + 3075 3078 3081 3084 3087 3090 3093 3096 3099 3102 + 3105 3108 3111 3114 3117 3120 3123 3126 3129 3132 + 3135 3138 3141 3144 3147 3150 3153 3156 3159 3162 + 3165 3168 3171 3174 3177 3180 3183 3186 3189 3192 + 3195 3198 3201 3204 3207 3210 3213 3216 3219 3222 + 3225 3228 3231 3234 3237 3240 3243 3246 3249 3252 + 3255 3258 3261 3264 3267 3270 3273 3276 3279 3282 + 3285 3288 3291 3294 3297 3300 3303 3306 3309 3312 + 3315 3318 3321 3324 3327 3330 3333 3336 3339 3342 + 3345 3348 3351 3354 3357 3360 3363 3366 3369 3372 + 3375 3378 3381 3384 3387 3390 3393 3396 3399 3402 + 3405 3408 3411 3414 3417 3420 3423 3426 3429 3432 + 3435 3438 3441 3444 3447 3450 3453 3456 3459 3462 + 3465 3468 3471 3474 3477 3480 3483 3486 3489 3492 + 3495 3498 3501 3504 3507 3510 3513 3516 3519 3522 + 3525 3528 3531 3534 3537 3540 3543 3546 3549 3552 + 3555 3558 3561 3564 3567 3570 3573 3576 3579 3582 + 3585 3588 3591 3594 3597 3600 3603 3606 3609 3612 + 3615 3618 3621 3624 3627 3630 3633 3636 3639 3642 + 3645 3648 3651 3654 3657 3660 3663 3666 3669 3672 + 3675 3678 3681 3684 3687 3690 3693 3696 3699 3702 + 3705 3708 3711 3714 3717 3720 3723 3726 3729 3732 + 3735 3738 3741 3744 3747 3750 3753 3756 3759 3762 + 3765 3768 3771 3774 3777 3780 3783 3786 3789 3792 + 3795 3798 3801 3804 3807 3810 3813 3816 3819 3822 + 3825 3828 3831 3834 3837 3840 3843 3846 3849 3852 + 3855 3858 3861 3864 3867 3870 3873 3876 3879 3882 + 3885 3888 3891 3894 3897 3900 3903 3906 3909 3912 + 3915 3918 3921 3924 3927 3930 3933 3936 3939 3942 + 3945 3948 3951 3954 3957 3960 3963 3966 3969 3972 + 3975 3978 3981 3984 3987 3990 3993 3996 3999 4002 + 4005 4008 4011 4014 4017 4020 4023 4026 4029 4032 + 4035 4038 4041 4044 4047 4050 4053 4056 4059 4062 + 4065 4068 4071 4074 4077 4080 4083 4086 4089 4092 + 4095 4098 4101 4104 4107 4110 4113 4116 4119 4122 + 4125 4128 4131 4134 4137 4140 4143 4146 4149 4152 + 4155 4158 4161 4164 4167 4170 4173 4176 4179 4182 + 4185 4188 4191 4194 4197 4200 4203 4206 4209 4212 + 4215 4218 4221 4224 4227 4230 4233 4236 4239 4242 + 4245 4248 4251 4254 4257 4260 4263 4266 4269 4272 + 4275 4278 4281 4284 4287 4290 4293 4296 4299 4302 + 4305 4308 4311 4314 4317 4320 4323 4326 4329 4332 + 4335 4338 4341 4344 4347 4350 4353 4356 4359 4362 + 4365 4368 4371 4374 4377 4380 4383 4386 4389 4392 + 4395 4398 4401 4404 4407 4410 4413 4416 4419 4422 + 4425 4428 4431 4434 4437 4440 4443 4446 4449 4452 + 4455 4458 4461 4464 4467 4470 4473 4476 4479 4482 + 4485 4488 4491 4494 4497 4500 4503 4506 4509 4512 + 4515 4518 4521 4524 4527 4530 4533 4536 4539 4542 + 4545 4548 4551 4554 4557 4560 4563 4566 4569 4572 + 4575 4578 4581 4584 4587 4590 4593 4596 4599 4602 + 4605 4608 4611 4614 4617 4620 4623 4626 4629 4632 + 4635 4638 4641 4644 4647 4650 4653 4656 4659 4662 + 4665 4668 4671 4674 4677 4680 4683 4686 4689 4692 + 4695 4698 4701 4704 4707 4710 4713 4716 4719 4722 + 4725 4728 4731 4734 4737 4740 4743 4746 4749 4752 + 4755 4758 4761 4764 4767 4770 4773 4776 4779 4782 + 4785 4788 4791 4794 4797 4800 4803 4806 4809 4812 + 4815 4818 4821 4824 4827 4830 4833 4836 4839 4842 + 4845 4848 4851 4854 4857 4860 4863 4866 4869 4872 + 4875 4878 4881 4884 4887 4890 4893 4896 4899 4902 + 4905 4908 4911 4914 4917 4920 4923 4926 4929 4932 + 4935 4938 4941 4944 4947 4950 4953 4956 4959 4962 + 4965 4968 4971 4974 4977 4980 4983 4986 4989 4992 + 4995 4998 5001 5004 5007 5010 5013 5016 5019 5022 + 5025 5028 5031 5034 5037 5040 5043 5046 5049 5052 + 5055 5058 5061 5064 5067 5070 5073 5076 5079 5082 + 5085 5088 5091 5094 5097 5100 5103 5106 5109 5112 + 5115 5118 5121 5124 5127 5130 5133 5136 5139 5142 + 5145 5148 5151 5154 5157 5160 5163 5166 5169 5172 + 5175 5178 5181 5184 5187 5190 5193 5196 5199 5202 + 5205 5208 5211 5214 5217 5220 5223 5226 5229 5232 + 5235 5238 5241 5244 5247 5250 5253 5256 5259 5262 + 5265 5268 5271 5274 5277 5280 5283 5286 5289 5292 + 5295 5298 5301 5304 5307 5310 5313 5316 5319 5322 + 5325 5328 5331 5334 5337 5340 5343 5346 5349 5352 + 5355 5358 5361 5364 5367 5370 5373 5376 5379 5382 + 5385 5388 5391 5394 5397 5400 5403 5406 5409 5412 + 5415 5418 5421 5424 5427 5430 5433 5436 5439 5442 + 5445 5448 5451 5454 5457 5460 5463 5466 5469 5472 + 5475 5478 5481 5484 5487 5490 5493 5496 5499 5502 + 5505 5508 5511 5514 5517 5520 5523 5526 5529 5532 + 5535 5538 5541 5544 5547 5550 5553 5556 5559 5562 + 5565 5568 5571 5574 5577 5580 5583 5586 5589 5592 + 5595 5598 5601 5604 5607 5610 5613 5616 5619 5622 + 5625 5628 5631 5634 5637 5640 5643 5646 5649 5652 + 5655 5658 5661 5664 5667 5670 5673 5676 5679 5682 + 5685 5688 5691 5694 5697 5700 5703 5706 5709 5712 + 5715 5718 5721 5724 5727 5730 5733 5736 5739 5742 + 5745 5748 5751 5754 5757 5760 5763 5766 5769 5772 + 5775 5778 5781 5784 5787 5790 5793 5796 5799 5802 + 5805 5808 5811 5814 5817 5820 5823 5826 5829 5832 + 5835 5838 5841 5844 5847 5850 5853 5856 5859 5862 + 5865 5868 5871 5874 5877 5880 5883 5886 5889 5892 + 5895 5898 5901 5904 5907 5910 5913 5916 5919 5922 + 5925 5928 5931 5934 5937 5940 5943 5946 5949 5952 + 5955 5958 5961 5964 5967 5970 5973 5976 5979 5982 + 5985 5988 5991 5994 5997 6000 6003 6006 6009 6012 + 6015 6018 6021 6024 6027 6030 6033 6036 6039 6042 + 6045 6048 6051 6054 6057 6060 6063 6066 6069 6072 + 6075 6078 6081 6084 6087 6090 6093 6096 6099 6102 + 6105 6108 6111 6114 6117 6120 6123 6126 6129 6132 + 6135 6138 6141 6144 6147 6150 6153 6156 6159 6162 + 6165 6168 6171 6174 6177 6180 6183 6186 6189 6192 + 6195 6198 6201 6204 6207 6210 6213 6216 6219 6222 + 6225 6228 6231 6234 6237 6240 6243 6246 6249 6252 + 6255 6258 6261 6264 6267 6270 6273 6276 6279 6282 + 6285 6288 6291 6294 6297 6300 6303 6306 6309 6312 + 6315 6318 6321 6324 6327 6330 6333 6336 6339 6342 + 6345 6348 6351 6354 6357 6360 6363 6366 6369 6372 + 6375 6378 6381 6384 6387 6390 6393 6396 6399 6402 + 6405 6408 6411 6414 6417 6420 6423 6426 6429 6432 + 6435 6438 6441 6444 6447 6450 6453 6456 6459 6462 + 6465 6468 6471 6474 6477 6480 6483 6486 6489 6492 + 6495 6498 6501 6504 6507 6510 6513 6516 6519 6522 + 6525 6528 6531 6534 6537 6540 6543 6546 6549 6552 + 6555 6558 6561 6564 6567 6570 6573 6576 6579 6582 + 6585 6588 6591 6594 6597 6600 6603 6606 6609 6612 + 6615 6618 6621 6624 6627 6630 6633 6636 6639 6642 + 6645 6648 6651 6654 6657 6660 6663 6666 6669 6672 + 6675 6678 6681 6684 6687 6690 6693 6696 6699 6702 + 6705 6708 6711 6714 6717 6720 6723 6726 6729 6732 + 6735 6738 6741 6744 6747 6750 6753 6756 6759 6762 + 6765 6768 6771 6774 6777 6780 6783 6786 6789 6792 + 6795 6798 6801 6804 6807 6810 6813 6816 6819 6822 + 6825 6828 6831 6834 6837 6840 6843 6846 6849 6852 + 6855 6858 6861 6864 6867 6870 6873 6876 6879 6882 + 6885 6888 6891 6894 6897 6900 6903 6906 6909 6912 + 6915 6918 6921 6924 6927 6930 6933 6936 6939 6942 + 6945 6948 6951 6954 6957 6960 6963 6966 6969 6972 + 6975 6978 6981 6984 6987 6990 6993 6996 6999 7002 + 7005 7008 7011 7014 7017 7020 7023 7026 7029 7032 + 7035 7038 7041 7044 7047 7050 7053 7056 7059 7062 + 7065 7068 7071 7074 7077 7080 7083 7086 7089 7092 + 7095 7098 7101 7104 7107 7110 7113 7116 7119 7122 + 7125 7128 7131 7134 7137 7140 7143 7146 7149 7152 + 7155 7158 7161 7164 7167 7170 7173 7176 7179 7182 + 7185 7188 7191 7194 7197 7200 7203 7206 7209 7212 + 7215 7218 7221 7224 7227 7230 7233 7236 7239 7242 + 7245 7248 7251 7254 7257 7260 7263 7266 7269 7272 + 7275 7278 7281 7284 7287 7290 7293 7296 7299 7302 + 7305 7308 7311 7314 7317 7320 7323 7326 7329 7332 + 7335 7338 7341 7344 7347 7350 7353 7356 7359 7362 + 7365 7368 7371 7374 7377 7380 7383 7386 7389 7392 + 7395 7398 7401 7404 7407 7410 7413 7416 7419 7422 + 7425 7428 7431 7434 7437 7440 7443 7446 7449 7452 + 7455 7458 7461 7464 7467 7470 7473 7476 7479 7482 + 7485 7488 7491 7494 7497 7500 7503 7506 7509 7512 + 7515 7518 7521 7524 7527 7530 7533 7536 7539 7542 + 7545 7548 7551 7554 7557 7560 7563 7566 7569 7572 + 7575 7578 7581 7584 7587 7590 7593 7596 7599 7602 + 7605 7608 7611 7614 7617 7620 7623 7626 7629 7632 + 7635 7638 7641 7644 7647 7650 7653 7656 7659 7662 + 7665 7668 7671 7674 7677 7680 7683 7686 7689 7692 + 7695 7698 7701 7704 7707 7710 7713 7716 7719 7722 + 7725 7728 7731 7734 7737 7740 7743 7746 7749 7752 + 7755 7758 7761 7764 7767 7770 7773 7776 7779 7782 + 7785 7788 7791 7794 7797 7800 7803 7806 7809 7812 + 7815 7818 7821 7824 7827 7830 7833 7836 7839 7842 + 7845 7848 7851 7854 7857 7860 7863 7866 7869 7872 + 7875 7878 7881 7884 7887 7890 7893 7896 7899 7902 + 7905 7908 7911 7914 7917 7920 7923 7926 7929 7932 + 7935 7938 7941 7944 7947 7950 7953 7956 7959 7962 + 7965 7968 7971 7974 7977 7980 7983 7986 7989 7992 + 7995 7998 8001 8004 8007 8010 8013 8016 8019 8022 + 8025 8028 8031 8034 8037 8040 8043 8046 8049 8052 + 8055 8058 8061 8064 8067 8070 8073 8076 8079 8082 + 8085 8088 8091 8094 8097 8100 8103 8106 8109 8112 + 8115 8118 8121 8124 8127 8130 8133 8136 8139 8142 + 8145 8148 8151 8154 8157 8160 8163 8166 8169 8172 + 8175 8178 8181 8184 8187 8190 8193 8196 8199 8202 + 8205 8208 8211 8214 8217 8220 8223 8226 8229 8232 + 8235 8238 8241 8244 8247 8250 8253 8256 8259 8262 + 8265 8268 8271 8274 8277 8280 8283 8286 8289 8292 + 8295 8298 8301 8304 8307 8310 8313 8316 8319 8322 + 8325 8328 8331 8334 8337 8340 8343 8346 8349 8352 + 8355 8358 8361 8364 8367 8370 8373 8376 8379 8382 + 8385 8388 8391 8394 8397 8400 8403 8406 8409 8412 + 8415 8418 8421 8424 8427 8430 8433 8436 8439 8442 + 8445 8448 8451 8454 8457 8460 8463 8466 8469 8472 + 8475 8478 8481 8484 8487 8490 8493 8496 8499 8502 + 8505 8508 8511 8514 8517 8520 8523 8526 8529 8532 + 8535 8538 8541 8544 8547 8550 8553 8556 8559 8562 + 8565 8568 8571 8574 8577 8580 8583 8586 8589 8592 + 8595 8598 8601 8604 8607 8610 8613 8616 8619 8622 + 8625 8628 8631 8634 8637 8640 8643 8646 8649 8652 + 8655 8658 8661 8664 8667 8670 8673 8676 8679 8682 + 8685 8688 8691 8694 8697 8700 8703 8706 8709 8712 + 8715 8718 8721 8724 8727 8730 8733 8736 8739 8742 + 8745 8748 8751 8754 8757 8760 8763 8766 8769 8772 + 8775 8778 8781 8784 8787 8790 8793 8796 8799 8802 + 8805 8808 8811 8814 8817 8820 8823 8826 8829 8832 + 8835 8838 8841 8844 8847 8850 8853 8856 8859 8862 + 8865 8868 8871 8874 8877 8880 8883 8886 8889 8892 + 8895 8898 8901 8904 8907 8910 8913 8916 8919 8922 + 8925 8928 8931 8934 8937 8940 8943 8946 8949 8952 + 8955 8958 8961 8964 8967 8970 8973 8976 8979 8982 + 8985 8988 8991 8994 8997 9000 9003 9006 9009 9012 + 9015 9018 9021 9024 9027 9030 9033 9036 9039 9042 + 9045 9048 9051 9054 9057 9060 9063 9066 9069 9072 + 9075 9078 9081 9084 9087 9090 9093 9096 9099 9102 + 9105 9108 9111 9114 9117 9120 9123 9126 9129 9132 + 9135 9138 9141 9144 9147 9150 9153 9156 9159 9162 + 9165 9168 9171 9174 9177 9180 9183 9186 9189 9192 + 9195 9198 9201 9204 9207 9210 9213 9216 9219 9222 + 9225 9228 9231 9234 9237 9240 9243 9246 9249 9252 + 9255 9258 9261 9264 9267 9270 9273 9276 9279 9282 + 9285 9288 9291 9294 9297 9300 9303 9306 9309 9312 + 9315 9318 9321 9324 9327 9330 9333 9336 9339 9342 + 9345 9348 9351 9354 9357 9360 9363 9366 9369 9372 + 9375 9378 9381 9384 9387 9390 9393 9396 9399 9402 + 9405 9408 9411 9414 9417 9420 9423 9426 9429 9432 + 9435 9438 9441 9444 9447 9450 9453 9456 9459 9462 + 9465 9468 9471 9474 9477 9480 9483 9486 9489 9492 + 9495 9498 9501 9504 9507 9510 9513 9516 9519 9522 + 9525 9528 9531 9534 9537 9540 9543 9546 9549 9552 + 9555 9558 9561 9564 9567 9570 9573 9576 9579 9582 + 9585 9588 9591 9594 9597 9600 9603 9606 9609 9612 + 9615 9618 9621 9624 9627 9630 9633 9636 9639 9642 + 9645 9648 9651 9654 9657 9660 9663 9666 9669 9672 + 9675 9678 9681 9684 9687 9690 9693 9696 9699 9702 + 9705 9708 9711 9714 9717 9720 9723 9726 9729 9732 + 9735 9738 9741 9744 9747 9750 9753 9756 9759 9762 + 9765 9768 9771 9774 9777 9780 9783 9786 9789 9792 + 9795 9798 9801 9804 9807 9810 9813 9816 9819 9822 + 9825 9828 9831 9834 9837 9840 9843 9846 9849 9852 + 9855 9858 9861 9864 9867 9870 9873 9876 9879 9882 + 9885 9888 9891 9894 9897 9900 9903 9906 9909 9912 + 9915 9918 9921 9924 9927 9930 9933 9936 9939 9942 + 9945 9948 9951 9954 9957 9960 9963 9966 9969 9972 + 9975 9978 9981 9984 9987 9990 9993 9996 9999 10002 + 10005 10008 10011 10014 10017 10020 10023 10026 10029 10032 + 10035 10038 10041 10044 10047 10050 10053 10056 +%FLAG BOND_FORCE_CONSTANT +%FORMAT(5E16.8) + 2.30000000E+02 3.40000000E+02 3.40000000E+02 3.10000000E+02 3.20000000E+02 + 5.70000000E+02 4.57000000E+02 4.34000000E+02 4.81000000E+02 4.83000000E+02 + 3.67000000E+02 4.27000000E+02 3.67000000E+02 5.49000000E+02 4.48000000E+02 + 4.24000000E+02 3.40000000E+02 3.37000000E+02 3.10000000E+02 3.20000000E+02 + 3.40000000E+02 3.40000000E+02 3.10000000E+02 3.20000000E+02 5.53000000E+02 + 4.61000000E+02 4.34000000E+02 4.27000000E+02 4.18000000E+02 4.47000000E+02 + 5.20000000E+02 4.14000000E+02 3.67000000E+02 5.29000000E+02 4.40000000E+02 + 4.36000000E+02 3.20000000E+02 5.25000000E+02 3.67000000E+02 5.02000000E+02 + 4.69000000E+02 3.67000000E+02 5.29000000E+02 4.40000000E+02 3.17000000E+02 + 4.10000000E+02 3.67000000E+02 5.49000000E+02 4.48000000E+02 3.20000000E+02 + 5.53000000E+02 5.53000000E+02 +%FLAG BOND_EQUIL_VALUE +%FORMAT(5E16.8) + 1.61000000E+00 1.09000000E+00 1.09000000E+00 1.52600000E+00 1.41000000E+00 + 1.22900000E+00 1.35800000E+00 1.01000000E+00 1.34000000E+00 1.33900000E+00 + 1.08000000E+00 1.43300000E+00 1.08000000E+00 1.35000000E+00 1.36500000E+00 + 1.38300000E+00 1.09000000E+00 1.47500000E+00 1.52600000E+00 1.41000000E+00 + 1.09000000E+00 1.09000000E+00 1.52600000E+00 1.41000000E+00 9.60000000E-01 + 1.35400000E+00 1.01000000E+00 1.38100000E+00 1.38800000E+00 1.41900000E+00 + 1.37000000E+00 1.39100000E+00 1.08000000E+00 1.30400000E+00 1.37100000E+00 + 1.37400000E+00 1.41000000E+00 1.48000000E+00 1.08000000E+00 1.32400000E+00 + 1.40400000E+00 1.08000000E+00 1.30400000E+00 1.37100000E+00 1.51000000E+00 + 1.44400000E+00 1.08000000E+00 1.35000000E+00 1.36500000E+00 1.41000000E+00 + 9.57200000E-01 1.51360000E+00 +%FLAG ANGLE_FORCE_CONSTANT +%FORMAT(5E16.8) + 1.00000000E+02 4.50000000E+01 3.50000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 5.00000000E+01 1.00000000E+02 8.00000000E+01 3.50000000E+01 + 7.00000000E+01 5.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 + 7.00000000E+01 5.00000000E+01 7.00000000E+01 5.00000000E+01 6.30000000E+01 + 5.00000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 8.00000000E+01 + 5.00000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 4.00000000E+01 + 5.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 5.00000000E+01 6.00000000E+01 4.00000000E+01 5.00000000E+01 + 3.50000000E+01 5.00000000E+01 5.00000000E+01 4.00000000E+01 5.00000000E+01 + 5.00000000E+01 5.50000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 + 7.00000000E+01 8.00000000E+01 6.30000000E+01 5.00000000E+01 7.00000000E+01 + 8.00000000E+01 7.00000000E+01 7.00000000E+01 7.00000000E+01 7.00000000E+01 + 5.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 + 7.00000000E+01 7.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 + 5.00000000E+01 1.40000000E+02 1.00000000E+02 5.00000000E+01 7.00000000E+01 + 7.00000000E+01 6.30000000E+01 7.00000000E+01 7.00000000E+01 7.00000000E+01 + 7.00000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 + 7.00000000E+01 7.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 + 8.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 7.00000000E+01 + 5.00000000E+01 5.00000000E+01 5.50000000E+01 +%FLAG ANGLE_EQUIL_VALUE +%FORMAT(5E16.8) + 1.88897066E+00 1.79070858E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 2.10312265E+00 2.13802925E+00 2.09439600E+00 + 2.08217869E+00 2.09439600E+00 2.10312265E+00 2.15199189E+00 2.09614133E+00 + 2.12057595E+00 2.08916001E+00 2.12232128E+00 2.08916001E+00 2.04203610E+00 + 1.91113635E+00 2.07868803E+00 2.11533996E+00 2.06996138E+00 2.11010397E+00 + 1.91113635E+00 1.91113635E+00 2.11533996E+00 2.05250808E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.89368305E+00 1.95826026E+00 2.05948940E+00 2.02458280E+00 + 2.15199189E+00 2.10486798E+00 2.08043336E+00 2.03854544E+00 2.18515316E+00 + 2.24798504E+00 1.94255229E+00 2.22878641E+00 2.26892900E+00 1.92684432E+00 + 2.14762857E+00 1.83957782E+00 1.81165254E+00 2.14762857E+00 1.98793087E+00 + 1.85354046E+00 2.20260646E+00 2.24798504E+00 2.19562514E+00 1.91113635E+00 + 1.91113635E+00 2.09265067E+00 2.10312265E+00 2.01498349E+00 1.93731630E+00 + 2.25322103E+00 2.04727209E+00 2.06996138E+00 2.15548255E+00 2.04727209E+00 + 2.31081692E+00 2.14762857E+00 1.83957782E+00 1.81165254E+00 2.14762857E+00 + 1.98793087E+00 2.24798504E+00 2.20609712E+00 2.08916001E+00 1.91113635E+00 + 2.18689849E+00 1.99142153E+00 2.08916001E+00 2.12232128E+00 2.08916001E+00 + 2.10661331E+00 2.07868803E+00 2.11533996E+00 2.01411082E+00 2.11533996E+00 + 1.91113635E+00 1.91113635E+00 1.89368305E+00 +%FLAG DIHEDRAL_FORCE_CONSTANT +%FORMAT(5E16.8) + 1.85181000E-01 1.25653100E+00 3.54858000E-01 2.50000000E-01 0.00000000E+00 + 1.77488000E+00 6.46810000E-01 1.52590000E-01 1.55555556E-01 3.83333333E-01 + 2.94070000E-01 9.28870000E-01 9.74250000E-01 0.00000000E+00 2.40000000E+00 + 4.80000000E+00 4.00000000E+00 2.55000000E+00 1.85000000E+00 6.65000000E+00 + 1.45000000E+00 1.00000000E-01 3.83000000E-01 1.17500000E+00 1.44000000E-01 + 6.87530000E-01 2.14047000E+00 1.20618000E+00 2.59980000E-01 6.50000000E-01 + 2.00000000E-01 2.50000000E-01 1.80000000E-01 1.60000000E-01 1.17804000E+00 + 9.21020000E-02 9.62830000E-01 1.66666667E-01 1.50000000E+00 3.00000000E+00 + 1.35000000E+00 5.45000000E+00 4.15000000E+00 1.70000000E+00 1.00000000E+01 + 1.65000000E+00 1.18653000E+00 1.82910000E+00 6.65630000E-01 2.50000000E-01 + 5.27950000E-01 9.12740000E-02 5.35535000E-01 7.97600000E-02 6.80000000E+00 + 3.50000000E+00 1.54499000E+00 1.82864000E+00 5.73840000E-01 2.17500000E+00 + 1.15000000E+00 3.80000000E-01 3.00000000E-01 5.63230000E-01 2.17812000E+00 + 6.77570000E-01 1.37710000E-01 1.05000000E+01 1.00000000E+00 1.10000000E+00 + 0.00000000E+00 +%FLAG DIHEDRAL_PERIODICITY +%FORMAT(5E16.8) + 1.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 3.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 3.00000000E+00 3.00000000E+00 + 3.00000000E+00 1.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 3.00000000E+00 2.00000000E+00 3.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 2.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 3.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 3.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 2.00000000E+00 + 2.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 2.00000000E+00 + 1.00000000E+00 3.00000000E+00 3.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 4.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 +%FLAG DIHEDRAL_PHASE +%FORMAT(5E16.8) + 5.54929070E-01 6.14285649E+00 6.23514744E+00 0.00000000E+00 0.00000000E+00 + 3.59396957E+00 2.44056824E+00 2.83610365E+00 0.00000000E+00 0.00000000E+00 + 6.25323814E+00 3.06008709E-02 6.12404881E+00 0.00000000E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.94285772E+00 6.28807841E+00 2.97823460E+00 1.64388095E+00 0.00000000E+00 + 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 3.33317067E+00 + 5.15976777E+00 6.07541257E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 7.66639693E-01 6.12408721E+00 3.06161425E+00 0.00000000E+00 + 4.11516700E-01 3.90339511E+00 3.16964180E+00 3.75561907E+00 3.14159400E+00 + 3.14159400E+00 7.08469590E-01 6.22250811E+00 3.12423320E+00 3.14159400E+00 + 0.00000000E+00 3.14159400E+00 0.00000000E+00 1.65293572E+00 6.24569831E+00 + 3.11516447E+00 1.48989048E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 +%FLAG SCEE_SCALE_FACTOR +%FORMAT(5E16.8) + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 +%FLAG SCNB_SCALE_FACTOR +%FORMAT(5E16.8) + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 +%FLAG SOLTY +%FORMAT(5E16.8) + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 +%FLAG LENNARD_JONES_ACOEF +%FORMAT(5E16.8) + 0.00000000E+00 0.00000000E+00 5.81803229E+05 0.00000000E+00 7.91544157E+05 + 1.04308023E+06 0.00000000E+00 4.66922514E+04 6.78771368E+04 3.25969625E+03 + 0.00000000E+00 4.58874091E+05 6.28541240E+05 3.63097246E+04 3.61397723E+05 + 0.00000000E+00 3.15360051E+04 4.68930885E+04 2.09814978E+03 2.44050579E+04 + 1.32801250E+03 0.00000000E+00 7.44975864E+05 9.95480466E+05 6.20665997E+04 + 5.89818288E+05 4.24594555E+04 9.44293233E+05 0.00000000E+00 7.01803794E+05 + 9.24822270E+05 6.01816484E+04 5.57281136E+05 4.15766412E+04 8.82619071E+05 + 8.19971662E+05 0.00000000E+00 4.96707306E+04 7.18621074E+04 3.50301067E+03 + 3.86654993E+04 2.26273716E+03 6.58473870E+04 6.37148278E+04 3.76169105E+03 + 0.00000000E+00 6.00750218E+04 8.59947003E+04 4.33325458E+03 4.68711055E+04 + 2.82099197E+03 7.91627154E+04 7.62451550E+04 4.64559155E+03 5.71629601E+03 + 0.00000000E+00 1.40467023E+03 2.56678134E+03 5.94667300E+01 1.03954408E+03 + 3.20009193E+01 2.12601181E+03 2.27577561E+03 6.63368273E+01 8.90987508E+01 + 1.39982777E-01 0.00000000E+00 4.71003287E+05 6.47841731E+05 3.69471530E+04 + 3.70622491E+05 2.47595516E+04 6.06829342E+05 5.74393458E+05 3.93690817E+04 + 4.77908183E+04 1.02595236E+03 3.79876399E+05 0.00000000E+00 6.82786631E+04 + 9.71708117E+04 4.98586848E+03 5.33379252E+04 3.25969625E+03 8.96776989E+04 + 8.61541883E+04 5.34045360E+03 6.55825601E+03 1.07193646E+02 5.44261042E+04 + 7.51607703E+03 0.00000000E+00 1.98683736E+06 2.54188684E+06 1.81087383E+05 + 1.58759528E+06 1.27716552E+05 2.45746558E+06 2.25370349E+06 1.90880272E+05 + 2.26202022E+05 8.41065839E+03 1.64263766E+06 2.54238516E+05 6.02589390E+06 + 0.00000000E+00 4.09427581E+04 5.98885646E+04 2.82099197E+03 3.17965283E+04 + 1.80748014E+03 5.46147253E+04 5.30987710E+04 3.03448006E+03 3.76169105E+03 + 4.90239937E+01 3.23283631E+04 4.33325458E+03 1.60682053E+05 2.43828624E+03 + 0.00000000E+00 6.78151443E+04 9.75260064E+04 4.84378044E+03 5.28575497E+04 + 3.14263092E+03 8.95967715E+04 8.64691132E+04 5.19664073E+03 6.40452071E+03 + 9.60949331E+01 5.38618613E+04 7.35421903E+03 2.57628574E+05 4.20097357E+03 + 7.17063793E+03 0.00000000E+00 5.82511344E+05 7.85890042E+05 4.75728872E+04 + 4.60252016E+05 3.23234673E+04 7.42364908E+05 6.96790708E+05 5.05435913E+04 + 6.09592309E+04 1.52094041E+03 4.72934643E+05 6.91773368E+04 1.95739541E+06 + 4.17832254E+04 6.88976344E+04 5.81935564E+05 +%FLAG LENNARD_JONES_BCOEF +%FORMAT(5E16.8) + 0.00000000E+00 0.00000000E+00 6.99746810E+02 0.00000000E+00 6.93079947E+02 + 6.75612247E+02 0.00000000E+00 1.03606917E+02 1.06076943E+02 1.43076527E+01 + 0.00000000E+00 5.89183300E+02 5.85549272E+02 8.66220817E+01 4.95732238E+02 + 0.00000000E+00 8.51470647E+01 8.81685417E+01 1.14788417E+01 7.10161395E+01 + 9.13231543E+00 0.00000000E+00 7.50714425E+02 7.36907417E+02 1.13252061E+02 + 6.33305958E+02 9.36708259E+01 8.01323529E+02 0.00000000E+00 6.14502845E+02 + 5.99015525E+02 9.40505980E+01 5.19163331E+02 7.81725398E+01 6.53361429E+02 + 5.31102864E+02 0.00000000E+00 1.05648788E+02 1.07908863E+02 1.46638650E+01 + 8.83744760E+01 1.17854122E+01 1.15327881E+02 9.56748258E+01 1.50233639E+01 + 0.00000000E+00 1.16187983E+02 1.18043746E+02 1.63092814E+01 9.73010751E+01 + 1.31591746E+01 1.26451907E+02 1.04660679E+02 1.66953734E+01 1.85196588E+01 + 0.00000000E+00 1.79702257E+01 2.06278363E+01 1.93248820E+00 1.46567808E+01 + 1.41762397E+00 2.09604198E+01 1.82891803E+01 2.01792524E+00 2.33864085E+00 + 9.37598976E-02 0.00000000E+00 6.29300710E+02 6.26720080E+02 9.21192136E+01 + 5.29252520E+02 7.54103785E+01 6.77220874E+02 5.55666448E+02 9.40124296E+01 + 1.03580945E+02 1.53505284E+01 5.64885984E+02 0.00000000E+00 1.25287818E+02 + 1.26919150E+02 1.76949863E+01 1.04986921E+02 1.43076527E+01 1.36131731E+02 + 1.12529845E+02 1.81057616E+01 2.00642027E+01 2.59456373E+00 1.11805549E+02 + 2.17257828E+01 0.00000000E+00 1.27682121E+03 1.22636552E+03 2.01468199E+02 + 1.08210555E+03 1.69194406E+02 1.34630496E+03 1.08732781E+03 2.04498832E+02 + 2.22617115E+02 4.34187588E+01 1.16041466E+03 2.38716853E+02 2.19561270E+03 + 0.00000000E+00 9.59185913E+01 9.85097219E+01 1.31591746E+01 8.01410250E+01 + 1.05333009E+01 1.05031585E+02 8.73413012E+01 1.34932874E+01 1.50233639E+01 + 1.73473071E+00 8.51921330E+01 1.63092814E+01 1.87626421E+02 1.20953369E+01 + 0.00000000E+00 1.36736334E+02 1.39243106E+02 1.90996888E+01 1.14452398E+02 + 1.53844068E+01 1.49010737E+02 1.23456587E+02 1.95588499E+01 2.17132726E+01 + 2.69019840E+00 1.21802066E+02 2.35343575E+01 2.63156237E+02 1.75855899E+01 + 2.54487941E+01 0.00000000E+00 6.45512297E+02 6.36687196E+02 9.64152120E+01 + 5.44002597E+02 7.94739459E+01 6.90894667E+02 5.64503554E+02 9.82532117E+01 + 1.07902982E+02 1.72393904E+01 5.81361517E+02 1.16264660E+02 1.16838958E+03 + 8.93335697E+01 1.27063907E+02 5.94825035E+02 +%FLAG BONDS_INC_HYDROGEN +%FORMAT(10I8) + 72 75 2 72 78 2 66 69 3 48 + 51 8 48 54 8 39 42 11 33 36 + 13 24 27 17 15 18 21 6 9 22 + 6 12 22 0 3 25 171 174 2 171 + 177 2 165 168 3 150 153 8 150 156 + 8 141 144 27 123 126 33 114 117 17 + 105 108 21 96 99 22 96 102 22 267 + 270 2 267 273 2 261 264 3 249 252 + 39 237 240 8 237 243 8 222 225 42 + 213 216 17 204 207 21 195 198 22 195 + 201 22 363 366 2 363 369 2 357 360 + 3 345 348 27 327 330 2 327 333 2 + 327 336 2 318 321 47 309 312 17 300 + 303 21 291 294 22 291 297 22 453 456 + 2 453 459 2 447 450 3 429 432 8 + 429 435 8 420 423 11 414 417 13 405 + 408 17 396 399 21 387 390 22 387 393 + 22 552 555 2 552 558 2 546 549 3 + 531 534 8 531 537 8 522 525 27 504 + 507 33 495 498 17 486 489 21 477 480 + 22 477 483 22 648 651 2 648 654 2 + 642 645 3 630 633 39 618 621 8 618 + 624 8 603 606 42 594 597 17 585 588 + 21 576 579 22 576 582 22 744 747 2 + 744 750 2 738 741 3 726 729 27 708 + 711 2 708 714 2 708 717 2 699 702 + 47 690 693 17 681 684 21 672 675 22 + 672 678 22 834 837 2 834 840 2 828 + 831 3 810 813 8 810 816 8 801 804 + 11 795 798 13 786 789 17 777 780 21 + 768 771 22 768 774 22 942 945 25 933 + 936 2 933 939 2 927 930 3 912 915 + 8 912 918 8 903 906 27 885 888 33 + 876 879 17 867 870 21 858 861 22 858 + 864 22 1020 1023 2 1020 1026 2 1014 1017 + 3 996 999 8 996 1002 8 987 990 11 + 981 984 13 972 975 17 963 966 21 954 + 957 22 954 960 22 948 951 25 1119 1122 + 2 1119 1125 2 1113 1116 3 1098 1101 8 + 1098 1104 8 1089 1092 27 1071 1074 33 1062 + 1065 17 1053 1056 21 1044 1047 22 1044 1050 + 22 1215 1218 2 1215 1221 2 1209 1212 3 + 1197 1200 39 1185 1188 8 1185 1191 8 1170 + 1173 42 1161 1164 17 1152 1155 21 1143 1146 + 22 1143 1149 22 1311 1314 2 1311 1317 2 + 1305 1308 3 1293 1296 27 1275 1278 2 1275 + 1281 2 1275 1284 2 1266 1269 47 1257 1260 + 17 1248 1251 21 1239 1242 22 1239 1245 22 + 1401 1404 2 1401 1407 2 1395 1398 3 1377 + 1380 8 1377 1383 8 1368 1371 11 1362 1365 + 13 1353 1356 17 1344 1347 21 1335 1338 22 + 1335 1341 22 1500 1503 2 1500 1506 2 1494 + 1497 3 1479 1482 8 1479 1485 8 1470 1473 + 27 1452 1455 33 1443 1446 17 1434 1437 21 + 1425 1428 22 1425 1431 22 1596 1599 2 1596 + 1602 2 1590 1593 3 1578 1581 39 1566 1569 + 8 1566 1572 8 1551 1554 42 1542 1545 17 + 1533 1536 21 1524 1527 22 1524 1530 22 1692 + 1695 2 1692 1698 2 1686 1689 3 1674 1677 + 27 1656 1659 2 1656 1662 2 1656 1665 2 + 1647 1650 47 1638 1641 17 1629 1632 21 1620 + 1623 22 1620 1626 22 1782 1785 2 1782 1788 + 2 1776 1779 3 1758 1761 8 1758 1764 8 + 1749 1752 11 1743 1746 13 1734 1737 17 1725 + 1728 21 1716 1719 22 1716 1722 22 1890 1893 + 25 1881 1884 2 1881 1887 2 1875 1878 3 + 1860 1863 8 1860 1866 8 1851 1854 27 1833 + 1836 33 1824 1827 17 1815 1818 21 1806 1809 + 22 1806 1812 22 1926 1923 51 1929 1923 51 + 1929 1926 52 1935 1932 51 1938 1932 51 1938 + 1935 52 1944 1941 51 1947 1941 51 1947 1944 + 52 1953 1950 51 1956 1950 51 1956 1953 52 + 1962 1959 51 1965 1959 51 1965 1962 52 1971 + 1968 51 1974 1968 51 1974 1971 52 1980 1977 + 51 1983 1977 51 1983 1980 52 1989 1986 51 + 1992 1986 51 1992 1989 52 1998 1995 51 2001 + 1995 51 2001 1998 52 2007 2004 51 2010 2004 + 51 2010 2007 52 2016 2013 51 2019 2013 51 + 2019 2016 52 2025 2022 51 2028 2022 51 2028 + 2025 52 2034 2031 51 2037 2031 51 2037 2034 + 52 2043 2040 51 2046 2040 51 2046 2043 52 + 2052 2049 51 2055 2049 51 2055 2052 52 2061 + 2058 51 2064 2058 51 2064 2061 52 2070 2067 + 51 2073 2067 51 2073 2070 52 2079 2076 51 + 2082 2076 51 2082 2079 52 2088 2085 51 2091 + 2085 51 2091 2088 52 2097 2094 51 2100 2094 + 51 2100 2097 52 2106 2103 51 2109 2103 51 + 2109 2106 52 2115 2112 51 2118 2112 51 2118 + 2115 52 2124 2121 51 2127 2121 51 2127 2124 + 52 2133 2130 51 2136 2130 51 2136 2133 52 + 2142 2139 51 2145 2139 51 2145 2142 52 2151 + 2148 51 2154 2148 51 2154 2151 52 2160 2157 + 51 2163 2157 51 2163 2160 52 2169 2166 51 + 2172 2166 51 2172 2169 52 2178 2175 51 2181 + 2175 51 2181 2178 52 2187 2184 51 2190 2184 + 51 2190 2187 52 2196 2193 51 2199 2193 51 + 2199 2196 52 2205 2202 51 2208 2202 51 2208 + 2205 52 2214 2211 51 2217 2211 51 2217 2214 + 52 2223 2220 51 2226 2220 51 2226 2223 52 + 2232 2229 51 2235 2229 51 2235 2232 52 2241 + 2238 51 2244 2238 51 2244 2241 52 2250 2247 + 51 2253 2247 51 2253 2250 52 2259 2256 51 + 2262 2256 51 2262 2259 52 2268 2265 51 2271 + 2265 51 2271 2268 52 2277 2274 51 2280 2274 + 51 2280 2277 52 2286 2283 51 2289 2283 51 + 2289 2286 52 2295 2292 51 2298 2292 51 2298 + 2295 52 2304 2301 51 2307 2301 51 2307 2304 + 52 2313 2310 51 2316 2310 51 2316 2313 52 + 2322 2319 51 2325 2319 51 2325 2322 52 2331 + 2328 51 2334 2328 51 2334 2331 52 2340 2337 + 51 2343 2337 51 2343 2340 52 2349 2346 51 + 2352 2346 51 2352 2349 52 2358 2355 51 2361 + 2355 51 2361 2358 52 2367 2364 51 2370 2364 + 51 2370 2367 52 2376 2373 51 2379 2373 51 + 2379 2376 52 2385 2382 51 2388 2382 51 2388 + 2385 52 2394 2391 51 2397 2391 51 2397 2394 + 52 2403 2400 51 2406 2400 51 2406 2403 52 + 2412 2409 51 2415 2409 51 2415 2412 52 2421 + 2418 51 2424 2418 51 2424 2421 52 2430 2427 + 51 2433 2427 51 2433 2430 52 2439 2436 51 + 2442 2436 51 2442 2439 52 2448 2445 51 2451 + 2445 51 2451 2448 52 2457 2454 51 2460 2454 + 51 2460 2457 52 2466 2463 51 2469 2463 51 + 2469 2466 52 2475 2472 51 2478 2472 51 2478 + 2475 52 2484 2481 51 2487 2481 51 2487 2484 + 52 2493 2490 51 2496 2490 51 2496 2493 52 + 2502 2499 51 2505 2499 51 2505 2502 52 2511 + 2508 51 2514 2508 51 2514 2511 52 2520 2517 + 51 2523 2517 51 2523 2520 52 2529 2526 51 + 2532 2526 51 2532 2529 52 2538 2535 51 2541 + 2535 51 2541 2538 52 2547 2544 51 2550 2544 + 51 2550 2547 52 2556 2553 51 2559 2553 51 + 2559 2556 52 2565 2562 51 2568 2562 51 2568 + 2565 52 2574 2571 51 2577 2571 51 2577 2574 + 52 2583 2580 51 2586 2580 51 2586 2583 52 + 2592 2589 51 2595 2589 51 2595 2592 52 2601 + 2598 51 2604 2598 51 2604 2601 52 2610 2607 + 51 2613 2607 51 2613 2610 52 2619 2616 51 + 2622 2616 51 2622 2619 52 2628 2625 51 2631 + 2625 51 2631 2628 52 2637 2634 51 2640 2634 + 51 2640 2637 52 2646 2643 51 2649 2643 51 + 2649 2646 52 2655 2652 51 2658 2652 51 2658 + 2655 52 2664 2661 51 2667 2661 51 2667 2664 + 52 2673 2670 51 2676 2670 51 2676 2673 52 + 2682 2679 51 2685 2679 51 2685 2682 52 2691 + 2688 51 2694 2688 51 2694 2691 52 2700 2697 + 51 2703 2697 51 2703 2700 52 2709 2706 51 + 2712 2706 51 2712 2709 52 2718 2715 51 2721 + 2715 51 2721 2718 52 2727 2724 51 2730 2724 + 51 2730 2727 52 2736 2733 51 2739 2733 51 + 2739 2736 52 2745 2742 51 2748 2742 51 2748 + 2745 52 2754 2751 51 2757 2751 51 2757 2754 + 52 2763 2760 51 2766 2760 51 2766 2763 52 + 2772 2769 51 2775 2769 51 2775 2772 52 2781 + 2778 51 2784 2778 51 2784 2781 52 2790 2787 + 51 2793 2787 51 2793 2790 52 2799 2796 51 + 2802 2796 51 2802 2799 52 2808 2805 51 2811 + 2805 51 2811 2808 52 2817 2814 51 2820 2814 + 51 2820 2817 52 2826 2823 51 2829 2823 51 + 2829 2826 52 2835 2832 51 2838 2832 51 2838 + 2835 52 2844 2841 51 2847 2841 51 2847 2844 + 52 2853 2850 51 2856 2850 51 2856 2853 52 + 2862 2859 51 2865 2859 51 2865 2862 52 2871 + 2868 51 2874 2868 51 2874 2871 52 2880 2877 + 51 2883 2877 51 2883 2880 52 2889 2886 51 + 2892 2886 51 2892 2889 52 2898 2895 51 2901 + 2895 51 2901 2898 52 2907 2904 51 2910 2904 + 51 2910 2907 52 2916 2913 51 2919 2913 51 + 2919 2916 52 2925 2922 51 2928 2922 51 2928 + 2925 52 2934 2931 51 2937 2931 51 2937 2934 + 52 2943 2940 51 2946 2940 51 2946 2943 52 + 2952 2949 51 2955 2949 51 2955 2952 52 2961 + 2958 51 2964 2958 51 2964 2961 52 2970 2967 + 51 2973 2967 51 2973 2970 52 2979 2976 51 + 2982 2976 51 2982 2979 52 2988 2985 51 2991 + 2985 51 2991 2988 52 2997 2994 51 3000 2994 + 51 3000 2997 52 3006 3003 51 3009 3003 51 + 3009 3006 52 3015 3012 51 3018 3012 51 3018 + 3015 52 3024 3021 51 3027 3021 51 3027 3024 + 52 3033 3030 51 3036 3030 51 3036 3033 52 + 3042 3039 51 3045 3039 51 3045 3042 52 3051 + 3048 51 3054 3048 51 3054 3051 52 3060 3057 + 51 3063 3057 51 3063 3060 52 3069 3066 51 + 3072 3066 51 3072 3069 52 3078 3075 51 3081 + 3075 51 3081 3078 52 3087 3084 51 3090 3084 + 51 3090 3087 52 3096 3093 51 3099 3093 51 + 3099 3096 52 3105 3102 51 3108 3102 51 3108 + 3105 52 3114 3111 51 3117 3111 51 3117 3114 + 52 3123 3120 51 3126 3120 51 3126 3123 52 + 3132 3129 51 3135 3129 51 3135 3132 52 3141 + 3138 51 3144 3138 51 3144 3141 52 3150 3147 + 51 3153 3147 51 3153 3150 52 3159 3156 51 + 3162 3156 51 3162 3159 52 3168 3165 51 3171 + 3165 51 3171 3168 52 3177 3174 51 3180 3174 + 51 3180 3177 52 3186 3183 51 3189 3183 51 + 3189 3186 52 3195 3192 51 3198 3192 51 3198 + 3195 52 3204 3201 51 3207 3201 51 3207 3204 + 52 3213 3210 51 3216 3210 51 3216 3213 52 + 3222 3219 51 3225 3219 51 3225 3222 52 3231 + 3228 51 3234 3228 51 3234 3231 52 3240 3237 + 51 3243 3237 51 3243 3240 52 3249 3246 51 + 3252 3246 51 3252 3249 52 3258 3255 51 3261 + 3255 51 3261 3258 52 3267 3264 51 3270 3264 + 51 3270 3267 52 3276 3273 51 3279 3273 51 + 3279 3276 52 3285 3282 51 3288 3282 51 3288 + 3285 52 3294 3291 51 3297 3291 51 3297 3294 + 52 3303 3300 51 3306 3300 51 3306 3303 52 + 3312 3309 51 3315 3309 51 3315 3312 52 3321 + 3318 51 3324 3318 51 3324 3321 52 3330 3327 + 51 3333 3327 51 3333 3330 52 3339 3336 51 + 3342 3336 51 3342 3339 52 3348 3345 51 3351 + 3345 51 3351 3348 52 3357 3354 51 3360 3354 + 51 3360 3357 52 3366 3363 51 3369 3363 51 + 3369 3366 52 3375 3372 51 3378 3372 51 3378 + 3375 52 3384 3381 51 3387 3381 51 3387 3384 + 52 3393 3390 51 3396 3390 51 3396 3393 52 + 3402 3399 51 3405 3399 51 3405 3402 52 3411 + 3408 51 3414 3408 51 3414 3411 52 3420 3417 + 51 3423 3417 51 3423 3420 52 3429 3426 51 + 3432 3426 51 3432 3429 52 3438 3435 51 3441 + 3435 51 3441 3438 52 3447 3444 51 3450 3444 + 51 3450 3447 52 3456 3453 51 3459 3453 51 + 3459 3456 52 3465 3462 51 3468 3462 51 3468 + 3465 52 3474 3471 51 3477 3471 51 3477 3474 + 52 3483 3480 51 3486 3480 51 3486 3483 52 + 3492 3489 51 3495 3489 51 3495 3492 52 3501 + 3498 51 3504 3498 51 3504 3501 52 3510 3507 + 51 3513 3507 51 3513 3510 52 3519 3516 51 + 3522 3516 51 3522 3519 52 3528 3525 51 3531 + 3525 51 3531 3528 52 3537 3534 51 3540 3534 + 51 3540 3537 52 3546 3543 51 3549 3543 51 + 3549 3546 52 3555 3552 51 3558 3552 51 3558 + 3555 52 3564 3561 51 3567 3561 51 3567 3564 + 52 3573 3570 51 3576 3570 51 3576 3573 52 + 3582 3579 51 3585 3579 51 3585 3582 52 3591 + 3588 51 3594 3588 51 3594 3591 52 3600 3597 + 51 3603 3597 51 3603 3600 52 3609 3606 51 + 3612 3606 51 3612 3609 52 3618 3615 51 3621 + 3615 51 3621 3618 52 3627 3624 51 3630 3624 + 51 3630 3627 52 3636 3633 51 3639 3633 51 + 3639 3636 52 3645 3642 51 3648 3642 51 3648 + 3645 52 3654 3651 51 3657 3651 51 3657 3654 + 52 3663 3660 51 3666 3660 51 3666 3663 52 + 3672 3669 51 3675 3669 51 3675 3672 52 3681 + 3678 51 3684 3678 51 3684 3681 52 3690 3687 + 51 3693 3687 51 3693 3690 52 3699 3696 51 + 3702 3696 51 3702 3699 52 3708 3705 51 3711 + 3705 51 3711 3708 52 3717 3714 51 3720 3714 + 51 3720 3717 52 3726 3723 51 3729 3723 51 + 3729 3726 52 3735 3732 51 3738 3732 51 3738 + 3735 52 3744 3741 51 3747 3741 51 3747 3744 + 52 3753 3750 51 3756 3750 51 3756 3753 52 + 3762 3759 51 3765 3759 51 3765 3762 52 3771 + 3768 51 3774 3768 51 3774 3771 52 3780 3777 + 51 3783 3777 51 3783 3780 52 3789 3786 51 + 3792 3786 51 3792 3789 52 3798 3795 51 3801 + 3795 51 3801 3798 52 3807 3804 51 3810 3804 + 51 3810 3807 52 3816 3813 51 3819 3813 51 + 3819 3816 52 3825 3822 51 3828 3822 51 3828 + 3825 52 3834 3831 51 3837 3831 51 3837 3834 + 52 3843 3840 51 3846 3840 51 3846 3843 52 + 3852 3849 51 3855 3849 51 3855 3852 52 3861 + 3858 51 3864 3858 51 3864 3861 52 3870 3867 + 51 3873 3867 51 3873 3870 52 3879 3876 51 + 3882 3876 51 3882 3879 52 3888 3885 51 3891 + 3885 51 3891 3888 52 3897 3894 51 3900 3894 + 51 3900 3897 52 3906 3903 51 3909 3903 51 + 3909 3906 52 3915 3912 51 3918 3912 51 3918 + 3915 52 3924 3921 51 3927 3921 51 3927 3924 + 52 3933 3930 51 3936 3930 51 3936 3933 52 + 3942 3939 51 3945 3939 51 3945 3942 52 3951 + 3948 51 3954 3948 51 3954 3951 52 3960 3957 + 51 3963 3957 51 3963 3960 52 3969 3966 51 + 3972 3966 51 3972 3969 52 3978 3975 51 3981 + 3975 51 3981 3978 52 3987 3984 51 3990 3984 + 51 3990 3987 52 3996 3993 51 3999 3993 51 + 3999 3996 52 4005 4002 51 4008 4002 51 4008 + 4005 52 4014 4011 51 4017 4011 51 4017 4014 + 52 4023 4020 51 4026 4020 51 4026 4023 52 + 4032 4029 51 4035 4029 51 4035 4032 52 4041 + 4038 51 4044 4038 51 4044 4041 52 4050 4047 + 51 4053 4047 51 4053 4050 52 4059 4056 51 + 4062 4056 51 4062 4059 52 4068 4065 51 4071 + 4065 51 4071 4068 52 4077 4074 51 4080 4074 + 51 4080 4077 52 4086 4083 51 4089 4083 51 + 4089 4086 52 4095 4092 51 4098 4092 51 4098 + 4095 52 4104 4101 51 4107 4101 51 4107 4104 + 52 4113 4110 51 4116 4110 51 4116 4113 52 + 4122 4119 51 4125 4119 51 4125 4122 52 4131 + 4128 51 4134 4128 51 4134 4131 52 4140 4137 + 51 4143 4137 51 4143 4140 52 4149 4146 51 + 4152 4146 51 4152 4149 52 4158 4155 51 4161 + 4155 51 4161 4158 52 4167 4164 51 4170 4164 + 51 4170 4167 52 4176 4173 51 4179 4173 51 + 4179 4176 52 4185 4182 51 4188 4182 51 4188 + 4185 52 4194 4191 51 4197 4191 51 4197 4194 + 52 4203 4200 51 4206 4200 51 4206 4203 52 + 4212 4209 51 4215 4209 51 4215 4212 52 4221 + 4218 51 4224 4218 51 4224 4221 52 4230 4227 + 51 4233 4227 51 4233 4230 52 4239 4236 51 + 4242 4236 51 4242 4239 52 4248 4245 51 4251 + 4245 51 4251 4248 52 4257 4254 51 4260 4254 + 51 4260 4257 52 4266 4263 51 4269 4263 51 + 4269 4266 52 4275 4272 51 4278 4272 51 4278 + 4275 52 4284 4281 51 4287 4281 51 4287 4284 + 52 4293 4290 51 4296 4290 51 4296 4293 52 + 4302 4299 51 4305 4299 51 4305 4302 52 4311 + 4308 51 4314 4308 51 4314 4311 52 4320 4317 + 51 4323 4317 51 4323 4320 52 4329 4326 51 + 4332 4326 51 4332 4329 52 4338 4335 51 4341 + 4335 51 4341 4338 52 4347 4344 51 4350 4344 + 51 4350 4347 52 4356 4353 51 4359 4353 51 + 4359 4356 52 4365 4362 51 4368 4362 51 4368 + 4365 52 4374 4371 51 4377 4371 51 4377 4374 + 52 4383 4380 51 4386 4380 51 4386 4383 52 + 4392 4389 51 4395 4389 51 4395 4392 52 4401 + 4398 51 4404 4398 51 4404 4401 52 4410 4407 + 51 4413 4407 51 4413 4410 52 4419 4416 51 + 4422 4416 51 4422 4419 52 4428 4425 51 4431 + 4425 51 4431 4428 52 4437 4434 51 4440 4434 + 51 4440 4437 52 4446 4443 51 4449 4443 51 + 4449 4446 52 4455 4452 51 4458 4452 51 4458 + 4455 52 4464 4461 51 4467 4461 51 4467 4464 + 52 4473 4470 51 4476 4470 51 4476 4473 52 + 4482 4479 51 4485 4479 51 4485 4482 52 4491 + 4488 51 4494 4488 51 4494 4491 52 4500 4497 + 51 4503 4497 51 4503 4500 52 4509 4506 51 + 4512 4506 51 4512 4509 52 4518 4515 51 4521 + 4515 51 4521 4518 52 4527 4524 51 4530 4524 + 51 4530 4527 52 4536 4533 51 4539 4533 51 + 4539 4536 52 4545 4542 51 4548 4542 51 4548 + 4545 52 4554 4551 51 4557 4551 51 4557 4554 + 52 4563 4560 51 4566 4560 51 4566 4563 52 + 4572 4569 51 4575 4569 51 4575 4572 52 4581 + 4578 51 4584 4578 51 4584 4581 52 4590 4587 + 51 4593 4587 51 4593 4590 52 4599 4596 51 + 4602 4596 51 4602 4599 52 4608 4605 51 4611 + 4605 51 4611 4608 52 4617 4614 51 4620 4614 + 51 4620 4617 52 4626 4623 51 4629 4623 51 + 4629 4626 52 4635 4632 51 4638 4632 51 4638 + 4635 52 4644 4641 51 4647 4641 51 4647 4644 + 52 4653 4650 51 4656 4650 51 4656 4653 52 + 4662 4659 51 4665 4659 51 4665 4662 52 4671 + 4668 51 4674 4668 51 4674 4671 52 4680 4677 + 51 4683 4677 51 4683 4680 52 4689 4686 51 + 4692 4686 51 4692 4689 52 4698 4695 51 4701 + 4695 51 4701 4698 52 4707 4704 51 4710 4704 + 51 4710 4707 52 4716 4713 51 4719 4713 51 + 4719 4716 52 4725 4722 51 4728 4722 51 4728 + 4725 52 4734 4731 51 4737 4731 51 4737 4734 + 52 4743 4740 51 4746 4740 51 4746 4743 52 + 4752 4749 51 4755 4749 51 4755 4752 52 4761 + 4758 51 4764 4758 51 4764 4761 52 4770 4767 + 51 4773 4767 51 4773 4770 52 4779 4776 51 + 4782 4776 51 4782 4779 52 4788 4785 51 4791 + 4785 51 4791 4788 52 4797 4794 51 4800 4794 + 51 4800 4797 52 4806 4803 51 4809 4803 51 + 4809 4806 52 4815 4812 51 4818 4812 51 4818 + 4815 52 4824 4821 51 4827 4821 51 4827 4824 + 52 4833 4830 51 4836 4830 51 4836 4833 52 + 4842 4839 51 4845 4839 51 4845 4842 52 4851 + 4848 51 4854 4848 51 4854 4851 52 4860 4857 + 51 4863 4857 51 4863 4860 52 4869 4866 51 + 4872 4866 51 4872 4869 52 4878 4875 51 4881 + 4875 51 4881 4878 52 4887 4884 51 4890 4884 + 51 4890 4887 52 4896 4893 51 4899 4893 51 + 4899 4896 52 4905 4902 51 4908 4902 51 4908 + 4905 52 4914 4911 51 4917 4911 51 4917 4914 + 52 4923 4920 51 4926 4920 51 4926 4923 52 + 4932 4929 51 4935 4929 51 4935 4932 52 4941 + 4938 51 4944 4938 51 4944 4941 52 4950 4947 + 51 4953 4947 51 4953 4950 52 4959 4956 51 + 4962 4956 51 4962 4959 52 4968 4965 51 4971 + 4965 51 4971 4968 52 4977 4974 51 4980 4974 + 51 4980 4977 52 4986 4983 51 4989 4983 51 + 4989 4986 52 4995 4992 51 4998 4992 51 4998 + 4995 52 5004 5001 51 5007 5001 51 5007 5004 + 52 5013 5010 51 5016 5010 51 5016 5013 52 + 5022 5019 51 5025 5019 51 5025 5022 52 5031 + 5028 51 5034 5028 51 5034 5031 52 5040 5037 + 51 5043 5037 51 5043 5040 52 5049 5046 51 + 5052 5046 51 5052 5049 52 5058 5055 51 5061 + 5055 51 5061 5058 52 5067 5064 51 5070 5064 + 51 5070 5067 52 5076 5073 51 5079 5073 51 + 5079 5076 52 5085 5082 51 5088 5082 51 5088 + 5085 52 5094 5091 51 5097 5091 51 5097 5094 + 52 5103 5100 51 5106 5100 51 5106 5103 52 + 5112 5109 51 5115 5109 51 5115 5112 52 5121 + 5118 51 5124 5118 51 5124 5121 52 5130 5127 + 51 5133 5127 51 5133 5130 52 5139 5136 51 + 5142 5136 51 5142 5139 52 5148 5145 51 5151 + 5145 51 5151 5148 52 5157 5154 51 5160 5154 + 51 5160 5157 52 5166 5163 51 5169 5163 51 + 5169 5166 52 5175 5172 51 5178 5172 51 5178 + 5175 52 5184 5181 51 5187 5181 51 5187 5184 + 52 5193 5190 51 5196 5190 51 5196 5193 52 + 5202 5199 51 5205 5199 51 5205 5202 52 5211 + 5208 51 5214 5208 51 5214 5211 52 5220 5217 + 51 5223 5217 51 5223 5220 52 5229 5226 51 + 5232 5226 51 5232 5229 52 5238 5235 51 5241 + 5235 51 5241 5238 52 5247 5244 51 5250 5244 + 51 5250 5247 52 5256 5253 51 5259 5253 51 + 5259 5256 52 5265 5262 51 5268 5262 51 5268 + 5265 52 5274 5271 51 5277 5271 51 5277 5274 + 52 5283 5280 51 5286 5280 51 5286 5283 52 + 5292 5289 51 5295 5289 51 5295 5292 52 5301 + 5298 51 5304 5298 51 5304 5301 52 5310 5307 + 51 5313 5307 51 5313 5310 52 5319 5316 51 + 5322 5316 51 5322 5319 52 5328 5325 51 5331 + 5325 51 5331 5328 52 5337 5334 51 5340 5334 + 51 5340 5337 52 5346 5343 51 5349 5343 51 + 5349 5346 52 5355 5352 51 5358 5352 51 5358 + 5355 52 5364 5361 51 5367 5361 51 5367 5364 + 52 5373 5370 51 5376 5370 51 5376 5373 52 + 5382 5379 51 5385 5379 51 5385 5382 52 5391 + 5388 51 5394 5388 51 5394 5391 52 5400 5397 + 51 5403 5397 51 5403 5400 52 5409 5406 51 + 5412 5406 51 5412 5409 52 5418 5415 51 5421 + 5415 51 5421 5418 52 5427 5424 51 5430 5424 + 51 5430 5427 52 5436 5433 51 5439 5433 51 + 5439 5436 52 5445 5442 51 5448 5442 51 5448 + 5445 52 5454 5451 51 5457 5451 51 5457 5454 + 52 5463 5460 51 5466 5460 51 5466 5463 52 + 5472 5469 51 5475 5469 51 5475 5472 52 5481 + 5478 51 5484 5478 51 5484 5481 52 5490 5487 + 51 5493 5487 51 5493 5490 52 5499 5496 51 + 5502 5496 51 5502 5499 52 5508 5505 51 5511 + 5505 51 5511 5508 52 5517 5514 51 5520 5514 + 51 5520 5517 52 5526 5523 51 5529 5523 51 + 5529 5526 52 5535 5532 51 5538 5532 51 5538 + 5535 52 5544 5541 51 5547 5541 51 5547 5544 + 52 5553 5550 51 5556 5550 51 5556 5553 52 + 5562 5559 51 5565 5559 51 5565 5562 52 5571 + 5568 51 5574 5568 51 5574 5571 52 5580 5577 + 51 5583 5577 51 5583 5580 52 5589 5586 51 + 5592 5586 51 5592 5589 52 5598 5595 51 5601 + 5595 51 5601 5598 52 5607 5604 51 5610 5604 + 51 5610 5607 52 5616 5613 51 5619 5613 51 + 5619 5616 52 5625 5622 51 5628 5622 51 5628 + 5625 52 5634 5631 51 5637 5631 51 5637 5634 + 52 5643 5640 51 5646 5640 51 5646 5643 52 + 5652 5649 51 5655 5649 51 5655 5652 52 5661 + 5658 51 5664 5658 51 5664 5661 52 5670 5667 + 51 5673 5667 51 5673 5670 52 5679 5676 51 + 5682 5676 51 5682 5679 52 5688 5685 51 5691 + 5685 51 5691 5688 52 5697 5694 51 5700 5694 + 51 5700 5697 52 5706 5703 51 5709 5703 51 + 5709 5706 52 5715 5712 51 5718 5712 51 5718 + 5715 52 5724 5721 51 5727 5721 51 5727 5724 + 52 5733 5730 51 5736 5730 51 5736 5733 52 + 5742 5739 51 5745 5739 51 5745 5742 52 5751 + 5748 51 5754 5748 51 5754 5751 52 5760 5757 + 51 5763 5757 51 5763 5760 52 5769 5766 51 + 5772 5766 51 5772 5769 52 5778 5775 51 5781 + 5775 51 5781 5778 52 5787 5784 51 5790 5784 + 51 5790 5787 52 5796 5793 51 5799 5793 51 + 5799 5796 52 5805 5802 51 5808 5802 51 5808 + 5805 52 5814 5811 51 5817 5811 51 5817 5814 + 52 5823 5820 51 5826 5820 51 5826 5823 52 + 5832 5829 51 5835 5829 51 5835 5832 52 5841 + 5838 51 5844 5838 51 5844 5841 52 5850 5847 + 51 5853 5847 51 5853 5850 52 5859 5856 51 + 5862 5856 51 5862 5859 52 5868 5865 51 5871 + 5865 51 5871 5868 52 5877 5874 51 5880 5874 + 51 5880 5877 52 5886 5883 51 5889 5883 51 + 5889 5886 52 5895 5892 51 5898 5892 51 5898 + 5895 52 5904 5901 51 5907 5901 51 5907 5904 + 52 5913 5910 51 5916 5910 51 5916 5913 52 + 5922 5919 51 5925 5919 51 5925 5922 52 5931 + 5928 51 5934 5928 51 5934 5931 52 5940 5937 + 51 5943 5937 51 5943 5940 52 5949 5946 51 + 5952 5946 51 5952 5949 52 5958 5955 51 5961 + 5955 51 5961 5958 52 5967 5964 51 5970 5964 + 51 5970 5967 52 5976 5973 51 5979 5973 51 + 5979 5976 52 5985 5982 51 5988 5982 51 5988 + 5985 52 5994 5991 51 5997 5991 51 5997 5994 + 52 6003 6000 51 6006 6000 51 6006 6003 52 + 6012 6009 51 6015 6009 51 6015 6012 52 6021 + 6018 51 6024 6018 51 6024 6021 52 6030 6027 + 51 6033 6027 51 6033 6030 52 6039 6036 51 + 6042 6036 51 6042 6039 52 6048 6045 51 6051 + 6045 51 6051 6048 52 6057 6054 51 6060 6054 + 51 6060 6057 52 6066 6063 51 6069 6063 51 + 6069 6066 52 6075 6072 51 6078 6072 51 6078 + 6075 52 6084 6081 51 6087 6081 51 6087 6084 + 52 6093 6090 51 6096 6090 51 6096 6093 52 + 6102 6099 51 6105 6099 51 6105 6102 52 6111 + 6108 51 6114 6108 51 6114 6111 52 6120 6117 + 51 6123 6117 51 6123 6120 52 6129 6126 51 + 6132 6126 51 6132 6129 52 6138 6135 51 6141 + 6135 51 6141 6138 52 6147 6144 51 6150 6144 + 51 6150 6147 52 6156 6153 51 6159 6153 51 + 6159 6156 52 6165 6162 51 6168 6162 51 6168 + 6165 52 6174 6171 51 6177 6171 51 6177 6174 + 52 6183 6180 51 6186 6180 51 6186 6183 52 + 6192 6189 51 6195 6189 51 6195 6192 52 6201 + 6198 51 6204 6198 51 6204 6201 52 6210 6207 + 51 6213 6207 51 6213 6210 52 6219 6216 51 + 6222 6216 51 6222 6219 52 6228 6225 51 6231 + 6225 51 6231 6228 52 6237 6234 51 6240 6234 + 51 6240 6237 52 6246 6243 51 6249 6243 51 + 6249 6246 52 6255 6252 51 6258 6252 51 6258 + 6255 52 6264 6261 51 6267 6261 51 6267 6264 + 52 6273 6270 51 6276 6270 51 6276 6273 52 + 6282 6279 51 6285 6279 51 6285 6282 52 6291 + 6288 51 6294 6288 51 6294 6291 52 6300 6297 + 51 6303 6297 51 6303 6300 52 6309 6306 51 + 6312 6306 51 6312 6309 52 6318 6315 51 6321 + 6315 51 6321 6318 52 6327 6324 51 6330 6324 + 51 6330 6327 52 6336 6333 51 6339 6333 51 + 6339 6336 52 6345 6342 51 6348 6342 51 6348 + 6345 52 6354 6351 51 6357 6351 51 6357 6354 + 52 6363 6360 51 6366 6360 51 6366 6363 52 + 6372 6369 51 6375 6369 51 6375 6372 52 6381 + 6378 51 6384 6378 51 6384 6381 52 6390 6387 + 51 6393 6387 51 6393 6390 52 6399 6396 51 + 6402 6396 51 6402 6399 52 6408 6405 51 6411 + 6405 51 6411 6408 52 6417 6414 51 6420 6414 + 51 6420 6417 52 6426 6423 51 6429 6423 51 + 6429 6426 52 6435 6432 51 6438 6432 51 6438 + 6435 52 6444 6441 51 6447 6441 51 6447 6444 + 52 6453 6450 51 6456 6450 51 6456 6453 52 + 6462 6459 51 6465 6459 51 6465 6462 52 6471 + 6468 51 6474 6468 51 6474 6471 52 6480 6477 + 51 6483 6477 51 6483 6480 52 6489 6486 51 + 6492 6486 51 6492 6489 52 6498 6495 51 6501 + 6495 51 6501 6498 52 6507 6504 51 6510 6504 + 51 6510 6507 52 6516 6513 51 6519 6513 51 + 6519 6516 52 6525 6522 51 6528 6522 51 6528 + 6525 52 6534 6531 51 6537 6531 51 6537 6534 + 52 6543 6540 51 6546 6540 51 6546 6543 52 + 6552 6549 51 6555 6549 51 6555 6552 52 6561 + 6558 51 6564 6558 51 6564 6561 52 6570 6567 + 51 6573 6567 51 6573 6570 52 6579 6576 51 + 6582 6576 51 6582 6579 52 6588 6585 51 6591 + 6585 51 6591 6588 52 6597 6594 51 6600 6594 + 51 6600 6597 52 6606 6603 51 6609 6603 51 + 6609 6606 52 6615 6612 51 6618 6612 51 6618 + 6615 52 6624 6621 51 6627 6621 51 6627 6624 + 52 6633 6630 51 6636 6630 51 6636 6633 52 + 6642 6639 51 6645 6639 51 6645 6642 52 6651 + 6648 51 6654 6648 51 6654 6651 52 6660 6657 + 51 6663 6657 51 6663 6660 52 6669 6666 51 + 6672 6666 51 6672 6669 52 6678 6675 51 6681 + 6675 51 6681 6678 52 6687 6684 51 6690 6684 + 51 6690 6687 52 6696 6693 51 6699 6693 51 + 6699 6696 52 6705 6702 51 6708 6702 51 6708 + 6705 52 6714 6711 51 6717 6711 51 6717 6714 + 52 6723 6720 51 6726 6720 51 6726 6723 52 + 6732 6729 51 6735 6729 51 6735 6732 52 6741 + 6738 51 6744 6738 51 6744 6741 52 6750 6747 + 51 6753 6747 51 6753 6750 52 6759 6756 51 + 6762 6756 51 6762 6759 52 6768 6765 51 6771 + 6765 51 6771 6768 52 6777 6774 51 6780 6774 + 51 6780 6777 52 6786 6783 51 6789 6783 51 + 6789 6786 52 6795 6792 51 6798 6792 51 6798 + 6795 52 6804 6801 51 6807 6801 51 6807 6804 + 52 6813 6810 51 6816 6810 51 6816 6813 52 + 6822 6819 51 6825 6819 51 6825 6822 52 6831 + 6828 51 6834 6828 51 6834 6831 52 6840 6837 + 51 6843 6837 51 6843 6840 52 6849 6846 51 + 6852 6846 51 6852 6849 52 6858 6855 51 6861 + 6855 51 6861 6858 52 6867 6864 51 6870 6864 + 51 6870 6867 52 6876 6873 51 6879 6873 51 + 6879 6876 52 6885 6882 51 6888 6882 51 6888 + 6885 52 6894 6891 51 6897 6891 51 6897 6894 + 52 6903 6900 51 6906 6900 51 6906 6903 52 + 6912 6909 51 6915 6909 51 6915 6912 52 6921 + 6918 51 6924 6918 51 6924 6921 52 6930 6927 + 51 6933 6927 51 6933 6930 52 6939 6936 51 + 6942 6936 51 6942 6939 52 6948 6945 51 6951 + 6945 51 6951 6948 52 6957 6954 51 6960 6954 + 51 6960 6957 52 6966 6963 51 6969 6963 51 + 6969 6966 52 6975 6972 51 6978 6972 51 6978 + 6975 52 6984 6981 51 6987 6981 51 6987 6984 + 52 6993 6990 51 6996 6990 51 6996 6993 52 + 7002 6999 51 7005 6999 51 7005 7002 52 7011 + 7008 51 7014 7008 51 7014 7011 52 7020 7017 + 51 7023 7017 51 7023 7020 52 7029 7026 51 + 7032 7026 51 7032 7029 52 7038 7035 51 7041 + 7035 51 7041 7038 52 7047 7044 51 7050 7044 + 51 7050 7047 52 7056 7053 51 7059 7053 51 + 7059 7056 52 7065 7062 51 7068 7062 51 7068 + 7065 52 7074 7071 51 7077 7071 51 7077 7074 + 52 7083 7080 51 7086 7080 51 7086 7083 52 + 7092 7089 51 7095 7089 51 7095 7092 52 7101 + 7098 51 7104 7098 51 7104 7101 52 7110 7107 + 51 7113 7107 51 7113 7110 52 7119 7116 51 + 7122 7116 51 7122 7119 52 7128 7125 51 7131 + 7125 51 7131 7128 52 7137 7134 51 7140 7134 + 51 7140 7137 52 7146 7143 51 7149 7143 51 + 7149 7146 52 7155 7152 51 7158 7152 51 7158 + 7155 52 7164 7161 51 7167 7161 51 7167 7164 + 52 7173 7170 51 7176 7170 51 7176 7173 52 + 7182 7179 51 7185 7179 51 7185 7182 52 7191 + 7188 51 7194 7188 51 7194 7191 52 7200 7197 + 51 7203 7197 51 7203 7200 52 7209 7206 51 + 7212 7206 51 7212 7209 52 7218 7215 51 7221 + 7215 51 7221 7218 52 7227 7224 51 7230 7224 + 51 7230 7227 52 7236 7233 51 7239 7233 51 + 7239 7236 52 7245 7242 51 7248 7242 51 7248 + 7245 52 7254 7251 51 7257 7251 51 7257 7254 + 52 7263 7260 51 7266 7260 51 7266 7263 52 + 7272 7269 51 7275 7269 51 7275 7272 52 7281 + 7278 51 7284 7278 51 7284 7281 52 7290 7287 + 51 7293 7287 51 7293 7290 52 7299 7296 51 + 7302 7296 51 7302 7299 52 7308 7305 51 7311 + 7305 51 7311 7308 52 7317 7314 51 7320 7314 + 51 7320 7317 52 7326 7323 51 7329 7323 51 + 7329 7326 52 7335 7332 51 7338 7332 51 7338 + 7335 52 7344 7341 51 7347 7341 51 7347 7344 + 52 7353 7350 51 7356 7350 51 7356 7353 52 + 7362 7359 51 7365 7359 51 7365 7362 52 7371 + 7368 51 7374 7368 51 7374 7371 52 7380 7377 + 51 7383 7377 51 7383 7380 52 7389 7386 51 + 7392 7386 51 7392 7389 52 7398 7395 51 7401 + 7395 51 7401 7398 52 7407 7404 51 7410 7404 + 51 7410 7407 52 7416 7413 51 7419 7413 51 + 7419 7416 52 7425 7422 51 7428 7422 51 7428 + 7425 52 7434 7431 51 7437 7431 51 7437 7434 + 52 7443 7440 51 7446 7440 51 7446 7443 52 + 7452 7449 51 7455 7449 51 7455 7452 52 7461 + 7458 51 7464 7458 51 7464 7461 52 7470 7467 + 51 7473 7467 51 7473 7470 52 7479 7476 51 + 7482 7476 51 7482 7479 52 7488 7485 51 7491 + 7485 51 7491 7488 52 7497 7494 51 7500 7494 + 51 7500 7497 52 7506 7503 51 7509 7503 51 + 7509 7506 52 7515 7512 51 7518 7512 51 7518 + 7515 52 7524 7521 51 7527 7521 51 7527 7524 + 52 7533 7530 51 7536 7530 51 7536 7533 52 + 7542 7539 51 7545 7539 51 7545 7542 52 7551 + 7548 51 7554 7548 51 7554 7551 52 7560 7557 + 51 7563 7557 51 7563 7560 52 7569 7566 51 + 7572 7566 51 7572 7569 52 7578 7575 51 7581 + 7575 51 7581 7578 52 7587 7584 51 7590 7584 + 51 7590 7587 52 7596 7593 51 7599 7593 51 + 7599 7596 52 7605 7602 51 7608 7602 51 7608 + 7605 52 7614 7611 51 7617 7611 51 7617 7614 + 52 7623 7620 51 7626 7620 51 7626 7623 52 + 7632 7629 51 7635 7629 51 7635 7632 52 7641 + 7638 51 7644 7638 51 7644 7641 52 7650 7647 + 51 7653 7647 51 7653 7650 52 7659 7656 51 + 7662 7656 51 7662 7659 52 7668 7665 51 7671 + 7665 51 7671 7668 52 7677 7674 51 7680 7674 + 51 7680 7677 52 7686 7683 51 7689 7683 51 + 7689 7686 52 7695 7692 51 7698 7692 51 7698 + 7695 52 7704 7701 51 7707 7701 51 7707 7704 + 52 7713 7710 51 7716 7710 51 7716 7713 52 + 7722 7719 51 7725 7719 51 7725 7722 52 7731 + 7728 51 7734 7728 51 7734 7731 52 7740 7737 + 51 7743 7737 51 7743 7740 52 7749 7746 51 + 7752 7746 51 7752 7749 52 7758 7755 51 7761 + 7755 51 7761 7758 52 7767 7764 51 7770 7764 + 51 7770 7767 52 7776 7773 51 7779 7773 51 + 7779 7776 52 7785 7782 51 7788 7782 51 7788 + 7785 52 7794 7791 51 7797 7791 51 7797 7794 + 52 7803 7800 51 7806 7800 51 7806 7803 52 + 7812 7809 51 7815 7809 51 7815 7812 52 7821 + 7818 51 7824 7818 51 7824 7821 52 7830 7827 + 51 7833 7827 51 7833 7830 52 7839 7836 51 + 7842 7836 51 7842 7839 52 7848 7845 51 7851 + 7845 51 7851 7848 52 7857 7854 51 7860 7854 + 51 7860 7857 52 7866 7863 51 7869 7863 51 + 7869 7866 52 7875 7872 51 7878 7872 51 7878 + 7875 52 7884 7881 51 7887 7881 51 7887 7884 + 52 7893 7890 51 7896 7890 51 7896 7893 52 + 7902 7899 51 7905 7899 51 7905 7902 52 7911 + 7908 51 7914 7908 51 7914 7911 52 7920 7917 + 51 7923 7917 51 7923 7920 52 7929 7926 51 + 7932 7926 51 7932 7929 52 7938 7935 51 7941 + 7935 51 7941 7938 52 7947 7944 51 7950 7944 + 51 7950 7947 52 7956 7953 51 7959 7953 51 + 7959 7956 52 7965 7962 51 7968 7962 51 7968 + 7965 52 7974 7971 51 7977 7971 51 7977 7974 + 52 7983 7980 51 7986 7980 51 7986 7983 52 + 7992 7989 51 7995 7989 51 7995 7992 52 8001 + 7998 51 8004 7998 51 8004 8001 52 8010 8007 + 51 8013 8007 51 8013 8010 52 8019 8016 51 + 8022 8016 51 8022 8019 52 8028 8025 51 8031 + 8025 51 8031 8028 52 8037 8034 51 8040 8034 + 51 8040 8037 52 8046 8043 51 8049 8043 51 + 8049 8046 52 8055 8052 51 8058 8052 51 8058 + 8055 52 8064 8061 51 8067 8061 51 8067 8064 + 52 8073 8070 51 8076 8070 51 8076 8073 52 + 8082 8079 51 8085 8079 51 8085 8082 52 8091 + 8088 51 8094 8088 51 8094 8091 52 8100 8097 + 51 8103 8097 51 8103 8100 52 8109 8106 51 + 8112 8106 51 8112 8109 52 8118 8115 51 8121 + 8115 51 8121 8118 52 8127 8124 51 8130 8124 + 51 8130 8127 52 8136 8133 51 8139 8133 51 + 8139 8136 52 8145 8142 51 8148 8142 51 8148 + 8145 52 8154 8151 51 8157 8151 51 8157 8154 + 52 8163 8160 51 8166 8160 51 8166 8163 52 + 8172 8169 51 8175 8169 51 8175 8172 52 8181 + 8178 51 8184 8178 51 8184 8181 52 8190 8187 + 51 8193 8187 51 8193 8190 52 8199 8196 51 + 8202 8196 51 8202 8199 52 8208 8205 51 8211 + 8205 51 8211 8208 52 8217 8214 51 8220 8214 + 51 8220 8217 52 8226 8223 51 8229 8223 51 + 8229 8226 52 8235 8232 51 8238 8232 51 8238 + 8235 52 8244 8241 51 8247 8241 51 8247 8244 + 52 8253 8250 51 8256 8250 51 8256 8253 52 + 8262 8259 51 8265 8259 51 8265 8262 52 8271 + 8268 51 8274 8268 51 8274 8271 52 8280 8277 + 51 8283 8277 51 8283 8280 52 8289 8286 51 + 8292 8286 51 8292 8289 52 8298 8295 51 8301 + 8295 51 8301 8298 52 8307 8304 51 8310 8304 + 51 8310 8307 52 8316 8313 51 8319 8313 51 + 8319 8316 52 8325 8322 51 8328 8322 51 8328 + 8325 52 8334 8331 51 8337 8331 51 8337 8334 + 52 8343 8340 51 8346 8340 51 8346 8343 52 + 8352 8349 51 8355 8349 51 8355 8352 52 8361 + 8358 51 8364 8358 51 8364 8361 52 8370 8367 + 51 8373 8367 51 8373 8370 52 8379 8376 51 + 8382 8376 51 8382 8379 52 8388 8385 51 8391 + 8385 51 8391 8388 52 8397 8394 51 8400 8394 + 51 8400 8397 52 8406 8403 51 8409 8403 51 + 8409 8406 52 8415 8412 51 8418 8412 51 8418 + 8415 52 8424 8421 51 8427 8421 51 8427 8424 + 52 8433 8430 51 8436 8430 51 8436 8433 52 + 8442 8439 51 8445 8439 51 8445 8442 52 8451 + 8448 51 8454 8448 51 8454 8451 52 8460 8457 + 51 8463 8457 51 8463 8460 52 8469 8466 51 + 8472 8466 51 8472 8469 52 8478 8475 51 8481 + 8475 51 8481 8478 52 8487 8484 51 8490 8484 + 51 8490 8487 52 8496 8493 51 8499 8493 51 + 8499 8496 52 8505 8502 51 8508 8502 51 8508 + 8505 52 8514 8511 51 8517 8511 51 8517 8514 + 52 8523 8520 51 8526 8520 51 8526 8523 52 + 8532 8529 51 8535 8529 51 8535 8532 52 8541 + 8538 51 8544 8538 51 8544 8541 52 8550 8547 + 51 8553 8547 51 8553 8550 52 8559 8556 51 + 8562 8556 51 8562 8559 52 8568 8565 51 8571 + 8565 51 8571 8568 52 8577 8574 51 8580 8574 + 51 8580 8577 52 8586 8583 51 8589 8583 51 + 8589 8586 52 8595 8592 51 8598 8592 51 8598 + 8595 52 8604 8601 51 8607 8601 51 8607 8604 + 52 8613 8610 51 8616 8610 51 8616 8613 52 + 8622 8619 51 8625 8619 51 8625 8622 52 8631 + 8628 51 8634 8628 51 8634 8631 52 8640 8637 + 51 8643 8637 51 8643 8640 52 8649 8646 51 + 8652 8646 51 8652 8649 52 8658 8655 51 8661 + 8655 51 8661 8658 52 8667 8664 51 8670 8664 + 51 8670 8667 52 8676 8673 51 8679 8673 51 + 8679 8676 52 8685 8682 51 8688 8682 51 8688 + 8685 52 8694 8691 51 8697 8691 51 8697 8694 + 52 8703 8700 51 8706 8700 51 8706 8703 52 + 8712 8709 51 8715 8709 51 8715 8712 52 8721 + 8718 51 8724 8718 51 8724 8721 52 8730 8727 + 51 8733 8727 51 8733 8730 52 8739 8736 51 + 8742 8736 51 8742 8739 52 8748 8745 51 8751 + 8745 51 8751 8748 52 8757 8754 51 8760 8754 + 51 8760 8757 52 8766 8763 51 8769 8763 51 + 8769 8766 52 8775 8772 51 8778 8772 51 8778 + 8775 52 8784 8781 51 8787 8781 51 8787 8784 + 52 8793 8790 51 8796 8790 51 8796 8793 52 + 8802 8799 51 8805 8799 51 8805 8802 52 8811 + 8808 51 8814 8808 51 8814 8811 52 8820 8817 + 51 8823 8817 51 8823 8820 52 8829 8826 51 + 8832 8826 51 8832 8829 52 8838 8835 51 8841 + 8835 51 8841 8838 52 8847 8844 51 8850 8844 + 51 8850 8847 52 8856 8853 51 8859 8853 51 + 8859 8856 52 8865 8862 51 8868 8862 51 8868 + 8865 52 8874 8871 51 8877 8871 51 8877 8874 + 52 8883 8880 51 8886 8880 51 8886 8883 52 + 8892 8889 51 8895 8889 51 8895 8892 52 8901 + 8898 51 8904 8898 51 8904 8901 52 8910 8907 + 51 8913 8907 51 8913 8910 52 8919 8916 51 + 8922 8916 51 8922 8919 52 8928 8925 51 8931 + 8925 51 8931 8928 52 8937 8934 51 8940 8934 + 51 8940 8937 52 8946 8943 51 8949 8943 51 + 8949 8946 52 8955 8952 51 8958 8952 51 8958 + 8955 52 8964 8961 51 8967 8961 51 8967 8964 + 52 8973 8970 51 8976 8970 51 8976 8973 52 + 8982 8979 51 8985 8979 51 8985 8982 52 8991 + 8988 51 8994 8988 51 8994 8991 52 9000 8997 + 51 9003 8997 51 9003 9000 52 9009 9006 51 + 9012 9006 51 9012 9009 52 9018 9015 51 9021 + 9015 51 9021 9018 52 9027 9024 51 9030 9024 + 51 9030 9027 52 9036 9033 51 9039 9033 51 + 9039 9036 52 9045 9042 51 9048 9042 51 9048 + 9045 52 9054 9051 51 9057 9051 51 9057 9054 + 52 9063 9060 51 9066 9060 51 9066 9063 52 + 9072 9069 51 9075 9069 51 9075 9072 52 9081 + 9078 51 9084 9078 51 9084 9081 52 9090 9087 + 51 9093 9087 51 9093 9090 52 9099 9096 51 + 9102 9096 51 9102 9099 52 9108 9105 51 9111 + 9105 51 9111 9108 52 9117 9114 51 9120 9114 + 51 9120 9117 52 9126 9123 51 9129 9123 51 + 9129 9126 52 9135 9132 51 9138 9132 51 9138 + 9135 52 9144 9141 51 9147 9141 51 9147 9144 + 52 9153 9150 51 9156 9150 51 9156 9153 52 + 9162 9159 51 9165 9159 51 9165 9162 52 9171 + 9168 51 9174 9168 51 9174 9171 52 9180 9177 + 51 9183 9177 51 9183 9180 52 9189 9186 51 + 9192 9186 51 9192 9189 52 9198 9195 51 9201 + 9195 51 9201 9198 52 9207 9204 51 9210 9204 + 51 9210 9207 52 9216 9213 51 9219 9213 51 + 9219 9216 52 9225 9222 51 9228 9222 51 9228 + 9225 52 9234 9231 51 9237 9231 51 9237 9234 + 52 9243 9240 51 9246 9240 51 9246 9243 52 + 9252 9249 51 9255 9249 51 9255 9252 52 9261 + 9258 51 9264 9258 51 9264 9261 52 9270 9267 + 51 9273 9267 51 9273 9270 52 9279 9276 51 + 9282 9276 51 9282 9279 52 9288 9285 51 9291 + 9285 51 9291 9288 52 9297 9294 51 9300 9294 + 51 9300 9297 52 9306 9303 51 9309 9303 51 + 9309 9306 52 9315 9312 51 9318 9312 51 9318 + 9315 52 9324 9321 51 9327 9321 51 9327 9324 + 52 9333 9330 51 9336 9330 51 9336 9333 52 + 9342 9339 51 9345 9339 51 9345 9342 52 9351 + 9348 51 9354 9348 51 9354 9351 52 9360 9357 + 51 9363 9357 51 9363 9360 52 9369 9366 51 + 9372 9366 51 9372 9369 52 9378 9375 51 9381 + 9375 51 9381 9378 52 9387 9384 51 9390 9384 + 51 9390 9387 52 9396 9393 51 9399 9393 51 + 9399 9396 52 9405 9402 51 9408 9402 51 9408 + 9405 52 9414 9411 51 9417 9411 51 9417 9414 + 52 9423 9420 51 9426 9420 51 9426 9423 52 + 9432 9429 51 9435 9429 51 9435 9432 52 9441 + 9438 51 9444 9438 51 9444 9441 52 9450 9447 + 51 9453 9447 51 9453 9450 52 9459 9456 51 + 9462 9456 51 9462 9459 52 9468 9465 51 9471 + 9465 51 9471 9468 52 9477 9474 51 9480 9474 + 51 9480 9477 52 9486 9483 51 9489 9483 51 + 9489 9486 52 9495 9492 51 9498 9492 51 9498 + 9495 52 9504 9501 51 9507 9501 51 9507 9504 + 52 9513 9510 51 9516 9510 51 9516 9513 52 + 9522 9519 51 9525 9519 51 9525 9522 52 9531 + 9528 51 9534 9528 51 9534 9531 52 9540 9537 + 51 9543 9537 51 9543 9540 52 9549 9546 51 + 9552 9546 51 9552 9549 52 9558 9555 51 9561 + 9555 51 9561 9558 52 9567 9564 51 9570 9564 + 51 9570 9567 52 9576 9573 51 9579 9573 51 + 9579 9576 52 9585 9582 51 9588 9582 51 9588 + 9585 52 9594 9591 51 9597 9591 51 9597 9594 + 52 9603 9600 51 9606 9600 51 9606 9603 52 + 9612 9609 51 9615 9609 51 9615 9612 52 9621 + 9618 51 9624 9618 51 9624 9621 52 9630 9627 + 51 9633 9627 51 9633 9630 52 9639 9636 51 + 9642 9636 51 9642 9639 52 9648 9645 51 9651 + 9645 51 9651 9648 52 9657 9654 51 9660 9654 + 51 9660 9657 52 9666 9663 51 9669 9663 51 + 9669 9666 52 9675 9672 51 9678 9672 51 9678 + 9675 52 9684 9681 51 9687 9681 51 9687 9684 + 52 9693 9690 51 9696 9690 51 9696 9693 52 + 9702 9699 51 9705 9699 51 9705 9702 52 9711 + 9708 51 9714 9708 51 9714 9711 52 9720 9717 + 51 9723 9717 51 9723 9720 52 9729 9726 51 + 9732 9726 51 9732 9729 52 9738 9735 51 9741 + 9735 51 9741 9738 52 9747 9744 51 9750 9744 + 51 9750 9747 52 9756 9753 51 9759 9753 51 + 9759 9756 52 9765 9762 51 9768 9762 51 9768 + 9765 52 9774 9771 51 9777 9771 51 9777 9774 + 52 9783 9780 51 9786 9780 51 9786 9783 52 + 9792 9789 51 9795 9789 51 9795 9792 52 9801 + 9798 51 9804 9798 51 9804 9801 52 9810 9807 + 51 9813 9807 51 9813 9810 52 9819 9816 51 + 9822 9816 51 9822 9819 52 9828 9825 51 9831 + 9825 51 9831 9828 52 9837 9834 51 9840 9834 + 51 9840 9837 52 9846 9843 51 9849 9843 51 + 9849 9846 52 9855 9852 51 9858 9852 51 9858 + 9855 52 9864 9861 51 9867 9861 51 9867 9864 + 52 9873 9870 51 9876 9870 51 9876 9873 52 + 9882 9879 51 9885 9879 51 9885 9882 52 9891 + 9888 51 9894 9888 51 9894 9891 52 9900 9897 + 51 9903 9897 51 9903 9900 52 9909 9906 51 + 9912 9906 51 9912 9909 52 9918 9915 51 9921 + 9915 51 9921 9918 52 9927 9924 51 9930 9924 + 51 9930 9927 52 9936 9933 51 9939 9933 51 + 9939 9936 52 9945 9942 51 9948 9942 51 9948 + 9945 52 9954 9951 51 9957 9951 51 9957 9954 + 52 9963 9960 51 9966 9960 51 9966 9963 52 + 9972 9969 51 9975 9969 51 9975 9972 52 9981 + 9978 51 9984 9978 51 9984 9981 52 9990 9987 + 51 9993 9987 51 9993 9990 52 9999 9996 51 + 10002 9996 51 10002 9999 52 10008 10005 51 10011 + 10005 51 10011 10008 52 10017 10014 51 10020 10014 + 51 10020 10017 52 10026 10023 51 10029 10023 51 + 10029 10026 52 10035 10032 51 10038 10032 51 10038 + 10035 52 10044 10041 51 10047 10041 51 10047 10044 + 52 10053 10050 51 10056 10050 51 10056 10053 52 + 10062 10059 51 10065 10059 51 10065 10062 52 10071 + 10068 51 10074 10068 51 10074 10071 52 10080 10077 + 51 10083 10077 51 10083 10080 52 10089 10086 51 + 10092 10086 51 10092 10089 52 10098 10095 51 10101 + 10095 51 10101 10098 52 10107 10104 51 10110 10104 + 51 10110 10107 52 10116 10113 51 10119 10113 51 + 10119 10116 52 10125 10122 51 10128 10122 51 10128 + 10125 52 10134 10131 51 10137 10131 51 10137 10134 + 52 10143 10140 51 10146 10140 51 10146 10143 52 + 10152 10149 51 10155 10149 51 10155 10152 52 10161 + 10158 51 10164 10158 51 10164 10161 52 10170 10167 + 51 10173 10167 51 10173 10170 52 10179 10176 51 + 10182 10176 51 10182 10179 52 10188 10185 51 10191 + 10185 51 10191 10188 52 10197 10194 51 10200 10194 + 51 10200 10197 52 10206 10203 51 10209 10203 51 + 10209 10206 52 10215 10212 51 10218 10212 51 10218 + 10215 52 10224 10221 51 10227 10221 51 10227 10224 + 52 10233 10230 51 10236 10230 51 10236 10233 52 + 10242 10239 51 10245 10239 51 10245 10242 52 10251 + 10248 51 10254 10248 51 10254 10251 52 10260 10257 + 51 10263 10257 51 10263 10260 52 10269 10266 51 + 10272 10266 51 10272 10269 52 10278 10275 51 10281 + 10275 51 10281 10278 52 10287 10284 51 10290 10284 + 51 10290 10287 52 10296 10293 51 10299 10293 51 + 10299 10296 52 10305 10302 51 10308 10302 51 10308 + 10305 52 10314 10311 51 10317 10311 51 10317 10314 + 52 10323 10320 51 10326 10320 51 10326 10323 52 + 10332 10329 51 10335 10329 51 10335 10332 52 10341 + 10338 51 10344 10338 51 10344 10341 52 10350 10347 + 51 10353 10347 51 10353 10350 52 10359 10356 51 + 10362 10356 51 10362 10359 52 10368 10365 51 10371 + 10365 51 10371 10368 52 10377 10374 51 10380 10374 + 51 10380 10377 52 10386 10383 51 10389 10383 51 + 10389 10386 52 10395 10392 51 10398 10392 51 10398 + 10395 52 10404 10401 51 10407 10401 51 10407 10404 + 52 10413 10410 51 10416 10410 51 10416 10413 52 + 10422 10419 51 10425 10419 51 10425 10422 52 10431 + 10428 51 10434 10428 51 10434 10431 52 10440 10437 + 51 10443 10437 51 10443 10440 52 10449 10446 51 + 10452 10446 51 10452 10449 52 10458 10455 51 10461 + 10455 51 10461 10458 52 10467 10464 51 10470 10464 + 51 10470 10467 52 10476 10473 51 10479 10473 51 + 10479 10476 52 10485 10482 51 10488 10482 51 10488 + 10485 52 10494 10491 51 10497 10491 51 10497 10494 + 52 10503 10500 51 10506 10500 51 10506 10503 52 + 10512 10509 51 10515 10509 51 10515 10512 52 10521 + 10518 51 10524 10518 51 10524 10521 52 10530 10527 + 51 10533 10527 51 10533 10530 52 10539 10536 51 + 10542 10536 51 10542 10539 52 10548 10545 51 10551 + 10545 51 10551 10548 52 10557 10554 51 10560 10554 + 51 10560 10557 52 10566 10563 51 10569 10563 51 + 10569 10566 52 10575 10572 51 10578 10572 51 10578 + 10575 52 10584 10581 51 10587 10581 51 10587 10584 + 52 10593 10590 51 10596 10590 51 10596 10593 52 + 10602 10599 51 10605 10599 51 10605 10602 52 10611 + 10608 51 10614 10608 51 10614 10611 52 10620 10617 + 51 10623 10617 51 10623 10620 52 10629 10626 51 + 10632 10626 51 10632 10629 52 10638 10635 51 10641 + 10635 51 10641 10638 52 10647 10644 51 10650 10644 + 51 10650 10647 52 10656 10653 51 10659 10653 51 + 10659 10656 52 10665 10662 51 10668 10662 51 10668 + 10665 52 10674 10671 51 10677 10671 51 10677 10674 + 52 10683 10680 51 10686 10680 51 10686 10683 52 + 10692 10689 51 10695 10689 51 10695 10692 52 10701 + 10698 51 10704 10698 51 10704 10701 52 10710 10707 + 51 10713 10707 51 10713 10710 52 10719 10716 51 + 10722 10716 51 10722 10719 52 10728 10725 51 10731 + 10725 51 10731 10728 52 10737 10734 51 10740 10734 + 51 10740 10737 52 10746 10743 51 10749 10743 51 + 10749 10746 52 10755 10752 51 10758 10752 51 10758 + 10755 52 10764 10761 51 10767 10761 51 10767 10764 + 52 10773 10770 51 10776 10770 51 10776 10773 52 + 10782 10779 51 10785 10779 51 10785 10782 52 10791 + 10788 51 10794 10788 51 10794 10791 52 10800 10797 + 51 10803 10797 51 10803 10800 52 10809 10806 51 + 10812 10806 51 10812 10809 52 10818 10815 51 10821 + 10815 51 10821 10818 52 10827 10824 51 10830 10824 + 51 10830 10827 52 10836 10833 51 10839 10833 51 + 10839 10836 52 10845 10842 51 10848 10842 51 10848 + 10845 52 10854 10851 51 10857 10851 51 10857 10854 + 52 10863 10860 51 10866 10860 51 10866 10863 52 + 10872 10869 51 10875 10869 51 10875 10872 52 10881 + 10878 51 10884 10878 51 10884 10881 52 10890 10887 + 51 10893 10887 51 10893 10890 52 10899 10896 51 + 10902 10896 51 10902 10899 52 10908 10905 51 10911 + 10905 51 10911 10908 52 10917 10914 51 10920 10914 + 51 10920 10917 52 10926 10923 51 10929 10923 51 + 10929 10926 52 10935 10932 51 10938 10932 51 10938 + 10935 52 10944 10941 51 10947 10941 51 10947 10944 + 52 10953 10950 51 10956 10950 51 10956 10953 52 + 10962 10959 51 10965 10959 51 10965 10962 52 10971 + 10968 51 10974 10968 51 10974 10971 52 10980 10977 + 51 10983 10977 51 10983 10980 52 10989 10986 51 + 10992 10986 51 10992 10989 52 10998 10995 51 11001 + 10995 51 11001 10998 52 11007 11004 51 11010 11004 + 51 11010 11007 52 11016 11013 51 11019 11013 51 + 11019 11016 52 11025 11022 51 11028 11022 51 11028 + 11025 52 11034 11031 51 11037 11031 51 11037 11034 + 52 11043 11040 51 11046 11040 51 11046 11043 52 + 11052 11049 51 11055 11049 51 11055 11052 52 11061 + 11058 51 11064 11058 51 11064 11061 52 11070 11067 + 51 11073 11067 51 11073 11070 52 11079 11076 51 + 11082 11076 51 11082 11079 52 11088 11085 51 11091 + 11085 51 11091 11088 52 11097 11094 51 11100 11094 + 51 11100 11097 52 11106 11103 51 11109 11103 51 + 11109 11106 52 11115 11112 51 11118 11112 51 11118 + 11115 52 11124 11121 51 11127 11121 51 11127 11124 + 52 11133 11130 51 11136 11130 51 11136 11133 52 + 11142 11139 51 11145 11139 51 11145 11142 52 11151 + 11148 51 11154 11148 51 11154 11151 52 11160 11157 + 51 11163 11157 51 11163 11160 52 11169 11166 51 + 11172 11166 51 11172 11169 52 11178 11175 51 11181 + 11175 51 11181 11178 52 11187 11184 51 11190 11184 + 51 11190 11187 52 11196 11193 51 11199 11193 51 + 11199 11196 52 11205 11202 51 11208 11202 51 11208 + 11205 52 11214 11211 51 11217 11211 51 11217 11214 + 52 11223 11220 51 11226 11220 51 11226 11223 52 + 11232 11229 51 11235 11229 51 11235 11232 52 11241 + 11238 51 11244 11238 51 11244 11241 52 11250 11247 + 51 11253 11247 51 11253 11250 52 11259 11256 51 + 11262 11256 51 11262 11259 52 11268 11265 51 11271 + 11265 51 11271 11268 52 11277 11274 51 11280 11274 + 51 11280 11277 52 11286 11283 51 11289 11283 51 + 11289 11286 52 11295 11292 51 11298 11292 51 11298 + 11295 52 11304 11301 51 11307 11301 51 11307 11304 + 52 11313 11310 51 11316 11310 51 11316 11313 52 + 11322 11319 51 11325 11319 51 11325 11322 52 11331 + 11328 51 11334 11328 51 11334 11331 52 11340 11337 + 51 11343 11337 51 11343 11340 52 11349 11346 51 + 11352 11346 51 11352 11349 52 11358 11355 51 11361 + 11355 51 11361 11358 52 11367 11364 51 11370 11364 + 51 11370 11367 52 11376 11373 51 11379 11373 51 + 11379 11376 52 11385 11382 51 11388 11382 51 11388 + 11385 52 11394 11391 51 11397 11391 51 11397 11394 + 52 11403 11400 51 11406 11400 51 11406 11403 52 + 11412 11409 51 11415 11409 51 11415 11412 52 11421 + 11418 51 11424 11418 51 11424 11421 52 11430 11427 + 51 11433 11427 51 11433 11430 52 11439 11436 51 + 11442 11436 51 11442 11439 52 11448 11445 51 11451 + 11445 51 11451 11448 52 11457 11454 51 11460 11454 + 51 11460 11457 52 11466 11463 51 11469 11463 51 + 11469 11466 52 11475 11472 51 11478 11472 51 11478 + 11475 52 11484 11481 51 11487 11481 51 11487 11484 + 52 11493 11490 51 11496 11490 51 11496 11493 52 + 11502 11499 51 11505 11499 51 11505 11502 52 11511 + 11508 51 11514 11508 51 11514 11511 52 11520 11517 + 51 11523 11517 51 11523 11520 52 11529 11526 51 + 11532 11526 51 11532 11529 52 11538 11535 51 11541 + 11535 51 11541 11538 52 11547 11544 51 11550 11544 + 51 11550 11547 52 11556 11553 51 11559 11553 51 + 11559 11556 52 11565 11562 51 11568 11562 51 11568 + 11565 52 11574 11571 51 11577 11571 51 11577 11574 + 52 11583 11580 51 11586 11580 51 11586 11583 52 + 11592 11589 51 11595 11589 51 11595 11592 52 11601 + 11598 51 11604 11598 51 11604 11601 52 11610 11607 + 51 11613 11607 51 11613 11610 52 11619 11616 51 + 11622 11616 51 11622 11619 52 11628 11625 51 11631 + 11625 51 11631 11628 52 11637 11634 51 11640 11634 + 51 11640 11637 52 11646 11643 51 11649 11643 51 + 11649 11646 52 11655 11652 51 11658 11652 51 11658 + 11655 52 11664 11661 51 11667 11661 51 11667 11664 + 52 11673 11670 51 11676 11670 51 11676 11673 52 + 11682 11679 51 11685 11679 51 11685 11682 52 11691 + 11688 51 11694 11688 51 11694 11691 52 11700 11697 + 51 11703 11697 51 11703 11700 52 11709 11706 51 + 11712 11706 51 11712 11709 52 11718 11715 51 11721 + 11715 51 11721 11718 52 11727 11724 51 11730 11724 + 51 11730 11727 52 11736 11733 51 11739 11733 51 + 11739 11736 52 11745 11742 51 11748 11742 51 11748 + 11745 52 11754 11751 51 11757 11751 51 11757 11754 + 52 11763 11760 51 11766 11760 51 11766 11763 52 + 11772 11769 51 11775 11769 51 11775 11772 52 11781 + 11778 51 11784 11778 51 11784 11781 52 11790 11787 + 51 11793 11787 51 11793 11790 52 11799 11796 51 + 11802 11796 51 11802 11799 52 11808 11805 51 11811 + 11805 51 11811 11808 52 11817 11814 51 11820 11814 + 51 11820 11817 52 11826 11823 51 11829 11823 51 + 11829 11826 52 11835 11832 51 11838 11832 51 11838 + 11835 52 11844 11841 51 11847 11841 51 11847 11844 + 52 11853 11850 51 11856 11850 51 11856 11853 52 + 11862 11859 51 11865 11859 51 11865 11862 52 11871 + 11868 51 11874 11868 51 11874 11871 52 11880 11877 + 51 11883 11877 51 11883 11880 52 11889 11886 51 + 11892 11886 51 11892 11889 52 11898 11895 51 11901 + 11895 51 11901 11898 52 11907 11904 51 11910 11904 + 51 11910 11907 52 11916 11913 51 11919 11913 51 + 11919 11916 52 11925 11922 51 11928 11922 51 11928 + 11925 52 11934 11931 51 11937 11931 51 11937 11934 + 52 11943 11940 51 11946 11940 51 11946 11943 52 + 11952 11949 51 11955 11949 51 11955 11952 52 11961 + 11958 51 11964 11958 51 11964 11961 52 11970 11967 + 51 11973 11967 51 11973 11970 52 11979 11976 51 + 11982 11976 51 11982 11979 52 11988 11985 51 11991 + 11985 51 11991 11988 52 11997 11994 51 12000 11994 + 51 12000 11997 52 12006 12003 51 12009 12003 51 + 12009 12006 52 12015 12012 51 12018 12012 51 12018 + 12015 52 12024 12021 51 12027 12021 51 12027 12024 + 52 12033 12030 51 12036 12030 51 12036 12033 52 + 12042 12039 51 12045 12039 51 12045 12042 52 12051 + 12048 51 12054 12048 51 12054 12051 52 12060 12057 + 51 12063 12057 51 12063 12060 52 12069 12066 51 + 12072 12066 51 12072 12069 52 12078 12075 51 12081 + 12075 51 12081 12078 52 12087 12084 51 12090 12084 + 51 12090 12087 52 12096 12093 51 12099 12093 51 + 12099 12096 52 12105 12102 51 12108 12102 51 12108 + 12105 52 12114 12111 51 12117 12111 51 12117 12114 + 52 12123 12120 51 12126 12120 51 12126 12123 52 + 12132 12129 51 12135 12129 51 12135 12132 52 12141 + 12138 51 12144 12138 51 12144 12141 52 12150 12147 + 51 12153 12147 51 12153 12150 52 12159 12156 51 + 12162 12156 51 12162 12159 52 12168 12165 51 12171 + 12165 51 12171 12168 52 12177 12174 51 12180 12174 + 51 12180 12177 52 12186 12183 51 12189 12183 51 + 12189 12186 52 12195 12192 51 12198 12192 51 12198 + 12195 52 12204 12201 51 12207 12201 51 12207 12204 + 52 12213 12210 51 12216 12210 51 12216 12213 52 + 12222 12219 51 12225 12219 51 12225 12222 52 12231 + 12228 51 12234 12228 51 12234 12231 52 12240 12237 + 51 12243 12237 51 12243 12240 52 12249 12246 51 + 12252 12246 51 12252 12249 52 12258 12255 51 12261 + 12255 51 12261 12258 52 12267 12264 51 12270 12264 + 51 12270 12267 52 12276 12273 51 12279 12273 51 + 12279 12276 52 12285 12282 51 12288 12282 51 12288 + 12285 52 12294 12291 51 12297 12291 51 12297 12294 + 52 12303 12300 51 12306 12300 51 12306 12303 52 + 12312 12309 51 12315 12309 51 12315 12312 52 12321 + 12318 51 12324 12318 51 12324 12321 52 12330 12327 + 51 12333 12327 51 12333 12330 52 12339 12336 51 + 12342 12336 51 12342 12339 52 12348 12345 51 12351 + 12345 51 12351 12348 52 12357 12354 51 12360 12354 + 51 12360 12357 52 12366 12363 51 12369 12363 51 + 12369 12366 52 12375 12372 51 12378 12372 51 12378 + 12375 52 12384 12381 51 12387 12381 51 12387 12384 + 52 12393 12390 51 12396 12390 51 12396 12393 52 + 12402 12399 51 12405 12399 51 12405 12402 52 12411 + 12408 51 12414 12408 51 12414 12411 52 12420 12417 + 51 12423 12417 51 12423 12420 52 12429 12426 51 + 12432 12426 51 12432 12429 52 12438 12435 51 12441 + 12435 51 12441 12438 52 12447 12444 51 12450 12444 + 51 12450 12447 52 12456 12453 51 12459 12453 51 + 12459 12456 52 12465 12462 51 12468 12462 51 12468 + 12465 52 12474 12471 51 12477 12471 51 12477 12474 + 52 12483 12480 51 12486 12480 51 12486 12483 52 + 12492 12489 51 12495 12489 51 12495 12492 52 12501 + 12498 51 12504 12498 51 12504 12501 52 12510 12507 + 51 12513 12507 51 12513 12510 52 12519 12516 51 + 12522 12516 51 12522 12519 52 12528 12525 51 12531 + 12525 51 12531 12528 52 12537 12534 51 12540 12534 + 51 12540 12537 52 12546 12543 51 12549 12543 51 + 12549 12546 52 12555 12552 51 12558 12552 51 12558 + 12555 52 12564 12561 51 12567 12561 51 12567 12564 + 52 12573 12570 51 12576 12570 51 12576 12573 52 + 12582 12579 51 12585 12579 51 12585 12582 52 12591 + 12588 51 12594 12588 51 12594 12591 52 12600 12597 + 51 12603 12597 51 12603 12600 52 12609 12606 51 + 12612 12606 51 12612 12609 52 12618 12615 51 12621 + 12615 51 12621 12618 52 12627 12624 51 12630 12624 + 51 12630 12627 52 12636 12633 51 12639 12633 51 + 12639 12636 52 12645 12642 51 12648 12642 51 12648 + 12645 52 12654 12651 51 12657 12651 51 12657 12654 + 52 12663 12660 51 12666 12660 51 12666 12663 52 + 12672 12669 51 12675 12669 51 12675 12672 52 12681 + 12678 51 12684 12678 51 12684 12681 52 12690 12687 + 51 12693 12687 51 12693 12690 52 12699 12696 51 + 12702 12696 51 12702 12699 52 12708 12705 51 12711 + 12705 51 12711 12708 52 12717 12714 51 12720 12714 + 51 12720 12717 52 12726 12723 51 12729 12723 51 + 12729 12726 52 12735 12732 51 12738 12732 51 12738 + 12735 52 12744 12741 51 12747 12741 51 12747 12744 + 52 12753 12750 51 12756 12750 51 12756 12753 52 + 12762 12759 51 12765 12759 51 12765 12762 52 12771 + 12768 51 12774 12768 51 12774 12771 52 12780 12777 + 51 12783 12777 51 12783 12780 52 12789 12786 51 + 12792 12786 51 12792 12789 52 12798 12795 51 12801 + 12795 51 12801 12798 52 12807 12804 51 12810 12804 + 51 12810 12807 52 12816 12813 51 12819 12813 51 + 12819 12816 52 12825 12822 51 12828 12822 51 12828 + 12825 52 12834 12831 51 12837 12831 51 12837 12834 + 52 12843 12840 51 12846 12840 51 12846 12843 52 + 12852 12849 51 12855 12849 51 12855 12852 52 12861 + 12858 51 12864 12858 51 12864 12861 52 12870 12867 + 51 12873 12867 51 12873 12870 52 12879 12876 51 + 12882 12876 51 12882 12879 52 12888 12885 51 12891 + 12885 51 12891 12888 52 12897 12894 51 12900 12894 + 51 12900 12897 52 12906 12903 51 12909 12903 51 + 12909 12906 52 12915 12912 51 12918 12912 51 12918 + 12915 52 12924 12921 51 12927 12921 51 12927 12924 + 52 12933 12930 51 12936 12930 51 12936 12933 52 + 12942 12939 51 12945 12939 51 12945 12942 52 12951 + 12948 51 12954 12948 51 12954 12951 52 12960 12957 + 51 12963 12957 51 12963 12960 52 12969 12966 51 + 12972 12966 51 12972 12969 52 12978 12975 51 12981 + 12975 51 12981 12978 52 12987 12984 51 12990 12984 + 51 12990 12987 52 12996 12993 51 12999 12993 51 + 12999 12996 52 13005 13002 51 13008 13002 51 13008 + 13005 52 13014 13011 51 13017 13011 51 13017 13014 + 52 13023 13020 51 13026 13020 51 13026 13023 52 + 13032 13029 51 13035 13029 51 13035 13032 52 13041 + 13038 51 13044 13038 51 13044 13041 52 13050 13047 + 51 13053 13047 51 13053 13050 52 13059 13056 51 + 13062 13056 51 13062 13059 52 13068 13065 51 13071 + 13065 51 13071 13068 52 13077 13074 51 13080 13074 + 51 13080 13077 52 13086 13083 51 13089 13083 51 + 13089 13086 52 13095 13092 51 13098 13092 51 13098 + 13095 52 13104 13101 51 13107 13101 51 13107 13104 + 52 13113 13110 51 13116 13110 51 13116 13113 52 + 13122 13119 51 13125 13119 51 13125 13122 52 13131 + 13128 51 13134 13128 51 13134 13131 52 13140 13137 + 51 13143 13137 51 13143 13140 52 13149 13146 51 + 13152 13146 51 13152 13149 52 13158 13155 51 13161 + 13155 51 13161 13158 52 13167 13164 51 13170 13164 + 51 13170 13167 52 13176 13173 51 13179 13173 51 + 13179 13176 52 13185 13182 51 13188 13182 51 13188 + 13185 52 13194 13191 51 13197 13191 51 13197 13194 + 52 13203 13200 51 13206 13200 51 13206 13203 52 + 13212 13209 51 13215 13209 51 13215 13212 52 13221 + 13218 51 13224 13218 51 13224 13221 52 13230 13227 + 51 13233 13227 51 13233 13230 52 13239 13236 51 + 13242 13236 51 13242 13239 52 13248 13245 51 13251 + 13245 51 13251 13248 52 13257 13254 51 13260 13254 + 51 13260 13257 52 13266 13263 51 13269 13263 51 + 13269 13266 52 13275 13272 51 13278 13272 51 13278 + 13275 52 13284 13281 51 13287 13281 51 13287 13284 + 52 13293 13290 51 13296 13290 51 13296 13293 52 + 13302 13299 51 13305 13299 51 13305 13302 52 13311 + 13308 51 13314 13308 51 13314 13311 52 13320 13317 + 51 13323 13317 51 13323 13320 52 13329 13326 51 + 13332 13326 51 13332 13329 52 13338 13335 51 13341 + 13335 51 13341 13338 52 13347 13344 51 13350 13344 + 51 13350 13347 52 13356 13353 51 13359 13353 51 + 13359 13356 52 13365 13362 51 13368 13362 51 13368 + 13365 52 13374 13371 51 13377 13371 51 13377 13374 + 52 13383 13380 51 13386 13380 51 13386 13383 52 + 13392 13389 51 13395 13389 51 13395 13392 52 13401 + 13398 51 13404 13398 51 13404 13401 52 13410 13407 + 51 13413 13407 51 13413 13410 52 13419 13416 51 + 13422 13416 51 13422 13419 52 13428 13425 51 13431 + 13425 51 13431 13428 52 13437 13434 51 13440 13434 + 51 13440 13437 52 13446 13443 51 13449 13443 51 + 13449 13446 52 13455 13452 51 13458 13452 51 13458 + 13455 52 13464 13461 51 13467 13461 51 13467 13464 + 52 13473 13470 51 13476 13470 51 13476 13473 52 + 13482 13479 51 13485 13479 51 13485 13482 52 13491 + 13488 51 13494 13488 51 13494 13491 52 13500 13497 + 51 13503 13497 51 13503 13500 52 13509 13506 51 + 13512 13506 51 13512 13509 52 13518 13515 51 13521 + 13515 51 13521 13518 52 13527 13524 51 13530 13524 + 51 13530 13527 52 13536 13533 51 13539 13533 51 + 13539 13536 52 13545 13542 51 13548 13542 51 13548 + 13545 52 13554 13551 51 13557 13551 51 13557 13554 + 52 13563 13560 51 13566 13560 51 13566 13563 52 + 13572 13569 51 13575 13569 51 13575 13572 52 13581 + 13578 51 13584 13578 51 13584 13581 52 13590 13587 + 51 13593 13587 51 13593 13590 52 13599 13596 51 + 13602 13596 51 13602 13599 52 13608 13605 51 13611 + 13605 51 13611 13608 52 13617 13614 51 13620 13614 + 51 13620 13617 52 13626 13623 51 13629 13623 51 + 13629 13626 52 13635 13632 51 13638 13632 51 13638 + 13635 52 13644 13641 51 13647 13641 51 13647 13644 + 52 13653 13650 51 13656 13650 51 13656 13653 52 + 13662 13659 51 13665 13659 51 13665 13662 52 13671 + 13668 51 13674 13668 51 13674 13671 52 13680 13677 + 51 13683 13677 51 13683 13680 52 13689 13686 51 + 13692 13686 51 13692 13689 52 13698 13695 51 13701 + 13695 51 13701 13698 52 13707 13704 51 13710 13704 + 51 13710 13707 52 13716 13713 51 13719 13713 51 + 13719 13716 52 13725 13722 51 13728 13722 51 13728 + 13725 52 13734 13731 51 13737 13731 51 13737 13734 + 52 13743 13740 51 13746 13740 51 13746 13743 52 + 13752 13749 51 13755 13749 51 13755 13752 52 13761 + 13758 51 13764 13758 51 13764 13761 52 13770 13767 + 51 13773 13767 51 13773 13770 52 13779 13776 51 + 13782 13776 51 13782 13779 52 13788 13785 51 13791 + 13785 51 13791 13788 52 13797 13794 51 13800 13794 + 51 13800 13797 52 13806 13803 51 13809 13803 51 + 13809 13806 52 13815 13812 51 13818 13812 51 13818 + 13815 52 13824 13821 51 13827 13821 51 13827 13824 + 52 13833 13830 51 13836 13830 51 13836 13833 52 + 13842 13839 51 13845 13839 51 13845 13842 52 13851 + 13848 51 13854 13848 51 13854 13851 52 13860 13857 + 51 13863 13857 51 13863 13860 52 13869 13866 51 + 13872 13866 51 13872 13869 52 13878 13875 51 13881 + 13875 51 13881 13878 52 13887 13884 51 13890 13884 + 51 13890 13887 52 13896 13893 51 13899 13893 51 + 13899 13896 52 13905 13902 51 13908 13902 51 13908 + 13905 52 13914 13911 51 13917 13911 51 13917 13914 + 52 13923 13920 51 13926 13920 51 13926 13923 52 + 13932 13929 51 13935 13929 51 13935 13932 52 13941 + 13938 51 13944 13938 51 13944 13941 52 13950 13947 + 51 13953 13947 51 13953 13950 52 13959 13956 51 + 13962 13956 51 13962 13959 52 13968 13965 51 13971 + 13965 51 13971 13968 52 13977 13974 51 13980 13974 + 51 13980 13977 52 13986 13983 51 13989 13983 51 + 13989 13986 52 13995 13992 51 13998 13992 51 13998 + 13995 52 14004 14001 51 14007 14001 51 14007 14004 + 52 14013 14010 51 14016 14010 51 14016 14013 52 + 14022 14019 51 14025 14019 51 14025 14022 52 14031 + 14028 51 14034 14028 51 14034 14031 52 14040 14037 + 51 14043 14037 51 14043 14040 52 14049 14046 51 + 14052 14046 51 14052 14049 52 14058 14055 51 14061 + 14055 51 14061 14058 52 14067 14064 51 14070 14064 + 51 14070 14067 52 14076 14073 51 14079 14073 51 + 14079 14076 52 14085 14082 51 14088 14082 51 14088 + 14085 52 14094 14091 51 14097 14091 51 14097 14094 + 52 14103 14100 51 14106 14100 51 14106 14103 52 + 14112 14109 51 14115 14109 51 14115 14112 52 14121 + 14118 51 14124 14118 51 14124 14121 52 14130 14127 + 51 14133 14127 51 14133 14130 52 14139 14136 51 + 14142 14136 51 14142 14139 52 14148 14145 51 14151 + 14145 51 14151 14148 52 14157 14154 51 14160 14154 + 51 14160 14157 52 14166 14163 51 14169 14163 51 + 14169 14166 52 14175 14172 51 14178 14172 51 14178 + 14175 52 14184 14181 51 14187 14181 51 14187 14184 + 52 14193 14190 51 14196 14190 51 14196 14193 52 + 14202 14199 51 14205 14199 51 14205 14202 52 14211 + 14208 51 14214 14208 51 14214 14211 52 14220 14217 + 51 14223 14217 51 14223 14220 52 14229 14226 51 + 14232 14226 51 14232 14229 52 14238 14235 51 14241 + 14235 51 14241 14238 52 14247 14244 51 14250 14244 + 51 14250 14247 52 14256 14253 51 14259 14253 51 + 14259 14256 52 14265 14262 51 14268 14262 51 14268 + 14265 52 14274 14271 51 14277 14271 51 14277 14274 + 52 14283 14280 51 14286 14280 51 14286 14283 52 + 14292 14289 51 14295 14289 51 14295 14292 52 14301 + 14298 51 14304 14298 51 14304 14301 52 14310 14307 + 51 14313 14307 51 14313 14310 52 14319 14316 51 + 14322 14316 51 14322 14319 52 14328 14325 51 14331 + 14325 51 14331 14328 52 14337 14334 51 14340 14334 + 51 14340 14337 52 14346 14343 51 14349 14343 51 + 14349 14346 52 14355 14352 51 14358 14352 51 14358 + 14355 52 14364 14361 51 14367 14361 51 14367 14364 + 52 14373 14370 51 14376 14370 51 14376 14373 52 + 14382 14379 51 14385 14379 51 14385 14382 52 14391 + 14388 51 14394 14388 51 14394 14391 52 14400 14397 + 51 14403 14397 51 14403 14400 52 14409 14406 51 + 14412 14406 51 14412 14409 52 14418 14415 51 14421 + 14415 51 14421 14418 52 14427 14424 51 14430 14424 + 51 14430 14427 52 14436 14433 51 14439 14433 51 + 14439 14436 52 14445 14442 51 14448 14442 51 14448 + 14445 52 14454 14451 51 14457 14451 51 14457 14454 + 52 14463 14460 51 14466 14460 51 14466 14463 52 + 14472 14469 51 14475 14469 51 14475 14472 52 14481 + 14478 51 14484 14478 51 14484 14481 52 14490 14487 + 51 14493 14487 51 14493 14490 52 14499 14496 51 + 14502 14496 51 14502 14499 52 14508 14505 51 14511 + 14505 51 14511 14508 52 14517 14514 51 14520 14514 + 51 14520 14517 52 14526 14523 51 14529 14523 51 + 14529 14526 52 14535 14532 51 14538 14532 51 14538 + 14535 52 14544 14541 51 14547 14541 51 14547 14544 + 52 14553 14550 51 14556 14550 51 14556 14553 52 + 14562 14559 51 14565 14559 51 14565 14562 52 14571 + 14568 51 14574 14568 51 14574 14571 52 14580 14577 + 51 14583 14577 51 14583 14580 52 14589 14586 51 + 14592 14586 51 14592 14589 52 14598 14595 51 14601 + 14595 51 14601 14598 52 14607 14604 51 14610 14604 + 51 14610 14607 52 14616 14613 51 14619 14613 51 + 14619 14616 52 14625 14622 51 14628 14622 51 14628 + 14625 52 14634 14631 51 14637 14631 51 14637 14634 + 52 14643 14640 51 14646 14640 51 14646 14643 52 + 14652 14649 51 14655 14649 51 14655 14652 52 14661 + 14658 51 14664 14658 51 14664 14661 52 14670 14667 + 51 14673 14667 51 14673 14670 52 14679 14676 51 + 14682 14676 51 14682 14679 52 14688 14685 51 14691 + 14685 51 14691 14688 52 14697 14694 51 14700 14694 + 51 14700 14697 52 14706 14703 51 14709 14703 51 + 14709 14706 52 14715 14712 51 14718 14712 51 14718 + 14715 52 14724 14721 51 14727 14721 51 14727 14724 + 52 14733 14730 51 14736 14730 51 14736 14733 52 + 14742 14739 51 14745 14739 51 14745 14742 52 14751 + 14748 51 14754 14748 51 14754 14751 52 14760 14757 + 51 14763 14757 51 14763 14760 52 14769 14766 51 + 14772 14766 51 14772 14769 52 14778 14775 51 14781 + 14775 51 14781 14778 52 14787 14784 51 14790 14784 + 51 14790 14787 52 14796 14793 51 14799 14793 51 + 14799 14796 52 14805 14802 51 14808 14802 51 14808 + 14805 52 14814 14811 51 14817 14811 51 14817 14814 + 52 14823 14820 51 14826 14820 51 14826 14823 52 + 14832 14829 51 14835 14829 51 14835 14832 52 14841 + 14838 51 14844 14838 51 14844 14841 52 14850 14847 + 51 14853 14847 51 14853 14850 52 14859 14856 51 + 14862 14856 51 14862 14859 52 14868 14865 51 14871 + 14865 51 14871 14868 52 14877 14874 51 14880 14874 + 51 14880 14877 52 14886 14883 51 14889 14883 51 + 14889 14886 52 14895 14892 51 14898 14892 51 14898 + 14895 52 14904 14901 51 14907 14901 51 14907 14904 + 52 14913 14910 51 14916 14910 51 14916 14913 52 + 14922 14919 51 14925 14919 51 14925 14922 52 14931 + 14928 51 14934 14928 51 14934 14931 52 14940 14937 + 51 14943 14937 51 14943 14940 52 14949 14946 51 + 14952 14946 51 14952 14949 52 14958 14955 51 14961 + 14955 51 14961 14958 52 14967 14964 51 14970 14964 + 51 14970 14967 52 14976 14973 51 14979 14973 51 + 14979 14976 52 14985 14982 51 14988 14982 51 14988 + 14985 52 14994 14991 51 14997 14991 51 14997 14994 + 52 15003 15000 51 15006 15000 51 15006 15003 52 + 15012 15009 51 15015 15009 51 15015 15012 52 15021 + 15018 51 15024 15018 51 15024 15021 52 15030 15027 + 51 15033 15027 51 15033 15030 52 15039 15036 51 + 15042 15036 51 15042 15039 52 15048 15045 51 15051 + 15045 51 15051 15048 52 15057 15054 51 15060 15054 + 51 15060 15057 52 15066 15063 51 15069 15063 51 + 15069 15066 52 15075 15072 51 15078 15072 51 15078 + 15075 52 15084 15081 51 15087 15081 51 15087 15084 + 52 15093 15090 51 15096 15090 51 15096 15093 52 + 15102 15099 51 15105 15099 51 15105 15102 52 15111 + 15108 51 15114 15108 51 15114 15111 52 15120 15117 + 51 15123 15117 51 15123 15120 52 15129 15126 51 + 15132 15126 51 15132 15129 52 15138 15135 51 15141 + 15135 51 15141 15138 52 15147 15144 51 15150 15144 + 51 15150 15147 52 15156 15153 51 15159 15153 51 + 15159 15156 52 15165 15162 51 15168 15162 51 15168 + 15165 52 15174 15171 51 15177 15171 51 15177 15174 + 52 15183 15180 51 15186 15180 51 15186 15183 52 + 15192 15189 51 15195 15189 51 15195 15192 52 15201 + 15198 51 15204 15198 51 15204 15201 52 15210 15207 + 51 15213 15207 51 15213 15210 52 15219 15216 51 + 15222 15216 51 15222 15219 52 15228 15225 51 15231 + 15225 51 15231 15228 52 15237 15234 51 15240 15234 + 51 15240 15237 52 15246 15243 51 15249 15243 51 + 15249 15246 52 15255 15252 51 15258 15252 51 15258 + 15255 52 15264 15261 51 15267 15261 51 15267 15264 + 52 15273 15270 51 15276 15270 51 15276 15273 52 + 15282 15279 51 15285 15279 51 15285 15282 52 15291 + 15288 51 15294 15288 51 15294 15291 52 15300 15297 + 51 15303 15297 51 15303 15300 52 15309 15306 51 + 15312 15306 51 15312 15309 52 15318 15315 51 15321 + 15315 51 15321 15318 52 15327 15324 51 15330 15324 + 51 15330 15327 52 15336 15333 51 15339 15333 51 + 15339 15336 52 15345 15342 51 15348 15342 51 15348 + 15345 52 15354 15351 51 15357 15351 51 15357 15354 + 52 15363 15360 51 15366 15360 51 15366 15363 52 + 15372 15369 51 15375 15369 51 15375 15372 52 15381 + 15378 51 15384 15378 51 15384 15381 52 15390 15387 + 51 15393 15387 51 15393 15390 52 15399 15396 51 + 15402 15396 51 15402 15399 52 15408 15405 51 15411 + 15405 51 15411 15408 52 15417 15414 51 15420 15414 + 51 15420 15417 52 15426 15423 51 15429 15423 51 + 15429 15426 52 15435 15432 51 15438 15432 51 15438 + 15435 52 15444 15441 51 15447 15441 51 15447 15444 + 52 15453 15450 51 15456 15450 51 15456 15453 52 + 15462 15459 51 15465 15459 51 15465 15462 52 15471 + 15468 51 15474 15468 51 15474 15471 52 15480 15477 + 51 15483 15477 51 15483 15480 52 15489 15486 51 + 15492 15486 51 15492 15489 52 15498 15495 51 15501 + 15495 51 15501 15498 52 15507 15504 51 15510 15504 + 51 15510 15507 52 15516 15513 51 15519 15513 51 + 15519 15516 52 15525 15522 51 15528 15522 51 15528 + 15525 52 15534 15531 51 15537 15531 51 15537 15534 + 52 15543 15540 51 15546 15540 51 15546 15543 52 + 15552 15549 51 15555 15549 51 15555 15552 52 15561 + 15558 51 15564 15558 51 15564 15561 52 15570 15567 + 51 15573 15567 51 15573 15570 52 15579 15576 51 + 15582 15576 51 15582 15579 52 15588 15585 51 15591 + 15585 51 15591 15588 52 15597 15594 51 15600 15594 + 51 15600 15597 52 15606 15603 51 15609 15603 51 + 15609 15606 52 15615 15612 51 15618 15612 51 15618 + 15615 52 15624 15621 51 15627 15621 51 15627 15624 + 52 15633 15630 51 15636 15630 51 15636 15633 52 + 15642 15639 51 15645 15639 51 15645 15642 52 15651 + 15648 51 15654 15648 51 15654 15651 52 15660 15657 + 51 15663 15657 51 15663 15660 52 15669 15666 51 + 15672 15666 51 15672 15669 52 15678 15675 51 15681 + 15675 51 15681 15678 52 15687 15684 51 15690 15684 + 51 15690 15687 52 15696 15693 51 15699 15693 51 + 15699 15696 52 15705 15702 51 15708 15702 51 15708 + 15705 52 15714 15711 51 15717 15711 51 15717 15714 + 52 15723 15720 51 15726 15720 51 15726 15723 52 + 15732 15729 51 15735 15729 51 15735 15732 52 15741 + 15738 51 15744 15738 51 15744 15741 52 15750 15747 + 51 15753 15747 51 15753 15750 52 15759 15756 51 + 15762 15756 51 15762 15759 52 15768 15765 51 15771 + 15765 51 15771 15768 52 15777 15774 51 15780 15774 + 51 15780 15777 52 15786 15783 51 15789 15783 51 + 15789 15786 52 15795 15792 51 15798 15792 51 15798 + 15795 52 15804 15801 51 15807 15801 51 15807 15804 + 52 15813 15810 51 15816 15810 51 15816 15813 52 + 15822 15819 51 15825 15819 51 15825 15822 52 15831 + 15828 51 15834 15828 51 15834 15831 52 15840 15837 + 51 15843 15837 51 15843 15840 52 15849 15846 51 + 15852 15846 51 15852 15849 52 15858 15855 51 15861 + 15855 51 15861 15858 52 15867 15864 51 15870 15864 + 51 15870 15867 52 15876 15873 51 15879 15873 51 + 15879 15876 52 15885 15882 51 15888 15882 51 15888 + 15885 52 15894 15891 51 15897 15891 51 15897 15894 + 52 15903 15900 51 15906 15900 51 15906 15903 52 + 15912 15909 51 15915 15909 51 15915 15912 52 15921 + 15918 51 15924 15918 51 15924 15921 52 15930 15927 + 51 15933 15927 51 15933 15930 52 15939 15936 51 + 15942 15936 51 15942 15939 52 15948 15945 51 15951 + 15945 51 15951 15948 52 15957 15954 51 15960 15954 + 51 15960 15957 52 15966 15963 51 15969 15963 51 + 15969 15966 52 15975 15972 51 15978 15972 51 15978 + 15975 52 15984 15981 51 15987 15981 51 15987 15984 + 52 15993 15990 51 15996 15990 51 15996 15993 52 + 16002 15999 51 16005 15999 51 16005 16002 52 16011 + 16008 51 16014 16008 51 16014 16011 52 16020 16017 + 51 16023 16017 51 16023 16020 52 16029 16026 51 + 16032 16026 51 16032 16029 52 16038 16035 51 16041 + 16035 51 16041 16038 52 16047 16044 51 16050 16044 + 51 16050 16047 52 16056 16053 51 16059 16053 51 + 16059 16056 52 16065 16062 51 16068 16062 51 16068 + 16065 52 16074 16071 51 16077 16071 51 16077 16074 + 52 16083 16080 51 16086 16080 51 16086 16083 52 + 16092 16089 51 16095 16089 51 16095 16092 52 16101 + 16098 51 16104 16098 51 16104 16101 52 16110 16107 + 51 16113 16107 51 16113 16110 52 16119 16116 51 + 16122 16116 51 16122 16119 52 16128 16125 51 16131 + 16125 51 16131 16128 52 16137 16134 51 16140 16134 + 51 16140 16137 52 16146 16143 51 16149 16143 51 + 16149 16146 52 16155 16152 51 16158 16152 51 16158 + 16155 52 16164 16161 51 16167 16161 51 16167 16164 + 52 16173 16170 51 16176 16170 51 16176 16173 52 + 16182 16179 51 16185 16179 51 16185 16182 52 16191 + 16188 51 16194 16188 51 16194 16191 52 16200 16197 + 51 16203 16197 51 16203 16200 52 16209 16206 51 + 16212 16206 51 16212 16209 52 16218 16215 51 16221 + 16215 51 16221 16218 52 16227 16224 51 16230 16224 + 51 16230 16227 52 16236 16233 51 16239 16233 51 + 16239 16236 52 16245 16242 51 16248 16242 51 16248 + 16245 52 16254 16251 51 16257 16251 51 16257 16254 + 52 16263 16260 51 16266 16260 51 16266 16263 52 + 16272 16269 51 16275 16269 51 16275 16272 52 16281 + 16278 51 16284 16278 51 16284 16281 52 16290 16287 + 51 16293 16287 51 16293 16290 52 16299 16296 51 + 16302 16296 51 16302 16299 52 16308 16305 51 16311 + 16305 51 16311 16308 52 16317 16314 51 16320 16314 + 51 16320 16317 52 16326 16323 51 16329 16323 51 + 16329 16326 52 16335 16332 51 16338 16332 51 16338 + 16335 52 16344 16341 51 16347 16341 51 16347 16344 + 52 16353 16350 51 16356 16350 51 16356 16353 52 + 16362 16359 51 16365 16359 51 16365 16362 52 16371 + 16368 51 16374 16368 51 16374 16371 52 16380 16377 + 51 16383 16377 51 16383 16380 52 16389 16386 51 + 16392 16386 51 16392 16389 52 16398 16395 51 16401 + 16395 51 16401 16398 52 16407 16404 51 16410 16404 + 51 16410 16407 52 16416 16413 51 16419 16413 51 + 16419 16416 52 16425 16422 51 16428 16422 51 16428 + 16425 52 16434 16431 51 16437 16431 51 16437 16434 + 52 16443 16440 51 16446 16440 51 16446 16443 52 + 16452 16449 51 16455 16449 51 16455 16452 52 16461 + 16458 51 16464 16458 51 16464 16461 52 16470 16467 + 51 16473 16467 51 16473 16470 52 16479 16476 51 + 16482 16476 51 16482 16479 52 16488 16485 51 16491 + 16485 51 16491 16488 52 16497 16494 51 16500 16494 + 51 16500 16497 52 16506 16503 51 16509 16503 51 + 16509 16506 52 16515 16512 51 16518 16512 51 16518 + 16515 52 16524 16521 51 16527 16521 51 16527 16524 + 52 16533 16530 51 16536 16530 51 16536 16533 52 + 16542 16539 51 16545 16539 51 16545 16542 52 16551 + 16548 51 16554 16548 51 16554 16551 52 16560 16557 + 51 16563 16557 51 16563 16560 52 16569 16566 51 + 16572 16566 51 16572 16569 52 16578 16575 51 16581 + 16575 51 16581 16578 52 16587 16584 51 16590 16584 + 51 16590 16587 52 16596 16593 51 16599 16593 51 + 16599 16596 52 16605 16602 51 16608 16602 51 16608 + 16605 52 16614 16611 51 16617 16611 51 16617 16614 + 52 16623 16620 51 16626 16620 51 16626 16623 52 + 16632 16629 51 16635 16629 51 16635 16632 52 16641 + 16638 51 16644 16638 51 16644 16641 52 16650 16647 + 51 16653 16647 51 16653 16650 52 16659 16656 51 + 16662 16656 51 16662 16659 52 16668 16665 51 16671 + 16665 51 16671 16668 52 16677 16674 51 16680 16674 + 51 16680 16677 52 16686 16683 51 16689 16683 51 + 16689 16686 52 16695 16692 51 16698 16692 51 16698 + 16695 52 16704 16701 51 16707 16701 51 16707 16704 + 52 16713 16710 51 16716 16710 51 16716 16713 52 + 16722 16719 51 16725 16719 51 16725 16722 52 16731 + 16728 51 16734 16728 51 16734 16731 52 16740 16737 + 51 16743 16737 51 16743 16740 52 16749 16746 51 + 16752 16746 51 16752 16749 52 16758 16755 51 16761 + 16755 51 16761 16758 52 16767 16764 51 16770 16764 + 51 16770 16767 52 16776 16773 51 16779 16773 51 + 16779 16776 52 16785 16782 51 16788 16782 51 16788 + 16785 52 16794 16791 51 16797 16791 51 16797 16794 + 52 16803 16800 51 16806 16800 51 16806 16803 52 + 16812 16809 51 16815 16809 51 16815 16812 52 16821 + 16818 51 16824 16818 51 16824 16821 52 16830 16827 + 51 16833 16827 51 16833 16830 52 16839 16836 51 + 16842 16836 51 16842 16839 52 16848 16845 51 16851 + 16845 51 16851 16848 52 16857 16854 51 16860 16854 + 51 16860 16857 52 16866 16863 51 16869 16863 51 + 16869 16866 52 16875 16872 51 16878 16872 51 16878 + 16875 52 16884 16881 51 16887 16881 51 16887 16884 + 52 16893 16890 51 16896 16890 51 16896 16893 52 + 16902 16899 51 16905 16899 51 16905 16902 52 16911 + 16908 51 16914 16908 51 16914 16911 52 16920 16917 + 51 16923 16917 51 16923 16920 52 16929 16926 51 + 16932 16926 51 16932 16929 52 16938 16935 51 16941 + 16935 51 16941 16938 52 16947 16944 51 16950 16944 + 51 16950 16947 52 16956 16953 51 16959 16953 51 + 16959 16956 52 16965 16962 51 16968 16962 51 16968 + 16965 52 16974 16971 51 16977 16971 51 16977 16974 + 52 16983 16980 51 16986 16980 51 16986 16983 52 + 16992 16989 51 16995 16989 51 16995 16992 52 17001 + 16998 51 17004 16998 51 17004 17001 52 17010 17007 + 51 17013 17007 51 17013 17010 52 17019 17016 51 + 17022 17016 51 17022 17019 52 17028 17025 51 17031 + 17025 51 17031 17028 52 17037 17034 51 17040 17034 + 51 17040 17037 52 17046 17043 51 17049 17043 51 + 17049 17046 52 17055 17052 51 17058 17052 51 17058 + 17055 52 17064 17061 51 17067 17061 51 17067 17064 + 52 17073 17070 51 17076 17070 51 17076 17073 52 + 17082 17079 51 17085 17079 51 17085 17082 52 17091 + 17088 51 17094 17088 51 17094 17091 52 17100 17097 + 51 17103 17097 51 17103 17100 52 17109 17106 51 + 17112 17106 51 17112 17109 52 17118 17115 51 17121 + 17115 51 17121 17118 52 17127 17124 51 17130 17124 + 51 17130 17127 52 17136 17133 51 17139 17133 51 + 17139 17136 52 17145 17142 51 17148 17142 51 17148 + 17145 52 17154 17151 51 17157 17151 51 17157 17154 + 52 17163 17160 51 17166 17160 51 17166 17163 52 + 17172 17169 51 17175 17169 51 17175 17172 52 17181 + 17178 51 17184 17178 51 17184 17181 52 17190 17187 + 51 17193 17187 51 17193 17190 52 17199 17196 51 + 17202 17196 51 17202 17199 52 17208 17205 51 17211 + 17205 51 17211 17208 52 17217 17214 51 17220 17214 + 51 17220 17217 52 17226 17223 51 17229 17223 51 + 17229 17226 52 17235 17232 51 17238 17232 51 17238 + 17235 52 17244 17241 51 17247 17241 51 17247 17244 + 52 17253 17250 51 17256 17250 51 17256 17253 52 + 17262 17259 51 17265 17259 51 17265 17262 52 17271 + 17268 51 17274 17268 51 17274 17271 52 17280 17277 + 51 17283 17277 51 17283 17280 52 17289 17286 51 + 17292 17286 51 17292 17289 52 17298 17295 51 17301 + 17295 51 17301 17298 52 17307 17304 51 17310 17304 + 51 17310 17307 52 17316 17313 51 17319 17313 51 + 17319 17316 52 17325 17322 51 17328 17322 51 17328 + 17325 52 17334 17331 51 17337 17331 51 17337 17334 + 52 17343 17340 51 17346 17340 51 17346 17343 52 + 17352 17349 51 17355 17349 51 17355 17352 52 17361 + 17358 51 17364 17358 51 17364 17361 52 17370 17367 + 51 17373 17367 51 17373 17370 52 17379 17376 51 + 17382 17376 51 17382 17379 52 17388 17385 51 17391 + 17385 51 17391 17388 52 17397 17394 51 17400 17394 + 51 17400 17397 52 17406 17403 51 17409 17403 51 + 17409 17406 52 17415 17412 51 17418 17412 51 17418 + 17415 52 17424 17421 51 17427 17421 51 17427 17424 + 52 17433 17430 51 17436 17430 51 17436 17433 52 + 17442 17439 51 17445 17439 51 17445 17442 52 17451 + 17448 51 17454 17448 51 17454 17451 52 17460 17457 + 51 17463 17457 51 17463 17460 52 17469 17466 51 + 17472 17466 51 17472 17469 52 17478 17475 51 17481 + 17475 51 17481 17478 52 17487 17484 51 17490 17484 + 51 17490 17487 52 17496 17493 51 17499 17493 51 + 17499 17496 52 17505 17502 51 17508 17502 51 17508 + 17505 52 17514 17511 51 17517 17511 51 17517 17514 + 52 17523 17520 51 17526 17520 51 17526 17523 52 + 17532 17529 51 17535 17529 51 17535 17532 52 17541 + 17538 51 17544 17538 51 17544 17541 52 17550 17547 + 51 17553 17547 51 17553 17550 52 17559 17556 51 + 17562 17556 51 17562 17559 52 17568 17565 51 17571 + 17565 51 17571 17568 52 17577 17574 51 17580 17574 + 51 17580 17577 52 17586 17583 51 17589 17583 51 + 17589 17586 52 17595 17592 51 17598 17592 51 17598 + 17595 52 17604 17601 51 17607 17601 51 17607 17604 + 52 17613 17610 51 17616 17610 51 17616 17613 52 + 17622 17619 51 17625 17619 51 17625 17622 52 17631 + 17628 51 17634 17628 51 17634 17631 52 17640 17637 + 51 17643 17637 51 17643 17640 52 17649 17646 51 + 17652 17646 51 17652 17649 52 17658 17655 51 17661 + 17655 51 17661 17658 52 17667 17664 51 17670 17664 + 51 17670 17667 52 17676 17673 51 17679 17673 51 + 17679 17676 52 17685 17682 51 17688 17682 51 17688 + 17685 52 17694 17691 51 17697 17691 51 17697 17694 + 52 17703 17700 51 17706 17700 51 17706 17703 52 + 17712 17709 51 17715 17709 51 17715 17712 52 17721 + 17718 51 17724 17718 51 17724 17721 52 17730 17727 + 51 17733 17727 51 17733 17730 52 17739 17736 51 + 17742 17736 51 17742 17739 52 17748 17745 51 17751 + 17745 51 17751 17748 52 17757 17754 51 17760 17754 + 51 17760 17757 52 17766 17763 51 17769 17763 51 + 17769 17766 52 17775 17772 51 17778 17772 51 17778 + 17775 52 17784 17781 51 17787 17781 51 17787 17784 + 52 17793 17790 51 17796 17790 51 17796 17793 52 + 17802 17799 51 17805 17799 51 17805 17802 52 17811 + 17808 51 17814 17808 51 17814 17811 52 17820 17817 + 51 17823 17817 51 17823 17820 52 17829 17826 51 + 17832 17826 51 17832 17829 52 17838 17835 51 17841 + 17835 51 17841 17838 52 17847 17844 51 17850 17844 + 51 17850 17847 52 17856 17853 51 17859 17853 51 + 17859 17856 52 17865 17862 51 17868 17862 51 17868 + 17865 52 17874 17871 51 17877 17871 51 17877 17874 + 52 17883 17880 51 17886 17880 51 17886 17883 52 + 17892 17889 51 17895 17889 51 17895 17892 52 17901 + 17898 51 17904 17898 51 17904 17901 52 17910 17907 + 51 17913 17907 51 17913 17910 52 17919 17916 51 + 17922 17916 51 17922 17919 52 17928 17925 51 17931 + 17925 51 17931 17928 52 17937 17934 51 17940 17934 + 51 17940 17937 52 17946 17943 51 17949 17943 51 + 17949 17946 52 17955 17952 51 17958 17952 51 17958 + 17955 52 17964 17961 51 17967 17961 51 17967 17964 + 52 17973 17970 51 17976 17970 51 17976 17973 52 + 17982 17979 51 17985 17979 51 17985 17982 52 17991 + 17988 51 17994 17988 51 17994 17991 52 18000 17997 + 51 18003 17997 51 18003 18000 52 18009 18006 51 + 18012 18006 51 18012 18009 52 18018 18015 51 18021 + 18015 51 18021 18018 52 18027 18024 51 18030 18024 + 51 18030 18027 52 18036 18033 51 18039 18033 51 + 18039 18036 52 18045 18042 51 18048 18042 51 18048 + 18045 52 18054 18051 51 18057 18051 51 18057 18054 + 52 18063 18060 51 18066 18060 51 18066 18063 52 + 18072 18069 51 18075 18069 51 18075 18072 52 18081 + 18078 51 18084 18078 51 18084 18081 52 18090 18087 + 51 18093 18087 51 18093 18090 52 18099 18096 51 + 18102 18096 51 18102 18099 52 18108 18105 51 18111 + 18105 51 18111 18108 52 18117 18114 51 18120 18114 + 51 18120 18117 52 18126 18123 51 18129 18123 51 + 18129 18126 52 18135 18132 51 18138 18132 51 18138 + 18135 52 18144 18141 51 18147 18141 51 18147 18144 + 52 18153 18150 51 18156 18150 51 18156 18153 52 + 18162 18159 51 18165 18159 51 18165 18162 52 18171 + 18168 51 18174 18168 51 18174 18171 52 18180 18177 + 51 18183 18177 51 18183 18180 52 18189 18186 51 + 18192 18186 51 18192 18189 52 18198 18195 51 18201 + 18195 51 18201 18198 52 18207 18204 51 18210 18204 + 51 18210 18207 52 18216 18213 51 18219 18213 51 + 18219 18216 52 18225 18222 51 18228 18222 51 18228 + 18225 52 18234 18231 51 18237 18231 51 18237 18234 + 52 18243 18240 51 18246 18240 51 18246 18243 52 + 18252 18249 51 18255 18249 51 18255 18252 52 18261 + 18258 51 18264 18258 51 18264 18261 52 18270 18267 + 51 18273 18267 51 18273 18270 52 18279 18276 51 + 18282 18276 51 18282 18279 52 18288 18285 51 18291 + 18285 51 18291 18288 52 18297 18294 51 18300 18294 + 51 18300 18297 52 18306 18303 51 18309 18303 51 + 18309 18306 52 18315 18312 51 18318 18312 51 18318 + 18315 52 18324 18321 51 18327 18321 51 18327 18324 + 52 18333 18330 51 18336 18330 51 18336 18333 52 + 18342 18339 51 18345 18339 51 18345 18342 52 18351 + 18348 51 18354 18348 51 18354 18351 52 18360 18357 + 51 18363 18357 51 18363 18360 52 18369 18366 51 + 18372 18366 51 18372 18369 52 18378 18375 51 18381 + 18375 51 18381 18378 52 18387 18384 51 18390 18384 + 51 18390 18387 52 18396 18393 51 18399 18393 51 + 18399 18396 52 18405 18402 51 18408 18402 51 18408 + 18405 52 18414 18411 51 18417 18411 51 18417 18414 + 52 18423 18420 51 18426 18420 51 18426 18423 52 + 18432 18429 51 18435 18429 51 18435 18432 52 18441 + 18438 51 18444 18438 51 18444 18441 52 18450 18447 + 51 18453 18447 51 18453 18450 52 18459 18456 51 + 18462 18456 51 18462 18459 52 18468 18465 51 18471 + 18465 51 18471 18468 52 18477 18474 51 18480 18474 + 51 18480 18477 52 18486 18483 51 18489 18483 51 + 18489 18486 52 18495 18492 51 18498 18492 51 18498 + 18495 52 18504 18501 51 18507 18501 51 18507 18504 + 52 18513 18510 51 18516 18510 51 18516 18513 52 + 18522 18519 51 18525 18519 51 18525 18522 52 18531 + 18528 51 18534 18528 51 18534 18531 52 18540 18537 + 51 18543 18537 51 18543 18540 52 18549 18546 51 + 18552 18546 51 18552 18549 52 18558 18555 51 18561 + 18555 51 18561 18558 52 18567 18564 51 18570 18564 + 51 18570 18567 52 18576 18573 51 18579 18573 51 + 18579 18576 52 18585 18582 51 18588 18582 51 18588 + 18585 52 18594 18591 51 18597 18591 51 18597 18594 + 52 18603 18600 51 18606 18600 51 18606 18603 52 + 18612 18609 51 18615 18609 51 18615 18612 52 18621 + 18618 51 18624 18618 51 18624 18621 52 18630 18627 + 51 18633 18627 51 18633 18630 52 18639 18636 51 + 18642 18636 51 18642 18639 52 18648 18645 51 18651 + 18645 51 18651 18648 52 18657 18654 51 18660 18654 + 51 18660 18657 52 18666 18663 51 18669 18663 51 + 18669 18666 52 18675 18672 51 18678 18672 51 18678 + 18675 52 18684 18681 51 18687 18681 51 18687 18684 + 52 18693 18690 51 18696 18690 51 18696 18693 52 + 18702 18699 51 18705 18699 51 18705 18702 52 18711 + 18708 51 18714 18708 51 18714 18711 52 18720 18717 + 51 18723 18717 51 18723 18720 52 18729 18726 51 + 18732 18726 51 18732 18729 52 18738 18735 51 18741 + 18735 51 18741 18738 52 18747 18744 51 18750 18744 + 51 18750 18747 52 18756 18753 51 18759 18753 51 + 18759 18756 52 18765 18762 51 18768 18762 51 18768 + 18765 52 18774 18771 51 18777 18771 51 18777 18774 + 52 18783 18780 51 18786 18780 51 18786 18783 52 + 18792 18789 51 18795 18789 51 18795 18792 52 18801 + 18798 51 18804 18798 51 18804 18801 52 18810 18807 + 51 18813 18807 51 18813 18810 52 18819 18816 51 + 18822 18816 51 18822 18819 52 18828 18825 51 18831 + 18825 51 18831 18828 52 18837 18834 51 18840 18834 + 51 18840 18837 52 18846 18843 51 18849 18843 51 + 18849 18846 52 18855 18852 51 18858 18852 51 18858 + 18855 52 18864 18861 51 18867 18861 51 18867 18864 + 52 18873 18870 51 18876 18870 51 18876 18873 52 + 18882 18879 51 18885 18879 51 18885 18882 52 18891 + 18888 51 18894 18888 51 18894 18891 52 18900 18897 + 51 18903 18897 51 18903 18900 52 18909 18906 51 + 18912 18906 51 18912 18909 52 18918 18915 51 18921 + 18915 51 18921 18918 52 18927 18924 51 18930 18924 + 51 18930 18927 52 18936 18933 51 18939 18933 51 + 18939 18936 52 18945 18942 51 18948 18942 51 18948 + 18945 52 18954 18951 51 18957 18951 51 18957 18954 + 52 18963 18960 51 18966 18960 51 18966 18963 52 + 18972 18969 51 18975 18969 51 18975 18972 52 18981 + 18978 51 18984 18978 51 18984 18981 52 18990 18987 + 51 18993 18987 51 18993 18990 52 18999 18996 51 + 19002 18996 51 19002 18999 52 19008 19005 51 19011 + 19005 51 19011 19008 52 19017 19014 51 19020 19014 + 51 19020 19017 52 19026 19023 51 19029 19023 51 + 19029 19026 52 19035 19032 51 19038 19032 51 19038 + 19035 52 19044 19041 51 19047 19041 51 19047 19044 + 52 19053 19050 51 19056 19050 51 19056 19053 52 + 19062 19059 51 19065 19059 51 19065 19062 52 19071 + 19068 51 19074 19068 51 19074 19071 52 19080 19077 + 51 19083 19077 51 19083 19080 52 19089 19086 51 + 19092 19086 51 19092 19089 52 19098 19095 51 19101 + 19095 51 19101 19098 52 19107 19104 51 19110 19104 + 51 19110 19107 52 19116 19113 51 19119 19113 51 + 19119 19116 52 19125 19122 51 19128 19122 51 19128 + 19125 52 19134 19131 51 19137 19131 51 19137 19134 + 52 19143 19140 51 19146 19140 51 19146 19143 52 + 19152 19149 51 19155 19149 51 19155 19152 52 19161 + 19158 51 19164 19158 51 19164 19161 52 19170 19167 + 51 19173 19167 51 19173 19170 52 19179 19176 51 + 19182 19176 51 19182 19179 52 19188 19185 51 19191 + 19185 51 19191 19188 52 19197 19194 51 19200 19194 + 51 19200 19197 52 19206 19203 51 19209 19203 51 + 19209 19206 52 19215 19212 51 19218 19212 51 19218 + 19215 52 19224 19221 51 19227 19221 51 19227 19224 + 52 19233 19230 51 19236 19230 51 19236 19233 52 + 19242 19239 51 19245 19239 51 19245 19242 52 19251 + 19248 51 19254 19248 51 19254 19251 52 19260 19257 + 51 19263 19257 51 19263 19260 52 19269 19266 51 + 19272 19266 51 19272 19269 52 19278 19275 51 19281 + 19275 51 19281 19278 52 19287 19284 51 19290 19284 + 51 19290 19287 52 19296 19293 51 19299 19293 51 + 19299 19296 52 19305 19302 51 19308 19302 51 19308 + 19305 52 19314 19311 51 19317 19311 51 19317 19314 + 52 19323 19320 51 19326 19320 51 19326 19323 52 + 19332 19329 51 19335 19329 51 19335 19332 52 19341 + 19338 51 19344 19338 51 19344 19341 52 19350 19347 + 51 19353 19347 51 19353 19350 52 19359 19356 51 + 19362 19356 51 19362 19359 52 19368 19365 51 19371 + 19365 51 19371 19368 52 19377 19374 51 19380 19374 + 51 19380 19377 52 19386 19383 51 19389 19383 51 + 19389 19386 52 19395 19392 51 19398 19392 51 19398 + 19395 52 19404 19401 51 19407 19401 51 19407 19404 + 52 19413 19410 51 19416 19410 51 19416 19413 52 + 19422 19419 51 19425 19419 51 19425 19422 52 19431 + 19428 51 19434 19428 51 19434 19431 52 19440 19437 + 51 19443 19437 51 19443 19440 52 19449 19446 51 + 19452 19446 51 19452 19449 52 19458 19455 51 19461 + 19455 51 19461 19458 52 19467 19464 51 19470 19464 + 51 19470 19467 52 19476 19473 51 19479 19473 51 + 19479 19476 52 19485 19482 51 19488 19482 51 19488 + 19485 52 19494 19491 51 19497 19491 51 19497 19494 + 52 19503 19500 51 19506 19500 51 19506 19503 52 + 19512 19509 51 19515 19509 51 19515 19512 52 19521 + 19518 51 19524 19518 51 19524 19521 52 19530 19527 + 51 19533 19527 51 19533 19530 52 19539 19536 51 + 19542 19536 51 19542 19539 52 19548 19545 51 19551 + 19545 51 19551 19548 52 19557 19554 51 19560 19554 + 51 19560 19557 52 19566 19563 51 19569 19563 51 + 19569 19566 52 19575 19572 51 19578 19572 51 19578 + 19575 52 19584 19581 51 19587 19581 51 19587 19584 + 52 19593 19590 51 19596 19590 51 19596 19593 52 + 19602 19599 51 19605 19599 51 19605 19602 52 19611 + 19608 51 19614 19608 51 19614 19611 52 19620 19617 + 51 19623 19617 51 19623 19620 52 19629 19626 51 + 19632 19626 51 19632 19629 52 19638 19635 51 19641 + 19635 51 19641 19638 52 19647 19644 51 19650 19644 + 51 19650 19647 52 19656 19653 51 19659 19653 51 + 19659 19656 52 19665 19662 51 19668 19662 51 19668 + 19665 52 19674 19671 51 19677 19671 51 19677 19674 + 52 19683 19680 51 19686 19680 51 19686 19683 52 + 19692 19689 51 19695 19689 51 19695 19692 52 19701 + 19698 51 19704 19698 51 19704 19701 52 19710 19707 + 51 19713 19707 51 19713 19710 52 19719 19716 51 + 19722 19716 51 19722 19719 52 19728 19725 51 19731 + 19725 51 19731 19728 52 19737 19734 51 19740 19734 + 51 19740 19737 52 19746 19743 51 19749 19743 51 + 19749 19746 52 19755 19752 51 19758 19752 51 19758 + 19755 52 19764 19761 51 19767 19761 51 19767 19764 + 52 19773 19770 51 19776 19770 51 19776 19773 52 + 19782 19779 51 19785 19779 51 19785 19782 52 19791 + 19788 51 19794 19788 51 19794 19791 52 19800 19797 + 51 19803 19797 51 19803 19800 52 19809 19806 51 + 19812 19806 51 19812 19809 52 19818 19815 51 19821 + 19815 51 19821 19818 52 19827 19824 51 19830 19824 + 51 19830 19827 52 19836 19833 51 19839 19833 51 + 19839 19836 52 19845 19842 51 19848 19842 51 19848 + 19845 52 19854 19851 51 19857 19851 51 19857 19854 + 52 19863 19860 51 19866 19860 51 19866 19863 52 + 19872 19869 51 19875 19869 51 19875 19872 52 19881 + 19878 51 19884 19878 51 19884 19881 52 19890 19887 + 51 19893 19887 51 19893 19890 52 19899 19896 51 + 19902 19896 51 19902 19899 52 19908 19905 51 19911 + 19905 51 19911 19908 52 19917 19914 51 19920 19914 + 51 19920 19917 52 19926 19923 51 19929 19923 51 + 19929 19926 52 19935 19932 51 19938 19932 51 19938 + 19935 52 19944 19941 51 19947 19941 51 19947 19944 + 52 19953 19950 51 19956 19950 51 19956 19953 52 + 19962 19959 51 19965 19959 51 19965 19962 52 19971 + 19968 51 19974 19968 51 19974 19971 52 19980 19977 + 51 19983 19977 51 19983 19980 52 19989 19986 51 + 19992 19986 51 19992 19989 52 19998 19995 51 20001 + 19995 51 20001 19998 52 20007 20004 51 20010 20004 + 51 20010 20007 52 20016 20013 51 20019 20013 51 + 20019 20016 52 20025 20022 51 20028 20022 51 20028 + 20025 52 20034 20031 51 20037 20031 51 20037 20034 + 52 20043 20040 51 20046 20040 51 20046 20043 52 + 20052 20049 51 20055 20049 51 20055 20052 52 20061 + 20058 51 20064 20058 51 20064 20061 52 20070 20067 + 51 20073 20067 51 20073 20070 52 20079 20076 51 + 20082 20076 51 20082 20079 52 20088 20085 51 20091 + 20085 51 20091 20088 52 20097 20094 51 20100 20094 + 51 20100 20097 52 20106 20103 51 20109 20103 51 + 20109 20106 52 20115 20112 51 20118 20112 51 20118 + 20115 52 20124 20121 51 20127 20121 51 20127 20124 + 52 20133 20130 51 20136 20130 51 20136 20133 52 + 20142 20139 51 20145 20139 51 20145 20142 52 20151 + 20148 51 20154 20148 51 20154 20151 52 20160 20157 + 51 20163 20157 51 20163 20160 52 20169 20166 51 + 20172 20166 51 20172 20169 52 20178 20175 51 20181 + 20175 51 20181 20178 52 20187 20184 51 20190 20184 + 51 20190 20187 52 20196 20193 51 20199 20193 51 + 20199 20196 52 20205 20202 51 20208 20202 51 20208 + 20205 52 20214 20211 51 20217 20211 51 20217 20214 + 52 20223 20220 51 20226 20220 51 20226 20223 52 + 20232 20229 51 20235 20229 51 20235 20232 52 20241 + 20238 51 20244 20238 51 20244 20241 52 20250 20247 + 51 20253 20247 51 20253 20250 52 20259 20256 51 + 20262 20256 51 20262 20259 52 20268 20265 51 20271 + 20265 51 20271 20268 52 20277 20274 51 20280 20274 + 51 20280 20277 52 20286 20283 51 20289 20283 51 + 20289 20286 52 20295 20292 51 20298 20292 51 20298 + 20295 52 20304 20301 51 20307 20301 51 20307 20304 + 52 20313 20310 51 20316 20310 51 20316 20313 52 + 20322 20319 51 20325 20319 51 20325 20322 52 20331 + 20328 51 20334 20328 51 20334 20331 52 20340 20337 + 51 20343 20337 51 20343 20340 52 20349 20346 51 + 20352 20346 51 20352 20349 52 20358 20355 51 20361 + 20355 51 20361 20358 52 20367 20364 51 20370 20364 + 51 20370 20367 52 20376 20373 51 20379 20373 51 + 20379 20376 52 20385 20382 51 20388 20382 51 20388 + 20385 52 20394 20391 51 20397 20391 51 20397 20394 + 52 20403 20400 51 20406 20400 51 20406 20403 52 + 20412 20409 51 20415 20409 51 20415 20412 52 20421 + 20418 51 20424 20418 51 20424 20421 52 20430 20427 + 51 20433 20427 51 20433 20430 52 20439 20436 51 + 20442 20436 51 20442 20439 52 20448 20445 51 20451 + 20445 51 20451 20448 52 20457 20454 51 20460 20454 + 51 20460 20457 52 20466 20463 51 20469 20463 51 + 20469 20466 52 20475 20472 51 20478 20472 51 20478 + 20475 52 20484 20481 51 20487 20481 51 20487 20484 + 52 20493 20490 51 20496 20490 51 20496 20493 52 + 20502 20499 51 20505 20499 51 20505 20502 52 20511 + 20508 51 20514 20508 51 20514 20511 52 20520 20517 + 51 20523 20517 51 20523 20520 52 20529 20526 51 + 20532 20526 51 20532 20529 52 20538 20535 51 20541 + 20535 51 20541 20538 52 20547 20544 51 20550 20544 + 51 20550 20547 52 20556 20553 51 20559 20553 51 + 20559 20556 52 20565 20562 51 20568 20562 51 20568 + 20565 52 20574 20571 51 20577 20571 51 20577 20574 + 52 20583 20580 51 20586 20580 51 20586 20583 52 + 20592 20589 51 20595 20589 51 20595 20592 52 20601 + 20598 51 20604 20598 51 20604 20601 52 20610 20607 + 51 20613 20607 51 20613 20610 52 20619 20616 51 + 20622 20616 51 20622 20619 52 20628 20625 51 20631 + 20625 51 20631 20628 52 20637 20634 51 20640 20634 + 51 20640 20637 52 20646 20643 51 20649 20643 51 + 20649 20646 52 20655 20652 51 20658 20652 51 20658 + 20655 52 20664 20661 51 20667 20661 51 20667 20664 + 52 20673 20670 51 20676 20670 51 20676 20673 52 + 20682 20679 51 20685 20679 51 20685 20682 52 20691 + 20688 51 20694 20688 51 20694 20691 52 20700 20697 + 51 20703 20697 51 20703 20700 52 20709 20706 51 + 20712 20706 51 20712 20709 52 20718 20715 51 20721 + 20715 51 20721 20718 52 20727 20724 51 20730 20724 + 51 20730 20727 52 20736 20733 51 20739 20733 51 + 20739 20736 52 20745 20742 51 20748 20742 51 20748 + 20745 52 20754 20751 51 20757 20751 51 20757 20754 + 52 20763 20760 51 20766 20760 51 20766 20763 52 + 20772 20769 51 20775 20769 51 20775 20772 52 20781 + 20778 51 20784 20778 51 20784 20781 52 20790 20787 + 51 20793 20787 51 20793 20790 52 20799 20796 51 + 20802 20796 51 20802 20799 52 20808 20805 51 20811 + 20805 51 20811 20808 52 20817 20814 51 20820 20814 + 51 20820 20817 52 20826 20823 51 20829 20823 51 + 20829 20826 52 20835 20832 51 20838 20832 51 20838 + 20835 52 20844 20841 51 20847 20841 51 20847 20844 + 52 20853 20850 51 20856 20850 51 20856 20853 52 + 20862 20859 51 20865 20859 51 20865 20862 52 20871 + 20868 51 20874 20868 51 20874 20871 52 20880 20877 + 51 20883 20877 51 20883 20880 52 20889 20886 51 + 20892 20886 51 20892 20889 52 20898 20895 51 20901 + 20895 51 20901 20898 52 20907 20904 51 20910 20904 + 51 20910 20907 52 20916 20913 51 20919 20913 51 + 20919 20916 52 20925 20922 51 20928 20922 51 20928 + 20925 52 20934 20931 51 20937 20931 51 20937 20934 + 52 20943 20940 51 20946 20940 51 20946 20943 52 + 20952 20949 51 20955 20949 51 20955 20952 52 20961 + 20958 51 20964 20958 51 20964 20961 52 20970 20967 + 51 20973 20967 51 20973 20970 52 20979 20976 51 + 20982 20976 51 20982 20979 52 20988 20985 51 20991 + 20985 51 20991 20988 52 20997 20994 51 21000 20994 + 51 21000 20997 52 21006 21003 51 21009 21003 51 + 21009 21006 52 21015 21012 51 21018 21012 51 21018 + 21015 52 21024 21021 51 21027 21021 51 21027 21024 + 52 21033 21030 51 21036 21030 51 21036 21033 52 + 21042 21039 51 21045 21039 51 21045 21042 52 21051 + 21048 51 21054 21048 51 21054 21051 52 21060 21057 + 51 21063 21057 51 21063 21060 52 21069 21066 51 + 21072 21066 51 21072 21069 52 21078 21075 51 21081 + 21075 51 21081 21078 52 21087 21084 51 21090 21084 + 51 21090 21087 52 21096 21093 51 21099 21093 51 + 21099 21096 52 21105 21102 51 21108 21102 51 21108 + 21105 52 21114 21111 51 21117 21111 51 21117 21114 + 52 21123 21120 51 21126 21120 51 21126 21123 52 + 21132 21129 51 21135 21129 51 21135 21132 52 21141 + 21138 51 21144 21138 51 21144 21141 52 21150 21147 + 51 21153 21147 51 21153 21150 52 21159 21156 51 + 21162 21156 51 21162 21159 52 21168 21165 51 21171 + 21165 51 21171 21168 52 21177 21174 51 21180 21174 + 51 21180 21177 52 21186 21183 51 21189 21183 51 + 21189 21186 52 21195 21192 51 21198 21192 51 21198 + 21195 52 21204 21201 51 21207 21201 51 21207 21204 + 52 21213 21210 51 21216 21210 51 21216 21213 52 + 21222 21219 51 21225 21219 51 21225 21222 52 21231 + 21228 51 21234 21228 51 21234 21231 52 21240 21237 + 51 21243 21237 51 21243 21240 52 21249 21246 51 + 21252 21246 51 21252 21249 52 21258 21255 51 21261 + 21255 51 21261 21258 52 21267 21264 51 21270 21264 + 51 21270 21267 52 21276 21273 51 21279 21273 51 + 21279 21276 52 21285 21282 51 21288 21282 51 21288 + 21285 52 21294 21291 51 21297 21291 51 21297 21294 + 52 21303 21300 51 21306 21300 51 21306 21303 52 + 21312 21309 51 21315 21309 51 21315 21312 52 21321 + 21318 51 21324 21318 51 21324 21321 52 21330 21327 + 51 21333 21327 51 21333 21330 52 21339 21336 51 + 21342 21336 51 21342 21339 52 21348 21345 51 21351 + 21345 51 21351 21348 52 21357 21354 51 21360 21354 + 51 21360 21357 52 21366 21363 51 21369 21363 51 + 21369 21366 52 21375 21372 51 21378 21372 51 21378 + 21375 52 21384 21381 51 21387 21381 51 21387 21384 + 52 21393 21390 51 21396 21390 51 21396 21393 52 + 21402 21399 51 21405 21399 51 21405 21402 52 21411 + 21408 51 21414 21408 51 21414 21411 52 21420 21417 + 51 21423 21417 51 21423 21420 52 21429 21426 51 + 21432 21426 51 21432 21429 52 21438 21435 51 21441 + 21435 51 21441 21438 52 21447 21444 51 21450 21444 + 51 21450 21447 52 21456 21453 51 21459 21453 51 + 21459 21456 52 21465 21462 51 21468 21462 51 21468 + 21465 52 21474 21471 51 21477 21471 51 21477 21474 + 52 21483 21480 51 21486 21480 51 21486 21483 52 + 21492 21489 51 21495 21489 51 21495 21492 52 21501 + 21498 51 21504 21498 51 21504 21501 52 21510 21507 + 51 21513 21507 51 21513 21510 52 21519 21516 51 + 21522 21516 51 21522 21519 52 21528 21525 51 21531 + 21525 51 21531 21528 52 21537 21534 51 21540 21534 + 51 21540 21537 52 21546 21543 51 21549 21543 51 + 21549 21546 52 21555 21552 51 21558 21552 51 21558 + 21555 52 21564 21561 51 21567 21561 51 21567 21564 + 52 21573 21570 51 21576 21570 51 21576 21573 52 + 21582 21579 51 21585 21579 51 21585 21582 52 21591 + 21588 51 21594 21588 51 21594 21591 52 21600 21597 + 51 21603 21597 51 21603 21600 52 21609 21606 51 + 21612 21606 51 21612 21609 52 21618 21615 51 21621 + 21615 51 21621 21618 52 21627 21624 51 21630 21624 + 51 21630 21627 52 21636 21633 51 21639 21633 51 + 21639 21636 52 21645 21642 51 21648 21642 51 21648 + 21645 52 21654 21651 51 21657 21651 51 21657 21654 + 52 21663 21660 51 21666 21660 51 21666 21663 52 + 21672 21669 51 21675 21669 51 21675 21672 52 21681 + 21678 51 21684 21678 51 21684 21681 52 21690 21687 + 51 21693 21687 51 21693 21690 52 21699 21696 51 + 21702 21696 51 21702 21699 52 21708 21705 51 21711 + 21705 51 21711 21708 52 21717 21714 51 21720 21714 + 51 21720 21717 52 21726 21723 51 21729 21723 51 + 21729 21726 52 21735 21732 51 21738 21732 51 21738 + 21735 52 21744 21741 51 21747 21741 51 21747 21744 + 52 21753 21750 51 21756 21750 51 21756 21753 52 + 21762 21759 51 21765 21759 51 21765 21762 52 21771 + 21768 51 21774 21768 51 21774 21771 52 21780 21777 + 51 21783 21777 51 21783 21780 52 21789 21786 51 + 21792 21786 51 21792 21789 52 21798 21795 51 21801 + 21795 51 21801 21798 52 21807 21804 51 21810 21804 + 51 21810 21807 52 21816 21813 51 21819 21813 51 + 21819 21816 52 21825 21822 51 21828 21822 51 21828 + 21825 52 21834 21831 51 21837 21831 51 21837 21834 + 52 21843 21840 51 21846 21840 51 21846 21843 52 + 21852 21849 51 21855 21849 51 21855 21852 52 21861 + 21858 51 21864 21858 51 21864 21861 52 21870 21867 + 51 21873 21867 51 21873 21870 52 21879 21876 51 + 21882 21876 51 21882 21879 52 21888 21885 51 21891 + 21885 51 21891 21888 52 21897 21894 51 21900 21894 + 51 21900 21897 52 21906 21903 51 21909 21903 51 + 21909 21906 52 21915 21912 51 21918 21912 51 21918 + 21915 52 21924 21921 51 21927 21921 51 21927 21924 + 52 21933 21930 51 21936 21930 51 21936 21933 52 + 21942 21939 51 21945 21939 51 21945 21942 52 21951 + 21948 51 21954 21948 51 21954 21951 52 21960 21957 + 51 21963 21957 51 21963 21960 52 21969 21966 51 + 21972 21966 51 21972 21969 52 21978 21975 51 21981 + 21975 51 21981 21978 52 21987 21984 51 21990 21984 + 51 21990 21987 52 21996 21993 51 21999 21993 51 + 21999 21996 52 22005 22002 51 22008 22002 51 22008 + 22005 52 22014 22011 51 22017 22011 51 22017 22014 + 52 22023 22020 51 22026 22020 51 22026 22023 52 + 22032 22029 51 22035 22029 51 22035 22032 52 22041 + 22038 51 22044 22038 51 22044 22041 52 22050 22047 + 51 22053 22047 51 22053 22050 52 22059 22056 51 + 22062 22056 51 22062 22059 52 22068 22065 51 22071 + 22065 51 22071 22068 52 22077 22074 51 22080 22074 + 51 22080 22077 52 22086 22083 51 22089 22083 51 + 22089 22086 52 22095 22092 51 22098 22092 51 22098 + 22095 52 22104 22101 51 22107 22101 51 22107 22104 + 52 22113 22110 51 22116 22110 51 22116 22113 52 + 22122 22119 51 22125 22119 51 22125 22122 52 22131 + 22128 51 22134 22128 51 22134 22131 52 22140 22137 + 51 22143 22137 51 22143 22140 52 22149 22146 51 + 22152 22146 51 22152 22149 52 22158 22155 51 22161 + 22155 51 22161 22158 52 22167 22164 51 22170 22164 + 51 22170 22167 52 22176 22173 51 22179 22173 51 + 22179 22176 52 22185 22182 51 22188 22182 51 22188 + 22185 52 22194 22191 51 22197 22191 51 22197 22194 + 52 22203 22200 51 22206 22200 51 22206 22203 52 + 22212 22209 51 22215 22209 51 22215 22212 52 22221 + 22218 51 22224 22218 51 22224 22221 52 22230 22227 + 51 22233 22227 51 22233 22230 52 22239 22236 51 + 22242 22236 51 22242 22239 52 22248 22245 51 22251 + 22245 51 22251 22248 52 22257 22254 51 22260 22254 + 51 22260 22257 52 22266 22263 51 22269 22263 51 + 22269 22266 52 22275 22272 51 22278 22272 51 22278 + 22275 52 22284 22281 51 22287 22281 51 22287 22284 + 52 22293 22290 51 22296 22290 51 22296 22293 52 + 22302 22299 51 22305 22299 51 22305 22302 52 22311 + 22308 51 22314 22308 51 22314 22311 52 22320 22317 + 51 22323 22317 51 22323 22320 52 22329 22326 51 + 22332 22326 51 22332 22329 52 22338 22335 51 22341 + 22335 51 22341 22338 52 22347 22344 51 22350 22344 + 51 22350 22347 52 22356 22353 51 22359 22353 51 + 22359 22356 52 22365 22362 51 22368 22362 51 22368 + 22365 52 22374 22371 51 22377 22371 51 22377 22374 + 52 22383 22380 51 22386 22380 51 22386 22383 52 + 22392 22389 51 22395 22389 51 22395 22392 52 22401 + 22398 51 22404 22398 51 22404 22401 52 22410 22407 + 51 22413 22407 51 22413 22410 52 22419 22416 51 + 22422 22416 51 22422 22419 52 22428 22425 51 22431 + 22425 51 22431 22428 52 22437 22434 51 22440 22434 + 51 22440 22437 52 22446 22443 51 22449 22443 51 + 22449 22446 52 22455 22452 51 22458 22452 51 22458 + 22455 52 22464 22461 51 22467 22461 51 22467 22464 + 52 22473 22470 51 22476 22470 51 22476 22473 52 + 22482 22479 51 22485 22479 51 22485 22482 52 22491 + 22488 51 22494 22488 51 22494 22491 52 22500 22497 + 51 22503 22497 51 22503 22500 52 22509 22506 51 + 22512 22506 51 22512 22509 52 22518 22515 51 22521 + 22515 51 22521 22518 52 22527 22524 51 22530 22524 + 51 22530 22527 52 22536 22533 51 22539 22533 51 + 22539 22536 52 22545 22542 51 22548 22542 51 22548 + 22545 52 22554 22551 51 22557 22551 51 22557 22554 + 52 22563 22560 51 22566 22560 51 22566 22563 52 + 22572 22569 51 22575 22569 51 22575 22572 52 22581 + 22578 51 22584 22578 51 22584 22581 52 22590 22587 + 51 22593 22587 51 22593 22590 52 22599 22596 51 + 22602 22596 51 22602 22599 52 22608 22605 51 22611 + 22605 51 22611 22608 52 22617 22614 51 22620 22614 + 51 22620 22617 52 22626 22623 51 22629 22623 51 + 22629 22626 52 22635 22632 51 22638 22632 51 22638 + 22635 52 22644 22641 51 22647 22641 51 22647 22644 + 52 22653 22650 51 22656 22650 51 22656 22653 52 + 22662 22659 51 22665 22659 51 22665 22662 52 22671 + 22668 51 22674 22668 51 22674 22671 52 22680 22677 + 51 22683 22677 51 22683 22680 52 22689 22686 51 + 22692 22686 51 22692 22689 52 22698 22695 51 22701 + 22695 51 22701 22698 52 22707 22704 51 22710 22704 + 51 22710 22707 52 22716 22713 51 22719 22713 51 + 22719 22716 52 22725 22722 51 22728 22722 51 22728 + 22725 52 22734 22731 51 22737 22731 51 22737 22734 + 52 22743 22740 51 22746 22740 51 22746 22743 52 + 22752 22749 51 22755 22749 51 22755 22752 52 22761 + 22758 51 22764 22758 51 22764 22761 52 22770 22767 + 51 22773 22767 51 22773 22770 52 22779 22776 51 + 22782 22776 51 22782 22779 52 22788 22785 51 22791 + 22785 51 22791 22788 52 22797 22794 51 22800 22794 + 51 22800 22797 52 22806 22803 51 22809 22803 51 + 22809 22806 52 22815 22812 51 22818 22812 51 22818 + 22815 52 22824 22821 51 22827 22821 51 22827 22824 + 52 22833 22830 51 22836 22830 51 22836 22833 52 + 22842 22839 51 22845 22839 51 22845 22842 52 22851 + 22848 51 22854 22848 51 22854 22851 52 22860 22857 + 51 22863 22857 51 22863 22860 52 22869 22866 51 + 22872 22866 51 22872 22869 52 22878 22875 51 22881 + 22875 51 22881 22878 52 22887 22884 51 22890 22884 + 51 22890 22887 52 22896 22893 51 22899 22893 51 + 22899 22896 52 22905 22902 51 22908 22902 51 22908 + 22905 52 22914 22911 51 22917 22911 51 22917 22914 + 52 22923 22920 51 22926 22920 51 22926 22923 52 + 22932 22929 51 22935 22929 51 22935 22932 52 22941 + 22938 51 22944 22938 51 22944 22941 52 22950 22947 + 51 22953 22947 51 22953 22950 52 22959 22956 51 + 22962 22956 51 22962 22959 52 22968 22965 51 22971 + 22965 51 22971 22968 52 22977 22974 51 22980 22974 + 51 22980 22977 52 22986 22983 51 22989 22983 51 + 22989 22986 52 22995 22992 51 22998 22992 51 22998 + 22995 52 23004 23001 51 23007 23001 51 23007 23004 + 52 23013 23010 51 23016 23010 51 23016 23013 52 + 23022 23019 51 23025 23019 51 23025 23022 52 23031 + 23028 51 23034 23028 51 23034 23031 52 23040 23037 + 51 23043 23037 51 23043 23040 52 23049 23046 51 + 23052 23046 51 23052 23049 52 23058 23055 51 23061 + 23055 51 23061 23058 52 23067 23064 51 23070 23064 + 51 23070 23067 52 23076 23073 51 23079 23073 51 + 23079 23076 52 23085 23082 51 23088 23082 51 23088 + 23085 52 23094 23091 51 23097 23091 51 23097 23094 + 52 23103 23100 51 23106 23100 51 23106 23103 52 + 23112 23109 51 23115 23109 51 23115 23112 52 23121 + 23118 51 23124 23118 51 23124 23121 52 23130 23127 + 51 23133 23127 51 23133 23130 52 23139 23136 51 + 23142 23136 51 23142 23139 52 23148 23145 51 23151 + 23145 51 23151 23148 52 23157 23154 51 23160 23154 + 51 23160 23157 52 23166 23163 51 23169 23163 51 + 23169 23166 52 23175 23172 51 23178 23172 51 23178 + 23175 52 23184 23181 51 23187 23181 51 23187 23184 + 52 23193 23190 51 23196 23190 51 23196 23193 52 + 23202 23199 51 23205 23199 51 23205 23202 52 23211 + 23208 51 23214 23208 51 23214 23211 52 23220 23217 + 51 23223 23217 51 23223 23220 52 23229 23226 51 + 23232 23226 51 23232 23229 52 23238 23235 51 23241 + 23235 51 23241 23238 52 23247 23244 51 23250 23244 + 51 23250 23247 52 23256 23253 51 23259 23253 51 + 23259 23256 52 23265 23262 51 23268 23262 51 23268 + 23265 52 23274 23271 51 23277 23271 51 23277 23274 + 52 23283 23280 51 23286 23280 51 23286 23283 52 + 23292 23289 51 23295 23289 51 23295 23292 52 23301 + 23298 51 23304 23298 51 23304 23301 52 23310 23307 + 51 23313 23307 51 23313 23310 52 23319 23316 51 + 23322 23316 51 23322 23319 52 23328 23325 51 23331 + 23325 51 23331 23328 52 23337 23334 51 23340 23334 + 51 23340 23337 52 23346 23343 51 23349 23343 51 + 23349 23346 52 23355 23352 51 23358 23352 51 23358 + 23355 52 23364 23361 51 23367 23361 51 23367 23364 + 52 23373 23370 51 23376 23370 51 23376 23373 52 + 23382 23379 51 23385 23379 51 23385 23382 52 23391 + 23388 51 23394 23388 51 23394 23391 52 23400 23397 + 51 23403 23397 51 23403 23400 52 23409 23406 51 + 23412 23406 51 23412 23409 52 23418 23415 51 23421 + 23415 51 23421 23418 52 23427 23424 51 23430 23424 + 51 23430 23427 52 23436 23433 51 23439 23433 51 + 23439 23436 52 23445 23442 51 23448 23442 51 23448 + 23445 52 23454 23451 51 23457 23451 51 23457 23454 + 52 23463 23460 51 23466 23460 51 23466 23463 52 + 23472 23469 51 23475 23469 51 23475 23472 52 23481 + 23478 51 23484 23478 51 23484 23481 52 23490 23487 + 51 23493 23487 51 23493 23490 52 23499 23496 51 + 23502 23496 51 23502 23499 52 23508 23505 51 23511 + 23505 51 23511 23508 52 23517 23514 51 23520 23514 + 51 23520 23517 52 23526 23523 51 23529 23523 51 + 23529 23526 52 23535 23532 51 23538 23532 51 23538 + 23535 52 23544 23541 51 23547 23541 51 23547 23544 + 52 23553 23550 51 23556 23550 51 23556 23553 52 + 23562 23559 51 23565 23559 51 23565 23562 52 23571 + 23568 51 23574 23568 51 23574 23571 52 23580 23577 + 51 23583 23577 51 23583 23580 52 23589 23586 51 + 23592 23586 51 23592 23589 52 23598 23595 51 23601 + 23595 51 23601 23598 52 23607 23604 51 23610 23604 + 51 23610 23607 52 23616 23613 51 23619 23613 51 + 23619 23616 52 23625 23622 51 23628 23622 51 23628 + 23625 52 23634 23631 51 23637 23631 51 23637 23634 + 52 23643 23640 51 23646 23640 51 23646 23643 52 + 23652 23649 51 23655 23649 51 23655 23652 52 23661 + 23658 51 23664 23658 51 23664 23661 52 23670 23667 + 51 23673 23667 51 23673 23670 52 23679 23676 51 + 23682 23676 51 23682 23679 52 23688 23685 51 23691 + 23685 51 23691 23688 52 23697 23694 51 23700 23694 + 51 23700 23697 52 23706 23703 51 23709 23703 51 + 23709 23706 52 23715 23712 51 23718 23712 51 23718 + 23715 52 23724 23721 51 23727 23721 51 23727 23724 + 52 23733 23730 51 23736 23730 51 23736 23733 52 + 23742 23739 51 23745 23739 51 23745 23742 52 23751 + 23748 51 23754 23748 51 23754 23751 52 23760 23757 + 51 23763 23757 51 23763 23760 52 23769 23766 51 + 23772 23766 51 23772 23769 52 23778 23775 51 23781 + 23775 51 23781 23778 52 23787 23784 51 23790 23784 + 51 23790 23787 52 23796 23793 51 23799 23793 51 + 23799 23796 52 23805 23802 51 23808 23802 51 23808 + 23805 52 23814 23811 51 23817 23811 51 23817 23814 + 52 23823 23820 51 23826 23820 51 23826 23823 52 + 23832 23829 51 23835 23829 51 23835 23832 52 23841 + 23838 51 23844 23838 51 23844 23841 52 23850 23847 + 51 23853 23847 51 23853 23850 52 23859 23856 51 + 23862 23856 51 23862 23859 52 23868 23865 51 23871 + 23865 51 23871 23868 52 23877 23874 51 23880 23874 + 51 23880 23877 52 23886 23883 51 23889 23883 51 + 23889 23886 52 23895 23892 51 23898 23892 51 23898 + 23895 52 23904 23901 51 23907 23901 51 23907 23904 + 52 23913 23910 51 23916 23910 51 23916 23913 52 + 23922 23919 51 23925 23919 51 23925 23922 52 23931 + 23928 51 23934 23928 51 23934 23931 52 23940 23937 + 51 23943 23937 51 23943 23940 52 23949 23946 51 + 23952 23946 51 23952 23949 52 23958 23955 51 23961 + 23955 51 23961 23958 52 23967 23964 51 23970 23964 + 51 23970 23967 52 23976 23973 51 23979 23973 51 + 23979 23976 52 23985 23982 51 23988 23982 51 23988 + 23985 52 23994 23991 51 23997 23991 51 23997 23994 + 52 24003 24000 51 24006 24000 51 24006 24003 52 + 24012 24009 51 24015 24009 51 24015 24012 52 24021 + 24018 51 24024 24018 51 24024 24021 52 24030 24027 + 51 24033 24027 51 24033 24030 52 24039 24036 51 + 24042 24036 51 24042 24039 52 24048 24045 51 24051 + 24045 51 24051 24048 52 24057 24054 51 24060 24054 + 51 24060 24057 52 24066 24063 51 24069 24063 51 + 24069 24066 52 24075 24072 51 24078 24072 51 24078 + 24075 52 24084 24081 51 24087 24081 51 24087 24084 + 52 24093 24090 51 24096 24090 51 24096 24093 52 + 24102 24099 51 24105 24099 51 24105 24102 52 24111 + 24108 51 24114 24108 51 24114 24111 52 24120 24117 + 51 24123 24117 51 24123 24120 52 24129 24126 51 + 24132 24126 51 24132 24129 52 24138 24135 51 24141 + 24135 51 24141 24138 52 24147 24144 51 24150 24144 + 51 24150 24147 52 24156 24153 51 24159 24153 51 + 24159 24156 52 24165 24162 51 24168 24162 51 24168 + 24165 52 24174 24171 51 24177 24171 51 24177 24174 + 52 24183 24180 51 24186 24180 51 24186 24183 52 + 24192 24189 51 24195 24189 51 24195 24192 52 24201 + 24198 51 24204 24198 51 24204 24201 52 24210 24207 + 51 24213 24207 51 24213 24210 52 24219 24216 51 + 24222 24216 51 24222 24219 52 24228 24225 51 24231 + 24225 51 24231 24228 52 24237 24234 51 24240 24234 + 51 24240 24237 52 24246 24243 51 24249 24243 51 + 24249 24246 52 24255 24252 51 24258 24252 51 24258 + 24255 52 24264 24261 51 24267 24261 51 24267 24264 + 52 24273 24270 51 24276 24270 51 24276 24273 52 + 24282 24279 51 24285 24279 51 24285 24282 52 24291 + 24288 51 24294 24288 51 24294 24291 52 24300 24297 + 51 24303 24297 51 24303 24300 52 24309 24306 51 + 24312 24306 51 24312 24309 52 24318 24315 51 24321 + 24315 51 24321 24318 52 24327 24324 51 24330 24324 + 51 24330 24327 52 24336 24333 51 24339 24333 51 + 24339 24336 52 24345 24342 51 24348 24342 51 24348 + 24345 52 24354 24351 51 24357 24351 51 24357 24354 + 52 24363 24360 51 24366 24360 51 24366 24363 52 + 24372 24369 51 24375 24369 51 24375 24372 52 24381 + 24378 51 24384 24378 51 24384 24381 52 24390 24387 + 51 24393 24387 51 24393 24390 52 24399 24396 51 + 24402 24396 51 24402 24399 52 24408 24405 51 24411 + 24405 51 24411 24408 52 24417 24414 51 24420 24414 + 51 24420 24417 52 24426 24423 51 24429 24423 51 + 24429 24426 52 24435 24432 51 24438 24432 51 24438 + 24435 52 24444 24441 51 24447 24441 51 24447 24444 + 52 24453 24450 51 24456 24450 51 24456 24453 52 + 24462 24459 51 24465 24459 51 24465 24462 52 24471 + 24468 51 24474 24468 51 24474 24471 52 24480 24477 + 51 24483 24477 51 24483 24480 52 24489 24486 51 + 24492 24486 51 24492 24489 52 24498 24495 51 24501 + 24495 51 24501 24498 52 24507 24504 51 24510 24504 + 51 24510 24507 52 24516 24513 51 24519 24513 51 + 24519 24516 52 24525 24522 51 24528 24522 51 24528 + 24525 52 24534 24531 51 24537 24531 51 24537 24534 + 52 24543 24540 51 24546 24540 51 24546 24543 52 + 24552 24549 51 24555 24549 51 24555 24552 52 24561 + 24558 51 24564 24558 51 24564 24561 52 24570 24567 + 51 24573 24567 51 24573 24570 52 24579 24576 51 + 24582 24576 51 24582 24579 52 24588 24585 51 24591 + 24585 51 24591 24588 52 24597 24594 51 24600 24594 + 51 24600 24597 52 24606 24603 51 24609 24603 51 + 24609 24606 52 24615 24612 51 24618 24612 51 24618 + 24615 52 24624 24621 51 24627 24621 51 24627 24624 + 52 24633 24630 51 24636 24630 51 24636 24633 52 + 24642 24639 51 24645 24639 51 24645 24642 52 24651 + 24648 51 24654 24648 51 24654 24651 52 24660 24657 + 51 24663 24657 51 24663 24660 52 24669 24666 51 + 24672 24666 51 24672 24669 52 24678 24675 51 24681 + 24675 51 24681 24678 52 24687 24684 51 24690 24684 + 51 24690 24687 52 24696 24693 51 24699 24693 51 + 24699 24696 52 24705 24702 51 24708 24702 51 24708 + 24705 52 24714 24711 51 24717 24711 51 24717 24714 + 52 24723 24720 51 24726 24720 51 24726 24723 52 + 24732 24729 51 24735 24729 51 24735 24732 52 24741 + 24738 51 24744 24738 51 24744 24741 52 24750 24747 + 51 24753 24747 51 24753 24750 52 24759 24756 51 + 24762 24756 51 24762 24759 52 24768 24765 51 24771 + 24765 51 24771 24768 52 24777 24774 51 24780 24774 + 51 24780 24777 52 24786 24783 51 24789 24783 51 + 24789 24786 52 24795 24792 51 24798 24792 51 24798 + 24795 52 24804 24801 51 24807 24801 51 24807 24804 + 52 24813 24810 51 24816 24810 51 24816 24813 52 + 24822 24819 51 24825 24819 51 24825 24822 52 24831 + 24828 51 24834 24828 51 24834 24831 52 24840 24837 + 51 24843 24837 51 24843 24840 52 24849 24846 51 + 24852 24846 51 24852 24849 52 24858 24855 51 24861 + 24855 51 24861 24858 52 24867 24864 51 24870 24864 + 51 24870 24867 52 24876 24873 51 24879 24873 51 + 24879 24876 52 24885 24882 51 24888 24882 51 24888 + 24885 52 24894 24891 51 24897 24891 51 24897 24894 + 52 24903 24900 51 24906 24900 51 24906 24903 52 + 24912 24909 51 24915 24909 51 24915 24912 52 24921 + 24918 51 24924 24918 51 24924 24921 52 24930 24927 + 51 24933 24927 51 24933 24930 52 24939 24936 51 + 24942 24936 51 24942 24939 52 24948 24945 51 24951 + 24945 51 24951 24948 52 24957 24954 51 24960 24954 + 51 24960 24957 52 24966 24963 51 24969 24963 51 + 24969 24966 52 24975 24972 51 24978 24972 51 24978 + 24975 52 24984 24981 51 24987 24981 51 24987 24984 + 52 24993 24990 51 24996 24990 51 24996 24993 52 + 25002 24999 51 25005 24999 51 25005 25002 52 25011 + 25008 51 25014 25008 51 25014 25011 52 25020 25017 + 51 25023 25017 51 25023 25020 52 25029 25026 51 + 25032 25026 51 25032 25029 52 25038 25035 51 25041 + 25035 51 25041 25038 52 25047 25044 51 25050 25044 + 51 25050 25047 52 25056 25053 51 25059 25053 51 + 25059 25056 52 25065 25062 51 25068 25062 51 25068 + 25065 52 25074 25071 51 25077 25071 51 25077 25074 + 52 25083 25080 51 25086 25080 51 25086 25083 52 + 25092 25089 51 25095 25089 51 25095 25092 52 25101 + 25098 51 25104 25098 51 25104 25101 52 25110 25107 + 51 25113 25107 51 25113 25110 52 25119 25116 51 + 25122 25116 51 25122 25119 52 25128 25125 51 25131 + 25125 51 25131 25128 52 25137 25134 51 25140 25134 + 51 25140 25137 52 25146 25143 51 25149 25143 51 + 25149 25146 52 25155 25152 51 25158 25152 51 25158 + 25155 52 25164 25161 51 25167 25161 51 25167 25164 + 52 25173 25170 51 25176 25170 51 25176 25173 52 + 25182 25179 51 25185 25179 51 25185 25182 52 25191 + 25188 51 25194 25188 51 25194 25191 52 25200 25197 + 51 25203 25197 51 25203 25200 52 25209 25206 51 + 25212 25206 51 25212 25209 52 25218 25215 51 25221 + 25215 51 25221 25218 52 25227 25224 51 25230 25224 + 51 25230 25227 52 25236 25233 51 25239 25233 51 + 25239 25236 52 25245 25242 51 25248 25242 51 25248 + 25245 52 25254 25251 51 25257 25251 51 25257 25254 + 52 25263 25260 51 25266 25260 51 25266 25263 52 + 25272 25269 51 25275 25269 51 25275 25272 52 25281 + 25278 51 25284 25278 51 25284 25281 52 25290 25287 + 51 25293 25287 51 25293 25290 52 25299 25296 51 + 25302 25296 51 25302 25299 52 25308 25305 51 25311 + 25305 51 25311 25308 52 25317 25314 51 25320 25314 + 51 25320 25317 52 25326 25323 51 25329 25323 51 + 25329 25326 52 25335 25332 51 25338 25332 51 25338 + 25335 52 25344 25341 51 25347 25341 51 25347 25344 + 52 25353 25350 51 25356 25350 51 25356 25353 52 + 25362 25359 51 25365 25359 51 25365 25362 52 25371 + 25368 51 25374 25368 51 25374 25371 52 25380 25377 + 51 25383 25377 51 25383 25380 52 25389 25386 51 + 25392 25386 51 25392 25389 52 25398 25395 51 25401 + 25395 51 25401 25398 52 25407 25404 51 25410 25404 + 51 25410 25407 52 25416 25413 51 25419 25413 51 + 25419 25416 52 25425 25422 51 25428 25422 51 25428 + 25425 52 25434 25431 51 25437 25431 51 25437 25434 + 52 25443 25440 51 25446 25440 51 25446 25443 52 + 25452 25449 51 25455 25449 51 25455 25452 52 25461 + 25458 51 25464 25458 51 25464 25461 52 25470 25467 + 51 25473 25467 51 25473 25470 52 25479 25476 51 + 25482 25476 51 25482 25479 52 25488 25485 51 25491 + 25485 51 25491 25488 52 25497 25494 51 25500 25494 + 51 25500 25497 52 25506 25503 51 25509 25503 51 + 25509 25506 52 25515 25512 51 25518 25512 51 25518 + 25515 52 25524 25521 51 25527 25521 51 25527 25524 + 52 25533 25530 51 25536 25530 51 25536 25533 52 + 25542 25539 51 25545 25539 51 25545 25542 52 25551 + 25548 51 25554 25548 51 25554 25551 52 25560 25557 + 51 25563 25557 51 25563 25560 52 25569 25566 51 + 25572 25566 51 25572 25569 52 25578 25575 51 25581 + 25575 51 25581 25578 52 25587 25584 51 25590 25584 + 51 25590 25587 52 25596 25593 51 25599 25593 51 + 25599 25596 52 25605 25602 51 25608 25602 51 25608 + 25605 52 25614 25611 51 25617 25611 51 25617 25614 + 52 25623 25620 51 25626 25620 51 25626 25623 52 + 25632 25629 51 25635 25629 51 25635 25632 52 25641 + 25638 51 25644 25638 51 25644 25641 52 25650 25647 + 51 25653 25647 51 25653 25650 52 25659 25656 51 + 25662 25656 51 25662 25659 52 25668 25665 51 25671 + 25665 51 25671 25668 52 25677 25674 51 25680 25674 + 51 25680 25677 52 25686 25683 51 25689 25683 51 + 25689 25686 52 25695 25692 51 25698 25692 51 25698 + 25695 52 25704 25701 51 25707 25701 51 25707 25704 + 52 25713 25710 51 25716 25710 51 25716 25713 52 + 25722 25719 51 25725 25719 51 25725 25722 52 25731 + 25728 51 25734 25728 51 25734 25731 52 25740 25737 + 51 25743 25737 51 25743 25740 52 25749 25746 51 + 25752 25746 51 25752 25749 52 25758 25755 51 25761 + 25755 51 25761 25758 52 25767 25764 51 25770 25764 + 51 25770 25767 52 25776 25773 51 25779 25773 51 + 25779 25776 52 25785 25782 51 25788 25782 51 25788 + 25785 52 25794 25791 51 25797 25791 51 25797 25794 + 52 25803 25800 51 25806 25800 51 25806 25803 52 + 25812 25809 51 25815 25809 51 25815 25812 52 25821 + 25818 51 25824 25818 51 25824 25821 52 25830 25827 + 51 25833 25827 51 25833 25830 52 25839 25836 51 + 25842 25836 51 25842 25839 52 25848 25845 51 25851 + 25845 51 25851 25848 52 25857 25854 51 25860 25854 + 51 25860 25857 52 25866 25863 51 25869 25863 51 + 25869 25866 52 25875 25872 51 25878 25872 51 25878 + 25875 52 25884 25881 51 25887 25881 51 25887 25884 + 52 25893 25890 51 25896 25890 51 25896 25893 52 + 25902 25899 51 25905 25899 51 25905 25902 52 25911 + 25908 51 25914 25908 51 25914 25911 52 25920 25917 + 51 25923 25917 51 25923 25920 52 25929 25926 51 + 25932 25926 51 25932 25929 52 25938 25935 51 25941 + 25935 51 25941 25938 52 25947 25944 51 25950 25944 + 51 25950 25947 52 25956 25953 51 25959 25953 51 + 25959 25956 52 25965 25962 51 25968 25962 51 25968 + 25965 52 25974 25971 51 25977 25971 51 25977 25974 + 52 25983 25980 51 25986 25980 51 25986 25983 52 + 25992 25989 51 25995 25989 51 25995 25992 52 26001 + 25998 51 26004 25998 51 26004 26001 52 26010 26007 + 51 26013 26007 51 26013 26010 52 26019 26016 51 + 26022 26016 51 26022 26019 52 26028 26025 51 26031 + 26025 51 26031 26028 52 26037 26034 51 26040 26034 + 51 26040 26037 52 26046 26043 51 26049 26043 51 + 26049 26046 52 26055 26052 51 26058 26052 51 26058 + 26055 52 26064 26061 51 26067 26061 51 26067 26064 + 52 26073 26070 51 26076 26070 51 26076 26073 52 + 26082 26079 51 26085 26079 51 26085 26082 52 26091 + 26088 51 26094 26088 51 26094 26091 52 26100 26097 + 51 26103 26097 51 26103 26100 52 26109 26106 51 + 26112 26106 51 26112 26109 52 26118 26115 51 26121 + 26115 51 26121 26118 52 26127 26124 51 26130 26124 + 51 26130 26127 52 26136 26133 51 26139 26133 51 + 26139 26136 52 26145 26142 51 26148 26142 51 26148 + 26145 52 26154 26151 51 26157 26151 51 26157 26154 + 52 26163 26160 51 26166 26160 51 26166 26163 52 + 26172 26169 51 26175 26169 51 26175 26172 52 26181 + 26178 51 26184 26178 51 26184 26181 52 26190 26187 + 51 26193 26187 51 26193 26190 52 26199 26196 51 + 26202 26196 51 26202 26199 52 26208 26205 51 26211 + 26205 51 26211 26208 52 26217 26214 51 26220 26214 + 51 26220 26217 52 26226 26223 51 26229 26223 51 + 26229 26226 52 26235 26232 51 26238 26232 51 26238 + 26235 52 26244 26241 51 26247 26241 51 26247 26244 + 52 26253 26250 51 26256 26250 51 26256 26253 52 + 26262 26259 51 26265 26259 51 26265 26262 52 26271 + 26268 51 26274 26268 51 26274 26271 52 26280 26277 + 51 26283 26277 51 26283 26280 52 26289 26286 51 + 26292 26286 51 26292 26289 52 26298 26295 51 26301 + 26295 51 26301 26298 52 26307 26304 51 26310 26304 + 51 26310 26307 52 26316 26313 51 26319 26313 51 + 26319 26316 52 26325 26322 51 26328 26322 51 26328 + 26325 52 26334 26331 51 26337 26331 51 26337 26334 + 52 26343 26340 51 26346 26340 51 26346 26343 52 + 26352 26349 51 26355 26349 51 26355 26352 52 26361 + 26358 51 26364 26358 51 26364 26361 52 26370 26367 + 51 26373 26367 51 26373 26370 52 26379 26376 51 + 26382 26376 51 26382 26379 52 26388 26385 51 26391 + 26385 51 26391 26388 52 26397 26394 51 26400 26394 + 51 26400 26397 52 26406 26403 51 26409 26403 51 + 26409 26406 52 26415 26412 51 26418 26412 51 26418 + 26415 52 26424 26421 51 26427 26421 51 26427 26424 + 52 26433 26430 51 26436 26430 51 26436 26433 52 + 26442 26439 51 26445 26439 51 26445 26442 52 26451 + 26448 51 26454 26448 51 26454 26451 52 26460 26457 + 51 26463 26457 51 26463 26460 52 26469 26466 51 + 26472 26466 51 26472 26469 52 26478 26475 51 26481 + 26475 51 26481 26478 52 26487 26484 51 26490 26484 + 51 26490 26487 52 26496 26493 51 26499 26493 51 + 26499 26496 52 26505 26502 51 26508 26502 51 26508 + 26505 52 26514 26511 51 26517 26511 51 26517 26514 + 52 26523 26520 51 26526 26520 51 26526 26523 52 + 26532 26529 51 26535 26529 51 26535 26532 52 26541 + 26538 51 26544 26538 51 26544 26541 52 26550 26547 + 51 26553 26547 51 26553 26550 52 26559 26556 51 + 26562 26556 51 26562 26559 52 26568 26565 51 26571 + 26565 51 26571 26568 52 26577 26574 51 26580 26574 + 51 26580 26577 52 26586 26583 51 26589 26583 51 + 26589 26586 52 26595 26592 51 26598 26592 51 26598 + 26595 52 26604 26601 51 26607 26601 51 26607 26604 + 52 26613 26610 51 26616 26610 51 26616 26613 52 + 26622 26619 51 26625 26619 51 26625 26622 52 26631 + 26628 51 26634 26628 51 26634 26631 52 26640 26637 + 51 26643 26637 51 26643 26640 52 26649 26646 51 + 26652 26646 51 26652 26649 52 26658 26655 51 26661 + 26655 51 26661 26658 52 26667 26664 51 26670 26664 + 51 26670 26667 52 26676 26673 51 26679 26673 51 + 26679 26676 52 26685 26682 51 26688 26682 51 26688 + 26685 52 26694 26691 51 26697 26691 51 26697 26694 + 52 26703 26700 51 26706 26700 51 26706 26703 52 + 26712 26709 51 26715 26709 51 26715 26712 52 26721 + 26718 51 26724 26718 51 26724 26721 52 26730 26727 + 51 26733 26727 51 26733 26730 52 26739 26736 51 + 26742 26736 51 26742 26739 52 26748 26745 51 26751 + 26745 51 26751 26748 52 26757 26754 51 26760 26754 + 51 26760 26757 52 26766 26763 51 26769 26763 51 + 26769 26766 52 26775 26772 51 26778 26772 51 26778 + 26775 52 26784 26781 51 26787 26781 51 26787 26784 + 52 26793 26790 51 26796 26790 51 26796 26793 52 + 26802 26799 51 26805 26799 51 26805 26802 52 26811 + 26808 51 26814 26808 51 26814 26811 52 26820 26817 + 51 26823 26817 51 26823 26820 52 26829 26826 51 + 26832 26826 51 26832 26829 52 26838 26835 51 26841 + 26835 51 26841 26838 52 26847 26844 51 26850 26844 + 51 26850 26847 52 26856 26853 51 26859 26853 51 + 26859 26856 52 26865 26862 51 26868 26862 51 26868 + 26865 52 26874 26871 51 26877 26871 51 26877 26874 + 52 26883 26880 51 26886 26880 51 26886 26883 52 + 26892 26889 51 26895 26889 51 26895 26892 52 26901 + 26898 51 26904 26898 51 26904 26901 52 26910 26907 + 51 26913 26907 51 26913 26910 52 26919 26916 51 + 26922 26916 51 26922 26919 52 26928 26925 51 26931 + 26925 51 26931 26928 52 26937 26934 51 26940 26934 + 51 26940 26937 52 26946 26943 51 26949 26943 51 + 26949 26946 52 26955 26952 51 26958 26952 51 26958 + 26955 52 26964 26961 51 26967 26961 51 26967 26964 + 52 26973 26970 51 26976 26970 51 26976 26973 52 + 26982 26979 51 26985 26979 51 26985 26982 52 26991 + 26988 51 26994 26988 51 26994 26991 52 27000 26997 + 51 27003 26997 51 27003 27000 52 27009 27006 51 + 27012 27006 51 27012 27009 52 27018 27015 51 27021 + 27015 51 27021 27018 52 27027 27024 51 27030 27024 + 51 27030 27027 52 27036 27033 51 27039 27033 51 + 27039 27036 52 27045 27042 51 27048 27042 51 27048 + 27045 52 27054 27051 51 27057 27051 51 27057 27054 + 52 27063 27060 51 27066 27060 51 27066 27063 52 + 27072 27069 51 27075 27069 51 27075 27072 52 27081 + 27078 51 27084 27078 51 27084 27081 52 27090 27087 + 51 27093 27087 51 27093 27090 52 27099 27096 51 + 27102 27096 51 27102 27099 52 27108 27105 51 27111 + 27105 51 27111 27108 52 27117 27114 51 27120 27114 + 51 27120 27117 52 27126 27123 51 27129 27123 51 + 27129 27126 52 27135 27132 51 27138 27132 51 27138 + 27135 52 27144 27141 51 27147 27141 51 27147 27144 + 52 27153 27150 51 27156 27150 51 27156 27153 52 + 27162 27159 51 27165 27159 51 27165 27162 52 27171 + 27168 51 27174 27168 51 27174 27171 52 27180 27177 + 51 27183 27177 51 27183 27180 52 27189 27186 51 + 27192 27186 51 27192 27189 52 27198 27195 51 27201 + 27195 51 27201 27198 52 27207 27204 51 27210 27204 + 51 27210 27207 52 27216 27213 51 27219 27213 51 + 27219 27216 52 27225 27222 51 27228 27222 51 27228 + 27225 52 27234 27231 51 27237 27231 51 27237 27234 + 52 27243 27240 51 27246 27240 51 27246 27243 52 + 27252 27249 51 27255 27249 51 27255 27252 52 27261 + 27258 51 27264 27258 51 27264 27261 52 27270 27267 + 51 27273 27267 51 27273 27270 52 27279 27276 51 + 27282 27276 51 27282 27279 52 27288 27285 51 27291 + 27285 51 27291 27288 52 27297 27294 51 27300 27294 + 51 27300 27297 52 27306 27303 51 27309 27303 51 + 27309 27306 52 27315 27312 51 27318 27312 51 27318 + 27315 52 27324 27321 51 27327 27321 51 27327 27324 + 52 27333 27330 51 27336 27330 51 27336 27333 52 + 27342 27339 51 27345 27339 51 27345 27342 52 27351 + 27348 51 27354 27348 51 27354 27351 52 27360 27357 + 51 27363 27357 51 27363 27360 52 27369 27366 51 + 27372 27366 51 27372 27369 52 27378 27375 51 27381 + 27375 51 27381 27378 52 27387 27384 51 27390 27384 + 51 27390 27387 52 27396 27393 51 27399 27393 51 + 27399 27396 52 27405 27402 51 27408 27402 51 27408 + 27405 52 27414 27411 51 27417 27411 51 27417 27414 + 52 27423 27420 51 27426 27420 51 27426 27423 52 + 27432 27429 51 27435 27429 51 27435 27432 52 27441 + 27438 51 27444 27438 51 27444 27441 52 27450 27447 + 51 27453 27447 51 27453 27450 52 27459 27456 51 + 27462 27456 51 27462 27459 52 27468 27465 51 27471 + 27465 51 27471 27468 52 27477 27474 51 27480 27474 + 51 27480 27477 52 27486 27483 51 27489 27483 51 + 27489 27486 52 27495 27492 51 27498 27492 51 27498 + 27495 52 27504 27501 51 27507 27501 51 27507 27504 + 52 27513 27510 51 27516 27510 51 27516 27513 52 + 27522 27519 51 27525 27519 51 27525 27522 52 27531 + 27528 51 27534 27528 51 27534 27531 52 27540 27537 + 51 27543 27537 51 27543 27540 52 27549 27546 51 + 27552 27546 51 27552 27549 52 27558 27555 51 27561 + 27555 51 27561 27558 52 27567 27564 51 27570 27564 + 51 27570 27567 52 27576 27573 51 27579 27573 51 + 27579 27576 52 27585 27582 51 27588 27582 51 27588 + 27585 52 27594 27591 51 27597 27591 51 27597 27594 + 52 27603 27600 51 27606 27600 51 27606 27603 52 + 27612 27609 51 27615 27609 51 27615 27612 52 27621 + 27618 51 27624 27618 51 27624 27621 52 27630 27627 + 51 27633 27627 51 27633 27630 52 27639 27636 51 + 27642 27636 51 27642 27639 52 27648 27645 51 27651 + 27645 51 27651 27648 52 27657 27654 51 27660 27654 + 51 27660 27657 52 27666 27663 51 27669 27663 51 + 27669 27666 52 27675 27672 51 27678 27672 51 27678 + 27675 52 27684 27681 51 27687 27681 51 27687 27684 + 52 27693 27690 51 27696 27690 51 27696 27693 52 + 27702 27699 51 27705 27699 51 27705 27702 52 27711 + 27708 51 27714 27708 51 27714 27711 52 27720 27717 + 51 27723 27717 51 27723 27720 52 27729 27726 51 + 27732 27726 51 27732 27729 52 27738 27735 51 27741 + 27735 51 27741 27738 52 27747 27744 51 27750 27744 + 51 27750 27747 52 27756 27753 51 27759 27753 51 + 27759 27756 52 27765 27762 51 27768 27762 51 27768 + 27765 52 27774 27771 51 27777 27771 51 27777 27774 + 52 27783 27780 51 27786 27780 51 27786 27783 52 + 27792 27789 51 27795 27789 51 27795 27792 52 27801 + 27798 51 27804 27798 51 27804 27801 52 27810 27807 + 51 27813 27807 51 27813 27810 52 27819 27816 51 + 27822 27816 51 27822 27819 52 27828 27825 51 27831 + 27825 51 27831 27828 52 27837 27834 51 27840 27834 + 51 27840 27837 52 27846 27843 51 27849 27843 51 + 27849 27846 52 27855 27852 51 27858 27852 51 27858 + 27855 52 27864 27861 51 27867 27861 51 27867 27864 + 52 27873 27870 51 27876 27870 51 27876 27873 52 + 27882 27879 51 27885 27879 51 27885 27882 52 27891 + 27888 51 27894 27888 51 27894 27891 52 27900 27897 + 51 27903 27897 51 27903 27900 52 27909 27906 51 + 27912 27906 51 27912 27909 52 27918 27915 51 27921 + 27915 51 27921 27918 52 27927 27924 51 27930 27924 + 51 27930 27927 52 27936 27933 51 27939 27933 51 + 27939 27936 52 27945 27942 51 27948 27942 51 27948 + 27945 52 27954 27951 51 27957 27951 51 27957 27954 + 52 27963 27960 51 27966 27960 51 27966 27963 52 + 27972 27969 51 27975 27969 51 27975 27972 52 27981 + 27978 51 27984 27978 51 27984 27981 52 27990 27987 + 51 27993 27987 51 27993 27990 52 27999 27996 51 + 28002 27996 51 28002 27999 52 28008 28005 51 28011 + 28005 51 28011 28008 52 28017 28014 51 28020 28014 + 51 28020 28017 52 28026 28023 51 28029 28023 51 + 28029 28026 52 28035 28032 51 28038 28032 51 28038 + 28035 52 28044 28041 51 28047 28041 51 28047 28044 + 52 28053 28050 51 28056 28050 51 28056 28053 52 + 28062 28059 51 28065 28059 51 28065 28062 52 28071 + 28068 51 28074 28068 51 28074 28071 52 28080 28077 + 51 28083 28077 51 28083 28080 52 28089 28086 51 + 28092 28086 51 28092 28089 52 28098 28095 51 28101 + 28095 51 28101 28098 52 28107 28104 51 28110 28104 + 51 28110 28107 52 28116 28113 51 28119 28113 51 + 28119 28116 52 28125 28122 51 28128 28122 51 28128 + 28125 52 28134 28131 51 28137 28131 51 28137 28134 + 52 28143 28140 51 28146 28140 51 28146 28143 52 + 28152 28149 51 28155 28149 51 28155 28152 52 28161 + 28158 51 28164 28158 51 28164 28161 52 28170 28167 + 51 28173 28167 51 28173 28170 52 28179 28176 51 + 28182 28176 51 28182 28179 52 28188 28185 51 28191 + 28185 51 28191 28188 52 28197 28194 51 28200 28194 + 51 28200 28197 52 28206 28203 51 28209 28203 51 + 28209 28206 52 28215 28212 51 28218 28212 51 28218 + 28215 52 28224 28221 51 28227 28221 51 28227 28224 + 52 28233 28230 51 28236 28230 51 28236 28233 52 + 28242 28239 51 28245 28239 51 28245 28242 52 28251 + 28248 51 28254 28248 51 28254 28251 52 28260 28257 + 51 28263 28257 51 28263 28260 52 28269 28266 51 + 28272 28266 51 28272 28269 52 28278 28275 51 28281 + 28275 51 28281 28278 52 28287 28284 51 28290 28284 + 51 28290 28287 52 28296 28293 51 28299 28293 51 + 28299 28296 52 28305 28302 51 28308 28302 51 28308 + 28305 52 28314 28311 51 28317 28311 51 28317 28314 + 52 28323 28320 51 28326 28320 51 28326 28323 52 + 28332 28329 51 28335 28329 51 28335 28332 52 28341 + 28338 51 28344 28338 51 28344 28341 52 28350 28347 + 51 28353 28347 51 28353 28350 52 28359 28356 51 + 28362 28356 51 28362 28359 52 28368 28365 51 28371 + 28365 51 28371 28368 52 28377 28374 51 28380 28374 + 51 28380 28377 52 28386 28383 51 28389 28383 51 + 28389 28386 52 28395 28392 51 28398 28392 51 28398 + 28395 52 28404 28401 51 28407 28401 51 28407 28404 + 52 28413 28410 51 28416 28410 51 28416 28413 52 + 28422 28419 51 28425 28419 51 28425 28422 52 28431 + 28428 51 28434 28428 51 28434 28431 52 28440 28437 + 51 28443 28437 51 28443 28440 52 28449 28446 51 + 28452 28446 51 28452 28449 52 28458 28455 51 28461 + 28455 51 28461 28458 52 28467 28464 51 28470 28464 + 51 28470 28467 52 28476 28473 51 28479 28473 51 + 28479 28476 52 28485 28482 51 28488 28482 51 28488 + 28485 52 28494 28491 51 28497 28491 51 28497 28494 + 52 28503 28500 51 28506 28500 51 28506 28503 52 + 28512 28509 51 28515 28509 51 28515 28512 52 28521 + 28518 51 28524 28518 51 28524 28521 52 28530 28527 + 51 28533 28527 51 28533 28530 52 28539 28536 51 + 28542 28536 51 28542 28539 52 28548 28545 51 28551 + 28545 51 28551 28548 52 28557 28554 51 28560 28554 + 51 28560 28557 52 28566 28563 51 28569 28563 51 + 28569 28566 52 28575 28572 51 28578 28572 51 28578 + 28575 52 28584 28581 51 28587 28581 51 28587 28584 + 52 28593 28590 51 28596 28590 51 28596 28593 52 + 28602 28599 51 28605 28599 51 28605 28602 52 28611 + 28608 51 28614 28608 51 28614 28611 52 28620 28617 + 51 28623 28617 51 28623 28620 52 28629 28626 51 + 28632 28626 51 28632 28629 52 28638 28635 51 28641 + 28635 51 28641 28638 52 28647 28644 51 28650 28644 + 51 28650 28647 52 28656 28653 51 28659 28653 51 + 28659 28656 52 28665 28662 51 28668 28662 51 28668 + 28665 52 28674 28671 51 28677 28671 51 28677 28674 + 52 28683 28680 51 28686 28680 51 28686 28683 52 + 28692 28689 51 28695 28689 51 28695 28692 52 28701 + 28698 51 28704 28698 51 28704 28701 52 28710 28707 + 51 28713 28707 51 28713 28710 52 28719 28716 51 + 28722 28716 51 28722 28719 52 28728 28725 51 28731 + 28725 51 28731 28728 52 28737 28734 51 28740 28734 + 51 28740 28737 52 28746 28743 51 28749 28743 51 + 28749 28746 52 28755 28752 51 28758 28752 51 28758 + 28755 52 28764 28761 51 28767 28761 51 28767 28764 + 52 28773 28770 51 28776 28770 51 28776 28773 52 + 28782 28779 51 28785 28779 51 28785 28782 52 28791 + 28788 51 28794 28788 51 28794 28791 52 28800 28797 + 51 28803 28797 51 28803 28800 52 28809 28806 51 + 28812 28806 51 28812 28809 52 28818 28815 51 28821 + 28815 51 28821 28818 52 28827 28824 51 28830 28824 + 51 28830 28827 52 28836 28833 51 28839 28833 51 + 28839 28836 52 28845 28842 51 28848 28842 51 28848 + 28845 52 28854 28851 51 28857 28851 51 28857 28854 + 52 28863 28860 51 28866 28860 51 28866 28863 52 + 28872 28869 51 28875 28869 51 28875 28872 52 28881 + 28878 51 28884 28878 51 28884 28881 52 28890 28887 + 51 28893 28887 51 28893 28890 52 28899 28896 51 + 28902 28896 51 28902 28899 52 28908 28905 51 28911 + 28905 51 28911 28908 52 28917 28914 51 28920 28914 + 51 28920 28917 52 28926 28923 51 28929 28923 51 + 28929 28926 52 28935 28932 51 28938 28932 51 28938 + 28935 52 28944 28941 51 28947 28941 51 28947 28944 + 52 28953 28950 51 28956 28950 51 28956 28953 52 + 28962 28959 51 28965 28959 51 28965 28962 52 28971 + 28968 51 28974 28968 51 28974 28971 52 28980 28977 + 51 28983 28977 51 28983 28980 52 28989 28986 51 + 28992 28986 51 28992 28989 52 28998 28995 51 29001 + 28995 51 29001 28998 52 29007 29004 51 29010 29004 + 51 29010 29007 52 29016 29013 51 29019 29013 51 + 29019 29016 52 29025 29022 51 29028 29022 51 29028 + 29025 52 29034 29031 51 29037 29031 51 29037 29034 + 52 29043 29040 51 29046 29040 51 29046 29043 52 + 29052 29049 51 29055 29049 51 29055 29052 52 29061 + 29058 51 29064 29058 51 29064 29061 52 29070 29067 + 51 29073 29067 51 29073 29070 52 29079 29076 51 + 29082 29076 51 29082 29079 52 29088 29085 51 29091 + 29085 51 29091 29088 52 29097 29094 51 29100 29094 + 51 29100 29097 52 29106 29103 51 29109 29103 51 + 29109 29106 52 29115 29112 51 29118 29112 51 29118 + 29115 52 29124 29121 51 29127 29121 51 29127 29124 + 52 29133 29130 51 29136 29130 51 29136 29133 52 + 29142 29139 51 29145 29139 51 29145 29142 52 29151 + 29148 51 29154 29148 51 29154 29151 52 29160 29157 + 51 29163 29157 51 29163 29160 52 29169 29166 51 + 29172 29166 51 29172 29169 52 29178 29175 51 29181 + 29175 51 29181 29178 52 29187 29184 51 29190 29184 + 51 29190 29187 52 29196 29193 51 29199 29193 51 + 29199 29196 52 29205 29202 51 29208 29202 51 29208 + 29205 52 29214 29211 51 29217 29211 51 29217 29214 + 52 29223 29220 51 29226 29220 51 29226 29223 52 + 29232 29229 51 29235 29229 51 29235 29232 52 29241 + 29238 51 29244 29238 51 29244 29241 52 29250 29247 + 51 29253 29247 51 29253 29250 52 29259 29256 51 + 29262 29256 51 29262 29259 52 29268 29265 51 29271 + 29265 51 29271 29268 52 29277 29274 51 29280 29274 + 51 29280 29277 52 29286 29283 51 29289 29283 51 + 29289 29286 52 29295 29292 51 29298 29292 51 29298 + 29295 52 29304 29301 51 29307 29301 51 29307 29304 + 52 29313 29310 51 29316 29310 51 29316 29313 52 + 29322 29319 51 29325 29319 51 29325 29322 52 29331 + 29328 51 29334 29328 51 29334 29331 52 29340 29337 + 51 29343 29337 51 29343 29340 52 29349 29346 51 + 29352 29346 51 29352 29349 52 29358 29355 51 29361 + 29355 51 29361 29358 52 29367 29364 51 29370 29364 + 51 29370 29367 52 29376 29373 51 29379 29373 51 + 29379 29376 52 29385 29382 51 29388 29382 51 29388 + 29385 52 29394 29391 51 29397 29391 51 29397 29394 + 52 29403 29400 51 29406 29400 51 29406 29403 52 + 29412 29409 51 29415 29409 51 29415 29412 52 29421 + 29418 51 29424 29418 51 29424 29421 52 29430 29427 + 51 29433 29427 51 29433 29430 52 29439 29436 51 + 29442 29436 51 29442 29439 52 29448 29445 51 29451 + 29445 51 29451 29448 52 29457 29454 51 29460 29454 + 51 29460 29457 52 29466 29463 51 29469 29463 51 + 29469 29466 52 29475 29472 51 29478 29472 51 29478 + 29475 52 29484 29481 51 29487 29481 51 29487 29484 + 52 29493 29490 51 29496 29490 51 29496 29493 52 + 29502 29499 51 29505 29499 51 29505 29502 52 29511 + 29508 51 29514 29508 51 29514 29511 52 29520 29517 + 51 29523 29517 51 29523 29520 52 29529 29526 51 + 29532 29526 51 29532 29529 52 29538 29535 51 29541 + 29535 51 29541 29538 52 29547 29544 51 29550 29544 + 51 29550 29547 52 29556 29553 51 29559 29553 51 + 29559 29556 52 29565 29562 51 29568 29562 51 29568 + 29565 52 29574 29571 51 29577 29571 51 29577 29574 + 52 29583 29580 51 29586 29580 51 29586 29583 52 + 29592 29589 51 29595 29589 51 29595 29592 52 29601 + 29598 51 29604 29598 51 29604 29601 52 29610 29607 + 51 29613 29607 51 29613 29610 52 29619 29616 51 + 29622 29616 51 29622 29619 52 29628 29625 51 29631 + 29625 51 29631 29628 52 29637 29634 51 29640 29634 + 51 29640 29637 52 29646 29643 51 29649 29643 51 + 29649 29646 52 29655 29652 51 29658 29652 51 29658 + 29655 52 29664 29661 51 29667 29661 51 29667 29664 + 52 29673 29670 51 29676 29670 51 29676 29673 52 + 29682 29679 51 29685 29679 51 29685 29682 52 29691 + 29688 51 29694 29688 51 29694 29691 52 29700 29697 + 51 29703 29697 51 29703 29700 52 29709 29706 51 + 29712 29706 51 29712 29709 52 29718 29715 51 29721 + 29715 51 29721 29718 52 29727 29724 51 29730 29724 + 51 29730 29727 52 29736 29733 51 29739 29733 51 + 29739 29736 52 29745 29742 51 29748 29742 51 29748 + 29745 52 29754 29751 51 29757 29751 51 29757 29754 + 52 29763 29760 51 29766 29760 51 29766 29763 52 + 29772 29769 51 29775 29769 51 29775 29772 52 29781 + 29778 51 29784 29778 51 29784 29781 52 29790 29787 + 51 29793 29787 51 29793 29790 52 29799 29796 51 + 29802 29796 51 29802 29799 52 29808 29805 51 29811 + 29805 51 29811 29808 52 29817 29814 51 29820 29814 + 51 29820 29817 52 29826 29823 51 29829 29823 51 + 29829 29826 52 29835 29832 51 29838 29832 51 29838 + 29835 52 29844 29841 51 29847 29841 51 29847 29844 + 52 29853 29850 51 29856 29850 51 29856 29853 52 + 29862 29859 51 29865 29859 51 29865 29862 52 29871 + 29868 51 29874 29868 51 29874 29871 52 29880 29877 + 51 29883 29877 51 29883 29880 52 29889 29886 51 + 29892 29886 51 29892 29889 52 29898 29895 51 29901 + 29895 51 29901 29898 52 29907 29904 51 29910 29904 + 51 29910 29907 52 29916 29913 51 29919 29913 51 + 29919 29916 52 29925 29922 51 29928 29922 51 29928 + 29925 52 29934 29931 51 29937 29931 51 29937 29934 + 52 29943 29940 51 29946 29940 51 29946 29943 52 + 29952 29949 51 29955 29949 51 29955 29952 52 29961 + 29958 51 29964 29958 51 29964 29961 52 29970 29967 + 51 29973 29967 51 29973 29970 52 29979 29976 51 + 29982 29976 51 29982 29979 52 29988 29985 51 29991 + 29985 51 29991 29988 52 29997 29994 51 30000 29994 + 51 30000 29997 52 30006 30003 51 30009 30003 51 + 30009 30006 52 30015 30012 51 30018 30012 51 30018 + 30015 52 30024 30021 51 30027 30021 51 30027 30024 + 52 30033 30030 51 30036 30030 51 30036 30033 52 + 30042 30039 51 30045 30039 51 30045 30042 52 30051 + 30048 51 30054 30048 51 30054 30051 52 30060 30057 + 51 30063 30057 51 30063 30060 52 30069 30066 51 + 30072 30066 51 30072 30069 52 30078 30075 51 30081 + 30075 51 30081 30078 52 30087 30084 51 30090 30084 + 51 30090 30087 52 30096 30093 51 30099 30093 51 + 30099 30096 52 30105 30102 51 30108 30102 51 30108 + 30105 52 30114 30111 51 30117 30111 51 30117 30114 + 52 30123 30120 51 30126 30120 51 30126 30123 52 + 30132 30129 51 30135 30129 51 30135 30132 52 30141 + 30138 51 30144 30138 51 30144 30141 52 30150 30147 + 51 30153 30147 51 30153 30150 52 30159 30156 51 + 30162 30156 51 30162 30159 52 30168 30165 51 30171 + 30165 51 30171 30168 52 +%FLAG BONDS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 81 84 1 66 72 4 66 81 5 60 + 63 6 57 60 7 45 48 9 45 57 + 10 39 45 12 33 39 14 30 33 15 + 30 60 16 24 30 18 24 72 19 21 + 24 20 15 21 20 15 66 4 6 15 + 23 3 6 24 180 183 1 165 171 4 + 165 180 5 159 162 26 147 150 9 147 + 159 10 141 147 28 135 138 6 135 141 + 29 132 135 30 132 162 31 129 132 32 + 123 129 34 120 123 35 120 162 36 114 + 120 18 114 171 19 111 114 20 105 111 + 20 105 165 4 96 105 23 93 96 37 + 84 87 38 84 90 38 84 93 1 276 + 279 1 261 267 4 261 276 5 255 258 + 26 249 255 40 246 249 40 234 237 9 + 234 246 10 231 234 41 231 258 31 228 + 231 32 222 228 43 219 222 44 219 258 + 36 213 219 18 213 267 19 210 213 20 + 204 210 20 204 261 4 195 204 23 192 + 195 37 183 186 38 183 189 38 183 192 + 1 372 375 1 357 363 4 357 372 5 + 351 354 6 345 351 29 339 342 6 339 + 345 29 324 327 45 324 339 46 318 324 + 48 315 318 49 315 351 16 309 315 18 + 309 363 19 306 309 20 300 306 20 300 + 357 4 291 300 23 288 291 37 279 282 + 38 279 285 38 279 288 1 462 465 1 + 447 453 4 447 462 5 441 444 6 438 + 441 7 426 429 9 426 438 10 420 426 + 12 414 420 14 411 414 15 411 441 16 + 405 411 18 405 453 19 402 405 20 396 + 402 20 396 447 4 387 396 23 384 387 + 37 375 378 38 375 381 38 375 384 1 + 561 564 1 546 552 4 546 561 5 540 + 543 26 528 531 9 528 540 10 522 528 + 28 516 519 6 516 522 29 513 516 30 + 513 543 31 510 513 32 504 510 34 501 + 504 35 501 543 36 495 501 18 495 552 + 19 492 495 20 486 492 20 486 546 4 + 477 486 23 474 477 37 465 468 38 465 + 471 38 465 474 1 657 660 1 642 648 + 4 642 657 5 636 639 26 630 636 40 + 627 630 40 615 618 9 615 627 10 612 + 615 41 612 639 31 609 612 32 603 609 + 43 600 603 44 600 639 36 594 600 18 + 594 648 19 591 594 20 585 591 20 585 + 642 4 576 585 23 573 576 37 564 567 + 38 564 570 38 564 573 1 753 756 1 + 738 744 4 738 753 5 732 735 6 726 + 732 29 720 723 6 720 726 29 705 708 + 45 705 720 46 699 705 48 696 699 49 + 696 732 16 690 696 18 690 744 19 687 + 690 20 681 687 20 681 738 4 672 681 + 23 669 672 37 660 663 38 660 666 38 + 660 669 1 843 846 1 828 834 4 828 + 843 5 822 825 6 819 822 7 807 810 + 9 807 819 10 801 807 12 795 801 14 + 792 795 15 792 822 16 786 792 18 786 + 834 19 783 786 20 777 783 20 777 828 + 4 768 777 23 765 768 37 756 759 38 + 756 762 38 756 765 1 927 933 4 927 + 942 50 921 924 26 909 912 9 909 921 + 10 903 909 28 897 900 6 897 903 29 + 894 897 30 894 924 31 891 894 32 885 + 891 34 882 885 35 882 924 36 876 882 + 18 876 933 19 873 876 20 867 873 20 + 867 927 4 858 867 23 855 858 37 846 + 849 38 846 852 38 846 855 1 1029 1032 + 1 1014 1020 4 1014 1029 5 1008 1011 6 + 1005 1008 7 993 996 9 993 1005 10 987 + 993 12 981 987 14 978 981 15 978 1008 + 16 972 978 18 972 1020 19 969 972 20 + 963 969 20 963 1014 4 954 963 23 951 + 954 24 1128 1131 1 1113 1119 4 1113 1128 + 5 1107 1110 26 1095 1098 9 1095 1107 10 + 1089 1095 28 1083 1086 6 1083 1089 29 1080 + 1083 30 1080 1110 31 1077 1080 32 1071 1077 + 34 1068 1071 35 1068 1110 36 1062 1068 18 + 1062 1119 19 1059 1062 20 1053 1059 20 1053 + 1113 4 1044 1053 23 1041 1044 37 1032 1035 + 38 1032 1038 38 1032 1041 1 1224 1227 1 + 1209 1215 4 1209 1224 5 1203 1206 26 1197 + 1203 40 1194 1197 40 1182 1185 9 1182 1194 + 10 1179 1182 41 1179 1206 31 1176 1179 32 + 1170 1176 43 1167 1170 44 1167 1206 36 1161 + 1167 18 1161 1215 19 1158 1161 20 1152 1158 + 20 1152 1209 4 1143 1152 23 1140 1143 37 + 1131 1134 38 1131 1137 38 1131 1140 1 1320 + 1323 1 1305 1311 4 1305 1320 5 1299 1302 + 6 1293 1299 29 1287 1290 6 1287 1293 29 + 1272 1275 45 1272 1287 46 1266 1272 48 1263 + 1266 49 1263 1299 16 1257 1263 18 1257 1311 + 19 1254 1257 20 1248 1254 20 1248 1305 4 + 1239 1248 23 1236 1239 37 1227 1230 38 1227 + 1233 38 1227 1236 1 1410 1413 1 1395 1401 + 4 1395 1410 5 1389 1392 6 1386 1389 7 + 1374 1377 9 1374 1386 10 1368 1374 12 1362 + 1368 14 1359 1362 15 1359 1389 16 1353 1359 + 18 1353 1401 19 1350 1353 20 1344 1350 20 + 1344 1395 4 1335 1344 23 1332 1335 37 1323 + 1326 38 1323 1329 38 1323 1332 1 1509 1512 + 1 1494 1500 4 1494 1509 5 1488 1491 26 + 1476 1479 9 1476 1488 10 1470 1476 28 1464 + 1467 6 1464 1470 29 1461 1464 30 1461 1491 + 31 1458 1461 32 1452 1458 34 1449 1452 35 + 1449 1491 36 1443 1449 18 1443 1500 19 1440 + 1443 20 1434 1440 20 1434 1494 4 1425 1434 + 23 1422 1425 37 1413 1416 38 1413 1419 38 + 1413 1422 1 1605 1608 1 1590 1596 4 1590 + 1605 5 1584 1587 26 1578 1584 40 1575 1578 + 40 1563 1566 9 1563 1575 10 1560 1563 41 + 1560 1587 31 1557 1560 32 1551 1557 43 1548 + 1551 44 1548 1587 36 1542 1548 18 1542 1596 + 19 1539 1542 20 1533 1539 20 1533 1590 4 + 1524 1533 23 1521 1524 37 1512 1515 38 1512 + 1518 38 1512 1521 1 1701 1704 1 1686 1692 + 4 1686 1701 5 1680 1683 6 1674 1680 29 + 1668 1671 6 1668 1674 29 1653 1656 45 1653 + 1668 46 1647 1653 48 1644 1647 49 1644 1680 + 16 1638 1644 18 1638 1692 19 1635 1638 20 + 1629 1635 20 1629 1686 4 1620 1629 23 1617 + 1620 37 1608 1611 38 1608 1614 38 1608 1617 + 1 1791 1794 1 1776 1782 4 1776 1791 5 + 1770 1773 6 1767 1770 7 1755 1758 9 1755 + 1767 10 1749 1755 12 1743 1749 14 1740 1743 + 15 1740 1770 16 1734 1740 18 1734 1782 19 + 1731 1734 20 1725 1731 20 1725 1776 4 1716 + 1725 23 1713 1716 37 1704 1707 38 1704 1710 + 38 1704 1713 1 1875 1881 4 1875 1890 50 + 1869 1872 26 1857 1860 9 1857 1869 10 1851 + 1857 28 1845 1848 6 1845 1851 29 1842 1845 + 30 1842 1872 31 1839 1842 32 1833 1839 34 + 1830 1833 35 1830 1872 36 1824 1830 18 1824 + 1881 19 1821 1824 20 1815 1821 20 1815 1875 + 4 1806 1815 23 1803 1806 37 1794 1797 38 + 1794 1800 38 1794 1803 1 +%FLAG ANGLES_INC_HYDROGEN +%FORMAT(10I8) + 75 72 78 3 69 66 72 5 69 66 + 81 6 66 72 75 7 66 72 78 7 + 51 48 54 10 45 48 51 12 45 48 + 54 12 42 39 45 14 36 33 39 17 + 33 39 42 19 30 33 36 22 27 24 + 30 26 27 24 72 27 24 72 75 31 + 24 72 78 31 21 24 27 33 18 15 + 21 36 18 15 66 37 15 66 69 5 + 12 6 15 40 9 6 12 41 9 6 + 15 40 6 15 18 42 3 6 9 45 + 3 6 12 45 0 3 6 47 174 171 + 177 3 168 165 171 5 168 165 180 6 + 165 171 174 7 165 171 177 7 153 150 + 156 10 147 150 153 12 147 150 156 12 + 144 141 147 49 135 141 144 54 126 123 + 129 61 120 123 126 64 117 114 120 26 + 117 114 171 27 114 171 174 31 114 171 + 177 31 111 114 117 33 108 105 111 36 + 108 105 165 37 105 165 168 5 102 96 + 105 40 99 96 102 41 99 96 105 40 + 96 105 108 42 93 96 99 70 93 96 + 102 70 270 267 273 3 264 261 267 5 + 264 261 276 6 261 267 270 7 261 267 + 273 7 252 249 255 74 246 249 252 74 + 240 237 243 10 234 237 240 12 234 237 + 243 12 225 222 228 82 219 222 225 85 + 216 213 219 26 216 213 267 27 213 267 + 270 31 213 267 273 31 210 213 216 33 + 207 204 210 36 207 204 261 37 204 261 + 264 5 201 195 204 40 198 195 201 41 + 198 195 204 40 195 204 207 42 192 195 + 198 70 192 195 201 70 366 363 369 3 + 360 357 363 5 360 357 372 6 357 363 + 366 7 357 363 369 7 348 345 351 54 + 339 345 348 54 333 327 336 3 330 327 + 333 3 330 327 336 3 324 327 330 90 + 324 327 333 90 324 327 336 90 321 318 + 324 93 315 318 321 97 312 309 315 26 + 312 309 363 27 309 363 366 31 309 363 + 369 31 306 309 312 33 303 300 306 36 + 303 300 357 37 300 357 360 5 297 291 + 300 40 294 291 297 41 294 291 300 40 + 291 300 303 42 288 291 294 70 288 291 + 297 70 456 453 459 3 450 447 453 5 + 450 447 462 6 447 453 456 7 447 453 + 459 7 432 429 435 10 426 429 432 12 + 426 429 435 12 423 420 426 14 417 414 + 420 17 414 420 423 19 411 414 417 22 + 408 405 411 26 408 405 453 27 405 453 + 456 31 405 453 459 31 402 405 408 33 + 399 396 402 36 399 396 447 37 396 447 + 450 5 393 387 396 40 390 387 393 41 + 390 387 396 40 387 396 399 42 384 387 + 390 70 384 387 393 70 555 552 558 3 + 549 546 552 5 549 546 561 6 546 552 + 555 7 546 552 558 7 534 531 537 10 + 528 531 534 12 528 531 537 12 525 522 + 528 49 516 522 525 54 507 504 510 61 + 501 504 507 64 498 495 501 26 498 495 + 552 27 495 552 555 31 495 552 558 31 + 492 495 498 33 489 486 492 36 489 486 + 546 37 486 546 549 5 483 477 486 40 + 480 477 483 41 480 477 486 40 477 486 + 489 42 474 477 480 70 474 477 483 70 + 651 648 654 3 645 642 648 5 645 642 + 657 6 642 648 651 7 642 648 654 7 + 633 630 636 74 627 630 633 74 621 618 + 624 10 615 618 621 12 615 618 624 12 + 606 603 609 82 600 603 606 85 597 594 + 600 26 597 594 648 27 594 648 651 31 + 594 648 654 31 591 594 597 33 588 585 + 591 36 588 585 642 37 585 642 645 5 + 582 576 585 40 579 576 582 41 579 576 + 585 40 576 585 588 42 573 576 579 70 + 573 576 582 70 747 744 750 3 741 738 + 744 5 741 738 753 6 738 744 747 7 + 738 744 750 7 729 726 732 54 720 726 + 729 54 714 708 717 3 711 708 714 3 + 711 708 717 3 705 708 711 90 705 708 + 714 90 705 708 717 90 702 699 705 93 + 696 699 702 97 693 690 696 26 693 690 + 744 27 690 744 747 31 690 744 750 31 + 687 690 693 33 684 681 687 36 684 681 + 738 37 681 738 741 5 678 672 681 40 + 675 672 678 41 675 672 681 40 672 681 + 684 42 669 672 675 70 669 672 678 70 + 837 834 840 3 831 828 834 5 831 828 + 843 6 828 834 837 7 828 834 840 7 + 813 810 816 10 807 810 813 12 807 810 + 816 12 804 801 807 14 798 795 801 17 + 795 801 804 19 792 795 798 22 789 786 + 792 26 789 786 834 27 786 834 837 31 + 786 834 840 31 783 786 789 33 780 777 + 783 36 780 777 828 37 777 828 831 5 + 774 768 777 40 771 768 774 41 771 768 + 777 40 768 777 780 42 765 768 771 70 + 765 768 774 70 936 933 939 3 930 927 + 933 5 930 927 942 102 927 933 936 7 + 927 933 939 7 927 942 945 103 915 912 + 918 10 909 912 915 12 909 912 918 12 + 906 903 909 49 897 903 906 54 888 885 + 891 61 882 885 888 64 879 876 882 26 + 879 876 933 27 876 933 936 31 876 933 + 939 31 873 876 879 33 870 867 873 36 + 870 867 927 37 867 927 930 5 864 858 + 867 40 861 858 864 41 861 858 867 40 + 858 867 870 42 855 858 861 70 855 858 + 864 70 1023 1020 1026 3 1017 1014 1020 5 + 1017 1014 1029 6 1014 1020 1023 7 1014 1020 + 1026 7 999 996 1002 10 993 996 999 12 + 993 996 1002 12 990 987 993 14 984 981 + 987 17 981 987 990 19 978 981 984 22 + 975 972 978 26 975 972 1020 27 972 1020 + 1023 31 972 1020 1026 31 969 972 975 33 + 966 963 969 36 966 963 1014 37 963 1014 + 1017 5 960 954 963 40 957 954 960 41 + 957 954 963 40 954 963 966 42 951 954 + 957 45 951 954 960 45 948 951 954 47 + 1122 1119 1125 3 1116 1113 1119 5 1116 1113 + 1128 6 1113 1119 1122 7 1113 1119 1125 7 + 1101 1098 1104 10 1095 1098 1101 12 1095 1098 + 1104 12 1092 1089 1095 49 1083 1089 1092 54 + 1074 1071 1077 61 1068 1071 1074 64 1065 1062 + 1068 26 1065 1062 1119 27 1062 1119 1122 31 + 1062 1119 1125 31 1059 1062 1065 33 1056 1053 + 1059 36 1056 1053 1113 37 1053 1113 1116 5 + 1050 1044 1053 40 1047 1044 1050 41 1047 1044 + 1053 40 1044 1053 1056 42 1041 1044 1047 70 + 1041 1044 1050 70 1218 1215 1221 3 1212 1209 + 1215 5 1212 1209 1224 6 1209 1215 1218 7 + 1209 1215 1221 7 1200 1197 1203 74 1194 1197 + 1200 74 1188 1185 1191 10 1182 1185 1188 12 + 1182 1185 1191 12 1173 1170 1176 82 1167 1170 + 1173 85 1164 1161 1167 26 1164 1161 1215 27 + 1161 1215 1218 31 1161 1215 1221 31 1158 1161 + 1164 33 1155 1152 1158 36 1155 1152 1209 37 + 1152 1209 1212 5 1149 1143 1152 40 1146 1143 + 1149 41 1146 1143 1152 40 1143 1152 1155 42 + 1140 1143 1146 70 1140 1143 1149 70 1314 1311 + 1317 3 1308 1305 1311 5 1308 1305 1320 6 + 1305 1311 1314 7 1305 1311 1317 7 1296 1293 + 1299 54 1287 1293 1296 54 1281 1275 1284 3 + 1278 1275 1281 3 1278 1275 1284 3 1272 1275 + 1278 90 1272 1275 1281 90 1272 1275 1284 90 + 1269 1266 1272 93 1263 1266 1269 97 1260 1257 + 1263 26 1260 1257 1311 27 1257 1311 1314 31 + 1257 1311 1317 31 1254 1257 1260 33 1251 1248 + 1254 36 1251 1248 1305 37 1248 1305 1308 5 + 1245 1239 1248 40 1242 1239 1245 41 1242 1239 + 1248 40 1239 1248 1251 42 1236 1239 1242 70 + 1236 1239 1245 70 1404 1401 1407 3 1398 1395 + 1401 5 1398 1395 1410 6 1395 1401 1404 7 + 1395 1401 1407 7 1380 1377 1383 10 1374 1377 + 1380 12 1374 1377 1383 12 1371 1368 1374 14 + 1365 1362 1368 17 1362 1368 1371 19 1359 1362 + 1365 22 1356 1353 1359 26 1356 1353 1401 27 + 1353 1401 1404 31 1353 1401 1407 31 1350 1353 + 1356 33 1347 1344 1350 36 1347 1344 1395 37 + 1344 1395 1398 5 1341 1335 1344 40 1338 1335 + 1341 41 1338 1335 1344 40 1335 1344 1347 42 + 1332 1335 1338 70 1332 1335 1341 70 1503 1500 + 1506 3 1497 1494 1500 5 1497 1494 1509 6 + 1494 1500 1503 7 1494 1500 1506 7 1482 1479 + 1485 10 1476 1479 1482 12 1476 1479 1485 12 + 1473 1470 1476 49 1464 1470 1473 54 1455 1452 + 1458 61 1449 1452 1455 64 1446 1443 1449 26 + 1446 1443 1500 27 1443 1500 1503 31 1443 1500 + 1506 31 1440 1443 1446 33 1437 1434 1440 36 + 1437 1434 1494 37 1434 1494 1497 5 1431 1425 + 1434 40 1428 1425 1431 41 1428 1425 1434 40 + 1425 1434 1437 42 1422 1425 1428 70 1422 1425 + 1431 70 1599 1596 1602 3 1593 1590 1596 5 + 1593 1590 1605 6 1590 1596 1599 7 1590 1596 + 1602 7 1581 1578 1584 74 1575 1578 1581 74 + 1569 1566 1572 10 1563 1566 1569 12 1563 1566 + 1572 12 1554 1551 1557 82 1548 1551 1554 85 + 1545 1542 1548 26 1545 1542 1596 27 1542 1596 + 1599 31 1542 1596 1602 31 1539 1542 1545 33 + 1536 1533 1539 36 1536 1533 1590 37 1533 1590 + 1593 5 1530 1524 1533 40 1527 1524 1530 41 + 1527 1524 1533 40 1524 1533 1536 42 1521 1524 + 1527 70 1521 1524 1530 70 1695 1692 1698 3 + 1689 1686 1692 5 1689 1686 1701 6 1686 1692 + 1695 7 1686 1692 1698 7 1677 1674 1680 54 + 1668 1674 1677 54 1662 1656 1665 3 1659 1656 + 1662 3 1659 1656 1665 3 1653 1656 1659 90 + 1653 1656 1662 90 1653 1656 1665 90 1650 1647 + 1653 93 1644 1647 1650 97 1641 1638 1644 26 + 1641 1638 1692 27 1638 1692 1695 31 1638 1692 + 1698 31 1635 1638 1641 33 1632 1629 1635 36 + 1632 1629 1686 37 1629 1686 1689 5 1626 1620 + 1629 40 1623 1620 1626 41 1623 1620 1629 40 + 1620 1629 1632 42 1617 1620 1623 70 1617 1620 + 1626 70 1785 1782 1788 3 1779 1776 1782 5 + 1779 1776 1791 6 1776 1782 1785 7 1776 1782 + 1788 7 1761 1758 1764 10 1755 1758 1761 12 + 1755 1758 1764 12 1752 1749 1755 14 1746 1743 + 1749 17 1743 1749 1752 19 1740 1743 1746 22 + 1737 1734 1740 26 1737 1734 1782 27 1734 1782 + 1785 31 1734 1782 1788 31 1731 1734 1737 33 + 1728 1725 1731 36 1728 1725 1776 37 1725 1776 + 1779 5 1722 1716 1725 40 1719 1716 1722 41 + 1719 1716 1725 40 1716 1725 1728 42 1713 1716 + 1719 70 1713 1716 1722 70 1884 1881 1887 3 + 1878 1875 1881 5 1878 1875 1890 102 1875 1881 + 1884 7 1875 1881 1887 7 1875 1890 1893 103 + 1863 1860 1866 10 1857 1860 1863 12 1857 1860 + 1866 12 1854 1851 1857 49 1845 1851 1854 54 + 1836 1833 1839 61 1830 1833 1836 64 1827 1824 + 1830 26 1827 1824 1881 27 1824 1881 1884 31 + 1824 1881 1887 31 1821 1824 1827 33 1818 1815 + 1821 36 1818 1815 1875 37 1815 1875 1878 5 + 1812 1806 1815 40 1809 1806 1812 41 1809 1806 + 1815 40 1806 1815 1818 42 1803 1806 1809 70 + 1803 1806 1812 70 +%FLAG ANGLES_WITHOUT_HYDROGEN +%FORMAT(10I8) + 81 84 87 1 81 84 90 1 81 84 + 93 2 72 66 81 4 66 81 84 8 + 57 60 63 9 48 45 57 11 45 57 + 60 13 39 45 48 15 39 45 57 16 + 33 30 60 18 33 39 45 20 30 24 + 72 21 30 33 39 23 30 60 57 24 + 30 60 63 25 24 30 33 28 24 30 + 60 29 24 72 66 30 21 15 66 32 + 21 24 30 34 21 24 72 35 15 21 + 24 38 15 66 72 39 15 66 81 4 + 6 15 21 43 6 15 66 44 3 6 + 15 46 180 183 186 1 180 183 189 1 + 180 183 192 2 171 165 180 4 165 180 + 183 8 150 147 159 11 147 159 162 48 + 141 147 150 50 141 147 159 51 138 135 + 141 52 135 132 162 53 135 141 147 55 + 132 135 138 56 132 135 141 57 132 162 + 159 58 129 132 135 59 129 132 162 60 + 123 120 162 62 123 129 132 63 120 114 + 171 21 120 123 129 65 120 162 132 66 + 120 162 159 67 114 120 123 68 114 120 + 162 69 114 171 165 30 111 105 165 32 + 111 114 120 34 111 114 171 35 105 111 + 114 38 105 165 171 39 105 165 180 4 + 96 105 111 43 96 105 165 44 93 96 + 105 71 90 84 93 1 87 84 90 72 + 87 84 93 1 84 93 96 73 276 279 + 282 1 276 279 285 1 276 279 288 2 + 267 261 276 4 261 276 279 8 249 255 + 258 75 246 249 255 76 237 234 246 11 + 234 231 258 77 234 246 249 78 231 234 + 237 79 231 234 246 80 231 258 255 58 + 228 231 234 81 228 231 258 60 222 219 + 258 83 222 228 231 84 219 213 267 21 + 219 222 228 86 219 258 231 66 219 258 + 255 67 213 219 222 87 213 219 258 69 + 213 267 261 30 210 204 261 32 210 213 + 219 34 210 213 267 35 204 210 213 38 + 204 261 267 39 204 261 276 4 195 204 + 210 43 195 204 261 44 192 195 204 71 + 189 183 192 1 186 183 189 72 186 183 + 192 1 183 192 195 73 372 375 378 1 + 372 375 381 1 372 375 384 2 363 357 + 372 4 357 372 375 8 345 351 354 52 + 342 339 345 52 339 345 351 88 327 324 + 339 89 324 339 342 91 324 339 345 92 + 318 315 351 94 318 324 327 95 318 324 + 339 96 315 309 363 21 315 318 324 98 + 315 351 345 99 315 351 354 25 309 315 + 318 100 309 315 351 29 309 363 357 30 + 306 300 357 32 306 309 315 34 306 309 + 363 35 300 306 309 38 300 357 363 39 + 300 357 372 4 291 300 306 43 291 300 + 357 44 288 291 300 71 285 279 288 1 + 282 279 285 72 282 279 288 1 279 288 + 291 73 462 465 468 1 462 465 471 1 + 462 465 474 2 453 447 462 4 447 462 + 465 8 438 441 444 9 429 426 438 11 + 426 438 441 13 420 426 429 15 420 426 + 438 16 414 411 441 18 414 420 426 20 + 411 405 453 21 411 414 420 23 411 441 + 438 24 411 441 444 25 405 411 414 28 + 405 411 441 29 405 453 447 30 402 396 + 447 32 402 405 411 34 402 405 453 35 + 396 402 405 38 396 447 453 39 396 447 + 462 4 387 396 402 43 387 396 447 44 + 384 387 396 71 381 375 384 1 378 375 + 381 72 378 375 384 1 375 384 387 73 + 561 564 567 1 561 564 570 1 561 564 + 573 2 552 546 561 4 546 561 564 8 + 531 528 540 11 528 540 543 48 522 528 + 531 50 522 528 540 51 519 516 522 52 + 516 513 543 53 516 522 528 55 513 516 + 519 56 513 516 522 57 513 543 540 58 + 510 513 516 59 510 513 543 60 504 501 + 543 62 504 510 513 63 501 495 552 21 + 501 504 510 65 501 543 513 66 501 543 + 540 67 495 501 504 68 495 501 543 69 + 495 552 546 30 492 486 546 32 492 495 + 501 34 492 495 552 35 486 492 495 38 + 486 546 552 39 486 546 561 4 477 486 + 492 43 477 486 546 44 474 477 486 71 + 471 465 474 1 468 465 471 72 468 465 + 474 1 465 474 477 73 657 660 663 1 + 657 660 666 1 657 660 669 2 648 642 + 657 4 642 657 660 8 630 636 639 75 + 627 630 636 76 618 615 627 11 615 612 + 639 77 615 627 630 78 612 615 618 79 + 612 615 627 80 612 639 636 58 609 612 + 615 81 609 612 639 60 603 600 639 83 + 603 609 612 84 600 594 648 21 600 603 + 609 86 600 639 612 66 600 639 636 67 + 594 600 603 87 594 600 639 69 594 648 + 642 30 591 585 642 32 591 594 600 34 + 591 594 648 35 585 591 594 38 585 642 + 648 39 585 642 657 4 576 585 591 43 + 576 585 642 44 573 576 585 71 570 564 + 573 1 567 564 570 72 567 564 573 1 + 564 573 576 73 753 756 759 1 753 756 + 762 1 753 756 765 2 744 738 753 4 + 738 753 756 8 726 732 735 52 723 720 + 726 52 720 726 732 88 708 705 720 89 + 705 720 723 91 705 720 726 92 699 696 + 732 94 699 705 708 95 699 705 720 96 + 696 690 744 21 696 699 705 98 696 732 + 726 99 696 732 735 25 690 696 699 100 + 690 696 732 29 690 744 738 30 687 681 + 738 32 687 690 696 34 687 690 744 35 + 681 687 690 38 681 738 744 39 681 738 + 753 4 672 681 687 43 672 681 738 44 + 669 672 681 71 666 660 669 1 663 660 + 666 72 663 660 669 1 660 669 672 73 + 843 846 849 1 843 846 852 1 843 846 + 855 2 834 828 843 4 828 843 846 8 + 819 822 825 9 810 807 819 11 807 819 + 822 13 801 807 810 15 801 807 819 16 + 795 792 822 18 795 801 807 20 792 786 + 834 21 792 795 801 23 792 822 819 24 + 792 822 825 25 786 792 795 28 786 792 + 822 29 786 834 828 30 783 777 828 32 + 783 786 792 34 783 786 834 35 777 783 + 786 38 777 828 834 39 777 828 843 4 + 768 777 783 43 768 777 828 44 765 768 + 777 71 762 756 765 1 759 756 762 72 + 759 756 765 1 756 765 768 73 933 927 + 942 101 912 909 921 11 909 921 924 48 + 903 909 912 50 903 909 921 51 900 897 + 903 52 897 894 924 53 897 903 909 55 + 894 897 900 56 894 897 903 57 894 924 + 921 58 891 894 897 59 891 894 924 60 + 885 882 924 62 885 891 894 63 882 876 + 933 21 882 885 891 65 882 924 894 66 + 882 924 921 67 876 882 885 68 876 882 + 924 69 876 933 927 30 873 867 927 32 + 873 876 882 34 873 876 933 35 867 873 + 876 38 867 927 933 39 867 927 942 101 + 858 867 873 43 858 867 927 44 855 858 + 867 71 852 846 855 1 849 846 852 72 + 849 846 855 1 846 855 858 73 1029 1032 + 1035 1 1029 1032 1038 1 1029 1032 1041 2 + 1020 1014 1029 4 1014 1029 1032 8 1005 1008 + 1011 9 996 993 1005 11 993 1005 1008 13 + 987 993 996 15 987 993 1005 16 981 978 + 1008 18 981 987 993 20 978 972 1020 21 + 978 981 987 23 978 1008 1005 24 978 1008 + 1011 25 972 978 981 28 972 978 1008 29 + 972 1020 1014 30 969 963 1014 32 969 972 + 978 34 969 972 1020 35 963 969 972 38 + 963 1014 1020 39 963 1014 1029 4 954 963 + 969 43 954 963 1014 44 951 954 963 46 + 1128 1131 1134 1 1128 1131 1137 1 1128 1131 + 1140 2 1119 1113 1128 4 1113 1128 1131 8 + 1098 1095 1107 11 1095 1107 1110 48 1089 1095 + 1098 50 1089 1095 1107 51 1086 1083 1089 52 + 1083 1080 1110 53 1083 1089 1095 55 1080 1083 + 1086 56 1080 1083 1089 57 1080 1110 1107 58 + 1077 1080 1083 59 1077 1080 1110 60 1071 1068 + 1110 62 1071 1077 1080 63 1068 1062 1119 21 + 1068 1071 1077 65 1068 1110 1080 66 1068 1110 + 1107 67 1062 1068 1071 68 1062 1068 1110 69 + 1062 1119 1113 30 1059 1053 1113 32 1059 1062 + 1068 34 1059 1062 1119 35 1053 1059 1062 38 + 1053 1113 1119 39 1053 1113 1128 4 1044 1053 + 1059 43 1044 1053 1113 44 1041 1044 1053 71 + 1038 1032 1041 1 1035 1032 1038 72 1035 1032 + 1041 1 1032 1041 1044 73 1224 1227 1230 1 + 1224 1227 1233 1 1224 1227 1236 2 1215 1209 + 1224 4 1209 1224 1227 8 1197 1203 1206 75 + 1194 1197 1203 76 1185 1182 1194 11 1182 1179 + 1206 77 1182 1194 1197 78 1179 1182 1185 79 + 1179 1182 1194 80 1179 1206 1203 58 1176 1179 + 1182 81 1176 1179 1206 60 1170 1167 1206 83 + 1170 1176 1179 84 1167 1161 1215 21 1167 1170 + 1176 86 1167 1206 1179 66 1167 1206 1203 67 + 1161 1167 1170 87 1161 1167 1206 69 1161 1215 + 1209 30 1158 1152 1209 32 1158 1161 1167 34 + 1158 1161 1215 35 1152 1158 1161 38 1152 1209 + 1215 39 1152 1209 1224 4 1143 1152 1158 43 + 1143 1152 1209 44 1140 1143 1152 71 1137 1131 + 1140 1 1134 1131 1137 72 1134 1131 1140 1 + 1131 1140 1143 73 1320 1323 1326 1 1320 1323 + 1329 1 1320 1323 1332 2 1311 1305 1320 4 + 1305 1320 1323 8 1293 1299 1302 52 1290 1287 + 1293 52 1287 1293 1299 88 1275 1272 1287 89 + 1272 1287 1290 91 1272 1287 1293 92 1266 1263 + 1299 94 1266 1272 1275 95 1266 1272 1287 96 + 1263 1257 1311 21 1263 1266 1272 98 1263 1299 + 1293 99 1263 1299 1302 25 1257 1263 1266 100 + 1257 1263 1299 29 1257 1311 1305 30 1254 1248 + 1305 32 1254 1257 1263 34 1254 1257 1311 35 + 1248 1254 1257 38 1248 1305 1311 39 1248 1305 + 1320 4 1239 1248 1254 43 1239 1248 1305 44 + 1236 1239 1248 71 1233 1227 1236 1 1230 1227 + 1233 72 1230 1227 1236 1 1227 1236 1239 73 + 1410 1413 1416 1 1410 1413 1419 1 1410 1413 + 1422 2 1401 1395 1410 4 1395 1410 1413 8 + 1386 1389 1392 9 1377 1374 1386 11 1374 1386 + 1389 13 1368 1374 1377 15 1368 1374 1386 16 + 1362 1359 1389 18 1362 1368 1374 20 1359 1353 + 1401 21 1359 1362 1368 23 1359 1389 1386 24 + 1359 1389 1392 25 1353 1359 1362 28 1353 1359 + 1389 29 1353 1401 1395 30 1350 1344 1395 32 + 1350 1353 1359 34 1350 1353 1401 35 1344 1350 + 1353 38 1344 1395 1401 39 1344 1395 1410 4 + 1335 1344 1350 43 1335 1344 1395 44 1332 1335 + 1344 71 1329 1323 1332 1 1326 1323 1329 72 + 1326 1323 1332 1 1323 1332 1335 73 1509 1512 + 1515 1 1509 1512 1518 1 1509 1512 1521 2 + 1500 1494 1509 4 1494 1509 1512 8 1479 1476 + 1488 11 1476 1488 1491 48 1470 1476 1479 50 + 1470 1476 1488 51 1467 1464 1470 52 1464 1461 + 1491 53 1464 1470 1476 55 1461 1464 1467 56 + 1461 1464 1470 57 1461 1491 1488 58 1458 1461 + 1464 59 1458 1461 1491 60 1452 1449 1491 62 + 1452 1458 1461 63 1449 1443 1500 21 1449 1452 + 1458 65 1449 1491 1461 66 1449 1491 1488 67 + 1443 1449 1452 68 1443 1449 1491 69 1443 1500 + 1494 30 1440 1434 1494 32 1440 1443 1449 34 + 1440 1443 1500 35 1434 1440 1443 38 1434 1494 + 1500 39 1434 1494 1509 4 1425 1434 1440 43 + 1425 1434 1494 44 1422 1425 1434 71 1419 1413 + 1422 1 1416 1413 1419 72 1416 1413 1422 1 + 1413 1422 1425 73 1605 1608 1611 1 1605 1608 + 1614 1 1605 1608 1617 2 1596 1590 1605 4 + 1590 1605 1608 8 1578 1584 1587 75 1575 1578 + 1584 76 1566 1563 1575 11 1563 1560 1587 77 + 1563 1575 1578 78 1560 1563 1566 79 1560 1563 + 1575 80 1560 1587 1584 58 1557 1560 1563 81 + 1557 1560 1587 60 1551 1548 1587 83 1551 1557 + 1560 84 1548 1542 1596 21 1548 1551 1557 86 + 1548 1587 1560 66 1548 1587 1584 67 1542 1548 + 1551 87 1542 1548 1587 69 1542 1596 1590 30 + 1539 1533 1590 32 1539 1542 1548 34 1539 1542 + 1596 35 1533 1539 1542 38 1533 1590 1596 39 + 1533 1590 1605 4 1524 1533 1539 43 1524 1533 + 1590 44 1521 1524 1533 71 1518 1512 1521 1 + 1515 1512 1518 72 1515 1512 1521 1 1512 1521 + 1524 73 1701 1704 1707 1 1701 1704 1710 1 + 1701 1704 1713 2 1692 1686 1701 4 1686 1701 + 1704 8 1674 1680 1683 52 1671 1668 1674 52 + 1668 1674 1680 88 1656 1653 1668 89 1653 1668 + 1671 91 1653 1668 1674 92 1647 1644 1680 94 + 1647 1653 1656 95 1647 1653 1668 96 1644 1638 + 1692 21 1644 1647 1653 98 1644 1680 1674 99 + 1644 1680 1683 25 1638 1644 1647 100 1638 1644 + 1680 29 1638 1692 1686 30 1635 1629 1686 32 + 1635 1638 1644 34 1635 1638 1692 35 1629 1635 + 1638 38 1629 1686 1692 39 1629 1686 1701 4 + 1620 1629 1635 43 1620 1629 1686 44 1617 1620 + 1629 71 1614 1608 1617 1 1611 1608 1614 72 + 1611 1608 1617 1 1608 1617 1620 73 1791 1794 + 1797 1 1791 1794 1800 1 1791 1794 1803 2 + 1782 1776 1791 4 1776 1791 1794 8 1767 1770 + 1773 9 1758 1755 1767 11 1755 1767 1770 13 + 1749 1755 1758 15 1749 1755 1767 16 1743 1740 + 1770 18 1743 1749 1755 20 1740 1734 1782 21 + 1740 1743 1749 23 1740 1770 1767 24 1740 1770 + 1773 25 1734 1740 1743 28 1734 1740 1770 29 + 1734 1782 1776 30 1731 1725 1776 32 1731 1734 + 1740 34 1731 1734 1782 35 1725 1731 1734 38 + 1725 1776 1782 39 1725 1776 1791 4 1716 1725 + 1731 43 1716 1725 1776 44 1713 1716 1725 71 + 1710 1704 1713 1 1707 1704 1710 72 1707 1704 + 1713 1 1704 1713 1716 73 1881 1875 1890 101 + 1860 1857 1869 11 1857 1869 1872 48 1851 1857 + 1860 50 1851 1857 1869 51 1848 1845 1851 52 + 1845 1842 1872 53 1845 1851 1857 55 1842 1845 + 1848 56 1842 1845 1851 57 1842 1872 1869 58 + 1839 1842 1845 59 1839 1842 1872 60 1833 1830 + 1872 62 1833 1839 1842 63 1830 1824 1881 21 + 1830 1833 1839 65 1830 1872 1842 66 1830 1872 + 1869 67 1824 1830 1833 68 1824 1830 1872 69 + 1824 1881 1875 30 1821 1815 1875 32 1821 1824 + 1830 34 1821 1824 1881 35 1815 1821 1824 38 + 1815 1875 1881 39 1815 1875 1890 101 1806 1815 + 1821 43 1806 1815 1875 44 1803 1806 1815 71 + 1800 1794 1803 1 1797 1794 1800 72 1797 1794 + 1803 1 1794 1803 1806 73 +%FLAG DIHEDRALS_INC_HYDROGEN +%FORMAT(10I8) + 78 72 66 81 4 78 72 -66 81 5 + 75 72 66 81 4 75 72 -66 81 5 + 69 66 72 75 9 69 66 72 78 9 + 69 66 81 84 10 54 48 45 57 15 + 51 48 45 57 15 42 39 45 48 18 + 42 39 45 57 18 39 45 48 51 15 + 39 45 48 54 15 36 33 30 60 19 + 36 33 39 42 20 36 33 39 45 20 + 30 24 72 75 9 30 24 72 78 9 + 30 33 39 42 20 27 24 30 33 14 + 27 24 30 60 14 27 24 72 66 9 + 27 24 72 75 9 27 24 72 78 9 + 24 30 33 36 19 24 72 66 69 9 + 21 15 66 69 4 21 15 -66 69 5 + 21 24 72 75 4 21 24 -72 75 5 + 21 24 72 78 4 21 24 -72 78 5 + 18 15 21 24 10 18 15 66 69 9 + 18 15 66 72 9 18 15 66 81 4 + 18 15 -66 81 5 15 21 24 27 10 + 15 66 72 75 34 15 66 72 78 34 + 12 6 15 18 9 12 6 15 21 4 + 12 6 15 66 9 9 6 15 18 9 + 9 6 15 21 4 9 6 15 66 9 + 6 15 66 69 9 3 6 15 18 4 + 0 3 6 9 38 0 3 6 12 38 + 0 3 6 15 38 177 171 165 180 4 + 177 171 -165 180 5 174 171 165 180 4 + 174 171 -165 180 5 168 165 171 174 9 + 168 165 171 177 9 168 165 180 183 10 + 156 150 147 159 15 153 150 147 159 15 + 144 141 147 150 39 144 141 147 159 39 + 141 147 150 153 15 141 147 150 156 15 + 138 135 141 144 41 132 135 141 144 41 + 126 123 120 162 44 126 123 129 132 45 + 120 114 171 174 9 120 114 171 177 9 + 117 114 120 123 14 117 114 120 162 14 + 117 114 171 165 9 117 114 171 174 9 + 117 114 171 177 9 114 120 123 126 44 + 114 171 165 168 9 111 105 165 168 4 + 111 105 -165 168 5 111 114 171 174 4 + 111 114 -171 174 5 111 114 171 177 4 + 111 114 -171 177 5 108 105 111 114 10 + 108 105 165 168 9 108 105 165 171 9 + 108 105 165 180 4 108 105 -165 180 5 + 105 111 114 117 10 105 165 171 174 34 + 105 165 171 177 34 102 96 105 108 9 + 102 96 105 111 4 102 96 105 165 9 + 99 96 105 108 9 99 96 105 111 4 + 99 96 105 165 9 96 105 165 168 9 + 93 96 105 108 4 84 93 96 99 10 + 84 93 96 102 10 273 267 261 276 4 + 273 267 -261 276 5 270 267 261 276 4 + 270 267 -261 276 5 264 261 267 270 9 + 264 261 267 273 9 264 261 276 279 10 + 252 249 255 258 55 243 237 234 246 15 + 240 237 234 246 15 234 246 249 252 55 + 231 234 237 240 15 231 234 237 243 15 + 225 222 219 258 44 225 222 228 231 45 + 219 213 267 270 9 219 213 267 273 9 + 216 213 219 222 14 216 213 219 258 14 + 216 213 267 261 9 216 213 267 270 9 + 216 213 267 273 9 213 219 222 225 44 + 213 267 261 264 9 210 204 261 264 4 + 210 204 -261 264 5 210 213 267 270 4 + 210 213 -267 270 5 210 213 267 273 4 + 210 213 -267 273 5 207 204 210 213 10 + 207 204 261 264 9 207 204 261 267 9 + 207 204 261 276 4 207 204 -261 276 5 + 204 210 213 216 10 204 261 267 270 34 + 204 261 267 273 34 201 195 204 207 9 + 201 195 204 210 4 201 195 204 261 9 + 198 195 204 207 9 198 195 204 210 4 + 198 195 204 261 9 195 204 261 264 9 + 192 195 204 207 4 183 192 195 198 10 + 183 192 195 201 10 369 363 357 372 4 + 369 363 -357 372 5 366 363 357 372 4 + 366 363 -357 372 5 360 357 363 366 9 + 360 357 363 369 9 360 357 372 375 10 + 348 345 351 354 41 342 339 345 348 41 + 336 327 324 339 5 333 327 324 339 5 + 330 327 324 339 5 324 339 345 348 41 + 321 318 315 351 19 321 318 324 327 20 + 321 318 324 339 20 318 324 327 330 61 + 318 324 -327 330 62 318 324 327 333 61 + 318 324 -327 333 62 318 324 327 336 61 + 318 324 -327 336 62 315 309 363 366 9 + 315 309 363 369 9 315 351 345 348 41 + 312 309 315 318 14 312 309 315 351 14 + 312 309 363 357 9 312 309 363 366 9 + 312 309 363 369 9 309 315 318 321 19 + 309 363 357 360 9 306 300 357 360 4 + 306 300 -357 360 5 306 309 363 366 4 + 306 309 -363 366 5 306 309 363 369 4 + 306 309 -363 369 5 303 300 306 309 10 + 303 300 357 360 9 303 300 357 363 9 + 303 300 357 372 4 303 300 -357 372 5 + 300 306 309 312 10 300 357 363 366 34 + 300 357 363 369 34 297 291 300 303 9 + 297 291 300 306 4 297 291 300 357 9 + 294 291 300 303 9 294 291 300 306 4 + 294 291 300 357 9 291 300 357 360 9 + 288 291 300 303 4 279 288 291 294 10 + 279 288 291 297 10 459 453 447 462 4 + 459 453 -447 462 5 456 453 447 462 4 + 456 453 -447 462 5 450 447 453 456 9 + 450 447 453 459 9 450 447 462 465 10 + 435 429 426 438 15 432 429 426 438 15 + 423 420 426 429 18 423 420 426 438 18 + 420 426 429 432 15 420 426 429 435 15 + 417 414 411 441 19 417 414 420 423 20 + 417 414 420 426 20 411 405 453 456 9 + 411 405 453 459 9 411 414 420 423 20 + 408 405 411 414 14 408 405 411 441 14 + 408 405 453 447 9 408 405 453 456 9 + 408 405 453 459 9 405 411 414 417 19 + 405 453 447 450 9 402 396 447 450 4 + 402 396 -447 450 5 402 405 453 456 4 + 402 405 -453 456 5 402 405 453 459 4 + 402 405 -453 459 5 399 396 402 405 10 + 399 396 447 450 9 399 396 447 453 9 + 399 396 447 462 4 399 396 -447 462 5 + 396 402 405 408 10 396 447 453 456 34 + 396 447 453 459 34 393 387 396 399 9 + 393 387 396 402 4 393 387 396 447 9 + 390 387 396 399 9 390 387 396 402 4 + 390 387 396 447 9 387 396 447 450 9 + 384 387 396 399 4 375 384 387 390 10 + 375 384 387 393 10 558 552 546 561 4 + 558 552 -546 561 5 555 552 546 561 4 + 555 552 -546 561 5 549 546 552 555 9 + 549 546 552 558 9 549 546 561 564 10 + 537 531 528 540 15 534 531 528 540 15 + 525 522 528 531 39 525 522 528 540 39 + 522 528 531 534 15 522 528 531 537 15 + 519 516 522 525 41 513 516 522 525 41 + 507 504 501 543 44 507 504 510 513 45 + 501 495 552 555 9 501 495 552 558 9 + 498 495 501 504 14 498 495 501 543 14 + 498 495 552 546 9 498 495 552 555 9 + 498 495 552 558 9 495 501 504 507 44 + 495 552 546 549 9 492 486 546 549 4 + 492 486 -546 549 5 492 495 552 555 4 + 492 495 -552 555 5 492 495 552 558 4 + 492 495 -552 558 5 489 486 492 495 10 + 489 486 546 549 9 489 486 546 552 9 + 489 486 546 561 4 489 486 -546 561 5 + 486 492 495 498 10 486 546 552 555 34 + 486 546 552 558 34 483 477 486 489 9 + 483 477 486 492 4 483 477 486 546 9 + 480 477 486 489 9 480 477 486 492 4 + 480 477 486 546 9 477 486 546 549 9 + 474 477 486 489 4 465 474 477 480 10 + 465 474 477 483 10 654 648 642 657 4 + 654 648 -642 657 5 651 648 642 657 4 + 651 648 -642 657 5 645 642 648 651 9 + 645 642 648 654 9 645 642 657 660 10 + 633 630 636 639 55 624 618 615 627 15 + 621 618 615 627 15 615 627 630 633 55 + 612 615 618 621 15 612 615 618 624 15 + 606 603 600 639 44 606 603 609 612 45 + 600 594 648 651 9 600 594 648 654 9 + 597 594 600 603 14 597 594 600 639 14 + 597 594 648 642 9 597 594 648 651 9 + 597 594 648 654 9 594 600 603 606 44 + 594 648 642 645 9 591 585 642 645 4 + 591 585 -642 645 5 591 594 648 651 4 + 591 594 -648 651 5 591 594 648 654 4 + 591 594 -648 654 5 588 585 591 594 10 + 588 585 642 645 9 588 585 642 648 9 + 588 585 642 657 4 588 585 -642 657 5 + 585 591 594 597 10 585 642 648 651 34 + 585 642 648 654 34 582 576 585 588 9 + 582 576 585 591 4 582 576 585 642 9 + 579 576 585 588 9 579 576 585 591 4 + 579 576 585 642 9 576 585 642 645 9 + 573 576 585 588 4 564 573 576 579 10 + 564 573 576 582 10 750 744 738 753 4 + 750 744 -738 753 5 747 744 738 753 4 + 747 744 -738 753 5 741 738 744 747 9 + 741 738 744 750 9 741 738 753 756 10 + 729 726 732 735 41 723 720 726 729 41 + 717 708 705 720 5 714 708 705 720 5 + 711 708 705 720 5 705 720 726 729 41 + 702 699 696 732 19 702 699 705 708 20 + 702 699 705 720 20 699 705 708 711 61 + 699 705 -708 711 62 699 705 708 714 61 + 699 705 -708 714 62 699 705 708 717 61 + 699 705 -708 717 62 696 690 744 747 9 + 696 690 744 750 9 696 732 726 729 41 + 693 690 696 699 14 693 690 696 732 14 + 693 690 744 738 9 693 690 744 747 9 + 693 690 744 750 9 690 696 699 702 19 + 690 744 738 741 9 687 681 738 741 4 + 687 681 -738 741 5 687 690 744 747 4 + 687 690 -744 747 5 687 690 744 750 4 + 687 690 -744 750 5 684 681 687 690 10 + 684 681 738 741 9 684 681 738 744 9 + 684 681 738 753 4 684 681 -738 753 5 + 681 687 690 693 10 681 738 744 747 34 + 681 738 744 750 34 678 672 681 684 9 + 678 672 681 687 4 678 672 681 738 9 + 675 672 681 684 9 675 672 681 687 4 + 675 672 681 738 9 672 681 738 741 9 + 669 672 681 684 4 660 669 672 675 10 + 660 669 672 678 10 840 834 828 843 4 + 840 834 -828 843 5 837 834 828 843 4 + 837 834 -828 843 5 831 828 834 837 9 + 831 828 834 840 9 831 828 843 846 10 + 816 810 807 819 15 813 810 807 819 15 + 804 801 807 810 18 804 801 807 819 18 + 801 807 810 813 15 801 807 810 816 15 + 798 795 792 822 19 798 795 801 804 20 + 798 795 801 807 20 792 786 834 837 9 + 792 786 834 840 9 792 795 801 804 20 + 789 786 792 795 14 789 786 792 822 14 + 789 786 834 828 9 789 786 834 837 9 + 789 786 834 840 9 786 792 795 798 19 + 786 834 828 831 9 783 777 828 831 4 + 783 777 -828 831 5 783 786 834 837 4 + 783 786 -834 837 5 783 786 834 840 4 + 783 786 -834 840 5 780 777 783 786 10 + 780 777 828 831 9 780 777 828 834 9 + 780 777 828 843 4 780 777 -828 843 5 + 777 783 786 789 10 777 828 834 837 34 + 777 828 834 840 34 774 768 777 780 9 + 774 768 777 783 4 774 768 777 828 9 + 771 768 777 780 9 771 768 777 783 4 + 771 768 777 828 9 768 777 828 831 9 + 765 768 777 780 4 756 765 768 771 10 + 756 765 768 774 10 939 933 927 942 4 + 939 933 -927 942 5 936 933 927 942 4 + 936 933 -927 942 5 933 927 942 945 4 + 933 927 -942 945 34 930 927 933 936 9 + 930 927 933 939 9 930 927 942 945 38 + 918 912 909 921 15 915 912 909 921 15 + 906 903 909 912 39 906 903 909 921 39 + 903 909 912 915 15 903 909 912 918 15 + 900 897 903 906 41 894 897 903 906 41 + 888 885 882 924 44 888 885 891 894 45 + 882 876 933 936 9 882 876 933 939 9 + 879 876 882 885 14 879 876 882 924 14 + 879 876 933 927 9 879 876 933 936 9 + 879 876 933 939 9 876 882 885 888 44 + 876 933 927 930 9 873 867 927 930 4 + 873 867 -927 930 5 873 876 933 936 4 + 873 876 -933 936 5 873 876 933 939 4 + 873 876 -933 939 5 870 867 873 876 10 + 870 867 927 930 9 870 867 927 933 9 + 870 867 927 942 4 870 867 -927 942 5 + 867 873 876 879 10 867 927 933 936 34 + 867 927 933 939 34 867 927 942 945 4 + 867 927 -942 945 34 864 858 867 870 9 + 864 858 867 873 4 864 858 867 927 9 + 861 858 867 870 9 861 858 867 873 4 + 861 858 867 927 9 858 867 927 930 9 + 855 858 867 870 4 846 855 858 861 10 + 846 855 858 864 10 1026 1020 1014 1029 4 + 1026 1020 -1014 1029 5 1023 1020 1014 1029 4 + 1023 1020 -1014 1029 5 1017 1014 1020 1023 9 + 1017 1014 1020 1026 9 1017 1014 1029 1032 10 + 1002 996 993 1005 15 999 996 993 1005 15 + 990 987 993 996 18 990 987 993 1005 18 + 987 993 996 999 15 987 993 996 1002 15 + 984 981 978 1008 19 984 981 987 990 20 + 984 981 987 993 20 978 972 1020 1023 9 + 978 972 1020 1026 9 978 981 987 990 20 + 975 972 978 981 14 975 972 978 1008 14 + 975 972 1020 1014 9 975 972 1020 1023 9 + 975 972 1020 1026 9 972 978 981 984 19 + 972 1020 1014 1017 9 969 963 1014 1017 4 + 969 963 -1014 1017 5 969 972 1020 1023 4 + 969 972 -1020 1023 5 969 972 1020 1026 4 + 969 972 -1020 1026 5 966 963 969 972 10 + 966 963 1014 1017 9 966 963 1014 1020 9 + 966 963 1014 1029 4 966 963 -1014 1029 5 + 963 969 972 975 10 963 1014 1020 1023 34 + 963 1014 1020 1026 34 960 954 963 966 9 + 960 954 963 969 4 960 954 963 1014 9 + 957 954 963 966 9 957 954 963 969 4 + 957 954 963 1014 9 954 963 1014 1017 9 + 951 954 963 966 4 948 951 954 957 38 + 948 951 954 960 38 948 951 954 963 38 + 1125 1119 1113 1128 4 1125 1119 -1113 1128 5 + 1122 1119 1113 1128 4 1122 1119 -1113 1128 5 + 1116 1113 1119 1122 9 1116 1113 1119 1125 9 + 1116 1113 1128 1131 10 1104 1098 1095 1107 15 + 1101 1098 1095 1107 15 1092 1089 1095 1098 39 + 1092 1089 1095 1107 39 1089 1095 1098 1101 15 + 1089 1095 1098 1104 15 1086 1083 1089 1092 41 + 1080 1083 1089 1092 41 1074 1071 1068 1110 44 + 1074 1071 1077 1080 45 1068 1062 1119 1122 9 + 1068 1062 1119 1125 9 1065 1062 1068 1071 14 + 1065 1062 1068 1110 14 1065 1062 1119 1113 9 + 1065 1062 1119 1122 9 1065 1062 1119 1125 9 + 1062 1068 1071 1074 44 1062 1119 1113 1116 9 + 1059 1053 1113 1116 4 1059 1053 -1113 1116 5 + 1059 1062 1119 1122 4 1059 1062 -1119 1122 5 + 1059 1062 1119 1125 4 1059 1062 -1119 1125 5 + 1056 1053 1059 1062 10 1056 1053 1113 1116 9 + 1056 1053 1113 1119 9 1056 1053 1113 1128 4 + 1056 1053 -1113 1128 5 1053 1059 1062 1065 10 + 1053 1113 1119 1122 34 1053 1113 1119 1125 34 + 1050 1044 1053 1056 9 1050 1044 1053 1059 4 + 1050 1044 1053 1113 9 1047 1044 1053 1056 9 + 1047 1044 1053 1059 4 1047 1044 1053 1113 9 + 1044 1053 1113 1116 9 1041 1044 1053 1056 4 + 1032 1041 1044 1047 10 1032 1041 1044 1050 10 + 1221 1215 1209 1224 4 1221 1215 -1209 1224 5 + 1218 1215 1209 1224 4 1218 1215 -1209 1224 5 + 1212 1209 1215 1218 9 1212 1209 1215 1221 9 + 1212 1209 1224 1227 10 1200 1197 1203 1206 55 + 1191 1185 1182 1194 15 1188 1185 1182 1194 15 + 1182 1194 1197 1200 55 1179 1182 1185 1188 15 + 1179 1182 1185 1191 15 1173 1170 1167 1206 44 + 1173 1170 1176 1179 45 1167 1161 1215 1218 9 + 1167 1161 1215 1221 9 1164 1161 1167 1170 14 + 1164 1161 1167 1206 14 1164 1161 1215 1209 9 + 1164 1161 1215 1218 9 1164 1161 1215 1221 9 + 1161 1167 1170 1173 44 1161 1215 1209 1212 9 + 1158 1152 1209 1212 4 1158 1152 -1209 1212 5 + 1158 1161 1215 1218 4 1158 1161 -1215 1218 5 + 1158 1161 1215 1221 4 1158 1161 -1215 1221 5 + 1155 1152 1158 1161 10 1155 1152 1209 1212 9 + 1155 1152 1209 1215 9 1155 1152 1209 1224 4 + 1155 1152 -1209 1224 5 1152 1158 1161 1164 10 + 1152 1209 1215 1218 34 1152 1209 1215 1221 34 + 1149 1143 1152 1155 9 1149 1143 1152 1158 4 + 1149 1143 1152 1209 9 1146 1143 1152 1155 9 + 1146 1143 1152 1158 4 1146 1143 1152 1209 9 + 1143 1152 1209 1212 9 1140 1143 1152 1155 4 + 1131 1140 1143 1146 10 1131 1140 1143 1149 10 + 1317 1311 1305 1320 4 1317 1311 -1305 1320 5 + 1314 1311 1305 1320 4 1314 1311 -1305 1320 5 + 1308 1305 1311 1314 9 1308 1305 1311 1317 9 + 1308 1305 1320 1323 10 1296 1293 1299 1302 41 + 1290 1287 1293 1296 41 1284 1275 1272 1287 5 + 1281 1275 1272 1287 5 1278 1275 1272 1287 5 + 1272 1287 1293 1296 41 1269 1266 1263 1299 19 + 1269 1266 1272 1275 20 1269 1266 1272 1287 20 + 1266 1272 1275 1278 61 1266 1272 -1275 1278 62 + 1266 1272 1275 1281 61 1266 1272 -1275 1281 62 + 1266 1272 1275 1284 61 1266 1272 -1275 1284 62 + 1263 1257 1311 1314 9 1263 1257 1311 1317 9 + 1263 1299 1293 1296 41 1260 1257 1263 1266 14 + 1260 1257 1263 1299 14 1260 1257 1311 1305 9 + 1260 1257 1311 1314 9 1260 1257 1311 1317 9 + 1257 1263 1266 1269 19 1257 1311 1305 1308 9 + 1254 1248 1305 1308 4 1254 1248 -1305 1308 5 + 1254 1257 1311 1314 4 1254 1257 -1311 1314 5 + 1254 1257 1311 1317 4 1254 1257 -1311 1317 5 + 1251 1248 1254 1257 10 1251 1248 1305 1308 9 + 1251 1248 1305 1311 9 1251 1248 1305 1320 4 + 1251 1248 -1305 1320 5 1248 1254 1257 1260 10 + 1248 1305 1311 1314 34 1248 1305 1311 1317 34 + 1245 1239 1248 1251 9 1245 1239 1248 1254 4 + 1245 1239 1248 1305 9 1242 1239 1248 1251 9 + 1242 1239 1248 1254 4 1242 1239 1248 1305 9 + 1239 1248 1305 1308 9 1236 1239 1248 1251 4 + 1227 1236 1239 1242 10 1227 1236 1239 1245 10 + 1407 1401 1395 1410 4 1407 1401 -1395 1410 5 + 1404 1401 1395 1410 4 1404 1401 -1395 1410 5 + 1398 1395 1401 1404 9 1398 1395 1401 1407 9 + 1398 1395 1410 1413 10 1383 1377 1374 1386 15 + 1380 1377 1374 1386 15 1371 1368 1374 1377 18 + 1371 1368 1374 1386 18 1368 1374 1377 1380 15 + 1368 1374 1377 1383 15 1365 1362 1359 1389 19 + 1365 1362 1368 1371 20 1365 1362 1368 1374 20 + 1359 1353 1401 1404 9 1359 1353 1401 1407 9 + 1359 1362 1368 1371 20 1356 1353 1359 1362 14 + 1356 1353 1359 1389 14 1356 1353 1401 1395 9 + 1356 1353 1401 1404 9 1356 1353 1401 1407 9 + 1353 1359 1362 1365 19 1353 1401 1395 1398 9 + 1350 1344 1395 1398 4 1350 1344 -1395 1398 5 + 1350 1353 1401 1404 4 1350 1353 -1401 1404 5 + 1350 1353 1401 1407 4 1350 1353 -1401 1407 5 + 1347 1344 1350 1353 10 1347 1344 1395 1398 9 + 1347 1344 1395 1401 9 1347 1344 1395 1410 4 + 1347 1344 -1395 1410 5 1344 1350 1353 1356 10 + 1344 1395 1401 1404 34 1344 1395 1401 1407 34 + 1341 1335 1344 1347 9 1341 1335 1344 1350 4 + 1341 1335 1344 1395 9 1338 1335 1344 1347 9 + 1338 1335 1344 1350 4 1338 1335 1344 1395 9 + 1335 1344 1395 1398 9 1332 1335 1344 1347 4 + 1323 1332 1335 1338 10 1323 1332 1335 1341 10 + 1506 1500 1494 1509 4 1506 1500 -1494 1509 5 + 1503 1500 1494 1509 4 1503 1500 -1494 1509 5 + 1497 1494 1500 1503 9 1497 1494 1500 1506 9 + 1497 1494 1509 1512 10 1485 1479 1476 1488 15 + 1482 1479 1476 1488 15 1473 1470 1476 1479 39 + 1473 1470 1476 1488 39 1470 1476 1479 1482 15 + 1470 1476 1479 1485 15 1467 1464 1470 1473 41 + 1461 1464 1470 1473 41 1455 1452 1449 1491 44 + 1455 1452 1458 1461 45 1449 1443 1500 1503 9 + 1449 1443 1500 1506 9 1446 1443 1449 1452 14 + 1446 1443 1449 1491 14 1446 1443 1500 1494 9 + 1446 1443 1500 1503 9 1446 1443 1500 1506 9 + 1443 1449 1452 1455 44 1443 1500 1494 1497 9 + 1440 1434 1494 1497 4 1440 1434 -1494 1497 5 + 1440 1443 1500 1503 4 1440 1443 -1500 1503 5 + 1440 1443 1500 1506 4 1440 1443 -1500 1506 5 + 1437 1434 1440 1443 10 1437 1434 1494 1497 9 + 1437 1434 1494 1500 9 1437 1434 1494 1509 4 + 1437 1434 -1494 1509 5 1434 1440 1443 1446 10 + 1434 1494 1500 1503 34 1434 1494 1500 1506 34 + 1431 1425 1434 1437 9 1431 1425 1434 1440 4 + 1431 1425 1434 1494 9 1428 1425 1434 1437 9 + 1428 1425 1434 1440 4 1428 1425 1434 1494 9 + 1425 1434 1494 1497 9 1422 1425 1434 1437 4 + 1413 1422 1425 1428 10 1413 1422 1425 1431 10 + 1602 1596 1590 1605 4 1602 1596 -1590 1605 5 + 1599 1596 1590 1605 4 1599 1596 -1590 1605 5 + 1593 1590 1596 1599 9 1593 1590 1596 1602 9 + 1593 1590 1605 1608 10 1581 1578 1584 1587 55 + 1572 1566 1563 1575 15 1569 1566 1563 1575 15 + 1563 1575 1578 1581 55 1560 1563 1566 1569 15 + 1560 1563 1566 1572 15 1554 1551 1548 1587 44 + 1554 1551 1557 1560 45 1548 1542 1596 1599 9 + 1548 1542 1596 1602 9 1545 1542 1548 1551 14 + 1545 1542 1548 1587 14 1545 1542 1596 1590 9 + 1545 1542 1596 1599 9 1545 1542 1596 1602 9 + 1542 1548 1551 1554 44 1542 1596 1590 1593 9 + 1539 1533 1590 1593 4 1539 1533 -1590 1593 5 + 1539 1542 1596 1599 4 1539 1542 -1596 1599 5 + 1539 1542 1596 1602 4 1539 1542 -1596 1602 5 + 1536 1533 1539 1542 10 1536 1533 1590 1593 9 + 1536 1533 1590 1596 9 1536 1533 1590 1605 4 + 1536 1533 -1590 1605 5 1533 1539 1542 1545 10 + 1533 1590 1596 1599 34 1533 1590 1596 1602 34 + 1530 1524 1533 1536 9 1530 1524 1533 1539 4 + 1530 1524 1533 1590 9 1527 1524 1533 1536 9 + 1527 1524 1533 1539 4 1527 1524 1533 1590 9 + 1524 1533 1590 1593 9 1521 1524 1533 1536 4 + 1512 1521 1524 1527 10 1512 1521 1524 1530 10 + 1698 1692 1686 1701 4 1698 1692 -1686 1701 5 + 1695 1692 1686 1701 4 1695 1692 -1686 1701 5 + 1689 1686 1692 1695 9 1689 1686 1692 1698 9 + 1689 1686 1701 1704 10 1677 1674 1680 1683 41 + 1671 1668 1674 1677 41 1665 1656 1653 1668 5 + 1662 1656 1653 1668 5 1659 1656 1653 1668 5 + 1653 1668 1674 1677 41 1650 1647 1644 1680 19 + 1650 1647 1653 1656 20 1650 1647 1653 1668 20 + 1647 1653 1656 1659 61 1647 1653 -1656 1659 62 + 1647 1653 1656 1662 61 1647 1653 -1656 1662 62 + 1647 1653 1656 1665 61 1647 1653 -1656 1665 62 + 1644 1638 1692 1695 9 1644 1638 1692 1698 9 + 1644 1680 1674 1677 41 1641 1638 1644 1647 14 + 1641 1638 1644 1680 14 1641 1638 1692 1686 9 + 1641 1638 1692 1695 9 1641 1638 1692 1698 9 + 1638 1644 1647 1650 19 1638 1692 1686 1689 9 + 1635 1629 1686 1689 4 1635 1629 -1686 1689 5 + 1635 1638 1692 1695 4 1635 1638 -1692 1695 5 + 1635 1638 1692 1698 4 1635 1638 -1692 1698 5 + 1632 1629 1635 1638 10 1632 1629 1686 1689 9 + 1632 1629 1686 1692 9 1632 1629 1686 1701 4 + 1632 1629 -1686 1701 5 1629 1635 1638 1641 10 + 1629 1686 1692 1695 34 1629 1686 1692 1698 34 + 1626 1620 1629 1632 9 1626 1620 1629 1635 4 + 1626 1620 1629 1686 9 1623 1620 1629 1632 9 + 1623 1620 1629 1635 4 1623 1620 1629 1686 9 + 1620 1629 1686 1689 9 1617 1620 1629 1632 4 + 1608 1617 1620 1623 10 1608 1617 1620 1626 10 + 1788 1782 1776 1791 4 1788 1782 -1776 1791 5 + 1785 1782 1776 1791 4 1785 1782 -1776 1791 5 + 1779 1776 1782 1785 9 1779 1776 1782 1788 9 + 1779 1776 1791 1794 10 1764 1758 1755 1767 15 + 1761 1758 1755 1767 15 1752 1749 1755 1758 18 + 1752 1749 1755 1767 18 1749 1755 1758 1761 15 + 1749 1755 1758 1764 15 1746 1743 1740 1770 19 + 1746 1743 1749 1752 20 1746 1743 1749 1755 20 + 1740 1734 1782 1785 9 1740 1734 1782 1788 9 + 1740 1743 1749 1752 20 1737 1734 1740 1743 14 + 1737 1734 1740 1770 14 1737 1734 1782 1776 9 + 1737 1734 1782 1785 9 1737 1734 1782 1788 9 + 1734 1740 1743 1746 19 1734 1782 1776 1779 9 + 1731 1725 1776 1779 4 1731 1725 -1776 1779 5 + 1731 1734 1782 1785 4 1731 1734 -1782 1785 5 + 1731 1734 1782 1788 4 1731 1734 -1782 1788 5 + 1728 1725 1731 1734 10 1728 1725 1776 1779 9 + 1728 1725 1776 1782 9 1728 1725 1776 1791 4 + 1728 1725 -1776 1791 5 1725 1731 1734 1737 10 + 1725 1776 1782 1785 34 1725 1776 1782 1788 34 + 1722 1716 1725 1728 9 1722 1716 1725 1731 4 + 1722 1716 1725 1776 9 1719 1716 1725 1728 9 + 1719 1716 1725 1731 4 1719 1716 1725 1776 9 + 1716 1725 1776 1779 9 1713 1716 1725 1728 4 + 1704 1713 1716 1719 10 1704 1713 1716 1722 10 + 1887 1881 1875 1890 4 1887 1881 -1875 1890 5 + 1884 1881 1875 1890 4 1884 1881 -1875 1890 5 + 1881 1875 1890 1893 4 1881 1875 -1890 1893 34 + 1878 1875 1881 1884 9 1878 1875 1881 1887 9 + 1878 1875 1890 1893 38 1866 1860 1857 1869 15 + 1863 1860 1857 1869 15 1854 1851 1857 1860 39 + 1854 1851 1857 1869 39 1851 1857 1860 1863 15 + 1851 1857 1860 1866 15 1848 1845 1851 1854 41 + 1842 1845 1851 1854 41 1836 1833 1830 1872 44 + 1836 1833 1839 1842 45 1830 1824 1881 1884 9 + 1830 1824 1881 1887 9 1827 1824 1830 1833 14 + 1827 1824 1830 1872 14 1827 1824 1881 1875 9 + 1827 1824 1881 1884 9 1827 1824 1881 1887 9 + 1824 1830 1833 1836 44 1824 1881 1875 1878 9 + 1821 1815 1875 1878 4 1821 1815 -1875 1878 5 + 1821 1824 1881 1884 4 1821 1824 -1881 1884 5 + 1821 1824 1881 1887 4 1821 1824 -1881 1887 5 + 1818 1815 1821 1824 10 1818 1815 1875 1878 9 + 1818 1815 1875 1881 9 1818 1815 1875 1890 4 + 1818 1815 -1875 1890 5 1815 1821 1824 1827 10 + 1815 1875 1881 1884 34 1815 1875 1881 1887 34 + 1815 1875 1890 1893 4 1815 1875 -1890 1893 34 + 1812 1806 1815 1818 9 1812 1806 1815 1821 4 + 1812 1806 1815 1875 9 1809 1806 1815 1818 9 + 1809 1806 1815 1821 4 1809 1806 1815 1875 9 + 1806 1815 1875 1878 9 1803 1806 1815 1818 4 + 1794 1803 1806 1809 10 1794 1803 1806 1812 10 + 45 51 -48 -54 69 33 45 -39 -42 70 + 30 39 -33 -36 70 3 9 -6 -12 71 + 3 9 -6 -15 71 15 12 -6 -3 71 + 9 12 -6 -15 71 147 153 -150 -156 69 + 135 147 -141 -144 69 120 129 -123 -126 70 + 93 99 -96 -102 71 93 99 -96 -105 71 + 105 102 -96 -93 71 105 99 -96 -102 71 + 246 255 -249 -252 70 234 240 -237 -243 69 + 219 228 -222 -225 70 198 201 -195 -192 71 + 204 198 -195 -192 71 204 201 -195 -192 71 + 204 198 -195 -201 71 339 351 -345 -348 69 + 315 324 -318 -321 70 294 297 -291 -288 71 + 300 294 -291 -288 71 300 297 -291 -288 71 + 300 294 -291 -297 71 426 432 -429 -435 69 + 414 426 -420 -423 70 411 420 -414 -417 70 + 390 393 -387 -384 71 396 390 -387 -384 71 + 396 393 -387 -384 71 396 390 -387 -393 71 + 528 534 -531 -537 69 516 528 -522 -525 69 + 501 510 -504 -507 70 480 483 -477 -474 71 + 486 480 -477 -474 71 486 483 -477 -474 71 + 486 480 -477 -483 71 627 636 -630 -633 70 + 615 621 -618 -624 69 600 609 -603 -606 70 + 579 582 -576 -573 71 585 579 -576 -573 71 + 585 582 -576 -573 71 585 579 -576 -582 71 + 720 732 -726 -729 69 696 705 -699 -702 70 + 675 678 -672 -669 71 681 675 -672 -669 71 + 681 678 -672 -669 71 681 675 -672 -678 71 + 807 813 -810 -816 69 795 807 -801 -804 70 + 792 801 -795 -798 70 771 774 -768 -765 71 + 777 771 -768 -765 71 777 774 -768 -765 71 + 777 771 -768 -774 71 909 915 -912 -918 69 + 897 909 -903 -906 69 882 891 -885 -888 70 + 861 864 -858 -855 71 867 861 -858 -855 71 + 867 864 -858 -855 71 867 861 -858 -864 71 + 993 999 -996 -1002 69 981 993 -987 -990 70 + 978 987 -981 -984 70 957 960 -954 -951 71 + 963 957 -954 -951 71 963 960 -954 -951 71 + 963 957 -954 -960 71 1095 1101 -1098 -1104 69 + 1083 1095 -1089 -1092 69 1068 1077 -1071 -1074 70 + 1047 1050 -1044 -1041 71 1053 1047 -1044 -1041 71 + 1053 1050 -1044 -1041 71 1053 1047 -1044 -1050 71 + 1194 1203 -1197 -1200 70 1182 1188 -1185 -1191 69 + 1167 1176 -1170 -1173 70 1146 1149 -1143 -1140 71 + 1152 1146 -1143 -1140 71 1152 1149 -1143 -1140 71 + 1152 1146 -1143 -1149 71 1287 1299 -1293 -1296 69 + 1263 1272 -1266 -1269 70 1242 1245 -1239 -1236 71 + 1248 1242 -1239 -1236 71 1248 1245 -1239 -1236 71 + 1248 1242 -1239 -1245 71 1374 1380 -1377 -1383 69 + 1362 1374 -1368 -1371 70 1359 1368 -1362 -1365 70 + 1338 1341 -1335 -1332 71 1344 1338 -1335 -1332 71 + 1344 1341 -1335 -1332 71 1344 1338 -1335 -1341 71 + 1476 1482 -1479 -1485 69 1464 1476 -1470 -1473 69 + 1449 1458 -1452 -1455 70 1428 1431 -1425 -1422 71 + 1434 1428 -1425 -1422 71 1434 1431 -1425 -1422 71 + 1434 1428 -1425 -1431 71 1575 1584 -1578 -1581 70 + 1563 1569 -1566 -1572 69 1548 1557 -1551 -1554 70 + 1527 1530 -1524 -1521 71 1533 1527 -1524 -1521 71 + 1533 1530 -1524 -1521 71 1533 1527 -1524 -1530 71 + 1668 1680 -1674 -1677 69 1644 1653 -1647 -1650 70 + 1623 1626 -1620 -1617 71 1629 1623 -1620 -1617 71 + 1629 1626 -1620 -1617 71 1629 1623 -1620 -1626 71 + 1755 1761 -1758 -1764 69 1743 1755 -1749 -1752 70 + 1740 1749 -1743 -1746 70 1719 1722 -1716 -1713 71 + 1725 1719 -1716 -1713 71 1725 1722 -1716 -1713 71 + 1725 1719 -1716 -1722 71 1857 1863 -1860 -1866 69 + 1845 1857 -1851 -1854 69 1830 1839 -1833 -1836 70 + 1809 1812 -1806 -1803 71 1815 1809 -1806 -1803 71 + 1815 1812 -1806 -1803 71 1815 1809 -1806 -1812 71 +%FLAG DIHEDRALS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 81 84 93 96 1 81 84 -93 96 2 + 81 84 -93 96 3 72 66 81 84 6 + 72 66 -81 84 7 72 66 -81 84 8 + 66 81 84 87 11 66 81 84 90 11 + 66 81 84 93 12 66 81 -84 93 13 + 66 81 -84 93 11 60 30 24 72 14 + 48 45 57 60 16 45 57 60 63 17 + 39 33 30 60 19 39 45 -57 60 16 + 33 30 24 72 14 33 30 60 57 21 + 33 30 60 63 21 33 39 45 48 18 + 33 39 -45 57 18 30 24 72 66 9 + 30 33 39 45 20 30 60 -57 45 17 + 24 21 -15 66 22 24 21 -15 66 23 + 24 30 33 39 19 24 30 60 57 21 + 24 30 60 63 21 24 72 66 81 9 + 21 15 -66 72 9 21 15 66 81 24 + 21 15 -66 81 25 21 24 30 33 26 + 21 24 -30 33 27 21 24 -30 33 28 + 21 24 -30 33 29 21 24 30 60 14 + 21 24 -72 66 9 15 21 24 30 30 + 15 21 -24 30 23 15 21 -24 72 22 + 15 21 -24 72 23 15 66 -72 24 31 + 15 66 -72 24 32 15 66 -72 24 33 + 15 66 81 84 6 15 66 -81 84 7 + 15 66 -81 84 8 6 15 21 24 22 + 6 15 -21 24 23 6 15 66 72 31 + 6 15 -66 72 32 6 15 -66 72 33 + 6 15 66 81 9 3 6 15 21 9 + 3 6 15 66 35 3 6 -15 66 36 + 3 6 -15 66 37 180 183 192 195 1 + 180 183 -192 195 2 180 183 -192 195 3 + 171 165 180 183 6 171 165 -180 183 7 + 171 165 -180 183 8 165 180 183 186 11 + 165 180 183 189 11 165 180 183 192 12 + 165 180 -183 192 13 165 180 -183 192 11 + 162 120 114 171 14 150 147 159 162 16 + 141 135 132 162 40 141 147 -159 162 16 + 138 135 132 162 40 138 135 141 147 41 + 135 132 162 159 42 135 141 147 150 39 + 135 141 -147 159 39 132 135 141 147 41 + 132 162 -159 147 43 129 123 -120 162 44 + 129 132 135 138 40 129 132 135 141 40 + 129 132 162 159 42 123 120 114 171 14 + 123 120 -162 132 46 123 120 162 159 46 + 123 129 132 135 18 123 129 -132 162 18 + 120 114 171 165 9 120 123 -129 132 45 + 120 162 -132 129 42 120 162 132 135 42 + 120 162 159 147 43 114 111 -105 165 22 + 114 111 -105 165 23 114 120 123 129 44 + 114 120 162 132 46 114 120 162 159 46 + 114 171 165 180 9 111 105 -165 171 9 + 111 105 165 180 24 111 105 -165 180 25 + 111 114 120 123 47 111 114 -120 123 48 + 111 114 -120 123 49 111 114 120 162 14 + 111 114 -171 165 9 105 111 114 120 30 + 105 111 -114 120 23 105 111 -114 171 22 + 105 111 -114 171 23 105 165 -171 114 31 + 105 165 -171 114 32 105 165 -171 114 33 + 105 165 180 183 6 105 165 -180 183 7 + 105 165 -180 183 8 96 105 111 114 22 + 96 105 -111 114 23 96 105 165 171 31 + 96 105 -165 171 32 96 105 -165 171 33 + 96 105 165 180 9 93 96 105 111 9 + 93 96 105 165 35 93 96 -105 165 36 + 93 96 -105 165 37 90 84 93 96 50 + 87 84 93 96 50 84 93 96 105 51 + 84 93 -96 105 52 84 93 -96 105 53 + 84 93 -96 105 54 276 279 288 291 1 + 276 279 -288 291 2 276 279 -288 291 3 + 267 261 276 279 6 267 261 -276 279 7 + 267 261 -276 279 8 261 276 279 282 11 + 261 276 279 285 11 261 276 279 288 12 + 261 276 -279 288 13 261 276 -279 288 11 + 258 219 213 267 14 246 234 231 258 56 + 246 249 -255 258 55 237 234 231 258 56 + 237 234 246 249 16 234 231 258 255 42 + 234 246 -249 255 55 231 234 246 249 16 + 231 258 -255 249 43 228 222 -219 258 44 + 228 231 234 237 56 228 231 234 246 56 + 228 231 258 255 42 222 219 213 267 14 + 222 219 -258 231 46 222 219 258 255 46 + 222 228 231 234 18 222 228 -231 258 18 + 219 213 267 261 9 219 222 -228 231 45 + 219 258 -231 228 42 219 258 231 234 42 + 219 258 255 249 43 213 210 -204 261 22 + 213 210 -204 261 23 213 219 222 228 44 + 213 219 258 231 46 213 219 258 255 46 + 213 267 261 276 9 210 204 -261 267 9 + 210 204 261 276 24 210 204 -261 276 25 + 210 213 219 222 57 210 213 -219 222 58 + 210 213 -219 222 59 210 213 219 258 14 + 210 213 -267 261 9 204 210 213 219 30 + 204 210 -213 219 23 204 210 -213 267 22 + 204 210 -213 267 23 204 261 -267 213 31 + 204 261 -267 213 32 204 261 -267 213 33 + 204 261 276 279 6 204 261 -276 279 7 + 204 261 -276 279 8 195 204 210 213 22 + 195 204 -210 213 23 195 204 261 267 31 + 195 204 -261 267 32 195 204 -261 267 33 + 195 204 261 276 9 192 195 204 210 9 + 192 195 204 261 35 192 195 -204 261 36 + 192 195 -204 261 37 189 183 192 195 50 + 186 183 192 195 50 183 192 195 204 51 + 183 192 -195 204 52 183 192 -195 204 53 + 183 192 -195 204 54 372 375 384 387 1 + 372 375 -384 387 2 372 375 -384 387 3 + 363 357 372 375 6 363 357 -372 375 7 + 363 357 -372 375 8 357 372 375 378 11 + 357 372 375 381 11 357 372 375 384 12 + 357 372 -375 384 13 357 372 -375 384 11 + 351 315 309 363 14 342 339 345 351 41 + 339 345 351 354 41 327 324 339 342 60 + 327 324 339 345 60 324 318 315 351 19 + 324 339 -345 351 41 318 315 309 363 14 + 318 315 351 345 21 318 315 351 354 21 + 318 324 339 342 60 318 324 -339 342 63 + 318 324 -339 345 60 315 309 363 357 9 + 315 318 324 327 20 315 318 324 339 20 + 315 351 -345 339 41 309 306 -300 357 22 + 309 306 -300 357 23 309 315 318 324 19 + 309 315 351 345 21 309 315 351 354 21 + 309 363 357 372 9 306 300 -357 363 9 + 306 300 357 372 24 306 300 -357 372 25 + 306 309 315 318 64 306 309 -315 318 65 + 306 309 -315 318 66 306 309 -315 318 67 + 306 309 315 351 14 306 309 -363 357 9 + 300 306 309 315 30 300 306 -309 315 23 + 300 306 -309 363 22 300 306 -309 363 23 + 300 357 -363 309 31 300 357 -363 309 32 + 300 357 -363 309 33 300 357 372 375 6 + 300 357 -372 375 7 300 357 -372 375 8 + 291 300 306 309 22 291 300 -306 309 23 + 291 300 357 363 31 291 300 -357 363 32 + 291 300 -357 363 33 291 300 357 372 9 + 288 291 300 306 9 288 291 300 357 35 + 288 291 -300 357 36 288 291 -300 357 37 + 285 279 288 291 50 282 279 288 291 50 + 279 288 291 300 51 279 288 -291 300 52 + 279 288 -291 300 53 279 288 -291 300 54 + 462 465 474 477 1 462 465 -474 477 2 + 462 465 -474 477 3 453 447 462 465 6 + 453 447 -462 465 7 453 447 -462 465 8 + 447 462 465 468 11 447 462 465 471 11 + 447 462 465 474 12 447 462 -465 474 13 + 447 462 -465 474 11 441 411 405 453 14 + 429 426 438 441 16 426 438 441 444 17 + 420 414 411 441 19 420 426 -438 441 16 + 414 411 405 453 14 414 411 441 438 21 + 414 411 441 444 21 414 420 426 429 18 + 414 420 -426 438 18 411 405 453 447 9 + 411 414 420 426 20 411 441 -438 426 17 + 405 402 -396 447 22 405 402 -396 447 23 + 405 411 414 420 19 405 411 441 438 21 + 405 411 441 444 21 405 453 447 462 9 + 402 396 -447 453 9 402 396 447 462 24 + 402 396 -447 462 25 402 405 411 414 26 + 402 405 -411 414 27 402 405 -411 414 28 + 402 405 -411 414 29 402 405 411 441 14 + 402 405 -453 447 9 396 402 405 411 30 + 396 402 -405 411 23 396 402 -405 453 22 + 396 402 -405 453 23 396 447 -453 405 31 + 396 447 -453 405 32 396 447 -453 405 33 + 396 447 462 465 6 396 447 -462 465 7 + 396 447 -462 465 8 387 396 402 405 22 + 387 396 -402 405 23 387 396 447 453 31 + 387 396 -447 453 32 387 396 -447 453 33 + 387 396 447 462 9 384 387 396 402 9 + 384 387 396 447 35 384 387 -396 447 36 + 384 387 -396 447 37 381 375 384 387 50 + 378 375 384 387 50 375 384 387 396 51 + 375 384 -387 396 52 375 384 -387 396 53 + 375 384 -387 396 54 561 564 573 576 1 + 561 564 -573 576 2 561 564 -573 576 3 + 552 546 561 564 6 552 546 -561 564 7 + 552 546 -561 564 8 546 561 564 567 11 + 546 561 564 570 11 546 561 564 573 12 + 546 561 -564 573 13 546 561 -564 573 11 + 543 501 495 552 14 531 528 540 543 16 + 522 516 513 543 40 522 528 -540 543 16 + 519 516 513 543 40 519 516 522 528 41 + 516 513 543 540 42 516 522 528 531 39 + 516 522 -528 540 39 513 516 522 528 41 + 513 543 -540 528 43 510 504 -501 543 44 + 510 513 516 519 40 510 513 516 522 40 + 510 513 543 540 42 504 501 495 552 14 + 504 501 -543 513 46 504 501 543 540 46 + 504 510 513 516 18 504 510 -513 543 18 + 501 495 552 546 9 501 504 -510 513 45 + 501 543 -513 510 42 501 543 513 516 42 + 501 543 540 528 43 495 492 -486 546 22 + 495 492 -486 546 23 495 501 504 510 44 + 495 501 543 513 46 495 501 543 540 46 + 495 552 546 561 9 492 486 -546 552 9 + 492 486 546 561 24 492 486 -546 561 25 + 492 495 501 504 47 492 495 -501 504 48 + 492 495 -501 504 49 492 495 501 543 14 + 492 495 -552 546 9 486 492 495 501 30 + 486 492 -495 501 23 486 492 -495 552 22 + 486 492 -495 552 23 486 546 -552 495 31 + 486 546 -552 495 32 486 546 -552 495 33 + 486 546 561 564 6 486 546 -561 564 7 + 486 546 -561 564 8 477 486 492 495 22 + 477 486 -492 495 23 477 486 546 552 31 + 477 486 -546 552 32 477 486 -546 552 33 + 477 486 546 561 9 474 477 486 492 9 + 474 477 486 546 35 474 477 -486 546 36 + 474 477 -486 546 37 471 465 474 477 50 + 468 465 474 477 50 465 474 477 486 51 + 465 474 -477 486 52 465 474 -477 486 53 + 465 474 -477 486 54 657 660 669 672 1 + 657 660 -669 672 2 657 660 -669 672 3 + 648 642 657 660 6 648 642 -657 660 7 + 648 642 -657 660 8 642 657 660 663 11 + 642 657 660 666 11 642 657 660 669 12 + 642 657 -660 669 13 642 657 -660 669 11 + 639 600 594 648 14 627 615 612 639 56 + 627 630 -636 639 55 618 615 612 639 56 + 618 615 627 630 16 615 612 639 636 42 + 615 627 -630 636 55 612 615 627 630 16 + 612 639 -636 630 43 609 603 -600 639 44 + 609 612 615 618 56 609 612 615 627 56 + 609 612 639 636 42 603 600 594 648 14 + 603 600 -639 612 46 603 600 639 636 46 + 603 609 612 615 18 603 609 -612 639 18 + 600 594 648 642 9 600 603 -609 612 45 + 600 639 -612 609 42 600 639 612 615 42 + 600 639 636 630 43 594 591 -585 642 22 + 594 591 -585 642 23 594 600 603 609 44 + 594 600 639 612 46 594 600 639 636 46 + 594 648 642 657 9 591 585 -642 648 9 + 591 585 642 657 24 591 585 -642 657 25 + 591 594 600 603 57 591 594 -600 603 58 + 591 594 -600 603 59 591 594 600 639 14 + 591 594 -648 642 9 585 591 594 600 30 + 585 591 -594 600 23 585 591 -594 648 22 + 585 591 -594 648 23 585 642 -648 594 31 + 585 642 -648 594 32 585 642 -648 594 33 + 585 642 657 660 6 585 642 -657 660 7 + 585 642 -657 660 8 576 585 591 594 22 + 576 585 -591 594 23 576 585 642 648 31 + 576 585 -642 648 32 576 585 -642 648 33 + 576 585 642 657 9 573 576 585 591 9 + 573 576 585 642 35 573 576 -585 642 36 + 573 576 -585 642 37 570 564 573 576 50 + 567 564 573 576 50 564 573 576 585 51 + 564 573 -576 585 52 564 573 -576 585 53 + 564 573 -576 585 54 753 756 765 768 1 + 753 756 -765 768 2 753 756 -765 768 3 + 744 738 753 756 6 744 738 -753 756 7 + 744 738 -753 756 8 738 753 756 759 11 + 738 753 756 762 11 738 753 756 765 12 + 738 753 -756 765 13 738 753 -756 765 11 + 732 696 690 744 14 723 720 726 732 41 + 720 726 732 735 41 708 705 720 723 60 + 708 705 720 726 60 705 699 696 732 19 + 705 720 -726 732 41 699 696 690 744 14 + 699 696 732 726 21 699 696 732 735 21 + 699 705 720 723 60 699 705 -720 723 63 + 699 705 -720 726 60 696 690 744 738 9 + 696 699 705 708 20 696 699 705 720 20 + 696 732 -726 720 41 690 687 -681 738 22 + 690 687 -681 738 23 690 696 699 705 19 + 690 696 732 726 21 690 696 732 735 21 + 690 744 738 753 9 687 681 -738 744 9 + 687 681 738 753 24 687 681 -738 753 25 + 687 690 696 699 64 687 690 -696 699 65 + 687 690 -696 699 66 687 690 -696 699 67 + 687 690 696 732 14 687 690 -744 738 9 + 681 687 690 696 30 681 687 -690 696 23 + 681 687 -690 744 22 681 687 -690 744 23 + 681 738 -744 690 31 681 738 -744 690 32 + 681 738 -744 690 33 681 738 753 756 6 + 681 738 -753 756 7 681 738 -753 756 8 + 672 681 687 690 22 672 681 -687 690 23 + 672 681 738 744 31 672 681 -738 744 32 + 672 681 -738 744 33 672 681 738 753 9 + 669 672 681 687 9 669 672 681 738 35 + 669 672 -681 738 36 669 672 -681 738 37 + 666 660 669 672 50 663 660 669 672 50 + 660 669 672 681 51 660 669 -672 681 52 + 660 669 -672 681 53 660 669 -672 681 54 + 843 846 855 858 1 843 846 -855 858 2 + 843 846 -855 858 3 834 828 843 846 6 + 834 828 -843 846 7 834 828 -843 846 8 + 828 843 846 849 11 828 843 846 852 11 + 828 843 846 855 12 828 843 -846 855 13 + 828 843 -846 855 11 822 792 786 834 14 + 810 807 819 822 16 807 819 822 825 17 + 801 795 792 822 19 801 807 -819 822 16 + 795 792 786 834 14 795 792 822 819 21 + 795 792 822 825 21 795 801 807 810 18 + 795 801 -807 819 18 792 786 834 828 9 + 792 795 801 807 20 792 822 -819 807 17 + 786 783 -777 828 22 786 783 -777 828 23 + 786 792 795 801 19 786 792 822 819 21 + 786 792 822 825 21 786 834 828 843 9 + 783 777 -828 834 9 783 777 828 843 24 + 783 777 -828 843 25 783 786 792 795 26 + 783 786 -792 795 27 783 786 -792 795 28 + 783 786 -792 795 29 783 786 792 822 14 + 783 786 -834 828 9 777 783 786 792 30 + 777 783 -786 792 23 777 783 -786 834 22 + 777 783 -786 834 23 777 828 -834 786 31 + 777 828 -834 786 32 777 828 -834 786 33 + 777 828 843 846 6 777 828 -843 846 7 + 777 828 -843 846 8 768 777 783 786 22 + 768 777 -783 786 23 768 777 828 834 31 + 768 777 -828 834 32 768 777 -828 834 33 + 768 777 828 843 9 765 768 777 783 9 + 765 768 777 828 35 765 768 -777 828 36 + 765 768 -777 828 37 762 756 765 768 50 + 759 756 765 768 50 756 765 768 777 51 + 756 765 -768 777 52 756 765 -768 777 53 + 756 765 -768 777 54 924 882 876 933 14 + 912 909 921 924 16 903 897 894 924 40 + 903 909 -921 924 16 900 897 894 924 40 + 900 897 903 909 41 897 894 924 921 42 + 897 903 909 912 39 897 903 -909 921 39 + 894 897 903 909 41 894 924 -921 909 43 + 891 885 -882 924 44 891 894 897 900 40 + 891 894 897 903 40 891 894 924 921 42 + 885 882 876 933 14 885 882 -924 894 46 + 885 882 924 921 46 885 891 894 897 18 + 885 891 -894 924 18 882 876 933 927 9 + 882 885 -891 894 45 882 924 -894 891 42 + 882 924 894 897 42 882 924 921 909 43 + 876 873 -867 927 22 876 873 -867 927 23 + 876 882 885 891 44 876 882 924 894 46 + 876 882 924 921 46 876 933 927 942 9 + 873 867 -927 933 9 873 867 927 942 24 + 873 867 -927 942 25 873 876 882 885 47 + 873 876 -882 885 48 873 876 -882 885 49 + 873 876 882 924 14 873 876 -933 927 9 + 867 873 876 882 30 867 873 -876 882 23 + 867 873 -876 933 22 867 873 -876 933 23 + 867 927 -933 876 31 867 927 -933 876 32 + 867 927 -933 876 33 858 867 873 876 22 + 858 867 -873 876 23 858 867 927 933 31 + 858 867 -927 933 32 858 867 -927 933 33 + 858 867 927 942 9 855 858 867 873 9 + 855 858 867 927 35 855 858 -867 927 36 + 855 858 -867 927 37 852 846 855 858 50 + 849 846 855 858 50 846 855 858 867 51 + 846 855 -858 867 52 846 855 -858 867 53 + 846 855 -858 867 54 1029 1032 1041 1044 1 + 1029 1032 -1041 1044 2 1029 1032 -1041 1044 3 + 1020 1014 1029 1032 6 1020 1014 -1029 1032 7 + 1020 1014 -1029 1032 8 1014 1029 1032 1035 11 + 1014 1029 1032 1038 11 1014 1029 1032 1041 12 + 1014 1029 -1032 1041 13 1014 1029 -1032 1041 11 + 1008 978 972 1020 14 996 993 1005 1008 16 + 993 1005 1008 1011 17 987 981 978 1008 19 + 987 993 -1005 1008 16 981 978 972 1020 14 + 981 978 1008 1005 21 981 978 1008 1011 21 + 981 987 993 996 18 981 987 -993 1005 18 + 978 972 1020 1014 9 978 981 987 993 20 + 978 1008 -1005 993 17 972 969 -963 1014 22 + 972 969 -963 1014 23 972 978 981 987 19 + 972 978 1008 1005 21 972 978 1008 1011 21 + 972 1020 1014 1029 9 969 963 -1014 1020 9 + 969 963 1014 1029 24 969 963 -1014 1029 25 + 969 972 978 981 26 969 972 -978 981 27 + 969 972 -978 981 28 969 972 -978 981 29 + 969 972 978 1008 14 969 972 -1020 1014 9 + 963 969 972 978 30 963 969 -972 978 23 + 963 969 -972 1020 22 963 969 -972 1020 23 + 963 1014 -1020 972 31 963 1014 -1020 972 32 + 963 1014 -1020 972 33 963 1014 1029 1032 6 + 963 1014 -1029 1032 7 963 1014 -1029 1032 8 + 954 963 969 972 22 954 963 -969 972 23 + 954 963 1014 1020 31 954 963 -1014 1020 32 + 954 963 -1014 1020 33 954 963 1014 1029 9 + 951 954 963 969 9 951 954 963 1014 35 + 951 954 -963 1014 36 951 954 -963 1014 37 + 1128 1131 1140 1143 1 1128 1131 -1140 1143 2 + 1128 1131 -1140 1143 3 1119 1113 1128 1131 6 + 1119 1113 -1128 1131 7 1119 1113 -1128 1131 8 + 1113 1128 1131 1134 11 1113 1128 1131 1137 11 + 1113 1128 1131 1140 12 1113 1128 -1131 1140 13 + 1113 1128 -1131 1140 11 1110 1068 1062 1119 14 + 1098 1095 1107 1110 16 1089 1083 1080 1110 40 + 1089 1095 -1107 1110 16 1086 1083 1080 1110 40 + 1086 1083 1089 1095 41 1083 1080 1110 1107 42 + 1083 1089 1095 1098 39 1083 1089 -1095 1107 39 + 1080 1083 1089 1095 41 1080 1110 -1107 1095 43 + 1077 1071 -1068 1110 44 1077 1080 1083 1086 40 + 1077 1080 1083 1089 40 1077 1080 1110 1107 42 + 1071 1068 1062 1119 14 1071 1068 -1110 1080 46 + 1071 1068 1110 1107 46 1071 1077 1080 1083 18 + 1071 1077 -1080 1110 18 1068 1062 1119 1113 9 + 1068 1071 -1077 1080 45 1068 1110 -1080 1077 42 + 1068 1110 1080 1083 42 1068 1110 1107 1095 43 + 1062 1059 -1053 1113 22 1062 1059 -1053 1113 23 + 1062 1068 1071 1077 44 1062 1068 1110 1080 46 + 1062 1068 1110 1107 46 1062 1119 1113 1128 9 + 1059 1053 -1113 1119 9 1059 1053 1113 1128 24 + 1059 1053 -1113 1128 25 1059 1062 1068 1071 47 + 1059 1062 -1068 1071 48 1059 1062 -1068 1071 49 + 1059 1062 1068 1110 14 1059 1062 -1119 1113 9 + 1053 1059 1062 1068 30 1053 1059 -1062 1068 23 + 1053 1059 -1062 1119 22 1053 1059 -1062 1119 23 + 1053 1113 -1119 1062 31 1053 1113 -1119 1062 32 + 1053 1113 -1119 1062 33 1053 1113 1128 1131 6 + 1053 1113 -1128 1131 7 1053 1113 -1128 1131 8 + 1044 1053 1059 1062 22 1044 1053 -1059 1062 23 + 1044 1053 1113 1119 31 1044 1053 -1113 1119 32 + 1044 1053 -1113 1119 33 1044 1053 1113 1128 9 + 1041 1044 1053 1059 9 1041 1044 1053 1113 35 + 1041 1044 -1053 1113 36 1041 1044 -1053 1113 37 + 1038 1032 1041 1044 50 1035 1032 1041 1044 50 + 1032 1041 1044 1053 51 1032 1041 -1044 1053 52 + 1032 1041 -1044 1053 53 1032 1041 -1044 1053 54 + 1224 1227 1236 1239 1 1224 1227 -1236 1239 2 + 1224 1227 -1236 1239 3 1215 1209 1224 1227 6 + 1215 1209 -1224 1227 7 1215 1209 -1224 1227 8 + 1209 1224 1227 1230 11 1209 1224 1227 1233 11 + 1209 1224 1227 1236 12 1209 1224 -1227 1236 13 + 1209 1224 -1227 1236 11 1206 1167 1161 1215 14 + 1194 1182 1179 1206 56 1194 1197 -1203 1206 55 + 1185 1182 1179 1206 56 1185 1182 1194 1197 16 + 1182 1179 1206 1203 42 1182 1194 -1197 1203 55 + 1179 1182 1194 1197 16 1179 1206 -1203 1197 43 + 1176 1170 -1167 1206 44 1176 1179 1182 1185 56 + 1176 1179 1182 1194 56 1176 1179 1206 1203 42 + 1170 1167 1161 1215 14 1170 1167 -1206 1179 46 + 1170 1167 1206 1203 46 1170 1176 1179 1182 18 + 1170 1176 -1179 1206 18 1167 1161 1215 1209 9 + 1167 1170 -1176 1179 45 1167 1206 -1179 1176 42 + 1167 1206 1179 1182 42 1167 1206 1203 1197 43 + 1161 1158 -1152 1209 22 1161 1158 -1152 1209 23 + 1161 1167 1170 1176 44 1161 1167 1206 1179 46 + 1161 1167 1206 1203 46 1161 1215 1209 1224 9 + 1158 1152 -1209 1215 9 1158 1152 1209 1224 24 + 1158 1152 -1209 1224 25 1158 1161 1167 1170 57 + 1158 1161 -1167 1170 58 1158 1161 -1167 1170 59 + 1158 1161 1167 1206 14 1158 1161 -1215 1209 9 + 1152 1158 1161 1167 30 1152 1158 -1161 1167 23 + 1152 1158 -1161 1215 22 1152 1158 -1161 1215 23 + 1152 1209 -1215 1161 31 1152 1209 -1215 1161 32 + 1152 1209 -1215 1161 33 1152 1209 1224 1227 6 + 1152 1209 -1224 1227 7 1152 1209 -1224 1227 8 + 1143 1152 1158 1161 22 1143 1152 -1158 1161 23 + 1143 1152 1209 1215 31 1143 1152 -1209 1215 32 + 1143 1152 -1209 1215 33 1143 1152 1209 1224 9 + 1140 1143 1152 1158 9 1140 1143 1152 1209 35 + 1140 1143 -1152 1209 36 1140 1143 -1152 1209 37 + 1137 1131 1140 1143 50 1134 1131 1140 1143 50 + 1131 1140 1143 1152 51 1131 1140 -1143 1152 52 + 1131 1140 -1143 1152 53 1131 1140 -1143 1152 54 + 1320 1323 1332 1335 1 1320 1323 -1332 1335 2 + 1320 1323 -1332 1335 3 1311 1305 1320 1323 6 + 1311 1305 -1320 1323 7 1311 1305 -1320 1323 8 + 1305 1320 1323 1326 11 1305 1320 1323 1329 11 + 1305 1320 1323 1332 12 1305 1320 -1323 1332 13 + 1305 1320 -1323 1332 11 1299 1263 1257 1311 14 + 1290 1287 1293 1299 41 1287 1293 1299 1302 41 + 1275 1272 1287 1290 60 1275 1272 1287 1293 60 + 1272 1266 1263 1299 19 1272 1287 -1293 1299 41 + 1266 1263 1257 1311 14 1266 1263 1299 1293 21 + 1266 1263 1299 1302 21 1266 1272 1287 1290 60 + 1266 1272 -1287 1290 63 1266 1272 -1287 1293 60 + 1263 1257 1311 1305 9 1263 1266 1272 1275 20 + 1263 1266 1272 1287 20 1263 1299 -1293 1287 41 + 1257 1254 -1248 1305 22 1257 1254 -1248 1305 23 + 1257 1263 1266 1272 19 1257 1263 1299 1293 21 + 1257 1263 1299 1302 21 1257 1311 1305 1320 9 + 1254 1248 -1305 1311 9 1254 1248 1305 1320 24 + 1254 1248 -1305 1320 25 1254 1257 1263 1266 64 + 1254 1257 -1263 1266 65 1254 1257 -1263 1266 66 + 1254 1257 -1263 1266 67 1254 1257 1263 1299 14 + 1254 1257 -1311 1305 9 1248 1254 1257 1263 30 + 1248 1254 -1257 1263 23 1248 1254 -1257 1311 22 + 1248 1254 -1257 1311 23 1248 1305 -1311 1257 31 + 1248 1305 -1311 1257 32 1248 1305 -1311 1257 33 + 1248 1305 1320 1323 6 1248 1305 -1320 1323 7 + 1248 1305 -1320 1323 8 1239 1248 1254 1257 22 + 1239 1248 -1254 1257 23 1239 1248 1305 1311 31 + 1239 1248 -1305 1311 32 1239 1248 -1305 1311 33 + 1239 1248 1305 1320 9 1236 1239 1248 1254 9 + 1236 1239 1248 1305 35 1236 1239 -1248 1305 36 + 1236 1239 -1248 1305 37 1233 1227 1236 1239 50 + 1230 1227 1236 1239 50 1227 1236 1239 1248 51 + 1227 1236 -1239 1248 52 1227 1236 -1239 1248 53 + 1227 1236 -1239 1248 54 1410 1413 1422 1425 1 + 1410 1413 -1422 1425 2 1410 1413 -1422 1425 3 + 1401 1395 1410 1413 6 1401 1395 -1410 1413 7 + 1401 1395 -1410 1413 8 1395 1410 1413 1416 11 + 1395 1410 1413 1419 11 1395 1410 1413 1422 12 + 1395 1410 -1413 1422 13 1395 1410 -1413 1422 11 + 1389 1359 1353 1401 14 1377 1374 1386 1389 16 + 1374 1386 1389 1392 17 1368 1362 1359 1389 19 + 1368 1374 -1386 1389 16 1362 1359 1353 1401 14 + 1362 1359 1389 1386 21 1362 1359 1389 1392 21 + 1362 1368 1374 1377 18 1362 1368 -1374 1386 18 + 1359 1353 1401 1395 9 1359 1362 1368 1374 20 + 1359 1389 -1386 1374 17 1353 1350 -1344 1395 22 + 1353 1350 -1344 1395 23 1353 1359 1362 1368 19 + 1353 1359 1389 1386 21 1353 1359 1389 1392 21 + 1353 1401 1395 1410 9 1350 1344 -1395 1401 9 + 1350 1344 1395 1410 24 1350 1344 -1395 1410 25 + 1350 1353 1359 1362 26 1350 1353 -1359 1362 27 + 1350 1353 -1359 1362 28 1350 1353 -1359 1362 29 + 1350 1353 1359 1389 14 1350 1353 -1401 1395 9 + 1344 1350 1353 1359 30 1344 1350 -1353 1359 23 + 1344 1350 -1353 1401 22 1344 1350 -1353 1401 23 + 1344 1395 -1401 1353 31 1344 1395 -1401 1353 32 + 1344 1395 -1401 1353 33 1344 1395 1410 1413 6 + 1344 1395 -1410 1413 7 1344 1395 -1410 1413 8 + 1335 1344 1350 1353 22 1335 1344 -1350 1353 23 + 1335 1344 1395 1401 31 1335 1344 -1395 1401 32 + 1335 1344 -1395 1401 33 1335 1344 1395 1410 9 + 1332 1335 1344 1350 9 1332 1335 1344 1395 35 + 1332 1335 -1344 1395 36 1332 1335 -1344 1395 37 + 1329 1323 1332 1335 50 1326 1323 1332 1335 50 + 1323 1332 1335 1344 51 1323 1332 -1335 1344 52 + 1323 1332 -1335 1344 53 1323 1332 -1335 1344 54 + 1509 1512 1521 1524 1 1509 1512 -1521 1524 2 + 1509 1512 -1521 1524 3 1500 1494 1509 1512 6 + 1500 1494 -1509 1512 7 1500 1494 -1509 1512 8 + 1494 1509 1512 1515 11 1494 1509 1512 1518 11 + 1494 1509 1512 1521 12 1494 1509 -1512 1521 13 + 1494 1509 -1512 1521 11 1491 1449 1443 1500 14 + 1479 1476 1488 1491 16 1470 1464 1461 1491 40 + 1470 1476 -1488 1491 16 1467 1464 1461 1491 40 + 1467 1464 1470 1476 41 1464 1461 1491 1488 42 + 1464 1470 1476 1479 39 1464 1470 -1476 1488 39 + 1461 1464 1470 1476 41 1461 1491 -1488 1476 43 + 1458 1452 -1449 1491 44 1458 1461 1464 1467 40 + 1458 1461 1464 1470 40 1458 1461 1491 1488 42 + 1452 1449 1443 1500 14 1452 1449 -1491 1461 46 + 1452 1449 1491 1488 46 1452 1458 1461 1464 18 + 1452 1458 -1461 1491 18 1449 1443 1500 1494 9 + 1449 1452 -1458 1461 45 1449 1491 -1461 1458 42 + 1449 1491 1461 1464 42 1449 1491 1488 1476 43 + 1443 1440 -1434 1494 22 1443 1440 -1434 1494 23 + 1443 1449 1452 1458 44 1443 1449 1491 1461 46 + 1443 1449 1491 1488 46 1443 1500 1494 1509 9 + 1440 1434 -1494 1500 9 1440 1434 1494 1509 24 + 1440 1434 -1494 1509 25 1440 1443 1449 1452 47 + 1440 1443 -1449 1452 48 1440 1443 -1449 1452 49 + 1440 1443 1449 1491 14 1440 1443 -1500 1494 9 + 1434 1440 1443 1449 30 1434 1440 -1443 1449 23 + 1434 1440 -1443 1500 22 1434 1440 -1443 1500 23 + 1434 1494 -1500 1443 31 1434 1494 -1500 1443 32 + 1434 1494 -1500 1443 33 1434 1494 1509 1512 6 + 1434 1494 -1509 1512 7 1434 1494 -1509 1512 8 + 1425 1434 1440 1443 22 1425 1434 -1440 1443 23 + 1425 1434 1494 1500 31 1425 1434 -1494 1500 32 + 1425 1434 -1494 1500 33 1425 1434 1494 1509 9 + 1422 1425 1434 1440 9 1422 1425 1434 1494 35 + 1422 1425 -1434 1494 36 1422 1425 -1434 1494 37 + 1419 1413 1422 1425 50 1416 1413 1422 1425 50 + 1413 1422 1425 1434 51 1413 1422 -1425 1434 52 + 1413 1422 -1425 1434 53 1413 1422 -1425 1434 54 + 1605 1608 1617 1620 1 1605 1608 -1617 1620 2 + 1605 1608 -1617 1620 3 1596 1590 1605 1608 6 + 1596 1590 -1605 1608 7 1596 1590 -1605 1608 8 + 1590 1605 1608 1611 11 1590 1605 1608 1614 11 + 1590 1605 1608 1617 12 1590 1605 -1608 1617 13 + 1590 1605 -1608 1617 11 1587 1548 1542 1596 14 + 1575 1563 1560 1587 56 1575 1578 -1584 1587 55 + 1566 1563 1560 1587 56 1566 1563 1575 1578 16 + 1563 1560 1587 1584 42 1563 1575 -1578 1584 55 + 1560 1563 1575 1578 16 1560 1587 -1584 1578 43 + 1557 1551 -1548 1587 44 1557 1560 1563 1566 56 + 1557 1560 1563 1575 56 1557 1560 1587 1584 42 + 1551 1548 1542 1596 14 1551 1548 -1587 1560 46 + 1551 1548 1587 1584 46 1551 1557 1560 1563 18 + 1551 1557 -1560 1587 18 1548 1542 1596 1590 9 + 1548 1551 -1557 1560 45 1548 1587 -1560 1557 42 + 1548 1587 1560 1563 42 1548 1587 1584 1578 43 + 1542 1539 -1533 1590 22 1542 1539 -1533 1590 23 + 1542 1548 1551 1557 44 1542 1548 1587 1560 46 + 1542 1548 1587 1584 46 1542 1596 1590 1605 9 + 1539 1533 -1590 1596 9 1539 1533 1590 1605 24 + 1539 1533 -1590 1605 25 1539 1542 1548 1551 57 + 1539 1542 -1548 1551 58 1539 1542 -1548 1551 59 + 1539 1542 1548 1587 14 1539 1542 -1596 1590 9 + 1533 1539 1542 1548 30 1533 1539 -1542 1548 23 + 1533 1539 -1542 1596 22 1533 1539 -1542 1596 23 + 1533 1590 -1596 1542 31 1533 1590 -1596 1542 32 + 1533 1590 -1596 1542 33 1533 1590 1605 1608 6 + 1533 1590 -1605 1608 7 1533 1590 -1605 1608 8 + 1524 1533 1539 1542 22 1524 1533 -1539 1542 23 + 1524 1533 1590 1596 31 1524 1533 -1590 1596 32 + 1524 1533 -1590 1596 33 1524 1533 1590 1605 9 + 1521 1524 1533 1539 9 1521 1524 1533 1590 35 + 1521 1524 -1533 1590 36 1521 1524 -1533 1590 37 + 1518 1512 1521 1524 50 1515 1512 1521 1524 50 + 1512 1521 1524 1533 51 1512 1521 -1524 1533 52 + 1512 1521 -1524 1533 53 1512 1521 -1524 1533 54 + 1701 1704 1713 1716 1 1701 1704 -1713 1716 2 + 1701 1704 -1713 1716 3 1692 1686 1701 1704 6 + 1692 1686 -1701 1704 7 1692 1686 -1701 1704 8 + 1686 1701 1704 1707 11 1686 1701 1704 1710 11 + 1686 1701 1704 1713 12 1686 1701 -1704 1713 13 + 1686 1701 -1704 1713 11 1680 1644 1638 1692 14 + 1671 1668 1674 1680 41 1668 1674 1680 1683 41 + 1656 1653 1668 1671 60 1656 1653 1668 1674 60 + 1653 1647 1644 1680 19 1653 1668 -1674 1680 41 + 1647 1644 1638 1692 14 1647 1644 1680 1674 21 + 1647 1644 1680 1683 21 1647 1653 1668 1671 60 + 1647 1653 -1668 1671 63 1647 1653 -1668 1674 60 + 1644 1638 1692 1686 9 1644 1647 1653 1656 20 + 1644 1647 1653 1668 20 1644 1680 -1674 1668 41 + 1638 1635 -1629 1686 22 1638 1635 -1629 1686 23 + 1638 1644 1647 1653 19 1638 1644 1680 1674 21 + 1638 1644 1680 1683 21 1638 1692 1686 1701 9 + 1635 1629 -1686 1692 9 1635 1629 1686 1701 24 + 1635 1629 -1686 1701 25 1635 1638 1644 1647 64 + 1635 1638 -1644 1647 65 1635 1638 -1644 1647 66 + 1635 1638 -1644 1647 67 1635 1638 1644 1680 14 + 1635 1638 -1692 1686 9 1629 1635 1638 1644 30 + 1629 1635 -1638 1644 23 1629 1635 -1638 1692 22 + 1629 1635 -1638 1692 23 1629 1686 -1692 1638 31 + 1629 1686 -1692 1638 32 1629 1686 -1692 1638 33 + 1629 1686 1701 1704 6 1629 1686 -1701 1704 7 + 1629 1686 -1701 1704 8 1620 1629 1635 1638 22 + 1620 1629 -1635 1638 23 1620 1629 1686 1692 31 + 1620 1629 -1686 1692 32 1620 1629 -1686 1692 33 + 1620 1629 1686 1701 9 1617 1620 1629 1635 9 + 1617 1620 1629 1686 35 1617 1620 -1629 1686 36 + 1617 1620 -1629 1686 37 1614 1608 1617 1620 50 + 1611 1608 1617 1620 50 1608 1617 1620 1629 51 + 1608 1617 -1620 1629 52 1608 1617 -1620 1629 53 + 1608 1617 -1620 1629 54 1791 1794 1803 1806 1 + 1791 1794 -1803 1806 2 1791 1794 -1803 1806 3 + 1782 1776 1791 1794 6 1782 1776 -1791 1794 7 + 1782 1776 -1791 1794 8 1776 1791 1794 1797 11 + 1776 1791 1794 1800 11 1776 1791 1794 1803 12 + 1776 1791 -1794 1803 13 1776 1791 -1794 1803 11 + 1770 1740 1734 1782 14 1758 1755 1767 1770 16 + 1755 1767 1770 1773 17 1749 1743 1740 1770 19 + 1749 1755 -1767 1770 16 1743 1740 1734 1782 14 + 1743 1740 1770 1767 21 1743 1740 1770 1773 21 + 1743 1749 1755 1758 18 1743 1749 -1755 1767 18 + 1740 1734 1782 1776 9 1740 1743 1749 1755 20 + 1740 1770 -1767 1755 17 1734 1731 -1725 1776 22 + 1734 1731 -1725 1776 23 1734 1740 1743 1749 19 + 1734 1740 1770 1767 21 1734 1740 1770 1773 21 + 1734 1782 1776 1791 9 1731 1725 -1776 1782 9 + 1731 1725 1776 1791 24 1731 1725 -1776 1791 25 + 1731 1734 1740 1743 26 1731 1734 -1740 1743 27 + 1731 1734 -1740 1743 28 1731 1734 -1740 1743 29 + 1731 1734 1740 1770 14 1731 1734 -1782 1776 9 + 1725 1731 1734 1740 30 1725 1731 -1734 1740 23 + 1725 1731 -1734 1782 22 1725 1731 -1734 1782 23 + 1725 1776 -1782 1734 31 1725 1776 -1782 1734 32 + 1725 1776 -1782 1734 33 1725 1776 1791 1794 6 + 1725 1776 -1791 1794 7 1725 1776 -1791 1794 8 + 1716 1725 1731 1734 22 1716 1725 -1731 1734 23 + 1716 1725 1776 1782 31 1716 1725 -1776 1782 32 + 1716 1725 -1776 1782 33 1716 1725 1776 1791 9 + 1713 1716 1725 1731 9 1713 1716 1725 1776 35 + 1713 1716 -1725 1776 36 1713 1716 -1725 1776 37 + 1710 1704 1713 1716 50 1707 1704 1713 1716 50 + 1704 1713 1716 1725 51 1704 1713 -1716 1725 52 + 1704 1713 -1716 1725 53 1704 1713 -1716 1725 54 + 1872 1830 1824 1881 14 1860 1857 1869 1872 16 + 1851 1845 1842 1872 40 1851 1857 -1869 1872 16 + 1848 1845 1842 1872 40 1848 1845 1851 1857 41 + 1845 1842 1872 1869 42 1845 1851 1857 1860 39 + 1845 1851 -1857 1869 39 1842 1845 1851 1857 41 + 1842 1872 -1869 1857 43 1839 1833 -1830 1872 44 + 1839 1842 1845 1848 40 1839 1842 1845 1851 40 + 1839 1842 1872 1869 42 1833 1830 1824 1881 14 + 1833 1830 -1872 1842 46 1833 1830 1872 1869 46 + 1833 1839 1842 1845 18 1833 1839 -1842 1872 18 + 1830 1824 1881 1875 9 1830 1833 -1839 1842 45 + 1830 1872 -1842 1839 42 1830 1872 1842 1845 42 + 1830 1872 1869 1857 43 1824 1821 -1815 1875 22 + 1824 1821 -1815 1875 23 1824 1830 1833 1839 44 + 1824 1830 1872 1842 46 1824 1830 1872 1869 46 + 1824 1881 1875 1890 9 1821 1815 -1875 1881 9 + 1821 1815 1875 1890 24 1821 1815 -1875 1890 25 + 1821 1824 1830 1833 47 1821 1824 -1830 1833 48 + 1821 1824 -1830 1833 49 1821 1824 1830 1872 14 + 1821 1824 -1881 1875 9 1815 1821 1824 1830 30 + 1815 1821 -1824 1830 23 1815 1821 -1824 1881 22 + 1815 1821 -1824 1881 23 1815 1875 -1881 1824 31 + 1815 1875 -1881 1824 32 1815 1875 -1881 1824 33 + 1806 1815 1821 1824 22 1806 1815 -1821 1824 23 + 1806 1815 1875 1881 31 1806 1815 -1875 1881 32 + 1806 1815 -1875 1881 33 1806 1815 1875 1890 9 + 1803 1806 1815 1821 9 1803 1806 1815 1875 35 + 1803 1806 -1815 1875 36 1803 1806 -1815 1875 37 + 1800 1794 1803 1806 50 1797 1794 1803 1806 50 + 1794 1803 1806 1815 51 1794 1803 -1806 1815 52 + 1794 1803 -1806 1815 53 1794 1803 -1806 1815 54 + 30 57 -60 -63 68 39 48 -45 -57 70 + 60 33 -30 -24 69 120 132 -162 -159 71 + 150 141 -147 -159 70 132 141 -135 -138 68 + 129 135 -132 -162 71 162 123 -120 -114 69 + 231 219 -258 -255 71 231 237 -234 -246 70 + 228 234 -231 -258 71 258 222 -219 -213 69 + 315 345 -351 -354 68 324 345 -339 -342 68 + 339 318 -324 -327 70 351 318 -315 -309 69 + 411 438 -441 -444 68 420 429 -426 -438 70 + 441 414 -411 -405 69 513 501 -543 -540 71 + 531 522 -528 -540 70 513 522 -516 -519 68 + 516 543 -513 -510 71 543 504 -501 -495 69 + 612 600 -639 -636 71 612 618 -615 -627 70 + 615 639 -612 -609 71 603 639 -600 -594 69 + 696 726 -732 -735 68 705 726 -720 -723 68 + 720 699 -705 -708 70 732 699 -696 -690 69 + 792 819 -822 -825 68 801 810 -807 -819 70 + 822 795 -792 -786 69 894 882 -924 -921 71 + 912 903 -909 -921 70 894 903 -897 -900 68 + 897 924 -894 -891 71 924 885 -882 -876 69 + 978 1005 -1008 -1011 68 987 996 -993 -1005 70 + 1008 981 -978 -972 69 1080 1068 -1110 -1107 71 + 1098 1089 -1095 -1107 70 1080 1089 -1083 -1086 68 + 1083 1110 -1080 -1077 71 1110 1071 -1068 -1062 69 + 1179 1167 -1206 -1203 71 1179 1185 -1182 -1194 70 + 1182 1206 -1179 -1176 71 1170 1206 -1167 -1161 69 + 1263 1293 -1299 -1302 68 1272 1293 -1287 -1290 68 + 1287 1266 -1272 -1275 70 1299 1266 -1263 -1257 69 + 1359 1386 -1389 -1392 68 1368 1377 -1374 -1386 70 + 1389 1362 -1359 -1353 69 1461 1449 -1491 -1488 71 + 1479 1470 -1476 -1488 70 1461 1470 -1464 -1467 68 + 1464 1491 -1461 -1458 71 1491 1452 -1449 -1443 69 + 1560 1548 -1587 -1584 71 1560 1566 -1563 -1575 70 + 1563 1587 -1560 -1557 71 1551 1587 -1548 -1542 69 + 1644 1674 -1680 -1683 68 1653 1674 -1668 -1671 68 + 1668 1647 -1653 -1656 70 1680 1647 -1644 -1638 69 + 1740 1767 -1770 -1773 68 1749 1758 -1755 -1767 70 + 1770 1743 -1740 -1734 69 1842 1830 -1872 -1869 71 + 1860 1851 -1857 -1869 70 1842 1851 -1845 -1848 68 + 1845 1872 -1842 -1839 71 1872 1833 -1830 -1824 69 +%FLAG EXCLUDED_ATOMS_LIST +%FORMAT(10I8) + 2 3 4 5 6 3 4 5 6 7 + 8 23 4 5 6 7 8 9 23 24 + 25 28 5 6 7 8 23 6 7 8 + 23 7 8 9 10 11 23 24 25 26 + 27 28 29 8 9 23 24 25 28 9 + 10 11 12 21 23 24 25 26 27 28 + 10 11 12 13 14 20 21 22 23 24 + 25 26 27 28 11 12 21 23 25 26 + 27 12 13 14 15 16 20 21 22 23 + 25 26 27 13 14 15 16 17 20 21 + 22 25 14 15 16 21 15 16 17 18 + 19 20 21 16 17 20 17 18 19 20 + 21 22 18 19 20 21 19 20 20 21 + 22 22 25 0 24 25 26 27 28 29 + 30 31 32 25 26 27 28 29 26 27 + 28 29 27 28 28 29 30 31 32 33 + 30 31 32 33 34 35 36 31 32 33 + 32 33 33 34 35 36 37 38 56 34 + 35 36 37 38 39 56 57 58 61 35 + 36 37 38 56 36 37 38 56 37 38 + 39 40 41 56 57 58 59 60 61 62 + 38 39 56 57 58 61 39 40 41 42 + 55 56 57 58 59 60 61 40 41 42 + 43 44 45 54 55 56 57 58 59 60 + 61 41 42 55 56 58 59 60 42 43 + 44 45 46 50 54 55 56 58 59 60 + 43 44 45 46 54 55 58 44 45 55 + 45 46 47 48 54 55 46 47 48 49 + 50 54 55 47 48 49 50 51 54 55 + 48 49 50 55 49 50 51 52 53 54 + 55 50 51 54 51 52 53 54 55 52 + 53 54 55 53 54 54 55 58 57 58 + 59 60 61 62 63 64 65 58 59 60 + 61 62 59 60 61 62 60 61 61 62 + 63 64 65 66 63 64 65 66 67 68 + 69 64 65 66 65 66 66 67 68 69 + 70 71 88 67 68 69 70 71 72 88 + 89 90 93 68 69 70 71 88 69 70 + 71 88 70 71 72 73 74 88 89 90 + 91 92 93 94 71 72 88 89 90 93 + 72 73 74 75 87 88 89 90 91 92 + 93 73 74 75 76 77 78 86 87 88 + 89 90 91 92 93 74 75 87 88 90 + 91 92 75 76 77 78 79 84 86 87 + 88 90 91 92 76 77 78 79 86 87 + 90 77 78 87 78 79 80 83 86 87 + 79 80 81 82 83 84 86 87 80 81 + 82 83 84 85 86 87 81 82 83 84 + 87 82 83 83 84 85 86 87 85 86 + 87 86 87 87 90 89 90 91 92 93 + 94 95 96 97 90 91 92 93 94 91 + 92 93 94 92 93 93 94 95 96 97 + 98 95 96 97 98 99 100 101 96 97 + 98 97 98 98 99 100 101 102 103 120 + 99 100 101 102 103 104 120 121 122 125 + 100 101 102 103 120 101 102 103 120 102 + 103 104 105 106 120 121 122 123 124 125 + 126 103 104 120 121 122 125 104 105 106 + 107 118 120 121 122 123 124 125 105 106 + 107 108 109 116 118 119 120 121 122 123 + 124 125 106 107 118 120 122 123 124 107 + 108 109 110 114 116 117 118 119 120 122 + 123 124 108 109 110 111 112 113 114 115 + 116 118 119 122 109 110 114 118 110 111 + 112 113 114 115 116 117 118 111 112 113 + 114 115 116 112 113 114 113 114 114 115 + 116 117 118 119 116 117 118 117 118 119 + 118 119 119 122 0 121 122 123 124 125 + 126 127 128 129 122 123 124 125 126 123 + 124 125 126 124 125 125 126 127 128 129 + 130 127 128 129 130 131 132 133 128 129 + 130 129 130 130 131 132 133 134 135 150 + 131 132 133 134 135 136 150 151 152 155 + 132 133 134 135 150 133 134 135 150 134 + 135 136 137 138 150 151 152 153 154 155 + 156 135 136 150 151 152 155 136 137 138 + 139 148 150 151 152 153 154 155 137 138 + 139 140 141 147 148 149 150 151 152 153 + 154 155 138 139 148 150 152 153 154 139 + 140 141 142 143 147 148 149 150 152 153 + 154 140 141 142 143 144 147 148 149 152 + 141 142 143 148 142 143 144 145 146 147 + 148 143 144 147 144 145 146 147 148 149 + 145 146 147 148 146 147 147 148 149 149 + 152 0 151 152 153 154 155 156 157 158 + 159 152 153 154 155 156 153 154 155 156 + 154 155 155 156 157 158 159 160 157 158 + 159 160 161 162 163 158 159 160 159 160 + 160 161 162 163 164 165 183 161 162 163 + 164 165 166 183 184 185 188 162 163 164 + 165 183 163 164 165 183 164 165 166 167 + 168 183 184 185 186 187 188 189 165 166 + 183 184 185 188 166 167 168 169 182 183 + 184 185 186 187 188 167 168 169 170 171 + 172 181 182 183 184 185 186 187 188 168 + 169 182 183 185 186 187 169 170 171 172 + 173 177 181 182 183 185 186 187 170 171 + 172 173 181 182 185 171 172 182 172 173 + 174 175 181 182 173 174 175 176 177 181 + 182 174 175 176 177 178 181 182 175 176 + 177 182 176 177 178 179 180 181 182 177 + 178 181 178 179 180 181 182 179 180 181 + 182 180 181 181 182 185 184 185 186 187 + 188 189 190 191 192 185 186 187 188 189 + 186 187 188 189 187 188 188 189 190 191 + 192 193 190 191 192 193 194 195 196 191 + 192 193 192 193 193 194 195 196 197 198 + 215 194 195 196 197 198 199 215 216 217 + 220 195 196 197 198 215 196 197 198 215 + 197 198 199 200 201 215 216 217 218 219 + 220 221 198 199 215 216 217 220 199 200 + 201 202 214 215 216 217 218 219 220 200 + 201 202 203 204 205 213 214 215 216 217 + 218 219 220 201 202 214 215 217 218 219 + 202 203 204 205 206 211 213 214 215 217 + 218 219 203 204 205 206 213 214 217 204 + 205 214 205 206 207 210 213 214 206 207 + 208 209 210 211 213 214 207 208 209 210 + 211 212 213 214 208 209 210 211 214 209 + 210 210 211 212 213 214 212 213 214 213 + 214 214 217 216 217 218 219 220 221 222 + 223 224 217 218 219 220 221 218 219 220 + 221 219 220 220 221 222 223 224 225 222 + 223 224 225 226 227 228 223 224 225 224 + 225 225 226 227 228 229 230 247 226 227 + 228 229 230 231 247 248 249 252 227 228 + 229 230 247 228 229 230 247 229 230 231 + 232 233 247 248 249 250 251 252 253 230 + 231 247 248 249 252 231 232 233 234 245 + 247 248 249 250 251 252 232 233 234 235 + 236 243 245 246 247 248 249 250 251 252 + 233 234 245 247 249 250 251 234 235 236 + 237 241 243 244 245 246 247 249 250 251 + 235 236 237 238 239 240 241 242 243 245 + 246 249 236 237 241 245 237 238 239 240 + 241 242 243 244 245 238 239 240 241 242 + 243 239 240 241 240 241 241 242 243 244 + 245 246 243 244 245 244 245 246 245 246 + 246 249 0 248 249 250 251 252 253 254 + 255 256 249 250 251 252 253 250 251 252 + 253 251 252 252 253 254 255 256 257 254 + 255 256 257 258 259 260 255 256 257 256 + 257 257 258 259 260 261 262 277 258 259 + 260 261 262 263 277 278 279 282 259 260 + 261 262 277 260 261 262 277 261 262 263 + 264 265 277 278 279 280 281 282 283 262 + 263 277 278 279 282 263 264 265 266 275 + 277 278 279 280 281 282 264 265 266 267 + 268 274 275 276 277 278 279 280 281 282 + 265 266 275 277 279 280 281 266 267 268 + 269 270 274 275 276 277 279 280 281 267 + 268 269 270 271 274 275 276 279 268 269 + 270 275 269 270 271 272 273 274 275 270 + 271 274 271 272 273 274 275 276 272 273 + 274 275 273 274 274 275 276 276 279 0 + 278 279 280 281 282 283 284 285 286 279 + 280 281 282 283 280 281 282 283 281 282 + 282 283 284 285 286 287 284 285 286 287 + 288 289 290 285 286 287 286 287 287 288 + 289 290 291 292 310 288 289 290 291 292 + 293 310 311 312 315 289 290 291 292 310 + 290 291 292 310 291 292 293 294 295 310 + 311 312 313 314 315 316 292 293 310 311 + 312 315 293 294 295 296 309 310 311 312 + 313 314 315 294 295 296 297 298 299 308 + 309 310 311 312 313 314 315 295 296 309 + 310 312 313 314 296 297 298 299 300 304 + 308 309 310 312 313 314 297 298 299 300 + 308 309 312 298 299 309 299 300 301 302 + 308 309 300 301 302 303 304 308 309 301 + 302 303 304 305 308 309 302 303 304 309 + 303 304 305 306 307 308 309 304 305 308 + 305 306 307 308 309 306 307 308 309 307 + 308 308 309 312 311 312 313 314 315 316 + 312 313 314 315 316 313 314 315 316 314 + 315 315 316 0 318 319 320 321 322 319 + 320 321 322 323 324 339 320 321 322 323 + 324 325 339 340 341 344 321 322 323 324 + 339 322 323 324 339 323 324 325 326 327 + 339 340 341 342 343 344 345 324 325 339 + 340 341 344 325 326 327 328 337 339 340 + 341 342 343 344 326 327 328 329 330 336 + 337 338 339 340 341 342 343 344 327 328 + 337 339 341 342 343 328 329 330 331 332 + 336 337 338 339 341 342 343 329 330 331 + 332 333 336 337 338 341 330 331 332 337 + 331 332 333 334 335 336 337 332 333 336 + 333 334 335 336 337 338 334 335 336 337 + 335 336 336 337 338 338 341 0 340 341 + 342 343 344 345 346 347 348 341 342 343 + 344 345 342 343 344 345 343 344 344 345 + 346 347 348 349 346 347 348 349 350 351 + 352 347 348 349 348 349 349 350 351 352 + 353 354 372 350 351 352 353 354 355 372 + 373 374 377 351 352 353 354 372 352 353 + 354 372 353 354 355 356 357 372 373 374 + 375 376 377 378 354 355 372 373 374 377 + 355 356 357 358 371 372 373 374 375 376 + 377 356 357 358 359 360 361 370 371 372 + 373 374 375 376 377 357 358 371 372 374 + 375 376 358 359 360 361 362 366 370 371 + 372 374 375 376 359 360 361 362 370 371 + 374 360 361 371 361 362 363 364 370 371 + 362 363 364 365 366 370 371 363 364 365 + 366 367 370 371 364 365 366 371 365 366 + 367 368 369 370 371 366 367 370 367 368 + 369 370 371 368 369 370 371 369 370 370 + 371 374 373 374 375 376 377 378 379 380 + 381 374 375 376 377 378 375 376 377 378 + 376 377 377 378 379 380 381 382 379 380 + 381 382 383 384 385 380 381 382 381 382 + 382 383 384 385 386 387 404 383 384 385 + 386 387 388 404 405 406 409 384 385 386 + 387 404 385 386 387 404 386 387 388 389 + 390 404 405 406 407 408 409 410 387 388 + 404 405 406 409 388 389 390 391 403 404 + 405 406 407 408 409 389 390 391 392 393 + 394 402 403 404 405 406 407 408 409 390 + 391 403 404 406 407 408 391 392 393 394 + 395 400 402 403 404 406 407 408 392 393 + 394 395 402 403 406 393 394 403 394 395 + 396 399 402 403 395 396 397 398 399 400 + 402 403 396 397 398 399 400 401 402 403 + 397 398 399 400 403 398 399 399 400 401 + 402 403 401 402 403 402 403 403 406 405 + 406 407 408 409 410 411 412 413 406 407 + 408 409 410 407 408 409 410 408 409 409 + 410 411 412 413 414 411 412 413 414 415 + 416 417 412 413 414 413 414 414 415 416 + 417 418 419 436 415 416 417 418 419 420 + 436 437 438 441 416 417 418 419 436 417 + 418 419 436 418 419 420 421 422 436 437 + 438 439 440 441 442 419 420 436 437 438 + 441 420 421 422 423 434 436 437 438 439 + 440 441 421 422 423 424 425 432 434 435 + 436 437 438 439 440 441 422 423 434 436 + 438 439 440 423 424 425 426 430 432 433 + 434 435 436 438 439 440 424 425 426 427 + 428 429 430 431 432 434 435 438 425 426 + 430 434 426 427 428 429 430 431 432 433 + 434 427 428 429 430 431 432 428 429 430 + 429 430 430 431 432 433 434 435 432 433 + 434 433 434 435 434 435 435 438 0 437 + 438 439 440 441 442 443 444 445 438 439 + 440 441 442 439 440 441 442 440 441 441 + 442 443 444 445 446 443 444 445 446 447 + 448 449 444 445 446 445 446 446 447 448 + 449 450 451 466 447 448 449 450 451 452 + 466 467 468 471 448 449 450 451 466 449 + 450 451 466 450 451 452 453 454 466 467 + 468 469 470 471 472 451 452 466 467 468 + 471 452 453 454 455 464 466 467 468 469 + 470 471 453 454 455 456 457 463 464 465 + 466 467 468 469 470 471 454 455 464 466 + 468 469 470 455 456 457 458 459 463 464 + 465 466 468 469 470 456 457 458 459 460 + 463 464 465 468 457 458 459 464 458 459 + 460 461 462 463 464 459 460 463 460 461 + 462 463 464 465 461 462 463 464 462 463 + 463 464 465 465 468 0 467 468 469 470 + 471 472 473 474 475 468 469 470 471 472 + 469 470 471 472 470 471 471 472 473 474 + 475 476 473 474 475 476 477 478 479 474 + 475 476 475 476 476 477 478 479 480 481 + 499 477 478 479 480 481 482 499 500 501 + 504 478 479 480 481 499 479 480 481 499 + 480 481 482 483 484 499 500 501 502 503 + 504 505 481 482 499 500 501 504 482 483 + 484 485 498 499 500 501 502 503 504 483 + 484 485 486 487 488 497 498 499 500 501 + 502 503 504 484 485 498 499 501 502 503 + 485 486 487 488 489 493 497 498 499 501 + 502 503 486 487 488 489 497 498 501 487 + 488 498 488 489 490 491 497 498 489 490 + 491 492 493 497 498 490 491 492 493 494 + 497 498 491 492 493 498 492 493 494 495 + 496 497 498 493 494 497 494 495 496 497 + 498 495 496 497 498 496 497 497 498 501 + 500 501 502 503 504 505 506 507 508 501 + 502 503 504 505 502 503 504 505 503 504 + 504 505 506 507 508 509 506 507 508 509 + 510 511 512 507 508 509 508 509 509 510 + 511 512 513 514 531 510 511 512 513 514 + 515 531 532 533 536 511 512 513 514 531 + 512 513 514 531 513 514 515 516 517 531 + 532 533 534 535 536 537 514 515 531 532 + 533 536 515 516 517 518 530 531 532 533 + 534 535 536 516 517 518 519 520 521 529 + 530 531 532 533 534 535 536 517 518 530 + 531 533 534 535 518 519 520 521 522 527 + 529 530 531 533 534 535 519 520 521 522 + 529 530 533 520 521 530 521 522 523 526 + 529 530 522 523 524 525 526 527 529 530 + 523 524 525 526 527 528 529 530 524 525 + 526 527 530 525 526 526 527 528 529 530 + 528 529 530 529 530 530 533 532 533 534 + 535 536 537 538 539 540 533 534 535 536 + 537 534 535 536 537 535 536 536 537 538 + 539 540 541 538 539 540 541 542 543 544 + 539 540 541 540 541 541 542 543 544 545 + 546 563 542 543 544 545 546 547 563 564 + 565 568 543 544 545 546 563 544 545 546 + 563 545 546 547 548 549 563 564 565 566 + 567 568 569 546 547 563 564 565 568 547 + 548 549 550 561 563 564 565 566 567 568 + 548 549 550 551 552 559 561 562 563 564 + 565 566 567 568 549 550 561 563 565 566 + 567 550 551 552 553 557 559 560 561 562 + 563 565 566 567 551 552 553 554 555 556 + 557 558 559 561 562 565 552 553 557 561 + 553 554 555 556 557 558 559 560 561 554 + 555 556 557 558 559 555 556 557 556 557 + 557 558 559 560 561 562 559 560 561 560 + 561 562 561 562 562 565 0 564 565 566 + 567 568 569 570 571 572 565 566 567 568 + 569 566 567 568 569 567 568 568 569 570 + 571 572 573 570 571 572 573 574 575 576 + 571 572 573 572 573 573 574 575 576 577 + 578 593 574 575 576 577 578 579 593 594 + 595 598 575 576 577 578 593 576 577 578 + 593 577 578 579 580 581 593 594 595 596 + 597 598 599 578 579 593 594 595 598 579 + 580 581 582 591 593 594 595 596 597 598 + 580 581 582 583 584 590 591 592 593 594 + 595 596 597 598 581 582 591 593 595 596 + 597 582 583 584 585 586 590 591 592 593 + 595 596 597 583 584 585 586 587 590 591 + 592 595 584 585 586 591 585 586 587 588 + 589 590 591 586 587 590 587 588 589 590 + 591 592 588 589 590 591 589 590 590 591 + 592 592 595 0 594 595 596 597 598 599 + 600 601 602 595 596 597 598 599 596 597 + 598 599 597 598 598 599 600 601 602 603 + 600 601 602 603 604 605 606 601 602 603 + 602 603 603 604 605 606 607 608 626 604 + 605 606 607 608 609 626 627 628 631 605 + 606 607 608 626 606 607 608 626 607 608 + 609 610 611 626 627 628 629 630 631 632 + 608 609 626 627 628 631 609 610 611 612 + 625 626 627 628 629 630 631 610 611 612 + 613 614 615 624 625 626 627 628 629 630 + 631 611 612 625 626 628 629 630 612 613 + 614 615 616 620 624 625 626 628 629 630 + 613 614 615 616 624 625 628 614 615 625 + 615 616 617 618 624 625 616 617 618 619 + 620 624 625 617 618 619 620 621 624 625 + 618 619 620 625 619 620 621 622 623 624 + 625 620 621 624 621 622 623 624 625 622 + 623 624 625 623 624 624 625 628 627 628 + 629 630 631 632 628 629 630 631 632 629 + 630 631 632 630 631 631 632 0 0 0 + 0 0 0 0 0 0 0 643 644 644 + 0 646 647 647 0 649 650 650 0 652 + 653 653 0 655 656 656 0 658 659 659 + 0 661 662 662 0 664 665 665 0 667 + 668 668 0 670 671 671 0 673 674 674 + 0 676 677 677 0 679 680 680 0 682 + 683 683 0 685 686 686 0 688 689 689 + 0 691 692 692 0 694 695 695 0 697 + 698 698 0 700 701 701 0 703 704 704 + 0 706 707 707 0 709 710 710 0 712 + 713 713 0 715 716 716 0 718 719 719 + 0 721 722 722 0 724 725 725 0 727 + 728 728 0 730 731 731 0 733 734 734 + 0 736 737 737 0 739 740 740 0 742 + 743 743 0 745 746 746 0 748 749 749 + 0 751 752 752 0 754 755 755 0 757 + 758 758 0 760 761 761 0 763 764 764 + 0 766 767 767 0 769 770 770 0 772 + 773 773 0 775 776 776 0 778 779 779 + 0 781 782 782 0 784 785 785 0 787 + 788 788 0 790 791 791 0 793 794 794 + 0 796 797 797 0 799 800 800 0 802 + 803 803 0 805 806 806 0 808 809 809 + 0 811 812 812 0 814 815 815 0 817 + 818 818 0 820 821 821 0 823 824 824 + 0 826 827 827 0 829 830 830 0 832 + 833 833 0 835 836 836 0 838 839 839 + 0 841 842 842 0 844 845 845 0 847 + 848 848 0 850 851 851 0 853 854 854 + 0 856 857 857 0 859 860 860 0 862 + 863 863 0 865 866 866 0 868 869 869 + 0 871 872 872 0 874 875 875 0 877 + 878 878 0 880 881 881 0 883 884 884 + 0 886 887 887 0 889 890 890 0 892 + 893 893 0 895 896 896 0 898 899 899 + 0 901 902 902 0 904 905 905 0 907 + 908 908 0 910 911 911 0 913 914 914 + 0 916 917 917 0 919 920 920 0 922 + 923 923 0 925 926 926 0 928 929 929 + 0 931 932 932 0 934 935 935 0 937 + 938 938 0 940 941 941 0 943 944 944 + 0 946 947 947 0 949 950 950 0 952 + 953 953 0 955 956 956 0 958 959 959 + 0 961 962 962 0 964 965 965 0 967 + 968 968 0 970 971 971 0 973 974 974 + 0 976 977 977 0 979 980 980 0 982 + 983 983 0 985 986 986 0 988 989 989 + 0 991 992 992 0 994 995 995 0 997 + 998 998 0 1000 1001 1001 0 1003 1004 1004 + 0 1006 1007 1007 0 1009 1010 1010 0 1012 + 1013 1013 0 1015 1016 1016 0 1018 1019 1019 + 0 1021 1022 1022 0 1024 1025 1025 0 1027 + 1028 1028 0 1030 1031 1031 0 1033 1034 1034 + 0 1036 1037 1037 0 1039 1040 1040 0 1042 + 1043 1043 0 1045 1046 1046 0 1048 1049 1049 + 0 1051 1052 1052 0 1054 1055 1055 0 1057 + 1058 1058 0 1060 1061 1061 0 1063 1064 1064 + 0 1066 1067 1067 0 1069 1070 1070 0 1072 + 1073 1073 0 1075 1076 1076 0 1078 1079 1079 + 0 1081 1082 1082 0 1084 1085 1085 0 1087 + 1088 1088 0 1090 1091 1091 0 1093 1094 1094 + 0 1096 1097 1097 0 1099 1100 1100 0 1102 + 1103 1103 0 1105 1106 1106 0 1108 1109 1109 + 0 1111 1112 1112 0 1114 1115 1115 0 1117 + 1118 1118 0 1120 1121 1121 0 1123 1124 1124 + 0 1126 1127 1127 0 1129 1130 1130 0 1132 + 1133 1133 0 1135 1136 1136 0 1138 1139 1139 + 0 1141 1142 1142 0 1144 1145 1145 0 1147 + 1148 1148 0 1150 1151 1151 0 1153 1154 1154 + 0 1156 1157 1157 0 1159 1160 1160 0 1162 + 1163 1163 0 1165 1166 1166 0 1168 1169 1169 + 0 1171 1172 1172 0 1174 1175 1175 0 1177 + 1178 1178 0 1180 1181 1181 0 1183 1184 1184 + 0 1186 1187 1187 0 1189 1190 1190 0 1192 + 1193 1193 0 1195 1196 1196 0 1198 1199 1199 + 0 1201 1202 1202 0 1204 1205 1205 0 1207 + 1208 1208 0 1210 1211 1211 0 1213 1214 1214 + 0 1216 1217 1217 0 1219 1220 1220 0 1222 + 1223 1223 0 1225 1226 1226 0 1228 1229 1229 + 0 1231 1232 1232 0 1234 1235 1235 0 1237 + 1238 1238 0 1240 1241 1241 0 1243 1244 1244 + 0 1246 1247 1247 0 1249 1250 1250 0 1252 + 1253 1253 0 1255 1256 1256 0 1258 1259 1259 + 0 1261 1262 1262 0 1264 1265 1265 0 1267 + 1268 1268 0 1270 1271 1271 0 1273 1274 1274 + 0 1276 1277 1277 0 1279 1280 1280 0 1282 + 1283 1283 0 1285 1286 1286 0 1288 1289 1289 + 0 1291 1292 1292 0 1294 1295 1295 0 1297 + 1298 1298 0 1300 1301 1301 0 1303 1304 1304 + 0 1306 1307 1307 0 1309 1310 1310 0 1312 + 1313 1313 0 1315 1316 1316 0 1318 1319 1319 + 0 1321 1322 1322 0 1324 1325 1325 0 1327 + 1328 1328 0 1330 1331 1331 0 1333 1334 1334 + 0 1336 1337 1337 0 1339 1340 1340 0 1342 + 1343 1343 0 1345 1346 1346 0 1348 1349 1349 + 0 1351 1352 1352 0 1354 1355 1355 0 1357 + 1358 1358 0 1360 1361 1361 0 1363 1364 1364 + 0 1366 1367 1367 0 1369 1370 1370 0 1372 + 1373 1373 0 1375 1376 1376 0 1378 1379 1379 + 0 1381 1382 1382 0 1384 1385 1385 0 1387 + 1388 1388 0 1390 1391 1391 0 1393 1394 1394 + 0 1396 1397 1397 0 1399 1400 1400 0 1402 + 1403 1403 0 1405 1406 1406 0 1408 1409 1409 + 0 1411 1412 1412 0 1414 1415 1415 0 1417 + 1418 1418 0 1420 1421 1421 0 1423 1424 1424 + 0 1426 1427 1427 0 1429 1430 1430 0 1432 + 1433 1433 0 1435 1436 1436 0 1438 1439 1439 + 0 1441 1442 1442 0 1444 1445 1445 0 1447 + 1448 1448 0 1450 1451 1451 0 1453 1454 1454 + 0 1456 1457 1457 0 1459 1460 1460 0 1462 + 1463 1463 0 1465 1466 1466 0 1468 1469 1469 + 0 1471 1472 1472 0 1474 1475 1475 0 1477 + 1478 1478 0 1480 1481 1481 0 1483 1484 1484 + 0 1486 1487 1487 0 1489 1490 1490 0 1492 + 1493 1493 0 1495 1496 1496 0 1498 1499 1499 + 0 1501 1502 1502 0 1504 1505 1505 0 1507 + 1508 1508 0 1510 1511 1511 0 1513 1514 1514 + 0 1516 1517 1517 0 1519 1520 1520 0 1522 + 1523 1523 0 1525 1526 1526 0 1528 1529 1529 + 0 1531 1532 1532 0 1534 1535 1535 0 1537 + 1538 1538 0 1540 1541 1541 0 1543 1544 1544 + 0 1546 1547 1547 0 1549 1550 1550 0 1552 + 1553 1553 0 1555 1556 1556 0 1558 1559 1559 + 0 1561 1562 1562 0 1564 1565 1565 0 1567 + 1568 1568 0 1570 1571 1571 0 1573 1574 1574 + 0 1576 1577 1577 0 1579 1580 1580 0 1582 + 1583 1583 0 1585 1586 1586 0 1588 1589 1589 + 0 1591 1592 1592 0 1594 1595 1595 0 1597 + 1598 1598 0 1600 1601 1601 0 1603 1604 1604 + 0 1606 1607 1607 0 1609 1610 1610 0 1612 + 1613 1613 0 1615 1616 1616 0 1618 1619 1619 + 0 1621 1622 1622 0 1624 1625 1625 0 1627 + 1628 1628 0 1630 1631 1631 0 1633 1634 1634 + 0 1636 1637 1637 0 1639 1640 1640 0 1642 + 1643 1643 0 1645 1646 1646 0 1648 1649 1649 + 0 1651 1652 1652 0 1654 1655 1655 0 1657 + 1658 1658 0 1660 1661 1661 0 1663 1664 1664 + 0 1666 1667 1667 0 1669 1670 1670 0 1672 + 1673 1673 0 1675 1676 1676 0 1678 1679 1679 + 0 1681 1682 1682 0 1684 1685 1685 0 1687 + 1688 1688 0 1690 1691 1691 0 1693 1694 1694 + 0 1696 1697 1697 0 1699 1700 1700 0 1702 + 1703 1703 0 1705 1706 1706 0 1708 1709 1709 + 0 1711 1712 1712 0 1714 1715 1715 0 1717 + 1718 1718 0 1720 1721 1721 0 1723 1724 1724 + 0 1726 1727 1727 0 1729 1730 1730 0 1732 + 1733 1733 0 1735 1736 1736 0 1738 1739 1739 + 0 1741 1742 1742 0 1744 1745 1745 0 1747 + 1748 1748 0 1750 1751 1751 0 1753 1754 1754 + 0 1756 1757 1757 0 1759 1760 1760 0 1762 + 1763 1763 0 1765 1766 1766 0 1768 1769 1769 + 0 1771 1772 1772 0 1774 1775 1775 0 1777 + 1778 1778 0 1780 1781 1781 0 1783 1784 1784 + 0 1786 1787 1787 0 1789 1790 1790 0 1792 + 1793 1793 0 1795 1796 1796 0 1798 1799 1799 + 0 1801 1802 1802 0 1804 1805 1805 0 1807 + 1808 1808 0 1810 1811 1811 0 1813 1814 1814 + 0 1816 1817 1817 0 1819 1820 1820 0 1822 + 1823 1823 0 1825 1826 1826 0 1828 1829 1829 + 0 1831 1832 1832 0 1834 1835 1835 0 1837 + 1838 1838 0 1840 1841 1841 0 1843 1844 1844 + 0 1846 1847 1847 0 1849 1850 1850 0 1852 + 1853 1853 0 1855 1856 1856 0 1858 1859 1859 + 0 1861 1862 1862 0 1864 1865 1865 0 1867 + 1868 1868 0 1870 1871 1871 0 1873 1874 1874 + 0 1876 1877 1877 0 1879 1880 1880 0 1882 + 1883 1883 0 1885 1886 1886 0 1888 1889 1889 + 0 1891 1892 1892 0 1894 1895 1895 0 1897 + 1898 1898 0 1900 1901 1901 0 1903 1904 1904 + 0 1906 1907 1907 0 1909 1910 1910 0 1912 + 1913 1913 0 1915 1916 1916 0 1918 1919 1919 + 0 1921 1922 1922 0 1924 1925 1925 0 1927 + 1928 1928 0 1930 1931 1931 0 1933 1934 1934 + 0 1936 1937 1937 0 1939 1940 1940 0 1942 + 1943 1943 0 1945 1946 1946 0 1948 1949 1949 + 0 1951 1952 1952 0 1954 1955 1955 0 1957 + 1958 1958 0 1960 1961 1961 0 1963 1964 1964 + 0 1966 1967 1967 0 1969 1970 1970 0 1972 + 1973 1973 0 1975 1976 1976 0 1978 1979 1979 + 0 1981 1982 1982 0 1984 1985 1985 0 1987 + 1988 1988 0 1990 1991 1991 0 1993 1994 1994 + 0 1996 1997 1997 0 1999 2000 2000 0 2002 + 2003 2003 0 2005 2006 2006 0 2008 2009 2009 + 0 2011 2012 2012 0 2014 2015 2015 0 2017 + 2018 2018 0 2020 2021 2021 0 2023 2024 2024 + 0 2026 2027 2027 0 2029 2030 2030 0 2032 + 2033 2033 0 2035 2036 2036 0 2038 2039 2039 + 0 2041 2042 2042 0 2044 2045 2045 0 2047 + 2048 2048 0 2050 2051 2051 0 2053 2054 2054 + 0 2056 2057 2057 0 2059 2060 2060 0 2062 + 2063 2063 0 2065 2066 2066 0 2068 2069 2069 + 0 2071 2072 2072 0 2074 2075 2075 0 2077 + 2078 2078 0 2080 2081 2081 0 2083 2084 2084 + 0 2086 2087 2087 0 2089 2090 2090 0 2092 + 2093 2093 0 2095 2096 2096 0 2098 2099 2099 + 0 2101 2102 2102 0 2104 2105 2105 0 2107 + 2108 2108 0 2110 2111 2111 0 2113 2114 2114 + 0 2116 2117 2117 0 2119 2120 2120 0 2122 + 2123 2123 0 2125 2126 2126 0 2128 2129 2129 + 0 2131 2132 2132 0 2134 2135 2135 0 2137 + 2138 2138 0 2140 2141 2141 0 2143 2144 2144 + 0 2146 2147 2147 0 2149 2150 2150 0 2152 + 2153 2153 0 2155 2156 2156 0 2158 2159 2159 + 0 2161 2162 2162 0 2164 2165 2165 0 2167 + 2168 2168 0 2170 2171 2171 0 2173 2174 2174 + 0 2176 2177 2177 0 2179 2180 2180 0 2182 + 2183 2183 0 2185 2186 2186 0 2188 2189 2189 + 0 2191 2192 2192 0 2194 2195 2195 0 2197 + 2198 2198 0 2200 2201 2201 0 2203 2204 2204 + 0 2206 2207 2207 0 2209 2210 2210 0 2212 + 2213 2213 0 2215 2216 2216 0 2218 2219 2219 + 0 2221 2222 2222 0 2224 2225 2225 0 2227 + 2228 2228 0 2230 2231 2231 0 2233 2234 2234 + 0 2236 2237 2237 0 2239 2240 2240 0 2242 + 2243 2243 0 2245 2246 2246 0 2248 2249 2249 + 0 2251 2252 2252 0 2254 2255 2255 0 2257 + 2258 2258 0 2260 2261 2261 0 2263 2264 2264 + 0 2266 2267 2267 0 2269 2270 2270 0 2272 + 2273 2273 0 2275 2276 2276 0 2278 2279 2279 + 0 2281 2282 2282 0 2284 2285 2285 0 2287 + 2288 2288 0 2290 2291 2291 0 2293 2294 2294 + 0 2296 2297 2297 0 2299 2300 2300 0 2302 + 2303 2303 0 2305 2306 2306 0 2308 2309 2309 + 0 2311 2312 2312 0 2314 2315 2315 0 2317 + 2318 2318 0 2320 2321 2321 0 2323 2324 2324 + 0 2326 2327 2327 0 2329 2330 2330 0 2332 + 2333 2333 0 2335 2336 2336 0 2338 2339 2339 + 0 2341 2342 2342 0 2344 2345 2345 0 2347 + 2348 2348 0 2350 2351 2351 0 2353 2354 2354 + 0 2356 2357 2357 0 2359 2360 2360 0 2362 + 2363 2363 0 2365 2366 2366 0 2368 2369 2369 + 0 2371 2372 2372 0 2374 2375 2375 0 2377 + 2378 2378 0 2380 2381 2381 0 2383 2384 2384 + 0 2386 2387 2387 0 2389 2390 2390 0 2392 + 2393 2393 0 2395 2396 2396 0 2398 2399 2399 + 0 2401 2402 2402 0 2404 2405 2405 0 2407 + 2408 2408 0 2410 2411 2411 0 2413 2414 2414 + 0 2416 2417 2417 0 2419 2420 2420 0 2422 + 2423 2423 0 2425 2426 2426 0 2428 2429 2429 + 0 2431 2432 2432 0 2434 2435 2435 0 2437 + 2438 2438 0 2440 2441 2441 0 2443 2444 2444 + 0 2446 2447 2447 0 2449 2450 2450 0 2452 + 2453 2453 0 2455 2456 2456 0 2458 2459 2459 + 0 2461 2462 2462 0 2464 2465 2465 0 2467 + 2468 2468 0 2470 2471 2471 0 2473 2474 2474 + 0 2476 2477 2477 0 2479 2480 2480 0 2482 + 2483 2483 0 2485 2486 2486 0 2488 2489 2489 + 0 2491 2492 2492 0 2494 2495 2495 0 2497 + 2498 2498 0 2500 2501 2501 0 2503 2504 2504 + 0 2506 2507 2507 0 2509 2510 2510 0 2512 + 2513 2513 0 2515 2516 2516 0 2518 2519 2519 + 0 2521 2522 2522 0 2524 2525 2525 0 2527 + 2528 2528 0 2530 2531 2531 0 2533 2534 2534 + 0 2536 2537 2537 0 2539 2540 2540 0 2542 + 2543 2543 0 2545 2546 2546 0 2548 2549 2549 + 0 2551 2552 2552 0 2554 2555 2555 0 2557 + 2558 2558 0 2560 2561 2561 0 2563 2564 2564 + 0 2566 2567 2567 0 2569 2570 2570 0 2572 + 2573 2573 0 2575 2576 2576 0 2578 2579 2579 + 0 2581 2582 2582 0 2584 2585 2585 0 2587 + 2588 2588 0 2590 2591 2591 0 2593 2594 2594 + 0 2596 2597 2597 0 2599 2600 2600 0 2602 + 2603 2603 0 2605 2606 2606 0 2608 2609 2609 + 0 2611 2612 2612 0 2614 2615 2615 0 2617 + 2618 2618 0 2620 2621 2621 0 2623 2624 2624 + 0 2626 2627 2627 0 2629 2630 2630 0 2632 + 2633 2633 0 2635 2636 2636 0 2638 2639 2639 + 0 2641 2642 2642 0 2644 2645 2645 0 2647 + 2648 2648 0 2650 2651 2651 0 2653 2654 2654 + 0 2656 2657 2657 0 2659 2660 2660 0 2662 + 2663 2663 0 2665 2666 2666 0 2668 2669 2669 + 0 2671 2672 2672 0 2674 2675 2675 0 2677 + 2678 2678 0 2680 2681 2681 0 2683 2684 2684 + 0 2686 2687 2687 0 2689 2690 2690 0 2692 + 2693 2693 0 2695 2696 2696 0 2698 2699 2699 + 0 2701 2702 2702 0 2704 2705 2705 0 2707 + 2708 2708 0 2710 2711 2711 0 2713 2714 2714 + 0 2716 2717 2717 0 2719 2720 2720 0 2722 + 2723 2723 0 2725 2726 2726 0 2728 2729 2729 + 0 2731 2732 2732 0 2734 2735 2735 0 2737 + 2738 2738 0 2740 2741 2741 0 2743 2744 2744 + 0 2746 2747 2747 0 2749 2750 2750 0 2752 + 2753 2753 0 2755 2756 2756 0 2758 2759 2759 + 0 2761 2762 2762 0 2764 2765 2765 0 2767 + 2768 2768 0 2770 2771 2771 0 2773 2774 2774 + 0 2776 2777 2777 0 2779 2780 2780 0 2782 + 2783 2783 0 2785 2786 2786 0 2788 2789 2789 + 0 2791 2792 2792 0 2794 2795 2795 0 2797 + 2798 2798 0 2800 2801 2801 0 2803 2804 2804 + 0 2806 2807 2807 0 2809 2810 2810 0 2812 + 2813 2813 0 2815 2816 2816 0 2818 2819 2819 + 0 2821 2822 2822 0 2824 2825 2825 0 2827 + 2828 2828 0 2830 2831 2831 0 2833 2834 2834 + 0 2836 2837 2837 0 2839 2840 2840 0 2842 + 2843 2843 0 2845 2846 2846 0 2848 2849 2849 + 0 2851 2852 2852 0 2854 2855 2855 0 2857 + 2858 2858 0 2860 2861 2861 0 2863 2864 2864 + 0 2866 2867 2867 0 2869 2870 2870 0 2872 + 2873 2873 0 2875 2876 2876 0 2878 2879 2879 + 0 2881 2882 2882 0 2884 2885 2885 0 2887 + 2888 2888 0 2890 2891 2891 0 2893 2894 2894 + 0 2896 2897 2897 0 2899 2900 2900 0 2902 + 2903 2903 0 2905 2906 2906 0 2908 2909 2909 + 0 2911 2912 2912 0 2914 2915 2915 0 2917 + 2918 2918 0 2920 2921 2921 0 2923 2924 2924 + 0 2926 2927 2927 0 2929 2930 2930 0 2932 + 2933 2933 0 2935 2936 2936 0 2938 2939 2939 + 0 2941 2942 2942 0 2944 2945 2945 0 2947 + 2948 2948 0 2950 2951 2951 0 2953 2954 2954 + 0 2956 2957 2957 0 2959 2960 2960 0 2962 + 2963 2963 0 2965 2966 2966 0 2968 2969 2969 + 0 2971 2972 2972 0 2974 2975 2975 0 2977 + 2978 2978 0 2980 2981 2981 0 2983 2984 2984 + 0 2986 2987 2987 0 2989 2990 2990 0 2992 + 2993 2993 0 2995 2996 2996 0 2998 2999 2999 + 0 3001 3002 3002 0 3004 3005 3005 0 3007 + 3008 3008 0 3010 3011 3011 0 3013 3014 3014 + 0 3016 3017 3017 0 3019 3020 3020 0 3022 + 3023 3023 0 3025 3026 3026 0 3028 3029 3029 + 0 3031 3032 3032 0 3034 3035 3035 0 3037 + 3038 3038 0 3040 3041 3041 0 3043 3044 3044 + 0 3046 3047 3047 0 3049 3050 3050 0 3052 + 3053 3053 0 3055 3056 3056 0 3058 3059 3059 + 0 3061 3062 3062 0 3064 3065 3065 0 3067 + 3068 3068 0 3070 3071 3071 0 3073 3074 3074 + 0 3076 3077 3077 0 3079 3080 3080 0 3082 + 3083 3083 0 3085 3086 3086 0 3088 3089 3089 + 0 3091 3092 3092 0 3094 3095 3095 0 3097 + 3098 3098 0 3100 3101 3101 0 3103 3104 3104 + 0 3106 3107 3107 0 3109 3110 3110 0 3112 + 3113 3113 0 3115 3116 3116 0 3118 3119 3119 + 0 3121 3122 3122 0 3124 3125 3125 0 3127 + 3128 3128 0 3130 3131 3131 0 3133 3134 3134 + 0 3136 3137 3137 0 3139 3140 3140 0 3142 + 3143 3143 0 3145 3146 3146 0 3148 3149 3149 + 0 3151 3152 3152 0 3154 3155 3155 0 3157 + 3158 3158 0 3160 3161 3161 0 3163 3164 3164 + 0 3166 3167 3167 0 3169 3170 3170 0 3172 + 3173 3173 0 3175 3176 3176 0 3178 3179 3179 + 0 3181 3182 3182 0 3184 3185 3185 0 3187 + 3188 3188 0 3190 3191 3191 0 3193 3194 3194 + 0 3196 3197 3197 0 3199 3200 3200 0 3202 + 3203 3203 0 3205 3206 3206 0 3208 3209 3209 + 0 3211 3212 3212 0 3214 3215 3215 0 3217 + 3218 3218 0 3220 3221 3221 0 3223 3224 3224 + 0 3226 3227 3227 0 3229 3230 3230 0 3232 + 3233 3233 0 3235 3236 3236 0 3238 3239 3239 + 0 3241 3242 3242 0 3244 3245 3245 0 3247 + 3248 3248 0 3250 3251 3251 0 3253 3254 3254 + 0 3256 3257 3257 0 3259 3260 3260 0 3262 + 3263 3263 0 3265 3266 3266 0 3268 3269 3269 + 0 3271 3272 3272 0 3274 3275 3275 0 3277 + 3278 3278 0 3280 3281 3281 0 3283 3284 3284 + 0 3286 3287 3287 0 3289 3290 3290 0 3292 + 3293 3293 0 3295 3296 3296 0 3298 3299 3299 + 0 3301 3302 3302 0 3304 3305 3305 0 3307 + 3308 3308 0 3310 3311 3311 0 3313 3314 3314 + 0 3316 3317 3317 0 3319 3320 3320 0 3322 + 3323 3323 0 3325 3326 3326 0 3328 3329 3329 + 0 3331 3332 3332 0 3334 3335 3335 0 3337 + 3338 3338 0 3340 3341 3341 0 3343 3344 3344 + 0 3346 3347 3347 0 3349 3350 3350 0 3352 + 3353 3353 0 3355 3356 3356 0 3358 3359 3359 + 0 3361 3362 3362 0 3364 3365 3365 0 3367 + 3368 3368 0 3370 3371 3371 0 3373 3374 3374 + 0 3376 3377 3377 0 3379 3380 3380 0 3382 + 3383 3383 0 3385 3386 3386 0 3388 3389 3389 + 0 3391 3392 3392 0 3394 3395 3395 0 3397 + 3398 3398 0 3400 3401 3401 0 3403 3404 3404 + 0 3406 3407 3407 0 3409 3410 3410 0 3412 + 3413 3413 0 3415 3416 3416 0 3418 3419 3419 + 0 3421 3422 3422 0 3424 3425 3425 0 3427 + 3428 3428 0 3430 3431 3431 0 3433 3434 3434 + 0 3436 3437 3437 0 3439 3440 3440 0 3442 + 3443 3443 0 3445 3446 3446 0 3448 3449 3449 + 0 3451 3452 3452 0 3454 3455 3455 0 3457 + 3458 3458 0 3460 3461 3461 0 3463 3464 3464 + 0 3466 3467 3467 0 3469 3470 3470 0 3472 + 3473 3473 0 3475 3476 3476 0 3478 3479 3479 + 0 3481 3482 3482 0 3484 3485 3485 0 3487 + 3488 3488 0 3490 3491 3491 0 3493 3494 3494 + 0 3496 3497 3497 0 3499 3500 3500 0 3502 + 3503 3503 0 3505 3506 3506 0 3508 3509 3509 + 0 3511 3512 3512 0 3514 3515 3515 0 3517 + 3518 3518 0 3520 3521 3521 0 3523 3524 3524 + 0 3526 3527 3527 0 3529 3530 3530 0 3532 + 3533 3533 0 3535 3536 3536 0 3538 3539 3539 + 0 3541 3542 3542 0 3544 3545 3545 0 3547 + 3548 3548 0 3550 3551 3551 0 3553 3554 3554 + 0 3556 3557 3557 0 3559 3560 3560 0 3562 + 3563 3563 0 3565 3566 3566 0 3568 3569 3569 + 0 3571 3572 3572 0 3574 3575 3575 0 3577 + 3578 3578 0 3580 3581 3581 0 3583 3584 3584 + 0 3586 3587 3587 0 3589 3590 3590 0 3592 + 3593 3593 0 3595 3596 3596 0 3598 3599 3599 + 0 3601 3602 3602 0 3604 3605 3605 0 3607 + 3608 3608 0 3610 3611 3611 0 3613 3614 3614 + 0 3616 3617 3617 0 3619 3620 3620 0 3622 + 3623 3623 0 3625 3626 3626 0 3628 3629 3629 + 0 3631 3632 3632 0 3634 3635 3635 0 3637 + 3638 3638 0 3640 3641 3641 0 3643 3644 3644 + 0 3646 3647 3647 0 3649 3650 3650 0 3652 + 3653 3653 0 3655 3656 3656 0 3658 3659 3659 + 0 3661 3662 3662 0 3664 3665 3665 0 3667 + 3668 3668 0 3670 3671 3671 0 3673 3674 3674 + 0 3676 3677 3677 0 3679 3680 3680 0 3682 + 3683 3683 0 3685 3686 3686 0 3688 3689 3689 + 0 3691 3692 3692 0 3694 3695 3695 0 3697 + 3698 3698 0 3700 3701 3701 0 3703 3704 3704 + 0 3706 3707 3707 0 3709 3710 3710 0 3712 + 3713 3713 0 3715 3716 3716 0 3718 3719 3719 + 0 3721 3722 3722 0 3724 3725 3725 0 3727 + 3728 3728 0 3730 3731 3731 0 3733 3734 3734 + 0 3736 3737 3737 0 3739 3740 3740 0 3742 + 3743 3743 0 3745 3746 3746 0 3748 3749 3749 + 0 3751 3752 3752 0 3754 3755 3755 0 3757 + 3758 3758 0 3760 3761 3761 0 3763 3764 3764 + 0 3766 3767 3767 0 3769 3770 3770 0 3772 + 3773 3773 0 3775 3776 3776 0 3778 3779 3779 + 0 3781 3782 3782 0 3784 3785 3785 0 3787 + 3788 3788 0 3790 3791 3791 0 3793 3794 3794 + 0 3796 3797 3797 0 3799 3800 3800 0 3802 + 3803 3803 0 3805 3806 3806 0 3808 3809 3809 + 0 3811 3812 3812 0 3814 3815 3815 0 3817 + 3818 3818 0 3820 3821 3821 0 3823 3824 3824 + 0 3826 3827 3827 0 3829 3830 3830 0 3832 + 3833 3833 0 3835 3836 3836 0 3838 3839 3839 + 0 3841 3842 3842 0 3844 3845 3845 0 3847 + 3848 3848 0 3850 3851 3851 0 3853 3854 3854 + 0 3856 3857 3857 0 3859 3860 3860 0 3862 + 3863 3863 0 3865 3866 3866 0 3868 3869 3869 + 0 3871 3872 3872 0 3874 3875 3875 0 3877 + 3878 3878 0 3880 3881 3881 0 3883 3884 3884 + 0 3886 3887 3887 0 3889 3890 3890 0 3892 + 3893 3893 0 3895 3896 3896 0 3898 3899 3899 + 0 3901 3902 3902 0 3904 3905 3905 0 3907 + 3908 3908 0 3910 3911 3911 0 3913 3914 3914 + 0 3916 3917 3917 0 3919 3920 3920 0 3922 + 3923 3923 0 3925 3926 3926 0 3928 3929 3929 + 0 3931 3932 3932 0 3934 3935 3935 0 3937 + 3938 3938 0 3940 3941 3941 0 3943 3944 3944 + 0 3946 3947 3947 0 3949 3950 3950 0 3952 + 3953 3953 0 3955 3956 3956 0 3958 3959 3959 + 0 3961 3962 3962 0 3964 3965 3965 0 3967 + 3968 3968 0 3970 3971 3971 0 3973 3974 3974 + 0 3976 3977 3977 0 3979 3980 3980 0 3982 + 3983 3983 0 3985 3986 3986 0 3988 3989 3989 + 0 3991 3992 3992 0 3994 3995 3995 0 3997 + 3998 3998 0 4000 4001 4001 0 4003 4004 4004 + 0 4006 4007 4007 0 4009 4010 4010 0 4012 + 4013 4013 0 4015 4016 4016 0 4018 4019 4019 + 0 4021 4022 4022 0 4024 4025 4025 0 4027 + 4028 4028 0 4030 4031 4031 0 4033 4034 4034 + 0 4036 4037 4037 0 4039 4040 4040 0 4042 + 4043 4043 0 4045 4046 4046 0 4048 4049 4049 + 0 4051 4052 4052 0 4054 4055 4055 0 4057 + 4058 4058 0 4060 4061 4061 0 4063 4064 4064 + 0 4066 4067 4067 0 4069 4070 4070 0 4072 + 4073 4073 0 4075 4076 4076 0 4078 4079 4079 + 0 4081 4082 4082 0 4084 4085 4085 0 4087 + 4088 4088 0 4090 4091 4091 0 4093 4094 4094 + 0 4096 4097 4097 0 4099 4100 4100 0 4102 + 4103 4103 0 4105 4106 4106 0 4108 4109 4109 + 0 4111 4112 4112 0 4114 4115 4115 0 4117 + 4118 4118 0 4120 4121 4121 0 4123 4124 4124 + 0 4126 4127 4127 0 4129 4130 4130 0 4132 + 4133 4133 0 4135 4136 4136 0 4138 4139 4139 + 0 4141 4142 4142 0 4144 4145 4145 0 4147 + 4148 4148 0 4150 4151 4151 0 4153 4154 4154 + 0 4156 4157 4157 0 4159 4160 4160 0 4162 + 4163 4163 0 4165 4166 4166 0 4168 4169 4169 + 0 4171 4172 4172 0 4174 4175 4175 0 4177 + 4178 4178 0 4180 4181 4181 0 4183 4184 4184 + 0 4186 4187 4187 0 4189 4190 4190 0 4192 + 4193 4193 0 4195 4196 4196 0 4198 4199 4199 + 0 4201 4202 4202 0 4204 4205 4205 0 4207 + 4208 4208 0 4210 4211 4211 0 4213 4214 4214 + 0 4216 4217 4217 0 4219 4220 4220 0 4222 + 4223 4223 0 4225 4226 4226 0 4228 4229 4229 + 0 4231 4232 4232 0 4234 4235 4235 0 4237 + 4238 4238 0 4240 4241 4241 0 4243 4244 4244 + 0 4246 4247 4247 0 4249 4250 4250 0 4252 + 4253 4253 0 4255 4256 4256 0 4258 4259 4259 + 0 4261 4262 4262 0 4264 4265 4265 0 4267 + 4268 4268 0 4270 4271 4271 0 4273 4274 4274 + 0 4276 4277 4277 0 4279 4280 4280 0 4282 + 4283 4283 0 4285 4286 4286 0 4288 4289 4289 + 0 4291 4292 4292 0 4294 4295 4295 0 4297 + 4298 4298 0 4300 4301 4301 0 4303 4304 4304 + 0 4306 4307 4307 0 4309 4310 4310 0 4312 + 4313 4313 0 4315 4316 4316 0 4318 4319 4319 + 0 4321 4322 4322 0 4324 4325 4325 0 4327 + 4328 4328 0 4330 4331 4331 0 4333 4334 4334 + 0 4336 4337 4337 0 4339 4340 4340 0 4342 + 4343 4343 0 4345 4346 4346 0 4348 4349 4349 + 0 4351 4352 4352 0 4354 4355 4355 0 4357 + 4358 4358 0 4360 4361 4361 0 4363 4364 4364 + 0 4366 4367 4367 0 4369 4370 4370 0 4372 + 4373 4373 0 4375 4376 4376 0 4378 4379 4379 + 0 4381 4382 4382 0 4384 4385 4385 0 4387 + 4388 4388 0 4390 4391 4391 0 4393 4394 4394 + 0 4396 4397 4397 0 4399 4400 4400 0 4402 + 4403 4403 0 4405 4406 4406 0 4408 4409 4409 + 0 4411 4412 4412 0 4414 4415 4415 0 4417 + 4418 4418 0 4420 4421 4421 0 4423 4424 4424 + 0 4426 4427 4427 0 4429 4430 4430 0 4432 + 4433 4433 0 4435 4436 4436 0 4438 4439 4439 + 0 4441 4442 4442 0 4444 4445 4445 0 4447 + 4448 4448 0 4450 4451 4451 0 4453 4454 4454 + 0 4456 4457 4457 0 4459 4460 4460 0 4462 + 4463 4463 0 4465 4466 4466 0 4468 4469 4469 + 0 4471 4472 4472 0 4474 4475 4475 0 4477 + 4478 4478 0 4480 4481 4481 0 4483 4484 4484 + 0 4486 4487 4487 0 4489 4490 4490 0 4492 + 4493 4493 0 4495 4496 4496 0 4498 4499 4499 + 0 4501 4502 4502 0 4504 4505 4505 0 4507 + 4508 4508 0 4510 4511 4511 0 4513 4514 4514 + 0 4516 4517 4517 0 4519 4520 4520 0 4522 + 4523 4523 0 4525 4526 4526 0 4528 4529 4529 + 0 4531 4532 4532 0 4534 4535 4535 0 4537 + 4538 4538 0 4540 4541 4541 0 4543 4544 4544 + 0 4546 4547 4547 0 4549 4550 4550 0 4552 + 4553 4553 0 4555 4556 4556 0 4558 4559 4559 + 0 4561 4562 4562 0 4564 4565 4565 0 4567 + 4568 4568 0 4570 4571 4571 0 4573 4574 4574 + 0 4576 4577 4577 0 4579 4580 4580 0 4582 + 4583 4583 0 4585 4586 4586 0 4588 4589 4589 + 0 4591 4592 4592 0 4594 4595 4595 0 4597 + 4598 4598 0 4600 4601 4601 0 4603 4604 4604 + 0 4606 4607 4607 0 4609 4610 4610 0 4612 + 4613 4613 0 4615 4616 4616 0 4618 4619 4619 + 0 4621 4622 4622 0 4624 4625 4625 0 4627 + 4628 4628 0 4630 4631 4631 0 4633 4634 4634 + 0 4636 4637 4637 0 4639 4640 4640 0 4642 + 4643 4643 0 4645 4646 4646 0 4648 4649 4649 + 0 4651 4652 4652 0 4654 4655 4655 0 4657 + 4658 4658 0 4660 4661 4661 0 4663 4664 4664 + 0 4666 4667 4667 0 4669 4670 4670 0 4672 + 4673 4673 0 4675 4676 4676 0 4678 4679 4679 + 0 4681 4682 4682 0 4684 4685 4685 0 4687 + 4688 4688 0 4690 4691 4691 0 4693 4694 4694 + 0 4696 4697 4697 0 4699 4700 4700 0 4702 + 4703 4703 0 4705 4706 4706 0 4708 4709 4709 + 0 4711 4712 4712 0 4714 4715 4715 0 4717 + 4718 4718 0 4720 4721 4721 0 4723 4724 4724 + 0 4726 4727 4727 0 4729 4730 4730 0 4732 + 4733 4733 0 4735 4736 4736 0 4738 4739 4739 + 0 4741 4742 4742 0 4744 4745 4745 0 4747 + 4748 4748 0 4750 4751 4751 0 4753 4754 4754 + 0 4756 4757 4757 0 4759 4760 4760 0 4762 + 4763 4763 0 4765 4766 4766 0 4768 4769 4769 + 0 4771 4772 4772 0 4774 4775 4775 0 4777 + 4778 4778 0 4780 4781 4781 0 4783 4784 4784 + 0 4786 4787 4787 0 4789 4790 4790 0 4792 + 4793 4793 0 4795 4796 4796 0 4798 4799 4799 + 0 4801 4802 4802 0 4804 4805 4805 0 4807 + 4808 4808 0 4810 4811 4811 0 4813 4814 4814 + 0 4816 4817 4817 0 4819 4820 4820 0 4822 + 4823 4823 0 4825 4826 4826 0 4828 4829 4829 + 0 4831 4832 4832 0 4834 4835 4835 0 4837 + 4838 4838 0 4840 4841 4841 0 4843 4844 4844 + 0 4846 4847 4847 0 4849 4850 4850 0 4852 + 4853 4853 0 4855 4856 4856 0 4858 4859 4859 + 0 4861 4862 4862 0 4864 4865 4865 0 4867 + 4868 4868 0 4870 4871 4871 0 4873 4874 4874 + 0 4876 4877 4877 0 4879 4880 4880 0 4882 + 4883 4883 0 4885 4886 4886 0 4888 4889 4889 + 0 4891 4892 4892 0 4894 4895 4895 0 4897 + 4898 4898 0 4900 4901 4901 0 4903 4904 4904 + 0 4906 4907 4907 0 4909 4910 4910 0 4912 + 4913 4913 0 4915 4916 4916 0 4918 4919 4919 + 0 4921 4922 4922 0 4924 4925 4925 0 4927 + 4928 4928 0 4930 4931 4931 0 4933 4934 4934 + 0 4936 4937 4937 0 4939 4940 4940 0 4942 + 4943 4943 0 4945 4946 4946 0 4948 4949 4949 + 0 4951 4952 4952 0 4954 4955 4955 0 4957 + 4958 4958 0 4960 4961 4961 0 4963 4964 4964 + 0 4966 4967 4967 0 4969 4970 4970 0 4972 + 4973 4973 0 4975 4976 4976 0 4978 4979 4979 + 0 4981 4982 4982 0 4984 4985 4985 0 4987 + 4988 4988 0 4990 4991 4991 0 4993 4994 4994 + 0 4996 4997 4997 0 4999 5000 5000 0 5002 + 5003 5003 0 5005 5006 5006 0 5008 5009 5009 + 0 5011 5012 5012 0 5014 5015 5015 0 5017 + 5018 5018 0 5020 5021 5021 0 5023 5024 5024 + 0 5026 5027 5027 0 5029 5030 5030 0 5032 + 5033 5033 0 5035 5036 5036 0 5038 5039 5039 + 0 5041 5042 5042 0 5044 5045 5045 0 5047 + 5048 5048 0 5050 5051 5051 0 5053 5054 5054 + 0 5056 5057 5057 0 5059 5060 5060 0 5062 + 5063 5063 0 5065 5066 5066 0 5068 5069 5069 + 0 5071 5072 5072 0 5074 5075 5075 0 5077 + 5078 5078 0 5080 5081 5081 0 5083 5084 5084 + 0 5086 5087 5087 0 5089 5090 5090 0 5092 + 5093 5093 0 5095 5096 5096 0 5098 5099 5099 + 0 5101 5102 5102 0 5104 5105 5105 0 5107 + 5108 5108 0 5110 5111 5111 0 5113 5114 5114 + 0 5116 5117 5117 0 5119 5120 5120 0 5122 + 5123 5123 0 5125 5126 5126 0 5128 5129 5129 + 0 5131 5132 5132 0 5134 5135 5135 0 5137 + 5138 5138 0 5140 5141 5141 0 5143 5144 5144 + 0 5146 5147 5147 0 5149 5150 5150 0 5152 + 5153 5153 0 5155 5156 5156 0 5158 5159 5159 + 0 5161 5162 5162 0 5164 5165 5165 0 5167 + 5168 5168 0 5170 5171 5171 0 5173 5174 5174 + 0 5176 5177 5177 0 5179 5180 5180 0 5182 + 5183 5183 0 5185 5186 5186 0 5188 5189 5189 + 0 5191 5192 5192 0 5194 5195 5195 0 5197 + 5198 5198 0 5200 5201 5201 0 5203 5204 5204 + 0 5206 5207 5207 0 5209 5210 5210 0 5212 + 5213 5213 0 5215 5216 5216 0 5218 5219 5219 + 0 5221 5222 5222 0 5224 5225 5225 0 5227 + 5228 5228 0 5230 5231 5231 0 5233 5234 5234 + 0 5236 5237 5237 0 5239 5240 5240 0 5242 + 5243 5243 0 5245 5246 5246 0 5248 5249 5249 + 0 5251 5252 5252 0 5254 5255 5255 0 5257 + 5258 5258 0 5260 5261 5261 0 5263 5264 5264 + 0 5266 5267 5267 0 5269 5270 5270 0 5272 + 5273 5273 0 5275 5276 5276 0 5278 5279 5279 + 0 5281 5282 5282 0 5284 5285 5285 0 5287 + 5288 5288 0 5290 5291 5291 0 5293 5294 5294 + 0 5296 5297 5297 0 5299 5300 5300 0 5302 + 5303 5303 0 5305 5306 5306 0 5308 5309 5309 + 0 5311 5312 5312 0 5314 5315 5315 0 5317 + 5318 5318 0 5320 5321 5321 0 5323 5324 5324 + 0 5326 5327 5327 0 5329 5330 5330 0 5332 + 5333 5333 0 5335 5336 5336 0 5338 5339 5339 + 0 5341 5342 5342 0 5344 5345 5345 0 5347 + 5348 5348 0 5350 5351 5351 0 5353 5354 5354 + 0 5356 5357 5357 0 5359 5360 5360 0 5362 + 5363 5363 0 5365 5366 5366 0 5368 5369 5369 + 0 5371 5372 5372 0 5374 5375 5375 0 5377 + 5378 5378 0 5380 5381 5381 0 5383 5384 5384 + 0 5386 5387 5387 0 5389 5390 5390 0 5392 + 5393 5393 0 5395 5396 5396 0 5398 5399 5399 + 0 5401 5402 5402 0 5404 5405 5405 0 5407 + 5408 5408 0 5410 5411 5411 0 5413 5414 5414 + 0 5416 5417 5417 0 5419 5420 5420 0 5422 + 5423 5423 0 5425 5426 5426 0 5428 5429 5429 + 0 5431 5432 5432 0 5434 5435 5435 0 5437 + 5438 5438 0 5440 5441 5441 0 5443 5444 5444 + 0 5446 5447 5447 0 5449 5450 5450 0 5452 + 5453 5453 0 5455 5456 5456 0 5458 5459 5459 + 0 5461 5462 5462 0 5464 5465 5465 0 5467 + 5468 5468 0 5470 5471 5471 0 5473 5474 5474 + 0 5476 5477 5477 0 5479 5480 5480 0 5482 + 5483 5483 0 5485 5486 5486 0 5488 5489 5489 + 0 5491 5492 5492 0 5494 5495 5495 0 5497 + 5498 5498 0 5500 5501 5501 0 5503 5504 5504 + 0 5506 5507 5507 0 5509 5510 5510 0 5512 + 5513 5513 0 5515 5516 5516 0 5518 5519 5519 + 0 5521 5522 5522 0 5524 5525 5525 0 5527 + 5528 5528 0 5530 5531 5531 0 5533 5534 5534 + 0 5536 5537 5537 0 5539 5540 5540 0 5542 + 5543 5543 0 5545 5546 5546 0 5548 5549 5549 + 0 5551 5552 5552 0 5554 5555 5555 0 5557 + 5558 5558 0 5560 5561 5561 0 5563 5564 5564 + 0 5566 5567 5567 0 5569 5570 5570 0 5572 + 5573 5573 0 5575 5576 5576 0 5578 5579 5579 + 0 5581 5582 5582 0 5584 5585 5585 0 5587 + 5588 5588 0 5590 5591 5591 0 5593 5594 5594 + 0 5596 5597 5597 0 5599 5600 5600 0 5602 + 5603 5603 0 5605 5606 5606 0 5608 5609 5609 + 0 5611 5612 5612 0 5614 5615 5615 0 5617 + 5618 5618 0 5620 5621 5621 0 5623 5624 5624 + 0 5626 5627 5627 0 5629 5630 5630 0 5632 + 5633 5633 0 5635 5636 5636 0 5638 5639 5639 + 0 5641 5642 5642 0 5644 5645 5645 0 5647 + 5648 5648 0 5650 5651 5651 0 5653 5654 5654 + 0 5656 5657 5657 0 5659 5660 5660 0 5662 + 5663 5663 0 5665 5666 5666 0 5668 5669 5669 + 0 5671 5672 5672 0 5674 5675 5675 0 5677 + 5678 5678 0 5680 5681 5681 0 5683 5684 5684 + 0 5686 5687 5687 0 5689 5690 5690 0 5692 + 5693 5693 0 5695 5696 5696 0 5698 5699 5699 + 0 5701 5702 5702 0 5704 5705 5705 0 5707 + 5708 5708 0 5710 5711 5711 0 5713 5714 5714 + 0 5716 5717 5717 0 5719 5720 5720 0 5722 + 5723 5723 0 5725 5726 5726 0 5728 5729 5729 + 0 5731 5732 5732 0 5734 5735 5735 0 5737 + 5738 5738 0 5740 5741 5741 0 5743 5744 5744 + 0 5746 5747 5747 0 5749 5750 5750 0 5752 + 5753 5753 0 5755 5756 5756 0 5758 5759 5759 + 0 5761 5762 5762 0 5764 5765 5765 0 5767 + 5768 5768 0 5770 5771 5771 0 5773 5774 5774 + 0 5776 5777 5777 0 5779 5780 5780 0 5782 + 5783 5783 0 5785 5786 5786 0 5788 5789 5789 + 0 5791 5792 5792 0 5794 5795 5795 0 5797 + 5798 5798 0 5800 5801 5801 0 5803 5804 5804 + 0 5806 5807 5807 0 5809 5810 5810 0 5812 + 5813 5813 0 5815 5816 5816 0 5818 5819 5819 + 0 5821 5822 5822 0 5824 5825 5825 0 5827 + 5828 5828 0 5830 5831 5831 0 5833 5834 5834 + 0 5836 5837 5837 0 5839 5840 5840 0 5842 + 5843 5843 0 5845 5846 5846 0 5848 5849 5849 + 0 5851 5852 5852 0 5854 5855 5855 0 5857 + 5858 5858 0 5860 5861 5861 0 5863 5864 5864 + 0 5866 5867 5867 0 5869 5870 5870 0 5872 + 5873 5873 0 5875 5876 5876 0 5878 5879 5879 + 0 5881 5882 5882 0 5884 5885 5885 0 5887 + 5888 5888 0 5890 5891 5891 0 5893 5894 5894 + 0 5896 5897 5897 0 5899 5900 5900 0 5902 + 5903 5903 0 5905 5906 5906 0 5908 5909 5909 + 0 5911 5912 5912 0 5914 5915 5915 0 5917 + 5918 5918 0 5920 5921 5921 0 5923 5924 5924 + 0 5926 5927 5927 0 5929 5930 5930 0 5932 + 5933 5933 0 5935 5936 5936 0 5938 5939 5939 + 0 5941 5942 5942 0 5944 5945 5945 0 5947 + 5948 5948 0 5950 5951 5951 0 5953 5954 5954 + 0 5956 5957 5957 0 5959 5960 5960 0 5962 + 5963 5963 0 5965 5966 5966 0 5968 5969 5969 + 0 5971 5972 5972 0 5974 5975 5975 0 5977 + 5978 5978 0 5980 5981 5981 0 5983 5984 5984 + 0 5986 5987 5987 0 5989 5990 5990 0 5992 + 5993 5993 0 5995 5996 5996 0 5998 5999 5999 + 0 6001 6002 6002 0 6004 6005 6005 0 6007 + 6008 6008 0 6010 6011 6011 0 6013 6014 6014 + 0 6016 6017 6017 0 6019 6020 6020 0 6022 + 6023 6023 0 6025 6026 6026 0 6028 6029 6029 + 0 6031 6032 6032 0 6034 6035 6035 0 6037 + 6038 6038 0 6040 6041 6041 0 6043 6044 6044 + 0 6046 6047 6047 0 6049 6050 6050 0 6052 + 6053 6053 0 6055 6056 6056 0 6058 6059 6059 + 0 6061 6062 6062 0 6064 6065 6065 0 6067 + 6068 6068 0 6070 6071 6071 0 6073 6074 6074 + 0 6076 6077 6077 0 6079 6080 6080 0 6082 + 6083 6083 0 6085 6086 6086 0 6088 6089 6089 + 0 6091 6092 6092 0 6094 6095 6095 0 6097 + 6098 6098 0 6100 6101 6101 0 6103 6104 6104 + 0 6106 6107 6107 0 6109 6110 6110 0 6112 + 6113 6113 0 6115 6116 6116 0 6118 6119 6119 + 0 6121 6122 6122 0 6124 6125 6125 0 6127 + 6128 6128 0 6130 6131 6131 0 6133 6134 6134 + 0 6136 6137 6137 0 6139 6140 6140 0 6142 + 6143 6143 0 6145 6146 6146 0 6148 6149 6149 + 0 6151 6152 6152 0 6154 6155 6155 0 6157 + 6158 6158 0 6160 6161 6161 0 6163 6164 6164 + 0 6166 6167 6167 0 6169 6170 6170 0 6172 + 6173 6173 0 6175 6176 6176 0 6178 6179 6179 + 0 6181 6182 6182 0 6184 6185 6185 0 6187 + 6188 6188 0 6190 6191 6191 0 6193 6194 6194 + 0 6196 6197 6197 0 6199 6200 6200 0 6202 + 6203 6203 0 6205 6206 6206 0 6208 6209 6209 + 0 6211 6212 6212 0 6214 6215 6215 0 6217 + 6218 6218 0 6220 6221 6221 0 6223 6224 6224 + 0 6226 6227 6227 0 6229 6230 6230 0 6232 + 6233 6233 0 6235 6236 6236 0 6238 6239 6239 + 0 6241 6242 6242 0 6244 6245 6245 0 6247 + 6248 6248 0 6250 6251 6251 0 6253 6254 6254 + 0 6256 6257 6257 0 6259 6260 6260 0 6262 + 6263 6263 0 6265 6266 6266 0 6268 6269 6269 + 0 6271 6272 6272 0 6274 6275 6275 0 6277 + 6278 6278 0 6280 6281 6281 0 6283 6284 6284 + 0 6286 6287 6287 0 6289 6290 6290 0 6292 + 6293 6293 0 6295 6296 6296 0 6298 6299 6299 + 0 6301 6302 6302 0 6304 6305 6305 0 6307 + 6308 6308 0 6310 6311 6311 0 6313 6314 6314 + 0 6316 6317 6317 0 6319 6320 6320 0 6322 + 6323 6323 0 6325 6326 6326 0 6328 6329 6329 + 0 6331 6332 6332 0 6334 6335 6335 0 6337 + 6338 6338 0 6340 6341 6341 0 6343 6344 6344 + 0 6346 6347 6347 0 6349 6350 6350 0 6352 + 6353 6353 0 6355 6356 6356 0 6358 6359 6359 + 0 6361 6362 6362 0 6364 6365 6365 0 6367 + 6368 6368 0 6370 6371 6371 0 6373 6374 6374 + 0 6376 6377 6377 0 6379 6380 6380 0 6382 + 6383 6383 0 6385 6386 6386 0 6388 6389 6389 + 0 6391 6392 6392 0 6394 6395 6395 0 6397 + 6398 6398 0 6400 6401 6401 0 6403 6404 6404 + 0 6406 6407 6407 0 6409 6410 6410 0 6412 + 6413 6413 0 6415 6416 6416 0 6418 6419 6419 + 0 6421 6422 6422 0 6424 6425 6425 0 6427 + 6428 6428 0 6430 6431 6431 0 6433 6434 6434 + 0 6436 6437 6437 0 6439 6440 6440 0 6442 + 6443 6443 0 6445 6446 6446 0 6448 6449 6449 + 0 6451 6452 6452 0 6454 6455 6455 0 6457 + 6458 6458 0 6460 6461 6461 0 6463 6464 6464 + 0 6466 6467 6467 0 6469 6470 6470 0 6472 + 6473 6473 0 6475 6476 6476 0 6478 6479 6479 + 0 6481 6482 6482 0 6484 6485 6485 0 6487 + 6488 6488 0 6490 6491 6491 0 6493 6494 6494 + 0 6496 6497 6497 0 6499 6500 6500 0 6502 + 6503 6503 0 6505 6506 6506 0 6508 6509 6509 + 0 6511 6512 6512 0 6514 6515 6515 0 6517 + 6518 6518 0 6520 6521 6521 0 6523 6524 6524 + 0 6526 6527 6527 0 6529 6530 6530 0 6532 + 6533 6533 0 6535 6536 6536 0 6538 6539 6539 + 0 6541 6542 6542 0 6544 6545 6545 0 6547 + 6548 6548 0 6550 6551 6551 0 6553 6554 6554 + 0 6556 6557 6557 0 6559 6560 6560 0 6562 + 6563 6563 0 6565 6566 6566 0 6568 6569 6569 + 0 6571 6572 6572 0 6574 6575 6575 0 6577 + 6578 6578 0 6580 6581 6581 0 6583 6584 6584 + 0 6586 6587 6587 0 6589 6590 6590 0 6592 + 6593 6593 0 6595 6596 6596 0 6598 6599 6599 + 0 6601 6602 6602 0 6604 6605 6605 0 6607 + 6608 6608 0 6610 6611 6611 0 6613 6614 6614 + 0 6616 6617 6617 0 6619 6620 6620 0 6622 + 6623 6623 0 6625 6626 6626 0 6628 6629 6629 + 0 6631 6632 6632 0 6634 6635 6635 0 6637 + 6638 6638 0 6640 6641 6641 0 6643 6644 6644 + 0 6646 6647 6647 0 6649 6650 6650 0 6652 + 6653 6653 0 6655 6656 6656 0 6658 6659 6659 + 0 6661 6662 6662 0 6664 6665 6665 0 6667 + 6668 6668 0 6670 6671 6671 0 6673 6674 6674 + 0 6676 6677 6677 0 6679 6680 6680 0 6682 + 6683 6683 0 6685 6686 6686 0 6688 6689 6689 + 0 6691 6692 6692 0 6694 6695 6695 0 6697 + 6698 6698 0 6700 6701 6701 0 6703 6704 6704 + 0 6706 6707 6707 0 6709 6710 6710 0 6712 + 6713 6713 0 6715 6716 6716 0 6718 6719 6719 + 0 6721 6722 6722 0 6724 6725 6725 0 6727 + 6728 6728 0 6730 6731 6731 0 6733 6734 6734 + 0 6736 6737 6737 0 6739 6740 6740 0 6742 + 6743 6743 0 6745 6746 6746 0 6748 6749 6749 + 0 6751 6752 6752 0 6754 6755 6755 0 6757 + 6758 6758 0 6760 6761 6761 0 6763 6764 6764 + 0 6766 6767 6767 0 6769 6770 6770 0 6772 + 6773 6773 0 6775 6776 6776 0 6778 6779 6779 + 0 6781 6782 6782 0 6784 6785 6785 0 6787 + 6788 6788 0 6790 6791 6791 0 6793 6794 6794 + 0 6796 6797 6797 0 6799 6800 6800 0 6802 + 6803 6803 0 6805 6806 6806 0 6808 6809 6809 + 0 6811 6812 6812 0 6814 6815 6815 0 6817 + 6818 6818 0 6820 6821 6821 0 6823 6824 6824 + 0 6826 6827 6827 0 6829 6830 6830 0 6832 + 6833 6833 0 6835 6836 6836 0 6838 6839 6839 + 0 6841 6842 6842 0 6844 6845 6845 0 6847 + 6848 6848 0 6850 6851 6851 0 6853 6854 6854 + 0 6856 6857 6857 0 6859 6860 6860 0 6862 + 6863 6863 0 6865 6866 6866 0 6868 6869 6869 + 0 6871 6872 6872 0 6874 6875 6875 0 6877 + 6878 6878 0 6880 6881 6881 0 6883 6884 6884 + 0 6886 6887 6887 0 6889 6890 6890 0 6892 + 6893 6893 0 6895 6896 6896 0 6898 6899 6899 + 0 6901 6902 6902 0 6904 6905 6905 0 6907 + 6908 6908 0 6910 6911 6911 0 6913 6914 6914 + 0 6916 6917 6917 0 6919 6920 6920 0 6922 + 6923 6923 0 6925 6926 6926 0 6928 6929 6929 + 0 6931 6932 6932 0 6934 6935 6935 0 6937 + 6938 6938 0 6940 6941 6941 0 6943 6944 6944 + 0 6946 6947 6947 0 6949 6950 6950 0 6952 + 6953 6953 0 6955 6956 6956 0 6958 6959 6959 + 0 6961 6962 6962 0 6964 6965 6965 0 6967 + 6968 6968 0 6970 6971 6971 0 6973 6974 6974 + 0 6976 6977 6977 0 6979 6980 6980 0 6982 + 6983 6983 0 6985 6986 6986 0 6988 6989 6989 + 0 6991 6992 6992 0 6994 6995 6995 0 6997 + 6998 6998 0 7000 7001 7001 0 7003 7004 7004 + 0 7006 7007 7007 0 7009 7010 7010 0 7012 + 7013 7013 0 7015 7016 7016 0 7018 7019 7019 + 0 7021 7022 7022 0 7024 7025 7025 0 7027 + 7028 7028 0 7030 7031 7031 0 7033 7034 7034 + 0 7036 7037 7037 0 7039 7040 7040 0 7042 + 7043 7043 0 7045 7046 7046 0 7048 7049 7049 + 0 7051 7052 7052 0 7054 7055 7055 0 7057 + 7058 7058 0 7060 7061 7061 0 7063 7064 7064 + 0 7066 7067 7067 0 7069 7070 7070 0 7072 + 7073 7073 0 7075 7076 7076 0 7078 7079 7079 + 0 7081 7082 7082 0 7084 7085 7085 0 7087 + 7088 7088 0 7090 7091 7091 0 7093 7094 7094 + 0 7096 7097 7097 0 7099 7100 7100 0 7102 + 7103 7103 0 7105 7106 7106 0 7108 7109 7109 + 0 7111 7112 7112 0 7114 7115 7115 0 7117 + 7118 7118 0 7120 7121 7121 0 7123 7124 7124 + 0 7126 7127 7127 0 7129 7130 7130 0 7132 + 7133 7133 0 7135 7136 7136 0 7138 7139 7139 + 0 7141 7142 7142 0 7144 7145 7145 0 7147 + 7148 7148 0 7150 7151 7151 0 7153 7154 7154 + 0 7156 7157 7157 0 7159 7160 7160 0 7162 + 7163 7163 0 7165 7166 7166 0 7168 7169 7169 + 0 7171 7172 7172 0 7174 7175 7175 0 7177 + 7178 7178 0 7180 7181 7181 0 7183 7184 7184 + 0 7186 7187 7187 0 7189 7190 7190 0 7192 + 7193 7193 0 7195 7196 7196 0 7198 7199 7199 + 0 7201 7202 7202 0 7204 7205 7205 0 7207 + 7208 7208 0 7210 7211 7211 0 7213 7214 7214 + 0 7216 7217 7217 0 7219 7220 7220 0 7222 + 7223 7223 0 7225 7226 7226 0 7228 7229 7229 + 0 7231 7232 7232 0 7234 7235 7235 0 7237 + 7238 7238 0 7240 7241 7241 0 7243 7244 7244 + 0 7246 7247 7247 0 7249 7250 7250 0 7252 + 7253 7253 0 7255 7256 7256 0 7258 7259 7259 + 0 7261 7262 7262 0 7264 7265 7265 0 7267 + 7268 7268 0 7270 7271 7271 0 7273 7274 7274 + 0 7276 7277 7277 0 7279 7280 7280 0 7282 + 7283 7283 0 7285 7286 7286 0 7288 7289 7289 + 0 7291 7292 7292 0 7294 7295 7295 0 7297 + 7298 7298 0 7300 7301 7301 0 7303 7304 7304 + 0 7306 7307 7307 0 7309 7310 7310 0 7312 + 7313 7313 0 7315 7316 7316 0 7318 7319 7319 + 0 7321 7322 7322 0 7324 7325 7325 0 7327 + 7328 7328 0 7330 7331 7331 0 7333 7334 7334 + 0 7336 7337 7337 0 7339 7340 7340 0 7342 + 7343 7343 0 7345 7346 7346 0 7348 7349 7349 + 0 7351 7352 7352 0 7354 7355 7355 0 7357 + 7358 7358 0 7360 7361 7361 0 7363 7364 7364 + 0 7366 7367 7367 0 7369 7370 7370 0 7372 + 7373 7373 0 7375 7376 7376 0 7378 7379 7379 + 0 7381 7382 7382 0 7384 7385 7385 0 7387 + 7388 7388 0 7390 7391 7391 0 7393 7394 7394 + 0 7396 7397 7397 0 7399 7400 7400 0 7402 + 7403 7403 0 7405 7406 7406 0 7408 7409 7409 + 0 7411 7412 7412 0 7414 7415 7415 0 7417 + 7418 7418 0 7420 7421 7421 0 7423 7424 7424 + 0 7426 7427 7427 0 7429 7430 7430 0 7432 + 7433 7433 0 7435 7436 7436 0 7438 7439 7439 + 0 7441 7442 7442 0 7444 7445 7445 0 7447 + 7448 7448 0 7450 7451 7451 0 7453 7454 7454 + 0 7456 7457 7457 0 7459 7460 7460 0 7462 + 7463 7463 0 7465 7466 7466 0 7468 7469 7469 + 0 7471 7472 7472 0 7474 7475 7475 0 7477 + 7478 7478 0 7480 7481 7481 0 7483 7484 7484 + 0 7486 7487 7487 0 7489 7490 7490 0 7492 + 7493 7493 0 7495 7496 7496 0 7498 7499 7499 + 0 7501 7502 7502 0 7504 7505 7505 0 7507 + 7508 7508 0 7510 7511 7511 0 7513 7514 7514 + 0 7516 7517 7517 0 7519 7520 7520 0 7522 + 7523 7523 0 7525 7526 7526 0 7528 7529 7529 + 0 7531 7532 7532 0 7534 7535 7535 0 7537 + 7538 7538 0 7540 7541 7541 0 7543 7544 7544 + 0 7546 7547 7547 0 7549 7550 7550 0 7552 + 7553 7553 0 7555 7556 7556 0 7558 7559 7559 + 0 7561 7562 7562 0 7564 7565 7565 0 7567 + 7568 7568 0 7570 7571 7571 0 7573 7574 7574 + 0 7576 7577 7577 0 7579 7580 7580 0 7582 + 7583 7583 0 7585 7586 7586 0 7588 7589 7589 + 0 7591 7592 7592 0 7594 7595 7595 0 7597 + 7598 7598 0 7600 7601 7601 0 7603 7604 7604 + 0 7606 7607 7607 0 7609 7610 7610 0 7612 + 7613 7613 0 7615 7616 7616 0 7618 7619 7619 + 0 7621 7622 7622 0 7624 7625 7625 0 7627 + 7628 7628 0 7630 7631 7631 0 7633 7634 7634 + 0 7636 7637 7637 0 7639 7640 7640 0 7642 + 7643 7643 0 7645 7646 7646 0 7648 7649 7649 + 0 7651 7652 7652 0 7654 7655 7655 0 7657 + 7658 7658 0 7660 7661 7661 0 7663 7664 7664 + 0 7666 7667 7667 0 7669 7670 7670 0 7672 + 7673 7673 0 7675 7676 7676 0 7678 7679 7679 + 0 7681 7682 7682 0 7684 7685 7685 0 7687 + 7688 7688 0 7690 7691 7691 0 7693 7694 7694 + 0 7696 7697 7697 0 7699 7700 7700 0 7702 + 7703 7703 0 7705 7706 7706 0 7708 7709 7709 + 0 7711 7712 7712 0 7714 7715 7715 0 7717 + 7718 7718 0 7720 7721 7721 0 7723 7724 7724 + 0 7726 7727 7727 0 7729 7730 7730 0 7732 + 7733 7733 0 7735 7736 7736 0 7738 7739 7739 + 0 7741 7742 7742 0 7744 7745 7745 0 7747 + 7748 7748 0 7750 7751 7751 0 7753 7754 7754 + 0 7756 7757 7757 0 7759 7760 7760 0 7762 + 7763 7763 0 7765 7766 7766 0 7768 7769 7769 + 0 7771 7772 7772 0 7774 7775 7775 0 7777 + 7778 7778 0 7780 7781 7781 0 7783 7784 7784 + 0 7786 7787 7787 0 7789 7790 7790 0 7792 + 7793 7793 0 7795 7796 7796 0 7798 7799 7799 + 0 7801 7802 7802 0 7804 7805 7805 0 7807 + 7808 7808 0 7810 7811 7811 0 7813 7814 7814 + 0 7816 7817 7817 0 7819 7820 7820 0 7822 + 7823 7823 0 7825 7826 7826 0 7828 7829 7829 + 0 7831 7832 7832 0 7834 7835 7835 0 7837 + 7838 7838 0 7840 7841 7841 0 7843 7844 7844 + 0 7846 7847 7847 0 7849 7850 7850 0 7852 + 7853 7853 0 7855 7856 7856 0 7858 7859 7859 + 0 7861 7862 7862 0 7864 7865 7865 0 7867 + 7868 7868 0 7870 7871 7871 0 7873 7874 7874 + 0 7876 7877 7877 0 7879 7880 7880 0 7882 + 7883 7883 0 7885 7886 7886 0 7888 7889 7889 + 0 7891 7892 7892 0 7894 7895 7895 0 7897 + 7898 7898 0 7900 7901 7901 0 7903 7904 7904 + 0 7906 7907 7907 0 7909 7910 7910 0 7912 + 7913 7913 0 7915 7916 7916 0 7918 7919 7919 + 0 7921 7922 7922 0 7924 7925 7925 0 7927 + 7928 7928 0 7930 7931 7931 0 7933 7934 7934 + 0 7936 7937 7937 0 7939 7940 7940 0 7942 + 7943 7943 0 7945 7946 7946 0 7948 7949 7949 + 0 7951 7952 7952 0 7954 7955 7955 0 7957 + 7958 7958 0 7960 7961 7961 0 7963 7964 7964 + 0 7966 7967 7967 0 7969 7970 7970 0 7972 + 7973 7973 0 7975 7976 7976 0 7978 7979 7979 + 0 7981 7982 7982 0 7984 7985 7985 0 7987 + 7988 7988 0 7990 7991 7991 0 7993 7994 7994 + 0 7996 7997 7997 0 7999 8000 8000 0 8002 + 8003 8003 0 8005 8006 8006 0 8008 8009 8009 + 0 8011 8012 8012 0 8014 8015 8015 0 8017 + 8018 8018 0 8020 8021 8021 0 8023 8024 8024 + 0 8026 8027 8027 0 8029 8030 8030 0 8032 + 8033 8033 0 8035 8036 8036 0 8038 8039 8039 + 0 8041 8042 8042 0 8044 8045 8045 0 8047 + 8048 8048 0 8050 8051 8051 0 8053 8054 8054 + 0 8056 8057 8057 0 8059 8060 8060 0 8062 + 8063 8063 0 8065 8066 8066 0 8068 8069 8069 + 0 8071 8072 8072 0 8074 8075 8075 0 8077 + 8078 8078 0 8080 8081 8081 0 8083 8084 8084 + 0 8086 8087 8087 0 8089 8090 8090 0 8092 + 8093 8093 0 8095 8096 8096 0 8098 8099 8099 + 0 8101 8102 8102 0 8104 8105 8105 0 8107 + 8108 8108 0 8110 8111 8111 0 8113 8114 8114 + 0 8116 8117 8117 0 8119 8120 8120 0 8122 + 8123 8123 0 8125 8126 8126 0 8128 8129 8129 + 0 8131 8132 8132 0 8134 8135 8135 0 8137 + 8138 8138 0 8140 8141 8141 0 8143 8144 8144 + 0 8146 8147 8147 0 8149 8150 8150 0 8152 + 8153 8153 0 8155 8156 8156 0 8158 8159 8159 + 0 8161 8162 8162 0 8164 8165 8165 0 8167 + 8168 8168 0 8170 8171 8171 0 8173 8174 8174 + 0 8176 8177 8177 0 8179 8180 8180 0 8182 + 8183 8183 0 8185 8186 8186 0 8188 8189 8189 + 0 8191 8192 8192 0 8194 8195 8195 0 8197 + 8198 8198 0 8200 8201 8201 0 8203 8204 8204 + 0 8206 8207 8207 0 8209 8210 8210 0 8212 + 8213 8213 0 8215 8216 8216 0 8218 8219 8219 + 0 8221 8222 8222 0 8224 8225 8225 0 8227 + 8228 8228 0 8230 8231 8231 0 8233 8234 8234 + 0 8236 8237 8237 0 8239 8240 8240 0 8242 + 8243 8243 0 8245 8246 8246 0 8248 8249 8249 + 0 8251 8252 8252 0 8254 8255 8255 0 8257 + 8258 8258 0 8260 8261 8261 0 8263 8264 8264 + 0 8266 8267 8267 0 8269 8270 8270 0 8272 + 8273 8273 0 8275 8276 8276 0 8278 8279 8279 + 0 8281 8282 8282 0 8284 8285 8285 0 8287 + 8288 8288 0 8290 8291 8291 0 8293 8294 8294 + 0 8296 8297 8297 0 8299 8300 8300 0 8302 + 8303 8303 0 8305 8306 8306 0 8308 8309 8309 + 0 8311 8312 8312 0 8314 8315 8315 0 8317 + 8318 8318 0 8320 8321 8321 0 8323 8324 8324 + 0 8326 8327 8327 0 8329 8330 8330 0 8332 + 8333 8333 0 8335 8336 8336 0 8338 8339 8339 + 0 8341 8342 8342 0 8344 8345 8345 0 8347 + 8348 8348 0 8350 8351 8351 0 8353 8354 8354 + 0 8356 8357 8357 0 8359 8360 8360 0 8362 + 8363 8363 0 8365 8366 8366 0 8368 8369 8369 + 0 8371 8372 8372 0 8374 8375 8375 0 8377 + 8378 8378 0 8380 8381 8381 0 8383 8384 8384 + 0 8386 8387 8387 0 8389 8390 8390 0 8392 + 8393 8393 0 8395 8396 8396 0 8398 8399 8399 + 0 8401 8402 8402 0 8404 8405 8405 0 8407 + 8408 8408 0 8410 8411 8411 0 8413 8414 8414 + 0 8416 8417 8417 0 8419 8420 8420 0 8422 + 8423 8423 0 8425 8426 8426 0 8428 8429 8429 + 0 8431 8432 8432 0 8434 8435 8435 0 8437 + 8438 8438 0 8440 8441 8441 0 8443 8444 8444 + 0 8446 8447 8447 0 8449 8450 8450 0 8452 + 8453 8453 0 8455 8456 8456 0 8458 8459 8459 + 0 8461 8462 8462 0 8464 8465 8465 0 8467 + 8468 8468 0 8470 8471 8471 0 8473 8474 8474 + 0 8476 8477 8477 0 8479 8480 8480 0 8482 + 8483 8483 0 8485 8486 8486 0 8488 8489 8489 + 0 8491 8492 8492 0 8494 8495 8495 0 8497 + 8498 8498 0 8500 8501 8501 0 8503 8504 8504 + 0 8506 8507 8507 0 8509 8510 8510 0 8512 + 8513 8513 0 8515 8516 8516 0 8518 8519 8519 + 0 8521 8522 8522 0 8524 8525 8525 0 8527 + 8528 8528 0 8530 8531 8531 0 8533 8534 8534 + 0 8536 8537 8537 0 8539 8540 8540 0 8542 + 8543 8543 0 8545 8546 8546 0 8548 8549 8549 + 0 8551 8552 8552 0 8554 8555 8555 0 8557 + 8558 8558 0 8560 8561 8561 0 8563 8564 8564 + 0 8566 8567 8567 0 8569 8570 8570 0 8572 + 8573 8573 0 8575 8576 8576 0 8578 8579 8579 + 0 8581 8582 8582 0 8584 8585 8585 0 8587 + 8588 8588 0 8590 8591 8591 0 8593 8594 8594 + 0 8596 8597 8597 0 8599 8600 8600 0 8602 + 8603 8603 0 8605 8606 8606 0 8608 8609 8609 + 0 8611 8612 8612 0 8614 8615 8615 0 8617 + 8618 8618 0 8620 8621 8621 0 8623 8624 8624 + 0 8626 8627 8627 0 8629 8630 8630 0 8632 + 8633 8633 0 8635 8636 8636 0 8638 8639 8639 + 0 8641 8642 8642 0 8644 8645 8645 0 8647 + 8648 8648 0 8650 8651 8651 0 8653 8654 8654 + 0 8656 8657 8657 0 8659 8660 8660 0 8662 + 8663 8663 0 8665 8666 8666 0 8668 8669 8669 + 0 8671 8672 8672 0 8674 8675 8675 0 8677 + 8678 8678 0 8680 8681 8681 0 8683 8684 8684 + 0 8686 8687 8687 0 8689 8690 8690 0 8692 + 8693 8693 0 8695 8696 8696 0 8698 8699 8699 + 0 8701 8702 8702 0 8704 8705 8705 0 8707 + 8708 8708 0 8710 8711 8711 0 8713 8714 8714 + 0 8716 8717 8717 0 8719 8720 8720 0 8722 + 8723 8723 0 8725 8726 8726 0 8728 8729 8729 + 0 8731 8732 8732 0 8734 8735 8735 0 8737 + 8738 8738 0 8740 8741 8741 0 8743 8744 8744 + 0 8746 8747 8747 0 8749 8750 8750 0 8752 + 8753 8753 0 8755 8756 8756 0 8758 8759 8759 + 0 8761 8762 8762 0 8764 8765 8765 0 8767 + 8768 8768 0 8770 8771 8771 0 8773 8774 8774 + 0 8776 8777 8777 0 8779 8780 8780 0 8782 + 8783 8783 0 8785 8786 8786 0 8788 8789 8789 + 0 8791 8792 8792 0 8794 8795 8795 0 8797 + 8798 8798 0 8800 8801 8801 0 8803 8804 8804 + 0 8806 8807 8807 0 8809 8810 8810 0 8812 + 8813 8813 0 8815 8816 8816 0 8818 8819 8819 + 0 8821 8822 8822 0 8824 8825 8825 0 8827 + 8828 8828 0 8830 8831 8831 0 8833 8834 8834 + 0 8836 8837 8837 0 8839 8840 8840 0 8842 + 8843 8843 0 8845 8846 8846 0 8848 8849 8849 + 0 8851 8852 8852 0 8854 8855 8855 0 8857 + 8858 8858 0 8860 8861 8861 0 8863 8864 8864 + 0 8866 8867 8867 0 8869 8870 8870 0 8872 + 8873 8873 0 8875 8876 8876 0 8878 8879 8879 + 0 8881 8882 8882 0 8884 8885 8885 0 8887 + 8888 8888 0 8890 8891 8891 0 8893 8894 8894 + 0 8896 8897 8897 0 8899 8900 8900 0 8902 + 8903 8903 0 8905 8906 8906 0 8908 8909 8909 + 0 8911 8912 8912 0 8914 8915 8915 0 8917 + 8918 8918 0 8920 8921 8921 0 8923 8924 8924 + 0 8926 8927 8927 0 8929 8930 8930 0 8932 + 8933 8933 0 8935 8936 8936 0 8938 8939 8939 + 0 8941 8942 8942 0 8944 8945 8945 0 8947 + 8948 8948 0 8950 8951 8951 0 8953 8954 8954 + 0 8956 8957 8957 0 8959 8960 8960 0 8962 + 8963 8963 0 8965 8966 8966 0 8968 8969 8969 + 0 8971 8972 8972 0 8974 8975 8975 0 8977 + 8978 8978 0 8980 8981 8981 0 8983 8984 8984 + 0 8986 8987 8987 0 8989 8990 8990 0 8992 + 8993 8993 0 8995 8996 8996 0 8998 8999 8999 + 0 9001 9002 9002 0 9004 9005 9005 0 9007 + 9008 9008 0 9010 9011 9011 0 9013 9014 9014 + 0 9016 9017 9017 0 9019 9020 9020 0 9022 + 9023 9023 0 9025 9026 9026 0 9028 9029 9029 + 0 9031 9032 9032 0 9034 9035 9035 0 9037 + 9038 9038 0 9040 9041 9041 0 9043 9044 9044 + 0 9046 9047 9047 0 9049 9050 9050 0 9052 + 9053 9053 0 9055 9056 9056 0 9058 9059 9059 + 0 9061 9062 9062 0 9064 9065 9065 0 9067 + 9068 9068 0 9070 9071 9071 0 9073 9074 9074 + 0 9076 9077 9077 0 9079 9080 9080 0 9082 + 9083 9083 0 9085 9086 9086 0 9088 9089 9089 + 0 9091 9092 9092 0 9094 9095 9095 0 9097 + 9098 9098 0 9100 9101 9101 0 9103 9104 9104 + 0 9106 9107 9107 0 9109 9110 9110 0 9112 + 9113 9113 0 9115 9116 9116 0 9118 9119 9119 + 0 9121 9122 9122 0 9124 9125 9125 0 9127 + 9128 9128 0 9130 9131 9131 0 9133 9134 9134 + 0 9136 9137 9137 0 9139 9140 9140 0 9142 + 9143 9143 0 9145 9146 9146 0 9148 9149 9149 + 0 9151 9152 9152 0 9154 9155 9155 0 9157 + 9158 9158 0 9160 9161 9161 0 9163 9164 9164 + 0 9166 9167 9167 0 9169 9170 9170 0 9172 + 9173 9173 0 9175 9176 9176 0 9178 9179 9179 + 0 9181 9182 9182 0 9184 9185 9185 0 9187 + 9188 9188 0 9190 9191 9191 0 9193 9194 9194 + 0 9196 9197 9197 0 9199 9200 9200 0 9202 + 9203 9203 0 9205 9206 9206 0 9208 9209 9209 + 0 9211 9212 9212 0 9214 9215 9215 0 9217 + 9218 9218 0 9220 9221 9221 0 9223 9224 9224 + 0 9226 9227 9227 0 9229 9230 9230 0 9232 + 9233 9233 0 9235 9236 9236 0 9238 9239 9239 + 0 9241 9242 9242 0 9244 9245 9245 0 9247 + 9248 9248 0 9250 9251 9251 0 9253 9254 9254 + 0 9256 9257 9257 0 9259 9260 9260 0 9262 + 9263 9263 0 9265 9266 9266 0 9268 9269 9269 + 0 9271 9272 9272 0 9274 9275 9275 0 9277 + 9278 9278 0 9280 9281 9281 0 9283 9284 9284 + 0 9286 9287 9287 0 9289 9290 9290 0 9292 + 9293 9293 0 9295 9296 9296 0 9298 9299 9299 + 0 9301 9302 9302 0 9304 9305 9305 0 9307 + 9308 9308 0 9310 9311 9311 0 9313 9314 9314 + 0 9316 9317 9317 0 9319 9320 9320 0 9322 + 9323 9323 0 9325 9326 9326 0 9328 9329 9329 + 0 9331 9332 9332 0 9334 9335 9335 0 9337 + 9338 9338 0 9340 9341 9341 0 9343 9344 9344 + 0 9346 9347 9347 0 9349 9350 9350 0 9352 + 9353 9353 0 9355 9356 9356 0 9358 9359 9359 + 0 9361 9362 9362 0 9364 9365 9365 0 9367 + 9368 9368 0 9370 9371 9371 0 9373 9374 9374 + 0 9376 9377 9377 0 9379 9380 9380 0 9382 + 9383 9383 0 9385 9386 9386 0 9388 9389 9389 + 0 9391 9392 9392 0 9394 9395 9395 0 9397 + 9398 9398 0 9400 9401 9401 0 9403 9404 9404 + 0 9406 9407 9407 0 9409 9410 9410 0 9412 + 9413 9413 0 9415 9416 9416 0 9418 9419 9419 + 0 9421 9422 9422 0 9424 9425 9425 0 9427 + 9428 9428 0 9430 9431 9431 0 9433 9434 9434 + 0 9436 9437 9437 0 9439 9440 9440 0 9442 + 9443 9443 0 9445 9446 9446 0 9448 9449 9449 + 0 9451 9452 9452 0 9454 9455 9455 0 9457 + 9458 9458 0 9460 9461 9461 0 9463 9464 9464 + 0 9466 9467 9467 0 9469 9470 9470 0 9472 + 9473 9473 0 9475 9476 9476 0 9478 9479 9479 + 0 9481 9482 9482 0 9484 9485 9485 0 9487 + 9488 9488 0 9490 9491 9491 0 9493 9494 9494 + 0 9496 9497 9497 0 9499 9500 9500 0 9502 + 9503 9503 0 9505 9506 9506 0 9508 9509 9509 + 0 9511 9512 9512 0 9514 9515 9515 0 9517 + 9518 9518 0 9520 9521 9521 0 9523 9524 9524 + 0 9526 9527 9527 0 9529 9530 9530 0 9532 + 9533 9533 0 9535 9536 9536 0 9538 9539 9539 + 0 9541 9542 9542 0 9544 9545 9545 0 9547 + 9548 9548 0 9550 9551 9551 0 9553 9554 9554 + 0 9556 9557 9557 0 9559 9560 9560 0 9562 + 9563 9563 0 9565 9566 9566 0 9568 9569 9569 + 0 9571 9572 9572 0 9574 9575 9575 0 9577 + 9578 9578 0 9580 9581 9581 0 9583 9584 9584 + 0 9586 9587 9587 0 9589 9590 9590 0 9592 + 9593 9593 0 9595 9596 9596 0 9598 9599 9599 + 0 9601 9602 9602 0 9604 9605 9605 0 9607 + 9608 9608 0 9610 9611 9611 0 9613 9614 9614 + 0 9616 9617 9617 0 9619 9620 9620 0 9622 + 9623 9623 0 9625 9626 9626 0 9628 9629 9629 + 0 9631 9632 9632 0 9634 9635 9635 0 9637 + 9638 9638 0 9640 9641 9641 0 9643 9644 9644 + 0 9646 9647 9647 0 9649 9650 9650 0 9652 + 9653 9653 0 9655 9656 9656 0 9658 9659 9659 + 0 9661 9662 9662 0 9664 9665 9665 0 9667 + 9668 9668 0 9670 9671 9671 0 9673 9674 9674 + 0 9676 9677 9677 0 9679 9680 9680 0 9682 + 9683 9683 0 9685 9686 9686 0 9688 9689 9689 + 0 9691 9692 9692 0 9694 9695 9695 0 9697 + 9698 9698 0 9700 9701 9701 0 9703 9704 9704 + 0 9706 9707 9707 0 9709 9710 9710 0 9712 + 9713 9713 0 9715 9716 9716 0 9718 9719 9719 + 0 9721 9722 9722 0 9724 9725 9725 0 9727 + 9728 9728 0 9730 9731 9731 0 9733 9734 9734 + 0 9736 9737 9737 0 9739 9740 9740 0 9742 + 9743 9743 0 9745 9746 9746 0 9748 9749 9749 + 0 9751 9752 9752 0 9754 9755 9755 0 9757 + 9758 9758 0 9760 9761 9761 0 9763 9764 9764 + 0 9766 9767 9767 0 9769 9770 9770 0 9772 + 9773 9773 0 9775 9776 9776 0 9778 9779 9779 + 0 9781 9782 9782 0 9784 9785 9785 0 9787 + 9788 9788 0 9790 9791 9791 0 9793 9794 9794 + 0 9796 9797 9797 0 9799 9800 9800 0 9802 + 9803 9803 0 9805 9806 9806 0 9808 9809 9809 + 0 9811 9812 9812 0 9814 9815 9815 0 9817 + 9818 9818 0 9820 9821 9821 0 9823 9824 9824 + 0 9826 9827 9827 0 9829 9830 9830 0 9832 + 9833 9833 0 9835 9836 9836 0 9838 9839 9839 + 0 9841 9842 9842 0 9844 9845 9845 0 9847 + 9848 9848 0 9850 9851 9851 0 9853 9854 9854 + 0 9856 9857 9857 0 9859 9860 9860 0 9862 + 9863 9863 0 9865 9866 9866 0 9868 9869 9869 + 0 9871 9872 9872 0 9874 9875 9875 0 9877 + 9878 9878 0 9880 9881 9881 0 9883 9884 9884 + 0 9886 9887 9887 0 9889 9890 9890 0 9892 + 9893 9893 0 9895 9896 9896 0 9898 9899 9899 + 0 9901 9902 9902 0 9904 9905 9905 0 9907 + 9908 9908 0 9910 9911 9911 0 9913 9914 9914 + 0 9916 9917 9917 0 9919 9920 9920 0 9922 + 9923 9923 0 9925 9926 9926 0 9928 9929 9929 + 0 9931 9932 9932 0 9934 9935 9935 0 9937 + 9938 9938 0 9940 9941 9941 0 9943 9944 9944 + 0 9946 9947 9947 0 9949 9950 9950 0 9952 + 9953 9953 0 9955 9956 9956 0 9958 9959 9959 + 0 9961 9962 9962 0 9964 9965 9965 0 9967 + 9968 9968 0 9970 9971 9971 0 9973 9974 9974 + 0 9976 9977 9977 0 9979 9980 9980 0 9982 + 9983 9983 0 9985 9986 9986 0 9988 9989 9989 + 0 9991 9992 9992 0 9994 9995 9995 0 9997 + 9998 9998 0 10000 10001 10001 0 10003 10004 10004 + 0 10006 10007 10007 0 10009 10010 10010 0 10012 + 10013 10013 0 10015 10016 10016 0 10018 10019 10019 + 0 10021 10022 10022 0 10024 10025 10025 0 10027 + 10028 10028 0 10030 10031 10031 0 10033 10034 10034 + 0 10036 10037 10037 0 10039 10040 10040 0 10042 + 10043 10043 0 10045 10046 10046 0 10048 10049 10049 + 0 10051 10052 10052 0 10054 10055 10055 0 10057 + 10058 10058 0 +%FLAG HBOND_ACOEF +%FORMAT(5E16.8) + +%FLAG HBOND_BCOEF +%FORMAT(5E16.8) + +%FLAG HBCUT +%FORMAT(5E16.8) + +%FLAG AMBER_ATOM_TYPE +%FORMAT(20a4) +HO OH CJ H1 H1 CT H1 OS CT H2 N* C1 H4 C1 HA CA N2 H H NC +C O C7 H1 CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 +N* CK H5 NB CB C O NA H CA N2 H H NC CB C7 H1 CT HC HC +OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 N* C2 H5 NB CB CA N2 +H H NC CQ H5 NC CB C7 H1 CT HC HC OS P O2 O2 OS CJ H1 H1 +CT H1 OS CT H2 N* CM H4 CM CT HC HC HC C O NA H C O C7 +H1 CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 N* C1 H4 +C1 HA CA N2 H H NC C O C7 H1 CT HC HC OS P O2 O2 OS CJ +H1 H1 CT H1 OS CT H2 N* CK H5 NB CB C O NA H CA N2 H H +NC CB C7 H1 CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 +N* C2 H5 NB CB CA N2 H H NC CQ H5 NC CB C7 H1 CT HC HC OS +P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 N* CM H4 CM CT HC HC HC +C O NA H C O C7 H1 CT HC HC OS P O2 O2 OS CJ H1 H1 CT +H1 OS CT H2 N* C1 H4 C1 HA CA N2 H H NC C O C7 H1 CT HC +HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 N* CK H5 NB CB C +O NA H CA N2 H H NC CB C7 H1 CT HC HC OH HO HO OH CJ H1 +H1 CT H1 OS CT H2 N* C1 H4 C1 HA CA N2 H H NC C O C7 H1 +CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 N* CK H5 NB +CB C O NA H CA N2 H H NC CB C7 H1 CT HC HC OS P O2 O2 +OS CJ H1 H1 CT H1 OS CT H2 N* C2 H5 NB CB CA N2 H H NC CQ +H5 NC CB C7 H1 CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT +H2 N* CM H4 CM CT HC HC HC C O NA H C O C7 H1 CT HC HC +OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 N* C1 H4 C1 HA CA N2 +H H NC C O C7 H1 CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 +OS CT H2 N* CK H5 NB CB C O NA H CA N2 H H NC CB C7 H1 +CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 N* C2 H5 NB +CB CA N2 H H NC CQ H5 NC CB C7 H1 CT HC HC OS P O2 O2 OS +CJ H1 H1 CT H1 OS CT H2 N* CM H4 CM CT HC HC HC C O NA H +C O C7 H1 CT HC HC OS P O2 O2 OS CJ H1 H1 CT H1 OS CT H2 +N* C1 H4 C1 HA CA N2 H H NC C O C7 H1 CT HC HC OS P O2 +O2 OS CJ H1 H1 CT H1 OS CT H2 N* CK H5 NB CB C O NA H CA +N2 H H NC CB C7 H1 CT HC HC OH HO Mg2+Mg2+Mg2+Mg2+Mg2+Mg2+Mg2+Mg2+ +Mg2+OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW +HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW +HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW OW HW HW +%FLAG TREE_CHAIN_CLASSIFICATION +%FORMAT(20a4) +M M M E E M E S 3 E B S E S E B B E E S +B E M E B E E M M E E M M E E M E S 3 E +B S E E B B E B E S B E E E B M E B E E +M M E E M M E E M E S 3 E B S E E B B B +E E S S E E B M E B E E M M E E M M E E +M E S 3 E B S E S 3 E E E B E B E B E M +E B E E M M E E M M E E M E S 3 E B S E +S E B B E E S B E M E B E E M M E E M M +E E M E S 3 E B S E E B B E B E S B E E +E B M E B E E M M E E M M E E M E S 3 E +B S E E B B B E E S S E E B M E B E E M +M E E M M E E M E S 3 E B S E S 3 E E E +B E B E B E M E B E E M M E E M M E E M +E S 3 E B S E S E B B E E S B E M E B E +E M M E E M M E E M E S 3 E B S E E B B +E B E S B E E E B M E B E E M M M M M E +E M E S 3 E B S E S E B B E E S B E M E +B E E M M E E M M E E M E S 3 E B S E E +B B E B E S B E E E B M E B E E M M E E +M M E E M E S 3 E B S E E B B B E E S S +E E B M E B E E M M E E M M E E M E S 3 +E B S E S 3 E E E B E B E B E M E B E E +M M E E M M E E M E S 3 E B S E S E B B +E E S B E M E B E E M M E E M M E E M E +S 3 E B S E E B B E B E S B E E E B M E +B E E M M E E M M E E M E S 3 E B S E E +B B B E E S S E E B M E B E E M M E E M +M E E M E S 3 E B S E S 3 E E E B E B E +B E M E B E E M M E E M M E E M E S 3 E +B S E S E B B E E S B E M E B E E M M E +E M M E E M E S 3 E B S E E B B E B E S +B E E E B M E B E E M M M M M M M M M M +M BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +%FLAG JOIN_ARRAY +%FORMAT(10I8) + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 0 0 0 0 0 + 0 0 0 0 0 0 0 0 +%FLAG IROTAT +%FORMAT(10I8) + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 0 0 0 0 0 + 0 0 0 0 0 0 0 0 +%FLAG SOLVENT_POINTERS +%FORMAT(3I8) + 29 3150 12 +%FLAG ATOMS_PER_MOLECULE +%FORMAT(10I8) + 316 316 1 1 1 1 1 1 1 1 + 1 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 +%FLAG BOX_DIMENSIONS +%FORMAT(5E16.8) + 9.00000000E+01 4.76861700E+01 4.67352440E+01 6.19964970E+01 +%FLAG RADIUS_SET +%FORMAT(1a80) +modified Bondi radii (mbondi) +%FLAG RADII +%FORMAT(5E16.8) + 8.00000000E-01 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 1.85000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 1.85000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 1.85000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 + 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 + 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 + 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.70000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.50000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 8.00000000E-01 1.50000000E+00 1.50000000E+00 1.50000000E+00 + 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 + 1.50000000E+00 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 + 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 1.50000000E+00 + 8.00000000E-01 8.00000000E-01 1.50000000E+00 8.00000000E-01 8.00000000E-01 + 1.50000000E+00 8.00000000E-01 8.00000000E-01 +%FLAG SCREEN +%FORMAT(5E16.8) + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.60000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.60000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.60000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.00000000E-01 8.00000000E-01 8.00000000E-01 + 8.00000000E-01 8.00000000E-01 8.00000000E-01 8.00000000E-01 8.00000000E-01 + 8.00000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 +%FLAG LENNARD_JONES_CCOEF +%COMMENT For 12-6-4 potential used for ions +%FORMAT(5E16.8) + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 5.86269391E+01 9.76502078E+01 3.56179363E+01 5.86269391E+01 + 3.56179363E+01 1.00319252E+02 1.24432687E+02 3.56179363E+01 3.56179363E+01 + 3.56179363E+01 5.23684903E+01 3.56179363E+01 1.41551385E+02 3.56179363E+01 + 4.41772853E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 1.32900000E+02 0.00000000E+00 diff --git a/test/1d23.tip3p.rst7 b/test/1d23.tip3p.rst7 new file mode 100644 index 0000000000..ff63face39 --- /dev/null +++ b/test/1d23.tip3p.rst7 @@ -0,0 +1,5032 @@ + +10058 0.0000000e+00 + 18.3962063 32.4155802 13.7280363 18.3935132 31.5669608 14.1768535 + 19.4415132 30.5959608 13.8638535 20.4058868 31.0223916 14.1399711 + 19.4614879 30.3031017 12.8141223 19.1765132 29.3789608 14.7128535 + 18.2647148 28.9041429 14.3505386 20.1885132 28.4079608 14.5068535 + 20.5935132 27.8729608 15.7788535 19.9737381 27.0065646 16.0098022 + 21.9445132 27.3259608 15.7258535 23.0815132 28.1109608 15.8088535 + 22.9450330 29.1745272 15.9376888 24.3075132 27.6269608 15.7388535 + 25.1568570 28.3084217 15.7870917 24.4515132 26.1889608 15.5888535 + 25.6625132 25.6699608 15.5358535 25.7398883 24.6683656 15.4313519 + 26.4752082 26.2663239 15.5989163 23.3415132 25.4319608 15.4988535 + 22.0885132 25.9629608 15.5688535 21.0805132 25.2499608 15.4858535 + 19.1335132 29.6409608 16.2218535 19.0816610 30.7039087 16.4575493 + 20.4645132 29.0779608 16.7048535 21.0809816 29.8869121 17.0968542 + 20.2855140 28.3445202 17.4910618 18.0045132 29.0069608 16.8208535 + 16.9185132 29.6639608 17.7968535 16.1285132 30.4889608 16.9008535 + 17.4865132 30.2549608 19.0318535 16.1945132 28.3009608 18.3498535 + 15.6375132 27.4769608 17.3008535 16.2576637 27.6252431 16.4168140 + 14.5993331 27.7605072 17.1279833 15.6995132 26.0499608 17.7068535 + 15.1544365 25.4998142 16.9398271 17.0275132 25.5509608 17.6268535 + 17.4825132 25.1349608 18.9488535 17.5045321 24.0542546 19.0891697 + 18.8925132 25.5309608 19.0758535 19.4415132 26.7479608 19.3018535 + 18.8008314 27.6068781 19.4367227 20.7525132 26.7519608 19.3318535 + 21.0995132 25.4439608 19.0588535 22.3645132 24.8099608 18.9488535 + 23.4855132 25.3049608 19.0418535 22.3065132 23.4539608 18.6688535 + 23.1427401 22.9091901 18.6060198 21.1155132 22.7999608 18.5088535 + 21.2275132 21.4969608 18.2528535 22.0823211 20.9675151 18.1575057 + 20.3655182 20.9874104 18.1208537 19.9045132 23.3509608 18.6258535 + 19.9745132 24.6669608 18.8828535 15.2285132 25.7049608 19.1388535 + 14.5071746 26.3949293 19.5767036 16.5565132 25.7809608 19.9248535 + 16.5568639 26.6715009 20.5533734 16.6598752 24.8948401 20.5511175 + 14.6415132 24.4209608 19.1388535 14.0925132 23.6559608 20.4208535 + 12.8965132 22.9869608 19.7878535 14.0025132 24.5399608 21.5798535 + 15.1705132 22.4679608 20.6738535 15.3225132 21.3819608 19.7578535 + 15.6200738 21.7722213 18.7845834 14.3859279 20.8283647 19.6912208 + 16.4435132 20.4899608 20.3078535 16.6233338 19.6717768 19.6104734 + 17.6545132 21.1989608 20.3378535 18.3435132 20.9459608 21.6228535 + 19.0494263 20.1159991 21.6536685 19.1885132 22.1029608 21.8628535 + 18.7135132 23.4149608 22.0288535 17.6508495 23.6010699 22.0789616 + 19.6435132 24.2949608 22.1688535 20.8385132 23.5449608 22.1158535 + 22.1815132 23.9459608 22.2358535 22.5745132 25.2019608 22.4388535 + 23.5583602 25.4171831 22.5151808 21.8887501 25.9393883 22.5164965 + 23.0925132 22.9269608 22.1258535 22.7185132 21.6509608 21.9228535 + 23.4190198 20.8343881 21.8285205 21.4535132 21.2109608 21.8098535 + 20.5625132 22.2139608 21.9128535 16.2025132 19.9909608 21.7398535 + 15.1880868 20.1889692 22.0860189 17.1865132 20.7829608 22.5788535 + 16.6414030 21.4021346 23.2912984 17.8387953 20.0968579 23.1191230 + 16.3895132 18.5959608 21.7828535 16.2525132 17.6369608 23.0378535 + 15.9765132 16.3329608 22.4188535 15.4155132 18.2829608 24.0808535 + 17.7715132 17.6919608 23.6178535 18.7715132 17.0739608 22.7918535 + 18.8021136 17.5697026 21.8215939 18.5520431 16.0113148 22.6883303 + 20.1265132 17.3039608 23.5278535 20.9452025 16.9010614 22.9315991 + 20.3795132 18.6749608 23.5878535 21.1895132 18.9049608 24.8328535 + 22.2631558 18.7291918 24.7658009 21.1075132 20.3359608 25.1098535 + 19.9125132 21.0089608 25.2358535 19.0080390 20.4202373 25.2774626 + 19.8265132 22.3249608 25.4028535 18.5065132 23.0499608 25.5588535 + 17.9833259 22.6685653 26.4357297 18.6899497 24.1173832 25.6815745 + 17.8946154 22.8866176 24.6717235 21.0485132 23.0739608 25.4858535 + 21.1075132 24.3019608 25.6718535 22.2405132 22.3919608 25.3558535 + 23.1931019 22.9140740 25.4457054 22.2945132 21.0649608 25.1558535 + 23.3805132 20.4859608 25.0498535 20.1535132 16.7849608 24.9428535 + 19.1711655 16.4461271 25.2719180 20.5975132 17.9539608 25.7988535 + 19.9470451 18.0349831 26.6697299 21.6248218 17.7952903 26.1268185 + 21.0375132 15.6309608 24.9858535 21.1925132 14.7789608 26.3418535 + 21.2665132 13.3959608 25.8518535 20.2705132 15.1439608 27.4408535 + 22.6175132 15.3699608 26.7378535 23.7465132 15.3259608 25.8448535 + 23.5000744 15.7520592 24.8723268 24.0881927 14.2961422 25.7407889 + 24.7825132 16.2179608 26.5378535 25.6731068 16.2880056 25.9133247 + 24.2915132 17.5299608 26.5978535 24.8955132 18.2029608 27.7498535 + 25.8299531 18.7059997 27.5011101 23.9915132 19.3049608 28.1028535 + 22.6565132 19.1029608 28.2798535 22.2867425 18.0928190 28.1835045 + 21.7965132 20.0819608 28.5628535 20.7395274 19.8498882 28.6933277 + 22.3215132 21.4019608 28.6658535 21.5165132 22.4359608 28.9218535 + 21.9355903 23.3527048 28.9855351 20.5246543 22.2906546 29.0451556 + 23.6455132 21.6079608 28.4888535 24.5215132 20.5849608 28.1958535 + 25.7325132 20.8189608 28.0498535 25.1095132 15.8299608 27.9728535 + 24.3812853 15.1123040 28.3506784 25.0085132 17.1169608 28.7658535 + 24.5629028 16.9107087 29.7389879 26.0043246 17.5378981 28.9046759 + 26.4095132 15.2029608 28.0398535 26.9625132 14.3709608 29.2918535 + 28.1105132 13.5469608 28.8228535 25.8915132 13.6819608 30.0208535 + 27.5195132 15.5009608 30.3138535 28.7335132 16.2649608 29.8908535 + 28.5471896 16.8086904 28.9647100 29.5737306 15.5797741 29.7783608 + 28.9515132 17.2519608 31.0098535 29.8887812 17.7672958 30.7999540 + 27.9585132 18.2789608 30.9568535 27.3475132 18.4489608 32.2388535 + 27.8862287 19.2201548 32.7894392 26.0125132 18.9759608 32.1328535 + 24.7975132 18.3259608 31.9958535 24.7657818 17.2475352 31.9469304 + 23.7745132 19.1229608 31.9358535 24.3225132 20.3829608 32.0088535 + 23.7315132 21.6829608 31.9988535 22.5285132 21.9409608 31.9088535 + 24.6185132 22.7129608 32.1258535 24.2916953 23.6567972 32.1744476 + 25.9735132 22.5069608 32.2258535 26.7135132 23.6289608 32.3518535 + 26.3763593 24.5808979 32.3674521 27.7136253 23.5046657 32.4183926 + 26.5805132 21.3339608 32.2388535 25.6895132 20.3239608 32.1288535 + 28.8695132 16.7209608 32.4388535 29.0628871 15.6559383 32.5670425 + 27.4175132 17.0299608 32.8388535 26.8303118 16.1119610 32.8149789 + 27.3983588 17.4468205 33.8458099 29.7925132 17.4499608 33.2348535 + 30.7115132 16.8999608 34.3998535 31.8095132 16.0709608 33.8268535 + 29.8625132 16.2609608 35.4188535 31.2565132 18.3339608 34.9698535 + 31.8985132 19.2539608 34.0868535 31.3955568 19.1926272 33.1217768 + 32.9568833 19.0052113 34.0088975 31.7395132 20.6529608 34.6428535 + 32.3970290 21.3155191 34.0800134 30.4385132 21.1519608 34.3968535 + 29.7695132 21.4849608 35.6118535 29.6787899 22.5528363 35.8106258 + 28.3675132 21.0329608 35.5818535 27.9005132 19.7369608 35.5188535 + 28.5985263 18.9136457 35.5553449 26.5925132 19.6379608 35.4788535 + 26.1685132 20.9739608 35.4988535 24.8675132 21.5439608 35.4588535 + 23.7395132 20.8389608 35.3688535 22.8480967 21.3132216 35.3453063 + 23.7764034 19.8306227 35.3242194 24.8525132 22.9079608 35.4788535 + 25.9895132 23.6489608 35.5288535 25.9814842 24.7287320 35.5495575 + 27.2345132 23.1849608 35.5588535 27.2585132 21.8299608 35.5418535 + 31.9605132 20.7639608 36.1618535 32.5081875 19.9058192 36.5513977 + 30.5325132 20.7399608 36.6948535 30.3969731 19.8667764 37.3330361 + 30.3447260 21.6446457 37.2731107 32.6925132 21.9249608 36.5148535 + 33.1875132 22.3609608 37.9898535 34.5145132 22.9909608 37.6568535 + 33.2655132 21.3459608 39.0888535 32.0425132 23.4189608 38.4898535 + 32.0235132 24.5999608 37.6168535 31.8993720 24.2356068 36.5970813 + 32.9401627 25.1723469 37.7590802 30.8125132 25.4359608 37.9998535 + 30.7872263 26.2797311 37.3102800 29.6015132 24.7899608 37.8028535 + 28.7335132 24.9719608 38.9888535 28.0096304 25.7837717 38.9177478 + 27.8925132 23.7909608 39.0788535 28.3445132 22.5349608 39.2718535 + 29.4043511 22.4111396 39.4386234 27.5545132 21.4489608 39.3048535 + 28.1145132 20.0579608 39.5178535 28.6276588 20.0154928 40.4785707 + 27.3007759 19.3328059 39.5087970 28.8187050 19.8230749 38.7197043 + 26.1405132 21.6349608 39.1148535 25.2925132 20.7079608 39.1088535 + 25.6815132 22.9079608 38.9288535 24.6138316 23.0938549 38.8122343 + 26.5035132 23.9969608 38.8858535 26.0475132 25.1149608 38.6928535 + 30.8355132 25.8959608 39.4878535 31.7524853 25.6326680 40.0150515 + 29.6835132 25.1819608 40.1078535 30.0393049 24.5647905 40.9328458 + 28.9638311 25.9095051 40.4831361 30.7895132 27.3179608 39.4818535 + 30.7075132 28.2219608 40.7968535 31.4745132 29.3749608 40.2538535 + 31.1665132 27.5119608 42.0058535 29.1655132 28.6539608 40.8798535 + 28.4965132 29.1019608 39.6878535 28.6208040 28.3236963 38.9348885 + 28.9044952 30.0652986 39.3818606 27.0055132 29.2239608 40.0478535 + 26.5152738 29.6990349 39.1981069 26.3475132 28.0199608 40.1978535 + 25.6235132 27.9799608 41.5258535 24.5593554 28.2102638 41.5771159 + 25.6895132 26.5609608 41.8958535 26.8765132 25.9229608 42.1328535 + 27.7871365 26.5036176 42.1311847 26.9465132 24.6079608 42.3658535 + 27.9188478 24.1618597 42.5748022 25.7395132 23.8589608 42.3358535 + 25.7325132 22.5469608 42.5648535 24.8434562 22.0689946 42.5298319 + 26.5946647 22.0605251 42.7652945 24.5605132 24.4889608 42.0758535 + 24.5135132 25.8119608 41.7988535 23.4235132 26.3749608 41.5628535 + 26.7915132 30.0209608 41.3628535 27.6911409 30.4926966 41.7581181 + 26.3085132 28.9829608 42.3258535 26.9998398 28.9162416 43.1659221 + 25.3190561 29.2579152 42.6911956 25.8995132 31.1029608 41.0468535 + 25.5415132 32.2009608 42.1088535 24.7785132 33.2069608 41.3098535 + 26.6475132 32.5299608 43.0018535 24.4245132 31.5029608 43.0418535 + 23.1205132 31.3369608 42.4418535 23.1673034 30.6635984 41.5859949 + 22.7230487 32.3118978 42.1596828 22.3145132 30.6709608 43.5638535 + 21.2785260 30.5295183 43.2559186 22.8085132 29.3629608 43.7538535 + 22.9645132 29.1369608 45.2058535 22.0680789 28.7557635 45.6949274 + 23.9255132 28.0749608 45.3788535 25.2845132 28.1069608 45.4858535 + 25.7898652 29.0614332 45.4877853 25.8525132 26.9419608 45.5758535 + 24.7905132 26.0419608 45.5188535 24.7395132 24.6199608 45.5558535 + 25.7015132 23.8389608 45.6718535 23.4935132 24.0919608 45.4458535 + 23.3656155 23.1012139 45.4912557 22.3805132 24.8609608 45.3058535 + 21.2085132 24.2029608 45.2228535 21.0703686 23.2026352 45.2419635 + 20.3800482 24.7695431 45.1100212 22.3575132 26.1969608 45.2758535 + 23.5985132 26.7079608 45.3758535 22.4115132 31.3919608 44.8928535 + 22.8734026 32.3698902 44.7571660 23.3385132 30.5009608 45.7188535 + 24.2233956 31.0671066 46.0096477 22.8153002 30.1611242 46.6126428 + 21.1155132 31.6099608 45.4888535 21.1295175 32.0647964 46.3341505 + 19.1492380 16.7863738 49.3245275 18.9665132 17.2479608 48.5028535 + 19.2465132 16.5709608 47.2268535 18.6463033 15.6688529 47.1083209 + 20.3009302 16.3240803 47.1029356 18.8415132 17.5849608 46.1648535 + 17.8829550 18.0257817 46.4386116 19.7715132 18.6869608 46.2078535 + 20.4375132 18.8059608 44.9398535 19.9175750 19.5751289 44.3687619 + 21.7725132 19.3209608 45.0658535 22.9255132 18.5879608 45.0558535 + 22.8375907 17.5178823 44.9392318 24.1475132 19.1309608 45.1828535 + 25.0190741 18.4763757 45.1836989 24.2375132 20.5459608 45.3158535 + 25.4165132 21.1559608 45.4388535 25.4174603 22.1618601 45.5297719 + 26.2708540 20.6172581 45.4393951 23.1085132 21.2869608 45.3228535 + 21.8785132 20.7399608 45.2058535 20.8655132 21.4249608 45.2458535 + 18.8765132 17.1019608 44.7298535 18.6776200 16.0335527 44.6459180 + 20.3675132 17.3829608 44.3698535 20.9173067 16.4423617 44.3366786 + 20.4212282 17.8691592 43.3957769 17.9735132 17.7949608 43.8668535 + 16.9615132 17.0069608 42.9018535 16.1635132 16.3169608 43.9408535 + 17.6625132 16.2379608 41.8298535 16.1045132 18.1359608 42.1558535 + 15.3185132 19.0079608 42.9948535 15.7201764 18.9947295 44.0080621 + 14.2774063 18.6854873 42.9804360 15.4585132 20.3949608 42.4248535 + 14.8129244 21.0759934 42.9793883 16.7515132 20.9059608 42.6118535 + 17.3735132 21.2069608 41.3428535 17.3841023 22.2817592 41.1617585 + 18.7985132 20.8509608 41.4068535 19.3825132 19.6019608 41.3028535 + 18.7750682 18.7201278 41.1622012 20.6675132 19.6299608 41.3928535 + 20.9745132 20.9849608 41.6158535 22.2125132 21.6589608 41.8058535 + 23.3415132 21.1839608 41.8328535 22.1035132 23.0219608 41.9728535 + 22.9144315 23.5922491 42.1039311 20.8775132 23.6559608 41.9528535 + 20.9705132 24.9919608 42.1088535 21.8140306 25.5309913 42.2431104 + 20.1019723 25.5074537 42.1109985 19.7015132 23.0739608 41.7888535 + 19.8225132 21.7379608 41.6258535 15.1975132 20.4459608 40.9038535 + 14.6195771 19.5993663 40.5332236 16.6185132 20.3789608 40.3408535 + 16.7536322 19.4394692 39.8049452 16.7787878 21.2128101 39.6574007 + 14.4775132 21.5919608 40.5768535 14.2405132 22.4039608 39.2918535 + 12.9045132 23.0339608 39.3888535 14.4855132 21.5679608 38.0768535 + 15.3615132 23.5769608 39.2918535 15.2565132 24.6079608 40.2978535 + 15.5095316 24.1640322 41.2606666 14.2495435 25.0251032 40.2876202 + 16.2765132 25.6739608 39.9578535 16.2187933 26.4233089 40.7473122 + 17.5955132 25.2219608 40.0008535 18.2575132 25.3879608 38.6988535 + 18.9832235 26.1867518 38.5459591 19.0515132 24.1719608 38.4728535 + 18.5765132 22.9039608 38.2698535 17.5159057 22.7356749 38.1549920 + 19.5225132 21.9879608 38.1728535 20.7025132 22.7289608 38.3358535 + 22.0575132 22.3129608 38.3498535 22.4465132 21.0649608 38.1858535 + 23.4299071 20.8356177 38.2068195 21.7613371 20.3375584 38.0391623 + 22.9565132 23.3119608 38.5888535 22.5825132 24.6079608 38.7758535 + 23.2779747 25.4153663 38.9514348 21.3095132 25.0629608 38.7688535 + 20.4225132 24.0489608 38.5688535 16.0965132 26.2839608 38.5428535 + 15.1183922 26.1238137 38.0892777 17.1445132 25.5979608 37.7238535 + 16.6658382 24.9744078 36.9687699 17.7702677 26.3443511 37.2345345 + 16.2335132 27.7069608 38.6988535 16.1125132 28.7329608 37.4638535 + 15.6615132 29.9579608 38.1598535 15.2835132 28.0949608 36.3918535 + 17.6265132 28.8679608 36.9638535 18.6075132 29.2359608 37.9098535 + 18.5919122 28.5345331 38.7440332 18.4206311 30.2543874 38.2504160 + 19.9515132 29.1369608 37.1968535 20.7323148 29.5778678 37.8165704 + 20.3405132 27.8219608 37.0338535 21.1615132 27.7379608 35.7748535 + 22.2241631 27.9766223 35.8186174 21.1575132 26.3279608 35.4488535 + 20.0255132 25.6339608 35.1358535 19.1134094 26.2006537 35.0204157 + 19.9975132 24.3339608 34.9098535 18.7055132 23.6209608 34.5328535 + 18.3139537 24.0427136 33.6071617 18.9040171 22.5584803 34.3920294 + 17.9726242 23.7507009 35.3291829 21.2125132 23.6129608 35.0158535 + 21.3135132 22.3679608 34.8298535 22.3575132 24.2869608 35.3558535 + 23.3069396 23.7596293 35.4486537 22.3765132 25.6179608 35.5818535 + 23.4195132 26.1769608 35.8818535 19.9085132 29.7629608 35.7718535 + 18.9047846 30.0277770 35.4394382 20.4645132 28.6859608 34.8798535 + 19.8138508 28.5581468 34.0147516 21.4620509 28.9700745 34.5447441 + 20.6325132 30.9799608 35.8288535 20.9125132 31.9669608 34.5928535 + 21.0765132 33.2549608 35.2658535 19.9355132 31.8919608 33.5008535 + 22.3215132 31.4319608 33.9768535 23.4355132 31.4789608 34.9158535 + 23.1377515 31.0025469 35.8499133 23.7410021 32.5143825 35.0664491 + 24.5525132 30.6509608 34.2598535 25.4042126 30.5778028 34.9361340 + 24.1555132 29.3549608 34.0668535 24.7315132 28.8639608 32.7888535 + 25.7208518 28.4087938 32.8350228 23.8635132 27.7619608 32.3918535 + 22.5435132 27.9089608 32.0888535 22.1408212 28.9109266 32.1062741 + 21.7345132 26.8899608 31.7758535 20.6991781 27.0810132 31.4935763 + 22.3025132 25.5669608 31.8358535 21.5475132 24.5079608 31.5728535 + 21.9813641 23.5973921 31.6251859 20.5740459 24.6243492 31.3301260 + 23.5945132 25.4039608 32.1588535 24.4085132 26.4659608 32.4718535 + 25.5765132 26.2839608 32.7748535 24.9615132 31.2219608 32.8878535 + 24.3287899 32.0586091 32.5915774 24.7585132 30.0729608 31.9288535 + 24.2049000 30.4205133 31.0566042 25.7277525 29.6868772 31.6132352 + 26.3045132 31.7249608 32.9618535 26.9465132 32.5299608 31.7398535 + 28.0255132 33.3659608 32.3118535 26.0285132 33.2029608 30.7908535 + 27.6285132 31.2969608 30.9998535 28.7805132 30.5839608 31.4998535 + 28.5398348 30.1216684 32.4571725 29.6204942 31.2718677 31.5963762 + 29.0725132 29.5139608 30.4968535 29.8963375 28.9313432 30.9091271 + 27.9395132 28.5829608 30.4738535 27.6125132 28.3169608 29.0958535 + 28.2002324 27.4736558 28.7331937 26.2425132 27.8769608 28.9288535 + 25.0625132 28.5589608 28.8028535 25.0766893 29.6388308 28.8118928 + 24.0075132 27.8099608 28.6828535 24.5135132 26.5139608 28.7558535 + 23.8825132 25.2459608 28.6888535 22.6765132 25.0359608 28.5688535 + 24.7395132 24.1759608 28.7888535 24.3844921 23.2420851 28.7460186 + 26.0905132 24.3299608 28.9658535 26.8185132 23.2199608 29.0918535 + 26.4816524 22.2678349 29.0828247 27.8111328 23.3447851 29.2305125 + 26.7405132 25.5069608 29.0388535 25.8915132 26.5379608 28.9118535 + 29.2825132 29.8899608 29.0358535 29.5880199 30.9252825 28.8846143 + 27.9005132 29.6639608 28.3958535 27.4261641 30.6265761 28.2048985 + 28.0186039 29.1248624 27.4558919 30.2515132 29.0179608 28.4398535 + 31.7585132 29.4499608 28.0398535 32.6925132 29.6049608 29.1658535 + 31.6925132 30.7029608 27.2408535 31.9025132 28.3449608 26.8978535 + 32.4945132 27.1839608 26.6478535 33.1925722 27.0175496 27.4682930 + 33.0386317 27.2484426 25.7055808 31.5985132 26.0099608 26.5248535 + 32.0087382 25.2538123 27.1942220 30.2515132 26.1769608 26.9578535 + 29.5205132 25.0119608 26.3818535 29.2991334 24.1173771 26.9639276 + 28.1845132 25.4989608 26.0018535 27.7605132 26.7949608 25.9218535 + 28.4675803 27.6095689 25.9754372 26.4795132 26.9059608 25.7188535 + 26.0285132 25.6099608 25.6288535 24.7205132 25.0749608 25.4328535 + 23.6575132 25.8439608 25.2358535 22.7486942 25.4244262 25.1011688 + 23.7570832 26.8489239 25.2205654 24.6465132 23.7119608 25.4188535 + 25.7365132 22.9429608 25.6418535 25.6937374 21.8642967 25.6743060 + 27.0055132 23.3829608 25.8518535 27.0595132 24.7149608 25.8418535 + 31.3805132 25.5229608 25.0698535 30.9455194 26.2521325 24.3863421 + 30.3685132 24.4059608 25.3358535 30.2123596 23.8314459 24.4228102 + 30.7492625 23.7485854 26.1175106 32.5835132 25.0909608 24.4998535 + 32.7085132 24.7029608 22.9948535 34.1765132 24.4689608 22.8148535 + 32.1165132 25.7089608 22.0258535 31.8985132 23.3589608 22.7748535 + 32.2335132 22.1699608 23.5378535 32.2338009 22.4238772 24.5978659 + 33.2037849 21.7921458 23.2154728 31.1475132 21.1479608 23.2708535 + 31.2755453 20.3362372 23.9869624 29.8785132 21.6469608 23.5338535 + 28.9825132 21.4169608 22.4288535 28.3022391 20.5794891 22.5836682 + 28.0795132 22.5589608 22.3258535 28.5625132 23.8389608 22.2718535 + 29.6326384 23.9687319 22.2055825 27.7765132 24.9249608 22.2158535 + 28.3565132 26.3039608 22.1358535 28.9660381 26.3907030 21.2363788 + 27.5500391 27.0363463 22.0996470 28.9760527 26.4895730 23.0132464 + 26.3595132 24.7029608 22.2018535 25.5255132 25.6339608 22.1558535 + 25.9035132 23.4269608 22.2718535 24.8287718 23.2566512 22.3353060 + 26.6975132 22.3329608 22.3188535 26.2575132 21.2029608 22.3988535 + 31.0965132 20.6409608 21.7898535 31.9685845 20.8988956 21.1889707 + 29.8935132 21.2979608 21.2228535 30.1904693 21.9641396 20.4128398 + 29.2122370 20.5393915 20.8374505 31.0465132 19.2099608 21.8458535 + 30.8045132 18.3029608 20.5408535 31.4005132 17.0459608 21.0138535 + 31.3385132 18.9559608 19.3488535 29.2045132 18.1719608 20.4108535 + 28.5195132 17.4619608 21.4758535 28.4725271 18.1043253 22.3552056 + 29.0349551 16.5229019 21.6773197 27.1025132 17.2249608 20.9498535 + 26.5457464 16.6897343 21.7190365 26.4175132 18.4209608 20.7938535 + 25.8875132 18.5359608 19.4118535 24.8380966 18.2732725 19.2783661 + 25.9265132 19.9589608 19.1118535 27.1375132 20.6479608 19.0788535 + 28.0461634 20.0811743 19.2185240 27.2195132 21.9519608 18.8858535 + 28.1962007 22.4358601 18.8810312 25.9935132 22.6659608 18.7088535 + 25.9815132 23.9809608 18.5128535 25.0845271 24.4298000 18.3942790 + 26.8477532 24.4996190 18.4859569 24.8095132 21.9879608 18.7588535 + 24.7435132 20.6529608 18.9818535 23.6375132 20.0899608 19.0258535 + 27.0485132 16.5069608 19.5918535 27.9609966 15.9870106 19.3000920 + 26.7795132 17.6489608 18.6158535 27.6522688 17.7972967 17.9799342 + 25.9169884 17.4027518 17.9965536 26.0285132 15.5239608 19.6718535 + 25.6385132 14.6049608 18.4498535 25.0705132 13.4279608 19.1548535 + 26.7835132 14.3429608 17.5538535 24.4985132 15.3539608 17.6138535 + 23.3345132 15.7939608 18.3358535 23.5579854 16.6937608 18.9090202 + 22.9944520 14.9976392 18.9979192 22.2835132 16.1189608 17.2838535 + 21.2963122 16.0057789 17.7318751 22.3335132 17.4539608 16.8808535 + 22.8085132 17.5729608 15.4888535 22.0495817 17.8875643 14.7725108 + 23.7975132 18.6429608 15.4358535 25.1445132 18.5519608 15.5228535 + 25.5968278 17.5741018 15.5977224 25.7825132 19.6969608 15.5088535 + 24.7435132 20.6289608 15.4458535 24.7665132 22.0519608 15.3888535 + 25.8135132 22.7489608 15.4288535 23.5445132 22.6419608 15.3358535 + 23.4666607 23.6388896 15.3442441 22.3845132 21.9209608 15.2958535 + 21.2205132 22.6019608 15.2358535 21.1028574 23.6050549 15.2281326 + 20.3751833 22.0495831 15.2159244 22.3025132 20.5649608 15.3358535 + 23.5245132 20.0069608 15.3988535 22.4465132 15.3179608 15.9788535 + 22.9212374 14.3445826 16.1024283 23.3415132 16.2139608 15.1528535 + 24.3249039 15.7543594 15.0538148 22.9046116 16.3527047 14.1639311 + 21.1425132 15.0769608 15.4188535 21.1397645 14.5805085 14.5971928 + 19.5305132 18.9209608 32.6948535 29.8435132 20.3989608 27.7198535 + 24.8131380 12.2784840 57.7117460 25.3068980 35.3572760 16.2448400 + 20.6504260 4.8410570 57.4554360 17.3753490 22.0013160 48.9484980 + 6.2704130 41.8632810 54.6734630 3.0804960 35.1724930 22.6487300 + 10.5189030 25.9291420 14.9363060 45.2086090 41.3574600 57.4305070 + 45.1280140 40.4429210 57.1596780 44.7950510 41.8541670 56.7244780 + 43.3404130 43.1353620 59.3114340 42.5646230 42.6554060 59.6012910 + 43.9917060 42.4559270 59.1370500 35.7661910 38.4075320 53.9732490 + 34.8778610 38.7491290 53.8712370 36.0503100 38.2075640 53.0813320 + 33.7294920 41.0080970 59.8572190 34.3011030 40.2403170 59.8575830 + 33.7296460 41.3069730 58.9478800 43.8118290 38.6181190 59.5453430 + 44.1883110 37.7453070 59.4327100 43.7137800 38.9539890 58.6543870 + 37.9423300 36.9906820 55.0070870 38.0490050 37.8910550 55.3139630 + 37.0315660 36.9424790 54.7165520 39.7831030 39.9593190 59.3396050 + 40.2909250 40.4574160 59.9801070 40.3144270 39.1828390 59.1635410 + 41.4310350 33.7983980 57.9374510 41.7385330 33.2430870 57.2210010 + 40.5011050 33.9328440 57.7547500 43.8191110 41.8632810 54.6734630 + 42.8920390 41.7970190 54.9023100 43.9715930 42.8012940 54.5589870 + 43.8060190 38.1349810 51.6701790 42.8663860 38.2963770 51.7554250 + 44.1243450 38.8535490 51.1237780 39.4247750 42.3897550 57.4554360 + 39.0204750 41.6774800 56.9600260 39.5110870 42.0450790 58.3442400 + 36.1252380 41.2842530 54.9561010 36.0049980 42.0104620 54.3442280 + 35.8153270 40.5145440 54.4788920 38.5916040 34.6277600 58.3384680 + 38.1484190 35.4087140 58.0069200 39.1501030 34.9507490 59.0455620 + 41.7074860 34.2488300 53.2190510 41.0829040 34.2448170 53.9443820 + 41.6204980 33.3819260 52.8226480 40.6291940 35.1724930 60.1974280 + 40.9264270 36.0787760 60.1166300 41.1777500 34.6843710 59.5833850 + 38.3830260 39.7511170 56.0665930 38.1571180 39.5348340 56.9712550 + 37.6022790 40.1839630 55.7211900 45.6128020 39.7574540 54.6656580 + 45.0136910 40.4810340 54.4820200 46.1607630 39.6951320 53.8833030 + 44.2192890 38.3938080 56.6959860 44.6122460 38.7110280 55.8828550 + 44.5809740 37.5149960 56.8104380 33.2557060 34.9838880 58.9190060 + 32.9670110 35.5541740 59.6315040 34.0002820 34.5043330 59.2821290 + 33.4427290 38.9259000 50.1292780 33.3601960 39.8689760 50.2707770 + 33.0910350 38.7833910 49.2505130 41.2425420 37.6598030 59.1963130 + 41.2461480 37.2187980 58.3467670 42.1376540 37.9815360 59.3034950 + 37.0927800 37.5424520 58.1557340 36.7527850 38.0199750 58.9124390 + 36.3305120 37.0889640 57.7958440 41.3045570 38.6610110 52.1869890 + 41.4258390 38.6196590 53.1355710 40.9194080 39.5234260 52.0316620 + 40.3167070 40.9711250 51.5853190 39.7483970 40.5229500 50.9589100 + 41.0256070 41.3304030 51.0518340 34.4073880 36.4643500 57.0722010 + 34.1220800 36.0999170 57.9100630 34.3452740 35.7323960 56.4585150 + 37.8614550 44.9669440 53.8579600 37.0876810 44.4267060 53.6978320 + 38.5909180 44.4476050 53.5197360 44.0812470 35.3572760 53.7935380 + 43.2677080 34.8585930 53.7180690 43.8874420 36.1971010 53.3771730 + 37.9051950 44.6349820 57.4958410 38.4230620 43.8318080 57.4415300 + 37.4535970 44.5728960 58.3375240 33.9004540 41.6002450 51.0318710 + 34.7699390 41.8827250 51.3154630 33.4094860 42.4138320 50.9167520 + 41.0639350 42.9875660 55.1526990 41.5202130 43.7980910 55.3787180 + 40.7127560 42.6698800 55.9845480 36.9651130 33.3313310 55.6249510 + 36.8365760 33.3231210 56.5734430 36.1413150 33.6696400 55.2740520 + 35.8851050 43.4175920 53.1600770 35.2779000 44.1574820 53.1696070 + 36.3600400 43.5075280 52.3338970 40.7929900 38.8169630 55.0603100 + 40.0846050 39.2855970 55.5016710 41.0774380 38.1591640 55.6948290 + 44.8245330 35.5420290 56.4998890 44.7013110 35.5606420 55.5508400 + 45.7729890 35.5899230 56.6197290 38.9964920 37.1254710 52.4353810 + 39.8455450 37.5624860 52.3694000 38.6296190 37.4374970 53.2625870 + 37.8956340 43.3787070 50.9089340 38.6619610 43.2668430 51.4714770 + 37.9731030 42.6825040 50.2566110 36.5903100 40.8112140 51.5922230 + 36.6706690 39.8639650 51.7039630 37.4822850 41.1419020 51.6982890 + 44.2600250 44.4161280 50.9866680 43.7110350 44.8630580 51.6309420 + 44.8819510 43.9110530 51.5104350 39.9275370 43.3752200 52.8831980 + 40.3491790 43.2092070 53.7263370 40.0526210 42.5652430 52.3887120 + 42.4403010 42.3989810 50.1309080 42.9608670 41.6838830 49.7650230 + 43.0871410 43.0375680 50.4309590 38.8234270 39.4485430 49.8290140 + 38.6223330 38.5852790 50.1903480 38.6526320 39.3618790 48.8911740 + 37.6217070 36.5486050 49.8168020 37.9242970 36.5553480 48.9087170 + 38.3611660 36.1983910 50.3135680 40.8402000 35.4920670 50.8024220 + 40.4924000 34.8144660 50.2226670 41.0414770 35.0310180 51.6167610 + 34.1807640 42.0208320 57.1988590 33.5256480 41.7519960 56.5548290 + 35.0185590 41.9112800 56.7490570 33.3945720 39.2307250 53.1413920 + 32.4909800 39.4937450 52.9665580 33.8786340 39.5018420 52.3613880 + 35.9372930 38.2872790 51.0508300 36.6464630 37.8656010 50.5655580 + 35.2212870 38.3548020 50.4191650 35.5847090 34.3412120 50.0910950 + 36.3075220 34.8821060 50.4092170 35.8571610 34.0675540 49.2152490 + 35.0093930 34.3805380 53.6846520 35.7673290 34.4934260 53.1110550 + 34.5471100 35.2174580 53.6389950 41.5507740 36.4944650 56.6748830 + 40.7382250 36.1201540 56.3344710 42.0549380 35.7389730 56.9770020 + 37.3819080 34.9069430 52.2248490 37.9111840 34.1199230 52.0956440 + 38.0147400 35.5860620 52.4584020 39.5756920 34.6444570 55.2793880 + 38.9459660 33.9431880 55.4464010 39.0362060 35.4048700 55.0627040 + 45.2086090 41.3574600 38.6561580 45.1280140 40.4429210 38.3853290 + 44.7950510 41.8541670 37.9501290 43.3404130 43.1353620 40.5370850 + 42.5646230 42.6554060 40.8269420 43.9917060 42.4559270 40.3627010 + 37.3569960 43.4473430 41.4146610 36.5254840 43.1922140 41.8143120 + 37.9650940 43.5184200 42.1504530 35.7661910 38.4075320 35.1989000 + 34.8778610 38.7491290 35.0968880 36.0503100 38.2075640 34.3069830 + 33.7294920 41.0080970 41.0828700 34.3011030 40.2403170 41.0832340 + 33.7296460 41.3069730 40.1735310 34.9719790 36.4165330 42.8697630 + 34.7922630 35.5191080 43.1500390 34.5699870 36.9637200 43.5444580 + 43.8118290 38.6181190 40.7709940 44.1883110 37.7453070 40.6583610 + 43.7137800 38.9539890 39.8800380 37.9423300 36.9906820 36.2327380 + 38.0490050 37.8910550 36.5396140 37.0315660 36.9424790 35.9422030 + 35.5906460 38.9125830 41.4779970 36.2716570 39.1764200 42.0967370 + 35.2754510 38.0726700 41.8117980 39.7831030 39.9593190 40.5652560 + 40.2909250 40.4574160 41.2057580 40.3144270 39.1828390 40.3891920 + 38.0667130 34.5991750 44.8315980 38.0685570 35.1164140 44.0261880 + 37.2371440 34.1221930 44.8085910 39.3169980 44.2386930 43.0089480 + 38.9839360 44.8655850 43.6510550 39.4936660 44.7648810 42.2291150 + 37.7482460 36.3101710 42.8386430 38.0899270 37.1543760 42.5440300 + 36.8098270 36.4585450 42.9551770 41.4310350 33.7983980 39.1631020 + 41.7385330 33.2430870 38.4466520 40.5011050 33.9328440 38.9804010 + 43.8191110 41.8632810 35.8991140 42.8920390 41.7970190 36.1279610 + 43.9715930 42.8012940 35.7846380 43.8060190 38.1349810 32.8958300 + 42.8663860 38.2963770 32.9810760 44.1243450 38.8535490 32.3494290 + 39.4247750 42.3897550 38.6810870 39.0204750 41.6774800 38.1856770 + 39.5110870 42.0450790 39.5698910 38.1376370 39.1640760 42.4609910 + 38.6890960 39.2736100 41.6863160 38.6519880 39.5378360 43.1765140 + 37.8119100 42.6860120 46.0715250 37.6726870 43.5582920 46.4402650 + 36.9300460 42.3432930 45.9263190 36.1252380 41.2842530 36.1817520 + 36.0049980 42.0104620 35.5698790 35.8153270 40.5145440 35.7045430 + 33.7637750 44.4557670 41.9886160 33.8418170 44.5906440 41.0441880 + 34.3779430 43.7473560 42.1814280 38.5916040 34.6277600 39.5641190 + 38.1484190 35.4087140 39.2325710 39.1501030 34.9507490 40.2712130 + 42.8785850 37.4946120 45.1676510 42.4165220 37.7029140 45.9796450 + 42.4763960 36.6805470 44.8647180 44.9740070 40.2156820 48.3971960 + 45.2993480 39.3820570 48.0574190 45.7620400 40.7385340 48.5450290 + 41.7074860 34.2488300 34.4447020 41.0829040 34.2448170 35.1700330 + 41.6204980 33.3819260 34.0482990 40.6291940 35.1724930 41.4230790 + 40.9264270 36.0787760 41.3422810 41.1777500 34.6843710 40.8090360 + 38.3830260 39.7511170 37.2922440 38.1571180 39.5348340 38.1969060 + 37.6022790 40.1839630 36.9468410 45.6128020 39.7574540 35.8913090 + 45.0136910 40.4810340 35.7076710 46.1607630 39.6951320 35.1089540 + 40.8229470 40.6496750 47.9582710 40.7273070 39.7091480 47.8083110 + 41.6661450 40.8711820 47.5630780 44.2192890 38.3938080 37.9216370 + 44.6122460 38.7110280 37.1085060 44.5809740 37.5149960 38.0360890 + 35.9540010 37.0610420 46.1116490 35.5603400 37.9085630 46.3189270 + 35.2658410 36.4236790 46.3025130 42.5285060 37.1445390 49.1813230 + 41.8383380 36.9517590 49.8159320 43.2717360 37.4280030 49.7137530 + 33.2557060 34.9838880 40.1446570 32.9670110 35.5541740 40.8571550 + 34.0002820 34.5043330 40.5077800 33.4427290 38.9259000 31.3549290 + 33.3601960 39.8689760 31.4964280 33.0910350 38.7833910 30.4761640 + 44.8048030 40.9843830 42.0167150 44.0729150 41.4930640 42.3657250 + 44.4072370 40.1673810 41.7155930 41.2425420 37.6598030 40.4219640 + 41.2461480 37.2187980 39.5724180 42.1376540 37.9815360 40.5291460 + 37.0927800 37.5424520 39.3813850 36.7527850 38.0199750 40.1380900 + 36.3305120 37.0889640 39.0214950 41.3045570 38.6610110 33.4126400 + 41.4258390 38.6196590 34.3612220 40.9194080 39.5234260 33.2573130 + 45.2673940 36.4377510 41.4290090 45.2846680 36.8886160 42.2731940 + 45.0189520 35.5383150 41.6423530 40.3167070 40.9711250 32.8109700 + 39.7483970 40.5229500 32.1845610 41.0256070 41.3304030 32.2774850 + 41.5433390 41.7199810 42.1685050 41.9103520 41.2458380 42.9146390 + 41.3538450 42.5941380 42.5093390 34.4073880 36.4643500 38.2978520 + 34.1220800 36.0999170 39.1357140 34.3452740 35.7323960 37.6841660 + 39.3332760 40.7608450 44.4869260 39.0289830 41.6400430 44.7119620 + 40.2879220 40.8208240 44.5226700 37.8614550 44.9669440 35.0836110 + 37.0876810 44.4267060 34.9234830 38.5909180 44.4476050 34.7453870 + 44.0812470 35.3572760 35.0191890 43.2677080 34.8585930 34.9437200 + 43.8874420 36.1971010 34.6028240 44.0021330 44.0343860 46.7631500 + 43.9358640 43.1139530 46.5089090 43.3726470 44.1319300 47.4776140 + 37.9051950 44.6349820 38.7214920 38.4230620 43.8318080 38.6671810 + 37.4535970 44.5728960 39.5631750 35.3896490 41.6011190 45.6340620 + 35.0311430 42.2665040 46.2213960 35.0951050 40.7694740 46.0053240 + 38.5909610 42.0595430 48.5180170 38.2909750 42.2052610 47.6207990 + 39.3620850 41.5000720 48.4253560 33.9004540 41.6002450 32.2575220 + 34.7699390 41.8827250 32.5411140 33.4094860 42.4138320 32.1424030 + 41.0639350 42.9875660 36.3783500 41.5202130 43.7980910 36.6043690 + 40.7127560 42.6698800 37.2101990 36.9651130 33.3313310 36.8506020 + 36.8365760 33.3231210 37.7990940 36.1413150 33.6696400 36.4997030 + 33.9645060 35.0904430 46.3112720 33.2503580 35.2901350 46.9165330 + 34.3840100 34.3144000 46.6827520 35.8851050 43.4175920 34.3857280 + 35.2779000 44.1574820 34.3952580 36.3600400 43.5075280 33.5595480 + 45.4583840 37.5826740 44.0614170 45.8264660 36.7621950 44.3893740 + 44.5982040 37.6428630 44.4769820 40.7929900 38.8169630 36.2859610 + 40.0846050 39.2855970 36.7273220 41.0774380 38.1591640 36.9204800 + 42.4185830 40.2366330 44.2852140 42.9171080 40.7112150 44.9503990 + 42.5608780 39.3129850 44.4922170 44.8245330 35.5420290 37.7255400 + 44.7013110 35.5606420 36.7764910 45.7729890 35.5899230 37.8453800 + 38.9964920 37.1254710 33.6610320 39.8455450 37.5624860 33.5950510 + 38.6296190 37.4374970 34.4882380 37.8956340 43.3787070 32.1345850 + 38.6619610 43.2668430 32.6971280 37.9731030 42.6825040 31.4822620 + 36.5903100 40.8112140 32.8178740 36.6706690 39.8639650 32.9296140 + 37.4822850 41.1419020 32.9239400 34.1173900 42.6327060 48.0534910 + 34.6212920 42.0534340 48.6251140 33.3781320 42.9167290 48.5911280 + 41.1711840 44.0398050 47.5870430 40.4057510 44.6083050 47.5025100 + 41.3527800 43.7474260 46.6938660 44.2600250 44.4161280 32.2123190 + 43.7110350 44.8630580 32.8565930 44.8819510 43.9110530 32.7360860 + 36.1496980 40.7756650 48.9484980 36.1902320 40.4770520 49.8570210 + 37.0042480 41.1764260 48.7892500 39.9275370 43.3752200 34.1088490 + 40.3491790 43.2092070 34.9519880 40.0526210 42.5652430 33.6143630 + 38.0902790 39.3548750 46.9159470 37.5599250 38.8639700 46.2882810 + 38.7590860 39.7832950 46.3817400 42.4403010 42.3989810 31.3565590 + 42.9608670 41.6838830 30.9906740 43.0871410 43.0375680 31.6566100 + 38.5775090 36.3211120 46.9956760 38.4831960 35.7031870 46.2707630 + 37.9972480 37.0477410 46.7686670 41.3436530 34.8784360 44.0284150 + 40.8953830 34.9008620 43.1829700 40.7101730 34.4803380 44.6254450 + 41.7496080 43.7738690 44.6496590 42.1684190 44.6171420 44.4772830 + 40.8304710 43.9110730 44.4203370 44.0859980 41.5054870 46.0334430 + 44.2056190 40.9096010 46.7729270 44.9453980 41.5424560 45.6135730 + 38.8234270 39.4485430 31.0546650 38.6223330 38.5852790 31.4159990 + 38.6526320 39.3618790 30.1168250 40.8528750 38.0476220 47.2910250 + 41.4428440 37.7392070 47.9788070 40.0348990 37.5755970 47.4470150 + 37.6217070 36.5486050 31.0424530 37.9242970 36.5553480 30.1343680 + 38.3611660 36.1983910 31.5392190 40.8402000 35.4920670 32.0280730 + 40.4924000 34.8144660 31.4483180 41.0414770 35.0310180 32.8424120 + 34.1807640 42.0208320 38.4245100 33.5256480 41.7519960 37.7804800 + 35.0185590 41.9112800 37.9747080 35.2183570 42.4060890 42.9648440 + 35.5856610 42.3188290 43.8444460 34.6494390 41.6427440 42.8655300 + 34.7699570 39.3169980 46.8706860 33.8755620 39.2836740 47.2100570 + 35.3097120 39.5156770 47.6358110 33.3945720 39.2307250 34.3670430 + 32.4909800 39.4937450 34.1922090 33.8786340 39.5018420 33.5870390 + 35.9372930 38.2872790 32.2764810 36.6464630 37.8656010 31.7912090 + 35.2212870 38.3548020 31.6448160 35.5847090 34.3412120 31.3167460 + 36.3075220 34.8821060 31.6348680 35.8571610 34.0675540 30.4409000 + 35.2739280 33.5918310 41.2190080 35.9215470 33.0415690 40.7785240 + 35.6941120 33.8461460 42.0405890 35.0271280 33.7473980 43.9615400 + 34.6786100 34.2037800 44.7273580 34.6958980 32.8531110 44.0437830 + 42.5396100 34.9385860 47.4834820 42.4784990 35.5307690 48.2330230 + 43.4796480 34.8311820 47.3385080 45.1770660 34.5955920 47.1227110 + 45.7911070 34.9135210 46.4608190 45.7220220 34.1104510 47.7422970 + 35.6991920 33.2750180 47.2366170 36.2474910 33.0938230 46.4732280 + 35.7647230 32.4844290 47.7722480 45.9178700 33.1588060 43.4496400 + 45.0438540 33.4923170 43.2469330 45.8089450 32.6861240 44.2748270 + 43.6653520 34.0757900 42.3889310 42.8825310 34.5503400 42.6686070 + 43.3716450 33.1712730 42.2802490 35.0093930 34.3805380 34.9103030 + 35.7673290 34.4934260 34.3367060 34.5471100 35.2174580 34.8646460 + 41.5507740 36.4944650 37.9005340 40.7382250 36.1201540 37.5601220 + 42.0549380 35.7389730 38.2026530 37.3819080 34.9069430 33.4505000 + 37.9111840 34.1199230 33.3212950 38.0147400 35.5860620 33.6840530 + 39.5756920 34.6444570 36.5050390 38.9459660 33.9431880 36.6720520 + 39.0362060 35.4048700 36.2883550 39.7012480 33.9228550 48.9402880 + 39.4196750 34.4262150 48.1763700 40.0832180 33.1250300 48.5745010 + 45.2086090 41.3574600 19.8818090 45.1280140 40.4429210 19.6109800 + 44.7950510 41.8541670 19.1757800 43.3404130 43.1353620 21.7627360 + 42.5646230 42.6554060 22.0525930 43.9917060 42.4559270 21.5883520 + 37.3569960 43.4473430 22.6403120 36.5254840 43.1922140 23.0399630 + 37.9650940 43.5184200 23.3761040 35.7661910 38.4075320 16.4245510 + 34.8778610 38.7491290 16.3225390 36.0503100 38.2075640 15.5326340 + 33.7294920 41.0080970 22.3085210 34.3011030 40.2403170 22.3088850 + 33.7296460 41.3069730 21.3991820 34.9719790 36.4165330 24.0954140 + 34.7922630 35.5191080 24.3756900 34.5699870 36.9637200 24.7701090 + 43.8118290 38.6181190 21.9966450 44.1883110 37.7453070 21.8840120 + 43.7137800 38.9539890 21.1056890 37.9423300 36.9906820 17.4583890 + 38.0490050 37.8910550 17.7652650 37.0315660 36.9424790 17.1678540 + 35.5906460 38.9125830 22.7036480 36.2716570 39.1764200 23.3223880 + 35.2754510 38.0726700 23.0374490 39.7831030 39.9593190 21.7909070 + 40.2909250 40.4574160 22.4314090 40.3144270 39.1828390 21.6148430 + 38.0667130 34.5991750 26.0572490 38.0685570 35.1164140 25.2518390 + 37.2371440 34.1221930 26.0342420 39.3169980 44.2386930 24.2345990 + 38.9839360 44.8655850 24.8767060 39.4936660 44.7648810 23.4547660 + 37.7482460 36.3101710 24.0642940 38.0899270 37.1543760 23.7696810 + 36.8098270 36.4585450 24.1808280 41.4310350 33.7983980 20.3887530 + 41.7385330 33.2430870 19.6723030 40.5011050 33.9328440 20.2060520 + 43.8191110 41.8632810 17.1247650 42.8920390 41.7970190 17.3536120 + 43.9715930 42.8012940 17.0102890 43.8060190 38.1349810 14.1214810 + 42.8663860 38.2963770 14.2067270 44.1243450 38.8535490 13.5750800 + 39.4247750 42.3897550 19.9067380 39.0204750 41.6774800 19.4113280 + 39.5110870 42.0450790 20.7955420 38.1376370 39.1640760 23.6866420 + 38.6890960 39.2736100 22.9119670 38.6519880 39.5378360 24.4021650 + 37.8119100 42.6860120 27.2971760 37.6726870 43.5582920 27.6659160 + 36.9300460 42.3432930 27.1519700 36.1252380 41.2842530 17.4074030 + 36.0049980 42.0104620 16.7955300 35.8153270 40.5145440 16.9301940 + 33.7637750 44.4557670 23.2142670 33.8418170 44.5906440 22.2698390 + 34.3779430 43.7473560 23.4070790 38.5916040 34.6277600 20.7897700 + 38.1484190 35.4087140 20.4582220 39.1501030 34.9507490 21.4968640 + 42.8785850 37.4946120 26.3933020 42.4165220 37.7029140 27.2052960 + 42.4763960 36.6805470 26.0903690 44.9740070 40.2156820 29.6228470 + 45.2993480 39.3820570 29.2830700 45.7620400 40.7385340 29.7706800 + 41.7074860 34.2488300 15.6703530 41.0829040 34.2448170 16.3956840 + 41.6204980 33.3819260 15.2739500 40.6291940 35.1724930 22.6487300 + 40.9264270 36.0787760 22.5679320 41.1777500 34.6843710 22.0346870 + 38.3830260 39.7511170 18.5178950 38.1571180 39.5348340 19.4225570 + 37.6022790 40.1839630 18.1724920 45.6128020 39.7574540 17.1169600 + 45.0136910 40.4810340 16.9333220 46.1607630 39.6951320 16.3346050 + 40.8229470 40.6496750 29.1839220 40.7273070 39.7091480 29.0339620 + 41.6661450 40.8711820 28.7887290 44.2192890 38.3938080 19.1472880 + 44.6122460 38.7110280 18.3341570 44.5809740 37.5149960 19.2617400 + 35.9540010 37.0610420 27.3373000 35.5603400 37.9085630 27.5445780 + 35.2658410 36.4236790 27.5281640 42.5285060 37.1445390 30.4069740 + 41.8383380 36.9517590 31.0415830 43.2717360 37.4280030 30.9394040 + 33.2557060 34.9838880 21.3703080 32.9670110 35.5541740 22.0828060 + 34.0002820 34.5043330 21.7334310 33.4427290 38.9259000 12.5805800 + 33.3601960 39.8689760 12.7220790 33.0910350 38.7833910 11.7018150 + 44.8048030 40.9843830 23.2423660 44.0729150 41.4930640 23.5913760 + 44.4072370 40.1673810 22.9412440 41.2425420 37.6598030 21.6476150 + 41.2461480 37.2187980 20.7980690 42.1376540 37.9815360 21.7547970 + 37.0927800 37.5424520 20.6070360 36.7527850 38.0199750 21.3637410 + 36.3305120 37.0889640 20.2471460 41.3045570 38.6610110 14.6382910 + 41.4258390 38.6196590 15.5868730 40.9194080 39.5234260 14.4829640 + 45.2673940 36.4377510 22.6546600 45.2846680 36.8886160 23.4988450 + 45.0189520 35.5383150 22.8680040 40.3167070 40.9711250 14.0366210 + 39.7483970 40.5229500 13.4102120 41.0256070 41.3304030 13.5031360 + 41.5433390 41.7199810 23.3941560 41.9103520 41.2458380 24.1402900 + 41.3538450 42.5941380 23.7349900 34.4073880 36.4643500 19.5235030 + 34.1220800 36.0999170 20.3613650 34.3452740 35.7323960 18.9098170 + 39.3332760 40.7608450 25.7125770 39.0289830 41.6400430 25.9376130 + 40.2879220 40.8208240 25.7483210 37.8614550 44.9669440 16.3092620 + 37.0876810 44.4267060 16.1491340 38.5909180 44.4476050 15.9710380 + 44.0812470 35.3572760 16.2448400 43.2677080 34.8585930 16.1693710 + 43.8874420 36.1971010 15.8284750 44.0021330 44.0343860 27.9888010 + 43.9358640 43.1139530 27.7345600 43.3726470 44.1319300 28.7032650 + 37.9051950 44.6349820 19.9471430 38.4230620 43.8318080 19.8928320 + 37.4535970 44.5728960 20.7888260 35.3896490 41.6011190 26.8597130 + 35.0311430 42.2665040 27.4470470 35.0951050 40.7694740 27.2309750 + 38.5909610 42.0595430 29.7436680 38.2909750 42.2052610 28.8464500 + 39.3620850 41.5000720 29.6510070 33.9004540 41.6002450 13.4831730 + 34.7699390 41.8827250 13.7667650 33.4094860 42.4138320 13.3680540 + 41.0639350 42.9875660 17.6040010 41.5202130 43.7980910 17.8300200 + 40.7127560 42.6698800 18.4358500 36.9651130 33.3313310 18.0762530 + 36.8365760 33.3231210 19.0247450 36.1413150 33.6696400 17.7253540 + 33.9645060 35.0904430 27.5369230 33.2503580 35.2901350 28.1421840 + 34.3840100 34.3144000 27.9084030 35.8851050 43.4175920 15.6113790 + 35.2779000 44.1574820 15.6209090 36.3600400 43.5075280 14.7851990 + 45.4583840 37.5826740 25.2870680 45.8264660 36.7621950 25.6150250 + 44.5982040 37.6428630 25.7026330 40.7929900 38.8169630 17.5116120 + 40.0846050 39.2855970 17.9529730 41.0774380 38.1591640 18.1461310 + 42.4185830 40.2366330 25.5108650 42.9171080 40.7112150 26.1760500 + 42.5608780 39.3129850 25.7178680 44.8245330 35.5420290 18.9511910 + 44.7013110 35.5606420 18.0021420 45.7729890 35.5899230 19.0710310 + 38.9964920 37.1254710 14.8866830 39.8455450 37.5624860 14.8207020 + 38.6296190 37.4374970 15.7138890 37.8956340 43.3787070 13.3602360 + 38.6619610 43.2668430 13.9227790 37.9731030 42.6825040 12.7079130 + 36.5903100 40.8112140 14.0435250 36.6706690 39.8639650 14.1552650 + 37.4822850 41.1419020 14.1495910 34.1173900 42.6327060 29.2791420 + 34.6212920 42.0534340 29.8507650 33.3781320 42.9167290 29.8167790 + 41.1711840 44.0398050 28.8126940 40.4057510 44.6083050 28.7281610 + 41.3527800 43.7474260 27.9195170 44.2600250 44.4161280 13.4379700 + 43.7110350 44.8630580 14.0822440 44.8819510 43.9110530 13.9617370 + 36.1496980 40.7756650 30.1741490 36.1902320 40.4770520 31.0826720 + 37.0042480 41.1764260 30.0149010 39.9275370 43.3752200 15.3345000 + 40.3491790 43.2092070 16.1776390 40.0526210 42.5652430 14.8400140 + 38.0902790 39.3548750 28.1415980 37.5599250 38.8639700 27.5139320 + 38.7590860 39.7832950 27.6073910 42.4403010 42.3989810 12.5822100 + 42.9608670 41.6838830 12.2163250 43.0871410 43.0375680 12.8822610 + 38.5775090 36.3211120 28.2213270 38.4831960 35.7031870 27.4964140 + 37.9972480 37.0477410 27.9943180 41.3436530 34.8784360 25.2540660 + 40.8953830 34.9008620 24.4086210 40.7101730 34.4803380 25.8510960 + 41.7496080 43.7738690 25.8753100 42.1684190 44.6171420 25.7029340 + 40.8304710 43.9110730 25.6459880 44.0859980 41.5054870 27.2590940 + 44.2056190 40.9096010 27.9985780 44.9453980 41.5424560 26.8392240 + 38.8234270 39.4485430 12.2803160 38.6223330 38.5852790 12.6416500 + 38.6526320 39.3618790 11.3424760 40.8528750 38.0476220 28.5166760 + 41.4428440 37.7392070 29.2044580 40.0348990 37.5755970 28.6726660 + 37.6217070 36.5486050 12.2681040 37.9242970 36.5553480 11.3600190 + 38.3611660 36.1983910 12.7648700 40.8402000 35.4920670 13.2537240 + 40.4924000 34.8144660 12.6739690 41.0414770 35.0310180 14.0680630 + 34.1807640 42.0208320 19.6501610 33.5256480 41.7519960 19.0061310 + 35.0185590 41.9112800 19.2003590 35.2183570 42.4060890 24.1904950 + 35.5856610 42.3188290 25.0700970 34.6494390 41.6427440 24.0911810 + 34.7699570 39.3169980 28.0963370 33.8755620 39.2836740 28.4357080 + 35.3097120 39.5156770 28.8614620 33.3945720 39.2307250 15.5926940 + 32.4909800 39.4937450 15.4178600 33.8786340 39.5018420 14.8126900 + 35.9372930 38.2872790 13.5021320 36.6464630 37.8656010 13.0168600 + 35.2212870 38.3548020 12.8704670 35.5847090 34.3412120 12.5423970 + 36.3075220 34.8821060 12.8605190 35.8571610 34.0675540 11.6665510 + 35.2739280 33.5918310 22.4446590 35.9215470 33.0415690 22.0041750 + 35.6941120 33.8461460 23.2662400 35.0271280 33.7473980 25.1871910 + 34.6786100 34.2037800 25.9530090 34.6958980 32.8531110 25.2694340 + 42.5396100 34.9385860 28.7091330 42.4784990 35.5307690 29.4586740 + 43.4796480 34.8311820 28.5641590 45.1770660 34.5955920 28.3483620 + 45.7911070 34.9135210 27.6864700 45.7220220 34.1104510 28.9679480 + 35.6991920 33.2750180 28.4622680 36.2474910 33.0938230 27.6988790 + 35.7647230 32.4844290 28.9978990 45.9178700 33.1588060 24.6752910 + 45.0438540 33.4923170 24.4725840 45.8089450 32.6861240 25.5004780 + 43.6653520 34.0757900 23.6145820 42.8825310 34.5503400 23.8942580 + 43.3716450 33.1712730 23.5059000 35.0093930 34.3805380 16.1359540 + 35.7673290 34.4934260 15.5623570 34.5471100 35.2174580 16.0902970 + 41.5507740 36.4944650 19.1261850 40.7382250 36.1201540 18.7857730 + 42.0549380 35.7389730 19.4283040 37.3819080 34.9069430 14.6761510 + 37.9111840 34.1199230 14.5469460 38.0147400 35.5860620 14.9097040 + 39.5756920 34.6444570 17.7306900 38.9459660 33.9431880 17.8977030 + 39.0362060 35.4048700 17.5140060 39.7012480 33.9228550 30.1659390 + 39.4196750 34.4262150 29.4020210 40.0832180 33.1250300 29.8001520 + 43.3404130 43.1353620 2.9883870 42.5646230 42.6554060 3.2782440 + 43.9917060 42.4559270 2.8140030 37.3569960 43.4473430 3.8659630 + 36.5254840 43.1922140 4.2656140 37.9650940 43.5184200 4.6017550 + 33.7294920 41.0080970 3.5341720 34.3011030 40.2403170 3.5345360 + 33.7296460 41.3069730 2.6248330 34.9719790 36.4165330 5.3210650 + 34.7922630 35.5191080 5.6013410 34.5699870 36.9637200 5.9957600 + 43.8118290 38.6181190 3.2222960 44.1883110 37.7453070 3.1096630 + 43.7137800 38.9539890 2.3313400 35.5906460 38.9125830 3.9292990 + 36.2716570 39.1764200 4.5480390 35.2754510 38.0726700 4.2631000 + 39.7831030 39.9593190 3.0165580 40.2909250 40.4574160 3.6570600 + 40.3144270 39.1828390 2.8404940 38.0667130 34.5991750 7.2829000 + 38.0685570 35.1164140 6.4774900 37.2371440 34.1221930 7.2598930 + 39.3169980 44.2386930 5.4602500 38.9839360 44.8655850 6.1023570 + 39.4936660 44.7648810 4.6804170 37.7482460 36.3101710 5.2899450 + 38.0899270 37.1543760 4.9953320 36.8098270 36.4585450 5.4064790 + 38.1376370 39.1640760 4.9122930 38.6890960 39.2736100 4.1376180 + 38.6519880 39.5378360 5.6278160 37.8119100 42.6860120 8.5228270 + 37.6726870 43.5582920 8.8915670 36.9300460 42.3432930 8.3776210 + 33.7637750 44.4557670 4.4399180 33.8418170 44.5906440 3.4954900 + 34.3779430 43.7473560 4.6327300 38.5916040 34.6277600 2.0154210 + 38.1484190 35.4087140 1.6838730 39.1501030 34.9507490 2.7225150 + 42.8785850 37.4946120 7.6189530 42.4165220 37.7029140 8.4309470 + 42.4763960 36.6805470 7.3160200 44.9740070 40.2156820 10.8484980 + 45.2993480 39.3820570 10.5087210 45.7620400 40.7385340 10.9963310 + 40.6291940 35.1724930 3.8743810 40.9264270 36.0787760 3.7935830 + 41.1777500 34.6843710 3.2603380 40.8229470 40.6496750 10.4095730 + 40.7273070 39.7091480 10.2596130 41.6661450 40.8711820 10.0143800 + 35.9540010 37.0610420 8.5629510 35.5603400 37.9085630 8.7702290 + 35.2658410 36.4236790 8.7538150 42.5285060 37.1445390 11.6326250 + 41.8383380 36.9517590 12.2672340 43.2717360 37.4280030 12.1650550 + 33.2557060 34.9838880 2.5959590 32.9670110 35.5541740 3.3084570 + 34.0002820 34.5043330 2.9590820 44.8048030 40.9843830 4.4680170 + 44.0729150 41.4930640 4.8170270 44.4072370 40.1673810 4.1668950 + 41.2425420 37.6598030 2.8732660 41.2461480 37.2187980 2.0237200 + 42.1376540 37.9815360 2.9804480 37.0927800 37.5424520 1.8326870 + 36.7527850 38.0199750 2.5893920 36.3305120 37.0889640 1.4727970 + 45.2673940 36.4377510 3.8803110 45.2846680 36.8886160 4.7244960 + 45.0189520 35.5383150 4.0936550 41.5433390 41.7199810 4.6198070 + 41.9103520 41.2458380 5.3659410 41.3538450 42.5941380 4.9606410 + 39.3332760 40.7608450 6.9382280 39.0289830 41.6400430 7.1632640 + 40.2879220 40.8208240 6.9739720 44.0021330 44.0343860 9.2144520 + 43.9358640 43.1139530 8.9602110 43.3726470 44.1319300 9.9289160 + 35.3896490 41.6011190 8.0853640 35.0311430 42.2665040 8.6726980 + 35.0951050 40.7694740 8.4566260 38.5909610 42.0595430 10.9693190 + 38.2909750 42.2052610 10.0721010 39.3620850 41.5000720 10.8766580 + 33.9645060 35.0904430 8.7625740 33.2503580 35.2901350 9.3678350 + 34.3840100 34.3144000 9.1340540 45.4583840 37.5826740 6.5127190 + 45.8264660 36.7621950 6.8406760 44.5982040 37.6428630 6.9282840 + 42.4185830 40.2366330 6.7365160 42.9171080 40.7112150 7.4017010 + 42.5608780 39.3129850 6.9435190 34.1173900 42.6327060 10.5047930 + 34.6212920 42.0534340 11.0764160 33.3781320 42.9167290 11.0424300 + 41.1711840 44.0398050 10.0383450 40.4057510 44.6083050 9.9538120 + 41.3527800 43.7474260 9.1451680 36.1496980 40.7756650 11.3998000 + 36.1902320 40.4770520 12.3083230 37.0042480 41.1764260 11.2405520 + 38.0902790 39.3548750 9.3672490 37.5599250 38.8639700 8.7395830 + 38.7590860 39.7832950 8.8330420 38.5775090 36.3211120 9.4469780 + 38.4831960 35.7031870 8.7220650 37.9972480 37.0477410 9.2199690 + 41.3436530 34.8784360 6.4797170 40.8953830 34.9008620 5.6342720 + 40.7101730 34.4803380 7.0767470 41.7496080 43.7738690 7.1009610 + 42.1684190 44.6171420 6.9285850 40.8304710 43.9110730 6.8716390 + 44.0859980 41.5054870 8.4847450 44.2056190 40.9096010 9.2242290 + 44.9453980 41.5424560 8.0648750 40.8528750 38.0476220 9.7423270 + 41.4428440 37.7392070 10.4301090 40.0348990 37.5755970 9.8983170 + 35.2183570 42.4060890 5.4161460 35.5856610 42.3188290 6.2957480 + 34.6494390 41.6427440 5.3168320 34.7699570 39.3169980 9.3219880 + 33.8755620 39.2836740 9.6613590 35.3097120 39.5156770 10.0871130 + 35.2739280 33.5918310 3.6703100 35.9215470 33.0415690 3.2298260 + 35.6941120 33.8461460 4.4918910 35.0271280 33.7473980 6.4128420 + 34.6786100 34.2037800 7.1786600 34.6958980 32.8531110 6.4950850 + 42.5396100 34.9385860 9.9347840 42.4784990 35.5307690 10.6843250 + 43.4796480 34.8311820 9.7898100 45.1770660 34.5955920 9.5740130 + 45.7911070 34.9135210 8.9121210 45.7220220 34.1104510 10.1935990 + 35.6991920 33.2750180 9.6879190 36.2474910 33.0938230 8.9245300 + 35.7647230 32.4844290 10.2235500 45.9178700 33.1588060 5.9009420 + 45.0438540 33.4923170 5.6982350 45.8089450 32.6861240 6.7261290 + 43.6653520 34.0757900 4.8402330 42.8825310 34.5503400 5.1199090 + 43.3716450 33.1712730 4.7315510 39.7012480 33.9228550 11.3915900 + 39.4196750 34.4262150 10.6276720 40.0832180 33.1250300 11.0258030 + 45.2086090 22.5831110 57.4305070 45.1280140 21.6685720 57.1596780 + 44.7950510 23.0798180 56.7244780 43.3404130 24.3610130 59.3114340 + 42.5646230 23.8810570 59.6012910 43.9917060 23.6815780 59.1370500 + 35.7661910 19.6331830 53.9732490 34.8778610 19.9747800 53.8712370 + 36.0503100 19.4332150 53.0813320 33.7294920 22.2337480 59.8572190 + 34.3011030 21.4659680 59.8575830 33.7296460 22.5326240 58.9478800 + 43.5874870 31.0528330 57.7117460 42.9686310 31.5085830 57.1411900 + 44.4426650 31.2079790 57.3107160 42.7813120 27.0367320 59.3184500 + 42.7121400 26.0957260 59.1573630 43.5432980 27.1268730 59.8907070 + 43.8118290 19.8437700 59.5453430 44.1883110 18.9709580 59.4327100 + 43.7137800 20.1796400 58.6543870 37.9423300 18.2163330 55.0070870 + 38.0490050 19.1167060 55.3139630 37.0315660 18.1681300 54.7165520 + 39.7831030 21.1849700 59.3396050 40.2909250 21.6830670 59.9801070 + 40.3144270 20.4084900 59.1635410 44.4538220 25.9367570 55.1049370 + 43.8355490 26.4017020 54.5412090 44.9661470 26.6295050 55.5218880 + 33.8221420 26.6224100 52.4789000 33.4449400 27.1111200 51.7473900 + 34.0794490 27.2949380 53.1095530 41.4310350 15.0240490 57.9374510 + 41.7385330 14.4687380 57.2210010 40.5011050 15.1584950 57.7547500 + 43.8191110 23.0889320 54.6734630 42.8920390 23.0226700 54.9023100 + 43.9715930 24.0269450 54.5589870 43.8060190 19.3606320 51.6701790 + 42.8663860 19.5220280 51.7554250 44.1243450 20.0792000 51.1237780 + 39.4247750 23.6154060 57.4554360 39.0204750 22.9031310 56.9600260 + 39.5110870 23.2707300 58.3442400 39.8929450 27.3021620 59.6193570 + 39.5957740 26.6967090 58.9401350 40.8429270 27.3398930 59.5082930 + 44.1348480 28.8292500 56.1523870 44.5744390 29.5716830 55.7379260 + 44.0735370 29.0719070 57.0762830 36.1252380 22.5099040 54.9561010 + 36.0049980 23.2361130 54.3442280 35.8153270 21.7401950 54.4788920 + 35.0085380 27.3814370 57.1735830 34.6013460 27.5228960 56.3189430 + 35.8998390 27.0974530 56.9707040 39.2807040 31.5960150 55.2858500 + 39.1049520 30.6795690 55.0726300 38.4262780 31.9547440 55.5256300 + 38.5916040 15.8534110 58.3384680 38.1484190 16.6343650 58.0069200 + 39.1501030 16.1764000 59.0455620 41.7074860 15.4744810 53.2190510 + 41.0829040 15.4704680 53.9443820 41.6204980 14.6075770 52.8226480 + 40.6291940 16.3981440 60.1974280 40.9264270 17.3044270 60.1166300 + 41.1777500 15.9100220 59.5833850 38.3830260 20.9767680 56.0665930 + 38.1571180 20.7604850 56.9712550 37.6022790 21.4096140 55.7211900 + 45.6128020 20.9831050 54.6656580 45.0136910 21.7066850 54.4820200 + 46.1607630 20.9207830 53.8833030 44.2192890 19.6194590 56.6959860 + 44.6122460 19.9366790 55.8828550 44.5809740 18.7406470 56.8104380 + 33.2557060 16.2095390 58.9190060 32.9670110 16.7798250 59.6315040 + 34.0002820 15.7299840 59.2821290 33.4427290 20.1515510 50.1292780 + 33.3601960 21.0946270 50.2707770 33.0910350 20.0090420 49.2505130 + 41.2425420 18.8854540 59.1963130 41.2461480 18.4444490 58.3467670 + 42.1376540 19.2071870 59.3034950 37.0927800 18.7681030 58.1557340 + 36.7527850 19.2456260 58.9124390 36.3305120 18.3146150 57.7958440 + 41.3045570 19.8866620 52.1869890 41.4258390 19.8453100 53.1355710 + 40.9194080 20.7490770 52.0316620 40.3167070 22.1967760 51.5853190 + 39.7483970 21.7486010 50.9589100 41.0256070 22.5560540 51.0518340 + 34.4073880 17.6900010 57.0722010 34.1220800 17.3255680 57.9100630 + 34.3452740 16.9580470 56.4585150 37.8614550 26.1925950 53.8579600 + 37.0876810 25.6523570 53.6978320 38.5909180 25.6732560 53.5197360 + 44.0812470 16.5829270 53.7935380 43.2677080 16.0842440 53.7180690 + 43.8874420 17.4227520 53.3771730 37.9051950 25.8606330 57.4958410 + 38.4230620 25.0574590 57.4415300 37.4535970 25.7985470 58.3375240 + 42.7921450 27.1272610 52.7685710 43.1337150 27.8714840 52.2729030 + 41.9634160 27.4403730 53.1310540 45.6748860 26.4488450 58.1331220 + 46.0272680 25.8516580 57.4732590 44.7911190 26.1232680 58.3039470 + 41.7612140 27.2086140 55.5401630 42.4483270 27.7555350 55.9209220 + 40.9744560 27.7526870 55.5751240 33.9004540 22.8258960 51.0318710 + 34.7699390 23.1083760 51.3154630 33.4094860 23.6394830 50.9167520 + 41.0639350 24.2132170 55.1526990 41.5202130 25.0237420 55.3787180 + 40.7127560 23.8955310 55.9845480 36.9651130 14.5569820 55.6249510 + 36.8365760 14.5487720 56.5734430 36.1413150 14.8952910 55.2740520 + 34.2675790 32.0386340 51.5980340 34.6273430 32.6375680 50.9437610 + 34.1268130 32.5846230 52.3715370 40.2844410 29.4217540 52.4154010 + 40.2754510 30.1547230 51.7998520 39.3642770 29.1749120 52.5080970 + 35.8851050 24.6432430 53.1600770 35.2779000 25.3831330 53.1696070 + 36.3600400 24.7331790 52.3338970 43.2704010 29.4845780 51.0779200 + 43.3715990 29.2809770 50.1481180 42.3705750 29.2304060 51.2826980 + 40.7929900 20.0426140 55.0603100 40.0846050 20.5112480 55.5016710 + 41.0774380 19.3848150 55.6948290 44.8245330 16.7676800 56.4998890 + 44.7013110 16.7862930 55.5508400 45.7729890 16.8155740 56.6197290 + 41.9122120 32.0032100 55.7726870 42.1663620 31.9653490 54.8506240 + 40.9634600 31.8765430 55.7655120 38.9964920 18.3511220 52.4353810 + 39.8455450 18.7881370 52.3694000 38.6296190 18.6631480 53.2625870 + 37.8956340 24.6043580 50.9089340 38.6619610 24.4924940 51.4714770 + 37.9731030 23.9081550 50.2566110 36.5903100 22.0368650 51.5922230 + 36.6706690 21.0896160 51.7039630 37.4822850 22.3675530 51.6982890 + 37.3917810 32.1864040 58.6956770 38.1280290 31.6379500 58.9665340 + 37.7758730 33.0520050 58.5562760 34.2763290 28.2537610 54.5698280 + 33.3503070 28.4958750 54.5603690 34.7419720 29.0811870 54.4483030 + 40.5020120 31.3594350 50.5182340 41.2948730 31.6483180 50.0664130 + 39.9824470 30.9286520 49.8394820 41.0197520 26.5797760 50.3824690 + 40.9148160 25.9650110 51.1086070 40.8521740 26.0563650 49.5987700 + 44.2600250 25.6417790 50.9866680 43.7110350 26.0887090 51.6309420 + 44.8819510 25.1367040 51.5104350 39.9275370 24.6008710 52.8831980 + 40.3491790 24.4348580 53.7263370 40.0526210 23.7908940 52.3887120 + 42.4403010 23.6246320 50.1309080 42.9608670 22.9095340 49.7650230 + 43.0871410 24.2632190 50.4309590 38.8234270 20.6741940 49.8290140 + 38.6223330 19.8109300 50.1903480 38.6526320 20.5875300 48.8911740 + 37.6217070 17.7742560 49.8168020 37.9242970 17.7809990 48.9087170 + 38.3611660 17.4240420 50.3135680 40.8402000 16.7177180 50.8024220 + 40.4924000 16.0401170 50.2226670 41.0414770 16.2566690 51.6167610 + 43.0051040 31.7057930 52.4210820 43.9001830 32.0442900 52.4429580 + 43.0368670 30.9837340 51.7935100 36.6447200 27.0784980 50.6497820 + 37.0822070 27.6214650 51.3055400 37.1294930 26.2531930 50.6594160 + 33.8593000 29.8674010 58.1018080 34.1896010 28.9995070 57.8696720 + 34.2884000 30.0732530 58.9323040 38.4554920 28.1983020 55.7620050 + 38.1550460 28.0747990 56.6623960 38.3492410 27.3391610 55.3535780 + 34.1807640 23.2464830 57.1988590 33.5256480 22.9776470 56.5548290 + 35.0185590 23.1369310 56.7490570 33.3945720 20.4563760 53.1413920 + 32.4909800 20.7193960 52.9665580 33.8786340 20.7274930 52.3613880 + 35.9372930 19.5129300 51.0508300 36.6464630 19.0912520 50.5655580 + 35.2212870 19.5804530 50.4191650 35.5847090 15.5668630 50.0910950 + 36.3075220 16.1077570 50.4092170 35.8571610 15.2932050 49.2152490 + 39.7081010 30.6715720 59.7567310 40.2246030 30.0603080 59.2315570 + 40.3578390 31.1744500 60.2478320 34.3865910 31.7745110 56.1814660 + 34.2187950 31.1415790 56.8796550 33.5200420 31.9804510 55.8308850 + 35.0093930 15.6061890 53.6846520 35.7673290 15.7190770 53.1110550 + 34.5471100 16.4431090 53.6389950 41.5507740 17.7201160 56.6748830 + 40.7382250 17.3458050 56.3344710 42.0549380 16.9646240 56.9770020 + 35.9928610 30.4678340 53.6264800 35.4676230 30.8486370 52.9226760 + 35.9173190 31.0929110 54.3474510 37.3819080 16.1325940 52.2248490 + 37.9111840 15.3455740 52.0956440 38.0147400 16.8117130 52.4584020 + 39.5756920 15.8701080 55.2793880 38.9459660 15.1688390 55.4464010 + 39.0362060 16.6305210 55.0627040 38.5921580 32.4160720 52.5014050 + 39.3240400 32.1320000 51.9537940 38.8515250 32.1774000 53.3913430 + 37.7536370 28.5325450 52.5060380 37.1245250 29.0010550 53.0546210 + 37.8684200 27.6874670 52.9406570 45.2086090 22.5831110 38.6561580 + 45.1280140 21.6685720 38.3853290 44.7950510 23.0798180 37.9501290 + 43.3404130 24.3610130 40.5370850 42.5646230 23.8810570 40.8269420 + 43.9917060 23.6815780 40.3627010 37.3569960 24.6729940 41.4146610 + 36.5254840 24.4178650 41.8143120 37.9650940 24.7440710 42.1504530 + 37.3371220 28.7070030 41.6104630 37.6399260 27.8167770 41.4314850 + 38.0814810 29.2640250 41.3826880 43.5874870 31.0528330 38.9373970 + 42.9686310 31.5085830 38.3668410 44.4426650 31.2079790 38.5363670 + 42.7813120 27.0367320 40.5441010 42.7121400 26.0957260 40.3830140 + 43.5432980 27.1268730 41.1163580 34.9719790 17.6421840 42.8697630 + 34.7922630 16.7447590 43.1500390 34.5699870 18.1893710 43.5444580 + 43.8118290 19.8437700 40.7709940 44.1883110 18.9709580 40.6583610 + 43.7137800 20.1796400 39.8800380 37.9423300 18.2163330 36.2327380 + 38.0490050 19.1167060 36.5396140 37.0315660 18.1681300 35.9422030 + 35.5906460 20.1382340 41.4779970 36.2716570 20.4020710 42.0967370 + 35.2754510 19.2983210 41.8117980 39.7831030 21.1849700 40.5652560 + 40.2909250 21.6830670 41.2057580 40.3144270 20.4084900 40.3891920 + 38.0667130 15.8248260 44.8315980 38.0685570 16.3420650 44.0261880 + 37.2371440 15.3478440 44.8085910 44.4538220 25.9367570 36.3305880 + 43.8355490 26.4017020 35.7668600 44.9661470 26.6295050 36.7475390 + 39.3169980 25.4643440 43.0089480 38.9839360 26.0912360 43.6510550 + 39.4936660 25.9905320 42.2291150 37.7482460 17.5358220 42.8386430 + 38.0899270 18.3800270 42.5440300 36.8098270 17.6841960 42.9551770 + 38.5289080 27.4324240 44.8238660 39.1463080 28.1075320 44.5423110 + 37.6682200 27.8412220 44.7326160 33.8221420 26.6224100 33.7045510 + 33.4449400 27.1111200 32.9730410 34.0794490 27.2949380 34.3352040 + 41.4310350 15.0240490 39.1631020 41.7385330 14.4687380 38.4466520 + 40.5011050 15.1584950 38.9804010 43.8191110 23.0889320 35.8991140 + 42.8920390 23.0226700 36.1279610 43.9715930 24.0269450 35.7846380 + 43.8060190 19.3606320 32.8958300 42.8663860 19.5220280 32.9810760 + 44.1243450 20.0792000 32.3494290 39.4247750 23.6154060 38.6810870 + 39.0204750 22.9031310 38.1856770 39.5110870 23.2707300 39.5698910 + 39.8929450 27.3021620 40.8450080 39.5957740 26.6967090 40.1657860 + 40.8429270 27.3398930 40.7339440 38.1376370 20.3897270 42.4609910 + 38.6890960 20.4992610 41.6863160 38.6519880 20.7634870 43.1765140 + 38.9847880 27.0403310 47.4957880 38.0876410 27.2643280 47.7431280 + 39.0100750 27.1638250 46.5469280 37.8119100 23.9116630 46.0715250 + 37.6726870 24.7839430 46.4402650 36.9300460 23.5689440 45.9263190 + 44.1348480 28.8292500 37.3780380 44.5744390 29.5716830 36.9635770 + 44.0735370 29.0719070 38.3019340 39.6099450 29.8538330 48.2800400 + 39.5814880 30.2581280 47.4128830 39.4464420 28.9248690 48.1172000 + 44.8264260 31.5306280 45.3059390 45.3408930 31.4414290 46.1081820 + 43.9833340 31.8765980 45.5987300 39.2807040 31.5960150 36.5115010 + 39.1049520 30.6795690 36.2982810 38.4262780 31.9547440 36.7512810 + 33.8197270 26.7228350 44.5280620 33.9828310 26.2533710 43.7099990 + 34.2849720 26.2151910 45.1929460 38.5916040 15.8534110 39.5641190 + 38.1484190 16.6343650 39.2325710 39.1501030 16.1764000 40.2712130 + 42.8785850 18.7202630 45.1676510 42.4165220 18.9285650 45.9796450 + 42.4763960 17.9061980 44.8647180 44.9740070 21.4413330 48.3971960 + 45.2993480 20.6077080 48.0574190 45.7620400 21.9641850 48.5450290 + 41.7074860 15.4744810 34.4447020 41.0829040 15.4704680 35.1700330 + 41.6204980 14.6075770 34.0482990 40.6291940 16.3981440 41.4230790 + 40.9264270 17.3044270 41.3422810 41.1777500 15.9100220 40.8090360 + 38.3830260 20.9767680 37.2922440 38.1571180 20.7604850 38.1969060 + 37.6022790 21.4096140 36.9468410 45.6128020 20.9831050 35.8913090 + 45.0136910 21.7066850 35.7076710 46.1607630 20.9207830 35.1089540 + 40.8229470 21.8753260 47.9582710 40.7273070 20.9347990 47.8083110 + 41.6661450 22.0968330 47.5630780 44.2192890 19.6194590 37.9216370 + 44.6122460 19.9366790 37.1085060 44.5809740 18.7406470 38.0360890 + 35.9540010 18.2866930 46.1116490 35.5603400 19.1342140 46.3189270 + 35.2658410 17.6493300 46.3025130 42.5285060 18.3701900 49.1813230 + 41.8383380 18.1774100 49.8159320 43.2717360 18.6536540 49.7137530 + 33.2557060 16.2095390 40.1446570 32.9670110 16.7798250 40.8571550 + 34.0002820 15.7299840 40.5077800 44.8048030 22.2100340 42.0167150 + 44.0729150 22.7187150 42.3657250 44.4072370 21.3930320 41.7155930 + 41.2425420 18.8854540 40.4219640 41.2461480 18.4444490 39.5724180 + 42.1376540 19.2071870 40.5291460 37.0927800 18.7681030 39.3813850 + 36.7527850 19.2456260 40.1380900 36.3305120 18.3146150 39.0214950 + 41.3045570 19.8866620 33.4126400 41.4258390 19.8453100 34.3612220 + 40.9194080 20.7490770 33.2573130 45.2673940 17.6634020 41.4290090 + 45.2846680 18.1142670 42.2731940 45.0189520 16.7639660 41.6423530 + 40.3167070 22.1967760 32.8109700 39.7483970 21.7486010 32.1845610 + 41.0256070 22.5560540 32.2774850 35.3936250 26.0979780 46.6876430 + 35.0091040 25.4573450 47.2859390 35.7048440 26.8015900 47.2571160 + 41.5433390 22.9456320 42.1685050 41.9103520 22.4714890 42.9146390 + 41.3538450 23.8197890 42.5093390 34.4073880 17.6900010 38.2978520 + 34.1220800 17.3255680 39.1357140 34.3452740 16.9580470 37.6841660 + 39.3332760 21.9864960 44.4869260 39.0289830 22.8656940 44.7119620 + 40.2879220 22.0464750 44.5226700 37.8614550 26.1925950 35.0836110 + 37.0876810 25.6523570 34.9234830 38.5909180 25.6732560 34.7453870 + 44.0812470 16.5829270 35.0191890 43.2677080 16.0842440 34.9437200 + 43.8874420 17.4227520 34.6028240 44.0021330 25.2600370 46.7631500 + 43.9358640 24.3396040 46.5089090 43.3726470 25.3575810 47.4776140 + 37.9051950 25.8606330 38.7214920 38.4230620 25.0574590 38.6671810 + 37.4535970 25.7985470 39.5631750 42.7921450 27.1272610 33.9942220 + 43.1337150 27.8714840 33.4985540 41.9634160 27.4403730 34.3567050 + 35.3896490 22.8267700 45.6340620 35.0311430 23.4921550 46.2213960 + 35.0951050 21.9951250 46.0053240 38.5909610 23.2851940 48.5180170 + 38.2909750 23.4309120 47.6207990 39.3620850 22.7257230 48.4253560 + 43.9338060 28.0820940 46.5135300 43.9482600 27.1501900 46.2954210 + 43.2263160 28.1680700 47.1525070 45.6748860 26.4488450 39.3587730 + 46.0272680 25.8516580 38.6989100 44.7911190 26.1232680 39.5295980 + 41.7612140 27.2086140 36.7658140 42.4483270 27.7555350 37.1465730 + 40.9744560 27.7526870 36.8007750 41.0639350 24.2132170 36.3783500 + 41.5202130 25.0237420 36.6043690 40.7127560 23.8955310 37.2101990 + 43.3671960 29.7238510 43.6075800 44.0114180 29.9297890 44.2849220 + 43.7301400 28.9626910 43.1546650 36.9651130 14.5569820 36.8506020 + 36.8365760 14.5487720 37.7990940 36.1413150 14.8952910 36.4997030 + 44.6404040 27.7270860 42.3253250 45.2826270 27.0264020 42.4385420 + 45.1653390 28.5069300 42.1450140 34.2675790 32.0386340 32.8236850 + 34.6273430 32.6375680 32.1694120 34.1268130 32.5846230 33.5971880 + 33.9645060 16.3160940 46.3112720 33.2503580 16.5157860 46.9165330 + 34.3840100 15.5400510 46.6827520 34.2517650 30.3041200 47.2979250 + 34.3608770 29.3635940 47.1574640 33.5998210 30.5695950 46.6492980 + 42.2430240 28.5757090 48.6977370 41.9227110 27.8566330 49.2423060 + 41.5688600 29.2512160 48.7713430 40.2844410 29.4217540 33.6410520 + 40.2754510 30.1547230 33.0255030 39.3642770 29.1749120 33.7337480 + 35.8851050 24.6432430 34.3857280 35.2779000 25.3831330 34.3952580 + 36.3600400 24.7331790 33.5595480 45.4583840 18.8083250 44.0614170 + 45.8264660 17.9878460 44.3893740 44.5982040 18.8685140 44.4769820 + 43.2704010 29.4845780 32.3035710 43.3715990 29.2809770 31.3737690 + 42.3705750 29.2304060 32.5083490 40.7929900 20.0426140 36.2859610 + 40.0846050 20.5112480 36.7273220 41.0774380 19.3848150 36.9204800 + 42.4185830 21.4622840 44.2852140 42.9171080 21.9368660 44.9503990 + 42.5608780 20.5386360 44.4922170 44.8245330 16.7676800 37.7255400 + 44.7013110 16.7862930 36.7764910 45.7729890 16.8155740 37.8453800 + 41.9122120 32.0032100 36.9983380 42.1663620 31.9653490 36.0762750 + 40.9634600 31.8765430 36.9911630 38.9964920 18.3511220 33.6610320 + 39.8455450 18.7881370 33.5950510 38.6296190 18.6631480 34.4882380 + 37.8956340 24.6043580 32.1345850 38.6619610 24.4924940 32.6971280 + 37.9731030 23.9081550 31.4822620 36.5903100 22.0368650 32.8178740 + 36.6706690 21.0896160 32.9296140 37.4822850 22.3675530 32.9239400 + 37.3917810 32.1864040 39.9213280 38.1280290 31.6379500 40.1921850 + 37.7758730 33.0520050 39.7819270 34.2763290 28.2537610 35.7954790 + 33.3503070 28.4958750 35.7860200 34.7419720 29.0811870 35.6739540 + 36.3976090 31.3710110 49.1098860 37.1988820 31.6922160 49.5234260 + 35.8827910 31.0105690 49.8318770 40.5020120 31.3594350 31.7438850 + 41.2948730 31.6483180 31.2920640 39.9824470 30.9286520 31.0651330 + 45.2340720 27.4789980 49.0574270 44.6278880 27.5021580 48.3170020 + 44.9294830 26.7473020 49.5941520 34.1173900 23.8583570 48.0534910 + 34.6212920 23.2790850 48.6251140 33.3781320 24.1423800 48.5911280 + 41.0197520 26.5797760 31.6081200 40.9148160 25.9650110 32.3342580 + 40.8521740 26.0563650 30.8244210 41.1711840 25.2654560 47.5870430 + 40.4057510 25.8339560 47.5025100 41.3527800 24.9730770 46.6938660 + 44.2600250 25.6417790 32.2123190 43.7110350 26.0887090 32.8565930 + 44.8819510 25.1367040 32.7360860 36.1496980 22.0013160 48.9484980 + 36.1902320 21.7027030 49.8570210 37.0042480 22.4020770 48.7892500 + 39.9275370 24.6008710 34.1088490 40.3491790 24.4348580 34.9519880 + 40.0526210 23.7908940 33.6143630 38.0902790 20.5805260 46.9159470 + 37.5599250 20.0896210 46.2882810 38.7590860 21.0089460 46.3817400 + 42.4403010 23.6246320 31.3565590 42.9608670 22.9095340 30.9906740 + 43.0871410 24.2632190 31.6566100 38.5775090 17.5467630 46.9956760 + 38.4831960 16.9288380 46.2707630 37.9972480 18.2733920 46.7686670 + 41.3436530 16.1040870 44.0284150 40.8953830 16.1265130 43.1829700 + 40.7101730 15.7059890 44.6254450 41.7496080 24.9995200 44.6496590 + 42.1684190 25.8427930 44.4772830 40.8304710 25.1367240 44.4203370 + 44.0859980 22.7311380 46.0334430 44.2056190 22.1352520 46.7729270 + 44.9453980 22.7681070 45.6135730 38.8234270 20.6741940 31.0546650 + 38.6223330 19.8109300 31.4159990 38.6526320 20.5875300 30.1168250 + 39.6003500 31.3048210 45.7654320 39.0624590 32.0294270 45.4463020 + 39.8537460 30.8278550 44.9751660 40.8528750 19.2732730 47.2910250 + 41.4428440 18.9648580 47.9788070 40.0348990 18.8012480 47.4470150 + 37.6217070 17.7742560 31.0424530 37.9242970 17.7809990 30.1343680 + 38.3611660 17.4240420 31.5392190 42.4565710 32.5399420 46.0240970 + 42.3824410 33.4434560 46.3313340 41.5544550 32.2211320 45.9963040 + 40.8402000 16.7177180 32.0280730 40.4924000 16.0401170 31.4483180 + 41.0414770 16.2566690 32.8424120 43.0051040 31.7057930 33.6467330 + 43.9001830 32.0442900 33.6686090 43.0368670 30.9837340 33.0191610 + 36.6447200 27.0784980 31.8754330 37.0822070 27.6214650 32.5311910 + 37.1294930 26.2531930 31.8850670 38.4554920 28.1983020 36.9876560 + 38.1550460 28.0747990 37.8880470 38.3492410 27.3391610 36.5792290 + 34.3483210 30.7344600 42.0656220 33.9114200 30.9145400 42.8980370 + 34.9160890 31.4919220 41.9237940 35.2183570 23.6317400 42.9648440 + 35.5856610 23.5444800 43.8444460 34.6494390 22.8683950 42.8655300 + 34.7699570 20.5426490 46.8706860 33.8755620 20.5093250 47.2100570 + 35.3097120 20.7413280 47.6358110 35.9372930 19.5129300 32.2764810 + 36.6464630 19.0912520 31.7912090 35.2212870 19.5804530 31.6448160 + 35.5847090 15.5668630 31.3167460 36.3075220 16.1077570 31.6348680 + 35.8571610 15.2932050 30.4409000 35.2739280 14.8174820 41.2190080 + 35.9215470 14.2672200 40.7785240 35.6941120 15.0717970 42.0405890 + 35.0271280 14.9730490 43.9615400 34.6786100 15.4294310 44.7273580 + 34.6958980 14.0787620 44.0437830 36.6335650 28.1450090 48.1268590 + 36.5905280 27.7743000 49.0083050 36.7646660 29.0827660 48.2670410 + 40.3341680 29.7009680 43.7278310 40.0933040 29.9684240 42.8408830 + 41.2744320 29.8715410 43.7829170 42.5396100 16.1642370 47.4834820 + 42.4784990 16.7564200 48.2330230 43.4796480 16.0568330 47.3385080 + 45.1770660 15.8212430 47.1227110 45.7911070 16.1391720 46.4608190 + 45.7220220 15.3361020 47.7422970 35.6991920 14.5006690 47.2366170 + 36.2474910 14.3194740 46.4732280 35.7647230 13.7100800 47.7722480 + 36.4723680 31.0912340 45.2466370 35.8784000 30.9597040 45.9856410 + 36.4647520 30.2550480 44.7808470 45.9178700 14.3844570 43.4496400 + 45.0438540 14.7179680 43.2469330 45.8089450 13.9117750 44.2748270 + 36.1035910 28.4570720 44.1974410 35.3769970 27.8376010 44.1300360 + 36.1645060 28.8511330 43.3272490 39.7081010 30.6715720 40.9823820 + 40.2246030 30.0603080 40.4572080 40.3578390 31.1744500 41.4734830 + 42.4476510 31.5624210 41.8092800 42.7354320 31.3078510 40.9325810 + 42.9599730 31.0101570 42.3998370 43.6653520 15.3014410 42.3889310 + 42.8825310 15.7759910 42.6686070 43.3716450 14.3969240 42.2802490 + 34.3865910 31.7745110 37.4071170 34.2187950 31.1415790 38.1053060 + 33.5200420 31.9804510 37.0565360 41.5507740 17.7201160 37.9005340 + 40.7382250 17.3458050 37.5601220 42.0549380 16.9646240 38.2026530 + 35.9928610 30.4678340 34.8521310 35.4676230 30.8486370 34.1483270 + 35.9173190 31.0929110 35.5731020 37.3819080 16.1325940 33.4505000 + 37.9111840 15.3455740 33.3212950 38.0147400 16.8117130 33.6840530 + 39.5756920 15.8701080 36.5050390 38.9459660 15.1688390 36.6720520 + 39.0362060 16.6305210 36.2883550 42.5148870 32.4840310 49.1761000 + 43.4416180 32.2484580 49.2196960 42.4999300 33.3112310 48.6947030 + 39.7012480 15.1485060 48.9402880 39.4196750 15.6518660 48.1763700 + 40.0832180 14.3506810 48.5745010 38.5921580 32.4160720 33.7270560 + 39.3240400 32.1320000 33.1794450 38.8515250 32.1774000 34.6169940 + 37.7536370 28.5325450 33.7316890 37.1245250 29.0010550 34.2802720 + 37.8684200 27.6874670 34.1663080 45.2086090 22.5831110 19.8818090 + 45.1280140 21.6685720 19.6109800 44.7950510 23.0798180 19.1757800 + 43.3404130 24.3610130 21.7627360 42.5646230 23.8810570 22.0525930 + 43.9917060 23.6815780 21.5883520 37.3371220 28.7070030 22.8361140 + 37.6399260 27.8167770 22.6571360 38.0814810 29.2640250 22.6083390 + 35.7661910 19.6331830 16.4245510 34.8778610 19.9747800 16.3225390 + 36.0503100 19.4332150 15.5326340 43.5874870 31.0528330 20.1630480 + 42.9686310 31.5085830 19.5924920 44.4426650 31.2079790 19.7620180 + 42.7813120 27.0367320 21.7697520 42.7121400 26.0957260 21.6086650 + 43.5432980 27.1268730 22.3420090 34.9719790 17.6421840 24.0954140 + 34.7922630 16.7447590 24.3756900 34.5699870 18.1893710 24.7701090 + 43.8118290 19.8437700 21.9966450 44.1883110 18.9709580 21.8840120 + 43.7137800 20.1796400 21.1056890 37.9423300 18.2163330 17.4583890 + 38.0490050 19.1167060 17.7652650 37.0315660 18.1681300 17.1678540 + 39.7831030 21.1849700 21.7909070 40.2909250 21.6830670 22.4314090 + 40.3144270 20.4084900 21.6148430 38.0667130 15.8248260 26.0572490 + 38.0685570 16.3420650 25.2518390 37.2371440 15.3478440 26.0342420 + 44.4538220 25.9367570 17.5562390 43.8355490 26.4017020 16.9925110 + 44.9661470 26.6295050 17.9731900 39.3169980 25.4643440 24.2345990 + 38.9839360 26.0912360 24.8767060 39.4936660 25.9905320 23.4547660 + 37.7482460 17.5358220 24.0642940 38.0899270 18.3800270 23.7696810 + 36.8098270 17.6841960 24.1808280 38.5289080 27.4324240 26.0495170 + 39.1463080 28.1075320 25.7679620 37.6682200 27.8412220 25.9582670 + 33.8221420 26.6224100 14.9302020 33.4449400 27.1111200 14.1986920 + 34.0794490 27.2949380 15.5608550 41.4310350 15.0240490 20.3887530 + 41.7385330 14.4687380 19.6723030 40.5011050 15.1584950 20.2060520 + 43.8191110 23.0889320 17.1247650 42.8920390 23.0226700 17.3536120 + 43.9715930 24.0269450 17.0102890 43.8060190 19.3606320 14.1214810 + 42.8663860 19.5220280 14.2067270 44.1243450 20.0792000 13.5750800 + 39.4247750 23.6154060 19.9067380 39.0204750 22.9031310 19.4113280 + 39.5110870 23.2707300 20.7955420 39.8929450 27.3021620 22.0706590 + 39.5957740 26.6967090 21.3914370 40.8429270 27.3398930 21.9595950 + 38.1376370 20.3897270 23.6866420 38.6890960 20.4992610 22.9119670 + 38.6519880 20.7634870 24.4021650 38.9847880 27.0403310 28.7214390 + 38.0876410 27.2643280 28.9687790 39.0100750 27.1638250 27.7725790 + 37.8119100 23.9116630 27.2971760 37.6726870 24.7839430 27.6659160 + 36.9300460 23.5689440 27.1519700 44.1348480 28.8292500 18.6036890 + 44.5744390 29.5716830 18.1892280 44.0735370 29.0719070 19.5275850 + 39.6099450 29.8538330 29.5056910 39.5814880 30.2581280 28.6385340 + 39.4464420 28.9248690 29.3428510 36.1252380 22.5099040 17.4074030 + 36.0049980 23.2361130 16.7955300 35.8153270 21.7401950 16.9301940 + 35.0085380 27.3814370 19.6248850 34.6013460 27.5228960 18.7702450 + 35.8998390 27.0974530 19.4220060 44.8264260 31.5306280 26.5315900 + 45.3408930 31.4414290 27.3338330 43.9833340 31.8765980 26.8243810 + 39.2807040 31.5960150 17.7371520 39.1049520 30.6795690 17.5239320 + 38.4262780 31.9547440 17.9769320 38.5916040 15.8534110 20.7897700 + 38.1484190 16.6343650 20.4582220 39.1501030 16.1764000 21.4968640 + 42.8785850 18.7202630 26.3933020 42.4165220 18.9285650 27.2052960 + 42.4763960 17.9061980 26.0903690 44.9740070 21.4413330 29.6228470 + 45.2993480 20.6077080 29.2830700 45.7620400 21.9641850 29.7706800 + 41.7074860 15.4744810 15.6703530 41.0829040 15.4704680 16.3956840 + 41.6204980 14.6075770 15.2739500 40.6291940 16.3981440 22.6487300 + 40.9264270 17.3044270 22.5679320 41.1777500 15.9100220 22.0346870 + 38.3830260 20.9767680 18.5178950 38.1571180 20.7604850 19.4225570 + 37.6022790 21.4096140 18.1724920 45.6128020 20.9831050 17.1169600 + 45.0136910 21.7066850 16.9333220 46.1607630 20.9207830 16.3346050 + 40.8229470 21.8753260 29.1839220 40.7273070 20.9347990 29.0339620 + 41.6661450 22.0968330 28.7887290 44.2192890 19.6194590 19.1472880 + 44.6122460 19.9366790 18.3341570 44.5809740 18.7406470 19.2617400 + 35.9540010 18.2866930 27.3373000 35.5603400 19.1342140 27.5445780 + 35.2658410 17.6493300 27.5281640 42.5285060 18.3701900 30.4069740 + 41.8383380 18.1774100 31.0415830 43.2717360 18.6536540 30.9394040 + 33.4427290 20.1515510 12.5805800 33.3601960 21.0946270 12.7220790 + 33.0910350 20.0090420 11.7018150 44.8048030 22.2100340 23.2423660 + 44.0729150 22.7187150 23.5913760 44.4072370 21.3930320 22.9412440 + 41.2425420 18.8854540 21.6476150 41.2461480 18.4444490 20.7980690 + 42.1376540 19.2071870 21.7547970 37.0927800 18.7681030 20.6070360 + 36.7527850 19.2456260 21.3637410 36.3305120 18.3146150 20.2471460 + 41.3045570 19.8866620 14.6382910 41.4258390 19.8453100 15.5868730 + 40.9194080 20.7490770 14.4829640 45.2673940 17.6634020 22.6546600 + 45.2846680 18.1142670 23.4988450 45.0189520 16.7639660 22.8680040 + 40.3167070 22.1967760 14.0366210 39.7483970 21.7486010 13.4102120 + 41.0256070 22.5560540 13.5031360 41.5433390 22.9456320 23.3941560 + 41.9103520 22.4714890 24.1402900 41.3538450 23.8197890 23.7349900 + 39.3332760 21.9864960 25.7125770 39.0289830 22.8656940 25.9376130 + 40.2879220 22.0464750 25.7483210 37.8614550 26.1925950 16.3092620 + 37.0876810 25.6523570 16.1491340 38.5909180 25.6732560 15.9710380 + 44.0812470 16.5829270 16.2448400 43.2677080 16.0842440 16.1693710 + 43.8874420 17.4227520 15.8284750 44.0021330 25.2600370 27.9888010 + 43.9358640 24.3396040 27.7345600 43.3726470 25.3575810 28.7032650 + 37.9051950 25.8606330 19.9471430 38.4230620 25.0574590 19.8928320 + 37.4535970 25.7985470 20.7888260 42.7921450 27.1272610 15.2198730 + 43.1337150 27.8714840 14.7242050 41.9634160 27.4403730 15.5823560 + 35.3896490 22.8267700 26.8597130 35.0311430 23.4921550 27.4470470 + 35.0951050 21.9951250 27.2309750 38.5909610 23.2851940 29.7436680 + 38.2909750 23.4309120 28.8464500 39.3620850 22.7257230 29.6510070 + 43.9338060 28.0820940 27.7391810 43.9482600 27.1501900 27.5210720 + 43.2263160 28.1680700 28.3781580 45.6748860 26.4488450 20.5844240 + 46.0272680 25.8516580 19.9245610 44.7911190 26.1232680 20.7552490 + 41.7612140 27.2086140 17.9914650 42.4483270 27.7555350 18.3722240 + 40.9744560 27.7526870 18.0264260 33.9004540 22.8258960 13.4831730 + 34.7699390 23.1083760 13.7667650 33.4094860 23.6394830 13.3680540 + 41.0639350 24.2132170 17.6040010 41.5202130 25.0237420 17.8300200 + 40.7127560 23.8955310 18.4358500 43.3671960 29.7238510 24.8332310 + 44.0114180 29.9297890 25.5105730 43.7301400 28.9626910 24.3803160 + 36.9651130 14.5569820 18.0762530 36.8365760 14.5487720 19.0247450 + 36.1413150 14.8952910 17.7253540 44.6404040 27.7270860 23.5509760 + 45.2826270 27.0264020 23.6641930 45.1653390 28.5069300 23.3706650 + 34.2675790 32.0386340 14.0493360 34.6273430 32.6375680 13.3950630 + 34.1268130 32.5846230 14.8228390 33.9645060 16.3160940 27.5369230 + 33.2503580 16.5157860 28.1421840 34.3840100 15.5400510 27.9084030 + 42.2430240 28.5757090 29.9233880 41.9227110 27.8566330 30.4679570 + 41.5688600 29.2512160 29.9969940 40.2844410 29.4217540 14.8667030 + 40.2754510 30.1547230 14.2511540 39.3642770 29.1749120 14.9593990 + 35.8851050 24.6432430 15.6113790 35.2779000 25.3831330 15.6209090 + 36.3600400 24.7331790 14.7851990 45.4583840 18.8083250 25.2870680 + 45.8264660 17.9878460 25.6150250 44.5982040 18.8685140 25.7026330 + 43.2704010 29.4845780 13.5292220 43.3715990 29.2809770 12.5994200 + 42.3705750 29.2304060 13.7340000 40.7929900 20.0426140 17.5116120 + 40.0846050 20.5112480 17.9529730 41.0774380 19.3848150 18.1461310 + 42.4185830 21.4622840 25.5108650 42.9171080 21.9368660 26.1760500 + 42.5608780 20.5386360 25.7178680 44.8245330 16.7676800 18.9511910 + 44.7013110 16.7862930 18.0021420 45.7729890 16.8155740 19.0710310 + 41.9122120 32.0032100 18.2239890 42.1663620 31.9653490 17.3019260 + 40.9634600 31.8765430 18.2168140 38.9964920 18.3511220 14.8866830 + 39.8455450 18.7881370 14.8207020 38.6296190 18.6631480 15.7138890 + 37.8956340 24.6043580 13.3602360 38.6619610 24.4924940 13.9227790 + 37.9731030 23.9081550 12.7079130 36.5903100 22.0368650 14.0435250 + 36.6706690 21.0896160 14.1552650 37.4822850 22.3675530 14.1495910 + 37.3917810 32.1864040 21.1469790 38.1280290 31.6379500 21.4178360 + 37.7758730 33.0520050 21.0075780 34.2763290 28.2537610 17.0211300 + 33.3503070 28.4958750 17.0116710 34.7419720 29.0811870 16.8996050 + 36.3976090 31.3710110 30.3355370 37.1988820 31.6922160 30.7490770 + 35.8827910 31.0105690 31.0575280 40.5020120 31.3594350 12.9695360 + 41.2948730 31.6483180 12.5177150 39.9824470 30.9286520 12.2907840 + 45.2340720 27.4789980 30.2830780 44.6278880 27.5021580 29.5426530 + 44.9294830 26.7473020 30.8198030 34.1173900 23.8583570 29.2791420 + 34.6212920 23.2790850 29.8507650 33.3781320 24.1423800 29.8167790 + 41.0197520 26.5797760 12.8337710 40.9148160 25.9650110 13.5599090 + 40.8521740 26.0563650 12.0500720 41.1711840 25.2654560 28.8126940 + 40.4057510 25.8339560 28.7281610 41.3527800 24.9730770 27.9195170 + 44.2600250 25.6417790 13.4379700 43.7110350 26.0887090 14.0822440 + 44.8819510 25.1367040 13.9617370 36.1496980 22.0013160 30.1741490 + 36.1902320 21.7027030 31.0826720 37.0042480 22.4020770 30.0149010 + 39.9275370 24.6008710 15.3345000 40.3491790 24.4348580 16.1776390 + 40.0526210 23.7908940 14.8400140 38.0902790 20.5805260 28.1415980 + 37.5599250 20.0896210 27.5139320 38.7590860 21.0089460 27.6073910 + 42.4403010 23.6246320 12.5822100 42.9608670 22.9095340 12.2163250 + 43.0871410 24.2632190 12.8822610 38.5775090 17.5467630 28.2213270 + 38.4831960 16.9288380 27.4964140 37.9972480 18.2733920 27.9943180 + 41.3436530 16.1040870 25.2540660 40.8953830 16.1265130 24.4086210 + 40.7101730 15.7059890 25.8510960 41.7496080 24.9995200 25.8753100 + 42.1684190 25.8427930 25.7029340 40.8304710 25.1367240 25.6459880 + 44.0859980 22.7311380 27.2590940 44.2056190 22.1352520 27.9985780 + 44.9453980 22.7681070 26.8392240 38.8234270 20.6741940 12.2803160 + 38.6223330 19.8109300 12.6416500 38.6526320 20.5875300 11.3424760 + 39.6003500 31.3048210 26.9910830 39.0624590 32.0294270 26.6719530 + 39.8537460 30.8278550 26.2008170 40.8528750 19.2732730 28.5166760 + 41.4428440 18.9648580 29.2044580 40.0348990 18.8012480 28.6726660 + 37.6217070 17.7742560 12.2681040 37.9242970 17.7809990 11.3600190 + 38.3611660 17.4240420 12.7648700 42.4565710 32.5399420 27.2497480 + 42.3824410 33.4434560 27.5569850 41.5544550 32.2211320 27.2219550 + 40.8402000 16.7177180 13.2537240 40.4924000 16.0401170 12.6739690 + 41.0414770 16.2566690 14.0680630 43.0051040 31.7057930 14.8723840 + 43.9001830 32.0442900 14.8942600 43.0368670 30.9837340 14.2448120 + 36.6447200 27.0784980 13.1010840 37.0822070 27.6214650 13.7568420 + 37.1294930 26.2531930 13.1107180 33.8593000 29.8674010 20.5531100 + 34.1896010 28.9995070 20.3209740 34.2884000 30.0732530 21.3836060 + 38.4554920 28.1983020 18.2133070 38.1550460 28.0747990 19.1136980 + 38.3492410 27.3391610 17.8048800 34.3483210 30.7344600 23.2912730 + 33.9114200 30.9145400 24.1236880 34.9160890 31.4919220 23.1494450 + 34.7699570 20.5426490 28.0963370 33.8755620 20.5093250 28.4357080 + 35.3097120 20.7413280 28.8614620 33.3945720 20.4563760 15.5926940 + 32.4909800 20.7193960 15.4178600 33.8786340 20.7274930 14.8126900 + 35.9372930 19.5129300 13.5021320 36.6464630 19.0912520 13.0168600 + 35.2212870 19.5804530 12.8704670 35.5847090 15.5668630 12.5423970 + 36.3075220 16.1077570 12.8605190 35.8571610 15.2932050 11.6665510 + 35.2739280 14.8174820 22.4446590 35.9215470 14.2672200 22.0041750 + 35.6941120 15.0717970 23.2662400 35.0271280 14.9730490 25.1871910 + 34.6786100 15.4294310 25.9530090 34.6958980 14.0787620 25.2694340 + 36.6335650 28.1450090 29.3525100 36.5905280 27.7743000 30.2339560 + 36.7646660 29.0827660 29.4926920 40.3341680 29.7009680 24.9534820 + 40.0933040 29.9684240 24.0665340 41.2744320 29.8715410 25.0085680 + 42.5396100 16.1642370 28.7091330 42.4784990 16.7564200 29.4586740 + 43.4796480 16.0568330 28.5641590 45.1770660 15.8212430 28.3483620 + 45.7911070 16.1391720 27.6864700 45.7220220 15.3361020 28.9679480 + 35.6991920 14.5006690 28.4622680 36.2474910 14.3194740 27.6988790 + 35.7647230 13.7100800 28.9978990 36.4723680 31.0912340 26.4722880 + 35.8784000 30.9597040 27.2112920 36.4647520 30.2550480 26.0064980 + 45.9178700 14.3844570 24.6752910 45.0438540 14.7179680 24.4725840 + 45.8089450 13.9117750 25.5004780 36.1035910 28.4570720 25.4230920 + 35.3769970 27.8376010 25.3556870 36.1645060 28.8511330 24.5529000 + 39.7081010 30.6715720 22.2080330 40.2246030 30.0603080 21.6828590 + 40.3578390 31.1744500 22.6991340 42.4476510 31.5624210 23.0349310 + 42.7354320 31.3078510 22.1582320 42.9599730 31.0101570 23.6254880 + 43.6653520 15.3014410 23.6145820 42.8825310 15.7759910 23.8942580 + 43.3716450 14.3969240 23.5059000 34.3865910 31.7745110 18.6327680 + 34.2187950 31.1415790 19.3309570 33.5200420 31.9804510 18.2821870 + 35.0093930 15.6061890 16.1359540 35.7673290 15.7190770 15.5623570 + 34.5471100 16.4431090 16.0902970 41.5507740 17.7201160 19.1261850 + 40.7382250 17.3458050 18.7857730 42.0549380 16.9646240 19.4283040 + 35.9928610 30.4678340 16.0777820 35.4676230 30.8486370 15.3739780 + 35.9173190 31.0929110 16.7987530 37.3819080 16.1325940 14.6761510 + 37.9111840 15.3455740 14.5469460 38.0147400 16.8117130 14.9097040 + 39.5756920 15.8701080 17.7306900 38.9459660 15.1688390 17.8977030 + 39.0362060 16.6305210 17.5140060 42.5148870 32.4840310 30.4017510 + 43.4416180 32.2484580 30.4453470 42.4999300 33.3112310 29.9203540 + 39.7012480 15.1485060 30.1659390 39.4196750 15.6518660 29.4020210 + 40.0832180 14.3506810 29.8001520 38.5921580 32.4160720 14.9527070 + 39.3240400 32.1320000 14.4050960 38.8515250 32.1774000 15.8426450 + 37.7536370 28.5325450 14.9573400 37.1245250 29.0010550 15.5059230 + 37.8684200 27.6874670 15.3919590 43.3404130 24.3610130 2.9883870 + 42.5646230 23.8810570 3.2782440 43.9917060 23.6815780 2.8140030 + 37.3569960 24.6729940 3.8659630 36.5254840 24.4178650 4.2656140 + 37.9650940 24.7440710 4.6017550 37.3371220 28.7070030 4.0617650 + 37.6399260 27.8167770 3.8827870 38.0814810 29.2640250 3.8339900 + 33.7294920 22.2337480 3.5341720 34.3011030 21.4659680 3.5345360 + 33.7296460 22.5326240 2.6248330 42.7813120 27.0367320 2.9954030 + 42.7121400 26.0957260 2.8343160 43.5432980 27.1268730 3.5676600 + 34.9719790 17.6421840 5.3210650 34.7922630 16.7447590 5.6013410 + 34.5699870 18.1893710 5.9957600 43.8118290 19.8437700 3.2222960 + 44.1883110 18.9709580 3.1096630 43.7137800 20.1796400 2.3313400 + 35.5906460 20.1382340 3.9292990 36.2716570 20.4020710 4.5480390 + 35.2754510 19.2983210 4.2631000 39.7831030 21.1849700 3.0165580 + 40.2909250 21.6830670 3.6570600 40.3144270 20.4084900 2.8404940 + 38.0667130 15.8248260 7.2829000 38.0685570 16.3420650 6.4774900 + 37.2371440 15.3478440 7.2598930 39.3169980 25.4643440 5.4602500 + 38.9839360 26.0912360 6.1023570 39.4936660 25.9905320 4.6804170 + 37.7482460 17.5358220 5.2899450 38.0899270 18.3800270 4.9953320 + 36.8098270 17.6841960 5.4064790 38.5289080 27.4324240 7.2751680 + 39.1463080 28.1075320 6.9936130 37.6682200 27.8412220 7.1839180 + 39.8929450 27.3021620 3.2963100 39.5957740 26.6967090 2.6170880 + 40.8429270 27.3398930 3.1852460 38.1376370 20.3897270 4.9122930 + 38.6890960 20.4992610 4.1376180 38.6519880 20.7634870 5.6278160 + 38.9847880 27.0403310 9.9470900 38.0876410 27.2643280 10.1944300 + 39.0100750 27.1638250 8.9982300 37.8119100 23.9116630 8.5228270 + 37.6726870 24.7839430 8.8915670 36.9300460 23.5689440 8.3776210 + 39.6099450 29.8538330 10.7313420 39.5814880 30.2581280 9.8641850 + 39.4464420 28.9248690 10.5685020 33.7637750 25.6814180 4.4399180 + 33.8418170 25.8162950 3.4954900 34.3779430 24.9730070 4.6327300 + 44.8264260 31.5306280 7.7572410 45.3408930 31.4414290 8.5594840 + 43.9833340 31.8765980 8.0500320 33.8197270 26.7228350 6.9793640 + 33.9828310 26.2533710 6.1613010 34.2849720 26.2151910 7.6442480 + 38.5916040 15.8534110 2.0154210 38.1484190 16.6343650 1.6838730 + 39.1501030 16.1764000 2.7225150 42.8785850 18.7202630 7.6189530 + 42.4165220 18.9285650 8.4309470 42.4763960 17.9061980 7.3160200 + 44.9740070 21.4413330 10.8484980 45.2993480 20.6077080 10.5087210 + 45.7620400 21.9641850 10.9963310 40.6291940 16.3981440 3.8743810 + 40.9264270 17.3044270 3.7935830 41.1777500 15.9100220 3.2603380 + 40.8229470 21.8753260 10.4095730 40.7273070 20.9347990 10.2596130 + 41.6661450 22.0968330 10.0143800 35.9540010 18.2866930 8.5629510 + 35.5603400 19.1342140 8.7702290 35.2658410 17.6493300 8.7538150 + 42.5285060 18.3701900 11.6326250 41.8383380 18.1774100 12.2672340 + 43.2717360 18.6536540 12.1650550 33.2557060 16.2095390 2.5959590 + 32.9670110 16.7798250 3.3084570 34.0002820 15.7299840 2.9590820 + 44.8048030 22.2100340 4.4680170 44.0729150 22.7187150 4.8170270 + 44.4072370 21.3930320 4.1668950 41.2425420 18.8854540 2.8732660 + 41.2461480 18.4444490 2.0237200 42.1376540 19.2071870 2.9804480 + 37.0927800 18.7681030 1.8326870 36.7527850 19.2456260 2.5893920 + 36.3305120 18.3146150 1.4727970 45.2673940 17.6634020 3.8803110 + 45.2846680 18.1142670 4.7244960 45.0189520 16.7639660 4.0936550 + 35.3936250 26.0979780 9.1389450 35.0091040 25.4573450 9.7372410 + 35.7048440 26.8015900 9.7084180 41.5433390 22.9456320 4.6198070 + 41.9103520 22.4714890 5.3659410 41.3538450 23.8197890 4.9606410 + 39.3332760 21.9864960 6.9382280 39.0289830 22.8656940 7.1632640 + 40.2879220 22.0464750 6.9739720 44.0021330 25.2600370 9.2144520 + 43.9358640 24.3396040 8.9602110 43.3726470 25.3575810 9.9289160 + 35.3896490 22.8267700 8.0853640 35.0311430 23.4921550 8.6726980 + 35.0951050 21.9951250 8.4566260 38.5909610 23.2851940 10.9693190 + 38.2909750 23.4309120 10.0721010 39.3620850 22.7257230 10.8766580 + 43.9338060 28.0820940 8.9648320 43.9482600 27.1501900 8.7467230 + 43.2263160 28.1680700 9.6038090 43.3671960 29.7238510 6.0588820 + 44.0114180 29.9297890 6.7362240 43.7301400 28.9626910 5.6059670 + 44.6404040 27.7270860 4.7766270 45.2826270 27.0264020 4.8898440 + 45.1653390 28.5069300 4.5963160 33.9645060 16.3160940 8.7625740 + 33.2503580 16.5157860 9.3678350 34.3840100 15.5400510 9.1340540 + 34.2517650 30.3041200 9.7492270 34.3608770 29.3635940 9.6087660 + 33.5998210 30.5695950 9.1006000 42.2430240 28.5757090 11.1490390 + 41.9227110 27.8566330 11.6936080 41.5688600 29.2512160 11.2226450 + 45.4583840 18.8083250 6.5127190 45.8264660 17.9878460 6.8406760 + 44.5982040 18.8685140 6.9282840 42.4185830 21.4622840 6.7365160 + 42.9171080 21.9368660 7.4017010 42.5608780 20.5386360 6.9435190 + 37.3917810 32.1864040 2.3726300 38.1280290 31.6379500 2.6434870 + 37.7758730 33.0520050 2.2332290 36.3976090 31.3710110 11.5611880 + 37.1988820 31.6922160 11.9747280 35.8827910 31.0105690 12.2831790 + 45.2340720 27.4789980 11.5087290 44.6278880 27.5021580 10.7683040 + 44.9294830 26.7473020 12.0454540 34.1173900 23.8583570 10.5047930 + 34.6212920 23.2790850 11.0764160 33.3781320 24.1423800 11.0424300 + 41.1711840 25.2654560 10.0383450 40.4057510 25.8339560 9.9538120 + 41.3527800 24.9730770 9.1451680 36.1496980 22.0013160 11.3998000 + 36.1902320 21.7027030 12.3083230 37.0042480 22.4020770 11.2405520 + 38.0902790 20.5805260 9.3672490 37.5599250 20.0896210 8.7395830 + 38.7590860 21.0089460 8.8330420 38.5775090 17.5467630 9.4469780 + 38.4831960 16.9288380 8.7220650 37.9972480 18.2733920 9.2199690 + 41.3436530 16.1040870 6.4797170 40.8953830 16.1265130 5.6342720 + 40.7101730 15.7059890 7.0767470 41.7496080 24.9995200 7.1009610 + 42.1684190 25.8427930 6.9285850 40.8304710 25.1367240 6.8716390 + 44.0859980 22.7311380 8.4847450 44.2056190 22.1352520 9.2242290 + 44.9453980 22.7681070 8.0648750 39.6003500 31.3048210 8.2167340 + 39.0624590 32.0294270 7.8976040 39.8537460 30.8278550 7.4264680 + 40.8528750 19.2732730 9.7423270 41.4428440 18.9648580 10.4301090 + 40.0348990 18.8012480 9.8983170 42.4565710 32.5399420 8.4753990 + 42.3824410 33.4434560 8.7826360 41.5544550 32.2211320 8.4476060 + 33.8593000 29.8674010 1.7787610 34.1896010 28.9995070 1.5466250 + 34.2884000 30.0732530 2.6092570 34.3483210 30.7344600 4.5169240 + 33.9114200 30.9145400 5.3493390 34.9160890 31.4919220 4.3750960 + 35.2183570 23.6317400 5.4161460 35.5856610 23.5444800 6.2957480 + 34.6494390 22.8683950 5.3168320 34.7699570 20.5426490 9.3219880 + 33.8755620 20.5093250 9.6613590 35.3097120 20.7413280 10.0871130 + 35.2739280 14.8174820 3.6703100 35.9215470 14.2672200 3.2298260 + 35.6941120 15.0717970 4.4918910 35.0271280 14.9730490 6.4128420 + 34.6786100 15.4294310 7.1786600 34.6958980 14.0787620 6.4950850 + 36.6335650 28.1450090 10.5781610 36.5905280 27.7743000 11.4596070 + 36.7646660 29.0827660 10.7183430 40.3341680 29.7009680 6.1791330 + 40.0933040 29.9684240 5.2921850 41.2744320 29.8715410 6.2342190 + 42.5396100 16.1642370 9.9347840 42.4784990 16.7564200 10.6843250 + 43.4796480 16.0568330 9.7898100 45.1770660 15.8212430 9.5740130 + 45.7911070 16.1391720 8.9121210 45.7220220 15.3361020 10.1935990 + 35.6991920 14.5006690 9.6879190 36.2474910 14.3194740 8.9245300 + 35.7647230 13.7100800 10.2235500 36.4723680 31.0912340 7.6979390 + 35.8784000 30.9597040 8.4369430 36.4647520 30.2550480 7.2321490 + 45.9178700 14.3844570 5.9009420 45.0438540 14.7179680 5.6982350 + 45.8089450 13.9117750 6.7261290 36.1035910 28.4570720 6.6487430 + 35.3769970 27.8376010 6.5813380 36.1645060 28.8511330 5.7785510 + 39.7081010 30.6715720 3.4336840 40.2246030 30.0603080 2.9085100 + 40.3578390 31.1744500 3.9247850 42.4476510 31.5624210 4.2605820 + 42.7354320 31.3078510 3.3838830 42.9599730 31.0101570 4.8511390 + 43.6653520 15.3014410 4.8402330 42.8825310 15.7759910 5.1199090 + 43.3716450 14.3969240 4.7315510 42.5148870 32.4840310 11.6274020 + 43.4416180 32.2484580 11.6709980 42.4999300 33.3112310 11.1460050 + 39.7012480 15.1485060 11.3915900 39.4196750 15.6518660 10.6276720 + 40.0832180 14.3506810 11.0258030 45.2086090 3.8087620 57.4305070 + 45.1280140 2.8942230 57.1596780 44.7950510 4.3054690 56.7244780 + 43.3404130 5.5866640 59.3114340 42.5646230 5.1067080 59.6012910 + 43.9917060 4.9072290 59.1370500 33.7294920 3.4593990 59.8572190 + 34.3011030 2.6916190 59.8575830 33.7296460 3.7582750 58.9478800 + 43.5874870 12.2784840 57.7117460 42.9686310 12.7342340 57.1411900 + 44.4426650 12.4336300 57.3107160 42.7813120 8.2623830 59.3184500 + 42.7121400 7.3213770 59.1573630 43.5432980 8.3525240 59.8907070 + 44.4538220 7.1624080 55.1049370 43.8355490 7.6273530 54.5412090 + 44.9661470 7.8551560 55.5218880 33.8221420 7.8480610 52.4789000 + 33.4449400 8.3367710 51.7473900 34.0794490 8.5205890 53.1095530 + 43.8191110 4.3145830 54.6734630 42.8920390 4.2483210 54.9023100 + 43.9715930 5.2525960 54.5589870 39.4247750 4.8410570 57.4554360 + 39.0204750 4.1287820 56.9600260 39.5110870 4.4963810 58.3442400 + 39.8929450 8.5278130 59.6193570 39.5957740 7.9223600 58.9401350 + 40.8429270 8.5655440 59.5082930 44.1348480 10.0549010 56.1523870 + 44.5744390 10.7973340 55.7379260 44.0735370 10.2975580 57.0762830 + 36.1252380 3.7355550 54.9561010 36.0049980 4.4617640 54.3442280 + 35.8153270 2.9658460 54.4788920 35.0085380 8.6070880 57.1735830 + 34.6013460 8.7485470 56.3189430 35.8998390 8.3231040 56.9707040 + 39.2807040 12.8216660 55.2858500 39.1049520 11.9052200 55.0726300 + 38.4262780 13.1803950 55.5256300 38.3830260 2.2024190 56.0665930 + 38.1571180 1.9861360 56.9712550 37.6022790 2.6352650 55.7211900 + 45.6128020 2.2087560 54.6656580 45.0136910 2.9323360 54.4820200 + 46.1607630 2.1464340 53.8833030 40.3167070 3.4224270 51.5853190 + 39.7483970 2.9742520 50.9589100 41.0256070 3.7817050 51.0518340 + 37.8614550 7.4182460 53.8579600 37.0876810 6.8780080 53.6978320 + 38.5909180 6.8989070 53.5197360 37.9051950 7.0862840 57.4958410 + 38.4230620 6.2831100 57.4415300 37.4535970 7.0241980 58.3375240 + 42.7921450 8.3529120 52.7685710 43.1337150 9.0971350 52.2729030 + 41.9634160 8.6660240 53.1310540 45.6748860 7.6744960 58.1331220 + 46.0272680 7.0773090 57.4732590 44.7911190 7.3489190 58.3039470 + 41.7612140 8.4342650 55.5401630 42.4483270 8.9811860 55.9209220 + 40.9744560 8.9783380 55.5751240 33.9004540 4.0515470 51.0318710 + 34.7699390 4.3340270 51.3154630 33.4094860 4.8651340 50.9167520 + 41.0639350 5.4388680 55.1526990 41.5202130 6.2493930 55.3787180 + 40.7127560 5.1211820 55.9845480 34.2675790 13.2642850 51.5980340 + 34.6273430 13.8632190 50.9437610 34.1268130 13.8102740 52.3715370 + 40.2844410 10.6474050 52.4154010 40.2754510 11.3803740 51.7998520 + 39.3642770 10.4005630 52.5080970 35.8851050 5.8688940 53.1600770 + 35.2779000 6.6087840 53.1696070 36.3600400 5.9588300 52.3338970 + 43.2704010 10.7102290 51.0779200 43.3715990 10.5066280 50.1481180 + 42.3705750 10.4560570 51.2826980 41.9122120 13.2288610 55.7726870 + 42.1663620 13.1910000 54.8506240 40.9634600 13.1021940 55.7655120 + 37.8956340 5.8300090 50.9089340 38.6619610 5.7181450 51.4714770 + 37.9731030 5.1338060 50.2566110 36.5903100 3.2625160 51.5922230 + 36.6706690 2.3152670 51.7039630 37.4822850 3.5932040 51.6982890 + 37.3917810 13.4120550 58.6956770 38.1280290 12.8636010 58.9665340 + 37.7758730 14.2776560 58.5562760 34.2763290 9.4794120 54.5698280 + 33.3503070 9.7215260 54.5603690 34.7419720 10.3068380 54.4483030 + 40.5020120 12.5850860 50.5182340 41.2948730 12.8739690 50.0664130 + 39.9824470 12.1543030 49.8394820 41.0197520 7.8054270 50.3824690 + 40.9148160 7.1906620 51.1086070 40.8521740 7.2820160 49.5987700 + 44.2600250 6.8674300 50.9866680 43.7110350 7.3143600 51.6309420 + 44.8819510 6.3623550 51.5104350 39.9275370 5.8265220 52.8831980 + 40.3491790 5.6605090 53.7263370 40.0526210 5.0165450 52.3887120 + 42.4403010 4.8502830 50.1309080 42.9608670 4.1351850 49.7650230 + 43.0871410 5.4888700 50.4309590 43.0051040 12.9314440 52.4210820 + 43.9001830 13.2699410 52.4429580 43.0368670 12.2093850 51.7935100 + 36.6447200 8.3041490 50.6497820 37.0822070 8.8471160 51.3055400 + 37.1294930 7.4788440 50.6594160 33.8593000 11.0930520 58.1018080 + 34.1896010 10.2251580 57.8696720 34.2884000 11.2989040 58.9323040 + 38.4554920 9.4239530 55.7620050 38.1550460 9.3004500 56.6623960 + 38.3492410 8.5648120 55.3535780 34.1807640 4.4721340 57.1988590 + 33.5256480 4.2032980 56.5548290 35.0185590 4.3625820 56.7490570 + 39.7081010 11.8972230 59.7567310 40.2246030 11.2859590 59.2315570 + 40.3578390 12.4001010 60.2478320 34.3865910 13.0001620 56.1814660 + 34.2187950 12.3672300 56.8796550 33.5200420 13.2061020 55.8308850 + 35.9928610 11.6934850 53.6264800 35.4676230 12.0742880 52.9226760 + 35.9173190 12.3185620 54.3474510 38.5921580 13.6417230 52.5014050 + 39.3240400 13.3576510 51.9537940 38.8515250 13.4030510 53.3913430 + 37.7536370 9.7581960 52.5060380 37.1245250 10.2267060 53.0546210 + 37.8684200 8.9131180 52.9406570 45.2086090 3.8087620 38.6561580 + 45.1280140 2.8942230 38.3853290 44.7950510 4.3054690 37.9501290 + 43.3404130 5.5866640 40.5370850 42.5646230 5.1067080 40.8269420 + 43.9917060 4.9072290 40.3627010 37.3569960 5.8986450 41.4146610 + 36.5254840 5.6435160 41.8143120 37.9650940 5.9697220 42.1504530 + 37.3371220 9.9326540 41.6104630 37.6399260 9.0424280 41.4314850 + 38.0814810 10.4896760 41.3826880 33.7294920 3.4593990 41.0828700 + 34.3011030 2.6916190 41.0832340 33.7296460 3.7582750 40.1735310 + 43.5874870 12.2784840 38.9373970 42.9686310 12.7342340 38.3668410 + 44.4426650 12.4336300 38.5363670 42.7813120 8.2623830 40.5441010 + 42.7121400 7.3213770 40.3830140 43.5432980 8.3525240 41.1163580 + 44.4538220 7.1624080 36.3305880 43.8355490 7.6273530 35.7668600 + 44.9661470 7.8551560 36.7475390 39.3169980 6.6899950 43.0089480 + 38.9839360 7.3168870 43.6510550 39.4936660 7.2161830 42.2291150 + 38.5289080 8.6580750 44.8238660 39.1463080 9.3331830 44.5423110 + 37.6682200 9.0668730 44.7326160 33.8221420 7.8480610 33.7045510 + 33.4449400 8.3367710 32.9730410 34.0794490 8.5205890 34.3352040 + 43.8191110 4.3145830 35.8991140 42.8920390 4.2483210 36.1279610 + 43.9715930 5.2525960 35.7846380 39.4247750 4.8410570 38.6810870 + 39.0204750 4.1287820 38.1856770 39.5110870 4.4963810 39.5698910 + 39.8929450 8.5278130 40.8450080 39.5957740 7.9223600 40.1657860 + 40.8429270 8.5655440 40.7339440 38.9847880 8.2659820 47.4957880 + 38.0876410 8.4899790 47.7431280 39.0100750 8.3894760 46.5469280 + 37.8119100 5.1373140 46.0715250 37.6726870 6.0095940 46.4402650 + 36.9300460 4.7945950 45.9263190 44.1348480 10.0549010 37.3780380 + 44.5744390 10.7973340 36.9635770 44.0735370 10.2975580 38.3019340 + 39.6099450 11.0794840 48.2800400 39.5814880 11.4837790 47.4128830 + 39.4464420 10.1505200 48.1172000 36.1252380 3.7355550 36.1817520 + 36.0049980 4.4617640 35.5698790 35.8153270 2.9658460 35.7045430 + 33.7637750 6.9070690 41.9886160 33.8418170 7.0419460 41.0441880 + 34.3779430 6.1986580 42.1814280 35.0085380 8.6070880 38.3992340 + 34.6013460 8.7485470 37.5445940 35.8998390 8.3231040 38.1963550 + 44.8264260 12.7562790 45.3059390 45.3408930 12.6670800 46.1081820 + 43.9833340 13.1022490 45.5987300 39.2807040 12.8216660 36.5115010 + 39.1049520 11.9052200 36.2982810 38.4262780 13.1803950 36.7512810 + 33.8197270 7.9484860 44.5280620 33.9828310 7.4790220 43.7099990 + 34.2849720 7.4408420 45.1929460 44.9740070 2.6669840 48.3971960 + 45.2993480 1.8333590 48.0574190 45.7620400 3.1898360 48.5450290 + 38.3830260 2.2024190 37.2922440 38.1571180 1.9861360 38.1969060 + 37.6022790 2.6352650 36.9468410 45.6128020 2.2087560 35.8913090 + 45.0136910 2.9323360 35.7076710 46.1607630 2.1464340 35.1089540 + 40.8229470 3.1009770 47.9582710 40.7273070 2.1604500 47.8083110 + 41.6661450 3.3224840 47.5630780 44.8048030 3.4356850 42.0167150 + 44.0729150 3.9443660 42.3657250 44.4072370 2.6186830 41.7155930 + 40.3167070 3.4224270 32.8109700 39.7483970 2.9742520 32.1845610 + 41.0256070 3.7817050 32.2774850 35.3936250 7.3236290 46.6876430 + 35.0091040 6.6829960 47.2859390 35.7048440 8.0272410 47.2571160 + 41.5433390 4.1712830 42.1685050 41.9103520 3.6971400 42.9146390 + 41.3538450 5.0454400 42.5093390 39.3332760 3.2121470 44.4869260 + 39.0289830 4.0913450 44.7119620 40.2879220 3.2721260 44.5226700 + 37.8614550 7.4182460 35.0836110 37.0876810 6.8780080 34.9234830 + 38.5909180 6.8989070 34.7453870 44.0021330 6.4856880 46.7631500 + 43.9358640 5.5652550 46.5089090 43.3726470 6.5832320 47.4776140 + 37.9051950 7.0862840 38.7214920 38.4230620 6.2831100 38.6671810 + 37.4535970 7.0241980 39.5631750 42.7921450 8.3529120 33.9942220 + 43.1337150 9.0971350 33.4985540 41.9634160 8.6660240 34.3567050 + 35.3896490 4.0524210 45.6340620 35.0311430 4.7178060 46.2213960 + 35.0951050 3.2207760 46.0053240 38.5909610 4.5108450 48.5180170 + 38.2909750 4.6565630 47.6207990 39.3620850 3.9513740 48.4253560 + 43.9338060 9.3077450 46.5135300 43.9482600 8.3758410 46.2954210 + 43.2263160 9.3937210 47.1525070 45.6748860 7.6744960 39.3587730 + 46.0272680 7.0773090 38.6989100 44.7911190 7.3489190 39.5295980 + 41.7612140 8.4342650 36.7658140 42.4483270 8.9811860 37.1465730 + 40.9744560 8.9783380 36.8007750 33.9004540 4.0515470 32.2575220 + 34.7699390 4.3340270 32.5411140 33.4094860 4.8651340 32.1424030 + 41.0639350 5.4388680 36.3783500 41.5202130 6.2493930 36.6043690 + 40.7127560 5.1211820 37.2101990 43.3671960 10.9495020 43.6075800 + 44.0114180 11.1554400 44.2849220 43.7301400 10.1883420 43.1546650 + 44.6404040 8.9527370 42.3253250 45.2826270 8.2520530 42.4385420 + 45.1653390 9.7325810 42.1450140 34.2675790 13.2642850 32.8236850 + 34.6273430 13.8632190 32.1694120 34.1268130 13.8102740 33.5971880 + 34.2517650 11.5297710 47.2979250 34.3608770 10.5892450 47.1574640 + 33.5998210 11.7952460 46.6492980 42.2430240 9.8013600 48.6977370 + 41.9227110 9.0822840 49.2423060 41.5688600 10.4768670 48.7713430 + 40.2844410 10.6474050 33.6410520 40.2754510 11.3803740 33.0255030 + 39.3642770 10.4005630 33.7337480 35.8851050 5.8688940 34.3857280 + 35.2779000 6.6087840 34.3952580 36.3600400 5.9588300 33.5595480 + 43.2704010 10.7102290 32.3035710 43.3715990 10.5066280 31.3737690 + 42.3705750 10.4560570 32.5083490 42.4185830 2.6879350 44.2852140 + 42.9171080 3.1625170 44.9503990 42.5608780 1.7642870 44.4922170 + 41.9122120 13.2288610 36.9983380 42.1663620 13.1910000 36.0762750 + 40.9634600 13.1021940 36.9911630 37.8956340 5.8300090 32.1345850 + 38.6619610 5.7181450 32.6971280 37.9731030 5.1338060 31.4822620 + 36.5903100 3.2625160 32.8178740 36.6706690 2.3152670 32.9296140 + 37.4822850 3.5932040 32.9239400 37.3917810 13.4120550 39.9213280 + 38.1280290 12.8636010 40.1921850 37.7758730 14.2776560 39.7819270 + 34.2763290 9.4794120 35.7954790 33.3503070 9.7215260 35.7860200 + 34.7419720 10.3068380 35.6739540 36.3976090 12.5966620 49.1098860 + 37.1988820 12.9178670 49.5234260 35.8827910 12.2362200 49.8318770 + 40.5020120 12.5850860 31.7438850 41.2948730 12.8739690 31.2920640 + 39.9824470 12.1543030 31.0651330 45.2340720 8.7046490 49.0574270 + 44.6278880 8.7278090 48.3170020 44.9294830 7.9729530 49.5941520 + 34.1173900 5.0840080 48.0534910 34.6212920 4.5047360 48.6251140 + 33.3781320 5.3680310 48.5911280 41.0197520 7.8054270 31.6081200 + 40.9148160 7.1906620 32.3342580 40.8521740 7.2820160 30.8244210 + 41.1711840 6.4911070 47.5870430 40.4057510 7.0596070 47.5025100 + 41.3527800 6.1987280 46.6938660 44.2600250 6.8674300 32.2123190 + 43.7110350 7.3143600 32.8565930 44.8819510 6.3623550 32.7360860 + 36.1496980 3.2269670 48.9484980 36.1902320 2.9283540 49.8570210 + 37.0042480 3.6277280 48.7892500 39.9275370 5.8265220 34.1088490 + 40.3491790 5.6605090 34.9519880 40.0526210 5.0165450 33.6143630 + 42.4403010 4.8502830 31.3565590 42.9608670 4.1351850 30.9906740 + 43.0871410 5.4888700 31.6566100 41.7496080 6.2251710 44.6496590 + 42.1684190 7.0684440 44.4772830 40.8304710 6.3623750 44.4203370 + 44.0859980 3.9567890 46.0334430 44.2056190 3.3609030 46.7729270 + 44.9453980 3.9937580 45.6135730 39.6003500 12.5304720 45.7654320 + 39.0624590 13.2550780 45.4463020 39.8537460 12.0535060 44.9751660 + 42.4565710 13.7655930 46.0240970 42.3824410 14.6691070 46.3313340 + 41.5544550 13.4467830 45.9963040 43.0051040 12.9314440 33.6467330 + 43.9001830 13.2699410 33.6686090 43.0368670 12.2093850 33.0191610 + 36.6447200 8.3041490 31.8754330 37.0822070 8.8471160 32.5311910 + 37.1294930 7.4788440 31.8850670 33.8593000 11.0930520 39.3274590 + 34.1896010 10.2251580 39.0953230 34.2884000 11.2989040 40.1579550 + 38.4554920 9.4239530 36.9876560 38.1550460 9.3004500 37.8880470 + 38.3492410 8.5648120 36.5792290 34.3483210 11.9601110 42.0656220 + 33.9114200 12.1401910 42.8980370 34.9160890 12.7175730 41.9237940 + 34.1807640 4.4721340 38.4245100 33.5256480 4.2032980 37.7804800 + 35.0185590 4.3625820 37.9747080 35.2183570 4.8573910 42.9648440 + 35.5856610 4.7701310 43.8444460 34.6494390 4.0940460 42.8655300 + 34.7699570 1.7683000 46.8706860 33.8755620 1.7349760 47.2100570 + 35.3097120 1.9669790 47.6358110 36.6335650 9.3706600 48.1268590 + 36.5905280 8.9999510 49.0083050 36.7646660 10.3084170 48.2670410 + 40.3341680 10.9266190 43.7278310 40.0933040 11.1940750 42.8408830 + 41.2744320 11.0971920 43.7829170 36.4723680 12.3168850 45.2466370 + 35.8784000 12.1853550 45.9856410 36.4647520 11.4806990 44.7808470 + 36.1035910 9.6827230 44.1974410 35.3769970 9.0632520 44.1300360 + 36.1645060 10.0767840 43.3272490 39.7081010 11.8972230 40.9823820 + 40.2246030 11.2859590 40.4572080 40.3578390 12.4001010 41.4734830 + 42.4476510 12.7880720 41.8092800 42.7354320 12.5335020 40.9325810 + 42.9599730 12.2358080 42.3998370 34.3865910 13.0001620 37.4071170 + 34.2187950 12.3672300 38.1053060 33.5200420 13.2061020 37.0565360 + 35.9928610 11.6934850 34.8521310 35.4676230 12.0742880 34.1483270 + 35.9173190 12.3185620 35.5731020 42.5148870 13.7096820 49.1761000 + 43.4416180 13.4741090 49.2196960 42.4999300 14.5368820 48.6947030 + 38.5921580 13.6417230 33.7270560 39.3240400 13.3576510 33.1794450 + 38.8515250 13.4030510 34.6169940 37.7536370 9.7581960 33.7316890 + 37.1245250 10.2267060 34.2802720 37.8684200 8.9131180 34.1663080 + 45.2086090 3.8087620 19.8818090 45.1280140 2.8942230 19.6109800 + 44.7950510 4.3054690 19.1757800 43.3404130 5.5866640 21.7627360 + 42.5646230 5.1067080 22.0525930 43.9917060 4.9072290 21.5883520 + 37.3569960 5.8986450 22.6403120 36.5254840 5.6435160 23.0399630 + 37.9650940 5.9697220 23.3761040 37.3371220 9.9326540 22.8361140 + 37.6399260 9.0424280 22.6571360 38.0814810 10.4896760 22.6083390 + 33.7294920 3.4593990 22.3085210 34.3011030 2.6916190 22.3088850 + 33.7296460 3.7582750 21.3991820 43.5874870 12.2784840 20.1630480 + 42.9686310 12.7342340 19.5924920 44.4426650 12.4336300 19.7620180 + 42.7813120 8.2623830 21.7697520 42.7121400 7.3213770 21.6086650 + 43.5432980 8.3525240 22.3420090 44.4538220 7.1624080 17.5562390 + 43.8355490 7.6273530 16.9925110 44.9661470 7.8551560 17.9731900 + 39.3169980 6.6899950 24.2345990 38.9839360 7.3168870 24.8767060 + 39.4936660 7.2161830 23.4547660 38.5289080 8.6580750 26.0495170 + 39.1463080 9.3331830 25.7679620 37.6682200 9.0668730 25.9582670 + 33.8221420 7.8480610 14.9302020 33.4449400 8.3367710 14.1986920 + 34.0794490 8.5205890 15.5608550 43.8191110 4.3145830 17.1247650 + 42.8920390 4.2483210 17.3536120 43.9715930 5.2525960 17.0102890 + 39.4247750 4.8410570 19.9067380 39.0204750 4.1287820 19.4113280 + 39.5110870 4.4963810 20.7955420 39.8929450 8.5278130 22.0706590 + 39.5957740 7.9223600 21.3914370 40.8429270 8.5655440 21.9595950 + 38.9847880 8.2659820 28.7214390 38.0876410 8.4899790 28.9687790 + 39.0100750 8.3894760 27.7725790 37.8119100 5.1373140 27.2971760 + 37.6726870 6.0095940 27.6659160 36.9300460 4.7945950 27.1519700 + 44.1348480 10.0549010 18.6036890 44.5744390 10.7973340 18.1892280 + 44.0735370 10.2975580 19.5275850 39.6099450 11.0794840 29.5056910 + 39.5814880 11.4837790 28.6385340 39.4464420 10.1505200 29.3428510 + 36.1252380 3.7355550 17.4074030 36.0049980 4.4617640 16.7955300 + 35.8153270 2.9658460 16.9301940 33.7637750 6.9070690 23.2142670 + 33.8418170 7.0419460 22.2698390 34.3779430 6.1986580 23.4070790 + 35.0085380 8.6070880 19.6248850 34.6013460 8.7485470 18.7702450 + 35.8998390 8.3231040 19.4220060 44.8264260 12.7562790 26.5315900 + 45.3408930 12.6670800 27.3338330 43.9833340 13.1022490 26.8243810 + 39.2807040 12.8216660 17.7371520 39.1049520 11.9052200 17.5239320 + 38.4262780 13.1803950 17.9769320 33.8197270 7.9484860 25.7537130 + 33.9828310 7.4790220 24.9356500 34.2849720 7.4408420 26.4185970 + 44.9740070 2.6669840 29.6228470 45.2993480 1.8333590 29.2830700 + 45.7620400 3.1898360 29.7706800 38.3830260 2.2024190 18.5178950 + 38.1571180 1.9861360 19.4225570 37.6022790 2.6352650 18.1724920 + 45.6128020 2.2087560 17.1169600 45.0136910 2.9323360 16.9333220 + 46.1607630 2.1464340 16.3346050 40.8229470 3.1009770 29.1839220 + 40.7273070 2.1604500 29.0339620 41.6661450 3.3224840 28.7887290 + 44.8048030 3.4356850 23.2423660 44.0729150 3.9443660 23.5913760 + 44.4072370 2.6186830 22.9412440 40.3167070 3.4224270 14.0366210 + 39.7483970 2.9742520 13.4102120 41.0256070 3.7817050 13.5031360 + 35.3936250 7.3236290 27.9132940 35.0091040 6.6829960 28.5115900 + 35.7048440 8.0272410 28.4827670 41.5433390 4.1712830 23.3941560 + 41.9103520 3.6971400 24.1402900 41.3538450 5.0454400 23.7349900 + 39.3332760 3.2121470 25.7125770 39.0289830 4.0913450 25.9376130 + 40.2879220 3.2721260 25.7483210 37.8614550 7.4182460 16.3092620 + 37.0876810 6.8780080 16.1491340 38.5909180 6.8989070 15.9710380 + 44.0021330 6.4856880 27.9888010 43.9358640 5.5652550 27.7345600 + 43.3726470 6.5832320 28.7032650 37.9051950 7.0862840 19.9471430 + 38.4230620 6.2831100 19.8928320 37.4535970 7.0241980 20.7888260 + 42.7921450 8.3529120 15.2198730 43.1337150 9.0971350 14.7242050 + 41.9634160 8.6660240 15.5823560 35.3896490 4.0524210 26.8597130 + 35.0311430 4.7178060 27.4470470 35.0951050 3.2207760 27.2309750 + 38.5909610 4.5108450 29.7436680 38.2909750 4.6565630 28.8464500 + 39.3620850 3.9513740 29.6510070 43.9338060 9.3077450 27.7391810 + 43.9482600 8.3758410 27.5210720 43.2263160 9.3937210 28.3781580 + 45.6748860 7.6744960 20.5844240 46.0272680 7.0773090 19.9245610 + 44.7911190 7.3489190 20.7552490 41.7612140 8.4342650 17.9914650 + 42.4483270 8.9811860 18.3722240 40.9744560 8.9783380 18.0264260 + 33.9004540 4.0515470 13.4831730 34.7699390 4.3340270 13.7667650 + 33.4094860 4.8651340 13.3680540 41.0639350 5.4388680 17.6040010 + 41.5202130 6.2493930 17.8300200 40.7127560 5.1211820 18.4358500 + 43.3671960 10.9495020 24.8332310 44.0114180 11.1554400 25.5105730 + 43.7301400 10.1883420 24.3803160 44.6404040 8.9527370 23.5509760 + 45.2826270 8.2520530 23.6641930 45.1653390 9.7325810 23.3706650 + 34.2675790 13.2642850 14.0493360 34.6273430 13.8632190 13.3950630 + 34.1268130 13.8102740 14.8228390 34.2517650 11.5297710 28.5235760 + 34.3608770 10.5892450 28.3831150 33.5998210 11.7952460 27.8749490 + 42.2430240 9.8013600 29.9233880 41.9227110 9.0822840 30.4679570 + 41.5688600 10.4768670 29.9969940 40.2844410 10.6474050 14.8667030 + 40.2754510 11.3803740 14.2511540 39.3642770 10.4005630 14.9593990 + 35.8851050 5.8688940 15.6113790 35.2779000 6.6087840 15.6209090 + 36.3600400 5.9588300 14.7851990 43.2704010 10.7102290 13.5292220 + 43.3715990 10.5066280 12.5994200 42.3705750 10.4560570 13.7340000 + 42.4185830 2.6879350 25.5108650 42.9171080 3.1625170 26.1760500 + 42.5608780 1.7642870 25.7178680 41.9122120 13.2288610 18.2239890 + 42.1663620 13.1910000 17.3019260 40.9634600 13.1021940 18.2168140 + 37.8956340 5.8300090 13.3602360 38.6619610 5.7181450 13.9227790 + 37.9731030 5.1338060 12.7079130 36.5903100 3.2625160 14.0435250 + 36.6706690 2.3152670 14.1552650 37.4822850 3.5932040 14.1495910 + 37.3917810 13.4120550 21.1469790 38.1280290 12.8636010 21.4178360 + 37.7758730 14.2776560 21.0075780 34.2763290 9.4794120 17.0211300 + 33.3503070 9.7215260 17.0116710 34.7419720 10.3068380 16.8996050 + 36.3976090 12.5966620 30.3355370 37.1988820 12.9178670 30.7490770 + 35.8827910 12.2362200 31.0575280 40.5020120 12.5850860 12.9695360 + 41.2948730 12.8739690 12.5177150 39.9824470 12.1543030 12.2907840 + 45.2340720 8.7046490 30.2830780 44.6278880 8.7278090 29.5426530 + 44.9294830 7.9729530 30.8198030 34.1173900 5.0840080 29.2791420 + 34.6212920 4.5047360 29.8507650 33.3781320 5.3680310 29.8167790 + 41.0197520 7.8054270 12.8337710 40.9148160 7.1906620 13.5599090 + 40.8521740 7.2820160 12.0500720 41.1711840 6.4911070 28.8126940 + 40.4057510 7.0596070 28.7281610 41.3527800 6.1987280 27.9195170 + 44.2600250 6.8674300 13.4379700 43.7110350 7.3143600 14.0822440 + 44.8819510 6.3623550 13.9617370 36.1496980 3.2269670 30.1741490 + 36.1902320 2.9283540 31.0826720 37.0042480 3.6277280 30.0149010 + 39.9275370 5.8265220 15.3345000 40.3491790 5.6605090 16.1776390 + 40.0526210 5.0165450 14.8400140 42.4403010 4.8502830 12.5822100 + 42.9608670 4.1351850 12.2163250 43.0871410 5.4888700 12.8822610 + 41.7496080 6.2251710 25.8753100 42.1684190 7.0684440 25.7029340 + 40.8304710 6.3623750 25.6459880 44.0859980 3.9567890 27.2590940 + 44.2056190 3.3609030 27.9985780 44.9453980 3.9937580 26.8392240 + 39.6003500 12.5304720 26.9910830 39.0624590 13.2550780 26.6719530 + 39.8537460 12.0535060 26.2008170 42.4565710 13.7655930 27.2497480 + 42.3824410 14.6691070 27.5569850 41.5544550 13.4467830 27.2219550 + 43.0051040 12.9314440 14.8723840 43.9001830 13.2699410 14.8942600 + 43.0368670 12.2093850 14.2448120 36.6447200 8.3041490 13.1010840 + 37.0822070 8.8471160 13.7568420 37.1294930 7.4788440 13.1107180 + 33.8593000 11.0930520 20.5531100 34.1896010 10.2251580 20.3209740 + 34.2884000 11.2989040 21.3836060 38.4554920 9.4239530 18.2133070 + 38.1550460 9.3004500 19.1136980 38.3492410 8.5648120 17.8048800 + 34.3483210 11.9601110 23.2912730 33.9114200 12.1401910 24.1236880 + 34.9160890 12.7175730 23.1494450 34.1807640 4.4721340 19.6501610 + 33.5256480 4.2032980 19.0061310 35.0185590 4.3625820 19.2003590 + 35.2183570 4.8573910 24.1904950 35.5856610 4.7701310 25.0700970 + 34.6494390 4.0940460 24.0911810 34.7699570 1.7683000 28.0963370 + 33.8755620 1.7349760 28.4357080 35.3097120 1.9669790 28.8614620 + 36.6335650 9.3706600 29.3525100 36.5905280 8.9999510 30.2339560 + 36.7646660 10.3084170 29.4926920 40.3341680 10.9266190 24.9534820 + 40.0933040 11.1940750 24.0665340 41.2744320 11.0971920 25.0085680 + 36.4723680 12.3168850 26.4722880 35.8784000 12.1853550 27.2112920 + 36.4647520 11.4806990 26.0064980 36.1035910 9.6827230 25.4230920 + 35.3769970 9.0632520 25.3556870 36.1645060 10.0767840 24.5529000 + 39.7081010 11.8972230 22.2080330 40.2246030 11.2859590 21.6828590 + 40.3578390 12.4001010 22.6991340 42.4476510 12.7880720 23.0349310 + 42.7354320 12.5335020 22.1582320 42.9599730 12.2358080 23.6254880 + 34.3865910 13.0001620 18.6327680 34.2187950 12.3672300 19.3309570 + 33.5200420 13.2061020 18.2821870 35.9928610 11.6934850 16.0777820 + 35.4676230 12.0742880 15.3739780 35.9173190 12.3185620 16.7987530 + 42.5148870 13.7096820 30.4017510 43.4416180 13.4741090 30.4453470 + 42.4999300 14.5368820 29.9203540 38.5921580 13.6417230 14.9527070 + 39.3240400 13.3576510 14.4050960 38.8515250 13.4030510 15.8426450 + 37.7536370 9.7581960 14.9573400 37.1245250 10.2267060 15.5059230 + 37.8684200 8.9131180 15.3919590 43.3404130 5.5866640 2.9883870 + 42.5646230 5.1067080 3.2782440 43.9917060 4.9072290 2.8140030 + 37.3569960 5.8986450 3.8659630 36.5254840 5.6435160 4.2656140 + 37.9650940 5.9697220 4.6017550 37.3371220 9.9326540 4.0617650 + 37.6399260 9.0424280 3.8827870 38.0814810 10.4896760 3.8339900 + 33.7294920 3.4593990 3.5341720 34.3011030 2.6916190 3.5345360 + 33.7296460 3.7582750 2.6248330 42.7813120 8.2623830 2.9954030 + 42.7121400 7.3213770 2.8343160 43.5432980 8.3525240 3.5676600 + 39.3169980 6.6899950 5.4602500 38.9839360 7.3168870 6.1023570 + 39.4936660 7.2161830 4.6804170 38.5289080 8.6580750 7.2751680 + 39.1463080 9.3331830 6.9936130 37.6682200 9.0668730 7.1839180 + 39.8929450 8.5278130 3.2963100 39.5957740 7.9223600 2.6170880 + 40.8429270 8.5655440 3.1852460 38.9847880 8.2659820 9.9470900 + 38.0876410 8.4899790 10.1944300 39.0100750 8.3894760 8.9982300 + 37.8119100 5.1373140 8.5228270 37.6726870 6.0095940 8.8915670 + 36.9300460 4.7945950 8.3776210 39.6099450 11.0794840 10.7313420 + 39.5814880 11.4837790 9.8641850 39.4464420 10.1505200 10.5685020 + 33.7637750 6.9070690 4.4399180 33.8418170 7.0419460 3.4954900 + 34.3779430 6.1986580 4.6327300 44.8264260 12.7562790 7.7572410 + 45.3408930 12.6670800 8.5594840 43.9833340 13.1022490 8.0500320 + 33.8197270 7.9484860 6.9793640 33.9828310 7.4790220 6.1613010 + 34.2849720 7.4408420 7.6442480 44.9740070 2.6669840 10.8484980 + 45.2993480 1.8333590 10.5087210 45.7620400 3.1898360 10.9963310 + 40.8229470 3.1009770 10.4095730 40.7273070 2.1604500 10.2596130 + 41.6661450 3.3224840 10.0143800 44.8048030 3.4356850 4.4680170 + 44.0729150 3.9443660 4.8170270 44.4072370 2.6186830 4.1668950 + 35.3936250 7.3236290 9.1389450 35.0091040 6.6829960 9.7372410 + 35.7048440 8.0272410 9.7084180 41.5433390 4.1712830 4.6198070 + 41.9103520 3.6971400 5.3659410 41.3538450 5.0454400 4.9606410 + 39.3332760 3.2121470 6.9382280 39.0289830 4.0913450 7.1632640 + 40.2879220 3.2721260 6.9739720 44.0021330 6.4856880 9.2144520 + 43.9358640 5.5652550 8.9602110 43.3726470 6.5832320 9.9289160 + 35.3896490 4.0524210 8.0853640 35.0311430 4.7178060 8.6726980 + 35.0951050 3.2207760 8.4566260 38.5909610 4.5108450 10.9693190 + 38.2909750 4.6565630 10.0721010 39.3620850 3.9513740 10.8766580 + 43.9338060 9.3077450 8.9648320 43.9482600 8.3758410 8.7467230 + 43.2263160 9.3937210 9.6038090 43.3671960 10.9495020 6.0588820 + 44.0114180 11.1554400 6.7362240 43.7301400 10.1883420 5.6059670 + 44.6404040 8.9527370 4.7766270 45.2826270 8.2520530 4.8898440 + 45.1653390 9.7325810 4.5963160 34.2517650 11.5297710 9.7492270 + 34.3608770 10.5892450 9.6087660 33.5998210 11.7952460 9.1006000 + 42.2430240 9.8013600 11.1490390 41.9227110 9.0822840 11.6936080 + 41.5688600 10.4768670 11.2226450 42.4185830 2.6879350 6.7365160 + 42.9171080 3.1625170 7.4017010 42.5608780 1.7642870 6.9435190 + 37.3917810 13.4120550 2.3726300 38.1280290 12.8636010 2.6434870 + 37.7758730 14.2776560 2.2332290 36.3976090 12.5966620 11.5611880 + 37.1988820 12.9178670 11.9747280 35.8827910 12.2362200 12.2831790 + 45.2340720 8.7046490 11.5087290 44.6278880 8.7278090 10.7683040 + 44.9294830 7.9729530 12.0454540 34.1173900 5.0840080 10.5047930 + 34.6212920 4.5047360 11.0764160 33.3781320 5.3680310 11.0424300 + 41.1711840 6.4911070 10.0383450 40.4057510 7.0596070 9.9538120 + 41.3527800 6.1987280 9.1451680 36.1496980 3.2269670 11.3998000 + 36.1902320 2.9283540 12.3083230 37.0042480 3.6277280 11.2405520 + 41.7496080 6.2251710 7.1009610 42.1684190 7.0684440 6.9285850 + 40.8304710 6.3623750 6.8716390 44.0859980 3.9567890 8.4847450 + 44.2056190 3.3609030 9.2242290 44.9453980 3.9937580 8.0648750 + 39.6003500 12.5304720 8.2167340 39.0624590 13.2550780 7.8976040 + 39.8537460 12.0535060 7.4264680 42.4565710 13.7655930 8.4753990 + 42.3824410 14.6691070 8.7826360 41.5544550 13.4467830 8.4476060 + 33.8593000 11.0930520 1.7787610 34.1896010 10.2251580 1.5466250 + 34.2884000 11.2989040 2.6092570 34.3483210 11.9601110 4.5169240 + 33.9114200 12.1401910 5.3493390 34.9160890 12.7175730 4.3750960 + 35.2183570 4.8573910 5.4161460 35.5856610 4.7701310 6.2957480 + 34.6494390 4.0940460 5.3168320 34.7699570 1.7683000 9.3219880 + 33.8755620 1.7349760 9.6613590 35.3097120 1.9669790 10.0871130 + 36.6335650 9.3706600 10.5781610 36.5905280 8.9999510 11.4596070 + 36.7646660 10.3084170 10.7183430 40.3341680 10.9266190 6.1791330 + 40.0933040 11.1940750 5.2921850 41.2744320 11.0971920 6.2342190 + 36.4723680 12.3168850 7.6979390 35.8784000 12.1853550 8.4369430 + 36.4647520 11.4806990 7.2321490 36.1035910 9.6827230 6.6487430 + 35.3769970 9.0632520 6.5813380 36.1645060 10.0767840 5.7785510 + 39.7081010 11.8972230 3.4336840 40.2246030 11.2859590 2.9085100 + 40.3578390 12.4001010 3.9247850 42.4476510 12.7880720 4.2605820 + 42.7354320 12.5335020 3.3838830 42.9599730 12.2358080 4.8511390 + 42.5148870 13.7096820 11.6274020 43.4416180 13.4741090 11.6709980 + 42.4999300 14.5368820 11.1460050 26.4342600 41.3574600 57.4305070 + 26.3536650 40.4429210 57.1596780 26.0207020 41.8541670 56.7244780 + 24.5660640 43.1353620 59.3114340 23.7902740 42.6554060 59.6012910 + 25.2173570 42.4559270 59.1370500 16.9918420 38.4075320 53.9732490 + 16.1035120 38.7491290 53.8712370 17.2759610 38.2075640 53.0813320 + 14.9551430 41.0080970 59.8572190 15.5267540 40.2403170 59.8575830 + 14.9552970 41.3069730 58.9478800 25.0374800 38.6181190 59.5453430 + 25.4139620 37.7453070 59.4327100 24.9394310 38.9539890 58.6543870 + 19.1679810 36.9906820 55.0070870 19.2746560 37.8910550 55.3139630 + 18.2572170 36.9424790 54.7165520 28.8198920 36.1131630 56.4781770 + 29.6408540 35.6228200 56.5207250 28.8533000 36.7029290 57.2313610 + 21.0087540 39.9593190 59.3396050 21.5165760 40.4574160 59.9801070 + 21.5400780 39.1828390 59.1635410 29.0560400 38.0532010 59.2509310 + 28.3515970 38.3416900 59.8312420 29.4172560 38.8632120 58.8908870 + 32.1247320 37.4986800 59.6418520 31.1772230 37.5325780 59.7733950 + 32.4497310 38.3125750 60.0267880 22.6566860 33.7983980 57.9374510 + 22.9641840 33.2430870 57.2210010 21.7267560 33.9328440 57.7547500 + 25.0447620 41.8632810 54.6734630 24.1176900 41.7970190 54.9023100 + 25.1972440 42.8012940 54.5589870 25.0316700 38.1349810 51.6701790 + 24.0920370 38.2963770 51.7554250 25.3499960 38.8535490 51.1237780 + 29.0744910 43.4253110 55.1769880 28.4557330 43.0872660 54.5296180 + 29.0569360 42.7812870 55.8849070 20.6504260 42.3897550 57.4554360 + 20.2461260 41.6774800 56.9600260 20.7367380 42.0450790 58.3442400 + 27.2509610 42.6639920 52.1842630 27.6902890 41.8262350 52.0380450 + 27.9638030 43.2969320 52.2706770 30.8326750 33.9182730 50.4983670 + 30.5199410 34.0109560 51.3982740 31.5939220 34.4963760 50.4481100 + 17.3508890 41.2842530 54.9561010 17.2306490 42.0104620 54.3442280 + 17.0409780 40.5145440 54.4788920 19.8172550 34.6277600 58.3384680 + 19.3740700 35.4087140 58.0069200 20.3757540 34.9507490 59.0455620 + 22.9331370 34.2488300 53.2190510 22.3085550 34.2448170 53.9443820 + 22.8461490 33.3819260 52.8226480 21.8548450 35.1724930 60.1974280 + 22.1520780 36.0787760 60.1166300 22.4034010 34.6843710 59.5833850 + 19.6086770 39.7511170 56.0665930 19.3827690 39.5348340 56.9712550 + 18.8279300 40.1839630 55.7211900 26.8384530 39.7574540 54.6656580 + 26.2393420 40.4810340 54.4820200 27.3864140 39.6951320 53.8833030 + 25.4449400 38.3938080 56.6959860 25.8378970 38.7110280 55.8828550 + 25.8066250 37.5149960 56.8104380 14.4813570 34.9838880 58.9190060 + 14.1926620 35.5541740 59.6315040 15.2259330 34.5043330 59.2821290 + 14.6683800 38.9259000 50.1292780 14.5858470 39.8689760 50.2707770 + 14.3166860 38.7833910 49.2505130 22.4681930 37.6598030 59.1963130 + 22.4717990 37.2187980 58.3467670 23.3633050 37.9815360 59.3034950 + 18.3184310 37.5424520 58.1557340 17.9784360 38.0199750 58.9124390 + 17.5561630 37.0889640 57.7958440 22.5302080 38.6610110 52.1869890 + 22.6514900 38.6196590 53.1355710 22.1450590 39.5234260 52.0316620 + 21.5423580 40.9711250 51.5853190 20.9740480 40.5229500 50.9589100 + 22.2512580 41.3304030 51.0518340 15.6330390 36.4643500 57.0722010 + 15.3477310 36.0999170 57.9100630 15.5709250 35.7323960 56.4585150 + 19.0871060 44.9669440 53.8579600 18.3133320 44.4267060 53.6978320 + 19.8165690 44.4476050 53.5197360 29.8459040 43.9634800 59.6505990 + 30.5658160 44.4590090 59.2602100 29.6440860 43.2852690 59.0059860 + 25.3068980 35.3572760 53.7935380 24.4933590 34.8585930 53.7180690 + 25.1130930 36.1971010 53.3771730 28.0217370 39.7292410 52.0897540 + 28.9096990 40.0409640 51.9148880 27.9922460 38.8564660 51.6978120 + 19.1308460 44.6349820 57.4958410 19.6487130 43.8318080 57.4415300 + 18.6792480 44.5728960 58.3375240 30.2931640 41.0404250 51.5577400 + 30.2095360 41.4718470 50.7073840 31.0125830 41.5002600 51.9904220 + 15.1261050 41.6002450 51.0318710 15.9955900 41.8827250 51.3154630 + 14.6351370 42.4138320 50.9167520 22.2895860 42.9875660 55.1526990 + 22.7458640 43.7980910 55.3787180 21.9384070 42.6698800 55.9845480 + 18.1907640 33.3313310 55.6249510 18.0622270 33.3231210 56.5734430 + 17.3669660 33.6696400 55.2740520 17.1107560 43.4175920 53.1600770 + 16.5035510 44.1574820 53.1696070 17.5856910 43.5075280 52.3338970 + 30.0502380 36.5383680 53.6445220 29.4215540 36.6429350 52.9303450 + 29.5554300 36.7580460 54.4339100 22.0186410 38.8169630 55.0603100 + 21.3102560 39.2855970 55.5016710 22.3030890 38.1591640 55.6948290 + 26.0501840 35.5420290 56.4998890 25.9269620 35.5606420 55.5508400 + 26.9986400 35.5899230 56.6197290 20.2221430 37.1254710 52.4353810 + 21.0711960 37.5624860 52.3694000 19.8552700 37.4374970 53.2625870 + 29.1431210 41.6967470 57.3485380 28.2021350 41.7117700 57.5233070 + 29.4575280 40.9103430 57.7945680 19.1212850 43.3787070 50.9089340 + 19.8876120 43.2668430 51.4714770 19.1987540 42.6825040 50.2566110 + 17.8159610 40.8112140 51.5922230 17.8963200 39.8639650 51.7039630 + 18.7079360 41.1419020 51.6982890 25.4856760 44.4161280 50.9866680 + 24.9366860 44.8630580 51.6309420 26.1076020 43.9110530 51.5104350 + 21.1531880 43.3752200 52.8831980 21.5748300 43.2092070 53.7263370 + 21.2782720 42.5652430 52.3887120 23.6659520 42.3989810 50.1309080 + 24.1865180 41.6838830 49.7650230 24.3127920 43.0375680 50.4309590 + 20.0490780 39.4485430 49.8290140 19.8479840 38.5852790 50.1903480 + 19.8782830 39.3618790 48.8911740 27.5279090 34.2593660 52.3577020 + 27.8081380 33.4161560 52.7136440 26.7544820 34.4916770 52.8715770 + 18.8473580 36.5486050 49.8168020 19.1499480 36.5553480 48.9087170 + 19.5868170 36.1983910 50.3135680 22.0658510 35.4920670 50.8024220 + 21.7180510 34.8144660 50.2226670 22.2671280 35.0310180 51.6167610 + 31.9059810 43.4970390 52.9680930 32.6678720 44.0667040 53.0740620 + 31.9214180 42.9297590 53.7389240 15.4064150 42.0208320 57.1988590 + 14.7512990 41.7519960 56.5548290 16.2442100 41.9112800 56.7490570 + 31.9578980 43.7904760 50.1253450 32.2327820 44.6983640 49.9972670 + 31.7689720 43.7267290 51.0615440 28.3554590 36.8149610 51.4207080 + 28.7739470 36.6280590 50.5803740 28.0490650 35.9628660 51.7310010 + 31.8544320 41.7273750 55.1182880 31.4787920 40.9601680 54.6864170 + 31.1247440 42.1096450 55.6057810 14.6202230 39.2307250 53.1413920 + 13.7166310 39.4937450 52.9665580 15.1042850 39.5018420 52.3613880 + 31.1295280 39.9531240 58.4190120 31.6532760 39.4593890 57.7880290 + 31.7154700 40.0881600 59.1637690 17.1629440 38.2872790 51.0508300 + 17.8721140 37.8656010 50.5655580 16.4469380 38.3548020 50.4191650 + 16.8103600 34.3412120 50.0910950 17.5331730 34.8821060 50.4092170 + 17.0828120 34.0675540 49.2152490 30.6195250 39.2104590 54.3582530 + 31.1154370 38.9775460 55.1431410 30.4211320 38.3716430 53.9420170 + 32.0482410 37.8465540 56.8920210 31.9381690 37.6921580 57.8302480 + 32.8090000 37.3186480 56.6495620 32.9372680 35.6773460 50.1326350 + 33.8621990 35.5454640 49.9244640 32.9148470 35.7566280 51.0862800 + 33.0111170 36.4484120 52.7583060 32.2162670 36.3829240 53.2875970 + 33.2154450 37.3834760 52.7468410 29.4431100 34.7781000 59.2081890 + 29.8839190 34.7226100 58.3603490 29.1738690 35.6939010 59.2792070 + 31.3069670 34.4096240 57.2190710 31.2458070 33.4657460 57.0721730 + 32.0861700 34.5176330 57.7644170 16.2350440 34.3805380 53.6846520 + 16.9929800 34.4934260 53.1110550 15.7727610 35.2174580 53.6389950 + 22.7764250 36.4944650 56.6748830 21.9638760 36.1201540 56.3344710 + 23.2805890 35.7389730 56.9770020 27.2789230 33.1587100 57.9131900 + 27.8818600 33.7307310 58.3880420 26.5382220 33.7226540 57.6905800 + 30.4223830 33.5608660 53.1872180 30.6174460 34.4592110 53.4539610 + 29.6353700 33.3295740 53.6805130 18.6075590 34.9069430 52.2248490 + 19.1368350 34.1199230 52.0956440 19.2403910 35.5860620 52.4584020 + 20.8013430 34.6444570 55.2793880 20.1716170 33.9431880 55.4464010 + 20.2618570 35.4048700 55.0627040 26.4342600 41.3574600 38.6561580 + 26.3536650 40.4429210 38.3853290 26.0207020 41.8541670 37.9501290 + 24.5660640 43.1353620 40.5370850 23.7902740 42.6554060 40.8269420 + 25.2173570 42.4559270 40.3627010 18.5826470 43.4473430 41.4146610 + 17.7511350 43.1922140 41.8143120 19.1907450 43.5184200 42.1504530 + 16.9918420 38.4075320 35.1989000 16.1035120 38.7491290 35.0968880 + 17.2759610 38.2075640 34.3069830 14.9551430 41.0080970 41.0828700 + 15.5267540 40.2403170 41.0832340 14.9552970 41.3069730 40.1735310 + 16.1976300 36.4165330 42.8697630 16.0179140 35.5191080 43.1500390 + 15.7956380 36.9637200 43.5444580 25.0374800 38.6181190 40.7709940 + 25.4139620 37.7453070 40.6583610 24.9394310 38.9539890 39.8800380 + 19.1679810 36.9906820 36.2327380 19.2746560 37.8910550 36.5396140 + 18.2572170 36.9424790 35.9422030 28.8198920 36.1131630 37.7038280 + 29.6408540 35.6228200 37.7463760 28.8533000 36.7029290 38.4570120 + 16.8162970 38.9125830 41.4779970 17.4973080 39.1764200 42.0967370 + 16.5011020 38.0726700 41.8117980 21.0087540 39.9593190 40.5652560 + 21.5165760 40.4574160 41.2057580 21.5400780 39.1828390 40.3891920 + 33.1098470 38.1298380 44.2681910 32.4050640 38.5180090 43.7497020 + 33.3756390 38.8248670 44.8702840 19.2923640 34.5991750 44.8315980 + 19.2942080 35.1164140 44.0261880 18.4627950 34.1221930 44.8085910 + 20.5426490 44.2386930 43.0089480 20.2095870 44.8655850 43.6510550 + 20.7193170 44.7648810 42.2291150 29.0560400 38.0532010 40.4765820 + 28.3515970 38.3416900 41.0568930 29.4172560 38.8632120 40.1165380 + 18.9738970 36.3101710 42.8386430 19.3155780 37.1543760 42.5440300 + 18.0354780 36.4585450 42.9551770 32.1247320 37.4986800 40.8675030 + 31.1772230 37.5325780 40.9990460 32.4497310 38.3125750 41.2524390 + 27.6067360 44.4181110 42.7821090 28.0236150 44.2041220 41.9474550 + 28.3307180 44.6753900 43.3529710 25.0447620 41.8632810 35.8991140 + 24.1176900 41.7970190 36.1279610 25.1972440 42.8012940 35.7846380 + 25.0316700 38.1349810 32.8958300 24.0920370 38.2963770 32.9810760 + 25.3499960 38.8535490 32.3494290 31.5529460 42.8168330 42.8737330 + 30.7248090 42.8861420 42.3987460 32.1479940 43.4022640 42.4053160 + 29.0744910 43.4253110 36.4026390 28.4557330 43.0872660 35.7552690 + 29.0569360 42.7812870 37.1105580 28.5171470 39.6037650 43.8192200 + 28.1042650 40.4291360 44.0732190 27.7847420 39.0182690 43.6268560 + 20.6504260 42.3897550 38.6810870 20.2461260 41.6774800 38.1856770 + 20.7367380 42.0450790 39.5698910 19.3632880 39.1640760 42.4609910 + 19.9147470 39.2736100 41.6863160 19.8776390 39.5378360 43.1765140 + 27.2509610 42.6639920 33.4099140 27.6902890 41.8262350 33.2636960 + 27.9638030 43.2969320 33.4963280 19.0375610 42.6860120 46.0715250 + 18.8983380 43.5582920 46.4402650 18.1556970 42.3432930 45.9263190 + 17.3508890 41.2842530 36.1817520 17.2306490 42.0104620 35.5698790 + 17.0409780 40.5145440 35.7045430 14.9894260 44.4557670 41.9886160 + 15.0674680 44.5906440 41.0441880 15.6035940 43.7473560 42.1814280 + 32.0428040 38.6554230 47.7014320 31.4272310 39.1633900 47.1729780 + 31.7224460 37.7552560 47.6440260 19.8172550 34.6277600 39.5641190 + 19.3740700 35.4087140 39.2325710 20.3757540 34.9507490 40.2712130 + 24.1042360 37.4946120 45.1676510 23.6421730 37.7029140 45.9796450 + 23.7020470 36.6805470 44.8647180 29.1046870 38.7155070 46.2973170 + 28.2540460 38.4160820 46.6182240 28.9448660 38.9597080 45.3856990 + 26.1996580 40.2156820 48.3971960 26.5249990 39.3820570 48.0574190 + 26.9876910 40.7385340 48.5450290 19.6086770 39.7511170 37.2922440 + 19.3827690 39.5348340 38.1969060 18.8279300 40.1839630 36.9468410 + 26.8384530 39.7574540 35.8913090 26.2393420 40.4810340 35.7076710 + 27.3864140 39.6951320 35.1089540 22.0485980 40.6496750 47.9582710 + 21.9529580 39.7091480 47.8083110 22.8917960 40.8711820 47.5630780 + 25.4449400 38.3938080 37.9216370 25.8378970 38.7110280 37.1085060 + 25.8066250 37.5149960 38.0360890 17.1796520 37.0610420 46.1116490 + 16.7859910 37.9085630 46.3189270 16.4914920 36.4236790 46.3025130 + 23.7541570 37.1445390 49.1813230 23.0639890 36.9517590 49.8159320 + 24.4973870 37.4280030 49.7137530 14.4813570 34.9838880 40.1446570 + 14.1926620 35.5541740 40.8571550 15.2259330 34.5043330 40.5077800 + 14.6683800 38.9259000 31.3549290 14.5858470 39.8689760 31.4964280 + 14.3166860 38.7833910 30.4761640 26.0304540 40.9843830 42.0167150 + 25.2985660 41.4930640 42.3657250 25.6328880 40.1673810 41.7155930 + 22.4681930 37.6598030 40.4219640 22.4717990 37.2187980 39.5724180 + 23.3633050 37.9815360 40.5291460 18.3184310 37.5424520 39.3813850 + 17.9784360 38.0199750 40.1380900 17.5561630 37.0889640 39.0214950 + 22.5302080 38.6610110 33.4126400 22.6514900 38.6196590 34.3612220 + 22.1450590 39.5234260 33.2573130 26.4930450 36.4377510 41.4290090 + 26.5103190 36.8886160 42.2731940 26.2446030 35.5383150 41.6423530 + 21.5423580 40.9711250 32.8109700 20.9740480 40.5229500 32.1845610 + 22.2512580 41.3304030 32.2774850 29.9201200 33.8509690 47.2676470 + 30.2446970 33.1199350 47.7934450 29.9557710 33.5323330 46.3657460 + 22.7689900 41.7199810 42.1685050 23.1360030 41.2458380 42.9146390 + 22.5794960 42.5941380 42.5093390 15.6330390 36.4643500 38.2978520 + 15.3477310 36.0999170 39.1357140 15.5709250 35.7323960 37.6841660 + 20.5589270 40.7608450 44.4869260 20.2546340 41.6400430 44.7119620 + 21.5135730 40.8208240 44.5226700 19.0871060 44.9669440 35.0836110 + 18.3133320 44.4267060 34.9234830 19.8165690 44.4476050 34.7453870 + 29.8459040 43.9634800 40.8762500 30.5658160 44.4590090 40.4858610 + 29.6440860 43.2852690 40.2316370 25.3068980 35.3572760 35.0191890 + 24.4933590 34.8585930 34.9437200 25.1130930 36.1971010 34.6028240 + 25.2277840 44.0343860 46.7631500 25.1615150 43.1139530 46.5089090 + 24.5982980 44.1319300 47.4776140 28.0217370 39.7292410 33.3154050 + 28.9096990 40.0409640 33.1405390 27.9922460 38.8564660 32.9234630 + 19.1308460 44.6349820 38.7214920 19.6487130 43.8318080 38.6671810 + 18.6792480 44.5728960 39.5631750 16.6153000 41.6011190 45.6340620 + 16.2567940 42.2665040 46.2213960 16.3207560 40.7694740 46.0053240 + 19.8166120 42.0595430 48.5180170 19.5166260 42.2052610 47.6207990 + 20.5877360 41.5000720 48.4253560 30.2931640 41.0404250 32.7833910 + 30.2095360 41.4718470 31.9330350 31.0125830 41.5002600 33.2160730 + 31.3705780 43.4971770 45.8603880 30.6453970 44.0900550 45.6633270 + 31.8981240 43.4895310 45.0617250 15.1261050 41.6002450 32.2575220 + 15.9955900 41.8827250 32.5411140 14.6351370 42.4138320 32.1424030 + 22.2895860 42.9875660 36.3783500 22.7458640 43.7980910 36.6043690 + 21.9384070 42.6698800 37.2101990 15.1901570 35.0904430 46.3112720 + 14.4760090 35.2901350 46.9165330 15.6096610 34.3144000 46.6827520 + 17.1107560 43.4175920 34.3857280 16.5035510 44.1574820 34.3952580 + 17.5856910 43.5075280 33.5595480 26.6840350 37.5826740 44.0614170 + 27.0521170 36.7621950 44.3893740 25.8238550 37.6428630 44.4769820 + 30.0502380 36.5383680 34.8701730 29.4215540 36.6429350 34.1559960 + 29.5554300 36.7580460 35.6595610 22.0186410 38.8169630 36.2859610 + 21.3102560 39.2855970 36.7273220 22.3030890 38.1591640 36.9204800 + 23.6442340 40.2366330 44.2852140 24.1427590 40.7112150 44.9503990 + 23.7865290 39.3129850 44.4922170 26.0501840 35.5420290 37.7255400 + 25.9269620 35.5606420 36.7764910 26.9986400 35.5899230 37.8453800 + 20.2221430 37.1254710 33.6610320 21.0711960 37.5624860 33.5950510 + 19.8552700 37.4374970 34.4882380 30.8509200 36.4534290 45.1280530 + 30.3482800 37.1939690 45.4674340 31.6665860 36.8418290 44.8117320 + 29.1431210 41.6967470 38.5741890 28.2021350 41.7117700 38.7489580 + 29.4575280 40.9103430 39.0202190 19.1212850 43.3787070 32.1345850 + 19.8876120 43.2668430 32.6971280 19.1987540 42.6825040 31.4822620 + 17.8159610 40.8112140 32.8178740 17.8963200 39.8639650 32.9296140 + 18.7079360 41.1419020 32.9239400 15.3430410 42.6327060 48.0534910 + 15.8469430 42.0534340 48.6251140 14.6037830 42.9167290 48.5911280 + 22.3968350 44.0398050 47.5870430 21.6314020 44.6083050 47.5025100 + 22.5784310 43.7474260 46.6938660 25.4856760 44.4161280 32.2123190 + 24.9366860 44.8630580 32.8565930 26.1076020 43.9110530 32.7360860 + 17.3753490 40.7756650 48.9484980 17.4158830 40.4770520 49.8570210 + 18.2298990 41.1764260 48.7892500 21.1531880 43.3752200 34.1088490 + 21.5748300 43.2092070 34.9519880 21.2782720 42.5652430 33.6143630 + 19.3159300 39.3548750 46.9159470 18.7855760 38.8639700 46.2882810 + 19.9847370 39.7832950 46.3817400 23.6659520 42.3989810 31.3565590 + 24.1865180 41.6838830 30.9906740 24.3127920 43.0375680 31.6566100 + 28.2137360 43.8218210 46.6800660 28.6278380 43.9763290 47.5291080 + 27.2788360 43.9473430 46.8426440 28.6859530 41.1614370 48.6839810 + 29.2680300 40.4066690 48.5960290 28.8621300 41.6921810 47.9071290 + 19.8031600 36.3211120 46.9956760 19.7088470 35.7031870 46.2707630 + 19.2228990 37.0477410 46.7686670 22.9752590 43.7738690 44.6496590 + 23.3940700 44.6171420 44.4772830 22.0561220 43.9110730 44.4203370 + 25.3116490 41.5054870 46.0334430 25.4312700 40.9096010 46.7729270 + 26.1710490 41.5424560 45.6135730 27.6504390 42.0592060 44.6096940 + 27.1239610 42.5834680 44.0062080 27.9935730 42.6919450 45.2406670 + 20.0490780 39.4485430 31.0546650 19.8479840 38.5852790 31.4159990 + 19.8782830 39.3618790 30.1168250 22.0785260 38.0476220 47.2910250 + 22.6684950 37.7392070 47.9788070 21.2605500 37.5755970 47.4470150 + 26.8978690 37.6642030 47.5243270 26.2094210 37.0023570 47.4593260 + 27.6184710 37.2180300 47.9691730 18.8473580 36.5486050 31.0424530 + 19.1499480 36.5553480 30.1343680 19.5868170 36.1983910 31.5392190 + 22.0658510 35.4920670 32.0280730 21.7180510 34.8144660 31.4483180 + 22.2671280 35.0310180 32.8424120 31.9059810 43.4970390 34.1937440 + 32.6678720 44.0667040 34.2997130 31.9214180 42.9297590 34.9645750 + 15.4064150 42.0208320 38.4245100 14.7512990 41.7519960 37.7804800 + 16.2442100 41.9112800 37.9747080 31.9578980 43.7904760 31.3509960 + 32.2327820 44.6983640 31.2229180 31.7689720 43.7267290 32.2871950 + 28.3554590 36.8149610 32.6463590 28.7739470 36.6280590 31.8060250 + 28.0490650 35.9628660 32.9566520 31.8544320 41.7273750 36.3439390 + 31.4787920 40.9601680 35.9120680 31.1247440 42.1096450 36.8314320 + 16.4440080 42.4060890 42.9648440 16.8113120 42.3188290 43.8444460 + 15.8750900 41.6427440 42.8655300 31.2443940 40.8745270 45.9778910 + 31.0130030 40.6458020 45.0776860 31.5048490 41.7944820 45.9323800 + 15.9956080 39.3169980 46.8706860 15.1012130 39.2836740 47.2100570 + 16.5353630 39.5156770 47.6358110 29.6832010 36.1001700 48.7558610 + 30.5602190 36.1085100 49.1392610 29.6952850 35.3632540 48.1450960 + 14.6202230 39.2307250 34.3670430 13.7166310 39.4937450 34.1922090 + 15.1042850 39.5018420 33.5870390 31.1295280 39.9531240 39.6446630 + 31.6532760 39.4593890 39.0136800 31.7154700 40.0881600 40.3894200 + 31.3085000 40.0371110 43.1666180 30.3587710 40.0034650 43.2811170 + 31.4898010 40.9471220 42.9315950 17.1629440 38.2872790 32.2764810 + 17.8721140 37.8656010 31.7912090 16.4469380 38.3548020 31.6448160 + 16.8103600 34.3412120 31.3167460 17.5331730 34.8821060 31.6348680 + 17.0828120 34.0675540 30.4409000 30.6195250 39.2104590 35.5839040 + 31.1154370 38.9775460 36.3687920 30.4211320 38.3716430 35.1676680 + 16.4995790 33.5918310 41.2190080 17.1471980 33.0415690 40.7785240 + 16.9197630 33.8461460 42.0405890 32.0482410 37.8465540 38.1176720 + 31.9381690 37.6921580 39.0558990 32.8090000 37.3186480 37.8752130 + 30.3948130 33.7859670 44.5759720 31.0320350 34.3993810 44.9418910 + 30.5423020 33.8220330 43.6308950 32.9372680 35.6773460 31.3582860 + 33.8621990 35.5454640 31.1501150 32.9148470 35.7566280 32.3119310 + 33.0111170 36.4484120 33.9839570 32.2162670 36.3829240 34.5132480 + 33.2154450 37.3834760 33.9724920 16.2527790 33.7473980 43.9615400 + 15.9042610 34.2037800 44.7273580 15.9215490 32.8531110 44.0437830 + 23.7652610 34.9385860 47.4834820 23.7041500 35.5307690 48.2330230 + 24.7052990 34.8311820 47.3385080 26.4027170 34.5955920 47.1227110 + 27.0167580 34.9135210 46.4608190 26.9476730 34.1104510 47.7422970 + 16.9248430 33.2750180 47.2366170 17.4731420 33.0938230 46.4732280 + 16.9903740 32.4844290 47.7722480 28.0507190 35.3658930 44.8338120 + 27.7220550 34.5510690 44.4539850 28.9989490 35.3228740 44.7103810 + 29.4431100 34.7781000 40.4338400 29.8839190 34.7226100 39.5860000 + 29.1738690 35.6939010 40.5048580 31.3069670 34.4096240 38.4447220 + 31.2458070 33.4657460 38.2978240 32.0861700 34.5176330 38.9900680 + 16.2350440 34.3805380 34.9103030 16.9929800 34.4934260 34.3367060 + 15.7727610 35.2174580 34.8646460 22.7764250 36.4944650 37.9005340 + 21.9638760 36.1201540 37.5601220 23.2805890 35.7389730 38.2026530 + 20.9268990 33.9228550 48.9402880 20.6453260 34.4262150 48.1763700 + 21.3088690 33.1250300 48.5745010 27.5284450 33.3382130 49.5183350 + 27.4149900 33.6576740 50.4134870 28.3454190 33.7394640 49.2220630 + 26.4342600 41.3574600 19.8818090 26.3536650 40.4429210 19.6109800 + 26.0207020 41.8541670 19.1757800 24.5660640 43.1353620 21.7627360 + 23.7902740 42.6554060 22.0525930 25.2173570 42.4559270 21.5883520 + 18.5826470 43.4473430 22.6403120 17.7511350 43.1922140 23.0399630 + 19.1907450 43.5184200 23.3761040 16.9918420 38.4075320 16.4245510 + 16.1035120 38.7491290 16.3225390 17.2759610 38.2075640 15.5326340 + 14.9551430 41.0080970 22.3085210 15.5267540 40.2403170 22.3088850 + 14.9552970 41.3069730 21.3991820 16.1976300 36.4165330 24.0954140 + 16.0179140 35.5191080 24.3756900 15.7956380 36.9637200 24.7701090 + 25.0374800 38.6181190 21.9966450 25.4139620 37.7453070 21.8840120 + 24.9394310 38.9539890 21.1056890 19.1679810 36.9906820 17.4583890 + 19.2746560 37.8910550 17.7652650 18.2572170 36.9424790 17.1678540 + 28.8198920 36.1131630 18.9294790 29.6408540 35.6228200 18.9720270 + 28.8533000 36.7029290 19.6826630 16.8162970 38.9125830 22.7036480 + 17.4973080 39.1764200 23.3223880 16.5011020 38.0726700 23.0374490 + 21.0087540 39.9593190 21.7909070 21.5165760 40.4574160 22.4314090 + 21.5400780 39.1828390 21.6148430 33.1098470 38.1298380 25.4938420 + 32.4050640 38.5180090 24.9753530 33.3756390 38.8248670 26.0959350 + 19.2923640 34.5991750 26.0572490 19.2942080 35.1164140 25.2518390 + 18.4627950 34.1221930 26.0342420 20.5426490 44.2386930 24.2345990 + 20.2095870 44.8655850 24.8767060 20.7193170 44.7648810 23.4547660 + 29.0560400 38.0532010 21.7022330 28.3515970 38.3416900 22.2825440 + 29.4172560 38.8632120 21.3421890 18.9738970 36.3101710 24.0642940 + 19.3155780 37.1543760 23.7696810 18.0354780 36.4585450 24.1808280 + 32.1247320 37.4986800 22.0931540 31.1772230 37.5325780 22.2246970 + 32.4497310 38.3125750 22.4780900 22.6566860 33.7983980 20.3887530 + 22.9641840 33.2430870 19.6723030 21.7267560 33.9328440 20.2060520 + 27.6067360 44.4181110 24.0077600 28.0236150 44.2041220 23.1731060 + 28.3307180 44.6753900 24.5786220 25.0447620 41.8632810 17.1247650 + 24.1176900 41.7970190 17.3536120 25.1972440 42.8012940 17.0102890 + 25.0316700 38.1349810 14.1214810 24.0920370 38.2963770 14.2067270 + 25.3499960 38.8535490 13.5750800 31.5529460 42.8168330 24.0993840 + 30.7248090 42.8861420 23.6243970 32.1479940 43.4022640 23.6309670 + 29.0744910 43.4253110 17.6282900 28.4557330 43.0872660 16.9809200 + 29.0569360 42.7812870 18.3362090 28.5171470 39.6037650 25.0448710 + 28.1042650 40.4291360 25.2988700 27.7847420 39.0182690 24.8525070 + 20.6504260 42.3897550 19.9067380 20.2461260 41.6774800 19.4113280 + 20.7367380 42.0450790 20.7955420 19.3632880 39.1640760 23.6866420 + 19.9147470 39.2736100 22.9119670 19.8776390 39.5378360 24.4021650 + 27.2509610 42.6639920 14.6355650 27.6902890 41.8262350 14.4893470 + 27.9638030 43.2969320 14.7219790 19.0375610 42.6860120 27.2971760 + 18.8983380 43.5582920 27.6659160 18.1556970 42.3432930 27.1519700 + 30.8326750 33.9182730 12.9496690 30.5199410 34.0109560 13.8495760 + 31.5939220 34.4963760 12.8994120 17.3508890 41.2842530 17.4074030 + 17.2306490 42.0104620 16.7955300 17.0409780 40.5145440 16.9301940 + 14.9894260 44.4557670 23.2142670 15.0674680 44.5906440 22.2698390 + 15.6035940 43.7473560 23.4070790 32.0428040 38.6554230 28.9270830 + 31.4272310 39.1633900 28.3986290 31.7224460 37.7552560 28.8696770 + 19.8172550 34.6277600 20.7897700 19.3740700 35.4087140 20.4582220 + 20.3757540 34.9507490 21.4968640 24.1042360 37.4946120 26.3933020 + 23.6421730 37.7029140 27.2052960 23.7020470 36.6805470 26.0903690 + 29.1046870 38.7155070 27.5229680 28.2540460 38.4160820 27.8438750 + 28.9448660 38.9597080 26.6113500 26.1996580 40.2156820 29.6228470 + 26.5249990 39.3820570 29.2830700 26.9876910 40.7385340 29.7706800 + 22.9331370 34.2488300 15.6703530 22.3085550 34.2448170 16.3956840 + 22.8461490 33.3819260 15.2739500 21.8548450 35.1724930 22.6487300 + 22.1520780 36.0787760 22.5679320 22.4034010 34.6843710 22.0346870 + 19.6086770 39.7511170 18.5178950 19.3827690 39.5348340 19.4225570 + 18.8279300 40.1839630 18.1724920 26.8384530 39.7574540 17.1169600 + 26.2393420 40.4810340 16.9333220 27.3864140 39.6951320 16.3346050 + 22.0485980 40.6496750 29.1839220 21.9529580 39.7091480 29.0339620 + 22.8917960 40.8711820 28.7887290 25.4449400 38.3938080 19.1472880 + 25.8378970 38.7110280 18.3341570 25.8066250 37.5149960 19.2617400 + 17.1796520 37.0610420 27.3373000 16.7859910 37.9085630 27.5445780 + 16.4914920 36.4236790 27.5281640 23.7541570 37.1445390 30.4069740 + 23.0639890 36.9517590 31.0415830 24.4973870 37.4280030 30.9394040 + 14.4813570 34.9838880 21.3703080 14.1926620 35.5541740 22.0828060 + 15.2259330 34.5043330 21.7334310 14.6683800 38.9259000 12.5805800 + 14.5858470 39.8689760 12.7220790 14.3166860 38.7833910 11.7018150 + 26.0304540 40.9843830 23.2423660 25.2985660 41.4930640 23.5913760 + 25.6328880 40.1673810 22.9412440 22.4681930 37.6598030 21.6476150 + 22.4717990 37.2187980 20.7980690 23.3633050 37.9815360 21.7547970 + 18.3184310 37.5424520 20.6070360 17.9784360 38.0199750 21.3637410 + 17.5561630 37.0889640 20.2471460 22.5302080 38.6610110 14.6382910 + 22.6514900 38.6196590 15.5868730 22.1450590 39.5234260 14.4829640 + 26.4930450 36.4377510 22.6546600 26.5103190 36.8886160 23.4988450 + 26.2446030 35.5383150 22.8680040 21.5423580 40.9711250 14.0366210 + 20.9740480 40.5229500 13.4102120 22.2512580 41.3304030 13.5031360 + 22.7689900 41.7199810 23.3941560 23.1360030 41.2458380 24.1402900 + 22.5794960 42.5941380 23.7349900 15.6330390 36.4643500 19.5235030 + 15.3477310 36.0999170 20.3613650 15.5709250 35.7323960 18.9098170 + 20.5589270 40.7608450 25.7125770 20.2546340 41.6400430 25.9376130 + 21.5135730 40.8208240 25.7483210 19.0871060 44.9669440 16.3092620 + 18.3133320 44.4267060 16.1491340 19.8165690 44.4476050 15.9710380 + 29.8459040 43.9634800 22.1019010 30.5658160 44.4590090 21.7115120 + 29.6440860 43.2852690 21.4572880 25.2277840 44.0343860 27.9888010 + 25.1615150 43.1139530 27.7345600 24.5982980 44.1319300 28.7032650 + 28.0217370 39.7292410 14.5410560 28.9096990 40.0409640 14.3661900 + 27.9922460 38.8564660 14.1491140 19.1308460 44.6349820 19.9471430 + 19.6487130 43.8318080 19.8928320 18.6792480 44.5728960 20.7888260 + 16.6153000 41.6011190 26.8597130 16.2567940 42.2665040 27.4470470 + 16.3207560 40.7694740 27.2309750 19.8166120 42.0595430 29.7436680 + 19.5166260 42.2052610 28.8464500 20.5877360 41.5000720 29.6510070 + 30.2931640 41.0404250 14.0090420 30.2095360 41.4718470 13.1586860 + 31.0125830 41.5002600 14.4417240 31.3705780 43.4971770 27.0860390 + 30.6453970 44.0900550 26.8889780 31.8981240 43.4895310 26.2873760 + 15.1261050 41.6002450 13.4831730 15.9955900 41.8827250 13.7667650 + 14.6351370 42.4138320 13.3680540 22.2895860 42.9875660 17.6040010 + 22.7458640 43.7980910 17.8300200 21.9384070 42.6698800 18.4358500 + 15.1901570 35.0904430 27.5369230 14.4760090 35.2901350 28.1421840 + 15.6096610 34.3144000 27.9084030 17.1107560 43.4175920 15.6113790 + 16.5035510 44.1574820 15.6209090 17.5856910 43.5075280 14.7851990 + 26.6840350 37.5826740 25.2870680 27.0521170 36.7621950 25.6150250 + 25.8238550 37.6428630 25.7026330 30.0502380 36.5383680 16.0958240 + 29.4215540 36.6429350 15.3816470 29.5554300 36.7580460 16.8852120 + 22.0186410 38.8169630 17.5116120 21.3102560 39.2855970 17.9529730 + 22.3030890 38.1591640 18.1461310 23.6442340 40.2366330 25.5108650 + 24.1427590 40.7112150 26.1760500 23.7865290 39.3129850 25.7178680 + 26.0501840 35.5420290 18.9511910 25.9269620 35.5606420 18.0021420 + 26.9986400 35.5899230 19.0710310 20.2221430 37.1254710 14.8866830 + 21.0711960 37.5624860 14.8207020 19.8552700 37.4374970 15.7138890 + 30.8509200 36.4534290 26.3537040 30.3482800 37.1939690 26.6930850 + 31.6665860 36.8418290 26.0373830 29.1431210 41.6967470 19.7998400 + 28.2021350 41.7117700 19.9746090 29.4575280 40.9103430 20.2458700 + 19.1212850 43.3787070 13.3602360 19.8876120 43.2668430 13.9227790 + 19.1987540 42.6825040 12.7079130 17.8159610 40.8112140 14.0435250 + 17.8963200 39.8639650 14.1552650 18.7079360 41.1419020 14.1495910 + 15.3430410 42.6327060 29.2791420 15.8469430 42.0534340 29.8507650 + 14.6037830 42.9167290 29.8167790 22.3968350 44.0398050 28.8126940 + 21.6314020 44.6083050 28.7281610 22.5784310 43.7474260 27.9195170 + 25.4856760 44.4161280 13.4379700 24.9366860 44.8630580 14.0822440 + 26.1076020 43.9110530 13.9617370 17.3753490 40.7756650 30.1741490 + 17.4158830 40.4770520 31.0826720 18.2298990 41.1764260 30.0149010 + 21.1531880 43.3752200 15.3345000 21.5748300 43.2092070 16.1776390 + 21.2782720 42.5652430 14.8400140 19.3159300 39.3548750 28.1415980 + 18.7855760 38.8639700 27.5139320 19.9847370 39.7832950 27.6073910 + 23.6659520 42.3989810 12.5822100 24.1865180 41.6838830 12.2163250 + 24.3127920 43.0375680 12.8822610 28.2137360 43.8218210 27.9057170 + 28.6278380 43.9763290 28.7547590 27.2788360 43.9473430 28.0682950 + 28.6859530 41.1614370 29.9096320 29.2680300 40.4066690 29.8216800 + 28.8621300 41.6921810 29.1327800 19.8031600 36.3211120 28.2213270 + 19.7088470 35.7031870 27.4964140 19.2228990 37.0477410 27.9943180 + 22.5693040 34.8784360 25.2540660 22.1210340 34.9008620 24.4086210 + 21.9358240 34.4803380 25.8510960 22.9752590 43.7738690 25.8753100 + 23.3940700 44.6171420 25.7029340 22.0561220 43.9110730 25.6459880 + 25.3116490 41.5054870 27.2590940 25.4312700 40.9096010 27.9985780 + 26.1710490 41.5424560 26.8392240 27.6504390 42.0592060 25.8353450 + 27.1239610 42.5834680 25.2318590 27.9935730 42.6919450 26.4663180 + 20.0490780 39.4485430 12.2803160 19.8479840 38.5852790 12.6416500 + 19.8782830 39.3618790 11.3424760 22.0785260 38.0476220 28.5166760 + 22.6684950 37.7392070 29.2044580 21.2605500 37.5755970 28.6726660 + 26.8978690 37.6642030 28.7499780 26.2094210 37.0023570 28.6849770 + 27.6184710 37.2180300 29.1948240 27.5279090 34.2593660 14.8090040 + 27.8081380 33.4161560 15.1649460 26.7544820 34.4916770 15.3228790 + 18.8473580 36.5486050 12.2681040 19.1499480 36.5553480 11.3600190 + 19.5868170 36.1983910 12.7648700 22.0658510 35.4920670 13.2537240 + 21.7180510 34.8144660 12.6739690 22.2671280 35.0310180 14.0680630 + 31.9059810 43.4970390 15.4193950 32.6678720 44.0667040 15.5253640 + 31.9214180 42.9297590 16.1902260 15.4064150 42.0208320 19.6501610 + 14.7512990 41.7519960 19.0061310 16.2442100 41.9112800 19.2003590 + 31.9578980 43.7904760 12.5766470 32.2327820 44.6983640 12.4485690 + 31.7689720 43.7267290 13.5128460 28.3554590 36.8149610 13.8720100 + 28.7739470 36.6280590 13.0316760 28.0490650 35.9628660 14.1823030 + 31.8544320 41.7273750 17.5695900 31.4787920 40.9601680 17.1377190 + 31.1247440 42.1096450 18.0570830 16.4440080 42.4060890 24.1904950 + 16.8113120 42.3188290 25.0700970 15.8750900 41.6427440 24.0911810 + 31.2443940 40.8745270 27.2035420 31.0130030 40.6458020 26.3033370 + 31.5048490 41.7944820 27.1580310 15.9956080 39.3169980 28.0963370 + 15.1012130 39.2836740 28.4357080 16.5353630 39.5156770 28.8614620 + 29.6832010 36.1001700 29.9815120 30.5602190 36.1085100 30.3649120 + 29.6952850 35.3632540 29.3707470 14.6202230 39.2307250 15.5926940 + 13.7166310 39.4937450 15.4178600 15.1042850 39.5018420 14.8126900 + 31.1295280 39.9531240 20.8703140 31.6532760 39.4593890 20.2393310 + 31.7154700 40.0881600 21.6150710 31.3085000 40.0371110 24.3922690 + 30.3587710 40.0034650 24.5067680 31.4898010 40.9471220 24.1572460 + 17.1629440 38.2872790 13.5021320 17.8721140 37.8656010 13.0168600 + 16.4469380 38.3548020 12.8704670 30.6195250 39.2104590 16.8095550 + 31.1154370 38.9775460 17.5944430 30.4211320 38.3716430 16.3933190 + 16.4995790 33.5918310 22.4446590 17.1471980 33.0415690 22.0041750 + 16.9197630 33.8461460 23.2662400 32.0482410 37.8465540 19.3433230 + 31.9381690 37.6921580 20.2815500 32.8090000 37.3186480 19.1008640 + 30.3948130 33.7859670 25.8016230 31.0320350 34.3993810 26.1675420 + 30.5423020 33.8220330 24.8565460 32.9372680 35.6773460 12.5839370 + 33.8621990 35.5454640 12.3757660 32.9148470 35.7566280 13.5375820 + 33.0111170 36.4484120 15.2096080 32.2162670 36.3829240 15.7388990 + 33.2154450 37.3834760 15.1981430 16.2527790 33.7473980 25.1871910 + 15.9042610 34.2037800 25.9530090 15.9215490 32.8531110 25.2694340 + 23.7652610 34.9385860 28.7091330 23.7041500 35.5307690 29.4586740 + 24.7052990 34.8311820 28.5641590 16.9248430 33.2750180 28.4622680 + 17.4731420 33.0938230 27.6988790 16.9903740 32.4844290 28.9978990 + 27.1435210 33.1588060 24.6752910 26.2695050 33.4923170 24.4725840 + 27.0345960 32.6861240 25.5004780 28.0507190 35.3658930 26.0594630 + 27.7220550 34.5510690 25.6796360 28.9989490 35.3228740 25.9360320 + 24.8910030 34.0757900 23.6145820 24.1081820 34.5503400 23.8942580 + 24.5972960 33.1712730 23.5059000 29.4431100 34.7781000 21.6594910 + 29.8839190 34.7226100 20.8116510 29.1738690 35.6939010 21.7305090 + 31.3069670 34.4096240 19.6703730 31.2458070 33.4657460 19.5234750 + 32.0861700 34.5176330 20.2157190 16.2350440 34.3805380 16.1359540 + 16.9929800 34.4934260 15.5623570 15.7727610 35.2174580 16.0902970 + 22.7764250 36.4944650 19.1261850 21.9638760 36.1201540 18.7857730 + 23.2805890 35.7389730 19.4283040 27.2789230 33.1587100 20.3644920 + 27.8818600 33.7307310 20.8393440 26.5382220 33.7226540 20.1418820 + 30.4223830 33.5608660 15.6385200 30.6174460 34.4592110 15.9052630 + 29.6353700 33.3295740 16.1318150 20.8013430 34.6444570 17.7306900 + 20.1716170 33.9431880 17.8977030 20.2618570 35.4048700 17.5140060 + 20.9268990 33.9228550 30.1659390 20.6453260 34.4262150 29.4020210 + 21.3088690 33.1250300 29.8001520 24.5660640 43.1353620 2.9883870 + 23.7902740 42.6554060 3.2782440 25.2173570 42.4559270 2.8140030 + 18.5826470 43.4473430 3.8659630 17.7511350 43.1922140 4.2656140 + 19.1907450 43.5184200 4.6017550 14.9551430 41.0080970 3.5341720 + 15.5267540 40.2403170 3.5345360 14.9552970 41.3069730 2.6248330 + 16.1976300 36.4165330 5.3210650 16.0179140 35.5191080 5.6013410 + 15.7956380 36.9637200 5.9957600 25.0374800 38.6181190 3.2222960 + 25.4139620 37.7453070 3.1096630 24.9394310 38.9539890 2.3313400 + 16.8162970 38.9125830 3.9292990 17.4973080 39.1764200 4.5480390 + 16.5011020 38.0726700 4.2631000 21.0087540 39.9593190 3.0165580 + 21.5165760 40.4574160 3.6570600 21.5400780 39.1828390 2.8404940 + 33.1098470 38.1298380 6.7194930 32.4050640 38.5180090 6.2010040 + 33.3756390 38.8248670 7.3215860 19.2923640 34.5991750 7.2829000 + 19.2942080 35.1164140 6.4774900 18.4627950 34.1221930 7.2598930 + 20.5426490 44.2386930 5.4602500 20.2095870 44.8655850 6.1023570 + 20.7193170 44.7648810 4.6804170 29.0560400 38.0532010 2.9278840 + 28.3515970 38.3416900 3.5081950 29.4172560 38.8632120 2.5678400 + 18.9738970 36.3101710 5.2899450 19.3155780 37.1543760 4.9953320 + 18.0354780 36.4585450 5.4064790 32.1247320 37.4986800 3.3188050 + 31.1772230 37.5325780 3.4503480 32.4497310 38.3125750 3.7037410 + 27.6067360 44.4181110 5.2334110 28.0236150 44.2041220 4.3987570 + 28.3307180 44.6753900 5.8042730 31.5529460 42.8168330 5.3250350 + 30.7248090 42.8861420 4.8500480 32.1479940 43.4022640 4.8566180 + 28.5171470 39.6037650 6.2705220 28.1042650 40.4291360 6.5245210 + 27.7847420 39.0182690 6.0781580 19.3632880 39.1640760 4.9122930 + 19.9147470 39.2736100 4.1376180 19.8776390 39.5378360 5.6278160 + 19.0375610 42.6860120 8.5228270 18.8983380 43.5582920 8.8915670 + 18.1556970 42.3432930 8.3776210 14.9894260 44.4557670 4.4399180 + 15.0674680 44.5906440 3.4954900 15.6035940 43.7473560 4.6327300 + 32.0428040 38.6554230 10.1527340 31.4272310 39.1633900 9.6242800 + 31.7224460 37.7552560 10.0953280 19.8172550 34.6277600 2.0154210 + 19.3740700 35.4087140 1.6838730 20.3757540 34.9507490 2.7225150 + 24.1042360 37.4946120 7.6189530 23.6421730 37.7029140 8.4309470 + 23.7020470 36.6805470 7.3160200 29.1046870 38.7155070 8.7486190 + 28.2540460 38.4160820 9.0695260 28.9448660 38.9597080 7.8370010 + 26.1996580 40.2156820 10.8484980 26.5249990 39.3820570 10.5087210 + 26.9876910 40.7385340 10.9963310 21.8548450 35.1724930 3.8743810 + 22.1520780 36.0787760 3.7935830 22.4034010 34.6843710 3.2603380 + 22.0485980 40.6496750 10.4095730 21.9529580 39.7091480 10.2596130 + 22.8917960 40.8711820 10.0143800 17.1796520 37.0610420 8.5629510 + 16.7859910 37.9085630 8.7702290 16.4914920 36.4236790 8.7538150 + 23.7541570 37.1445390 11.6326250 23.0639890 36.9517590 12.2672340 + 24.4973870 37.4280030 12.1650550 14.4813570 34.9838880 2.5959590 + 14.1926620 35.5541740 3.3084570 15.2259330 34.5043330 2.9590820 + 26.0304540 40.9843830 4.4680170 25.2985660 41.4930640 4.8170270 + 25.6328880 40.1673810 4.1668950 22.4681930 37.6598030 2.8732660 + 22.4717990 37.2187980 2.0237200 23.3633050 37.9815360 2.9804480 + 18.3184310 37.5424520 1.8326870 17.9784360 38.0199750 2.5893920 + 17.5561630 37.0889640 1.4727970 26.4930450 36.4377510 3.8803110 + 26.5103190 36.8886160 4.7244960 26.2446030 35.5383150 4.0936550 + 29.9201200 33.8509690 9.7189490 30.2446970 33.1199350 10.2447470 + 29.9557710 33.5323330 8.8170480 22.7689900 41.7199810 4.6198070 + 23.1360030 41.2458380 5.3659410 22.5794960 42.5941380 4.9606410 + 20.5589270 40.7608450 6.9382280 20.2546340 41.6400430 7.1632640 + 21.5135730 40.8208240 6.9739720 29.8459040 43.9634800 3.3275520 + 30.5658160 44.4590090 2.9371630 29.6440860 43.2852690 2.6829390 + 25.2277840 44.0343860 9.2144520 25.1615150 43.1139530 8.9602110 + 24.5982980 44.1319300 9.9289160 16.6153000 41.6011190 8.0853640 + 16.2567940 42.2665040 8.6726980 16.3207560 40.7694740 8.4566260 + 19.8166120 42.0595430 10.9693190 19.5166260 42.2052610 10.0721010 + 20.5877360 41.5000720 10.8766580 31.3705780 43.4971770 8.3116900 + 30.6453970 44.0900550 8.1146290 31.8981240 43.4895310 7.5130270 + 15.1901570 35.0904430 8.7625740 14.4760090 35.2901350 9.3678350 + 15.6096610 34.3144000 9.1340540 26.6840350 37.5826740 6.5127190 + 27.0521170 36.7621950 6.8406760 25.8238550 37.6428630 6.9282840 + 23.6442340 40.2366330 6.7365160 24.1427590 40.7112150 7.4017010 + 23.7865290 39.3129850 6.9435190 30.8509200 36.4534290 7.5793550 + 30.3482800 37.1939690 7.9187360 31.6665860 36.8418290 7.2630340 + 15.3430410 42.6327060 10.5047930 15.8469430 42.0534340 11.0764160 + 14.6037830 42.9167290 11.0424300 22.3968350 44.0398050 10.0383450 + 21.6314020 44.6083050 9.9538120 22.5784310 43.7474260 9.1451680 + 17.3753490 40.7756650 11.3998000 17.4158830 40.4770520 12.3083230 + 18.2298990 41.1764260 11.2405520 19.3159300 39.3548750 9.3672490 + 18.7855760 38.8639700 8.7395830 19.9847370 39.7832950 8.8330420 + 28.2137360 43.8218210 9.1313680 28.6278380 43.9763290 9.9804100 + 27.2788360 43.9473430 9.2939460 28.6859530 41.1614370 11.1352830 + 29.2680300 40.4066690 11.0473310 28.8621300 41.6921810 10.3584310 + 19.8031600 36.3211120 9.4469780 19.7088470 35.7031870 8.7220650 + 19.2228990 37.0477410 9.2199690 22.5693040 34.8784360 6.4797170 + 22.1210340 34.9008620 5.6342720 21.9358240 34.4803380 7.0767470 + 22.9752590 43.7738690 7.1009610 23.3940700 44.6171420 6.9285850 + 22.0561220 43.9110730 6.8716390 25.3116490 41.5054870 8.4847450 + 25.4312700 40.9096010 9.2242290 26.1710490 41.5424560 8.0648750 + 27.6504390 42.0592060 7.0609960 27.1239610 42.5834680 6.4575100 + 27.9935730 42.6919450 7.6919690 22.0785260 38.0476220 9.7423270 + 22.6684950 37.7392070 10.4301090 21.2605500 37.5755970 9.8983170 + 26.8978690 37.6642030 9.9756290 26.2094210 37.0023570 9.9106280 + 27.6184710 37.2180300 10.4204750 16.4440080 42.4060890 5.4161460 + 16.8113120 42.3188290 6.2957480 15.8750900 41.6427440 5.3168320 + 31.2443940 40.8745270 8.4291930 31.0130030 40.6458020 7.5289880 + 31.5048490 41.7944820 8.3836820 15.9956080 39.3169980 9.3219880 + 15.1012130 39.2836740 9.6613590 16.5353630 39.5156770 10.0871130 + 29.6832010 36.1001700 11.2071630 30.5602190 36.1085100 11.5905630 + 29.6952850 35.3632540 10.5963980 31.1295280 39.9531240 2.0959650 + 31.6532760 39.4593890 1.4649820 31.7154700 40.0881600 2.8407220 + 31.3085000 40.0371110 5.6179200 30.3587710 40.0034650 5.7324190 + 31.4898010 40.9471220 5.3828970 16.4995790 33.5918310 3.6703100 + 17.1471980 33.0415690 3.2298260 16.9197630 33.8461460 4.4918910 + 30.3948130 33.7859670 7.0272740 31.0320350 34.3993810 7.3931930 + 30.5423020 33.8220330 6.0821970 16.2527790 33.7473980 6.4128420 + 15.9042610 34.2037800 7.1786600 15.9215490 32.8531110 6.4950850 + 23.7652610 34.9385860 9.9347840 23.7041500 35.5307690 10.6843250 + 24.7052990 34.8311820 9.7898100 26.4027170 34.5955920 9.5740130 + 27.0167580 34.9135210 8.9121210 26.9476730 34.1104510 10.1935990 + 16.9248430 33.2750180 9.6879190 17.4731420 33.0938230 8.9245300 + 16.9903740 32.4844290 10.2235500 27.1435210 33.1588060 5.9009420 + 26.2695050 33.4923170 5.6982350 27.0345960 32.6861240 6.7261290 + 28.0507190 35.3658930 7.2851140 27.7220550 34.5510690 6.9052870 + 28.9989490 35.3228740 7.1616830 24.8910030 34.0757900 4.8402330 + 24.1081820 34.5503400 5.1199090 24.5972960 33.1712730 4.7315510 + 29.4431100 34.7781000 2.8851420 29.8839190 34.7226100 2.0373020 + 29.1738690 35.6939010 2.9561600 20.9268990 33.9228550 11.3915900 + 20.6453260 34.4262150 10.6276720 21.3088690 33.1250300 11.0258030 + 27.5284450 33.3382130 11.9696370 27.4149900 33.6576740 12.8647890 + 28.3454190 33.7394640 11.6733650 26.4342600 22.5831110 57.4305070 + 26.3536650 21.6685720 57.1596780 26.0207020 23.0798180 56.7244780 + 24.5660640 24.3610130 59.3114340 23.7902740 23.8810570 59.6012910 + 25.2173570 23.6815780 59.1370500 28.5868070 28.7670320 58.0913470 + 28.1249600 27.9957560 58.4200640 29.3993620 28.7936390 58.5965920 + 16.9918420 19.6331830 53.9732490 16.1035120 19.9747800 53.8712370 + 17.2759610 19.4332150 53.0813320 14.9551430 22.2337480 59.8572190 + 15.5267540 21.4659680 59.8575830 14.9552970 22.5326240 58.9478800 + 24.8131380 31.0528330 57.7117460 24.1942820 31.5085830 57.1411900 + 25.6683160 31.2079790 57.3107160 24.0069630 27.0367320 59.3184500 + 23.9377910 26.0957260 59.1573630 24.7689490 27.1268730 59.8907070 + 25.0374800 19.8437700 59.5453430 25.4139620 18.9709580 59.4327100 + 24.9394310 20.1796400 58.6543870 19.1679810 18.2163330 55.0070870 + 19.2746560 19.1167060 55.3139630 18.2572170 18.1681300 54.7165520 + 28.8198920 17.3388140 56.4781770 29.6408540 16.8484710 56.5207250 + 28.8533000 17.9285800 57.2313610 21.0087540 21.1849700 59.3396050 + 21.5165760 21.6830670 59.9801070 21.5400780 20.4084900 59.1635410 + 25.6794730 25.9367570 55.1049370 25.0612000 26.4017020 54.5412090 + 26.1917980 26.6295050 55.5218880 29.0560400 19.2788520 59.2509310 + 28.3515970 19.5673410 59.8312420 29.4172560 20.0888630 58.8908870 + 15.0477930 26.6224100 52.4789000 14.6705910 27.1111200 51.7473900 + 15.3051000 27.2949380 53.1095530 32.1247320 18.7243310 59.6418520 + 31.1772230 18.7582290 59.7733950 32.4497310 19.5382260 60.0267880 + 22.6566860 15.0240490 57.9374510 22.9641840 14.4687380 57.2210010 + 21.7267560 15.1584950 57.7547500 28.2081920 30.7407780 60.2281970 + 28.2209080 30.3370070 59.3604230 27.6557140 31.5155070 60.1243400 + 29.5027340 27.4624000 55.3172140 29.3923670 26.5198330 55.4421560 + 29.4995590 27.8239640 56.2034900 25.0447620 23.0889320 54.6734630 + 24.1176900 23.0226700 54.9023100 25.1972440 24.0269450 54.5589870 + 25.0316700 19.3606320 51.6701790 24.0920370 19.5220280 51.7554250 + 25.3499960 20.0792000 51.1237780 29.0744910 24.6509620 55.1769880 + 28.4557330 24.3129170 54.5296180 29.0569360 24.0069380 55.8849070 + 20.6504260 23.6154060 57.4554360 20.2461260 22.9031310 56.9600260 + 20.7367380 23.2707300 58.3442400 21.1185960 27.3021620 59.6193570 + 20.8214250 26.6967090 58.9401350 22.0685780 27.3398930 59.5082930 + 27.2509610 23.8896430 52.1842630 27.6902890 23.0518860 52.0380450 + 27.9638030 24.5225830 52.2706770 25.3604990 28.8292500 56.1523870 + 25.8000900 29.5716830 55.7379260 25.2991880 29.0719070 57.0762830 + 30.8326750 15.1439240 50.4983670 30.5199410 15.2366070 51.3982740 + 31.5939220 15.7220270 50.4481100 17.3508890 22.5099040 54.9561010 + 17.2306490 23.2361130 54.3442280 17.0409780 21.7401950 54.4788920 + 16.2341890 27.3814370 57.1735830 15.8269970 27.5228960 56.3189430 + 17.1254900 27.0974530 56.9707040 28.0275170 31.8161620 53.5086880 + 27.8676310 31.5264560 54.4068710 27.8621880 31.0401750 52.9732110 + 20.5063550 31.5960150 55.2858500 20.3306030 30.6795690 55.0726300 + 19.6519290 31.9547440 55.5256300 27.7301300 29.3249180 52.0684880 + 27.0366460 29.3226470 51.4087160 28.4724160 28.9008500 51.6379050 + 27.2951230 30.9511890 56.1433370 27.7508180 30.1701270 56.4571990 + 27.6343750 31.6618710 56.6874550 19.8172550 15.8534110 58.3384680 + 19.3740700 16.6343650 58.0069200 20.3757540 16.1764000 59.0455620 + 22.9331370 15.4744810 53.2190510 22.3085550 15.4704680 53.9443820 + 22.8461490 14.6075770 52.8226480 21.8548450 16.3981440 60.1974280 + 22.1520780 17.3044270 60.1166300 22.4034010 15.9100220 59.5833850 + 19.6086770 20.9767680 56.0665930 19.3827690 20.7604850 56.9712550 + 18.8279300 21.4096140 55.7211900 26.8384530 20.9831050 54.6656580 + 26.2393420 21.7066850 54.4820200 27.3864140 20.9207830 53.8833030 + 25.4449400 19.6194590 56.6959860 25.8378970 19.9366790 55.8828550 + 25.8066250 18.7406470 56.8104380 14.4813570 16.2095390 58.9190060 + 14.1926620 16.7798250 59.6315040 15.2259330 15.7299840 59.2821290 + 14.6683800 20.1515510 50.1292780 14.5858470 21.0946270 50.2707770 + 14.3166860 20.0090420 49.2505130 22.4681930 18.8854540 59.1963130 + 22.4717990 18.4444490 58.3467670 23.3633050 19.2071870 59.3034950 + 18.3184310 18.7681030 58.1557340 17.9784360 19.2456260 58.9124390 + 17.5561630 18.3146150 57.7958440 22.5302080 19.8866620 52.1869890 + 22.6514900 19.8453100 53.1355710 22.1450590 20.7490770 52.0316620 + 21.5423580 22.1967760 51.5853190 20.9740480 21.7486010 50.9589100 + 22.2512580 22.5560540 51.0518340 15.6330390 17.6900010 57.0722010 + 15.3477310 17.3255680 57.9100630 15.5709250 16.9580470 56.4585150 + 19.0871060 26.1925950 53.8579600 18.3133320 25.6523570 53.6978320 + 19.8165690 25.6732560 53.5197360 29.8459040 25.1891310 59.6505990 + 30.5658160 25.6846600 59.2602100 29.6440860 24.5109200 59.0059860 + 25.3068980 16.5829270 53.7935380 24.4933590 16.0842440 53.7180690 + 25.1130930 17.4227520 53.3771730 28.0217370 20.9548920 52.0897540 + 28.9096990 21.2666150 51.9148880 27.9922460 20.0821170 51.6978120 + 19.1308460 25.8606330 57.4958410 19.6487130 25.0574590 57.4415300 + 18.6792480 25.7985470 58.3375240 24.0177960 27.1272610 52.7685710 + 24.3593660 27.8714840 52.2729030 23.1890670 27.4403730 53.1310540 + 30.2931640 22.2660760 51.5577400 30.2095360 22.6974980 50.7073840 + 31.0125830 22.7259110 51.9904220 31.3218890 29.1203020 54.2859530 + 30.6795050 28.4658640 54.5603250 30.9349550 29.5258110 53.5100200 + 26.9005370 26.4488450 58.1331220 27.2529190 25.8516580 57.4732590 + 26.0167700 26.1232680 58.3039470 22.9868650 27.2086140 55.5401630 + 23.6739780 27.7555350 55.9209220 22.2001070 27.7526870 55.5751240 + 15.1261050 22.8258960 51.0318710 15.9955900 23.1083760 51.3154630 + 14.6351370 23.6394830 50.9167520 22.2895860 24.2132170 55.1526990 + 22.7458640 25.0237420 55.3787180 21.9384070 23.8955310 55.9845480 + 18.1907640 14.5569820 55.6249510 18.0622270 14.5487720 56.5734430 + 17.3669660 14.8952910 55.2740520 29.7116270 28.0119480 50.8235880 + 29.4853850 27.2949920 51.4160520 29.3212470 27.7631920 49.9857630 + 15.4932300 32.0386340 51.5980340 15.8529940 32.6375680 50.9437610 + 15.3524640 32.5846230 52.3715370 29.2932520 25.9291420 52.4850040 + 29.0054220 26.3904110 53.2727920 30.0884690 25.4689190 52.7534260 + 21.5100920 29.4217540 52.4154010 21.5011020 30.1547230 51.7998520 + 20.5899280 29.1749120 52.5080970 17.1107560 24.6432430 53.1600770 + 16.5035510 25.3831330 53.1696070 17.5856910 24.7331790 52.3338970 + 30.0502380 17.7640190 53.6445220 29.4215540 17.8685860 52.9303450 + 29.5554300 17.9836970 54.4339100 24.4960520 29.4845780 51.0779200 + 24.5972500 29.2809770 50.1481180 23.5962260 29.2304060 51.2826980 + 22.0186410 20.0426140 55.0603100 21.3102560 20.5112480 55.5016710 + 22.3030890 19.3848150 55.6948290 26.0501840 16.7676800 56.4998890 + 25.9269620 16.7862930 55.5508400 26.9986400 16.8155740 56.6197290 + 23.1378630 32.0032100 55.7726870 23.3920130 31.9653490 54.8506240 + 22.1891110 31.8765430 55.7655120 20.2221430 18.3511220 52.4353810 + 21.0711960 18.7881370 52.3694000 19.8552700 18.6631480 53.2625870 + 29.1431210 22.9223980 57.3485380 28.2021350 22.9374210 57.5233070 + 29.4575280 22.1359940 57.7945680 19.1212850 24.6043580 50.9089340 + 19.8876120 24.4924940 51.4714770 19.1987540 23.9081550 50.2566110 + 17.8159610 22.0368650 51.5922230 17.8963200 21.0896160 51.7039630 + 18.7079360 22.3675530 51.6982890 31.1456790 30.0932830 59.0239640 + 31.2704210 30.9164000 59.4963450 32.0122350 29.8823560 58.6763790 + 18.6174320 32.1864040 58.6956770 19.3536800 31.6379500 58.9665340 + 19.0015240 33.0520050 58.5562760 15.5019800 28.2537610 54.5698280 + 14.5759580 28.4958750 54.5603690 15.9676230 29.0811870 54.4483030 + 21.7276630 31.3594350 50.5182340 22.5205240 31.6483180 50.0664130 + 21.2080980 30.9286520 49.8394820 30.7806800 30.5864480 51.9419080 + 30.4948310 30.1729620 51.1273260 30.5826350 31.5152190 51.8219600 + 22.2454030 26.5797760 50.3824690 22.1404670 25.9650110 51.1086070 + 22.0778250 26.0563650 49.5987700 25.4856760 25.6417790 50.9866680 + 24.9366860 26.0887090 51.6309420 26.1076020 25.1367040 51.5104350 + 21.1531880 24.6008710 52.8831980 21.5748300 24.4348580 53.7263370 + 21.2782720 23.7908940 52.3887120 23.6659520 23.6246320 50.1309080 + 24.1865180 22.9095340 49.7650230 24.3127920 24.2632190 50.4309590 + 20.0490780 20.6741940 49.8290140 19.8479840 19.8109300 50.1903480 + 19.8782830 20.5875300 48.8911740 27.5279090 15.4850170 52.3577020 + 27.8081380 14.6418070 52.7136440 26.7544820 15.7173280 52.8715770 + 22.0658510 16.7177180 50.8024220 21.7180510 16.0401170 50.2226670 + 22.2671280 16.2566690 51.6167610 24.2307550 31.7057930 52.4210820 + 25.1258340 32.0442900 52.4429580 24.2625180 30.9837340 51.7935100 + 17.8703710 27.0784980 50.6497820 18.3078580 27.6214650 51.3055400 + 18.3551440 26.2531930 50.6594160 15.0849510 29.8674010 58.1018080 + 15.4152520 28.9995070 57.8696720 15.5140510 30.0732530 58.9323040 + 19.6811430 28.1983020 55.7620050 19.3806970 28.0747990 56.6623960 + 19.5748920 27.3391610 55.3535780 32.4503350 27.9779420 50.4646730 + 31.6196310 28.0456070 50.9353960 32.6275180 28.8683540 50.1613590 + 31.9059810 24.7226900 52.9680930 32.6678720 25.2923550 53.0740620 + 31.9214180 24.1554100 53.7389240 15.4064150 23.2464830 57.1988590 + 14.7512990 22.9776470 56.5548290 16.2442100 23.1369310 56.7490570 + 32.9119780 25.5777000 57.8122860 33.2828610 24.7944320 57.4058830 + 33.5521710 26.2666100 57.6340160 31.9578980 25.0161270 50.1253450 + 32.2327820 25.9240150 49.9972670 31.7689720 24.9523800 51.0615440 + 28.3554590 18.0406120 51.4207080 28.7739470 17.8537100 50.5803740 + 28.0490650 17.1885170 51.7310010 31.8544320 22.9530260 55.1182880 + 31.4787920 22.1858190 54.6864170 31.1247440 23.3352960 55.6057810 + 14.6202230 20.4563760 53.1413920 13.7166310 20.7193960 52.9665580 + 15.1042850 20.7274930 52.3613880 31.1295280 21.1787750 58.4190120 + 31.6532760 20.6850400 57.7880290 31.7154700 21.3138110 59.1637690 + 17.1629440 19.5129300 51.0508300 17.8721140 19.0912520 50.5655580 + 16.4469380 19.5804530 50.4191650 30.6195250 20.4361100 54.3582530 + 31.1154370 20.2031970 55.1431410 30.4211320 19.5972940 53.9420170 + 32.0482410 19.0722050 56.8920210 31.9381690 18.9178090 57.8302480 + 32.8090000 18.5442990 56.6495620 32.9372680 16.9029970 50.1326350 + 33.8621990 16.7711150 49.9244640 32.9148470 16.9822790 51.0862800 + 33.0111170 17.6740630 52.7583060 32.2162670 17.6085750 53.2875970 + 33.2154450 18.6091270 52.7468410 29.9529590 31.7132180 56.7521450 + 30.5488660 31.3916750 56.0755870 30.2107740 31.2404000 57.5434720 + 20.9337520 30.6715720 59.7567310 21.4502540 30.0603080 59.2315570 + 21.5834900 31.1744500 60.2478320 29.4431100 16.0037510 59.2081890 + 29.8839190 15.9482610 58.3603490 29.1738690 16.9195520 59.2792070 + 31.3069670 15.6352750 57.2190710 31.2458070 14.6913970 57.0721730 + 32.0861700 15.7432840 57.7644170 15.6122420 31.7745110 56.1814660 + 15.4444460 31.1415790 56.8796550 14.7456930 31.9804510 55.8308850 + 16.2350440 15.6061890 53.6846520 16.9929800 15.7190770 53.1110550 + 15.7727610 16.4431090 53.6389950 22.7764250 17.7201160 56.6748830 + 21.9638760 17.3458050 56.3344710 23.2805890 16.9646240 56.9770020 + 27.2789230 14.3843610 57.9131900 27.8818600 14.9563820 58.3880420 + 26.5382220 14.9483050 57.6905800 30.4223830 14.7865170 53.1872180 + 30.6174460 15.6848620 53.4539610 29.6353700 14.5552250 53.6805130 + 17.2185120 30.4678340 53.6264800 16.6932740 30.8486370 52.9226760 + 17.1429700 31.0929110 54.3474510 18.6075590 16.1325940 52.2248490 + 19.1368350 15.3455740 52.0956440 19.2403910 16.8117130 52.4584020 + 20.8013430 15.8701080 55.2793880 20.1716170 15.1688390 55.4464010 + 20.2618570 16.6305210 55.0627040 31.9750440 32.0265880 54.9478740 + 32.1502630 31.3403620 54.3039660 31.2772010 32.5512930 54.5555410 + 19.8178090 32.4160720 52.5014050 20.5496910 32.1320000 51.9537940 + 20.0771760 32.1774000 53.3913430 18.9792880 28.5325450 52.5060380 + 18.3501760 29.0010550 53.0546210 19.0940710 27.6874670 52.9406570 + 16.9918420 19.6331830 35.1989000 16.1035120 19.9747800 35.0968880 + 17.2759610 19.4332150 34.3069830 19.1679810 18.2163330 36.2327380 + 19.2746560 19.1167060 36.5396140 18.2572170 18.1681300 35.9422030 + 33.1098470 19.3554890 44.2681910 32.4050640 19.7436600 43.7497020 + 33.3756390 20.0505180 44.8702840 22.6566860 15.0240490 39.1631020 + 22.9641840 14.4687380 38.4466520 21.7267560 15.1584950 38.9804010 + 32.7870780 30.6365430 49.5764570 33.2630500 31.1148320 50.2553650 + 33.4077940 30.5682920 48.8510070 32.1904030 27.8278280 46.7364580 + 32.3167090 27.5890160 45.8181760 32.2325410 26.9962820 47.2086660 + 32.0428040 19.8810740 47.7014320 31.4272310 20.3890410 47.1729780 + 31.7224460 18.9809070 47.6440260 15.0453780 26.7228350 44.5280620 + 15.2084820 26.2533710 43.7099990 15.5106230 26.2151910 45.1929460 + 29.1046870 19.9411580 46.2973170 28.2540460 19.6417330 46.6182240 + 28.9448660 20.1853590 45.3856990 22.9331370 15.4744810 34.4447020 + 22.3085550 15.4704680 35.1700330 22.8461490 14.6075770 34.0482990 + 23.7541570 18.3701900 49.1813230 23.0639890 18.1774100 49.8159320 + 24.4973870 18.6536540 49.7137530 14.6683800 20.1515510 31.3549290 + 14.5858470 21.0946270 31.4964280 14.3166860 20.0090420 30.4761640 + 29.9201200 15.0766200 47.2676470 30.2446970 14.3455860 47.7934450 + 29.9557710 14.7579840 46.3657460 16.6192760 26.0979780 46.6876430 + 16.2347550 25.4573450 47.2859390 16.9304950 26.8015900 47.2571160 + 16.6153000 22.8267700 45.6340620 16.2567940 23.4921550 46.2213960 + 16.3207560 21.9951250 46.0053240 19.8166120 23.2851940 48.5180170 + 19.5166260 23.4309120 47.6207990 20.5877360 22.7257230 48.4253560 + 31.3705780 24.7228280 45.8603880 30.6453970 25.3157060 45.6633270 + 31.8981240 24.7151820 45.0617250 31.3218890 29.1203020 35.5116040 + 30.6795050 28.4658640 35.7859760 30.9349550 29.5258110 34.7356710 + 15.1261050 22.8258960 32.2575220 15.9955900 23.1083760 32.5411140 + 14.6351370 23.6394830 32.1424030 18.1907640 14.5569820 36.8506020 + 18.0622270 14.5487720 37.7990940 17.3669660 14.8952910 36.4997030 + 15.4932300 32.0386340 32.8236850 15.8529940 32.6375680 32.1694120 + 15.3524640 32.5846230 33.5971880 29.2932520 25.9291420 33.7106550 + 29.0054220 26.3904110 34.4984430 30.0884690 25.4689190 33.9790770 + 15.4774160 30.3041200 47.2979250 15.5865280 29.3635940 47.1574640 + 14.8254720 30.5695950 46.6492980 26.0501840 16.7676800 37.7255400 + 25.9269620 16.7862930 36.7764910 26.9986400 16.8155740 37.8453800 + 30.8509200 17.6790800 45.1280530 30.3482800 18.4196200 45.4674340 + 31.6665860 18.0674800 44.8117320 17.6232600 31.3710110 49.1098860 + 18.4245330 31.6922160 49.5234260 17.1084420 31.0105690 49.8318770 + 27.8897600 31.2070270 47.6683680 28.8419350 31.1228290 47.6183920 + 27.7425820 31.8711980 48.3417470 15.3430410 23.8583570 48.0534910 + 15.8469430 23.2790850 48.6251140 14.6037830 24.1423800 48.5911280 + 29.5391700 26.9959890 48.1445450 30.2801170 27.3335650 47.6412910 + 28.7764380 27.1651950 47.5915220 28.6859530 22.3870880 48.6839810 + 29.2680300 21.6323200 48.5960290 28.8621300 22.9178320 47.9071290 + 15.5739720 30.7344600 42.0656220 15.1370710 30.9145400 42.8980370 + 16.1417400 31.4919220 41.9237940 31.2101900 30.2361600 46.3533530 + 30.6103890 30.2954160 45.6097450 31.3395800 29.2966580 46.4830380 + 31.9578980 25.0161270 31.3509960 32.2327820 25.9240150 31.2229180 + 31.7689720 24.9523800 32.2871950 31.2443940 22.1001780 45.9778910 + 31.0130030 21.8714530 45.0776860 31.5048490 23.0201330 45.9323800 + 15.9956080 20.5426490 46.8706860 15.1012130 20.5093250 47.2100570 + 16.5353630 20.7413280 47.6358110 29.6832010 17.3258210 48.7558610 + 30.5602190 17.3341610 49.1392610 29.6952850 16.5889050 48.1450960 + 14.6202230 20.4563760 34.3670430 13.7166310 20.7193960 34.1922090 + 15.1042850 20.7274930 33.5870390 31.3085000 21.2627620 43.1666180 + 30.3587710 21.2291160 43.2811170 31.4898010 22.1727730 42.9315950 + 16.8103600 15.5668630 31.3167460 17.5331730 16.1077570 31.6348680 + 17.0828120 15.2932050 30.4409000 30.3948130 15.0116180 44.5759720 + 31.0320350 15.6250320 44.9418910 30.5423020 15.0476840 43.6308950 + 17.8592160 28.1450090 48.1268590 17.8161790 27.7743000 49.0083050 + 17.9903170 29.0827660 48.2670410 26.4027170 15.8212430 47.1227110 + 27.0167580 16.1391720 46.4608190 26.9476730 15.3361020 47.7422970 + 32.8202350 31.7204060 44.5288950 32.3260630 32.1172930 43.8116080 + 32.2115640 31.0953270 44.9226230 27.1435210 14.3844570 43.4496400 + 26.2695050 14.7179680 43.2469330 27.0345960 13.9117750 44.2748270 + 28.0507190 16.5915440 44.8338120 27.7220550 15.7767200 44.4539850 + 28.9989490 16.5485250 44.7103810 30.5041800 32.3627480 41.8075690 + 30.0444770 33.1143290 41.4333710 29.8754260 31.6433950 41.7490490 + 17.3292420 28.4570720 44.1974410 16.6026480 27.8376010 44.1300360 + 17.3901570 28.8511330 43.3272490 24.8910030 15.3014410 42.3889310 + 24.1081820 15.7759910 42.6686070 24.5972960 14.3969240 42.2802490 + 29.4431100 16.0037510 40.4338400 29.8839190 15.9482610 39.5860000 + 29.1738690 16.9195520 40.5048580 16.2350440 15.6061890 34.9103030 + 16.9929800 15.7190770 34.3367060 15.7727610 16.4431090 34.8646460 + 27.2789230 14.3843610 39.1388410 27.8818600 14.9563820 39.6136930 + 26.5382220 14.9483050 38.9162310 20.8013430 15.8701080 36.5050390 + 20.1716170 15.1688390 36.6720520 20.2618570 16.6305210 36.2883550 + 23.7405380 32.4840310 49.1761000 24.6672690 32.2484580 49.2196960 + 23.7255810 33.3112310 48.6947030 31.9750440 32.0265880 36.1735250 + 32.1502630 31.3403620 35.5296170 31.2772010 32.5512930 35.7811920 + 27.5284450 14.5638640 49.5183350 27.4149900 14.8833250 50.4134870 + 28.3454190 14.9651150 49.2220630 30.3082940 31.7110170 49.0002040 + 31.1008260 31.2159400 48.7928000 30.6016090 32.3900310 49.6077650 + 18.5627730 28.7070030 22.8361140 18.8655770 27.8167770 22.6571360 + 19.3071320 29.2640250 22.6083390 16.9918420 19.6331830 16.4245510 + 16.1035120 19.9747800 16.3225390 17.2759610 19.4332150 15.5326340 + 24.8131380 31.0528330 20.1630480 24.1942820 31.5085830 19.5924920 + 25.6683160 31.2079790 19.7620180 19.7545590 27.4324240 26.0495170 + 20.3719590 28.1075320 25.7679620 18.8938710 27.8412220 25.9582670 + 28.2081920 30.7407780 22.6794990 28.2209080 30.3370070 21.8117250 + 27.6557140 31.5155070 22.5756420 29.5027340 27.4624000 17.7685160 + 29.3923670 26.5198330 17.8934580 29.4995590 27.8239640 18.6547920 + 30.8326750 15.1439240 12.9496690 30.5199410 15.2366070 13.8495760 + 31.5939220 15.7220270 12.8994120 28.0275170 31.8161620 15.9599900 + 27.8676310 31.5264560 16.8581730 27.8621880 31.0401750 15.4245130 + 27.2951230 30.9511890 18.5946390 27.7508180 30.1701270 18.9085010 + 27.6343750 31.6618710 19.1387570 15.0453780 26.7228350 25.7537130 + 15.2084820 26.2533710 24.9356500 15.5106230 26.2151910 26.4185970 + 14.6683800 20.1515510 12.5805800 14.5858470 21.0946270 12.7220790 + 14.3166860 20.0090420 11.7018150 16.6192760 26.0979780 27.9132940 + 16.2347550 25.4573450 28.5115900 16.9304950 26.8015900 28.4827670 + 30.2931640 22.2660760 14.0090420 30.2095360 22.6974980 13.1586860 + 31.0125830 22.7259110 14.4417240 31.3218890 29.1203020 16.7372550 + 30.6795050 28.4658640 17.0116270 30.9349550 29.5258110 15.9613220 + 15.1261050 22.8258960 13.4831730 15.9955900 23.1083760 13.7667650 + 14.6351370 23.6394830 13.3680540 18.1907640 14.5569820 18.0762530 + 18.0622270 14.5487720 19.0247450 17.3669660 14.8952910 17.7253540 + 29.7116270 28.0119480 13.2748900 29.4853850 27.2949920 13.8673540 + 29.3212470 27.7631920 12.4370650 15.1901570 16.3160940 27.5369230 + 14.4760090 16.5157860 28.1421840 15.6096610 15.5400510 27.9084030 + 29.2932520 25.9291420 14.9363060 29.0054220 26.3904110 15.7240940 + 30.0884690 25.4689190 15.2047280 15.4774160 30.3041200 28.5235760 + 15.5865280 29.3635940 28.3831150 14.8254720 30.5695950 27.8749490 + 31.1456790 30.0932830 21.4752660 31.2704210 30.9164000 21.9476470 + 32.0122350 29.8823560 21.1276810 17.6232600 31.3710110 30.3355370 + 18.4245330 31.6922160 30.7490770 17.1084420 31.0105690 31.0575280 + 30.7806800 30.5864480 14.3932100 30.4948310 30.1729620 13.5786280 + 30.5826350 31.5152190 14.2732620 15.3430410 23.8583570 29.2791420 + 15.8469430 23.2790850 29.8507650 14.6037830 24.1423800 29.8167790 + 17.3753490 22.0013160 30.1741490 17.4158830 21.7027030 31.0826720 + 18.2298990 22.4020770 30.0149010 20.0490780 20.6741940 12.2803160 + 19.8479840 19.8109300 12.6416500 19.8782830 20.5875300 11.3424760 + 20.8260010 31.3048210 26.9910830 20.2881100 32.0294270 26.6719530 + 21.0793970 30.8278550 26.2008170 18.8473580 17.7742560 12.2681040 + 19.1499480 17.7809990 11.3600190 19.5868170 17.4240420 12.7648700 + 23.6822220 32.5399420 27.2497480 23.6080920 33.4434560 27.5569850 + 22.7801060 32.2211320 27.2219550 15.5739720 30.7344600 23.2912730 + 15.1370710 30.9145400 24.1236880 16.1417400 31.4919220 23.1494450 + 32.4503350 27.9779420 12.9159750 31.6196310 28.0456070 13.3866980 + 32.6275180 28.8683540 12.6126610 31.9059810 24.7226900 15.4193950 + 32.6678720 25.2923550 15.5253640 31.9214180 24.1554100 16.1902260 + 31.9578980 25.0161270 12.5766470 32.2327820 25.9240150 12.4485690 + 31.7689720 24.9523800 13.5128460 31.8544320 22.9530260 17.5695900 + 31.4787920 22.1858190 17.1377190 31.1247440 23.3352960 18.0570830 + 15.9956080 20.5426490 28.0963370 15.1012130 20.5093250 28.4357080 + 16.5353630 20.7413280 28.8614620 14.6202230 20.4563760 15.5926940 + 13.7166310 20.7193960 15.4178600 15.1042850 20.7274930 14.8126900 + 17.1629440 19.5129300 13.5021320 17.8721140 19.0912520 13.0168600 + 16.4469380 19.5804530 12.8704670 16.8103600 15.5668630 12.5423970 + 17.5331730 16.1077570 12.8605190 17.0828120 15.2932050 11.6665510 + 30.3948130 15.0116180 25.8016230 31.0320350 15.6250320 26.1675420 + 30.5423020 15.0476840 24.8565460 32.9372680 16.9029970 12.5839370 + 33.8621990 16.7711150 12.3757660 32.9148470 16.9822790 13.5375820 + 33.0111170 17.6740630 15.2096080 32.2162670 17.6085750 15.7388990 + 33.2154450 18.6091270 15.1981430 29.9529590 31.7132180 19.2034470 + 30.5488660 31.3916750 18.5268890 30.2107740 31.2404000 19.9947740 + 17.8592160 28.1450090 29.3525100 17.8161790 27.7743000 30.2339560 + 17.9903170 29.0827660 29.4926920 21.5598190 29.7009680 24.9534820 + 21.3189550 29.9684240 24.0665340 22.5000830 29.8715410 25.0085680 + 16.9248430 14.5006690 28.4622680 17.4731420 14.3194740 27.6988790 + 16.9903740 13.7100800 28.9978990 17.6980190 31.0912340 26.4722880 + 17.1040510 30.9597040 27.2112920 17.6904030 30.2550480 26.0064980 + 30.5041800 32.3627480 23.0332200 30.0444770 33.1143290 22.6590220 + 29.8754260 31.6433950 22.9747000 17.3292420 28.4570720 25.4230920 + 16.6026480 27.8376010 25.3556870 17.3901570 28.8511330 24.5529000 + 20.9337520 30.6715720 22.2080330 21.4502540 30.0603080 21.6828590 + 21.5834900 31.1744500 22.6991340 23.6733020 31.5624210 23.0349310 + 23.9610830 31.3078510 22.1582320 24.1856240 31.0101570 23.6254880 + 16.2350440 15.6061890 16.1359540 16.9929800 15.7190770 15.5623570 + 15.7727610 16.4431090 16.0902970 30.4223830 14.7865170 15.6385200 + 30.6174460 15.6848620 15.9052630 29.6353700 14.5552250 16.1318150 + 31.9750440 32.0265880 17.3991760 32.1502630 31.3403620 16.7552680 + 31.2772010 32.5512930 17.0068430 24.5660640 24.3610130 2.9883870 + 23.7902740 23.8810570 3.2782440 25.2173570 23.6815780 2.8140030 + 18.5826470 24.6729940 3.8659630 17.7511350 24.4178650 4.2656140 + 19.1907450 24.7440710 4.6017550 28.5868070 28.7670320 1.7683000 + 28.1249600 27.9957560 2.0970170 29.3993620 28.7936390 2.2735450 + 18.5627730 28.7070030 4.0617650 18.8655770 27.8167770 3.8827870 + 19.3071320 29.2640250 3.8339900 14.9551430 22.2337480 3.5341720 + 15.5267540 21.4659680 3.5345360 14.9552970 22.5326240 2.6248330 + 24.0069630 27.0367320 2.9954030 23.9377910 26.0957260 2.8343160 + 24.7689490 27.1268730 3.5676600 16.1976300 17.6421840 5.3210650 + 16.0179140 16.7447590 5.6013410 15.7956380 18.1893710 5.9957600 + 25.0374800 19.8437700 3.2222960 25.4139620 18.9709580 3.1096630 + 24.9394310 20.1796400 2.3313400 16.8162970 20.1382340 3.9292990 + 17.4973080 20.4020710 4.5480390 16.5011020 19.2983210 4.2631000 + 21.0087540 21.1849700 3.0165580 21.5165760 21.6830670 3.6570600 + 21.5400780 20.4084900 2.8404940 33.1098470 19.3554890 6.7194930 + 32.4050640 19.7436600 6.2010040 33.3756390 20.0505180 7.3215860 + 19.2923640 15.8248260 7.2829000 19.2942080 16.3420650 6.4774900 + 18.4627950 15.3478440 7.2598930 20.5426490 25.4643440 5.4602500 + 20.2095870 26.0912360 6.1023570 20.7193170 25.9905320 4.6804170 + 29.0560400 19.2788520 2.9278840 28.3515970 19.5673410 3.5081950 + 29.4172560 20.0888630 2.5678400 18.9738970 17.5358220 5.2899450 + 19.3155780 18.3800270 4.9953320 18.0354780 17.6841960 5.4064790 + 19.7545590 27.4324240 7.2751680 20.3719590 28.1075320 6.9936130 + 18.8938710 27.8412220 7.1839180 30.6723180 28.8963650 5.1906320 + 29.9886700 29.5662760 5.1822990 31.2117470 29.0944300 4.4251180 + 32.1247320 18.7243310 3.3188050 31.1772230 18.7582290 3.4503480 + 32.4497310 19.5382260 3.7037410 28.2081920 30.7407780 3.9051500 + 28.2209080 30.3370070 3.0373760 27.6557140 31.5155070 3.8012930 + 27.6067360 25.6437620 5.2334110 28.0236150 25.4297730 4.3987570 + 28.3307180 25.9010410 5.8042730 31.5529460 24.0424840 5.3250350 + 30.7248090 24.1117930 4.8500480 32.1479940 24.6279150 4.8566180 + 28.5171470 20.8294160 6.2705220 28.1042650 21.6547870 6.5245210 + 27.7847420 20.2439200 6.0781580 21.1185960 27.3021620 3.2963100 + 20.8214250 26.6967090 2.6170880 22.0685780 27.3398930 3.1852460 + 19.3632880 20.3897270 4.9122930 19.9147470 20.4992610 4.1376180 + 19.8776390 20.7634870 5.6278160 29.2071570 30.8753490 6.9586200 + 28.7302130 31.6825680 6.7658810 28.5233360 30.2231820 7.1112410 + 20.2104390 27.0403310 9.9470900 19.3132920 27.2643280 10.1944300 + 20.2357260 27.1638250 8.9982300 19.0375610 23.9116630 8.5228270 + 18.8983380 24.7839430 8.8915670 18.1556970 23.5689440 8.3776210 + 32.7870780 30.6365430 12.0277590 33.2630500 31.1148320 12.7066670 + 33.4077940 30.5682920 11.3023090 14.9894260 25.6814180 4.4399180 + 15.0674680 25.8162950 3.4954900 15.6035940 24.9730070 4.6327300 + 32.1904030 27.8278280 9.1877600 32.3167090 27.5890160 8.2694780 + 32.2325410 26.9962820 9.6599680 26.0520770 31.5306280 7.7572410 + 26.5665440 31.4414290 8.5594840 25.2089850 31.8765980 8.0500320 + 32.0428040 19.8810740 10.1527340 31.4272310 20.3890410 9.6242800 + 31.7224460 18.9809070 10.0953280 15.0453780 26.7228350 6.9793640 + 15.2084820 26.2533710 6.1613010 15.5106230 26.2151910 7.6442480 + 19.8172550 15.8534110 2.0154210 19.3740700 16.6343650 1.6838730 + 20.3757540 16.1764000 2.7225150 24.1042360 18.7202630 7.6189530 + 23.6421730 18.9285650 8.4309470 23.7020470 17.9061980 7.3160200 + 29.1046870 19.9411580 8.7486190 28.2540460 19.6417330 9.0695260 + 28.9448660 20.1853590 7.8370010 26.1996580 21.4413330 10.8484980 + 26.5249990 20.6077080 10.5087210 26.9876910 21.9641850 10.9963310 + 21.8548450 16.3981440 3.8743810 22.1520780 17.3044270 3.7935830 + 22.4034010 15.9100220 3.2603380 22.0485980 21.8753260 10.4095730 + 21.9529580 20.9347990 10.2596130 22.8917960 22.0968330 10.0143800 + 17.1796520 18.2866930 8.5629510 16.7859910 19.1342140 8.7702290 + 16.4914920 17.6493300 8.7538150 23.7541570 18.3701900 11.6326250 + 23.0639890 18.1774100 12.2672340 24.4973870 18.6536540 12.1650550 + 14.4813570 16.2095390 2.5959590 14.1926620 16.7798250 3.3084570 + 15.2259330 15.7299840 2.9590820 26.0304540 22.2100340 4.4680170 + 25.2985660 22.7187150 4.8170270 25.6328880 21.3930320 4.1668950 + 22.4681930 18.8854540 2.8732660 22.4717990 18.4444490 2.0237200 + 23.3633050 19.2071870 2.9804480 18.3184310 18.7681030 1.8326870 + 17.9784360 19.2456260 2.5893920 17.5561630 18.3146150 1.4727970 + 26.4930450 17.6634020 3.8803110 26.5103190 18.1142670 4.7244960 + 26.2446030 16.7639660 4.0936550 29.9201200 15.0766200 9.7189490 + 30.2446970 14.3455860 10.2447470 29.9557710 14.7579840 8.8170480 + 16.6192760 26.0979780 9.1389450 16.2347550 25.4573450 9.7372410 + 16.9304950 26.8015900 9.7084180 22.7689900 22.9456320 4.6198070 + 23.1360030 22.4714890 5.3659410 22.5794960 23.8197890 4.9606410 + 20.5589270 21.9864960 6.9382280 20.2546340 22.8656940 7.1632640 + 21.5135730 22.0464750 6.9739720 29.8459040 25.1891310 3.3275520 + 30.5658160 25.6846600 2.9371630 29.6440860 24.5109200 2.6829390 + 25.2277840 25.2600370 9.2144520 25.1615150 24.3396040 8.9602110 + 24.5982980 25.3575810 9.9289160 16.6153000 22.8267700 8.0853640 + 16.2567940 23.4921550 8.6726980 16.3207560 21.9951250 8.4566260 + 19.8166120 23.2851940 10.9693190 19.5166260 23.4309120 10.0721010 + 20.5877360 22.7257230 10.8766580 25.1594570 28.0820940 8.9648320 + 25.1739110 27.1501900 8.7467230 24.4519670 28.1680700 9.6038090 + 31.3705780 24.7228280 8.3116900 30.6453970 25.3157060 8.1146290 + 31.8981240 24.7151820 7.5130270 24.5928470 29.7238510 6.0588820 + 25.2370690 29.9297890 6.7362240 24.9557910 28.9626910 5.6059670 + 25.8660550 27.7270860 4.7766270 26.5082780 27.0264020 4.8898440 + 26.3909900 28.5069300 4.5963160 27.6398170 28.5265760 7.9802330 + 27.9754410 29.1132450 8.6580250 26.7198510 28.3958470 8.2100120 + 15.1901570 16.3160940 8.7625740 14.4760090 16.5157860 9.3678350 + 15.6096610 15.5400510 9.1340540 15.4774160 30.3041200 9.7492270 + 15.5865280 29.3635940 9.6087660 14.8254720 30.5695950 9.1006000 + 23.4686750 28.5757090 11.1490390 23.1483620 27.8566330 11.6936080 + 22.7945110 29.2512160 11.2226450 26.6840350 18.8083250 6.5127190 + 27.0521170 17.9878460 6.8406760 25.8238550 18.8685140 6.9282840 + 23.6442340 21.4622840 6.7365160 24.1427590 21.9368660 7.4017010 + 23.7865290 20.5386360 6.9435190 30.8509200 17.6790800 7.5793550 + 30.3482800 18.4196200 7.9187360 31.6665860 18.0674800 7.2630340 + 31.1456790 30.0932830 2.7009170 31.2704210 30.9164000 3.1732980 + 32.0122350 29.8823560 2.3533320 18.6174320 32.1864040 2.3726300 + 19.3536800 31.6379500 2.6434870 19.0015240 33.0520050 2.2332290 + 26.4597230 27.4789980 11.5087290 25.8535390 27.5021580 10.7683040 + 26.1551340 26.7473020 12.0454540 27.8897600 31.2070270 10.1196700 + 28.8419350 31.1228290 10.0696940 27.7425820 31.8711980 10.7930490 + 15.3430410 23.8583570 10.5047930 15.8469430 23.2790850 11.0764160 + 14.6037830 24.1423800 11.0424300 22.3968350 25.2654560 10.0383450 + 21.6314020 25.8339560 9.9538120 22.5784310 24.9730770 9.1451680 + 29.5391700 26.9959890 10.5958470 30.2801170 27.3335650 10.0925930 + 28.7764380 27.1651950 10.0428240 17.3753490 22.0013160 11.3998000 + 17.4158830 21.7027030 12.3083230 18.2298990 22.4020770 11.2405520 + 19.3159300 20.5805260 9.3672490 18.7855760 20.0896210 8.7395830 + 19.9847370 21.0089460 8.8330420 28.2137360 25.0474720 9.1313680 + 28.6278380 25.2019800 9.9804100 27.2788360 25.1729940 9.2939460 + 28.6859530 22.3870880 11.1352830 29.2680300 21.6323200 11.0473310 + 28.8621300 22.9178320 10.3584310 19.8031600 17.5467630 9.4469780 + 19.7088470 16.9288380 8.7220650 19.2228990 18.2733920 9.2199690 + 22.5693040 16.1040870 6.4797170 22.1210340 16.1265130 5.6342720 + 21.9358240 15.7059890 7.0767470 22.9752590 24.9995200 7.1009610 + 23.3940700 25.8427930 6.9285850 22.0561220 25.1367240 6.8716390 + 25.3116490 22.7311380 8.4847450 25.4312700 22.1352520 9.2242290 + 26.1710490 22.7681070 8.0648750 27.6504390 23.2848570 7.0609960 + 27.1239610 23.8091190 6.4575100 27.9935730 23.9175960 7.6919690 + 20.8260010 31.3048210 8.2167340 20.2881100 32.0294270 7.8976040 + 21.0793970 30.8278550 7.4264680 22.0785260 19.2732730 9.7423270 + 22.6684950 18.9648580 10.4301090 21.2605500 18.8012480 9.8983170 + 26.8978690 18.8898540 9.9756290 26.2094210 18.2280080 9.9106280 + 27.6184710 18.4436810 10.4204750 23.6822220 32.5399420 8.4753990 + 23.6080920 33.4434560 8.7826360 22.7801060 32.2211320 8.4476060 + 15.0849510 29.8674010 1.7787610 15.4152520 28.9995070 1.5466250 + 15.5140510 30.0732530 2.6092570 15.5739720 30.7344600 4.5169240 + 15.1370710 30.9145400 5.3493390 16.1417400 31.4919220 4.3750960 + 31.2101900 30.2361600 8.8046550 30.6103890 30.2954160 8.0610470 + 31.3395800 29.2966580 8.9343400 29.8953540 26.9613580 6.9022710 + 29.0813380 27.3910740 7.1648500 30.3027740 27.5731990 6.2891760 + 16.4440080 23.6317400 5.4161460 16.8113120 23.5444800 6.2957480 + 15.8750900 22.8683950 5.3168320 31.2443940 22.1001780 8.4291930 + 31.0130030 21.8714530 7.5289880 31.5048490 23.0201330 8.3836820 + 15.9956080 20.5426490 9.3219880 15.1012130 20.5093250 9.6613590 + 16.5353630 20.7413280 10.0871130 29.6832010 17.3258210 11.2071630 + 30.5602190 17.3341610 11.5905630 29.6952850 16.5889050 10.5963980 + 31.1295280 21.1787750 2.0959650 31.6532760 20.6850400 1.4649820 + 31.7154700 21.3138110 2.8407220 31.3085000 21.2627620 5.6179200 + 30.3587710 21.2291160 5.7324190 31.4898010 22.1727730 5.3828970 + 16.4995790 14.8174820 3.6703100 17.1471980 14.2672200 3.2298260 + 16.9197630 15.0717970 4.4918910 30.3948130 15.0116180 7.0272740 + 31.0320350 15.6250320 7.3931930 30.5423020 15.0476840 6.0821970 + 16.2527790 14.9730490 6.4128420 15.9042610 15.4294310 7.1786600 + 15.9215490 14.0787620 6.4950850 17.8592160 28.1450090 10.5781610 + 17.8161790 27.7743000 11.4596070 17.9903170 29.0827660 10.7183430 + 21.5598190 29.7009680 6.1791330 21.3189550 29.9684240 5.2921850 + 22.5000830 29.8715410 6.2342190 23.7652610 16.1642370 9.9347840 + 23.7041500 16.7564200 10.6843250 24.7052990 16.0568330 9.7898100 + 26.4027170 15.8212430 9.5740130 27.0167580 16.1391720 8.9121210 + 26.9476730 15.3361020 10.1935990 32.8202350 31.7204060 6.9801970 + 32.3260630 32.1172930 6.2629100 32.2115640 31.0953270 7.3739250 + 16.9248430 14.5006690 9.6879190 17.4731420 14.3194740 8.9245300 + 16.9903740 13.7100800 10.2235500 17.6980190 31.0912340 7.6979390 + 17.1040510 30.9597040 8.4369430 17.6904030 30.2550480 7.2321490 + 27.1435210 14.3844570 5.9009420 26.2695050 14.7179680 5.6982350 + 27.0345960 13.9117750 6.7261290 28.0507190 16.5915440 7.2851140 + 27.7220550 15.7767200 6.9052870 28.9989490 16.5485250 7.1616830 + 30.5041800 32.3627480 4.2588710 30.0444770 33.1143290 3.8846730 + 29.8754260 31.6433950 4.2003510 17.3292420 28.4570720 6.6487430 + 16.6026480 27.8376010 6.5813380 17.3901570 28.8511330 5.7785510 + 20.9337520 30.6715720 3.4336840 21.4502540 30.0603080 2.9085100 + 21.5834900 31.1744500 3.9247850 23.6733020 31.5624210 4.2605820 + 23.9610830 31.3078510 3.3838830 24.1856240 31.0101570 4.8511390 + 24.8910030 15.3014410 4.8402330 24.1081820 15.7759910 5.1199090 + 24.5972960 14.3969240 4.7315510 29.4431100 16.0037510 2.8851420 + 29.8839190 15.9482610 2.0373020 29.1738690 16.9195520 2.9561600 + 23.7405380 32.4840310 11.6274020 24.6672690 32.2484580 11.6709980 + 23.7255810 33.3112310 11.1460050 20.9268990 15.1485060 11.3915900 + 20.6453260 15.6518660 10.6276720 21.3088690 14.3506810 11.0258030 + 27.5284450 14.5638640 11.9696370 27.4149900 14.8833250 12.8647890 + 28.3454190 14.9651150 11.6733650 30.3082940 31.7110170 11.4515060 + 31.1008260 31.2159400 11.2441020 30.6016090 32.3900310 12.0590670 + 26.4342600 3.8087620 57.4305070 26.3536650 2.8942230 57.1596780 + 26.0207020 4.3054690 56.7244780 24.5660640 5.5866640 59.3114340 + 23.7902740 5.1067080 59.6012910 25.2173570 4.9072290 59.1370500 + 28.5868070 9.9926830 58.0913470 28.1249600 9.2214070 58.4200640 + 29.3993620 10.0192900 58.5965920 14.9551430 3.4593990 59.8572190 + 15.5267540 2.6916190 59.8575830 14.9552970 3.7582750 58.9478800 + 24.0069630 8.2623830 59.3184500 23.9377910 7.3213770 59.1573630 + 24.7689490 8.3525240 59.8907070 25.6794730 7.1624080 55.1049370 + 25.0612000 7.6273530 54.5412090 26.1917980 7.8551560 55.5218880 + 15.0477930 7.8480610 52.4789000 14.6705910 8.3367710 51.7473900 + 15.3051000 8.5205890 53.1095530 28.2081920 11.9664290 60.2281970 + 28.2209080 11.5626580 59.3604230 27.6557140 12.7411580 60.1243400 + 29.5027340 8.6880510 55.3172140 29.3923670 7.7454840 55.4421560 + 29.4995590 9.0496150 56.2034900 25.0447620 4.3145830 54.6734630 + 24.1176900 4.2483210 54.9023100 25.1972440 5.2525960 54.5589870 + 29.0744910 5.8766130 55.1769880 28.4557330 5.5385680 54.5296180 + 29.0569360 5.2325890 55.8849070 21.1185960 8.5278130 59.6193570 + 20.8214250 7.9223600 58.9401350 22.0685780 8.5655440 59.5082930 + 27.2509610 5.1152940 52.1842630 27.6902890 4.2775370 52.0380450 + 27.9638030 5.7482340 52.2706770 25.3604990 10.0549010 56.1523870 + 25.8000900 10.7973340 55.7379260 25.2991880 10.2975580 57.0762830 + 17.3508890 3.7355550 54.9561010 17.2306490 4.4617640 54.3442280 + 17.0409780 2.9658460 54.4788920 16.2341890 8.6070880 57.1735830 + 15.8269970 8.7485470 56.3189430 17.1254900 8.3231040 56.9707040 + 28.0275170 13.0418130 53.5086880 27.8676310 12.7521070 54.4068710 + 27.8621880 12.2658260 52.9732110 20.5063550 12.8216660 55.2858500 + 20.3306030 11.9052200 55.0726300 19.6519290 13.1803950 55.5256300 + 27.7301300 10.5505690 52.0684880 27.0366460 10.5482980 51.4087160 + 28.4724160 10.1265010 51.6379050 27.2951230 12.1768400 56.1433370 + 27.7508180 11.3957780 56.4571990 27.6343750 12.8875220 56.6874550 + 19.6086770 2.2024190 56.0665930 19.3827690 1.9861360 56.9712550 + 18.8279300 2.6352650 55.7211900 26.8384530 2.2087560 54.6656580 + 26.2393420 2.9323360 54.4820200 27.3864140 2.1464340 53.8833030 + 21.5423580 3.4224270 51.5853190 20.9740480 2.9742520 50.9589100 + 22.2512580 3.7817050 51.0518340 19.0871060 7.4182460 53.8579600 + 18.3133320 6.8780080 53.6978320 19.8165690 6.8989070 53.5197360 + 29.8459040 6.4147820 59.6505990 30.5658160 6.9103110 59.2602100 + 29.6440860 5.7365710 59.0059860 19.1308460 7.0862840 57.4958410 + 19.6487130 6.2831100 57.4415300 18.6792480 7.0241980 58.3375240 + 24.0177960 8.3529120 52.7685710 24.3593660 9.0971350 52.2729030 + 23.1890670 8.6660240 53.1310540 30.2931640 3.4917270 51.5577400 + 30.2095360 3.9231490 50.7073840 31.0125830 3.9515620 51.9904220 + 31.3218890 10.3459530 54.2859530 30.6795050 9.6915150 54.5603250 + 30.9349550 10.7514620 53.5100200 26.9005370 7.6744960 58.1331220 + 27.2529190 7.0773090 57.4732590 26.0167700 7.3489190 58.3039470 + 22.9868650 8.4342650 55.5401630 23.6739780 8.9811860 55.9209220 + 22.2001070 8.9783380 55.5751240 15.1261050 4.0515470 51.0318710 + 15.9955900 4.3340270 51.3154630 14.6351370 4.8651340 50.9167520 + 22.2895860 5.4388680 55.1526990 22.7458640 6.2493930 55.3787180 + 21.9384070 5.1211820 55.9845480 29.7116270 9.2375990 50.8235880 + 29.4853850 8.5206430 51.4160520 29.3212470 8.9888430 49.9857630 + 15.4932300 13.2642850 51.5980340 15.8529940 13.8632190 50.9437610 + 15.3524640 13.8102740 52.3715370 29.2932520 7.1547930 52.4850040 + 29.0054220 7.6160620 53.2727920 30.0884690 6.6945700 52.7534260 + 21.5100920 10.6474050 52.4154010 21.5011020 11.3803740 51.7998520 + 20.5899280 10.4005630 52.5080970 17.1107560 5.8688940 53.1600770 + 16.5035510 6.6087840 53.1696070 17.5856910 5.9588300 52.3338970 + 24.4960520 10.7102290 51.0779200 24.5972500 10.5066280 50.1481180 + 23.5962260 10.4560570 51.2826980 23.1378630 13.2288610 55.7726870 + 23.3920130 13.1910000 54.8506240 22.1891110 13.1021940 55.7655120 + 29.1431210 4.1480490 57.3485380 28.2021350 4.1630720 57.5233070 + 29.4575280 3.3616450 57.7945680 19.1212850 5.8300090 50.9089340 + 19.8876120 5.7181450 51.4714770 19.1987540 5.1338060 50.2566110 + 17.8159610 3.2625160 51.5922230 17.8963200 2.3152670 51.7039630 + 18.7079360 3.5932040 51.6982890 31.1456790 11.3189340 59.0239640 + 31.2704210 12.1420510 59.4963450 32.0122350 11.1080070 58.6763790 + 18.6174320 13.4120550 58.6956770 19.3536800 12.8636010 58.9665340 + 19.0015240 14.2776560 58.5562760 15.5019800 9.4794120 54.5698280 + 14.5759580 9.7215260 54.5603690 15.9676230 10.3068380 54.4483030 + 21.7276630 12.5850860 50.5182340 22.5205240 12.8739690 50.0664130 + 21.2080980 12.1543030 49.8394820 30.7806800 11.8120990 51.9419080 + 30.4948310 11.3986130 51.1273260 30.5826350 12.7408700 51.8219600 + 22.2454030 7.8054270 50.3824690 22.1404670 7.1906620 51.1086070 + 22.0778250 7.2820160 49.5987700 25.4856760 6.8674300 50.9866680 + 24.9366860 7.3143600 51.6309420 26.1076020 6.3623550 51.5104350 + 21.1531880 5.8265220 52.8831980 21.5748300 5.6605090 53.7263370 + 21.2782720 5.0165450 52.3887120 23.6659520 4.8502830 50.1309080 + 24.1865180 4.1351850 49.7650230 24.3127920 5.4888700 50.4309590 + 24.2307550 12.9314440 52.4210820 25.1258340 13.2699410 52.4429580 + 24.2625180 12.2093850 51.7935100 17.8703710 8.3041490 50.6497820 + 18.3078580 8.8471160 51.3055400 18.3551440 7.4788440 50.6594160 + 15.0849510 11.0930520 58.1018080 15.4152520 10.2251580 57.8696720 + 15.5140510 11.2989040 58.9323040 19.6811430 9.4239530 55.7620050 + 19.3806970 9.3004500 56.6623960 19.5748920 8.5648120 55.3535780 + 32.4503350 9.2035930 50.4646730 31.6196310 9.2712580 50.9353960 + 32.6275180 10.0940050 50.1613590 31.9059810 5.9483410 52.9680930 + 32.6678720 6.5180060 53.0740620 31.9214180 5.3810610 53.7389240 + 15.4064150 4.4721340 57.1988590 14.7512990 4.2032980 56.5548290 + 16.2442100 4.3625820 56.7490570 32.9119780 6.8033510 57.8122860 + 33.2828610 6.0200830 57.4058830 33.5521710 7.4922610 57.6340160 + 31.9578980 6.2417780 50.1253450 32.2327820 7.1496660 49.9972670 + 31.7689720 6.1780310 51.0615440 31.8544320 4.1786770 55.1182880 + 31.4787920 3.4114700 54.6864170 31.1247440 4.5609470 55.6057810 + 31.1295280 2.4044260 58.4190120 31.6532760 1.9106910 57.7880290 + 31.7154700 2.5394620 59.1637690 29.9529590 12.9388690 56.7521450 + 30.5488660 12.6173260 56.0755870 30.2107740 12.4660510 57.5434720 + 20.9337520 11.8972230 59.7567310 21.4502540 11.2859590 59.2315570 + 21.5834900 12.4001010 60.2478320 15.6122420 13.0001620 56.1814660 + 15.4444460 12.3672300 56.8796550 14.7456930 13.2061020 55.8308850 + 17.2185120 11.6934850 53.6264800 16.6932740 12.0742880 52.9226760 + 17.1429700 12.3185620 54.3474510 31.9750440 13.2522390 54.9478740 + 32.1502630 12.5660130 54.3039660 31.2772010 13.7769440 54.5555410 + 19.8178090 13.6417230 52.5014050 20.5496910 13.3576510 51.9537940 + 20.0771760 13.4030510 53.3913430 18.9792880 9.7581960 52.5060380 + 18.3501760 10.2267060 53.0546210 19.0940710 8.9131180 52.9406570 + 26.4342600 3.8087620 38.6561580 26.3536650 2.8942230 38.3853290 + 26.0207020 4.3054690 37.9501290 24.5660640 5.5866640 40.5370850 + 23.7902740 5.1067080 40.8269420 25.2173570 4.9072290 40.3627010 + 18.5826470 5.8986450 41.4146610 17.7511350 5.6435160 41.8143120 + 19.1907450 5.9697220 42.1504530 28.5868070 9.9926830 39.3169980 + 28.1249600 9.2214070 39.6457150 29.3993620 10.0192900 39.8222430 + 18.5627730 9.9326540 41.6104630 18.8655770 9.0424280 41.4314850 + 19.3071320 10.4896760 41.3826880 14.9551430 3.4593990 41.0828700 + 15.5267540 2.6916190 41.0832340 14.9552970 3.7582750 40.1735310 + 24.8131380 12.2784840 38.9373970 24.1942820 12.7342340 38.3668410 + 25.6683160 12.4336300 38.5363670 24.0069630 8.2623830 40.5441010 + 23.9377910 7.3213770 40.3830140 24.7689490 8.3525240 41.1163580 + 25.6794730 7.1624080 36.3305880 25.0612000 7.6273530 35.7668600 + 26.1917980 7.8551560 36.7475390 20.5426490 6.6899950 43.0089480 + 20.2095870 7.3168870 43.6510550 20.7193170 7.2161830 42.2291150 + 19.7545590 8.6580750 44.8238660 20.3719590 9.3331830 44.5423110 + 18.8938710 9.0668730 44.7326160 15.0477930 7.8480610 33.7045510 + 14.6705910 8.3367710 32.9730410 15.3051000 8.5205890 34.3352040 + 30.6723180 10.1220160 42.7393300 29.9886700 10.7919270 42.7309970 + 31.2117470 10.3200810 41.9738160 28.2081920 11.9664290 41.4538480 + 28.2209080 11.5626580 40.5860740 27.6557140 12.7411580 41.3499910 + 29.5027340 8.6880510 36.5428650 29.3923670 7.7454840 36.6678070 + 29.4995590 9.0496150 37.4291410 27.6067360 6.8694130 42.7821090 + 28.0236150 6.6554240 41.9474550 28.3307180 7.1266920 43.3529710 + 25.0447620 4.3145830 35.8991140 24.1176900 4.2483210 36.1279610 + 25.1972440 5.2525960 35.7846380 31.5529460 5.2681350 42.8737330 + 30.7248090 5.3374440 42.3987460 32.1479940 5.8535660 42.4053160 + 29.0744910 5.8766130 36.4026390 28.4557330 5.5385680 35.7552690 + 29.0569360 5.2325890 37.1105580 20.6504260 4.8410570 38.6810870 + 20.2461260 4.1287820 38.1856770 20.7367380 4.4963810 39.5698910 + 21.1185960 8.5278130 40.8450080 20.8214250 7.9223600 40.1657860 + 22.0685780 8.5655440 40.7339440 29.2071570 12.1010000 44.5073180 + 28.7302130 12.9082190 44.3145790 28.5233360 11.4488330 44.6599390 + 20.2104390 8.2659820 47.4957880 19.3132920 8.4899790 47.7431280 + 20.2357260 8.3894760 46.5469280 27.2509610 5.1152940 33.4099140 + 27.6902890 4.2775370 33.2636960 27.9638030 5.7482340 33.4963280 + 19.0375610 5.1373140 46.0715250 18.8983380 6.0095940 46.4402650 + 18.1556970 4.7945950 45.9263190 25.3604990 10.0549010 37.3780380 + 25.8000900 10.7973340 36.9635770 25.2991880 10.2975580 38.3019340 + 20.8355960 11.0794840 48.2800400 20.8071390 11.4837790 47.4128830 + 20.6720930 10.1505200 48.1172000 17.3508890 3.7355550 36.1817520 + 17.2306490 4.4617640 35.5698790 17.0409780 2.9658460 35.7045430 + 32.7870780 11.8621940 49.5764570 33.2630500 12.3404830 50.2553650 + 33.4077940 11.7939430 48.8510070 14.9894260 6.9070690 41.9886160 + 15.0674680 7.0419460 41.0441880 15.6035940 6.1986580 42.1814280 + 16.2341890 8.6070880 38.3992340 15.8269970 8.7485470 37.5445940 + 17.1254900 8.3231040 38.1963550 32.1904030 9.0534790 46.7364580 + 32.3167090 8.8146670 45.8181760 32.2325410 8.2219330 47.2086660 + 26.0520770 12.7562790 45.3059390 26.5665440 12.6670800 46.1081820 + 25.2089850 13.1022490 45.5987300 28.0275170 13.0418130 34.7343390 + 27.8676310 12.7521070 35.6325220 27.8621880 12.2658260 34.1988620 + 20.5063550 12.8216660 36.5115010 20.3306030 11.9052200 36.2982810 + 19.6519290 13.1803950 36.7512810 27.7301300 10.5505690 33.2941390 + 27.0366460 10.5482980 32.6343670 28.4724160 10.1265010 32.8635560 + 27.2951230 12.1768400 37.3689880 27.7508180 11.3957780 37.6828500 + 27.6343750 12.8875220 37.9131060 15.0453780 7.9484860 44.5280620 + 15.2084820 7.4790220 43.7099990 15.5106230 7.4408420 45.1929460 + 26.1996580 2.6669840 48.3971960 26.5249990 1.8333590 48.0574190 + 26.9876910 3.1898360 48.5450290 19.6086770 2.2024190 37.2922440 + 19.3827690 1.9861360 38.1969060 18.8279300 2.6352650 36.9468410 + 26.8384530 2.2087560 35.8913090 26.2393420 2.9323360 35.7076710 + 27.3864140 2.1464340 35.1089540 22.0485980 3.1009770 47.9582710 + 21.9529580 2.1604500 47.8083110 22.8917960 3.3224840 47.5630780 + 26.0304540 3.4356850 42.0167150 25.2985660 3.9443660 42.3657250 + 25.6328880 2.6186830 41.7155930 21.5423580 3.4224270 32.8109700 + 20.9740480 2.9742520 32.1845610 22.2512580 3.7817050 32.2774850 + 16.6192760 7.3236290 46.6876430 16.2347550 6.6829960 47.2859390 + 16.9304950 8.0272410 47.2571160 22.7689900 4.1712830 42.1685050 + 23.1360030 3.6971400 42.9146390 22.5794960 5.0454400 42.5093390 + 20.5589270 3.2121470 44.4869260 20.2546340 4.0913450 44.7119620 + 21.5135730 3.2721260 44.5226700 19.0871060 7.4182460 35.0836110 + 18.3133320 6.8780080 34.9234830 19.8165690 6.8989070 34.7453870 + 29.8459040 6.4147820 40.8762500 30.5658160 6.9103110 40.4858610 + 29.6440860 5.7365710 40.2316370 25.2277840 6.4856880 46.7631500 + 25.1615150 5.5652550 46.5089090 24.5982980 6.5832320 47.4776140 + 19.1308460 7.0862840 38.7214920 19.6487130 6.2831100 38.6671810 + 18.6792480 7.0241980 39.5631750 24.0177960 8.3529120 33.9942220 + 24.3593660 9.0971350 33.4985540 23.1890670 8.6660240 34.3567050 + 16.6153000 4.0524210 45.6340620 16.2567940 4.7178060 46.2213960 + 16.3207560 3.2207760 46.0053240 19.8166120 4.5108450 48.5180170 + 19.5166260 4.6565630 47.6207990 20.5877360 3.9513740 48.4253560 + 25.1594570 9.3077450 46.5135300 25.1739110 8.3758410 46.2954210 + 24.4519670 9.3937210 47.1525070 30.2931640 3.4917270 32.7833910 + 30.2095360 3.9231490 31.9330350 31.0125830 3.9515620 33.2160730 + 31.3705780 5.9484790 45.8603880 30.6453970 6.5413570 45.6633270 + 31.8981240 5.9408330 45.0617250 31.3218890 10.3459530 35.5116040 + 30.6795050 9.6915150 35.7859760 30.9349550 10.7514620 34.7356710 + 26.9005370 7.6744960 39.3587730 27.2529190 7.0773090 38.6989100 + 26.0167700 7.3489190 39.5295980 22.9868650 8.4342650 36.7658140 + 23.6739780 8.9811860 37.1465730 22.2001070 8.9783380 36.8007750 + 15.1261050 4.0515470 32.2575220 15.9955900 4.3340270 32.5411140 + 14.6351370 4.8651340 32.1424030 22.2895860 5.4388680 36.3783500 + 22.7458640 6.2493930 36.6043690 21.9384070 5.1211820 37.2101990 + 24.5928470 10.9495020 43.6075800 25.2370690 11.1554400 44.2849220 + 24.9557910 10.1883420 43.1546650 25.8660550 8.9527370 42.3253250 + 26.5082780 8.2520530 42.4385420 26.3909900 9.7325810 42.1450140 + 29.7116270 9.2375990 32.0492390 29.4853850 8.5206430 32.6417030 + 29.3212470 8.9888430 31.2114140 27.6398170 9.7522270 45.5289310 + 27.9754410 10.3388960 46.2067230 26.7198510 9.6214980 45.7587100 + 15.4932300 13.2642850 32.8236850 15.8529940 13.8632190 32.1694120 + 15.3524640 13.8102740 33.5971880 29.2932520 7.1547930 33.7106550 + 29.0054220 7.6160620 34.4984430 30.0884690 6.6945700 33.9790770 + 15.4774160 11.5297710 47.2979250 15.5865280 10.5892450 47.1574640 + 14.8254720 11.7952460 46.6492980 23.4686750 9.8013600 48.6977370 + 23.1483620 9.0822840 49.2423060 22.7945110 10.4768670 48.7713430 + 21.5100920 10.6474050 33.6410520 21.5011020 11.3803740 33.0255030 + 20.5899280 10.4005630 33.7337480 17.1107560 5.8688940 34.3857280 + 16.5035510 6.6087840 34.3952580 17.5856910 5.9588300 33.5595480 + 24.4960520 10.7102290 32.3035710 24.5972500 10.5066280 31.3737690 + 23.5962260 10.4560570 32.5083490 23.6442340 2.6879350 44.2852140 + 24.1427590 3.1625170 44.9503990 23.7865290 1.7642870 44.4922170 + 23.1378630 13.2288610 36.9983380 23.3920130 13.1910000 36.0762750 + 22.1891110 13.1021940 36.9911630 29.1431210 4.1480490 38.5741890 + 28.2021350 4.1630720 38.7489580 29.4575280 3.3616450 39.0202190 + 19.1212850 5.8300090 32.1345850 19.8876120 5.7181450 32.6971280 + 19.1987540 5.1338060 31.4822620 17.8159610 3.2625160 32.8178740 + 17.8963200 2.3152670 32.9296140 18.7079360 3.5932040 32.9239400 + 31.1456790 11.3189340 40.2496150 31.2704210 12.1420510 40.7219960 + 32.0122350 11.1080070 39.9020300 18.6174320 13.4120550 39.9213280 + 19.3536800 12.8636010 40.1921850 19.0015240 14.2776560 39.7819270 + 15.5019800 9.4794120 35.7954790 14.5759580 9.7215260 35.7860200 + 15.9676230 10.3068380 35.6739540 17.6232600 12.5966620 49.1098860 + 18.4245330 12.9178670 49.5234260 17.1084420 12.2362200 49.8318770 + 21.7276630 12.5850860 31.7438850 22.5205240 12.8739690 31.2920640 + 21.2080980 12.1543030 31.0651330 26.4597230 8.7046490 49.0574270 + 25.8535390 8.7278090 48.3170020 26.1551340 7.9729530 49.5941520 + 27.8897600 12.4326780 47.6683680 28.8419350 12.3484800 47.6183920 + 27.7425820 13.0968490 48.3417470 30.7806800 11.8120990 33.1675590 + 30.4948310 11.3986130 32.3529770 30.5826350 12.7408700 33.0476110 + 15.3430410 5.0840080 48.0534910 15.8469430 4.5047360 48.6251140 + 14.6037830 5.3680310 48.5911280 22.2454030 7.8054270 31.6081200 + 22.1404670 7.1906620 32.3342580 22.0778250 7.2820160 30.8244210 + 22.3968350 6.4911070 47.5870430 21.6314020 7.0596070 47.5025100 + 22.5784310 6.1987280 46.6938660 25.4856760 6.8674300 32.2123190 + 24.9366860 7.3143600 32.8565930 26.1076020 6.3623550 32.7360860 + 29.5391700 8.2216400 48.1445450 30.2801170 8.5592160 47.6412910 + 28.7764380 8.3908460 47.5915220 17.3753490 3.2269670 48.9484980 + 17.4158830 2.9283540 49.8570210 18.2298990 3.6277280 48.7892500 + 21.1531880 5.8265220 34.1088490 21.5748300 5.6605090 34.9519880 + 21.2782720 5.0165450 33.6143630 23.6659520 4.8502830 31.3565590 + 24.1865180 4.1351850 30.9906740 24.3127920 5.4888700 31.6566100 + 28.2137360 6.2731230 46.6800660 28.6278380 6.4276310 47.5291080 + 27.2788360 6.3986450 46.8426440 28.6859530 3.6127390 48.6839810 + 29.2680300 2.8579710 48.5960290 28.8621300 4.1434830 47.9071290 + 22.9752590 6.2251710 44.6496590 23.3940700 7.0684440 44.4772830 + 22.0561220 6.3623750 44.4203370 25.3116490 3.9567890 46.0334430 + 25.4312700 3.3609030 46.7729270 26.1710490 3.9937580 45.6135730 + 27.6504390 4.5105080 44.6096940 27.1239610 5.0347700 44.0062080 + 27.9935730 5.1432470 45.2406670 20.8260010 12.5304720 45.7654320 + 20.2881100 13.2550780 45.4463020 21.0793970 12.0535060 44.9751660 + 23.6822220 13.7655930 46.0240970 23.6080920 14.6691070 46.3313340 + 22.7801060 13.4467830 45.9963040 24.2307550 12.9314440 33.6467330 + 25.1258340 13.2699410 33.6686090 24.2625180 12.2093850 33.0191610 + 17.8703710 8.3041490 31.8754330 18.3078580 8.8471160 32.5311910 + 18.3551440 7.4788440 31.8850670 15.0849510 11.0930520 39.3274590 + 15.4152520 10.2251580 39.0953230 15.5140510 11.2989040 40.1579550 + 19.6811430 9.4239530 36.9876560 19.3806970 9.3004500 37.8880470 + 19.5748920 8.5648120 36.5792290 15.5739720 11.9601110 42.0656220 + 15.1370710 12.1401910 42.8980370 16.1417400 12.7175730 41.9237940 + 31.2101900 11.4618110 46.3533530 30.6103890 11.5210670 45.6097450 + 31.3395800 10.5223090 46.4830380 32.4503350 9.2035930 31.6903240 + 31.6196310 9.2712580 32.1610470 32.6275180 10.0940050 31.3870100 + 31.9059810 5.9483410 34.1937440 32.6678720 6.5180060 34.2997130 + 31.9214180 5.3810610 34.9645750 15.4064150 4.4721340 38.4245100 + 14.7512990 4.2032980 37.7804800 16.2442100 4.3625820 37.9747080 + 32.9119780 6.8033510 39.0379370 33.2828610 6.0200830 38.6315340 + 33.5521710 7.4922610 38.8596670 29.8953540 8.1870090 44.4509690 + 29.0813380 8.6167250 44.7135480 30.3027740 8.7988500 43.8378740 + 31.9578980 6.2417780 31.3509960 32.2327820 7.1496660 31.2229180 + 31.7689720 6.1780310 32.2871950 31.8544320 4.1786770 36.3439390 + 31.4787920 3.4114700 35.9120680 31.1247440 4.5609470 36.8314320 + 16.4440080 4.8573910 42.9648440 16.8113120 4.7701310 43.8444460 + 15.8750900 4.0940460 42.8655300 31.2443940 3.3258290 45.9778910 + 31.0130030 3.0971040 45.0776860 31.5048490 4.2457840 45.9323800 + 15.9956080 1.7683000 46.8706860 15.1012130 1.7349760 47.2100570 + 16.5353630 1.9669790 47.6358110 31.1295280 2.4044260 39.6446630 + 31.6532760 1.9106910 39.0136800 31.7154700 2.5394620 40.3894200 + 31.3085000 2.4884130 43.1666180 30.3587710 2.4547670 43.2811170 + 31.4898010 3.3984240 42.9315950 29.9529590 12.9388690 37.9777960 + 30.5488660 12.6173260 37.3012380 30.2107740 12.4660510 38.7691230 + 17.8592160 9.3706600 48.1268590 17.8161790 8.9999510 49.0083050 + 17.9903170 10.3084170 48.2670410 21.5598190 10.9266190 43.7278310 + 21.3189550 11.1940750 42.8408830 22.5000830 11.0971920 43.7829170 + 32.8202350 12.9460570 44.5288950 32.3260630 13.3429440 43.8116080 + 32.2115640 12.3209780 44.9226230 17.6980190 12.3168850 45.2466370 + 17.1040510 12.1853550 45.9856410 17.6904030 11.4806990 44.7808470 + 30.5041800 13.5883990 41.8075690 30.0444770 14.3399800 41.4333710 + 29.8754260 12.8690460 41.7490490 17.3292420 9.6827230 44.1974410 + 16.6026480 9.0632520 44.1300360 17.3901570 10.0767840 43.3272490 + 20.9337520 11.8972230 40.9823820 21.4502540 11.2859590 40.4572080 + 21.5834900 12.4001010 41.4734830 23.6733020 12.7880720 41.8092800 + 23.9610830 12.5335020 40.9325810 24.1856240 12.2358080 42.3998370 + 15.6122420 13.0001620 37.4071170 15.4444460 12.3672300 38.1053060 + 14.7456930 13.2061020 37.0565360 17.2185120 11.6934850 34.8521310 + 16.6932740 12.0742880 34.1483270 17.1429700 12.3185620 35.5731020 + 23.7405380 13.7096820 49.1761000 24.6672690 13.4741090 49.2196960 + 23.7255810 14.5368820 48.6947030 31.9750440 13.2522390 36.1735250 + 32.1502630 12.5660130 35.5296170 31.2772010 13.7769440 35.7811920 + 19.8178090 13.6417230 33.7270560 20.5496910 13.3576510 33.1794450 + 20.0771760 13.4030510 34.6169940 18.9792880 9.7581960 33.7316890 + 18.3501760 10.2267060 34.2802720 19.0940710 8.9131180 34.1663080 + 30.3082940 12.9366680 49.0002040 31.1008260 12.4415910 48.7928000 + 30.6016090 13.6156820 49.6077650 26.4342600 3.8087620 19.8818090 + 26.3536650 2.8942230 19.6109800 26.0207020 4.3054690 19.1757800 + 24.5660640 5.5866640 21.7627360 23.7902740 5.1067080 22.0525930 + 25.2173570 4.9072290 21.5883520 18.5826470 5.8986450 22.6403120 + 17.7511350 5.6435160 23.0399630 19.1907450 5.9697220 23.3761040 + 28.5868070 9.9926830 20.5426490 28.1249600 9.2214070 20.8713660 + 29.3993620 10.0192900 21.0478940 18.5627730 9.9326540 22.8361140 + 18.8655770 9.0424280 22.6571360 19.3071320 10.4896760 22.6083390 + 14.9551430 3.4593990 22.3085210 15.5267540 2.6916190 22.3088850 + 14.9552970 3.7582750 21.3991820 24.0069630 8.2623830 21.7697520 + 23.9377910 7.3213770 21.6086650 24.7689490 8.3525240 22.3420090 + 25.6794730 7.1624080 17.5562390 25.0612000 7.6273530 16.9925110 + 26.1917980 7.8551560 17.9731900 20.5426490 6.6899950 24.2345990 + 20.2095870 7.3168870 24.8767060 20.7193170 7.2161830 23.4547660 + 19.7545590 8.6580750 26.0495170 20.3719590 9.3331830 25.7679620 + 18.8938710 9.0668730 25.9582670 15.0477930 7.8480610 14.9302020 + 14.6705910 8.3367710 14.1986920 15.3051000 8.5205890 15.5608550 + 30.6723180 10.1220160 23.9649810 29.9886700 10.7919270 23.9566480 + 31.2117470 10.3200810 23.1994670 28.2081920 11.9664290 22.6794990 + 28.2209080 11.5626580 21.8117250 27.6557140 12.7411580 22.5756420 + 29.5027340 8.6880510 17.7685160 29.3923670 7.7454840 17.8934580 + 29.4995590 9.0496150 18.6547920 27.6067360 6.8694130 24.0077600 + 28.0236150 6.6554240 23.1731060 28.3307180 7.1266920 24.5786220 + 25.0447620 4.3145830 17.1247650 24.1176900 4.2483210 17.3536120 + 25.1972440 5.2525960 17.0102890 31.5529460 5.2681350 24.0993840 + 30.7248090 5.3374440 23.6243970 32.1479940 5.8535660 23.6309670 + 29.0744910 5.8766130 17.6282900 28.4557330 5.5385680 16.9809200 + 29.0569360 5.2325890 18.3362090 20.6504260 4.8410570 19.9067380 + 20.2461260 4.1287820 19.4113280 20.7367380 4.4963810 20.7955420 + 21.1185960 8.5278130 22.0706590 20.8214250 7.9223600 21.3914370 + 22.0685780 8.5655440 21.9595950 29.2071570 12.1010000 25.7329690 + 28.7302130 12.9082190 25.5402300 28.5233360 11.4488330 25.8855900 + 20.2104390 8.2659820 28.7214390 19.3132920 8.4899790 28.9687790 + 20.2357260 8.3894760 27.7725790 27.2509610 5.1152940 14.6355650 + 27.6902890 4.2775370 14.4893470 27.9638030 5.7482340 14.7219790 + 19.0375610 5.1373140 27.2971760 18.8983380 6.0095940 27.6659160 + 18.1556970 4.7945950 27.1519700 25.3604990 10.0549010 18.6036890 + 25.8000900 10.7973340 18.1892280 25.2991880 10.2975580 19.5275850 + 20.8355960 11.0794840 29.5056910 20.8071390 11.4837790 28.6385340 + 20.6720930 10.1505200 29.3428510 17.3508890 3.7355550 17.4074030 + 17.2306490 4.4617640 16.7955300 17.0409780 2.9658460 16.9301940 + 32.7870780 11.8621940 30.8021080 33.2630500 12.3404830 31.4810160 + 33.4077940 11.7939430 30.0766580 14.9894260 6.9070690 23.2142670 + 15.0674680 7.0419460 22.2698390 15.6035940 6.1986580 23.4070790 + 16.2341890 8.6070880 19.6248850 15.8269970 8.7485470 18.7702450 + 17.1254900 8.3231040 19.4220060 32.1904030 9.0534790 27.9621090 + 32.3167090 8.8146670 27.0438270 32.2325410 8.2219330 28.4343170 + 27.7301300 10.5505690 14.5197900 27.0366460 10.5482980 13.8600180 + 28.4724160 10.1265010 14.0892070 15.0453780 7.9484860 25.7537130 + 15.2084820 7.4790220 24.9356500 15.5106230 7.4408420 26.4185970 + 26.1996580 2.6669840 29.6228470 26.5249990 1.8333590 29.2830700 + 26.9876910 3.1898360 29.7706800 19.6086770 2.2024190 18.5178950 + 19.3827690 1.9861360 19.4225570 18.8279300 2.6352650 18.1724920 + 26.8384530 2.2087560 17.1169600 26.2393420 2.9323360 16.9333220 + 27.3864140 2.1464340 16.3346050 22.0485980 3.1009770 29.1839220 + 21.9529580 2.1604500 29.0339620 22.8917960 3.3224840 28.7887290 + 26.0304540 3.4356850 23.2423660 25.2985660 3.9443660 23.5913760 + 25.6328880 2.6186830 22.9412440 21.5423580 3.4224270 14.0366210 + 20.9740480 2.9742520 13.4102120 22.2512580 3.7817050 13.5031360 + 16.6192760 7.3236290 27.9132940 16.2347550 6.6829960 28.5115900 + 16.9304950 8.0272410 28.4827670 22.7689900 4.1712830 23.3941560 + 23.1360030 3.6971400 24.1402900 22.5794960 5.0454400 23.7349900 + 20.5589270 3.2121470 25.7125770 20.2546340 4.0913450 25.9376130 + 21.5135730 3.2721260 25.7483210 19.0871060 7.4182460 16.3092620 + 18.3133320 6.8780080 16.1491340 19.8165690 6.8989070 15.9710380 + 29.8459040 6.4147820 22.1019010 30.5658160 6.9103110 21.7115120 + 29.6440860 5.7365710 21.4572880 25.2277840 6.4856880 27.9888010 + 25.1615150 5.5652550 27.7345600 24.5982980 6.5832320 28.7032650 + 19.1308460 7.0862840 19.9471430 19.6487130 6.2831100 19.8928320 + 18.6792480 7.0241980 20.7888260 24.0177960 8.3529120 15.2198730 + 24.3593660 9.0971350 14.7242050 23.1890670 8.6660240 15.5823560 + 16.6153000 4.0524210 26.8597130 16.2567940 4.7178060 27.4470470 + 16.3207560 3.2207760 27.2309750 19.8166120 4.5108450 29.7436680 + 19.5166260 4.6565630 28.8464500 20.5877360 3.9513740 29.6510070 + 25.1594570 9.3077450 27.7391810 25.1739110 8.3758410 27.5210720 + 24.4519670 9.3937210 28.3781580 30.2931640 3.4917270 14.0090420 + 30.2095360 3.9231490 13.1586860 31.0125830 3.9515620 14.4417240 + 31.3705780 5.9484790 27.0860390 30.6453970 6.5413570 26.8889780 + 31.8981240 5.9408330 26.2873760 31.3218890 10.3459530 16.7372550 + 30.6795050 9.6915150 17.0116270 30.9349550 10.7514620 15.9613220 + 26.9005370 7.6744960 20.5844240 27.2529190 7.0773090 19.9245610 + 26.0167700 7.3489190 20.7552490 22.9868650 8.4342650 17.9914650 + 23.6739780 8.9811860 18.3722240 22.2001070 8.9783380 18.0264260 + 15.1261050 4.0515470 13.4831730 15.9955900 4.3340270 13.7667650 + 14.6351370 4.8651340 13.3680540 22.2895860 5.4388680 17.6040010 + 22.7458640 6.2493930 17.8300200 21.9384070 5.1211820 18.4358500 + 24.5928470 10.9495020 24.8332310 25.2370690 11.1554400 25.5105730 + 24.9557910 10.1883420 24.3803160 25.8660550 8.9527370 23.5509760 + 26.5082780 8.2520530 23.6641930 26.3909900 9.7325810 23.3706650 + 29.7116270 9.2375990 13.2748900 29.4853850 8.5206430 13.8673540 + 29.3212470 8.9888430 12.4370650 27.6398170 9.7522270 26.7545820 + 27.9754410 10.3388960 27.4323740 26.7198510 9.6214980 26.9843610 + 15.4932300 13.2642850 14.0493360 15.8529940 13.8632190 13.3950630 + 15.3524640 13.8102740 14.8228390 29.2932520 7.1547930 14.9363060 + 29.0054220 7.6160620 15.7240940 30.0884690 6.6945700 15.2047280 + 15.4774160 11.5297710 28.5235760 15.5865280 10.5892450 28.3831150 + 14.8254720 11.7952460 27.8749490 23.4686750 9.8013600 29.9233880 + 23.1483620 9.0822840 30.4679570 22.7945110 10.4768670 29.9969940 + 21.5100920 10.6474050 14.8667030 21.5011020 11.3803740 14.2511540 + 20.5899280 10.4005630 14.9593990 17.1107560 5.8688940 15.6113790 + 16.5035510 6.6087840 15.6209090 17.5856910 5.9588300 14.7851990 + 24.4960520 10.7102290 13.5292220 24.5972500 10.5066280 12.5994200 + 23.5962260 10.4560570 13.7340000 23.6442340 2.6879350 25.5108650 + 24.1427590 3.1625170 26.1760500 23.7865290 1.7642870 25.7178680 + 29.1431210 4.1480490 19.7998400 28.2021350 4.1630720 19.9746090 + 29.4575280 3.3616450 20.2458700 19.1212850 5.8300090 13.3602360 + 19.8876120 5.7181450 13.9227790 19.1987540 5.1338060 12.7079130 + 17.8159610 3.2625160 14.0435250 17.8963200 2.3152670 14.1552650 + 18.7079360 3.5932040 14.1495910 31.1456790 11.3189340 21.4752660 + 31.2704210 12.1420510 21.9476470 32.0122350 11.1080070 21.1276810 + 15.5019800 9.4794120 17.0211300 14.5759580 9.7215260 17.0116710 + 15.9676230 10.3068380 16.8996050 17.6232600 12.5966620 30.3355370 + 18.4245330 12.9178670 30.7490770 17.1084420 12.2362200 31.0575280 + 26.4597230 8.7046490 30.2830780 25.8535390 8.7278090 29.5426530 + 26.1551340 7.9729530 30.8198030 30.7806800 11.8120990 14.3932100 + 30.4948310 11.3986130 13.5786280 30.5826350 12.7408700 14.2732620 + 15.3430410 5.0840080 29.2791420 15.8469430 4.5047360 29.8507650 + 14.6037830 5.3680310 29.8167790 22.2454030 7.8054270 12.8337710 + 22.1404670 7.1906620 13.5599090 22.0778250 7.2820160 12.0500720 + 22.3968350 6.4911070 28.8126940 21.6314020 7.0596070 28.7281610 + 22.5784310 6.1987280 27.9195170 25.4856760 6.8674300 13.4379700 + 24.9366860 7.3143600 14.0822440 26.1076020 6.3623550 13.9617370 + 29.5391700 8.2216400 29.3701960 30.2801170 8.5592160 28.8669420 + 28.7764380 8.3908460 28.8171730 17.3753490 3.2269670 30.1741490 + 17.4158830 2.9283540 31.0826720 18.2298990 3.6277280 30.0149010 + 21.1531880 5.8265220 15.3345000 21.5748300 5.6605090 16.1776390 + 21.2782720 5.0165450 14.8400140 23.6659520 4.8502830 12.5822100 + 24.1865180 4.1351850 12.2163250 24.3127920 5.4888700 12.8822610 + 28.2137360 6.2731230 27.9057170 28.6278380 6.4276310 28.7547590 + 27.2788360 6.3986450 28.0682950 28.6859530 3.6127390 29.9096320 + 29.2680300 2.8579710 29.8216800 28.8621300 4.1434830 29.1327800 + 22.9752590 6.2251710 25.8753100 23.3940700 7.0684440 25.7029340 + 22.0561220 6.3623750 25.6459880 25.3116490 3.9567890 27.2590940 + 25.4312700 3.3609030 27.9985780 26.1710490 3.9937580 26.8392240 + 27.6504390 4.5105080 25.8353450 27.1239610 5.0347700 25.2318590 + 27.9935730 5.1432470 26.4663180 17.8703710 8.3041490 13.1010840 + 18.3078580 8.8471160 13.7568420 18.3551440 7.4788440 13.1107180 + 15.0849510 11.0930520 20.5531100 15.4152520 10.2251580 20.3209740 + 15.5140510 11.2989040 21.3836060 19.6811430 9.4239530 18.2133070 + 19.3806970 9.3004500 19.1136980 19.5748920 8.5648120 17.8048800 + 15.5739720 11.9601110 23.2912730 15.1370710 12.1401910 24.1236880 + 16.1417400 12.7175730 23.1494450 31.2101900 11.4618110 27.5790040 + 30.6103890 11.5210670 26.8353960 31.3395800 10.5223090 27.7086890 + 32.4503350 9.2035930 12.9159750 31.6196310 9.2712580 13.3866980 + 32.6275180 10.0940050 12.6126610 31.9059810 5.9483410 15.4193950 + 32.6678720 6.5180060 15.5253640 31.9214180 5.3810610 16.1902260 + 15.4064150 4.4721340 19.6501610 14.7512990 4.2032980 19.0061310 + 16.2442100 4.3625820 19.2003590 32.9119780 6.8033510 20.2635880 + 33.2828610 6.0200830 19.8571850 33.5521710 7.4922610 20.0853180 + 29.8953540 8.1870090 25.6766200 29.0813380 8.6167250 25.9391990 + 30.3027740 8.7988500 25.0635250 31.9578980 6.2417780 12.5766470 + 32.2327820 7.1496660 12.4485690 31.7689720 6.1780310 13.5128460 + 31.8544320 4.1786770 17.5695900 31.4787920 3.4114700 17.1377190 + 31.1247440 4.5609470 18.0570830 16.4440080 4.8573910 24.1904950 + 16.8113120 4.7701310 25.0700970 15.8750900 4.0940460 24.0911810 + 31.2443940 3.3258290 27.2035420 31.0130030 3.0971040 26.3033370 + 31.5048490 4.2457840 27.1580310 15.9956080 1.7683000 28.0963370 + 15.1012130 1.7349760 28.4357080 16.5353630 1.9669790 28.8614620 + 31.1295280 2.4044260 20.8703140 31.6532760 1.9106910 20.2393310 + 31.7154700 2.5394620 21.6150710 31.3085000 2.4884130 24.3922690 + 30.3587710 2.4547670 24.5067680 31.4898010 3.3984240 24.1572460 + 29.9529590 12.9388690 19.2034470 30.5488660 12.6173260 18.5268890 + 30.2107740 12.4660510 19.9947740 17.8592160 9.3706600 29.3525100 + 17.8161790 8.9999510 30.2339560 17.9903170 10.3084170 29.4926920 + 32.8202350 12.9460570 25.7545460 32.3260630 13.3429440 25.0372590 + 32.2115640 12.3209780 26.1482740 17.6980190 12.3168850 26.4722880 + 17.1040510 12.1853550 27.2112920 17.6904030 11.4806990 26.0064980 + 30.5041800 13.5883990 23.0332200 30.0444770 14.3399800 22.6590220 + 29.8754260 12.8690460 22.9747000 17.3292420 9.6827230 25.4230920 + 16.6026480 9.0632520 25.3556870 17.3901570 10.0767840 24.5529000 + 20.9337520 11.8972230 22.2080330 21.4502540 11.2859590 21.6828590 + 21.5834900 12.4001010 22.6991340 15.6122420 13.0001620 18.6327680 + 15.4444460 12.3672300 19.3309570 14.7456930 13.2061020 18.2821870 + 17.2185120 11.6934850 16.0777820 16.6932740 12.0742880 15.3739780 + 17.1429700 12.3185620 16.7987530 31.9750440 13.2522390 17.3991760 + 32.1502630 12.5660130 16.7552680 31.2772010 13.7769440 17.0068430 + 18.9792880 9.7581960 14.9573400 18.3501760 10.2267060 15.5059230 + 19.0940710 8.9131180 15.3919590 24.5660640 5.5866640 2.9883870 + 23.7902740 5.1067080 3.2782440 25.2173570 4.9072290 2.8140030 + 18.5826470 5.8986450 3.8659630 17.7511350 5.6435160 4.2656140 + 19.1907450 5.9697220 4.6017550 28.5868070 9.9926830 1.7683000 + 28.1249600 9.2214070 2.0970170 29.3993620 10.0192900 2.2735450 + 18.5627730 9.9326540 4.0617650 18.8655770 9.0424280 3.8827870 + 19.3071320 10.4896760 3.8339900 14.9551430 3.4593990 3.5341720 + 15.5267540 2.6916190 3.5345360 14.9552970 3.7582750 2.6248330 + 24.0069630 8.2623830 2.9954030 23.9377910 7.3213770 2.8343160 + 24.7689490 8.3525240 3.5676600 20.5426490 6.6899950 5.4602500 + 20.2095870 7.3168870 6.1023570 20.7193170 7.2161830 4.6804170 + 19.7545590 8.6580750 7.2751680 20.3719590 9.3331830 6.9936130 + 18.8938710 9.0668730 7.1839180 30.6723180 10.1220160 5.1906320 + 29.9886700 10.7919270 5.1822990 31.2117470 10.3200810 4.4251180 + 28.2081920 11.9664290 3.9051500 28.2209080 11.5626580 3.0373760 + 27.6557140 12.7411580 3.8012930 27.6067360 6.8694130 5.2334110 + 28.0236150 6.6554240 4.3987570 28.3307180 7.1266920 5.8042730 + 31.5529460 5.2681350 5.3250350 30.7248090 5.3374440 4.8500480 + 32.1479940 5.8535660 4.8566180 21.1185960 8.5278130 3.2963100 + 20.8214250 7.9223600 2.6170880 22.0685780 8.5655440 3.1852460 + 29.2071570 12.1010000 6.9586200 28.7302130 12.9082190 6.7658810 + 28.5233360 11.4488330 7.1112410 20.2104390 8.2659820 9.9470900 + 19.3132920 8.4899790 10.1944300 20.2357260 8.3894760 8.9982300 + 19.0375610 5.1373140 8.5228270 18.8983380 6.0095940 8.8915670 + 18.1556970 4.7945950 8.3776210 20.8355960 11.0794840 10.7313420 + 20.8071390 11.4837790 9.8641850 20.6720930 10.1505200 10.5685020 + 32.7870780 11.8621940 12.0277590 33.2630500 12.3404830 12.7066670 + 33.4077940 11.7939430 11.3023090 14.9894260 6.9070690 4.4399180 + 15.0674680 7.0419460 3.4954900 15.6035940 6.1986580 4.6327300 + 32.1904030 9.0534790 9.1877600 32.3167090 8.8146670 8.2694780 + 32.2325410 8.2219330 9.6599680 26.0520770 12.7562790 7.7572410 + 26.5665440 12.6670800 8.5594840 25.2089850 13.1022490 8.0500320 + 15.0453780 7.9484860 6.9793640 15.2084820 7.4790220 6.1613010 + 15.5106230 7.4408420 7.6442480 26.1996580 2.6669840 10.8484980 + 26.5249990 1.8333590 10.5087210 26.9876910 3.1898360 10.9963310 + 22.0485980 3.1009770 10.4095730 21.9529580 2.1604500 10.2596130 + 22.8917960 3.3224840 10.0143800 26.0304540 3.4356850 4.4680170 + 25.2985660 3.9443660 4.8170270 25.6328880 2.6186830 4.1668950 + 16.6192760 7.3236290 9.1389450 16.2347550 6.6829960 9.7372410 + 16.9304950 8.0272410 9.7084180 22.7689900 4.1712830 4.6198070 + 23.1360030 3.6971400 5.3659410 22.5794960 5.0454400 4.9606410 + 20.5589270 3.2121470 6.9382280 20.2546340 4.0913450 7.1632640 + 21.5135730 3.2721260 6.9739720 29.8459040 6.4147820 3.3275520 + 30.5658160 6.9103110 2.9371630 29.6440860 5.7365710 2.6829390 + 25.2277840 6.4856880 9.2144520 25.1615150 5.5652550 8.9602110 + 24.5982980 6.5832320 9.9289160 16.6153000 4.0524210 8.0853640 + 16.2567940 4.7178060 8.6726980 16.3207560 3.2207760 8.4566260 + 19.8166120 4.5108450 10.9693190 19.5166260 4.6565630 10.0721010 + 20.5877360 3.9513740 10.8766580 25.1594570 9.3077450 8.9648320 + 25.1739110 8.3758410 8.7467230 24.4519670 9.3937210 9.6038090 + 31.3705780 5.9484790 8.3116900 30.6453970 6.5413570 8.1146290 + 31.8981240 5.9408330 7.5130270 24.5928470 10.9495020 6.0588820 + 25.2370690 11.1554400 6.7362240 24.9557910 10.1883420 5.6059670 + 25.8660550 8.9527370 4.7766270 26.5082780 8.2520530 4.8898440 + 26.3909900 9.7325810 4.5963160 27.6398170 9.7522270 7.9802330 + 27.9754410 10.3388960 8.6580250 26.7198510 9.6214980 8.2100120 + 15.4774160 11.5297710 9.7492270 15.5865280 10.5892450 9.6087660 + 14.8254720 11.7952460 9.1006000 23.4686750 9.8013600 11.1490390 + 23.1483620 9.0822840 11.6936080 22.7945110 10.4768670 11.2226450 + 23.6442340 2.6879350 6.7365160 24.1427590 3.1625170 7.4017010 + 23.7865290 1.7642870 6.9435190 31.1456790 11.3189340 2.7009170 + 31.2704210 12.1420510 3.1732980 32.0122350 11.1080070 2.3533320 + 18.6174320 13.4120550 2.3726300 19.3536800 12.8636010 2.6434870 + 19.0015240 14.2776560 2.2332290 17.6232600 12.5966620 11.5611880 + 18.4245330 12.9178670 11.9747280 17.1084420 12.2362200 12.2831790 + 26.4597230 8.7046490 11.5087290 25.8535390 8.7278090 10.7683040 + 26.1551340 7.9729530 12.0454540 27.8897600 12.4326780 10.1196700 + 28.8419350 12.3484800 10.0696940 27.7425820 13.0968490 10.7930490 + 15.3430410 5.0840080 10.5047930 15.8469430 4.5047360 11.0764160 + 14.6037830 5.3680310 11.0424300 22.3968350 6.4911070 10.0383450 + 21.6314020 7.0596070 9.9538120 22.5784310 6.1987280 9.1451680 + 29.5391700 8.2216400 10.5958470 30.2801170 8.5592160 10.0925930 + 28.7764380 8.3908460 10.0428240 17.3753490 3.2269670 11.3998000 + 17.4158830 2.9283540 12.3083230 18.2298990 3.6277280 11.2405520 + 28.2137360 6.2731230 9.1313680 28.6278380 6.4276310 9.9804100 + 27.2788360 6.3986450 9.2939460 28.6859530 3.6127390 11.1352830 + 29.2680300 2.8579710 11.0473310 28.8621300 4.1434830 10.3584310 + 22.9752590 6.2251710 7.1009610 23.3940700 7.0684440 6.9285850 + 22.0561220 6.3623750 6.8716390 25.3116490 3.9567890 8.4847450 + 25.4312700 3.3609030 9.2242290 26.1710490 3.9937580 8.0648750 + 27.6504390 4.5105080 7.0609960 27.1239610 5.0347700 6.4575100 + 27.9935730 5.1432470 7.6919690 20.8260010 12.5304720 8.2167340 + 20.2881100 13.2550780 7.8976040 21.0793970 12.0535060 7.4264680 + 23.6822220 13.7655930 8.4753990 23.6080920 14.6691070 8.7826360 + 22.7801060 13.4467830 8.4476060 15.0849510 11.0930520 1.7787610 + 15.4152520 10.2251580 1.5466250 15.5140510 11.2989040 2.6092570 + 15.5739720 11.9601110 4.5169240 15.1370710 12.1401910 5.3493390 + 16.1417400 12.7175730 4.3750960 31.2101900 11.4618110 8.8046550 + 30.6103890 11.5210670 8.0610470 31.3395800 10.5223090 8.9343400 + 29.8953540 8.1870090 6.9022710 29.0813380 8.6167250 7.1648500 + 30.3027740 8.7988500 6.2891760 16.4440080 4.8573910 5.4161460 + 16.8113120 4.7701310 6.2957480 15.8750900 4.0940460 5.3168320 + 31.2443940 3.3258290 8.4291930 31.0130030 3.0971040 7.5289880 + 31.5048490 4.2457840 8.3836820 15.9956080 1.7683000 9.3219880 + 15.1012130 1.7349760 9.6613590 16.5353630 1.9669790 10.0871130 + 31.1295280 2.4044260 2.0959650 31.6532760 1.9106910 1.4649820 + 31.7154700 2.5394620 2.8407220 31.3085000 2.4884130 5.6179200 + 30.3587710 2.4547670 5.7324190 31.4898010 3.3984240 5.3828970 + 17.8592160 9.3706600 10.5781610 17.8161790 8.9999510 11.4596070 + 17.9903170 10.3084170 10.7183430 21.5598190 10.9266190 6.1791330 + 21.3189550 11.1940750 5.2921850 22.5000830 11.0971920 6.2342190 + 32.8202350 12.9460570 6.9801970 32.3260630 13.3429440 6.2629100 + 32.2115640 12.3209780 7.3739250 17.6980190 12.3168850 7.6979390 + 17.1040510 12.1853550 8.4369430 17.6904030 11.4806990 7.2321490 + 30.5041800 13.5883990 4.2588710 30.0444770 14.3399800 3.8846730 + 29.8754260 12.8690460 4.2003510 17.3292420 9.6827230 6.6487430 + 16.6026480 9.0632520 6.5813380 17.3901570 10.0767840 5.7785510 + 20.9337520 11.8972230 3.4336840 21.4502540 11.2859590 2.9085100 + 21.5834900 12.4001010 3.9247850 23.6733020 12.7880720 4.2605820 + 23.9610830 12.5335020 3.3838830 24.1856240 12.2358080 4.8511390 + 23.7405380 13.7096820 11.6274020 24.6672690 13.4741090 11.6709980 + 23.7255810 14.5368820 11.1460050 30.3082940 12.9366680 11.4515060 + 31.1008260 12.4415910 11.2441020 30.6016090 13.6156820 12.0590670 + 7.6599110 41.3574600 57.4305070 7.5793160 40.4429210 57.1596780 + 7.2463530 41.8541670 56.7244780 5.7917150 43.1353620 59.3114340 + 5.0159250 42.6554060 59.6012910 6.4430080 42.4559270 59.1370500 + 6.2631310 38.6181190 59.5453430 6.6396130 37.7453070 59.4327100 + 6.1650820 38.9539890 58.6543870 10.0455430 36.1131630 56.4781770 + 10.8665050 35.6228200 56.5207250 10.0789510 36.7029290 57.2313610 + 2.2344050 39.9593190 59.3396050 2.7422270 40.4574160 59.9801070 + 2.7657290 39.1828390 59.1635410 10.2816910 38.0532010 59.2509310 + 9.5772480 38.3416900 59.8312420 10.6429070 38.8632120 58.8908870 + 13.3503830 37.4986800 59.6418520 12.4028740 37.5325780 59.7733950 + 13.6753820 38.3125750 60.0267880 3.8823370 33.7983980 57.9374510 + 4.1898350 33.2430870 57.2210010 2.9524070 33.9328440 57.7547500 + 6.2573210 38.1349810 51.6701790 5.3176880 38.2963770 51.7554250 + 6.5756470 38.8535490 51.1237780 10.3001420 43.4253110 55.1769880 + 9.6813840 43.0872660 54.5296180 10.2825870 42.7812870 55.8849070 + 1.8760770 42.3897550 57.4554360 1.4717770 41.6774800 56.9600260 + 1.9623890 42.0450790 58.3442400 8.4766120 42.6639920 52.1842630 + 8.9159400 41.8262350 52.0380450 9.1894540 43.2969320 52.2706770 + 12.0583260 33.9182730 50.4983670 11.7455920 34.0109560 51.3982740 + 12.8195730 34.4963760 50.4481100 4.1587880 34.2488300 53.2190510 + 3.5342060 34.2448170 53.9443820 4.0718000 33.3819260 52.8226480 + 3.0804960 35.1724930 60.1974280 3.3777290 36.0787760 60.1166300 + 3.6290520 34.6843710 59.5833850 8.0641040 39.7574540 54.6656580 + 7.4649930 40.4810340 54.4820200 8.6120650 39.6951320 53.8833030 + 6.6705910 38.3938080 56.6959860 7.0635480 38.7110280 55.8828550 + 7.0322760 37.5149960 56.8104380 3.6938440 37.6598030 59.1963130 + 3.6974500 37.2187980 58.3467670 4.5889560 37.9815360 59.3034950 + 3.7558590 38.6610110 52.1869890 3.8771410 38.6196590 53.1355710 + 3.3707100 39.5234260 52.0316620 2.7680090 40.9711250 51.5853190 + 2.1996990 40.5229500 50.9589100 3.4769090 41.3304030 51.0518340 + 11.0715550 43.9634800 59.6505990 11.7914670 44.4590090 59.2602100 + 10.8697370 43.2852690 59.0059860 6.5325490 35.3572760 53.7935380 + 5.7190100 34.8585930 53.7180690 6.3387440 36.1971010 53.3771730 + 9.2473880 39.7292410 52.0897540 10.1353500 40.0409640 51.9148880 + 9.2178970 38.8564660 51.6978120 11.5188150 41.0404250 51.5577400 + 11.4351870 41.4718470 50.7073840 12.2382340 41.5002600 51.9904220 + 3.5152370 42.9875660 55.1526990 3.9715150 43.7980910 55.3787180 + 3.1640580 42.6698800 55.9845480 11.2758890 36.5383680 53.6445220 + 10.6472050 36.6429350 52.9303450 10.7810810 36.7580460 54.4339100 + 3.2442920 38.8169630 55.0603100 2.5359070 39.2855970 55.5016710 + 3.5287400 38.1591640 55.6948290 7.2758350 35.5420290 56.4998890 + 7.1526130 35.5606420 55.5508400 8.2242910 35.5899230 56.6197290 + 10.3687720 41.6967470 57.3485380 9.4277860 41.7117700 57.5233070 + 10.6831790 40.9103430 57.7945680 6.7113270 44.4161280 50.9866680 + 6.1623370 44.8630580 51.6309420 7.3332530 43.9110530 51.5104350 + 2.3788390 43.3752200 52.8831980 2.8004810 43.2092070 53.7263370 + 2.5039230 42.5652430 52.3887120 4.8916030 42.3989810 50.1309080 + 5.4121690 41.6838830 49.7650230 5.5384430 43.0375680 50.4309590 + 8.7535600 34.2593660 52.3577020 9.0337890 33.4161560 52.7136440 + 7.9801330 34.4916770 52.8715770 3.2915020 35.4920670 50.8024220 + 2.9437020 34.8144660 50.2226670 3.4927790 35.0310180 51.6167610 + 13.1316320 43.4970390 52.9680930 13.8935230 44.0667040 53.0740620 + 13.1470690 42.9297590 53.7389240 13.1835490 43.7904760 50.1253450 + 13.4584330 44.6983640 49.9972670 12.9946230 43.7267290 51.0615440 + 9.5811100 36.8149610 51.4207080 9.9995980 36.6280590 50.5803740 + 9.2747160 35.9628660 51.7310010 13.0800830 41.7273750 55.1182880 + 12.7044430 40.9601680 54.6864170 12.3503950 42.1096450 55.6057810 + 12.3551790 39.9531240 58.4190120 12.8789270 39.4593890 57.7880290 + 12.9411210 40.0881600 59.1637690 11.8451760 39.2104590 54.3582530 + 12.3410880 38.9775460 55.1431410 11.6467830 38.3716430 53.9420170 + 13.2738920 37.8465540 56.8920210 13.1638200 37.6921580 57.8302480 + 14.0346510 37.3186480 56.6495620 14.1629190 35.6773460 50.1326350 + 15.0878500 35.5454640 49.9244640 14.1404980 35.7566280 51.0862800 + 14.2367680 36.4484120 52.7583060 13.4419180 36.3829240 53.2875970 + 14.4410960 37.3834760 52.7468410 10.6687610 34.7781000 59.2081890 + 11.1095700 34.7226100 58.3603490 10.3995200 35.6939010 59.2792070 + 12.5326180 34.4096240 57.2190710 12.4714580 33.4657460 57.0721730 + 13.3118210 34.5176330 57.7644170 4.0020760 36.4944650 56.6748830 + 3.1895270 36.1201540 56.3344710 4.5062400 35.7389730 56.9770020 + 8.5045740 33.1587100 57.9131900 9.1075110 33.7307310 58.3880420 + 7.7638730 33.7226540 57.6905800 11.6480340 33.5608660 53.1872180 + 11.8430970 34.4592110 53.4539610 10.8610210 33.3295740 53.6805130 + 2.0269940 34.6444570 55.2793880 1.3972680 33.9431880 55.4464010 + 1.4875080 35.4048700 55.0627040 7.6599110 41.3574600 38.6561580 + 7.5793160 40.4429210 38.3853290 7.2463530 41.8541670 37.9501290 + 5.7917150 43.1353620 40.5370850 5.0159250 42.6554060 40.8269420 + 6.4430080 42.4559270 40.3627010 6.2631310 38.6181190 40.7709940 + 6.6396130 37.7453070 40.6583610 6.1650820 38.9539890 39.8800380 + 10.0455430 36.1131630 37.7038280 10.8665050 35.6228200 37.7463760 + 10.0789510 36.7029290 38.4570120 2.2344050 39.9593190 40.5652560 + 2.7422270 40.4574160 41.2057580 2.7657290 39.1828390 40.3891920 + 14.3354980 38.1298380 44.2681910 13.6307150 38.5180090 43.7497020 + 14.6012900 38.8248670 44.8702840 1.7683000 44.2386930 43.0089480 + 1.4352380 44.8655850 43.6510550 1.9449680 44.7648810 42.2291150 + 10.2816910 38.0532010 40.4765820 9.5772480 38.3416900 41.0568930 + 10.6429070 38.8632120 40.1165380 13.3503830 37.4986800 40.8675030 + 12.4028740 37.5325780 40.9990460 13.6753820 38.3125750 41.2524390 + 3.8823370 33.7983980 39.1631020 4.1898350 33.2430870 38.4466520 + 2.9524070 33.9328440 38.9804010 8.8323870 44.4181110 42.7821090 + 9.2492660 44.2041220 41.9474550 9.5563690 44.6753900 43.3529710 + 6.2704130 41.8632810 35.8991140 5.3433410 41.7970190 36.1279610 + 6.4228950 42.8012940 35.7846380 6.2573210 38.1349810 32.8958300 + 5.3176880 38.2963770 32.9810760 6.5756470 38.8535490 32.3494290 + 12.7785970 42.8168330 42.8737330 11.9504600 42.8861420 42.3987460 + 13.3736450 43.4022640 42.4053160 10.3001420 43.4253110 36.4026390 + 9.6813840 43.0872660 35.7552690 10.2825870 42.7812870 37.1105580 + 9.7427980 39.6037650 43.8192200 9.3299160 40.4291360 44.0732190 + 9.0103930 39.0182690 43.6268560 1.8760770 42.3897550 38.6810870 + 1.4717770 41.6774800 38.1856770 1.9623890 42.0450790 39.5698910 + 8.4766120 42.6639920 33.4099140 8.9159400 41.8262350 33.2636960 + 9.1894540 43.2969320 33.4963280 12.0583260 33.9182730 31.7240180 + 11.7455920 34.0109560 32.6239250 12.8195730 34.4963760 31.6737610 + 13.2684550 38.6554230 47.7014320 12.6528820 39.1633900 47.1729780 + 12.9480970 37.7552560 47.6440260 5.3298870 37.4946120 45.1676510 + 4.8678240 37.7029140 45.9796450 4.9276980 36.6805470 44.8647180 + 10.3303380 38.7155070 46.2973170 9.4796970 38.4160820 46.6182240 + 10.1705170 38.9597080 45.3856990 7.4253090 40.2156820 48.3971960 + 7.7506500 39.3820570 48.0574190 8.2133420 40.7385340 48.5450290 + 4.1587880 34.2488300 34.4447020 3.5342060 34.2448170 35.1700330 + 4.0718000 33.3819260 34.0482990 3.0804960 35.1724930 41.4230790 + 3.3777290 36.0787760 41.3422810 3.6290520 34.6843710 40.8090360 + 8.0641040 39.7574540 35.8913090 7.4649930 40.4810340 35.7076710 + 8.6120650 39.6951320 35.1089540 3.2742490 40.6496750 47.9582710 + 3.1786090 39.7091480 47.8083110 4.1174470 40.8711820 47.5630780 + 6.6705910 38.3938080 37.9216370 7.0635480 38.7110280 37.1085060 + 7.0322760 37.5149960 38.0360890 4.9798080 37.1445390 49.1813230 + 4.2896400 36.9517590 49.8159320 5.7230380 37.4280030 49.7137530 + 7.2561050 40.9843830 42.0167150 6.5242170 41.4930640 42.3657250 + 6.8585390 40.1673810 41.7155930 3.6938440 37.6598030 40.4219640 + 3.6974500 37.2187980 39.5724180 4.5889560 37.9815360 40.5291460 + 3.7558590 38.6610110 33.4126400 3.8771410 38.6196590 34.3612220 + 3.3707100 39.5234260 33.2573130 7.7186960 36.4377510 41.4290090 + 7.7359700 36.8886160 42.2731940 7.4702540 35.5383150 41.6423530 + 2.7680090 40.9711250 32.8109700 2.1996990 40.5229500 32.1845610 + 3.4769090 41.3304030 32.2774850 11.1457710 33.8509690 47.2676470 + 11.4703480 33.1199350 47.7934450 11.1814220 33.5323330 46.3657460 + 3.9946410 41.7199810 42.1685050 4.3616540 41.2458380 42.9146390 + 3.8051470 42.5941380 42.5093390 1.7845780 40.7608450 44.4869260 + 1.4802850 41.6400430 44.7119620 2.7392240 40.8208240 44.5226700 + 11.0715550 43.9634800 40.8762500 11.7914670 44.4590090 40.4858610 + 10.8697370 43.2852690 40.2316370 6.5325490 35.3572760 35.0191890 + 5.7190100 34.8585930 34.9437200 6.3387440 36.1971010 34.6028240 + 6.4534350 44.0343860 46.7631500 6.3871660 43.1139530 46.5089090 + 5.8239490 44.1319300 47.4776140 9.2473880 39.7292410 33.3154050 + 10.1353500 40.0409640 33.1405390 9.2178970 38.8564660 32.9234630 + 11.5188150 41.0404250 32.7833910 11.4351870 41.4718470 31.9330350 + 12.2382340 41.5002600 33.2160730 12.5962290 43.4971770 45.8603880 + 11.8710480 44.0900550 45.6633270 13.1237750 43.4895310 45.0617250 + 3.5152370 42.9875660 36.3783500 3.9715150 43.7980910 36.6043690 + 3.1640580 42.6698800 37.2101990 7.9096860 37.5826740 44.0614170 + 8.2777680 36.7621950 44.3893740 7.0495060 37.6428630 44.4769820 + 11.2758890 36.5383680 34.8701730 10.6472050 36.6429350 34.1559960 + 10.7810810 36.7580460 35.6595610 3.2442920 38.8169630 36.2859610 + 2.5359070 39.2855970 36.7273220 3.5287400 38.1591640 36.9204800 + 4.8698850 40.2366330 44.2852140 5.3684100 40.7112150 44.9503990 + 5.0121800 39.3129850 44.4922170 7.2758350 35.5420290 37.7255400 + 7.1526130 35.5606420 36.7764910 8.2242910 35.5899230 37.8453800 + 12.0765710 36.4534290 45.1280530 11.5739310 37.1939690 45.4674340 + 12.8922370 36.8418290 44.8117320 10.3687720 41.6967470 38.5741890 + 9.4277860 41.7117700 38.7489580 10.6831790 40.9103430 39.0202190 + 3.6224860 44.0398050 47.5870430 2.8570530 44.6083050 47.5025100 + 3.8040820 43.7474260 46.6938660 6.7113270 44.4161280 32.2123190 + 6.1623370 44.8630580 32.8565930 7.3332530 43.9110530 32.7360860 + 2.3788390 43.3752200 34.1088490 2.8004810 43.2092070 34.9519880 + 2.5039230 42.5652430 33.6143630 4.8916030 42.3989810 31.3565590 + 5.4121690 41.6838830 30.9906740 5.5384430 43.0375680 31.6566100 + 9.4393870 43.8218210 46.6800660 9.8534890 43.9763290 47.5291080 + 8.5044870 43.9473430 46.8426440 9.9116040 41.1614370 48.6839810 + 10.4936810 40.4066690 48.5960290 10.0877810 41.6921810 47.9071290 + 3.7949550 34.8784360 44.0284150 3.3466850 34.9008620 43.1829700 + 3.1614750 34.4803380 44.6254450 4.2009100 43.7738690 44.6496590 + 4.6197210 44.6171420 44.4772830 3.2817730 43.9110730 44.4203370 + 6.5373000 41.5054870 46.0334430 6.6569210 40.9096010 46.7729270 + 7.3967000 41.5424560 45.6135730 8.8760900 42.0592060 44.6096940 + 8.3496120 42.5834680 44.0062080 9.2192240 42.6919450 45.2406670 + 3.3041770 38.0476220 47.2910250 3.8941460 37.7392070 47.9788070 + 2.4862010 37.5755970 47.4470150 8.1235200 37.6642030 47.5243270 + 7.4350720 37.0023570 47.4593260 8.8441220 37.2180300 47.9691730 + 8.7535600 34.2593660 33.5833530 9.0337890 33.4161560 33.9392950 + 7.9801330 34.4916770 34.0972280 3.2915020 35.4920670 32.0280730 + 2.9437020 34.8144660 31.4483180 3.4927790 35.0310180 32.8424120 + 13.1316320 43.4970390 34.1937440 13.8935230 44.0667040 34.2997130 + 13.1470690 42.9297590 34.9645750 13.1835490 43.7904760 31.3509960 + 13.4584330 44.6983640 31.2229180 12.9946230 43.7267290 32.2871950 + 9.5811100 36.8149610 32.6463590 9.9995980 36.6280590 31.8060250 + 9.2747160 35.9628660 32.9566520 13.0800830 41.7273750 36.3439390 + 12.7044430 40.9601680 35.9120680 12.3503950 42.1096450 36.8314320 + 12.4700450 40.8745270 45.9778910 12.2386540 40.6458020 45.0776860 + 12.7305000 41.7944820 45.9323800 10.9088520 36.1001700 48.7558610 + 11.7858700 36.1085100 49.1392610 10.9209360 35.3632540 48.1450960 + 12.3551790 39.9531240 39.6446630 12.8789270 39.4593890 39.0136800 + 12.9411210 40.0881600 40.3894200 12.5341510 40.0371110 43.1666180 + 11.5844220 40.0034650 43.2811170 12.7154520 40.9471220 42.9315950 + 11.8451760 39.2104590 35.5839040 12.3410880 38.9775460 36.3687920 + 11.6467830 38.3716430 35.1676680 13.2738920 37.8465540 38.1176720 + 13.1638200 37.6921580 39.0558990 14.0346510 37.3186480 37.8752130 + 11.6204640 33.7859670 44.5759720 12.2576860 34.3993810 44.9418910 + 11.7679530 33.8220330 43.6308950 14.1629190 35.6773460 31.3582860 + 15.0878500 35.5454640 31.1501150 14.1404980 35.7566280 32.3119310 + 14.2367680 36.4484120 33.9839570 13.4419180 36.3829240 34.5132480 + 14.4410960 37.3834760 33.9724920 4.9909120 34.9385860 47.4834820 + 4.9298010 35.5307690 48.2330230 5.9309500 34.8311820 47.3385080 + 7.6283680 34.5955920 47.1227110 8.2424090 34.9135210 46.4608190 + 8.1733240 34.1104510 47.7422970 8.3691720 33.1588060 43.4496400 + 7.4951560 33.4923170 43.2469330 8.2602470 32.6861240 44.2748270 + 9.2763700 35.3658930 44.8338120 8.9477060 34.5510690 44.4539850 + 10.2246000 35.3228740 44.7103810 6.1166540 34.0757900 42.3889310 + 5.3338330 34.5503400 42.6686070 5.8229470 33.1712730 42.2802490 + 10.6687610 34.7781000 40.4338400 11.1095700 34.7226100 39.5860000 + 10.3995200 35.6939010 40.5048580 12.5326180 34.4096240 38.4447220 + 12.4714580 33.4657460 38.2978240 13.3118210 34.5176330 38.9900680 + 4.0020760 36.4944650 37.9005340 3.1895270 36.1201540 37.5601220 + 4.5062400 35.7389730 38.2026530 8.5045740 33.1587100 39.1388410 + 9.1075110 33.7307310 39.6136930 7.7638730 33.7226540 38.9162310 + 11.6480340 33.5608660 34.4128690 11.8430970 34.4592110 34.6796120 + 10.8610210 33.3295740 34.9061640 2.0269940 34.6444570 36.5050390 + 1.3972680 33.9431880 36.6720520 1.4875080 35.4048700 36.2883550 + 2.1525500 33.9228550 48.9402880 1.8709770 34.4262150 48.1763700 + 2.5345200 33.1250300 48.5745010 8.7540960 33.3382130 49.5183350 + 8.6406410 33.6576740 50.4134870 9.5710700 33.7394640 49.2220630 + 7.6599110 41.3574600 19.8818090 7.5793160 40.4429210 19.6109800 + 7.2463530 41.8541670 19.1757800 5.7917150 43.1353620 21.7627360 + 5.0159250 42.6554060 22.0525930 6.4430080 42.4559270 21.5883520 + 6.2631310 38.6181190 21.9966450 6.6396130 37.7453070 21.8840120 + 6.1650820 38.9539890 21.1056890 10.0455430 36.1131630 18.9294790 + 10.8665050 35.6228200 18.9720270 10.0789510 36.7029290 19.6826630 + 2.2344050 39.9593190 21.7909070 2.7422270 40.4574160 22.4314090 + 2.7657290 39.1828390 21.6148430 14.3354980 38.1298380 25.4938420 + 13.6307150 38.5180090 24.9753530 14.6012900 38.8248670 26.0959350 + 1.7683000 44.2386930 24.2345990 1.4352380 44.8655850 24.8767060 + 1.9449680 44.7648810 23.4547660 10.2816910 38.0532010 21.7022330 + 9.5772480 38.3416900 22.2825440 10.6429070 38.8632120 21.3421890 + 13.3503830 37.4986800 22.0931540 12.4028740 37.5325780 22.2246970 + 13.6753820 38.3125750 22.4780900 3.8823370 33.7983980 20.3887530 + 4.1898350 33.2430870 19.6723030 2.9524070 33.9328440 20.2060520 + 8.8323870 44.4181110 24.0077600 9.2492660 44.2041220 23.1731060 + 9.5563690 44.6753900 24.5786220 6.2704130 41.8632810 17.1247650 + 5.3433410 41.7970190 17.3536120 6.4228950 42.8012940 17.0102890 + 6.2573210 38.1349810 14.1214810 5.3176880 38.2963770 14.2067270 + 6.5756470 38.8535490 13.5750800 12.7785970 42.8168330 24.0993840 + 11.9504600 42.8861420 23.6243970 13.3736450 43.4022640 23.6309670 + 10.3001420 43.4253110 17.6282900 9.6813840 43.0872660 16.9809200 + 10.2825870 42.7812870 18.3362090 9.7427980 39.6037650 25.0448710 + 9.3299160 40.4291360 25.2988700 9.0103930 39.0182690 24.8525070 + 1.8760770 42.3897550 19.9067380 1.4717770 41.6774800 19.4113280 + 1.9623890 42.0450790 20.7955420 8.4766120 42.6639920 14.6355650 + 8.9159400 41.8262350 14.4893470 9.1894540 43.2969320 14.7219790 + 12.0583260 33.9182730 12.9496690 11.7455920 34.0109560 13.8495760 + 12.8195730 34.4963760 12.8994120 13.2684550 38.6554230 28.9270830 + 12.6528820 39.1633900 28.3986290 12.9480970 37.7552560 28.8696770 + 5.3298870 37.4946120 26.3933020 4.8678240 37.7029140 27.2052960 + 4.9276980 36.6805470 26.0903690 10.3303380 38.7155070 27.5229680 + 9.4796970 38.4160820 27.8438750 10.1705170 38.9597080 26.6113500 + 7.4253090 40.2156820 29.6228470 7.7506500 39.3820570 29.2830700 + 8.2133420 40.7385340 29.7706800 4.1587880 34.2488300 15.6703530 + 3.5342060 34.2448170 16.3956840 4.0718000 33.3819260 15.2739500 + 8.0641040 39.7574540 17.1169600 7.4649930 40.4810340 16.9333220 + 8.6120650 39.6951320 16.3346050 3.2742490 40.6496750 29.1839220 + 3.1786090 39.7091480 29.0339620 4.1174470 40.8711820 28.7887290 + 6.6705910 38.3938080 19.1472880 7.0635480 38.7110280 18.3341570 + 7.0322760 37.5149960 19.2617400 4.9798080 37.1445390 30.4069740 + 4.2896400 36.9517590 31.0415830 5.7230380 37.4280030 30.9394040 + 7.2561050 40.9843830 23.2423660 6.5242170 41.4930640 23.5913760 + 6.8585390 40.1673810 22.9412440 3.6938440 37.6598030 21.6476150 + 3.6974500 37.2187980 20.7980690 4.5889560 37.9815360 21.7547970 + 3.7558590 38.6610110 14.6382910 3.8771410 38.6196590 15.5868730 + 3.3707100 39.5234260 14.4829640 7.7186960 36.4377510 22.6546600 + 7.7359700 36.8886160 23.4988450 7.4702540 35.5383150 22.8680040 + 2.7680090 40.9711250 14.0366210 2.1996990 40.5229500 13.4102120 + 3.4769090 41.3304030 13.5031360 11.1457710 33.8509690 28.4932980 + 11.4703480 33.1199350 29.0190960 11.1814220 33.5323330 27.5913970 + 3.9946410 41.7199810 23.3941560 4.3616540 41.2458380 24.1402900 + 3.8051470 42.5941380 23.7349900 1.7845780 40.7608450 25.7125770 + 1.4802850 41.6400430 25.9376130 2.7392240 40.8208240 25.7483210 + 11.0715550 43.9634800 22.1019010 11.7914670 44.4590090 21.7115120 + 10.8697370 43.2852690 21.4572880 6.5325490 35.3572760 16.2448400 + 5.7190100 34.8585930 16.1693710 6.3387440 36.1971010 15.8284750 + 6.4534350 44.0343860 27.9888010 6.3871660 43.1139530 27.7345600 + 5.8239490 44.1319300 28.7032650 9.2473880 39.7292410 14.5410560 + 10.1353500 40.0409640 14.3661900 9.2178970 38.8564660 14.1491140 + 11.5188150 41.0404250 14.0090420 11.4351870 41.4718470 13.1586860 + 12.2382340 41.5002600 14.4417240 12.5962290 43.4971770 27.0860390 + 11.8710480 44.0900550 26.8889780 13.1237750 43.4895310 26.2873760 + 3.5152370 42.9875660 17.6040010 3.9715150 43.7980910 17.8300200 + 3.1640580 42.6698800 18.4358500 7.9096860 37.5826740 25.2870680 + 8.2777680 36.7621950 25.6150250 7.0495060 37.6428630 25.7026330 + 11.2758890 36.5383680 16.0958240 10.6472050 36.6429350 15.3816470 + 10.7810810 36.7580460 16.8852120 3.2442920 38.8169630 17.5116120 + 2.5359070 39.2855970 17.9529730 3.5287400 38.1591640 18.1461310 + 4.8698850 40.2366330 25.5108650 5.3684100 40.7112150 26.1760500 + 5.0121800 39.3129850 25.7178680 7.2758350 35.5420290 18.9511910 + 7.1526130 35.5606420 18.0021420 8.2242910 35.5899230 19.0710310 + 12.0765710 36.4534290 26.3537040 11.5739310 37.1939690 26.6930850 + 12.8922370 36.8418290 26.0373830 10.3687720 41.6967470 19.7998400 + 9.4277860 41.7117700 19.9746090 10.6831790 40.9103430 20.2458700 + 3.6224860 44.0398050 28.8126940 2.8570530 44.6083050 28.7281610 + 3.8040820 43.7474260 27.9195170 6.7113270 44.4161280 13.4379700 + 6.1623370 44.8630580 14.0822440 7.3332530 43.9110530 13.9617370 + 2.3788390 43.3752200 15.3345000 2.8004810 43.2092070 16.1776390 + 2.5039230 42.5652430 14.8400140 4.8916030 42.3989810 12.5822100 + 5.4121690 41.6838830 12.2163250 5.5384430 43.0375680 12.8822610 + 9.4393870 43.8218210 27.9057170 9.8534890 43.9763290 28.7547590 + 8.5044870 43.9473430 28.0682950 9.9116040 41.1614370 29.9096320 + 10.4936810 40.4066690 29.8216800 10.0877810 41.6921810 29.1327800 + 3.7949550 34.8784360 25.2540660 3.3466850 34.9008620 24.4086210 + 3.1614750 34.4803380 25.8510960 4.2009100 43.7738690 25.8753100 + 4.6197210 44.6171420 25.7029340 3.2817730 43.9110730 25.6459880 + 6.5373000 41.5054870 27.2590940 6.6569210 40.9096010 27.9985780 + 7.3967000 41.5424560 26.8392240 8.8760900 42.0592060 25.8353450 + 8.3496120 42.5834680 25.2318590 9.2192240 42.6919450 26.4663180 + 3.3041770 38.0476220 28.5166760 3.8941460 37.7392070 29.2044580 + 2.4862010 37.5755970 28.6726660 8.1235200 37.6642030 28.7499780 + 7.4350720 37.0023570 28.6849770 8.8441220 37.2180300 29.1948240 + 8.7535600 34.2593660 14.8090040 9.0337890 33.4161560 15.1649460 + 7.9801330 34.4916770 15.3228790 3.2915020 35.4920670 13.2537240 + 2.9437020 34.8144660 12.6739690 3.4927790 35.0310180 14.0680630 + 13.1316320 43.4970390 15.4193950 13.8935230 44.0667040 15.5253640 + 13.1470690 42.9297590 16.1902260 13.1835490 43.7904760 12.5766470 + 13.4584330 44.6983640 12.4485690 12.9946230 43.7267290 13.5128460 + 9.5811100 36.8149610 13.8720100 9.9995980 36.6280590 13.0316760 + 9.2747160 35.9628660 14.1823030 13.0800830 41.7273750 17.5695900 + 12.7044430 40.9601680 17.1377190 12.3503950 42.1096450 18.0570830 + 12.4700450 40.8745270 27.2035420 12.2386540 40.6458020 26.3033370 + 12.7305000 41.7944820 27.1580310 10.9088520 36.1001700 29.9815120 + 11.7858700 36.1085100 30.3649120 10.9209360 35.3632540 29.3707470 + 12.3551790 39.9531240 20.8703140 12.8789270 39.4593890 20.2393310 + 12.9411210 40.0881600 21.6150710 12.5341510 40.0371110 24.3922690 + 11.5844220 40.0034650 24.5067680 12.7154520 40.9471220 24.1572460 + 11.8451760 39.2104590 16.8095550 12.3410880 38.9775460 17.5944430 + 11.6467830 38.3716430 16.3933190 13.2738920 37.8465540 19.3433230 + 13.1638200 37.6921580 20.2815500 14.0346510 37.3186480 19.1008640 + 11.6204640 33.7859670 25.8016230 12.2576860 34.3993810 26.1675420 + 11.7679530 33.8220330 24.8565460 14.1629190 35.6773460 12.5839370 + 15.0878500 35.5454640 12.3757660 14.1404980 35.7566280 13.5375820 + 14.2367680 36.4484120 15.2096080 13.4419180 36.3829240 15.7388990 + 14.4410960 37.3834760 15.1981430 4.9909120 34.9385860 28.7091330 + 4.9298010 35.5307690 29.4586740 5.9309500 34.8311820 28.5641590 + 7.6283680 34.5955920 28.3483620 8.2424090 34.9135210 27.6864700 + 8.1733240 34.1104510 28.9679480 8.3691720 33.1588060 24.6752910 + 7.4951560 33.4923170 24.4725840 8.2602470 32.6861240 25.5004780 + 9.2763700 35.3658930 26.0594630 8.9477060 34.5510690 25.6796360 + 10.2246000 35.3228740 25.9360320 6.1166540 34.0757900 23.6145820 + 5.3338330 34.5503400 23.8942580 5.8229470 33.1712730 23.5059000 + 10.6687610 34.7781000 21.6594910 11.1095700 34.7226100 20.8116510 + 10.3995200 35.6939010 21.7305090 12.5326180 34.4096240 19.6703730 + 12.4714580 33.4657460 19.5234750 13.3118210 34.5176330 20.2157190 + 4.0020760 36.4944650 19.1261850 3.1895270 36.1201540 18.7857730 + 4.5062400 35.7389730 19.4283040 8.5045740 33.1587100 20.3644920 + 9.1075110 33.7307310 20.8393440 7.7638730 33.7226540 20.1418820 + 11.6480340 33.5608660 15.6385200 11.8430970 34.4592110 15.9052630 + 10.8610210 33.3295740 16.1318150 2.0269940 34.6444570 17.7306900 + 1.3972680 33.9431880 17.8977030 1.4875080 35.4048700 17.5140060 + 2.1525500 33.9228550 30.1659390 1.8709770 34.4262150 29.4020210 + 2.5345200 33.1250300 29.8001520 8.7540960 33.3382130 30.7439860 + 8.6406410 33.6576740 31.6391380 9.5710700 33.7394640 30.4477140 + 5.7917150 43.1353620 2.9883870 5.0159250 42.6554060 3.2782440 + 6.4430080 42.4559270 2.8140030 6.2631310 38.6181190 3.2222960 + 6.6396130 37.7453070 3.1096630 6.1650820 38.9539890 2.3313400 + 2.2344050 39.9593190 3.0165580 2.7422270 40.4574160 3.6570600 + 2.7657290 39.1828390 2.8404940 14.3354980 38.1298380 6.7194930 + 13.6307150 38.5180090 6.2010040 14.6012900 38.8248670 7.3215860 + 1.7683000 44.2386930 5.4602500 1.4352380 44.8655850 6.1023570 + 1.9449680 44.7648810 4.6804170 10.2816910 38.0532010 2.9278840 + 9.5772480 38.3416900 3.5081950 10.6429070 38.8632120 2.5678400 + 13.3503830 37.4986800 3.3188050 12.4028740 37.5325780 3.4503480 + 13.6753820 38.3125750 3.7037410 8.8323870 44.4181110 5.2334110 + 9.2492660 44.2041220 4.3987570 9.5563690 44.6753900 5.8042730 + 12.7785970 42.8168330 5.3250350 11.9504600 42.8861420 4.8500480 + 13.3736450 43.4022640 4.8566180 9.7427980 39.6037650 6.2705220 + 9.3299160 40.4291360 6.5245210 9.0103930 39.0182690 6.0781580 + 13.2684550 38.6554230 10.1527340 12.6528820 39.1633900 9.6242800 + 12.9480970 37.7552560 10.0953280 5.3298870 37.4946120 7.6189530 + 4.8678240 37.7029140 8.4309470 4.9276980 36.6805470 7.3160200 + 10.3303380 38.7155070 8.7486190 9.4796970 38.4160820 9.0695260 + 10.1705170 38.9597080 7.8370010 7.4253090 40.2156820 10.8484980 + 7.7506500 39.3820570 10.5087210 8.2133420 40.7385340 10.9963310 + 3.0804960 35.1724930 3.8743810 3.3777290 36.0787760 3.7935830 + 3.6290520 34.6843710 3.2603380 3.2742490 40.6496750 10.4095730 + 3.1786090 39.7091480 10.2596130 4.1174470 40.8711820 10.0143800 + 4.9798080 37.1445390 11.6326250 4.2896400 36.9517590 12.2672340 + 5.7230380 37.4280030 12.1650550 7.2561050 40.9843830 4.4680170 + 6.5242170 41.4930640 4.8170270 6.8585390 40.1673810 4.1668950 + 3.6938440 37.6598030 2.8732660 3.6974500 37.2187980 2.0237200 + 4.5889560 37.9815360 2.9804480 7.7186960 36.4377510 3.8803110 + 7.7359700 36.8886160 4.7244960 7.4702540 35.5383150 4.0936550 + 11.1457710 33.8509690 9.7189490 11.4703480 33.1199350 10.2447470 + 11.1814220 33.5323330 8.8170480 3.9946410 41.7199810 4.6198070 + 4.3616540 41.2458380 5.3659410 3.8051470 42.5941380 4.9606410 + 1.7845780 40.7608450 6.9382280 1.4802850 41.6400430 7.1632640 + 2.7392240 40.8208240 6.9739720 11.0715550 43.9634800 3.3275520 + 11.7914670 44.4590090 2.9371630 10.8697370 43.2852690 2.6829390 + 6.4534350 44.0343860 9.2144520 6.3871660 43.1139530 8.9602110 + 5.8239490 44.1319300 9.9289160 12.5962290 43.4971770 8.3116900 + 11.8710480 44.0900550 8.1146290 13.1237750 43.4895310 7.5130270 + 7.9096860 37.5826740 6.5127190 8.2777680 36.7621950 6.8406760 + 7.0495060 37.6428630 6.9282840 4.8698850 40.2366330 6.7365160 + 5.3684100 40.7112150 7.4017010 5.0121800 39.3129850 6.9435190 + 12.0765710 36.4534290 7.5793550 11.5739310 37.1939690 7.9187360 + 12.8922370 36.8418290 7.2630340 3.6224860 44.0398050 10.0383450 + 2.8570530 44.6083050 9.9538120 3.8040820 43.7474260 9.1451680 + 9.4393870 43.8218210 9.1313680 9.8534890 43.9763290 9.9804100 + 8.5044870 43.9473430 9.2939460 9.9116040 41.1614370 11.1352830 + 10.4936810 40.4066690 11.0473310 10.0877810 41.6921810 10.3584310 + 3.7949550 34.8784360 6.4797170 3.3466850 34.9008620 5.6342720 + 3.1614750 34.4803380 7.0767470 4.2009100 43.7738690 7.1009610 + 4.6197210 44.6171420 6.9285850 3.2817730 43.9110730 6.8716390 + 6.5373000 41.5054870 8.4847450 6.6569210 40.9096010 9.2242290 + 7.3967000 41.5424560 8.0648750 8.8760900 42.0592060 7.0609960 + 8.3496120 42.5834680 6.4575100 9.2192240 42.6919450 7.6919690 + 3.3041770 38.0476220 9.7423270 3.8941460 37.7392070 10.4301090 + 2.4862010 37.5755970 9.8983170 8.1235200 37.6642030 9.9756290 + 7.4350720 37.0023570 9.9106280 8.8441220 37.2180300 10.4204750 + 12.4700450 40.8745270 8.4291930 12.2386540 40.6458020 7.5289880 + 12.7305000 41.7944820 8.3836820 10.9088520 36.1001700 11.2071630 + 11.7858700 36.1085100 11.5905630 10.9209360 35.3632540 10.5963980 + 12.3551790 39.9531240 2.0959650 12.8789270 39.4593890 1.4649820 + 12.9411210 40.0881600 2.8407220 12.5341510 40.0371110 5.6179200 + 11.5844220 40.0034650 5.7324190 12.7154520 40.9471220 5.3828970 + 11.6204640 33.7859670 7.0272740 12.2576860 34.3993810 7.3931930 + 11.7679530 33.8220330 6.0821970 4.9909120 34.9385860 9.9347840 + 4.9298010 35.5307690 10.6843250 5.9309500 34.8311820 9.7898100 + 7.6283680 34.5955920 9.5740130 8.2424090 34.9135210 8.9121210 + 8.1733240 34.1104510 10.1935990 8.3691720 33.1588060 5.9009420 + 7.4951560 33.4923170 5.6982350 8.2602470 32.6861240 6.7261290 + 9.2763700 35.3658930 7.2851140 8.9477060 34.5510690 6.9052870 + 10.2246000 35.3228740 7.1616830 6.1166540 34.0757900 4.8402330 + 5.3338330 34.5503400 5.1199090 5.8229470 33.1712730 4.7315510 + 10.6687610 34.7781000 2.8851420 11.1095700 34.7226100 2.0373020 + 10.3995200 35.6939010 2.9561600 2.1525500 33.9228550 11.3915900 + 1.8709770 34.4262150 10.6276720 2.5345200 33.1250300 11.0258030 + 8.7540960 33.3382130 11.9696370 8.6406410 33.6576740 12.8647890 + 9.5710700 33.7394640 11.6733650 7.6599110 22.5831110 57.4305070 + 7.5793160 21.6685720 57.1596780 7.2463530 23.0798180 56.7244780 + 5.7917150 24.3610130 59.3114340 5.0159250 23.8810570 59.6012910 + 6.4430080 23.6815780 59.1370500 9.8124580 28.7670320 58.0913470 + 9.3506110 27.9957560 58.4200640 10.6250130 28.7936390 58.5965920 + 6.0387890 31.0528330 57.7117460 5.4199330 31.5085830 57.1411900 + 6.8939670 31.2079790 57.3107160 5.2326140 27.0367320 59.3184500 + 5.1634420 26.0957260 59.1573630 5.9946000 27.1268730 59.8907070 + 6.2631310 19.8437700 59.5453430 6.6396130 18.9709580 59.4327100 + 6.1650820 20.1796400 58.6543870 10.0455430 17.3388140 56.4781770 + 10.8665050 16.8484710 56.5207250 10.0789510 17.9285800 57.2313610 + 2.2344050 21.1849700 59.3396050 2.7422270 21.6830670 59.9801070 + 2.7657290 20.4084900 59.1635410 6.9051240 25.9367570 55.1049370 + 6.2868510 26.4017020 54.5412090 7.4174490 26.6295050 55.5218880 + 10.2816910 19.2788520 59.2509310 9.5772480 19.5673410 59.8312420 + 10.6429070 20.0888630 58.8908870 13.3503830 18.7243310 59.6418520 + 12.4028740 18.7582290 59.7733950 13.6753820 19.5382260 60.0267880 + 3.8823370 15.0240490 57.9374510 4.1898350 14.4687380 57.2210010 + 2.9524070 15.1584950 57.7547500 9.4338430 30.7407780 60.2281970 + 9.4465590 30.3370070 59.3604230 8.8813650 31.5155070 60.1243400 + 10.7283850 27.4624000 55.3172140 10.6180180 26.5198330 55.4421560 + 10.7252100 27.8239640 56.2034900 6.2704130 23.0889320 54.6734630 + 5.3433410 23.0226700 54.9023100 6.4228950 24.0269450 54.5589870 + 6.2573210 19.3606320 51.6701790 5.3176880 19.5220280 51.7554250 + 6.5756470 20.0792000 51.1237780 10.3001420 24.6509620 55.1769880 + 9.6813840 24.3129170 54.5296180 10.2825870 24.0069380 55.8849070 + 1.8760770 23.6154060 57.4554360 1.4717770 22.9031310 56.9600260 + 1.9623890 23.2707300 58.3442400 2.3442470 27.3021620 59.6193570 + 2.0470760 26.6967090 58.9401350 3.2942290 27.3398930 59.5082930 + 8.4766120 23.8896430 52.1842630 8.9159400 23.0518860 52.0380450 + 9.1894540 24.5225830 52.2706770 6.5861500 28.8292500 56.1523870 + 7.0257410 29.5716830 55.7379260 6.5248390 29.0719070 57.0762830 + 12.0583260 15.1439240 50.4983670 11.7455920 15.2366070 51.3982740 + 12.8195730 15.7220270 50.4481100 9.2531680 31.8161620 53.5086880 + 9.0932820 31.5264560 54.4068710 9.0878390 31.0401750 52.9732110 + 8.9557810 29.3249180 52.0684880 8.2622970 29.3226470 51.4087160 + 9.6980670 28.9008500 51.6379050 8.5207740 30.9511890 56.1433370 + 8.9764690 30.1701270 56.4571990 8.8600260 31.6618710 56.6874550 + 4.1587880 15.4744810 53.2190510 3.5342060 15.4704680 53.9443820 + 4.0718000 14.6075770 52.8226480 3.0804960 16.3981440 60.1974280 + 3.3777290 17.3044270 60.1166300 3.6290520 15.9100220 59.5833850 + 8.0641040 20.9831050 54.6656580 7.4649930 21.7066850 54.4820200 + 8.6120650 20.9207830 53.8833030 6.6705910 19.6194590 56.6959860 + 7.0635480 19.9366790 55.8828550 7.0322760 18.7406470 56.8104380 + 3.6938440 18.8854540 59.1963130 3.6974500 18.4444490 58.3467670 + 4.5889560 19.2071870 59.3034950 3.7558590 19.8866620 52.1869890 + 3.8771410 19.8453100 53.1355710 3.3707100 20.7490770 52.0316620 + 2.7680090 22.1967760 51.5853190 2.1996990 21.7486010 50.9589100 + 3.4769090 22.5560540 51.0518340 11.0715550 25.1891310 59.6505990 + 11.7914670 25.6846600 59.2602100 10.8697370 24.5109200 59.0059860 + 6.5325490 16.5829270 53.7935380 5.7190100 16.0842440 53.7180690 + 6.3387440 17.4227520 53.3771730 9.2473880 20.9548920 52.0897540 + 10.1353500 21.2666150 51.9148880 9.2178970 20.0821170 51.6978120 + 5.2434470 27.1272610 52.7685710 5.5850170 27.8714840 52.2729030 + 4.4147180 27.4403730 53.1310540 11.5188150 22.2660760 51.5577400 + 11.4351870 22.6974980 50.7073840 12.2382340 22.7259110 51.9904220 + 12.5475400 29.1203020 54.2859530 11.9051560 28.4658640 54.5603250 + 12.1606060 29.5258110 53.5100200 8.1261880 26.4488450 58.1331220 + 8.4785700 25.8516580 57.4732590 7.2424210 26.1232680 58.3039470 + 4.2125160 27.2086140 55.5401630 4.8996290 27.7555350 55.9209220 + 3.4257580 27.7526870 55.5751240 3.5152370 24.2132170 55.1526990 + 3.9715150 25.0237420 55.3787180 3.1640580 23.8955310 55.9845480 + 10.9372780 28.0119480 50.8235880 10.7110360 27.2949920 51.4160520 + 10.5468980 27.7631920 49.9857630 10.5189030 25.9291420 52.4850040 + 10.2310730 26.3904110 53.2727920 11.3141200 25.4689190 52.7534260 + 2.7357430 29.4217540 52.4154010 2.7267530 30.1547230 51.7998520 + 1.8155790 29.1749120 52.5080970 11.2758890 17.7640190 53.6445220 + 10.6472050 17.8685860 52.9303450 10.7810810 17.9836970 54.4339100 + 5.7217030 29.4845780 51.0779200 5.8229010 29.2809770 50.1481180 + 4.8218770 29.2304060 51.2826980 3.2442920 20.0426140 55.0603100 + 2.5359070 20.5112480 55.5016710 3.5287400 19.3848150 55.6948290 + 7.2758350 16.7676800 56.4998890 7.1526130 16.7862930 55.5508400 + 8.2242910 16.8155740 56.6197290 4.3635140 32.0032100 55.7726870 + 4.6176640 31.9653490 54.8506240 3.4147620 31.8765430 55.7655120 + 10.3687720 22.9223980 57.3485380 9.4277860 22.9374210 57.5233070 + 10.6831790 22.1359940 57.7945680 12.3713300 30.0932830 59.0239640 + 12.4960720 30.9164000 59.4963450 13.2378860 29.8823560 58.6763790 + 2.9533140 31.3594350 50.5182340 3.7461750 31.6483180 50.0664130 + 2.4337490 30.9286520 49.8394820 12.0063310 30.5864480 51.9419080 + 11.7204820 30.1729620 51.1273260 11.8082860 31.5152190 51.8219600 + 3.4710540 26.5797760 50.3824690 3.3661180 25.9650110 51.1086070 + 3.3034760 26.0563650 49.5987700 6.7113270 25.6417790 50.9866680 + 6.1623370 26.0887090 51.6309420 7.3332530 25.1367040 51.5104350 + 2.3788390 24.6008710 52.8831980 2.8004810 24.4348580 53.7263370 + 2.5039230 23.7908940 52.3887120 4.8916030 23.6246320 50.1309080 + 5.4121690 22.9095340 49.7650230 5.5384430 24.2632190 50.4309590 + 8.7535600 15.4850170 52.3577020 9.0337890 14.6418070 52.7136440 + 7.9801330 15.7173280 52.8715770 3.2915020 16.7177180 50.8024220 + 2.9437020 16.0401170 50.2226670 3.4927790 16.2566690 51.6167610 + 5.4564060 31.7057930 52.4210820 6.3514850 32.0442900 52.4429580 + 5.4881690 30.9837340 51.7935100 13.6759860 27.9779420 50.4646730 + 12.8452820 28.0456070 50.9353960 13.8531690 28.8683540 50.1613590 + 13.1316320 24.7226900 52.9680930 13.8935230 25.2923550 53.0740620 + 13.1470690 24.1554100 53.7389240 14.1376290 25.5777000 57.8122860 + 14.5085120 24.7944320 57.4058830 14.7778220 26.2666100 57.6340160 + 13.1835490 25.0161270 50.1253450 13.4584330 25.9240150 49.9972670 + 12.9946230 24.9523800 51.0615440 9.5811100 18.0406120 51.4207080 + 9.9995980 17.8537100 50.5803740 9.2747160 17.1885170 51.7310010 + 13.0800830 22.9530260 55.1182880 12.7044430 22.1858190 54.6864170 + 12.3503950 23.3352960 55.6057810 12.3551790 21.1787750 58.4190120 + 12.8789270 20.6850400 57.7880290 12.9411210 21.3138110 59.1637690 + 11.8451760 20.4361100 54.3582530 12.3410880 20.2031970 55.1431410 + 11.6467830 19.5972940 53.9420170 13.2738920 19.0722050 56.8920210 + 13.1638200 18.9178090 57.8302480 14.0346510 18.5442990 56.6495620 + 14.1629190 16.9029970 50.1326350 15.0878500 16.7711150 49.9244640 + 14.1404980 16.9822790 51.0862800 14.2367680 17.6740630 52.7583060 + 13.4419180 17.6085750 53.2875970 14.4410960 18.6091270 52.7468410 + 11.1786100 31.7132180 56.7521450 11.7745170 31.3916750 56.0755870 + 11.4364250 31.2404000 57.5434720 2.1594030 30.6715720 59.7567310 + 2.6759050 30.0603080 59.2315570 2.8091410 31.1744500 60.2478320 + 10.6687610 16.0037510 59.2081890 11.1095700 15.9482610 58.3603490 + 10.3995200 16.9195520 59.2792070 12.5326180 15.6352750 57.2190710 + 12.4714580 14.6913970 57.0721730 13.3118210 15.7432840 57.7644170 + 4.0020760 17.7201160 56.6748830 3.1895270 17.3458050 56.3344710 + 4.5062400 16.9646240 56.9770020 8.5045740 14.3843610 57.9131900 + 9.1075110 14.9563820 58.3880420 7.7638730 14.9483050 57.6905800 + 11.6480340 14.7865170 53.1872180 11.8430970 15.6848620 53.4539610 + 10.8610210 14.5552250 53.6805130 2.0269940 15.8701080 55.2793880 + 1.3972680 15.1688390 55.4464010 1.4875080 16.6305210 55.0627040 + 13.2006950 32.0265880 54.9478740 13.3759140 31.3403620 54.3039660 + 12.5028520 32.5512930 54.5555410 7.6599110 22.5831110 38.6561580 + 7.5793160 21.6685720 38.3853290 7.2463530 23.0798180 37.9501290 + 5.7917150 24.3610130 40.5370850 5.0159250 23.8810570 40.8269420 + 6.4430080 23.6815780 40.3627010 9.8124580 28.7670320 39.3169980 + 9.3506110 27.9957560 39.6457150 10.6250130 28.7936390 39.8222430 + 6.0387890 31.0528330 38.9373970 5.4199330 31.5085830 38.3668410 + 6.8939670 31.2079790 38.5363670 5.2326140 27.0367320 40.5441010 + 5.1634420 26.0957260 40.3830140 5.9946000 27.1268730 41.1163580 + 6.2631310 19.8437700 40.7709940 6.6396130 18.9709580 40.6583610 + 6.1650820 20.1796400 39.8800380 10.0455430 17.3388140 37.7038280 + 10.8665050 16.8484710 37.7463760 10.0789510 17.9285800 38.4570120 + 2.2344050 21.1849700 40.5652560 2.7422270 21.6830670 41.2057580 + 2.7657290 20.4084900 40.3891920 6.9051240 25.9367570 36.3305880 + 6.2868510 26.4017020 35.7668600 7.4174490 26.6295050 36.7475390 + 1.7683000 25.4643440 43.0089480 1.4352380 26.0912360 43.6510550 + 1.9449680 25.9905320 42.2291150 10.2816910 19.2788520 40.4765820 + 9.5772480 19.5673410 41.0568930 10.6429070 20.0888630 40.1165380 + 11.8979690 28.8963650 42.7393300 11.2143210 29.5662760 42.7309970 + 12.4373980 29.0944300 41.9738160 3.8823370 15.0240490 39.1631020 + 4.1898350 14.4687380 38.4466520 2.9524070 15.1584950 38.9804010 + 9.4338430 30.7407780 41.4538480 9.4465590 30.3370070 40.5860740 + 8.8813650 31.5155070 41.3499910 10.7283850 27.4624000 36.5428650 + 10.6180180 26.5198330 36.6678070 10.7252100 27.8239640 37.4291410 + 8.8323870 25.6437620 42.7821090 9.2492660 25.4297730 41.9474550 + 9.5563690 25.9010410 43.3529710 6.2704130 23.0889320 35.8991140 + 5.3433410 23.0226700 36.1279610 6.4228950 24.0269450 35.7846380 + 6.2573210 19.3606320 32.8958300 5.3176880 19.5220280 32.9810760 + 6.5756470 20.0792000 32.3494290 10.3001420 24.6509620 36.4026390 + 9.6813840 24.3129170 35.7552690 10.2825870 24.0069380 37.1105580 + 9.7427980 20.8294160 43.8192200 9.3299160 21.6547870 44.0732190 + 9.0103930 20.2439200 43.6268560 1.8760770 23.6154060 38.6810870 + 1.4717770 22.9031310 38.1856770 1.9623890 23.2707300 39.5698910 + 2.3442470 27.3021620 40.8450080 2.0470760 26.6967090 40.1657860 + 3.2942290 27.3398930 40.7339440 10.4328080 30.8753490 44.5073180 + 9.9558640 31.6825680 44.3145790 9.7489870 30.2231820 44.6599390 + 8.4766120 23.8896430 33.4099140 8.9159400 23.0518860 33.2636960 + 9.1894540 24.5225830 33.4963280 6.5861500 28.8292500 37.3780380 + 7.0257410 29.5716830 36.9635770 6.5248390 29.0719070 38.3019340 + 2.0612470 29.8538330 48.2800400 2.0327900 30.2581280 47.4128830 + 1.8977440 28.9248690 48.1172000 12.0583260 15.1439240 31.7240180 + 11.7455920 15.2366070 32.6239250 12.8195730 15.7220270 31.6737610 + 14.0127290 30.6365430 49.5764570 14.4887010 31.1148320 50.2553650 + 14.6334450 30.5682920 48.8510070 13.4160540 27.8278280 46.7364580 + 13.5423600 27.5890160 45.8181760 13.4581920 26.9962820 47.2086660 + 7.2777280 31.5306280 45.3059390 7.7921950 31.4414290 46.1081820 + 6.4346360 31.8765980 45.5987300 9.2531680 31.8161620 34.7343390 + 9.0932820 31.5264560 35.6325220 9.0878390 31.0401750 34.1988620 + 8.9557810 29.3249180 33.2941390 8.2622970 29.3226470 32.6343670 + 9.6980670 28.9008500 32.8635560 8.5207740 30.9511890 37.3689880 + 8.9764690 30.1701270 37.6828500 8.8600260 31.6618710 37.9131060 + 13.2684550 19.8810740 47.7014320 12.6528820 20.3890410 47.1729780 + 12.9480970 18.9809070 47.6440260 5.3298870 18.7202630 45.1676510 + 4.8678240 18.9285650 45.9796450 4.9276980 17.9061980 44.8647180 + 10.3303380 19.9411580 46.2973170 9.4796970 19.6417330 46.6182240 + 10.1705170 20.1853590 45.3856990 7.4253090 21.4413330 48.3971960 + 7.7506500 20.6077080 48.0574190 8.2133420 21.9641850 48.5450290 + 4.1587880 15.4744810 34.4447020 3.5342060 15.4704680 35.1700330 + 4.0718000 14.6075770 34.0482990 3.0804960 16.3981440 41.4230790 + 3.3777290 17.3044270 41.3422810 3.6290520 15.9100220 40.8090360 + 8.0641040 20.9831050 35.8913090 7.4649930 21.7066850 35.7076710 + 8.6120650 20.9207830 35.1089540 3.2742490 21.8753260 47.9582710 + 3.1786090 20.9347990 47.8083110 4.1174470 22.0968330 47.5630780 + 6.6705910 19.6194590 37.9216370 7.0635480 19.9366790 37.1085060 + 7.0322760 18.7406470 38.0360890 4.9798080 18.3701900 49.1813230 + 4.2896400 18.1774100 49.8159320 5.7230380 18.6536540 49.7137530 + 7.2561050 22.2100340 42.0167150 6.5242170 22.7187150 42.3657250 + 6.8585390 21.3930320 41.7155930 3.6938440 18.8854540 40.4219640 + 3.6974500 18.4444490 39.5724180 4.5889560 19.2071870 40.5291460 + 3.7558590 19.8866620 33.4126400 3.8771410 19.8453100 34.3612220 + 3.3707100 20.7490770 33.2573130 7.7186960 17.6634020 41.4290090 + 7.7359700 18.1142670 42.2731940 7.4702540 16.7639660 41.6423530 + 2.7680090 22.1967760 32.8109700 2.1996990 21.7486010 32.1845610 + 3.4769090 22.5560540 32.2774850 11.1457710 15.0766200 47.2676470 + 11.4703480 14.3455860 47.7934450 11.1814220 14.7579840 46.3657460 + 3.9946410 22.9456320 42.1685050 4.3616540 22.4714890 42.9146390 + 3.8051470 23.8197890 42.5093390 1.7845780 21.9864960 44.4869260 + 1.4802850 22.8656940 44.7119620 2.7392240 22.0464750 44.5226700 + 6.5325490 16.5829270 35.0191890 5.7190100 16.0842440 34.9437200 + 6.3387440 17.4227520 34.6028240 6.4534350 25.2600370 46.7631500 + 6.3871660 24.3396040 46.5089090 5.8239490 25.3575810 47.4776140 + 9.2473880 20.9548920 33.3154050 10.1353500 21.2666150 33.1405390 + 9.2178970 20.0821170 32.9234630 5.2434470 27.1272610 33.9942220 + 5.5850170 27.8714840 33.4985540 4.4147180 27.4403730 34.3567050 + 6.3851080 28.0820940 46.5135300 6.3995620 27.1501900 46.2954210 + 5.6776180 28.1680700 47.1525070 11.5188150 22.2660760 32.7833910 + 11.4351870 22.6974980 31.9330350 12.2382340 22.7259110 33.2160730 + 12.5962290 24.7228280 45.8603880 11.8710480 25.3157060 45.6633270 + 13.1237750 24.7151820 45.0617250 8.1261880 26.4488450 39.3587730 + 8.4785700 25.8516580 38.6989100 7.2424210 26.1232680 39.5295980 + 4.2125160 27.2086140 36.7658140 4.8996290 27.7555350 37.1465730 + 3.4257580 27.7526870 36.8007750 3.5152370 24.2132170 36.3783500 + 3.9715150 25.0237420 36.6043690 3.1640580 23.8955310 37.2101990 + 5.8184980 29.7238510 43.6075800 6.4627200 29.9297890 44.2849220 + 6.1814420 28.9626910 43.1546650 7.0917060 27.7270860 42.3253250 + 7.7339290 27.0264020 42.4385420 7.6166410 28.5069300 42.1450140 + 10.9372780 28.0119480 32.0492390 10.7110360 27.2949920 32.6417030 + 10.5468980 27.7631920 31.2114140 8.8654680 28.5265760 45.5289310 + 9.2010920 29.1132450 46.2067230 7.9455020 28.3958470 45.7587100 + 10.5189030 25.9291420 33.7106550 10.2310730 26.3904110 34.4984430 + 11.3141200 25.4689190 33.9790770 4.6943260 28.5757090 48.6977370 + 4.3740130 27.8566330 49.2423060 4.0201620 29.2512160 48.7713430 + 2.7357430 29.4217540 33.6410520 2.7267530 30.1547230 33.0255030 + 1.8155790 29.1749120 33.7337480 7.9096860 18.8083250 44.0614170 + 8.2777680 17.9878460 44.3893740 7.0495060 18.8685140 44.4769820 + 11.2758890 17.7640190 34.8701730 10.6472050 17.8685860 34.1559960 + 10.7810810 17.9836970 35.6595610 5.7217030 29.4845780 32.3035710 + 5.8229010 29.2809770 31.3737690 4.8218770 29.2304060 32.5083490 + 3.2442920 20.0426140 36.2859610 2.5359070 20.5112480 36.7273220 + 3.5287400 19.3848150 36.9204800 4.8698850 21.4622840 44.2852140 + 5.3684100 21.9368660 44.9503990 5.0121800 20.5386360 44.4922170 + 7.2758350 16.7676800 37.7255400 7.1526130 16.7862930 36.7764910 + 8.2242910 16.8155740 37.8453800 4.3635140 32.0032100 36.9983380 + 4.6176640 31.9653490 36.0762750 3.4147620 31.8765430 36.9911630 + 12.3713300 30.0932830 40.2496150 12.4960720 30.9164000 40.7219960 + 13.2378860 29.8823560 39.9020300 2.9533140 31.3594350 31.7438850 + 3.7461750 31.6483180 31.2920640 2.4337490 30.9286520 31.0651330 + 7.6853740 27.4789980 49.0574270 7.0791900 27.5021580 48.3170020 + 7.3807850 26.7473020 49.5941520 9.1154110 31.2070270 47.6683680 + 10.0675860 31.1228290 47.6183920 8.9682330 31.8711980 48.3417470 + 12.0063310 30.5864480 33.1675590 11.7204820 30.1729620 32.3529770 + 11.8082860 31.5152190 33.0476110 3.4710540 26.5797760 31.6081200 + 3.3661180 25.9650110 32.3342580 3.3034760 26.0563650 30.8244210 + 3.6224860 25.2654560 47.5870430 2.8570530 25.8339560 47.5025100 + 3.8040820 24.9730770 46.6938660 6.7113270 25.6417790 32.2123190 + 6.1623370 26.0887090 32.8565930 7.3332530 25.1367040 32.7360860 + 10.7648210 26.9959890 48.1445450 11.5057680 27.3335650 47.6412910 + 10.0020890 27.1651950 47.5915220 2.3788390 24.6008710 34.1088490 + 2.8004810 24.4348580 34.9519880 2.5039230 23.7908940 33.6143630 + 4.8916030 23.6246320 31.3565590 5.4121690 22.9095340 30.9906740 + 5.5384430 24.2632190 31.6566100 9.4393870 25.0474720 46.6800660 + 9.8534890 25.2019800 47.5291080 8.5044870 25.1729940 46.8426440 + 9.9116040 22.3870880 48.6839810 10.4936810 21.6323200 48.5960290 + 10.0877810 22.9178320 47.9071290 3.7949550 16.1040870 44.0284150 + 3.3466850 16.1265130 43.1829700 3.1614750 15.7059890 44.6254450 + 4.2009100 24.9995200 44.6496590 4.6197210 25.8427930 44.4772830 + 3.2817730 25.1367240 44.4203370 6.5373000 22.7311380 46.0334430 + 6.6569210 22.1352520 46.7729270 7.3967000 22.7681070 45.6135730 + 8.8760900 23.2848570 44.6096940 8.3496120 23.8091190 44.0062080 + 9.2192240 23.9175960 45.2406670 2.0516520 31.3048210 45.7654320 + 1.5137610 32.0294270 45.4463020 2.3050480 30.8278550 44.9751660 + 3.3041770 19.2732730 47.2910250 3.8941460 18.9648580 47.9788070 + 2.4862010 18.8012480 47.4470150 8.1235200 18.8898540 47.5243270 + 7.4350720 18.2280080 47.4593260 8.8441220 18.4436810 47.9691730 + 8.7535600 15.4850170 33.5833530 9.0337890 14.6418070 33.9392950 + 7.9801330 15.7173280 34.0972280 4.9078730 32.5399420 46.0240970 + 4.8337430 33.4434560 46.3313340 4.0057570 32.2211320 45.9963040 + 3.2915020 16.7177180 32.0280730 2.9437020 16.0401170 31.4483180 + 3.4927790 16.2566690 32.8424120 5.4564060 31.7057930 33.6467330 + 6.3514850 32.0442900 33.6686090 5.4881690 30.9837340 33.0191610 + 12.4358410 30.2361600 46.3533530 11.8360400 30.2954160 45.6097450 + 12.5652310 29.2966580 46.4830380 13.6759860 27.9779420 31.6903240 + 12.8452820 28.0456070 32.1610470 13.8531690 28.8683540 31.3870100 + 13.1316320 24.7226900 34.1937440 13.8935230 25.2923550 34.2997130 + 13.1470690 24.1554100 34.9645750 11.1210050 26.9613580 44.4509690 + 10.3069890 27.3910740 44.7135480 11.5284250 27.5731990 43.8378740 + 13.1835490 25.0161270 31.3509960 13.4584330 25.9240150 31.2229180 + 12.9946230 24.9523800 32.2871950 9.5811100 18.0406120 32.6463590 + 9.9995980 17.8537100 31.8060250 9.2747160 17.1885170 32.9566520 + 12.4700450 22.1001780 45.9778910 12.2386540 21.8714530 45.0776860 + 12.7305000 23.0201330 45.9323800 10.9088520 17.3258210 48.7558610 + 11.7858700 17.3341610 49.1392610 10.9209360 16.5889050 48.1450960 + 11.8451760 20.4361100 35.5839040 12.3410880 20.2031970 36.3687920 + 11.6467830 19.5972940 35.1676680 11.6204640 15.0116180 44.5759720 + 12.2576860 15.6250320 44.9418910 11.7679530 15.0476840 43.6308950 + 14.1629190 16.9029970 31.3582860 15.0878500 16.7711150 31.1501150 + 14.1404980 16.9822790 32.3119310 14.2367680 17.6740630 33.9839570 + 13.4419180 17.6085750 34.5132480 14.4410960 18.6091270 33.9724920 + 11.1786100 31.7132180 37.9777960 11.7745170 31.3916750 37.3012380 + 11.4364250 31.2404000 38.7691230 2.7854700 29.7009680 43.7278310 + 2.5446060 29.9684240 42.8408830 3.7257340 29.8715410 43.7829170 + 4.9909120 16.1642370 47.4834820 4.9298010 16.7564200 48.2330230 + 5.9309500 16.0568330 47.3385080 7.6283680 15.8212430 47.1227110 + 8.2424090 16.1391720 46.4608190 8.1733240 15.3361020 47.7422970 + 14.0458860 31.7204060 44.5288950 13.5517140 32.1172930 43.8116080 + 13.4372150 31.0953270 44.9226230 8.3691720 14.3844570 43.4496400 + 7.4951560 14.7179680 43.2469330 8.2602470 13.9117750 44.2748270 + 9.2763700 16.5915440 44.8338120 8.9477060 15.7767200 44.4539850 + 10.2246000 16.5485250 44.7103810 11.7298310 32.3627480 41.8075690 + 11.2701280 33.1143290 41.4333710 11.1010770 31.6433950 41.7490490 + 2.1594030 30.6715720 40.9823820 2.6759050 30.0603080 40.4572080 + 2.8091410 31.1744500 41.4734830 4.8989530 31.5624210 41.8092800 + 5.1867340 31.3078510 40.9325810 5.4112750 31.0101570 42.3998370 + 6.1166540 15.3014410 42.3889310 5.3338330 15.7759910 42.6686070 + 5.8229470 14.3969240 42.2802490 10.6687610 16.0037510 40.4338400 + 11.1095700 15.9482610 39.5860000 10.3995200 16.9195520 40.5048580 + 12.5326180 15.6352750 38.4447220 12.4714580 14.6913970 38.2978240 + 13.3118210 15.7432840 38.9900680 4.0020760 17.7201160 37.9005340 + 3.1895270 17.3458050 37.5601220 4.5062400 16.9646240 38.2026530 + 8.5045740 14.3843610 39.1388410 9.1075110 14.9563820 39.6136930 + 7.7638730 14.9483050 38.9162310 11.6480340 14.7865170 34.4128690 + 11.8430970 15.6848620 34.6796120 10.8610210 14.5552250 34.9061640 + 2.0269940 15.8701080 36.5050390 1.3972680 15.1688390 36.6720520 + 1.4875080 16.6305210 36.2883550 4.9661890 32.4840310 49.1761000 + 5.8929200 32.2484580 49.2196960 4.9512320 33.3112310 48.6947030 + 13.2006950 32.0265880 36.1735250 13.3759140 31.3403620 35.5296170 + 12.5028520 32.5512930 35.7811920 2.1525500 15.1485060 48.9402880 + 1.8709770 15.6518660 48.1763700 2.5345200 14.3506810 48.5745010 + 8.7540960 14.5638640 49.5183350 8.6406410 14.8833250 50.4134870 + 9.5710700 14.9651150 49.2220630 11.5339450 31.7110170 49.0002040 + 12.3264770 31.2159400 48.7928000 11.8272600 32.3900310 49.6077650 + 7.6599110 22.5831110 19.8818090 7.5793160 21.6685720 19.6109800 + 7.2463530 23.0798180 19.1757800 5.7917150 24.3610130 21.7627360 + 5.0159250 23.8810570 22.0525930 6.4430080 23.6815780 21.5883520 + 9.8124580 28.7670320 20.5426490 9.3506110 27.9957560 20.8713660 + 10.6250130 28.7936390 21.0478940 6.0387890 31.0528330 20.1630480 + 5.4199330 31.5085830 19.5924920 6.8939670 31.2079790 19.7620180 + 5.2326140 27.0367320 21.7697520 5.1634420 26.0957260 21.6086650 + 5.9946000 27.1268730 22.3420090 6.2631310 19.8437700 21.9966450 + 6.6396130 18.9709580 21.8840120 6.1650820 20.1796400 21.1056890 + 10.0455430 17.3388140 18.9294790 10.8665050 16.8484710 18.9720270 + 10.0789510 17.9285800 19.6826630 2.2344050 21.1849700 21.7909070 + 2.7422270 21.6830670 22.4314090 2.7657290 20.4084900 21.6148430 + 6.9051240 25.9367570 17.5562390 6.2868510 26.4017020 16.9925110 + 7.4174490 26.6295050 17.9731900 1.7683000 25.4643440 24.2345990 + 1.4352380 26.0912360 24.8767060 1.9449680 25.9905320 23.4547660 + 10.2816910 19.2788520 21.7022330 9.5772480 19.5673410 22.2825440 + 10.6429070 20.0888630 21.3421890 11.8979690 28.8963650 23.9649810 + 11.2143210 29.5662760 23.9566480 12.4373980 29.0944300 23.1994670 + 3.8823370 15.0240490 20.3887530 4.1898350 14.4687380 19.6723030 + 2.9524070 15.1584950 20.2060520 9.4338430 30.7407780 22.6794990 + 9.4465590 30.3370070 21.8117250 8.8813650 31.5155070 22.5756420 + 10.7283850 27.4624000 17.7685160 10.6180180 26.5198330 17.8934580 + 10.7252100 27.8239640 18.6547920 8.8323870 25.6437620 24.0077600 + 9.2492660 25.4297730 23.1731060 9.5563690 25.9010410 24.5786220 + 6.2704130 23.0889320 17.1247650 5.3433410 23.0226700 17.3536120 + 6.4228950 24.0269450 17.0102890 6.2573210 19.3606320 14.1214810 + 5.3176880 19.5220280 14.2067270 6.5756470 20.0792000 13.5750800 + 10.3001420 24.6509620 17.6282900 9.6813840 24.3129170 16.9809200 + 10.2825870 24.0069380 18.3362090 9.7427980 20.8294160 25.0448710 + 9.3299160 21.6547870 25.2988700 9.0103930 20.2439200 24.8525070 + 1.8760770 23.6154060 19.9067380 1.4717770 22.9031310 19.4113280 + 1.9623890 23.2707300 20.7955420 2.3442470 27.3021620 22.0706590 + 2.0470760 26.6967090 21.3914370 3.2942290 27.3398930 21.9595950 + 10.4328080 30.8753490 25.7329690 9.9558640 31.6825680 25.5402300 + 9.7489870 30.2231820 25.8855900 8.4766120 23.8896430 14.6355650 + 8.9159400 23.0518860 14.4893470 9.1894540 24.5225830 14.7219790 + 6.5861500 28.8292500 18.6036890 7.0257410 29.5716830 18.1892280 + 6.5248390 29.0719070 19.5275850 2.0612470 29.8538330 29.5056910 + 2.0327900 30.2581280 28.6385340 1.8977440 28.9248690 29.3428510 + 12.0583260 15.1439240 12.9496690 11.7455920 15.2366070 13.8495760 + 12.8195730 15.7220270 12.8994120 14.0127290 30.6365430 30.8021080 + 14.4887010 31.1148320 31.4810160 14.6334450 30.5682920 30.0766580 + 13.4160540 27.8278280 27.9621090 13.5423600 27.5890160 27.0438270 + 13.4581920 26.9962820 28.4343170 7.2777280 31.5306280 26.5315900 + 7.7921950 31.4414290 27.3338330 6.4346360 31.8765980 26.8243810 + 9.2531680 31.8161620 15.9599900 9.0932820 31.5264560 16.8581730 + 9.0878390 31.0401750 15.4245130 8.9557810 29.3249180 14.5197900 + 8.2622970 29.3226470 13.8600180 9.6980670 28.9008500 14.0892070 + 8.5207740 30.9511890 18.5946390 8.9764690 30.1701270 18.9085010 + 8.8600260 31.6618710 19.1387570 13.2684550 19.8810740 28.9270830 + 12.6528820 20.3890410 28.3986290 12.9480970 18.9809070 28.8696770 + 5.3298870 18.7202630 26.3933020 4.8678240 18.9285650 27.2052960 + 4.9276980 17.9061980 26.0903690 10.3303380 19.9411580 27.5229680 + 9.4796970 19.6417330 27.8438750 10.1705170 20.1853590 26.6113500 + 7.4253090 21.4413330 29.6228470 7.7506500 20.6077080 29.2830700 + 8.2133420 21.9641850 29.7706800 4.1587880 15.4744810 15.6703530 + 3.5342060 15.4704680 16.3956840 4.0718000 14.6075770 15.2739500 + 3.0804960 16.3981440 22.6487300 3.3777290 17.3044270 22.5679320 + 3.6290520 15.9100220 22.0346870 8.0641040 20.9831050 17.1169600 + 7.4649930 21.7066850 16.9333220 8.6120650 20.9207830 16.3346050 + 3.2742490 21.8753260 29.1839220 3.1786090 20.9347990 29.0339620 + 4.1174470 22.0968330 28.7887290 6.6705910 19.6194590 19.1472880 + 7.0635480 19.9366790 18.3341570 7.0322760 18.7406470 19.2617400 + 4.9798080 18.3701900 30.4069740 4.2896400 18.1774100 31.0415830 + 5.7230380 18.6536540 30.9394040 7.2561050 22.2100340 23.2423660 + 6.5242170 22.7187150 23.5913760 6.8585390 21.3930320 22.9412440 + 3.6938440 18.8854540 21.6476150 3.6974500 18.4444490 20.7980690 + 4.5889560 19.2071870 21.7547970 3.7558590 19.8866620 14.6382910 + 3.8771410 19.8453100 15.5868730 3.3707100 20.7490770 14.4829640 + 7.7186960 17.6634020 22.6546600 7.7359700 18.1142670 23.4988450 + 7.4702540 16.7639660 22.8680040 2.7680090 22.1967760 14.0366210 + 2.1996990 21.7486010 13.4102120 3.4769090 22.5560540 13.5031360 + 11.1457710 15.0766200 28.4932980 11.4703480 14.3455860 29.0190960 + 11.1814220 14.7579840 27.5913970 3.9946410 22.9456320 23.3941560 + 4.3616540 22.4714890 24.1402900 3.8051470 23.8197890 23.7349900 + 1.7845780 21.9864960 25.7125770 1.4802850 22.8656940 25.9376130 + 2.7392240 22.0464750 25.7483210 6.5325490 16.5829270 16.2448400 + 5.7190100 16.0842440 16.1693710 6.3387440 17.4227520 15.8284750 + 6.4534350 25.2600370 27.9888010 6.3871660 24.3396040 27.7345600 + 5.8239490 25.3575810 28.7032650 9.2473880 20.9548920 14.5410560 + 10.1353500 21.2666150 14.3661900 9.2178970 20.0821170 14.1491140 + 5.2434470 27.1272610 15.2198730 5.5850170 27.8714840 14.7242050 + 4.4147180 27.4403730 15.5823560 6.3851080 28.0820940 27.7391810 + 6.3995620 27.1501900 27.5210720 5.6776180 28.1680700 28.3781580 + 11.5188150 22.2660760 14.0090420 11.4351870 22.6974980 13.1586860 + 12.2382340 22.7259110 14.4417240 12.5962290 24.7228280 27.0860390 + 11.8710480 25.3157060 26.8889780 13.1237750 24.7151820 26.2873760 + 8.1261880 26.4488450 20.5844240 8.4785700 25.8516580 19.9245610 + 7.2424210 26.1232680 20.7552490 4.2125160 27.2086140 17.9914650 + 4.8996290 27.7555350 18.3722240 3.4257580 27.7526870 18.0264260 + 3.5152370 24.2132170 17.6040010 3.9715150 25.0237420 17.8300200 + 3.1640580 23.8955310 18.4358500 5.8184980 29.7238510 24.8332310 + 6.4627200 29.9297890 25.5105730 6.1814420 28.9626910 24.3803160 + 7.0917060 27.7270860 23.5509760 7.7339290 27.0264020 23.6641930 + 7.6166410 28.5069300 23.3706650 10.9372780 28.0119480 13.2748900 + 10.7110360 27.2949920 13.8673540 10.5468980 27.7631920 12.4370650 + 8.8654680 28.5265760 26.7545820 9.2010920 29.1132450 27.4323740 + 7.9455020 28.3958470 26.9843610 4.6943260 28.5757090 29.9233880 + 4.3740130 27.8566330 30.4679570 4.0201620 29.2512160 29.9969940 + 2.7357430 29.4217540 14.8667030 2.7267530 30.1547230 14.2511540 + 1.8155790 29.1749120 14.9593990 7.9096860 18.8083250 25.2870680 + 8.2777680 17.9878460 25.6150250 7.0495060 18.8685140 25.7026330 + 11.2758890 17.7640190 16.0958240 10.6472050 17.8685860 15.3816470 + 10.7810810 17.9836970 16.8852120 5.7217030 29.4845780 13.5292220 + 5.8229010 29.2809770 12.5994200 4.8218770 29.2304060 13.7340000 + 3.2442920 20.0426140 17.5116120 2.5359070 20.5112480 17.9529730 + 3.5287400 19.3848150 18.1461310 4.8698850 21.4622840 25.5108650 + 5.3684100 21.9368660 26.1760500 5.0121800 20.5386360 25.7178680 + 7.2758350 16.7676800 18.9511910 7.1526130 16.7862930 18.0021420 + 8.2242910 16.8155740 19.0710310 4.3635140 32.0032100 18.2239890 + 4.6176640 31.9653490 17.3019260 3.4147620 31.8765430 18.2168140 + 12.0765710 17.6790800 26.3537040 11.5739310 18.4196200 26.6930850 + 12.8922370 18.0674800 26.0373830 12.3713300 30.0932830 21.4752660 + 12.4960720 30.9164000 21.9476470 13.2378860 29.8823560 21.1276810 + 2.9533140 31.3594350 12.9695360 3.7461750 31.6483180 12.5177150 + 2.4337490 30.9286520 12.2907840 7.6853740 27.4789980 30.2830780 + 7.0791900 27.5021580 29.5426530 7.3807850 26.7473020 30.8198030 + 9.1154110 31.2070270 28.8940190 10.0675860 31.1228290 28.8440430 + 8.9682330 31.8711980 29.5673980 12.0063310 30.5864480 14.3932100 + 11.7204820 30.1729620 13.5786280 11.8082860 31.5152190 14.2732620 + 3.4710540 26.5797760 12.8337710 3.3661180 25.9650110 13.5599090 + 3.3034760 26.0563650 12.0500720 3.6224860 25.2654560 28.8126940 + 2.8570530 25.8339560 28.7281610 3.8040820 24.9730770 27.9195170 + 6.7113270 25.6417790 13.4379700 6.1623370 26.0887090 14.0822440 + 7.3332530 25.1367040 13.9617370 10.7648210 26.9959890 29.3701960 + 11.5057680 27.3335650 28.8669420 10.0020890 27.1651950 28.8171730 + 2.3788390 24.6008710 15.3345000 2.8004810 24.4348580 16.1776390 + 2.5039230 23.7908940 14.8400140 4.8916030 23.6246320 12.5822100 + 5.4121690 22.9095340 12.2163250 5.5384430 24.2632190 12.8822610 + 9.4393870 25.0474720 27.9057170 9.8534890 25.2019800 28.7547590 + 8.5044870 25.1729940 28.0682950 9.9116040 22.3870880 29.9096320 + 10.4936810 21.6323200 29.8216800 10.0877810 22.9178320 29.1327800 + 3.7949550 16.1040870 25.2540660 3.3466850 16.1265130 24.4086210 + 3.1614750 15.7059890 25.8510960 4.2009100 24.9995200 25.8753100 + 4.6197210 25.8427930 25.7029340 3.2817730 25.1367240 25.6459880 + 6.5373000 22.7311380 27.2590940 6.6569210 22.1352520 27.9985780 + 7.3967000 22.7681070 26.8392240 8.8760900 23.2848570 25.8353450 + 8.3496120 23.8091190 25.2318590 9.2192240 23.9175960 26.4663180 + 2.0516520 31.3048210 26.9910830 1.5137610 32.0294270 26.6719530 + 2.3050480 30.8278550 26.2008170 3.3041770 19.2732730 28.5166760 + 3.8941460 18.9648580 29.2044580 2.4862010 18.8012480 28.6726660 + 8.1235200 18.8898540 28.7499780 7.4350720 18.2280080 28.6849770 + 8.8441220 18.4436810 29.1948240 8.7535600 15.4850170 14.8090040 + 9.0337890 14.6418070 15.1649460 7.9801330 15.7173280 15.3228790 + 4.9078730 32.5399420 27.2497480 4.8337430 33.4434560 27.5569850 + 4.0057570 32.2211320 27.2219550 3.2915020 16.7177180 13.2537240 + 2.9437020 16.0401170 12.6739690 3.4927790 16.2566690 14.0680630 + 5.4564060 31.7057930 14.8723840 6.3514850 32.0442900 14.8942600 + 5.4881690 30.9837340 14.2448120 12.4358410 30.2361600 27.5790040 + 11.8360400 30.2954160 26.8353960 12.5652310 29.2966580 27.7086890 + 13.6759860 27.9779420 12.9159750 12.8452820 28.0456070 13.3866980 + 13.8531690 28.8683540 12.6126610 11.1210050 26.9613580 25.6766200 + 10.3069890 27.3910740 25.9391990 11.5284250 27.5731990 25.0635250 + 13.1835490 25.0161270 12.5766470 13.4584330 25.9240150 12.4485690 + 12.9946230 24.9523800 13.5128460 9.5811100 18.0406120 13.8720100 + 9.9995980 17.8537100 13.0316760 9.2747160 17.1885170 14.1823030 + 12.4700450 22.1001780 27.2035420 12.2386540 21.8714530 26.3033370 + 12.7305000 23.0201330 27.1580310 10.9088520 17.3258210 29.9815120 + 11.7858700 17.3341610 30.3649120 10.9209360 16.5889050 29.3707470 + 12.5341510 21.2627620 24.3922690 11.5844220 21.2291160 24.5067680 + 12.7154520 22.1727730 24.1572460 11.8451760 20.4361100 16.8095550 + 12.3410880 20.2031970 17.5944430 11.6467830 19.5972940 16.3933190 + 11.6204640 15.0116180 25.8016230 12.2576860 15.6250320 26.1675420 + 11.7679530 15.0476840 24.8565460 14.1629190 16.9029970 12.5839370 + 15.0878500 16.7711150 12.3757660 14.1404980 16.9822790 13.5375820 + 14.2367680 17.6740630 15.2096080 13.4419180 17.6085750 15.7388990 + 14.4410960 18.6091270 15.1981430 11.1786100 31.7132180 19.2034470 + 11.7745170 31.3916750 18.5268890 11.4364250 31.2404000 19.9947740 + 2.7854700 29.7009680 24.9534820 2.5446060 29.9684240 24.0665340 + 3.7257340 29.8715410 25.0085680 4.9909120 16.1642370 28.7091330 + 4.9298010 16.7564200 29.4586740 5.9309500 16.0568330 28.5641590 + 7.6283680 15.8212430 28.3483620 8.2424090 16.1391720 27.6864700 + 8.1733240 15.3361020 28.9679480 14.0458860 31.7204060 25.7545460 + 13.5517140 32.1172930 25.0372590 13.4372150 31.0953270 26.1482740 + 8.3691720 14.3844570 24.6752910 7.4951560 14.7179680 24.4725840 + 8.2602470 13.9117750 25.5004780 9.2763700 16.5915440 26.0594630 + 8.9477060 15.7767200 25.6796360 10.2246000 16.5485250 25.9360320 + 11.7298310 32.3627480 23.0332200 11.2701280 33.1143290 22.6590220 + 11.1010770 31.6433950 22.9747000 2.1594030 30.6715720 22.2080330 + 2.6759050 30.0603080 21.6828590 2.8091410 31.1744500 22.6991340 + 4.8989530 31.5624210 23.0349310 5.1867340 31.3078510 22.1582320 + 5.4112750 31.0101570 23.6254880 6.1166540 15.3014410 23.6145820 + 5.3338330 15.7759910 23.8942580 5.8229470 14.3969240 23.5059000 + 10.6687610 16.0037510 21.6594910 11.1095700 15.9482610 20.8116510 + 10.3995200 16.9195520 21.7305090 12.5326180 15.6352750 19.6703730 + 12.4714580 14.6913970 19.5234750 13.3118210 15.7432840 20.2157190 + 4.0020760 17.7201160 19.1261850 3.1895270 17.3458050 18.7857730 + 4.5062400 16.9646240 19.4283040 8.5045740 14.3843610 20.3644920 + 9.1075110 14.9563820 20.8393440 7.7638730 14.9483050 20.1418820 + 11.6480340 14.7865170 15.6385200 11.8430970 15.6848620 15.9052630 + 10.8610210 14.5552250 16.1318150 2.0269940 15.8701080 17.7306900 + 1.3972680 15.1688390 17.8977030 1.4875080 16.6305210 17.5140060 + 4.9661890 32.4840310 30.4017510 5.8929200 32.2484580 30.4453470 + 4.9512320 33.3112310 29.9203540 2.1525500 15.1485060 30.1659390 + 1.8709770 15.6518660 29.4020210 2.5345200 14.3506810 29.8001520 + 8.7540960 14.5638640 30.7439860 8.6406410 14.8833250 31.6391380 + 9.5710700 14.9651150 30.4477140 11.5339450 31.7110170 30.2258550 + 12.3264770 31.2159400 30.0184510 11.8272600 32.3900310 30.8334160 + 5.7917150 24.3610130 2.9883870 5.0159250 23.8810570 3.2782440 + 6.4430080 23.6815780 2.8140030 9.8124580 28.7670320 1.7683000 + 9.3506110 27.9957560 2.0970170 10.6250130 28.7936390 2.2735450 + 5.2326140 27.0367320 2.9954030 5.1634420 26.0957260 2.8343160 + 5.9946000 27.1268730 3.5676600 6.2631310 19.8437700 3.2222960 + 6.6396130 18.9709580 3.1096630 6.1650820 20.1796400 2.3313400 + 2.2344050 21.1849700 3.0165580 2.7422270 21.6830670 3.6570600 + 2.7657290 20.4084900 2.8404940 14.3354980 19.3554890 6.7194930 + 13.6307150 19.7436600 6.2010040 14.6012900 20.0505180 7.3215860 + 1.7683000 25.4643440 5.4602500 1.4352380 26.0912360 6.1023570 + 1.9449680 25.9905320 4.6804170 10.2816910 19.2788520 2.9278840 + 9.5772480 19.5673410 3.5081950 10.6429070 20.0888630 2.5678400 + 11.8979690 28.8963650 5.1906320 11.2143210 29.5662760 5.1822990 + 12.4373980 29.0944300 4.4251180 13.3503830 18.7243310 3.3188050 + 12.4028740 18.7582290 3.4503480 13.6753820 19.5382260 3.7037410 + 9.4338430 30.7407780 3.9051500 9.4465590 30.3370070 3.0373760 + 8.8813650 31.5155070 3.8012930 8.8323870 25.6437620 5.2334110 + 9.2492660 25.4297730 4.3987570 9.5563690 25.9010410 5.8042730 + 12.7785970 24.0424840 5.3250350 11.9504600 24.1117930 4.8500480 + 13.3736450 24.6279150 4.8566180 9.7427980 20.8294160 6.2705220 + 9.3299160 21.6547870 6.5245210 9.0103930 20.2439200 6.0781580 + 2.3442470 27.3021620 3.2963100 2.0470760 26.6967090 2.6170880 + 3.2942290 27.3398930 3.1852460 10.4328080 30.8753490 6.9586200 + 9.9558640 31.6825680 6.7658810 9.7489870 30.2231820 7.1112410 + 2.0612470 29.8538330 10.7313420 2.0327900 30.2581280 9.8641850 + 1.8977440 28.9248690 10.5685020 14.0127290 30.6365430 12.0277590 + 14.4887010 31.1148320 12.7066670 14.6334450 30.5682920 11.3023090 + 13.4160540 27.8278280 9.1877600 13.5423600 27.5890160 8.2694780 + 13.4581920 26.9962820 9.6599680 7.2777280 31.5306280 7.7572410 + 7.7921950 31.4414290 8.5594840 6.4346360 31.8765980 8.0500320 + 13.2684550 19.8810740 10.1527340 12.6528820 20.3890410 9.6242800 + 12.9480970 18.9809070 10.0953280 5.3298870 18.7202630 7.6189530 + 4.8678240 18.9285650 8.4309470 4.9276980 17.9061980 7.3160200 + 10.3303380 19.9411580 8.7486190 9.4796970 19.6417330 9.0695260 + 10.1705170 20.1853590 7.8370010 7.4253090 21.4413330 10.8484980 + 7.7506500 20.6077080 10.5087210 8.2133420 21.9641850 10.9963310 + 3.0804960 16.3981440 3.8743810 3.3777290 17.3044270 3.7935830 + 3.6290520 15.9100220 3.2603380 3.2742490 21.8753260 10.4095730 + 3.1786090 20.9347990 10.2596130 4.1174470 22.0968330 10.0143800 + 4.9798080 18.3701900 11.6326250 4.2896400 18.1774100 12.2672340 + 5.7230380 18.6536540 12.1650550 7.2561050 22.2100340 4.4680170 + 6.5242170 22.7187150 4.8170270 6.8585390 21.3930320 4.1668950 + 3.6938440 18.8854540 2.8732660 3.6974500 18.4444490 2.0237200 + 4.5889560 19.2071870 2.9804480 7.7186960 17.6634020 3.8803110 + 7.7359700 18.1142670 4.7244960 7.4702540 16.7639660 4.0936550 + 11.1457710 15.0766200 9.7189490 11.4703480 14.3455860 10.2447470 + 11.1814220 14.7579840 8.8170480 3.9946410 22.9456320 4.6198070 + 4.3616540 22.4714890 5.3659410 3.8051470 23.8197890 4.9606410 + 1.7845780 21.9864960 6.9382280 1.4802850 22.8656940 7.1632640 + 2.7392240 22.0464750 6.9739720 11.0715550 25.1891310 3.3275520 + 11.7914670 25.6846600 2.9371630 10.8697370 24.5109200 2.6829390 + 6.4534350 25.2600370 9.2144520 6.3871660 24.3396040 8.9602110 + 5.8239490 25.3575810 9.9289160 6.3851080 28.0820940 8.9648320 + 6.3995620 27.1501900 8.7467230 5.6776180 28.1680700 9.6038090 + 12.5962290 24.7228280 8.3116900 11.8710480 25.3157060 8.1146290 + 13.1237750 24.7151820 7.5130270 5.8184980 29.7238510 6.0588820 + 6.4627200 29.9297890 6.7362240 6.1814420 28.9626910 5.6059670 + 7.0917060 27.7270860 4.7766270 7.7339290 27.0264020 4.8898440 + 7.6166410 28.5069300 4.5963160 8.8654680 28.5265760 7.9802330 + 9.2010920 29.1132450 8.6580250 7.9455020 28.3958470 8.2100120 + 4.6943260 28.5757090 11.1490390 4.3740130 27.8566330 11.6936080 + 4.0201620 29.2512160 11.2226450 7.9096860 18.8083250 6.5127190 + 8.2777680 17.9878460 6.8406760 7.0495060 18.8685140 6.9282840 + 4.8698850 21.4622840 6.7365160 5.3684100 21.9368660 7.4017010 + 5.0121800 20.5386360 6.9435190 12.0765710 17.6790800 7.5793550 + 11.5739310 18.4196200 7.9187360 12.8922370 18.0674800 7.2630340 + 12.3713300 30.0932830 2.7009170 12.4960720 30.9164000 3.1732980 + 13.2378860 29.8823560 2.3533320 7.6853740 27.4789980 11.5087290 + 7.0791900 27.5021580 10.7683040 7.3807850 26.7473020 12.0454540 + 9.1154110 31.2070270 10.1196700 10.0675860 31.1228290 10.0696940 + 8.9682330 31.8711980 10.7930490 3.6224860 25.2654560 10.0383450 + 2.8570530 25.8339560 9.9538120 3.8040820 24.9730770 9.1451680 + 10.7648210 26.9959890 10.5958470 11.5057680 27.3335650 10.0925930 + 10.0020890 27.1651950 10.0428240 9.4393870 25.0474720 9.1313680 + 9.8534890 25.2019800 9.9804100 8.5044870 25.1729940 9.2939460 + 9.9116040 22.3870880 11.1352830 10.4936810 21.6323200 11.0473310 + 10.0877810 22.9178320 10.3584310 3.7949550 16.1040870 6.4797170 + 3.3466850 16.1265130 5.6342720 3.1614750 15.7059890 7.0767470 + 4.2009100 24.9995200 7.1009610 4.6197210 25.8427930 6.9285850 + 3.2817730 25.1367240 6.8716390 6.5373000 22.7311380 8.4847450 + 6.6569210 22.1352520 9.2242290 7.3967000 22.7681070 8.0648750 + 8.8760900 23.2848570 7.0609960 8.3496120 23.8091190 6.4575100 + 9.2192240 23.9175960 7.6919690 2.0516520 31.3048210 8.2167340 + 1.5137610 32.0294270 7.8976040 2.3050480 30.8278550 7.4264680 + 3.3041770 19.2732730 9.7423270 3.8941460 18.9648580 10.4301090 + 2.4862010 18.8012480 9.8983170 8.1235200 18.8898540 9.9756290 + 7.4350720 18.2280080 9.9106280 8.8441220 18.4436810 10.4204750 + 4.9078730 32.5399420 8.4753990 4.8337430 33.4434560 8.7826360 + 4.0057570 32.2211320 8.4476060 12.4358410 30.2361600 8.8046550 + 11.8360400 30.2954160 8.0610470 12.5652310 29.2966580 8.9343400 + 11.1210050 26.9613580 6.9022710 10.3069890 27.3910740 7.1648500 + 11.5284250 27.5731990 6.2891760 12.4700450 22.1001780 8.4291930 + 12.2386540 21.8714530 7.5289880 12.7305000 23.0201330 8.3836820 + 10.9088520 17.3258210 11.2071630 11.7858700 17.3341610 11.5905630 + 10.9209360 16.5889050 10.5963980 12.3551790 21.1787750 2.0959650 + 12.8789270 20.6850400 1.4649820 12.9411210 21.3138110 2.8407220 + 12.5341510 21.2627620 5.6179200 11.5844220 21.2291160 5.7324190 + 12.7154520 22.1727730 5.3828970 11.6204640 15.0116180 7.0272740 + 12.2576860 15.6250320 7.3931930 11.7679530 15.0476840 6.0821970 + 2.7854700 29.7009680 6.1791330 2.5446060 29.9684240 5.2921850 + 3.7257340 29.8715410 6.2342190 4.9909120 16.1642370 9.9347840 + 4.9298010 16.7564200 10.6843250 5.9309500 16.0568330 9.7898100 + 7.6283680 15.8212430 9.5740130 8.2424090 16.1391720 8.9121210 + 8.1733240 15.3361020 10.1935990 14.0458860 31.7204060 6.9801970 + 13.5517140 32.1172930 6.2629100 13.4372150 31.0953270 7.3739250 + 8.3691720 14.3844570 5.9009420 7.4951560 14.7179680 5.6982350 + 8.2602470 13.9117750 6.7261290 9.2763700 16.5915440 7.2851140 + 8.9477060 15.7767200 6.9052870 10.2246000 16.5485250 7.1616830 + 11.7298310 32.3627480 4.2588710 11.2701280 33.1143290 3.8846730 + 11.1010770 31.6433950 4.2003510 2.1594030 30.6715720 3.4336840 + 2.6759050 30.0603080 2.9085100 2.8091410 31.1744500 3.9247850 + 4.8989530 31.5624210 4.2605820 5.1867340 31.3078510 3.3838830 + 5.4112750 31.0101570 4.8511390 6.1166540 15.3014410 4.8402330 + 5.3338330 15.7759910 5.1199090 5.8229470 14.3969240 4.7315510 + 10.6687610 16.0037510 2.8851420 11.1095700 15.9482610 2.0373020 + 10.3995200 16.9195520 2.9561600 4.9661890 32.4840310 11.6274020 + 5.8929200 32.2484580 11.6709980 4.9512320 33.3112310 11.1460050 + 2.1525500 15.1485060 11.3915900 1.8709770 15.6518660 10.6276720 + 2.5345200 14.3506810 11.0258030 8.7540960 14.5638640 11.9696370 + 8.6406410 14.8833250 12.8647890 9.5710700 14.9651150 11.6733650 + 11.5339450 31.7110170 11.4515060 12.3264770 31.2159400 11.2441020 + 11.8272600 32.3900310 12.0590670 7.6599110 3.8087620 57.4305070 + 7.5793160 2.8942230 57.1596780 7.2463530 4.3054690 56.7244780 + 5.7917150 5.5866640 59.3114340 5.0159250 5.1067080 59.6012910 + 6.4430080 4.9072290 59.1370500 9.8124580 9.9926830 58.0913470 + 9.3506110 9.2214070 58.4200640 10.6250130 10.0192900 58.5965920 + 6.0387890 12.2784840 57.7117460 5.4199330 12.7342340 57.1411900 + 6.8939670 12.4336300 57.3107160 5.2326140 8.2623830 59.3184500 + 5.1634420 7.3213770 59.1573630 5.9946000 8.3525240 59.8907070 + 6.9051240 7.1624080 55.1049370 6.2868510 7.6273530 54.5412090 + 7.4174490 7.8551560 55.5218880 9.4338430 11.9664290 60.2281970 + 9.4465590 11.5626580 59.3604230 8.8813650 12.7411580 60.1243400 + 10.7283850 8.6880510 55.3172140 10.6180180 7.7454840 55.4421560 + 10.7252100 9.0496150 56.2034900 6.2704130 4.3145830 54.6734630 + 5.3433410 4.2483210 54.9023100 6.4228950 5.2525960 54.5589870 + 10.3001420 5.8766130 55.1769880 9.6813840 5.5385680 54.5296180 + 10.2825870 5.2325890 55.8849070 1.8760770 4.8410570 57.4554360 + 1.4717770 4.1287820 56.9600260 1.9623890 4.4963810 58.3442400 + 2.3442470 8.5278130 59.6193570 2.0470760 7.9223600 58.9401350 + 3.2942290 8.5655440 59.5082930 8.4766120 5.1152940 52.1842630 + 8.9159400 4.2775370 52.0380450 9.1894540 5.7482340 52.2706770 + 6.5861500 10.0549010 56.1523870 7.0257410 10.7973340 55.7379260 + 6.5248390 10.2975580 57.0762830 9.2531680 13.0418130 53.5086880 + 9.0932820 12.7521070 54.4068710 9.0878390 12.2658260 52.9732110 + 8.9557810 10.5505690 52.0684880 8.2622970 10.5482980 51.4087160 + 9.6980670 10.1265010 51.6379050 8.5207740 12.1768400 56.1433370 + 8.9764690 11.3957780 56.4571990 8.8600260 12.8875220 56.6874550 + 8.0641040 2.2087560 54.6656580 7.4649930 2.9323360 54.4820200 + 8.6120650 2.1464340 53.8833030 2.7680090 3.4224270 51.5853190 + 2.1996990 2.9742520 50.9589100 3.4769090 3.7817050 51.0518340 + 11.0715550 6.4147820 59.6505990 11.7914670 6.9103110 59.2602100 + 10.8697370 5.7365710 59.0059860 5.2434470 8.3529120 52.7685710 + 5.5850170 9.0971350 52.2729030 4.4147180 8.6660240 53.1310540 + 11.5188150 3.4917270 51.5577400 11.4351870 3.9231490 50.7073840 + 12.2382340 3.9515620 51.9904220 12.5475400 10.3459530 54.2859530 + 11.9051560 9.6915150 54.5603250 12.1606060 10.7514620 53.5100200 + 8.1261880 7.6744960 58.1331220 8.4785700 7.0773090 57.4732590 + 7.2424210 7.3489190 58.3039470 4.2125160 8.4342650 55.5401630 + 4.8996290 8.9811860 55.9209220 3.4257580 8.9783380 55.5751240 + 3.5152370 5.4388680 55.1526990 3.9715150 6.2493930 55.3787180 + 3.1640580 5.1211820 55.9845480 10.9372780 9.2375990 50.8235880 + 10.7110360 8.5206430 51.4160520 10.5468980 8.9888430 49.9857630 + 10.5189030 7.1547930 52.4850040 10.2310730 7.6160620 53.2727920 + 11.3141200 6.6945700 52.7534260 2.7357430 10.6474050 52.4154010 + 2.7267530 11.3803740 51.7998520 1.8155790 10.4005630 52.5080970 + 5.7217030 10.7102290 51.0779200 5.8229010 10.5066280 50.1481180 + 4.8218770 10.4560570 51.2826980 4.3635140 13.2288610 55.7726870 + 4.6176640 13.1910000 54.8506240 3.4147620 13.1021940 55.7655120 + 10.3687720 4.1480490 57.3485380 9.4277860 4.1630720 57.5233070 + 10.6831790 3.3616450 57.7945680 12.3713300 11.3189340 59.0239640 + 12.4960720 12.1420510 59.4963450 13.2378860 11.1080070 58.6763790 + 2.9533140 12.5850860 50.5182340 3.7461750 12.8739690 50.0664130 + 2.4337490 12.1543030 49.8394820 12.0063310 11.8120990 51.9419080 + 11.7204820 11.3986130 51.1273260 11.8082860 12.7408700 51.8219600 + 3.4710540 7.8054270 50.3824690 3.3661180 7.1906620 51.1086070 + 3.3034760 7.2820160 49.5987700 6.7113270 6.8674300 50.9866680 + 6.1623370 7.3143600 51.6309420 7.3332530 6.3623550 51.5104350 + 2.3788390 5.8265220 52.8831980 2.8004810 5.6605090 53.7263370 + 2.5039230 5.0165450 52.3887120 4.8916030 4.8502830 50.1309080 + 5.4121690 4.1351850 49.7650230 5.5384430 5.4888700 50.4309590 + 5.4564060 12.9314440 52.4210820 6.3514850 13.2699410 52.4429580 + 5.4881690 12.2093850 51.7935100 13.6759860 9.2035930 50.4646730 + 12.8452820 9.2712580 50.9353960 13.8531690 10.0940050 50.1613590 + 13.1316320 5.9483410 52.9680930 13.8935230 6.5180060 53.0740620 + 13.1470690 5.3810610 53.7389240 14.1376290 6.8033510 57.8122860 + 14.5085120 6.0200830 57.4058830 14.7778220 7.4922610 57.6340160 + 13.1835490 6.2417780 50.1253450 13.4584330 7.1496660 49.9972670 + 12.9946230 6.1780310 51.0615440 13.0800830 4.1786770 55.1182880 + 12.7044430 3.4114700 54.6864170 12.3503950 4.5609470 55.6057810 + 12.3551790 2.4044260 58.4190120 12.8789270 1.9106910 57.7880290 + 12.9411210 2.5394620 59.1637690 11.1786100 12.9388690 56.7521450 + 11.7745170 12.6173260 56.0755870 11.4364250 12.4660510 57.5434720 + 2.1594030 11.8972230 59.7567310 2.6759050 11.2859590 59.2315570 + 2.8091410 12.4001010 60.2478320 13.2006950 13.2522390 54.9478740 + 13.3759140 12.5660130 54.3039660 12.5028520 13.7769440 54.5555410 + 7.6599110 3.8087620 38.6561580 7.5793160 2.8942230 38.3853290 + 7.2463530 4.3054690 37.9501290 5.7917150 5.5866640 40.5370850 + 5.0159250 5.1067080 40.8269420 6.4430080 4.9072290 40.3627010 + 9.8124580 9.9926830 39.3169980 9.3506110 9.2214070 39.6457150 + 10.6250130 10.0192900 39.8222430 6.0387890 12.2784840 38.9373970 + 5.4199330 12.7342340 38.3668410 6.8939670 12.4336300 38.5363670 + 5.2326140 8.2623830 40.5441010 5.1634420 7.3213770 40.3830140 + 5.9946000 8.3525240 41.1163580 6.9051240 7.1624080 36.3305880 + 6.2868510 7.6273530 35.7668600 7.4174490 7.8551560 36.7475390 + 1.7683000 6.6899950 43.0089480 1.4352380 7.3168870 43.6510550 + 1.9449680 7.2161830 42.2291150 11.8979690 10.1220160 42.7393300 + 11.2143210 10.7919270 42.7309970 12.4373980 10.3200810 41.9738160 + 9.4338430 11.9664290 41.4538480 9.4465590 11.5626580 40.5860740 + 8.8813650 12.7411580 41.3499910 10.7283850 8.6880510 36.5428650 + 10.6180180 7.7454840 36.6678070 10.7252100 9.0496150 37.4291410 + 8.8323870 6.8694130 42.7821090 9.2492660 6.6554240 41.9474550 + 9.5563690 7.1266920 43.3529710 6.2704130 4.3145830 35.8991140 + 5.3433410 4.2483210 36.1279610 6.4228950 5.2525960 35.7846380 + 12.7785970 5.2681350 42.8737330 11.9504600 5.3374440 42.3987460 + 13.3736450 5.8535660 42.4053160 10.3001420 5.8766130 36.4026390 + 9.6813840 5.5385680 35.7552690 10.2825870 5.2325890 37.1105580 + 1.8760770 4.8410570 38.6810870 1.4717770 4.1287820 38.1856770 + 1.9623890 4.4963810 39.5698910 2.3442470 8.5278130 40.8450080 + 2.0470760 7.9223600 40.1657860 3.2942290 8.5655440 40.7339440 + 10.4328080 12.1010000 44.5073180 9.9558640 12.9082190 44.3145790 + 9.7489870 11.4488330 44.6599390 8.4766120 5.1152940 33.4099140 + 8.9159400 4.2775370 33.2636960 9.1894540 5.7482340 33.4963280 + 6.5861500 10.0549010 37.3780380 7.0257410 10.7973340 36.9635770 + 6.5248390 10.2975580 38.3019340 2.0612470 11.0794840 48.2800400 + 2.0327900 11.4837790 47.4128830 1.8977440 10.1505200 48.1172000 + 14.0127290 11.8621940 49.5764570 14.4887010 12.3404830 50.2553650 + 14.6334450 11.7939430 48.8510070 13.4160540 9.0534790 46.7364580 + 13.5423600 8.8146670 45.8181760 13.4581920 8.2219330 47.2086660 + 7.2777280 12.7562790 45.3059390 7.7921950 12.6670800 46.1081820 + 6.4346360 13.1022490 45.5987300 9.2531680 13.0418130 34.7343390 + 9.0932820 12.7521070 35.6325220 9.0878390 12.2658260 34.1988620 + 8.9557810 10.5505690 33.2941390 8.2622970 10.5482980 32.6343670 + 9.6980670 10.1265010 32.8635560 8.5207740 12.1768400 37.3689880 + 8.9764690 11.3957780 37.6828500 8.8600260 12.8875220 37.9131060 + 7.4253090 2.6669840 48.3971960 7.7506500 1.8333590 48.0574190 + 8.2133420 3.1898360 48.5450290 8.0641040 2.2087560 35.8913090 + 7.4649930 2.9323360 35.7076710 8.6120650 2.1464340 35.1089540 + 3.2742490 3.1009770 47.9582710 3.1786090 2.1604500 47.8083110 + 4.1174470 3.3224840 47.5630780 7.2561050 3.4356850 42.0167150 + 6.5242170 3.9443660 42.3657250 6.8585390 2.6186830 41.7155930 + 2.7680090 3.4224270 32.8109700 2.1996990 2.9742520 32.1845610 + 3.4769090 3.7817050 32.2774850 3.9946410 4.1712830 42.1685050 + 4.3616540 3.6971400 42.9146390 3.8051470 5.0454400 42.5093390 + 1.7845780 3.2121470 44.4869260 1.4802850 4.0913450 44.7119620 + 2.7392240 3.2721260 44.5226700 11.0715550 6.4147820 40.8762500 + 11.7914670 6.9103110 40.4858610 10.8697370 5.7365710 40.2316370 + 6.4534350 6.4856880 46.7631500 6.3871660 5.5652550 46.5089090 + 5.8239490 6.5832320 47.4776140 5.2434470 8.3529120 33.9942220 + 5.5850170 9.0971350 33.4985540 4.4147180 8.6660240 34.3567050 + 6.3851080 9.3077450 46.5135300 6.3995620 8.3758410 46.2954210 + 5.6776180 9.3937210 47.1525070 11.5188150 3.4917270 32.7833910 + 11.4351870 3.9231490 31.9330350 12.2382340 3.9515620 33.2160730 + 12.5962290 5.9484790 45.8603880 11.8710480 6.5413570 45.6633270 + 13.1237750 5.9408330 45.0617250 12.5475400 10.3459530 35.5116040 + 11.9051560 9.6915150 35.7859760 12.1606060 10.7514620 34.7356710 + 8.1261880 7.6744960 39.3587730 8.4785700 7.0773090 38.6989100 + 7.2424210 7.3489190 39.5295980 4.2125160 8.4342650 36.7658140 + 4.8996290 8.9811860 37.1465730 3.4257580 8.9783380 36.8007750 + 3.5152370 5.4388680 36.3783500 3.9715150 6.2493930 36.6043690 + 3.1640580 5.1211820 37.2101990 5.8184980 10.9495020 43.6075800 + 6.4627200 11.1554400 44.2849220 6.1814420 10.1883420 43.1546650 + 7.0917060 8.9527370 42.3253250 7.7339290 8.2520530 42.4385420 + 7.6166410 9.7325810 42.1450140 10.9372780 9.2375990 32.0492390 + 10.7110360 8.5206430 32.6417030 10.5468980 8.9888430 31.2114140 + 8.8654680 9.7522270 45.5289310 9.2010920 10.3388960 46.2067230 + 7.9455020 9.6214980 45.7587100 10.5189030 7.1547930 33.7106550 + 10.2310730 7.6160620 34.4984430 11.3141200 6.6945700 33.9790770 + 4.6943260 9.8013600 48.6977370 4.3740130 9.0822840 49.2423060 + 4.0201620 10.4768670 48.7713430 2.7357430 10.6474050 33.6410520 + 2.7267530 11.3803740 33.0255030 1.8155790 10.4005630 33.7337480 + 5.7217030 10.7102290 32.3035710 5.8229010 10.5066280 31.3737690 + 4.8218770 10.4560570 32.5083490 4.8698850 2.6879350 44.2852140 + 5.3684100 3.1625170 44.9503990 5.0121800 1.7642870 44.4922170 + 4.3635140 13.2288610 36.9983380 4.6176640 13.1910000 36.0762750 + 3.4147620 13.1021940 36.9911630 10.3687720 4.1480490 38.5741890 + 9.4277860 4.1630720 38.7489580 10.6831790 3.3616450 39.0202190 + 12.3713300 11.3189340 40.2496150 12.4960720 12.1420510 40.7219960 + 13.2378860 11.1080070 39.9020300 2.9533140 12.5850860 31.7438850 + 3.7461750 12.8739690 31.2920640 2.4337490 12.1543030 31.0651330 + 7.6853740 8.7046490 49.0574270 7.0791900 8.7278090 48.3170020 + 7.3807850 7.9729530 49.5941520 9.1154110 12.4326780 47.6683680 + 10.0675860 12.3484800 47.6183920 8.9682330 13.0968490 48.3417470 + 12.0063310 11.8120990 33.1675590 11.7204820 11.3986130 32.3529770 + 11.8082860 12.7408700 33.0476110 3.4710540 7.8054270 31.6081200 + 3.3661180 7.1906620 32.3342580 3.3034760 7.2820160 30.8244210 + 3.6224860 6.4911070 47.5870430 2.8570530 7.0596070 47.5025100 + 3.8040820 6.1987280 46.6938660 6.7113270 6.8674300 32.2123190 + 6.1623370 7.3143600 32.8565930 7.3332530 6.3623550 32.7360860 + 10.7648210 8.2216400 48.1445450 11.5057680 8.5592160 47.6412910 + 10.0020890 8.3908460 47.5915220 2.3788390 5.8265220 34.1088490 + 2.8004810 5.6605090 34.9519880 2.5039230 5.0165450 33.6143630 + 4.8916030 4.8502830 31.3565590 5.4121690 4.1351850 30.9906740 + 5.5384430 5.4888700 31.6566100 9.4393870 6.2731230 46.6800660 + 9.8534890 6.4276310 47.5291080 8.5044870 6.3986450 46.8426440 + 9.9116040 3.6127390 48.6839810 10.4936810 2.8579710 48.5960290 + 10.0877810 4.1434830 47.9071290 4.2009100 6.2251710 44.6496590 + 4.6197210 7.0684440 44.4772830 3.2817730 6.3623750 44.4203370 + 6.5373000 3.9567890 46.0334430 6.6569210 3.3609030 46.7729270 + 7.3967000 3.9937580 45.6135730 8.8760900 4.5105080 44.6096940 + 8.3496120 5.0347700 44.0062080 9.2192240 5.1432470 45.2406670 + 2.0516520 12.5304720 45.7654320 1.5137610 13.2550780 45.4463020 + 2.3050480 12.0535060 44.9751660 4.9078730 13.7655930 46.0240970 + 4.8337430 14.6691070 46.3313340 4.0057570 13.4467830 45.9963040 + 5.4564060 12.9314440 33.6467330 6.3514850 13.2699410 33.6686090 + 5.4881690 12.2093850 33.0191610 12.4358410 11.4618110 46.3533530 + 11.8360400 11.5210670 45.6097450 12.5652310 10.5223090 46.4830380 + 13.6759860 9.2035930 31.6903240 12.8452820 9.2712580 32.1610470 + 13.8531690 10.0940050 31.3870100 13.1316320 5.9483410 34.1937440 + 13.8935230 6.5180060 34.2997130 13.1470690 5.3810610 34.9645750 + 14.1376290 6.8033510 39.0379370 14.5085120 6.0200830 38.6315340 + 14.7778220 7.4922610 38.8596670 11.1210050 8.1870090 44.4509690 + 10.3069890 8.6167250 44.7135480 11.5284250 8.7988500 43.8378740 + 13.1835490 6.2417780 31.3509960 13.4584330 7.1496660 31.2229180 + 12.9946230 6.1780310 32.2871950 13.0800830 4.1786770 36.3439390 + 12.7044430 3.4114700 35.9120680 12.3503950 4.5609470 36.8314320 + 12.4700450 3.3258290 45.9778910 12.2386540 3.0971040 45.0776860 + 12.7305000 4.2457840 45.9323800 12.3551790 2.4044260 39.6446630 + 12.8789270 1.9106910 39.0136800 12.9411210 2.5394620 40.3894200 + 12.5341510 2.4884130 43.1666180 11.5844220 2.4547670 43.2811170 + 12.7154520 3.3984240 42.9315950 11.1786100 12.9388690 37.9777960 + 11.7745170 12.6173260 37.3012380 11.4364250 12.4660510 38.7691230 + 2.7854700 10.9266190 43.7278310 2.5446060 11.1940750 42.8408830 + 3.7257340 11.0971920 43.7829170 14.0458860 12.9460570 44.5288950 + 13.5517140 13.3429440 43.8116080 13.4372150 12.3209780 44.9226230 + 11.7298310 13.5883990 41.8075690 11.2701280 14.3399800 41.4333710 + 11.1010770 12.8690460 41.7490490 2.1594030 11.8972230 40.9823820 + 2.6759050 11.2859590 40.4572080 2.8091410 12.4001010 41.4734830 + 4.8989530 12.7880720 41.8092800 5.1867340 12.5335020 40.9325810 + 5.4112750 12.2358080 42.3998370 4.9661890 13.7096820 49.1761000 + 5.8929200 13.4741090 49.2196960 4.9512320 14.5368820 48.6947030 + 13.2006950 13.2522390 36.1735250 13.3759140 12.5660130 35.5296170 + 12.5028520 13.7769440 35.7811920 11.5339450 12.9366680 49.0002040 + 12.3264770 12.4415910 48.7928000 11.8272600 13.6156820 49.6077650 + 7.6599110 3.8087620 19.8818090 7.5793160 2.8942230 19.6109800 + 7.2463530 4.3054690 19.1757800 5.7917150 5.5866640 21.7627360 + 5.0159250 5.1067080 22.0525930 6.4430080 4.9072290 21.5883520 + 9.8124580 9.9926830 20.5426490 9.3506110 9.2214070 20.8713660 + 10.6250130 10.0192900 21.0478940 6.0387890 12.2784840 20.1630480 + 5.4199330 12.7342340 19.5924920 6.8939670 12.4336300 19.7620180 + 5.2326140 8.2623830 21.7697520 5.1634420 7.3213770 21.6086650 + 5.9946000 8.3525240 22.3420090 6.9051240 7.1624080 17.5562390 + 6.2868510 7.6273530 16.9925110 7.4174490 7.8551560 17.9731900 + 1.7683000 6.6899950 24.2345990 1.4352380 7.3168870 24.8767060 + 1.9449680 7.2161830 23.4547660 11.8979690 10.1220160 23.9649810 + 11.2143210 10.7919270 23.9566480 12.4373980 10.3200810 23.1994670 + 9.4338430 11.9664290 22.6794990 9.4465590 11.5626580 21.8117250 + 8.8813650 12.7411580 22.5756420 10.7283850 8.6880510 17.7685160 + 10.6180180 7.7454840 17.8934580 10.7252100 9.0496150 18.6547920 + 8.8323870 6.8694130 24.0077600 9.2492660 6.6554240 23.1731060 + 9.5563690 7.1266920 24.5786220 6.2704130 4.3145830 17.1247650 + 5.3433410 4.2483210 17.3536120 6.4228950 5.2525960 17.0102890 + 12.7785970 5.2681350 24.0993840 11.9504600 5.3374440 23.6243970 + 13.3736450 5.8535660 23.6309670 10.3001420 5.8766130 17.6282900 + 9.6813840 5.5385680 16.9809200 10.2825870 5.2325890 18.3362090 + 1.8760770 4.8410570 19.9067380 1.4717770 4.1287820 19.4113280 + 1.9623890 4.4963810 20.7955420 2.3442470 8.5278130 22.0706590 + 2.0470760 7.9223600 21.3914370 3.2942290 8.5655440 21.9595950 + 10.4328080 12.1010000 25.7329690 9.9558640 12.9082190 25.5402300 + 9.7489870 11.4488330 25.8855900 8.4766120 5.1152940 14.6355650 + 8.9159400 4.2775370 14.4893470 9.1894540 5.7482340 14.7219790 + 6.5861500 10.0549010 18.6036890 7.0257410 10.7973340 18.1892280 + 6.5248390 10.2975580 19.5275850 2.0612470 11.0794840 29.5056910 + 2.0327900 11.4837790 28.6385340 1.8977440 10.1505200 29.3428510 + 14.0127290 11.8621940 30.8021080 14.4887010 12.3404830 31.4810160 + 14.6334450 11.7939430 30.0766580 13.4160540 9.0534790 27.9621090 + 13.5423600 8.8146670 27.0438270 13.4581920 8.2219330 28.4343170 + 7.2777280 12.7562790 26.5315900 7.7921950 12.6670800 27.3338330 + 6.4346360 13.1022490 26.8243810 9.2531680 13.0418130 15.9599900 + 9.0932820 12.7521070 16.8581730 9.0878390 12.2658260 15.4245130 + 8.9557810 10.5505690 14.5197900 8.2622970 10.5482980 13.8600180 + 9.6980670 10.1265010 14.0892070 8.5207740 12.1768400 18.5946390 + 8.9764690 11.3957780 18.9085010 8.8600260 12.8875220 19.1387570 + 7.4253090 2.6669840 29.6228470 7.7506500 1.8333590 29.2830700 + 8.2133420 3.1898360 29.7706800 8.0641040 2.2087560 17.1169600 + 7.4649930 2.9323360 16.9333220 8.6120650 2.1464340 16.3346050 + 3.2742490 3.1009770 29.1839220 3.1786090 2.1604500 29.0339620 + 4.1174470 3.3224840 28.7887290 7.2561050 3.4356850 23.2423660 + 6.5242170 3.9443660 23.5913760 6.8585390 2.6186830 22.9412440 + 2.7680090 3.4224270 14.0366210 2.1996990 2.9742520 13.4102120 + 3.4769090 3.7817050 13.5031360 3.9946410 4.1712830 23.3941560 + 4.3616540 3.6971400 24.1402900 3.8051470 5.0454400 23.7349900 + 1.7845780 3.2121470 25.7125770 1.4802850 4.0913450 25.9376130 + 2.7392240 3.2721260 25.7483210 11.0715550 6.4147820 22.1019010 + 11.7914670 6.9103110 21.7115120 10.8697370 5.7365710 21.4572880 + 6.4534350 6.4856880 27.9888010 6.3871660 5.5652550 27.7345600 + 5.8239490 6.5832320 28.7032650 5.2434470 8.3529120 15.2198730 + 5.5850170 9.0971350 14.7242050 4.4147180 8.6660240 15.5823560 + 6.3851080 9.3077450 27.7391810 6.3995620 8.3758410 27.5210720 + 5.6776180 9.3937210 28.3781580 11.5188150 3.4917270 14.0090420 + 11.4351870 3.9231490 13.1586860 12.2382340 3.9515620 14.4417240 + 12.5962290 5.9484790 27.0860390 11.8710480 6.5413570 26.8889780 + 13.1237750 5.9408330 26.2873760 12.5475400 10.3459530 16.7372550 + 11.9051560 9.6915150 17.0116270 12.1606060 10.7514620 15.9613220 + 8.1261880 7.6744960 20.5844240 8.4785700 7.0773090 19.9245610 + 7.2424210 7.3489190 20.7552490 4.2125160 8.4342650 17.9914650 + 4.8996290 8.9811860 18.3722240 3.4257580 8.9783380 18.0264260 + 3.5152370 5.4388680 17.6040010 3.9715150 6.2493930 17.8300200 + 3.1640580 5.1211820 18.4358500 5.8184980 10.9495020 24.8332310 + 6.4627200 11.1554400 25.5105730 6.1814420 10.1883420 24.3803160 + 7.0917060 8.9527370 23.5509760 7.7339290 8.2520530 23.6641930 + 7.6166410 9.7325810 23.3706650 10.9372780 9.2375990 13.2748900 + 10.7110360 8.5206430 13.8673540 10.5468980 8.9888430 12.4370650 + 8.8654680 9.7522270 26.7545820 9.2010920 10.3388960 27.4323740 + 7.9455020 9.6214980 26.9843610 10.5189030 7.1547930 14.9363060 + 10.2310730 7.6160620 15.7240940 11.3141200 6.6945700 15.2047280 + 4.6943260 9.8013600 29.9233880 4.3740130 9.0822840 30.4679570 + 4.0201620 10.4768670 29.9969940 2.7357430 10.6474050 14.8667030 + 2.7267530 11.3803740 14.2511540 1.8155790 10.4005630 14.9593990 + 5.7217030 10.7102290 13.5292220 5.8229010 10.5066280 12.5994200 + 4.8218770 10.4560570 13.7340000 4.8698850 2.6879350 25.5108650 + 5.3684100 3.1625170 26.1760500 5.0121800 1.7642870 25.7178680 + 4.3635140 13.2288610 18.2239890 4.6176640 13.1910000 17.3019260 + 3.4147620 13.1021940 18.2168140 10.3687720 4.1480490 19.7998400 + 9.4277860 4.1630720 19.9746090 10.6831790 3.3616450 20.2458700 + 12.3713300 11.3189340 21.4752660 12.4960720 12.1420510 21.9476470 + 13.2378860 11.1080070 21.1276810 2.9533140 12.5850860 12.9695360 + 3.7461750 12.8739690 12.5177150 2.4337490 12.1543030 12.2907840 + 7.6853740 8.7046490 30.2830780 7.0791900 8.7278090 29.5426530 + 7.3807850 7.9729530 30.8198030 9.1154110 12.4326780 28.8940190 + 10.0675860 12.3484800 28.8440430 8.9682330 13.0968490 29.5673980 + 12.0063310 11.8120990 14.3932100 11.7204820 11.3986130 13.5786280 + 11.8082860 12.7408700 14.2732620 3.4710540 7.8054270 12.8337710 + 3.3661180 7.1906620 13.5599090 3.3034760 7.2820160 12.0500720 + 3.6224860 6.4911070 28.8126940 2.8570530 7.0596070 28.7281610 + 3.8040820 6.1987280 27.9195170 6.7113270 6.8674300 13.4379700 + 6.1623370 7.3143600 14.0822440 7.3332530 6.3623550 13.9617370 + 10.7648210 8.2216400 29.3701960 11.5057680 8.5592160 28.8669420 + 10.0020890 8.3908460 28.8171730 2.3788390 5.8265220 15.3345000 + 2.8004810 5.6605090 16.1776390 2.5039230 5.0165450 14.8400140 + 4.8916030 4.8502830 12.5822100 5.4121690 4.1351850 12.2163250 + 5.5384430 5.4888700 12.8822610 9.4393870 6.2731230 27.9057170 + 9.8534890 6.4276310 28.7547590 8.5044870 6.3986450 28.0682950 + 9.9116040 3.6127390 29.9096320 10.4936810 2.8579710 29.8216800 + 10.0877810 4.1434830 29.1327800 4.2009100 6.2251710 25.8753100 + 4.6197210 7.0684440 25.7029340 3.2817730 6.3623750 25.6459880 + 6.5373000 3.9567890 27.2590940 6.6569210 3.3609030 27.9985780 + 7.3967000 3.9937580 26.8392240 8.8760900 4.5105080 25.8353450 + 8.3496120 5.0347700 25.2318590 9.2192240 5.1432470 26.4663180 + 2.0516520 12.5304720 26.9910830 1.5137610 13.2550780 26.6719530 + 2.3050480 12.0535060 26.2008170 4.9078730 13.7655930 27.2497480 + 4.8337430 14.6691070 27.5569850 4.0057570 13.4467830 27.2219550 + 5.4564060 12.9314440 14.8723840 6.3514850 13.2699410 14.8942600 + 5.4881690 12.2093850 14.2448120 12.4358410 11.4618110 27.5790040 + 11.8360400 11.5210670 26.8353960 12.5652310 10.5223090 27.7086890 + 13.6759860 9.2035930 12.9159750 12.8452820 9.2712580 13.3866980 + 13.8531690 10.0940050 12.6126610 13.1316320 5.9483410 15.4193950 + 13.8935230 6.5180060 15.5253640 13.1470690 5.3810610 16.1902260 + 14.1376290 6.8033510 20.2635880 14.5085120 6.0200830 19.8571850 + 14.7778220 7.4922610 20.0853180 11.1210050 8.1870090 25.6766200 + 10.3069890 8.6167250 25.9391990 11.5284250 8.7988500 25.0635250 + 13.1835490 6.2417780 12.5766470 13.4584330 7.1496660 12.4485690 + 12.9946230 6.1780310 13.5128460 13.0800830 4.1786770 17.5695900 + 12.7044430 3.4114700 17.1377190 12.3503950 4.5609470 18.0570830 + 12.4700450 3.3258290 27.2035420 12.2386540 3.0971040 26.3033370 + 12.7305000 4.2457840 27.1580310 12.3551790 2.4044260 20.8703140 + 12.8789270 1.9106910 20.2393310 12.9411210 2.5394620 21.6150710 + 12.5341510 2.4884130 24.3922690 11.5844220 2.4547670 24.5067680 + 12.7154520 3.3984240 24.1572460 11.1786100 12.9388690 19.2034470 + 11.7745170 12.6173260 18.5268890 11.4364250 12.4660510 19.9947740 + 2.7854700 10.9266190 24.9534820 2.5446060 11.1940750 24.0665340 + 3.7257340 11.0971920 25.0085680 14.0458860 12.9460570 25.7545460 + 13.5517140 13.3429440 25.0372590 13.4372150 12.3209780 26.1482740 + 11.7298310 13.5883990 23.0332200 11.2701280 14.3399800 22.6590220 + 11.1010770 12.8690460 22.9747000 2.1594030 11.8972230 22.2080330 + 2.6759050 11.2859590 21.6828590 2.8091410 12.4001010 22.6991340 + 4.8989530 12.7880720 23.0349310 5.1867340 12.5335020 22.1582320 + 5.4112750 12.2358080 23.6254880 4.9661890 13.7096820 30.4017510 + 5.8929200 13.4741090 30.4453470 4.9512320 14.5368820 29.9203540 + 13.2006950 13.2522390 17.3991760 13.3759140 12.5660130 16.7552680 + 12.5028520 13.7769440 17.0068430 11.5339450 12.9366680 30.2258550 + 12.3264770 12.4415910 30.0184510 11.8272600 13.6156820 30.8334160 + 5.7917150 5.5866640 2.9883870 5.0159250 5.1067080 3.2782440 + 6.4430080 4.9072290 2.8140030 9.8124580 9.9926830 1.7683000 + 9.3506110 9.2214070 2.0970170 10.6250130 10.0192900 2.2735450 + 5.2326140 8.2623830 2.9954030 5.1634420 7.3213770 2.8343160 + 5.9946000 8.3525240 3.5676600 1.7683000 6.6899950 5.4602500 + 1.4352380 7.3168870 6.1023570 1.9449680 7.2161830 4.6804170 + 11.8979690 10.1220160 5.1906320 11.2143210 10.7919270 5.1822990 + 12.4373980 10.3200810 4.4251180 9.4338430 11.9664290 3.9051500 + 9.4465590 11.5626580 3.0373760 8.8813650 12.7411580 3.8012930 + 8.8323870 6.8694130 5.2334110 9.2492660 6.6554240 4.3987570 + 9.5563690 7.1266920 5.8042730 12.7785970 5.2681350 5.3250350 + 11.9504600 5.3374440 4.8500480 13.3736450 5.8535660 4.8566180 + 2.3442470 8.5278130 3.2963100 2.0470760 7.9223600 2.6170880 + 3.2942290 8.5655440 3.1852460 10.4328080 12.1010000 6.9586200 + 9.9558640 12.9082190 6.7658810 9.7489870 11.4488330 7.1112410 + 2.0612470 11.0794840 10.7313420 2.0327900 11.4837790 9.8641850 + 1.8977440 10.1505200 10.5685020 14.0127290 11.8621940 12.0277590 + 14.4887010 12.3404830 12.7066670 14.6334450 11.7939430 11.3023090 + 13.4160540 9.0534790 9.1877600 13.5423600 8.8146670 8.2694780 + 13.4581920 8.2219330 9.6599680 7.2777280 12.7562790 7.7572410 + 7.7921950 12.6670800 8.5594840 6.4346360 13.1022490 8.0500320 + 7.4253090 2.6669840 10.8484980 7.7506500 1.8333590 10.5087210 + 8.2133420 3.1898360 10.9963310 3.2742490 3.1009770 10.4095730 + 3.1786090 2.1604500 10.2596130 4.1174470 3.3224840 10.0143800 + 7.2561050 3.4356850 4.4680170 6.5242170 3.9443660 4.8170270 + 6.8585390 2.6186830 4.1668950 3.9946410 4.1712830 4.6198070 + 4.3616540 3.6971400 5.3659410 3.8051470 5.0454400 4.9606410 + 1.7845780 3.2121470 6.9382280 1.4802850 4.0913450 7.1632640 + 2.7392240 3.2721260 6.9739720 11.0715550 6.4147820 3.3275520 + 11.7914670 6.9103110 2.9371630 10.8697370 5.7365710 2.6829390 + 6.4534350 6.4856880 9.2144520 6.3871660 5.5652550 8.9602110 + 5.8239490 6.5832320 9.9289160 6.3851080 9.3077450 8.9648320 + 6.3995620 8.3758410 8.7467230 5.6776180 9.3937210 9.6038090 + 12.5962290 5.9484790 8.3116900 11.8710480 6.5413570 8.1146290 + 13.1237750 5.9408330 7.5130270 5.8184980 10.9495020 6.0588820 + 6.4627200 11.1554400 6.7362240 6.1814420 10.1883420 5.6059670 + 7.0917060 8.9527370 4.7766270 7.7339290 8.2520530 4.8898440 + 7.6166410 9.7325810 4.5963160 8.8654680 9.7522270 7.9802330 + 9.2010920 10.3388960 8.6580250 7.9455020 9.6214980 8.2100120 + 4.6943260 9.8013600 11.1490390 4.3740130 9.0822840 11.6936080 + 4.0201620 10.4768670 11.2226450 4.8698850 2.6879350 6.7365160 + 5.3684100 3.1625170 7.4017010 5.0121800 1.7642870 6.9435190 + 12.3713300 11.3189340 2.7009170 12.4960720 12.1420510 3.1732980 + 13.2378860 11.1080070 2.3533320 7.6853740 8.7046490 11.5087290 + 7.0791900 8.7278090 10.7683040 7.3807850 7.9729530 12.0454540 + 9.1154110 12.4326780 10.1196700 10.0675860 12.3484800 10.0696940 + 8.9682330 13.0968490 10.7930490 3.6224860 6.4911070 10.0383450 + 2.8570530 7.0596070 9.9538120 3.8040820 6.1987280 9.1451680 + 10.7648210 8.2216400 10.5958470 11.5057680 8.5592160 10.0925930 + 10.0020890 8.3908460 10.0428240 9.4393870 6.2731230 9.1313680 + 9.8534890 6.4276310 9.9804100 8.5044870 6.3986450 9.2939460 + 9.9116040 3.6127390 11.1352830 10.4936810 2.8579710 11.0473310 + 10.0877810 4.1434830 10.3584310 4.2009100 6.2251710 7.1009610 + 4.6197210 7.0684440 6.9285850 3.2817730 6.3623750 6.8716390 + 6.5373000 3.9567890 8.4847450 6.6569210 3.3609030 9.2242290 + 7.3967000 3.9937580 8.0648750 8.8760900 4.5105080 7.0609960 + 8.3496120 5.0347700 6.4575100 9.2192240 5.1432470 7.6919690 + 2.0516520 12.5304720 8.2167340 1.5137610 13.2550780 7.8976040 + 2.3050480 12.0535060 7.4264680 4.9078730 13.7655930 8.4753990 + 4.8337430 14.6691070 8.7826360 4.0057570 13.4467830 8.4476060 + 12.4358410 11.4618110 8.8046550 11.8360400 11.5210670 8.0610470 + 12.5652310 10.5223090 8.9343400 11.1210050 8.1870090 6.9022710 + 10.3069890 8.6167250 7.1648500 11.5284250 8.7988500 6.2891760 + 12.4700450 3.3258290 8.4291930 12.2386540 3.0971040 7.5289880 + 12.7305000 4.2457840 8.3836820 12.3551790 2.4044260 2.0959650 + 12.8789270 1.9106910 1.4649820 12.9411210 2.5394620 2.8407220 + 12.5341510 2.4884130 5.6179200 11.5844220 2.4547670 5.7324190 + 12.7154520 3.3984240 5.3828970 2.7854700 10.9266190 6.1791330 + 2.5446060 11.1940750 5.2921850 3.7257340 11.0971920 6.2342190 + 14.0458860 12.9460570 6.9801970 13.5517140 13.3429440 6.2629100 + 13.4372150 12.3209780 7.3739250 11.7298310 13.5883990 4.2588710 + 11.2701280 14.3399800 3.8846730 11.1010770 12.8690460 4.2003510 + 2.1594030 11.8972230 3.4336840 2.6759050 11.2859590 2.9085100 + 2.8091410 12.4001010 3.9247850 4.8989530 12.7880720 4.2605820 + 5.1867340 12.5335020 3.3838830 5.4112750 12.2358080 4.8511390 + 4.9661890 13.7096820 11.6274020 5.8929200 13.4741090 11.6709980 + 4.9512320 14.5368820 11.1460050 11.5339450 12.9366680 11.4515060 + 12.3264770 12.4415910 11.2441020 11.8272600 13.6156820 12.0590670 + 47.6861700 46.7352440 61.9964970 90.0000000 90.0000000 90.0000000 diff --git a/test/Makefile b/test/Makefile index 941e2870db..b781b9f8f0 100644 --- a/test/Makefile +++ b/test/Makefile @@ -540,15 +540,33 @@ test.readoff: test.sequence: @-cd Test_Sequence && ./RunTest.sh $(OPT) +test.refinetrajectory: + @-cd Test_RefineTrajectory && ./RunTest.sh $(OPT) + +test.readamberff: + @-cd Test_ReadAmberFF && ./RunTest.sh $(OPT) + test.tica: @-cd Test_TICA && ./RunTest.sh $(OPT) test.enedecomp: @-cd Test_EneDecomp && ./RunTest.sh $(OPT) +test.addatom: + @-cd Test_AddAtom && ./RunTest.sh $(OPT) + +test.minmaxdist: + @-cd Test_MinMaxDist && ./RunTest.sh $(OPT) + test.watershellclosest: @-cd Test_Watershell_Closest && ./RunTest.sh $(OPT) +test.mutate: + @-cd Test_Mutate && ./RunTest.sh $(OPT) + +test.build: + @-cd Test_Build && ./RunTest.sh $(OPT) + # Only GPU-specific tests should go here GPUTESTS=test.closest \ test.solvent \ @@ -727,9 +745,15 @@ COMPLETETESTS=test.general \ test.zmatrix \ test.readoff \ test.sequence \ + test.refinetrajectory \ + test.readamberff \ test.tica \ test.enedecomp \ - test.watershellclosest + test.addatom \ + test.minmaxdist \ + test.watershellclosest \ + test.mutate \ + test.build test.all: $(MAKE) test.complete summary diff --git a/test/Test_Build/RunTest.sh b/test/Test_Build/RunTest.sh new file mode 100755 index 0000000000..724d93de0a --- /dev/null +++ b/test/Test_Build/RunTest.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +. ../MasterTest.sh + +CleanFiles cpptraj.in tz2.parm7 tz2.rst7 tz2.coords.parm7 tz2.coords.rst7 + +TESTNAME='Build/Source tests' + +INPUT='-i cpptraj.in' + +if [ ! -z "$AMBERHOME" ] ; then + echo "Warning: AMBERHOME is set; temporarily unsetting for $TESTNAME" + unset AMBERHOME +fi + +UNITNAME='Source and Build test, direct' +cat > cpptraj.in <<EOF +source leaprc.protein.ff14SB +build ../tz2.pdb parmout tz2.parm7 crdout tz2.rst7 +EOF +RunCpptraj "$UNITNAME" +DoTest tz2.parm7.save tz2.parm7 -I %VERSION +DoTest tz2.rst7.save tz2.rst7 + +UNITNAME='Source and Build test, COORDS' +cat > cpptraj.in <<EOF +source leaprc.protein.ff14SB +readdata ../tz2.pdb as coords name MyCrd +build crdset MyCrd parmout tz2.coords.parm7 crdout tz2.coords.rst7 +EOF +RunCpptraj "$UNITNAME" +DoTest tz2.parm7.save tz2.coords.parm7 -I %VERSION +DoTest tz2.rst7.save tz2.coords.rst7 + +EndTest diff --git a/test/Test_Build/amino12.lib b/test/Test_Build/amino12.lib new file mode 100644 index 0000000000..c1b2f3bf90 --- /dev/null +++ b/test/Test_Build/amino12.lib @@ -0,0 +1,3570 @@ +!!index array str + "ALA" + "ARG" + "ASH" + "ASN" + "ASP" + "CYM" + "CYS" + "CYX" + "GLH" + "GLN" + "GLU" + "GLY" + "HID" + "HIE" + "HIP" + "HYP" + "ILE" + "LEU" + "LYN" + "LYS" + "MET" + "PHE" + "PRO" + "SER" + "THR" + "TRP" + "TYR" + "VAL" +!entry.ALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 0.033700 + "HA" "H1" 0 1 131072 4 1 0.082300 + "CB" "CT" 0 1 131072 5 6 -0.182500 + "HB1" "HC" 0 1 131072 6 1 0.060300 + "HB2" "HC" 0 1 131072 7 1 0.060300 + "HB3" "HC" 0 1 131072 8 1 0.060300 + "C" "C" 0 1 131072 9 6 0.597300 + "O" "O" 0 1 131072 10 8 -0.567900 +!entry.ALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB1" "HC" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ALA.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ALA.unit.childsequence single int + 2 +!entry.ALA.unit.connect array int + 1 + 9 +!entry.ALA.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 9 1 + 5 6 1 + 5 7 1 + 5 8 1 + 9 10 1 +!entry.ALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 +!entry.ALA.unit.name single str + "ALA" +!entry.ALA.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 3.877484 3.115795 2.131197 + 4.075059 4.623017 1.205786 + 2.496995 3.801075 1.241379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 9 0 0 0 0 +!entry.ALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ALA" 1 11 1 "p" 0 +!entry.ALA.unit.residuesPdbSequenceNumber array int + 0 +!entry.ALA.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ALA.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.ARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.347900 + "H" "H" 0 1 131072 2 1 0.274700 + "CA" "CX" 0 1 131072 3 6 -0.263700 + "HA" "H1" 0 1 131072 4 1 0.156000 + "CB" "C8" 0 1 131072 5 6 -0.000700 + "HB2" "HC" 0 1 131072 6 1 0.032700 + "HB3" "HC" 0 1 131072 7 1 0.032700 + "CG" "C8" 0 1 131072 8 6 0.039000 + "HG2" "HC" 0 1 131072 9 1 0.028500 + "HG3" "HC" 0 1 131072 10 1 0.028500 + "CD" "C8" 0 1 131072 11 6 0.048600 + "HD2" "H1" 0 1 131072 12 1 0.068700 + "HD3" "H1" 0 1 131072 13 1 0.068700 + "NE" "N2" 0 1 131072 14 7 -0.529500 + "HE" "H" 0 1 131072 15 1 0.345600 + "CZ" "CA" 0 1 131072 16 6 0.807600 + "NH1" "N2" 0 1 131072 17 7 -0.862700 + "HH11" "H" 0 1 131072 18 1 0.447800 + "HH12" "H" 0 1 131072 19 1 0.447800 + "NH2" "N2" 0 1 131072 20 7 -0.862700 + "HH21" "H" 0 1 131072 21 1 0.447800 + "HH22" "H" 0 1 131072 22 1 0.447800 + "C" "C" 0 1 131072 23 6 0.734100 + "O" "O" 0 1 131072 24 8 -0.589400 +!entry.ARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "C8" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C8" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C8" 0 -1 0.0 + "HD2" "H1" 0 -1 0.0 + "HD3" "H1" 0 -1 0.0 + "NE" "N2" 0 -1 0.0 + "HE" "H" 0 -1 0.0 + "CZ" "CA" 0 -1 0.0 + "NH1" "N2" 0 -1 0.0 + "HH11" "H" 0 -1 0.0 + "HH12" "H" 0 -1 0.0 + "NH2" "N2" 0 -1 0.0 + "HH21" "H" 0 -1 0.0 + "HH22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ARG.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ARG.unit.childsequence single int + 2 +!entry.ARG.unit.connect array int + 1 + 23 +!entry.ARG.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 23 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 16 17 1 + 16 20 1 + 17 18 1 + 17 19 1 + 20 21 1 + 20 22 1 + 23 24 1 +!entry.ARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 +!entry.ARG.unit.name single str + "ARG" +!entry.ARG.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.540320 7.142723 2.424483 + 5.151805 7.375492 1.655065 + 4.364284 8.040989 3.389382 + 3.575026 7.807606 4.434133 + 3.088949 6.925423 4.508848 + 3.465367 8.513631 5.147998 + 5.006254 9.201287 3.286991 + 5.604855 9.375325 2.492329 + 4.892216 9.903045 4.004368 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 23 0 0 0 0 +!entry.ARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ARG" 1 25 1 "p" 0 +!entry.ARG.unit.residuesPdbSequenceNumber array int + 0 +!entry.ARG.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ARG.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.ASH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 0.034100 + "HA" "H1" 0 1 131072 4 1 0.086400 + "CB" "2C" 0 1 131072 5 6 -0.031600 + "HB2" "HC" 0 1 131072 6 1 0.048800 + "HB3" "HC" 0 1 131072 7 1 0.048800 + "CG" "C" 0 1 131072 8 6 0.646200 + "OD1" "O" 0 1 131072 9 8 -0.555400 + "OD2" "OH" 0 1 131072 10 8 -0.637600 + "HD2" "HO" 0 1 131072 11 1 0.474700 + "C" "C" 0 1 131072 12 6 0.597300 + "O" "O" 0 1 131072 13 8 -0.567900 +!entry.ASH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C" 0 -1 0.0 + "OD1" "O" 0 -1 0.0 + "OD2" "OH" 0 -1 0.0 + "HD2" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ASH.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ASH.unit.childsequence single int + 2 +!entry.ASH.unit.connect array int + 1 + 12 +!entry.ASH.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 12 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 10 11 1 + 12 13 1 +!entry.ASH.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 +!entry.ASH.unit.name single str + "ASH" +!entry.ASH.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.275101 5.011380 1.194527 + 3.669108 5.954940 0.620011 + 5.407731 5.091879 1.740667 + 5.742902 5.987179 1.652920 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 12 0 0 0 0 +!entry.ASH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ASH" 1 14 1 "p" 0 +!entry.ASH.unit.residuesPdbSequenceNumber array int + 0 +!entry.ASH.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ASH.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.ASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 0.014300 + "HA" "H1" 0 1 131072 4 1 0.104800 + "CB" "2C" 0 1 131072 5 6 -0.204100 + "HB2" "HC" 0 1 131072 6 1 0.079700 + "HB3" "HC" 0 1 131072 7 1 0.079700 + "CG" "C" 0 1 131072 8 6 0.713000 + "OD1" "O" 0 1 131072 9 8 -0.593100 + "ND2" "N" 0 1 131072 10 7 -0.919100 + "HD21" "H" 0 1 131072 11 1 0.419600 + "HD22" "H" 0 1 131072 12 1 0.419600 + "C" "C" 0 1 131072 13 6 0.597300 + "O" "O" 0 1 131072 14 8 -0.567900 +!entry.ASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C" 0 -1 0.0 + "OD1" "O" 0 -1 0.0 + "ND2" "N" 0 -1 0.0 + "HD21" "H" 0 -1 0.0 + "HD22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ASN.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ASN.unit.childsequence single int + 2 +!entry.ASN.unit.connect array int + 1 + 13 +!entry.ASN.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 13 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 10 11 1 + 10 12 1 + 13 14 1 +!entry.ASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 +!entry.ASN.unit.name single str + "ASN" +!entry.ASN.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.253700 5.017112 1.232144 + 5.005299 5.340406 0.315072 + 3.984885 5.817909 2.265917 + 4.408015 6.733702 2.314743 + 3.359611 5.504297 2.994464 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 13 0 0 0 0 +!entry.ASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ASN" 1 15 1 "p" 0 +!entry.ASN.unit.residuesPdbSequenceNumber array int + 0 +!entry.ASN.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ASN.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.ASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.516300 + "H" "H" 0 1 131072 2 1 0.293600 + "CA" "CX" 0 1 131072 3 6 0.038100 + "HA" "H1" 0 1 131072 4 1 0.088000 + "CB" "2C" 0 1 131072 5 6 -0.030300 + "HB2" "HC" 0 1 131072 6 1 -0.012200 + "HB3" "HC" 0 1 131072 7 1 -0.012200 + "CG" "CO" 0 1 131072 8 6 0.799400 + "OD1" "O2" 0 1 131072 9 8 -0.801400 + "OD2" "O2" 0 1 131072 10 8 -0.801400 + "C" "C" 0 1 131072 11 6 0.536600 + "O" "O" 0 1 131072 12 8 -0.581900 +!entry.ASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CO" 0 -1 0.0 + "OD1" "O2" 0 -1 0.0 + "OD2" "O2" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ASP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ASP.unit.childsequence single int + 2 +!entry.ASP.unit.connect array int + 1 + 11 +!entry.ASP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 11 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 11 12 1 +!entry.ASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 +!entry.ASP.unit.name single str + "ASP" +!entry.ASP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.275101 5.011380 1.194527 + 3.669108 5.954940 0.620011 + 5.407731 5.091879 1.740667 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 11 0 0 0 0 +!entry.ASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ASP" 1 13 1 "p" 0 +!entry.ASP.unit.residuesPdbSequenceNumber array int + 0 +!entry.ASP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ASP.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CYM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.035100 + "HA" "H1" 0 1 131072 4 1 0.050800 + "CB" "CT" 0 1 131072 5 6 -0.241300 + "HB3" "H1" 0 1 131072 6 1 0.112200 + "HB2" "H1" 0 1 131072 7 1 0.112200 + "SG" "SH" 0 1 131072 8 16 -0.884400 + "C" "C" 0 1 131072 9 6 0.597300 + "O" "O" 0 1 131072 10 8 -0.567900 +!entry.CYM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "SG" "SH" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.CYM.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CYM.unit.childsequence single int + 2 +!entry.CYM.unit.connect array int + 1 + 9 +!entry.CYM.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 9 1 + 5 6 1 + 5 7 1 + 5 8 1 + 9 10 1 +!entry.CYM.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 +!entry.CYM.unit.name single str + "CYM" +!entry.CYM.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 3.877484 3.115795 2.131197 + 2.496995 3.801075 1.241379 + 4.309573 5.303523 1.366036 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.CYM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 9 0 0 0 0 +!entry.CYM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CYM" 1 11 1 "p" 0 +!entry.CYM.unit.residuesPdbSequenceNumber array int + 0 +!entry.CYM.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CYM.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 0.021300 + "HA" "H1" 0 1 131072 4 1 0.112400 + "CB" "2C" 0 1 131072 5 6 -0.123100 + "HB2" "H1" 0 1 131072 6 1 0.111200 + "HB3" "H1" 0 1 131072 7 1 0.111200 + "SG" "SH" 0 1 131072 8 16 -0.311900 + "HG" "HS" 0 1 131072 9 1 0.193300 + "C" "C" 0 1 131072 10 6 0.597300 + "O" "O" 0 1 131072 11 8 -0.567900 +!entry.CYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "SG" "SH" 0 -1 0.0 + "HG" "HS" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.CYS.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CYS.unit.childsequence single int + 2 +!entry.CYS.unit.connect array int + 1 + 10 +!entry.CYS.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 10 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 10 11 1 +!entry.CYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 +!entry.CYS.unit.name single str + "CYS" +!entry.CYS.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.309573 5.303523 1.366036 + 3.725392 5.622018 2.517640 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.CYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 10 0 0 0 0 +!entry.CYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CYS" 1 12 1 "p" 0 +!entry.CYS.unit.residuesPdbSequenceNumber array int + 0 +!entry.CYS.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CYS.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 0.042900 + "HA" "H1" 0 1 131072 4 1 0.076600 + "CB" "2C" 0 1 131072 5 6 -0.079000 + "HB2" "H1" 0 1 131072 6 1 0.091000 + "HB3" "H1" 0 1 131072 7 1 0.091000 + "SG" "S" 0 1 131072 8 16 -0.108100 + "C" "C" 0 1 131072 9 6 0.597300 + "O" "O" 0 1 131072 10 8 -0.567900 +!entry.CYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "SG" "S" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.CYX.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CYX.unit.childsequence single int + 2 +!entry.CYX.unit.connect array int + 1 + 9 +!entry.CYX.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 9 1 + 5 6 1 + 5 7 1 + 5 8 1 + 9 10 1 +!entry.CYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 +!entry.CYX.unit.name single str + "CYX" +!entry.CYX.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.309573 5.303523 1.366036 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.CYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 9 8 0 0 0 +!entry.CYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CYX" 1 11 1 "p" 0 +!entry.CYX.unit.residuesPdbSequenceNumber array int + 0 +!entry.CYX.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CYX.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.GLH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 0.014500 + "HA" "H1" 0 1 131072 4 1 0.077900 + "CB" "2C" 0 1 131072 5 6 -0.007100 + "HB2" "HC" 0 1 131072 6 1 0.025600 + "HB3" "HC" 0 1 131072 7 1 0.025600 + "CG" "2C" 0 1 131072 8 6 -0.017400 + "HG2" "HC" 0 1 131072 9 1 0.043000 + "HG3" "HC" 0 1 131072 10 1 0.043000 + "CD" "C" 0 1 131072 11 6 0.680100 + "OE1" "O" 0 1 131072 12 8 -0.583800 + "OE2" "OH" 0 1 131072 13 8 -0.651100 + "HE2" "HO" 0 1 131072 14 1 0.464100 + "C" "C" 0 1 131072 15 6 0.597300 + "O" "O" 0 1 131072 16 8 -0.567900 +!entry.GLH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C" 0 -1 0.0 + "OE1" "O" 0 -1 0.0 + "OE2" "OH" 0 -1 0.0 + "HE2" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.GLH.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLH.unit.childsequence single int + 2 +!entry.GLH.unit.connect array int + 1 + 15 +!entry.GLH.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 15 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 15 16 1 +!entry.GLH.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 +!entry.GLH.unit.name single str + "GLH" +!entry.GLH.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.267328 4.996267 1.194946 + 5.347413 4.849843 1.186158 + 3.966923 5.535124 0.296342 + 3.873732 5.805369 2.428706 + 4.594590 5.679012 3.454376 + 2.855965 6.542070 2.333721 + 2.710526 6.996624 3.166684 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.GLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 15 0 0 0 0 +!entry.GLH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "GLH" 1 17 1 "p" 0 +!entry.GLH.unit.residuesPdbSequenceNumber array int + 0 +!entry.GLH.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLH.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.GLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.003100 + "HA" "H1" 0 1 131072 4 1 0.085000 + "CB" "2C" 0 1 131072 5 6 -0.003600 + "HB2" "HC" 0 1 131072 6 1 0.017100 + "HB3" "HC" 0 1 131072 7 1 0.017100 + "CG" "2C" 0 1 131072 8 6 -0.064500 + "HG2" "HC" 0 1 131072 9 1 0.035200 + "HG3" "HC" 0 1 131072 10 1 0.035200 + "CD" "C" 0 1 131072 11 6 0.695100 + "OE1" "O" 0 1 131072 12 8 -0.608600 + "NE2" "N" 0 1 131072 13 7 -0.940700 + "HE21" "H" 0 1 131072 14 1 0.425100 + "HE22" "H" 0 1 131072 15 1 0.425100 + "C" "C" 0 1 131072 16 6 0.597300 + "O" "O" 0 1 131072 17 8 -0.567900 +!entry.GLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C" 0 -1 0.0 + "OE1" "O" 0 -1 0.0 + "NE2" "N" 0 -1 0.0 + "HE21" "H" 0 -1 0.0 + "HE22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.GLN.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLN.unit.childsequence single int + 2 +!entry.GLN.unit.connect array int + 1 + 16 +!entry.GLN.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 16 17 1 +!entry.GLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 +!entry.GLN.unit.name single str + "GLN" +!entry.GLN.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.906976 5.848443 2.410302 + 3.138962 5.408349 3.262893 + 4.458856 7.061523 2.488333 + 4.248434 7.659045 3.274966 + 5.084281 7.376210 1.760379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.GLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 16 0 0 0 0 +!entry.GLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "GLN" 1 18 1 "p" 0 +!entry.GLN.unit.residuesPdbSequenceNumber array int + 0 +!entry.GLN.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLN.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 +!entry.GLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.516300 + "H" "H" 0 1 131072 2 1 0.293600 + "CA" "CX" 0 1 131072 3 6 0.039700 + "HA" "H1" 0 1 131072 4 1 0.110500 + "CB" "2C" 0 1 131072 5 6 0.056000 + "HB2" "HC" 0 1 131072 6 1 -0.017300 + "HB3" "HC" 0 1 131072 7 1 -0.017300 + "CG" "2C" 0 1 131072 8 6 0.013600 + "HG2" "HC" 0 1 131072 9 1 -0.042500 + "HG3" "HC" 0 1 131072 10 1 -0.042500 + "CD" "CO" 0 1 131072 11 6 0.805400 + "OE1" "O2" 0 1 131072 12 8 -0.818800 + "OE2" "O2" 0 1 131072 13 8 -0.818800 + "C" "C" 0 1 131072 14 6 0.536600 + "O" "O" 0 1 131072 15 8 -0.581900 +!entry.GLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "CO" 0 -1 0.0 + "OE1" "O2" 0 -1 0.0 + "OE2" "O2" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.GLU.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLU.unit.childsequence single int + 2 +!entry.GLU.unit.connect array int + 1 + 14 +!entry.GLU.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 14 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 14 15 1 +!entry.GLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 +!entry.GLU.unit.name single str + "GLU" +!entry.GLU.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.267328 4.996267 1.194946 + 5.347413 4.849843 1.186158 + 3.966923 5.535124 0.296342 + 3.873732 5.805369 2.428706 + 4.594590 5.679012 3.454376 + 2.855965 6.542070 2.333721 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.GLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 14 0 0 0 0 +!entry.GLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "GLU" 1 16 1 "p" 0 +!entry.GLU.unit.residuesPdbSequenceNumber array int + 0 +!entry.GLU.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLU.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.GLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.025200 + "HA2" "H1" 0 1 131072 4 1 0.069800 + "HA3" "H1" 0 1 131072 5 1 0.069800 + "C" "C" 0 1 131072 6 6 0.597300 + "O" "O" 0 1 131072 7 8 -0.567900 +!entry.GLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA2" "H1" 0 -1 0.0 + "HA3" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.GLY.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLY.unit.childsequence single int + 2 +!entry.GLY.unit.connect array int + 1 + 6 +!entry.GLY.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 6 1 + 6 7 1 +!entry.GLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 +!entry.GLY.unit.name single str + "GLY" +!entry.GLY.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.671668 3.400125 0.889824 + 5.483710 2.686702 -4.438857E-06 + 5.993369 1.568360 -8.469843E-06 +!entry.GLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 6 0 0 0 0 +!entry.GLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "GLY" 1 8 1 "p" 0 +!entry.GLY.unit.residuesPdbSequenceNumber array int + 0 +!entry.GLY.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.GLY.unit.velocities table dbl x dbl y dbl z + 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 +!entry.HID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 0.018800 + "HA" "H1" 0 1 131072 4 1 0.088100 + "CB" "CT" 0 1 131072 5 6 -0.046200 + "HB2" "HC" 0 1 131072 6 1 0.040200 + "HB3" "HC" 0 1 131072 7 1 0.040200 + "CG" "CC" 0 1 131072 8 6 -0.026600 + "ND1" "NA" 0 1 131072 9 7 -0.381100 + "HD1" "H" 0 1 131072 10 1 0.364900 + "CE1" "CR" 0 1 131072 11 6 0.205700 + "HE1" "H5" 0 1 131072 12 1 0.139200 + "NE2" "NB" 0 1 131072 13 7 -0.572700 + "CD2" "CV" 0 1 131072 14 6 0.129200 + "HD2" "H4" 0 1 131072 15 1 0.114700 + "C" "C" 0 1 131072 16 6 0.597300 + "O" "O" 0 1 131072 17 8 -0.567900 +!entry.HID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NA" 0 -1 0.0 + "HD1" "H" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NB" 0 -1 0.0 + "CD2" "CV" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.HID.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HID.unit.childsequence single int + 2 +!entry.HID.unit.connect array int + 1 + 16 +!entry.HID.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 14 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 14 15 1 + 16 17 1 +!entry.HID.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 +!entry.HID.unit.name single str + "HID" +!entry.HID.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 3.339725 5.691913 3.169805 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.HID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 16 0 0 0 0 +!entry.HID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "HID" 1 18 1 "p" 0 +!entry.HID.unit.residuesPdbSequenceNumber array int + 0 +!entry.HID.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HID.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 +!entry.HIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.058100 + "HA" "H1" 0 1 131072 4 1 0.136000 + "CB" "CT" 0 1 131072 5 6 -0.007400 + "HB2" "HC" 0 1 131072 6 1 0.036700 + "HB3" "HC" 0 1 131072 7 1 0.036700 + "CG" "CC" 0 1 131072 8 6 0.186800 + "ND1" "NB" 0 1 131072 9 7 -0.543200 + "CE1" "CR" 0 1 131072 10 6 0.163500 + "HE1" "H5" 0 1 131072 11 1 0.143500 + "NE2" "NA" 0 1 131072 12 7 -0.279500 + "HE2" "H" 0 1 131072 13 1 0.333900 + "CD2" "CW" 0 1 131072 14 6 -0.220700 + "HD2" "H4" 0 1 131072 15 1 0.186200 + "C" "C" 0 1 131072 16 6 0.597300 + "O" "O" 0 1 131072 17 8 -0.567900 +!entry.HIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NB" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NA" 0 -1 0.0 + "HE2" "H" 0 -1 0.0 + "CD2" "CW" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.HIE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HIE.unit.childsequence single int + 2 +!entry.HIE.unit.connect array int + 1 + 16 +!entry.HIE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 14 1 + 9 10 1 + 10 11 1 + 10 12 1 + 12 13 1 + 12 14 1 + 14 15 1 + 16 17 1 +!entry.HIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 +!entry.HIE.unit.name single str + "HIE" +!entry.HIE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.896297 7.605085 0.676854 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.HIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 16 0 0 0 0 +!entry.HIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "HIE" 1 18 1 "p" 0 +!entry.HIE.unit.residuesPdbSequenceNumber array int + 0 +!entry.HIE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HIE.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 +!entry.HIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.347900 + "H" "H" 0 1 131072 2 1 0.274700 + "CA" "CX" 0 1 131072 3 6 -0.135400 + "HA" "H1" 0 1 131072 4 1 0.121200 + "CB" "CT" 0 1 131072 5 6 -0.041400 + "HB2" "HC" 0 1 131072 6 1 0.081000 + "HB3" "HC" 0 1 131072 7 1 0.081000 + "CG" "CC" 0 1 131072 8 6 -0.001200 + "ND1" "NA" 0 1 131072 9 7 -0.151300 + "HD1" "H" 0 1 131072 10 1 0.386600 + "CE1" "CR" 0 1 131072 11 6 -0.017000 + "HE1" "H5" 0 1 131072 12 1 0.268100 + "NE2" "NA" 0 1 131072 13 7 -0.171800 + "HE2" "H" 0 1 131072 14 1 0.391100 + "CD2" "CW" 0 1 131072 15 6 -0.114100 + "HD2" "H4" 0 1 131072 16 1 0.231700 + "C" "C" 0 1 131072 17 6 0.734100 + "O" "O" 0 1 131072 18 8 -0.589400 +!entry.HIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NA" 0 -1 0.0 + "HD1" "H" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NA" 0 -1 0.0 + "HE2" "H" 0 -1 0.0 + "CD2" "CW" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.HIP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HIP.unit.childsequence single int + 2 +!entry.HIP.unit.connect array int + 1 + 17 +!entry.HIP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 17 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 15 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 17 18 1 +!entry.HIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 +!entry.HIP.unit.name single str + "HIP" +!entry.HIP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 3.339725 5.691913 3.169805 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.896297 7.605085 0.676854 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.HIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 17 0 0 0 0 +!entry.HIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "HIP" 1 19 1 "p" 0 +!entry.HIP.unit.residuesPdbSequenceNumber array int + 0 +!entry.HIP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HIP.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 +!entry.HYP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.254800 + "CD" "CT" 0 1 131072 2 6 0.059500 + "HD22" "H1" 0 1 131072 3 1 0.070000 + "HD23" "H1" 0 1 131072 4 1 0.070000 + "CG" "CT" 0 1 131072 5 6 0.040000 + "HG" "H1" 0 1 131072 6 1 0.041600 + "OD1" "OH" 0 1 131072 7 8 -0.613400 + "HD1" "HO" 0 1 131072 8 1 0.385100 + "CB" "CT" 0 1 131072 9 6 0.020300 + "HB2" "HC" 0 1 131072 10 1 0.042600 + "HB3" "HC" 0 1 131072 11 1 0.042600 + "CA" "CX" 0 1 131072 12 6 0.004700 + "HA" "H1" 0 1 131072 13 1 0.077000 + "C" "C" 0 1 131072 14 6 0.589600 + "O" "O" 0 1 131072 15 8 -0.574800 +!entry.HYP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "CD" "CT" 0 -1 0.0 + "HD22" "H1" 0 -1 0.0 + "HD23" "H1" 0 -1 0.0 + "CG" "CT" 0 -1 0.0 + "HG" "H1" 0 -1 0.0 + "OD1" "OH" 0 -1 0.0 + "HD1" "HO" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.HYP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HYP.unit.childsequence single int + 2 +!entry.HYP.unit.connect array int + 1 + 14 +!entry.HYP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 12 1 + 2 3 1 + 2 4 1 + 2 5 1 + 5 6 1 + 5 7 1 + 5 9 1 + 7 8 1 + 9 10 1 + 9 11 1 + 9 12 1 + 12 13 1 + 12 14 1 + 14 15 1 +!entry.HYP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 +!entry.HYP.unit.name single str + "HYP" +!entry.HYP.unit.positions table dbl x dbl y dbl z + 3.326834 1.557389 -1.603945E-06 + 4.302147 0.476598 0.080119 + 4.419998 0.019283 -0.902263 + 3.955888 -0.274040 0.790574 + 5.547126 1.172441 0.544693 + 6.413549 0.741636 0.042879 + 5.687901 1.006813 1.978308 + 6.219605 0.169859 2.170401 + 5.369091 2.628184 0.185227 + 5.969289 2.861861 -0.694123 + 5.690642 3.251038 1.019947 + 3.933610 2.871277 -0.104508 + 3.611470 3.488570 0.734106 + 3.505164 3.526392 -1.409783 + 2.754240 2.939065 -2.185412 +!entry.HYP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 14 0 0 0 0 +!entry.HYP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "HYP" 1 16 1 "p" 0 +!entry.HYP.unit.residuesPdbSequenceNumber array int + 0 +!entry.HYP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.HYP.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.ILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.059700 + "HA" "H1" 0 1 131072 4 1 0.086900 + "CB" "3C" 0 1 131072 5 6 0.130300 + "HB" "HC" 0 1 131072 6 1 0.018700 + "CG2" "CT" 0 1 131072 7 6 -0.320400 + "HG21" "HC" 0 1 131072 8 1 0.088200 + "HG22" "HC" 0 1 131072 9 1 0.088200 + "HG23" "HC" 0 1 131072 10 1 0.088200 + "CG1" "2C" 0 1 131072 11 6 -0.043000 + "HG12" "HC" 0 1 131072 12 1 0.023600 + "HG13" "HC" 0 1 131072 13 1 0.023600 + "CD1" "CT" 0 1 131072 14 6 -0.066000 + "HD11" "HC" 0 1 131072 15 1 0.018600 + "HD12" "HC" 0 1 131072 16 1 0.018600 + "HD13" "HC" 0 1 131072 17 1 0.018600 + "C" "C" 0 1 131072 18 6 0.597300 + "O" "O" 0 1 131072 19 8 -0.567900 +!entry.ILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "HC" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "CG1" "2C" 0 -1 0.0 + "HG12" "HC" 0 -1 0.0 + "HG13" "HC" 0 -1 0.0 + "CD1" "CT" 0 -1 0.0 + "HD11" "HC" 0 -1 0.0 + "HD12" "HC" 0 -1 0.0 + "HD13" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ILE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ILE.unit.childsequence single int + 2 +!entry.ILE.unit.connect array int + 1 + 18 +!entry.ILE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 18 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 14 17 1 + 18 19 1 +!entry.ILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 +!entry.ILE.unit.name single str + "ILE" +!entry.ILE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.552136 3.620733 1.245168 + 2.470128 3.752486 1.245640 + 3.970045 2.845728 2.490296 + 5.052053 2.713974 2.490763 + 3.671561 3.399208 3.380615 + 3.485650 1.869275 2.490737 + 4.230204 4.986694 1.245169 + 5.312310 4.855746 1.245164 + 3.931820 5.541027 0.355348 + 3.812294 5.761632 2.490339 + 4.110777 5.208104 3.380628 + 4.296689 6.738085 2.490833 + 2.730286 5.893383 2.490813 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 18 0 0 0 0 +!entry.ILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ILE" 1 20 1 "p" 0 +!entry.ILE.unit.residuesPdbSequenceNumber array int + 0 +!entry.ILE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ILE.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.LEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.051800 + "HA" "H1" 0 1 131072 4 1 0.092200 + "CB" "2C" 0 1 131072 5 6 -0.110200 + "HB2" "HC" 0 1 131072 6 1 0.045700 + "HB3" "HC" 0 1 131072 7 1 0.045700 + "CG" "3C" 0 1 131072 8 6 0.353100 + "HG" "HC" 0 1 131072 9 1 -0.036100 + "CD1" "CT" 0 1 131072 10 6 -0.412100 + "HD11" "HC" 0 1 131072 11 1 0.100000 + "HD12" "HC" 0 1 131072 12 1 0.100000 + "HD13" "HC" 0 1 131072 13 1 0.100000 + "CD2" "CT" 0 1 131072 14 6 -0.412100 + "HD21" "HC" 0 1 131072 15 1 0.100000 + "HD22" "HC" 0 1 131072 16 1 0.100000 + "HD23" "HC" 0 1 131072 17 1 0.100000 + "C" "C" 0 1 131072 18 6 0.597300 + "O" "O" 0 1 131072 19 8 -0.567900 +!entry.LEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "3C" 0 -1 0.0 + "HG" "HC" 0 -1 0.0 + "CD1" "CT" 0 -1 0.0 + "HD11" "HC" 0 -1 0.0 + "HD12" "HC" 0 -1 0.0 + "HD13" "HC" 0 -1 0.0 + "CD2" "CT" 0 -1 0.0 + "HD21" "HC" 0 -1 0.0 + "HD22" "HC" 0 -1 0.0 + "HD23" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.LEU.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.LEU.unit.childsequence single int + 2 +!entry.LEU.unit.connect array int + 1 + 18 +!entry.LEU.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 18 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 14 1 + 10 11 1 + 10 12 1 + 10 13 1 + 14 15 1 + 14 16 1 + 14 17 1 + 18 19 1 +!entry.LEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 +!entry.LEU.unit.name single str + "LEU" +!entry.LEU.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.853429 5.762895 -0.062857 + 2.773449 5.910113 -0.054557 + 4.351513 6.732052 -0.090203 + 4.134159 5.185704 -0.943846 + 3.881105 5.817645 2.426721 + 4.181626 5.279602 3.325774 + 4.379198 6.786825 2.400363 + 2.801135 5.964881 2.435959 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.LEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 18 0 0 0 0 +!entry.LEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "LEU" 1 20 1 "p" 0 +!entry.LEU.unit.residuesPdbSequenceNumber array int + 0 +!entry.LEU.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.LEU.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.LYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.072060 + "HA" "H1" 0 1 131072 4 1 0.099400 + "CB" "CT" 0 1 131072 5 6 -0.048450 + "HB2" "HC" 0 1 131072 6 1 0.034000 + "HB3" "HC" 0 1 131072 7 1 0.034000 + "CG" "CT" 0 1 131072 8 6 0.066120 + "HG2" "HC" 0 1 131072 9 1 0.010410 + "HG3" "HC" 0 1 131072 10 1 0.010410 + "CD" "CT" 0 1 131072 11 6 -0.037680 + "HD2" "HC" 0 1 131072 12 1 0.011550 + "HD3" "HC" 0 1 131072 13 1 0.011550 + "CE" "CT" 0 1 131072 14 6 0.326040 + "HE2" "HP" 0 1 131072 15 1 -0.033580 + "HE3" "HP" 0 1 131072 16 1 -0.033580 + "NZ" "N3" 0 1 131072 17 7 -1.035810 + "HZ2" "H" 0 1 131072 18 1 0.386040 + "HZ3" "H" 0 1 131072 19 1 0.386040 + "C" "C" 0 1 131072 20 6 0.597300 + "O" "O" 0 1 131072 21 8 -0.567900 +!entry.LYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CT" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "CT" 0 -1 0.0 + "HD2" "HC" 0 -1 0.0 + "HD3" "HC" 0 -1 0.0 + "CE" "CT" 0 -1 0.0 + "HE2" "HP" 0 -1 0.0 + "HE3" "HP" 0 -1 0.0 + "NZ" "N3" 0 -1 0.0 + "HZ2" "H" 0 -1 0.0 + "HZ3" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.LYN.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.LYN.unit.childsequence single int + 2 +!entry.LYN.unit.connect array int + 1 + 20 +!entry.LYN.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 20 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 14 17 1 + 17 18 1 + 17 19 1 + 20 21 1 +!entry.LYN.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 +!entry.LYN.unit.name single str + "LYN" +!entry.LYN.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.578325 7.173410 2.389153 + 5.658410 7.026987 2.380363 + 4.277917 7.712267 1.490550 + 4.199422 7.952309 3.576860 + 4.661186 8.850226 3.551979 + 3.198675 8.088466 3.584971 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.LYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 20 0 0 0 0 +!entry.LYN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "LYN" 1 22 1 "p" 0 +!entry.LYN.unit.residuesPdbSequenceNumber array int + 0 +!entry.LYN.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.LYN.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.LYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.347900 + "H" "H" 0 1 131072 2 1 0.274700 + "CA" "CX" 0 1 131072 3 6 -0.240000 + "HA" "H1" 0 1 131072 4 1 0.142600 + "CB" "C8" 0 1 131072 5 6 -0.009400 + "HB2" "HC" 0 1 131072 6 1 0.036200 + "HB3" "HC" 0 1 131072 7 1 0.036200 + "CG" "C8" 0 1 131072 8 6 0.018700 + "HG2" "HC" 0 1 131072 9 1 0.010300 + "HG3" "HC" 0 1 131072 10 1 0.010300 + "CD" "C8" 0 1 131072 11 6 -0.047900 + "HD2" "HC" 0 1 131072 12 1 0.062100 + "HD3" "HC" 0 1 131072 13 1 0.062100 + "CE" "C8" 0 1 131072 14 6 -0.014300 + "HE2" "HP" 0 1 131072 15 1 0.113500 + "HE3" "HP" 0 1 131072 16 1 0.113500 + "NZ" "N3" 0 1 131072 17 7 -0.385400 + "HZ1" "H" 0 1 131072 18 1 0.340000 + "HZ2" "H" 0 1 131072 19 1 0.340000 + "HZ3" "H" 0 1 131072 20 1 0.340000 + "C" "C" 0 1 131072 21 6 0.734100 + "O" "O" 0 1 131072 22 8 -0.589400 +!entry.LYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "C8" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C8" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C8" 0 -1 0.0 + "HD2" "HC" 0 -1 0.0 + "HD3" "HC" 0 -1 0.0 + "CE" "C8" 0 -1 0.0 + "HE2" "HP" 0 -1 0.0 + "HE3" "HP" 0 -1 0.0 + "NZ" "N3" 0 -1 0.0 + "HZ1" "H" 0 -1 0.0 + "HZ2" "H" 0 -1 0.0 + "HZ3" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.LYS.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.LYS.unit.childsequence single int + 2 +!entry.LYS.unit.connect array int + 1 + 21 +!entry.LYS.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 21 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 14 17 1 + 17 18 1 + 17 19 1 + 17 20 1 + 21 22 1 +!entry.LYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 +!entry.LYS.unit.name single str + "LYS" +!entry.LYS.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.578325 7.173410 2.389153 + 5.658410 7.026987 2.380363 + 4.277917 7.712267 1.490550 + 4.199422 7.952309 3.576860 + 4.478085 7.453366 4.409628 + 4.661186 8.850226 3.551979 + 3.198675 8.088466 3.584971 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.LYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 21 0 0 0 0 +!entry.LYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "LYS" 1 23 1 "p" 0 +!entry.LYS.unit.residuesPdbSequenceNumber array int + 0 +!entry.LYS.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.LYS.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.MET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.023700 + "HA" "H1" 0 1 131072 4 1 0.088000 + "CB" "2C" 0 1 131072 5 6 0.034200 + "HB2" "HC" 0 1 131072 6 1 0.024100 + "HB3" "HC" 0 1 131072 7 1 0.024100 + "CG" "2C" 0 1 131072 8 6 0.001800 + "HG2" "H1" 0 1 131072 9 1 0.044000 + "HG3" "H1" 0 1 131072 10 1 0.044000 + "SD" "S" 0 1 131072 11 16 -0.273700 + "CE" "CT" 0 1 131072 12 6 -0.053600 + "HE1" "H1" 0 1 131072 13 1 0.068400 + "HE2" "H1" 0 1 131072 14 1 0.068400 + "HE3" "H1" 0 1 131072 15 1 0.068400 + "C" "C" 0 1 131072 16 6 0.597300 + "O" "O" 0 1 131072 17 8 -0.567900 +!entry.MET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "H1" 0 -1 0.0 + "HG3" "H1" 0 -1 0.0 + "SD" "S" 0 -1 0.0 + "CE" "CT" 0 -1 0.0 + "HE1" "H1" 0 -1 0.0 + "HE2" "H1" 0 -1 0.0 + "HE3" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.MET.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.MET.unit.childsequence single int + 2 +!entry.MET.unit.connect array int + 1 + 16 +!entry.MET.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 12 13 1 + 12 14 1 + 12 15 1 + 16 17 1 +!entry.MET.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 +!entry.MET.unit.name single str + "MET" +!entry.MET.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.817309 5.981266 2.651708 + 4.753212 7.463128 2.340949 + 4.433582 7.904044 1.396741 + 4.585907 8.175299 3.148985 + 5.814074 7.218763 2.286554 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.MET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 16 0 0 0 0 +!entry.MET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "MET" 1 18 1 "p" 0 +!entry.MET.unit.residuesPdbSequenceNumber array int + 0 +!entry.MET.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.MET.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 +!entry.PHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.002400 + "HA" "H1" 0 1 131072 4 1 0.097800 + "CB" "CT" 0 1 131072 5 6 -0.034300 + "HB2" "HC" 0 1 131072 6 1 0.029500 + "HB3" "HC" 0 1 131072 7 1 0.029500 + "CG" "CA" 0 1 131072 8 6 0.011800 + "CD1" "CA" 0 1 131072 9 6 -0.125600 + "HD1" "HA" 0 1 131072 10 1 0.133000 + "CE1" "CA" 0 1 131072 11 6 -0.170400 + "HE1" "HA" 0 1 131072 12 1 0.143000 + "CZ" "CA" 0 1 131072 13 6 -0.107200 + "HZ" "HA" 0 1 131072 14 1 0.129700 + "CE2" "CA" 0 1 131072 15 6 -0.170400 + "HE2" "HA" 0 1 131072 16 1 0.143000 + "CD2" "CA" 0 1 131072 17 6 -0.125600 + "HD2" "HA" 0 1 131072 18 1 0.133000 + "C" "C" 0 1 131072 19 6 0.597300 + "O" "O" 0 1 131072 20 8 -0.567900 +!entry.PHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CA" 0 -1 0.0 + "CD1" "CA" 0 -1 0.0 + "HD1" "HA" 0 -1 0.0 + "CE1" "CA" 0 -1 0.0 + "HE1" "HA" 0 -1 0.0 + "CZ" "CA" 0 -1 0.0 + "HZ" "HA" 0 -1 0.0 + "CE2" "CA" 0 -1 0.0 + "HE2" "HA" 0 -1 0.0 + "CD2" "CA" 0 -1 0.0 + "HD2" "HA" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.PHE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.PHE.unit.childsequence single int + 2 +!entry.PHE.unit.connect array int + 1 + 19 +!entry.PHE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 19 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 17 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 15 17 1 + 17 18 1 + 19 20 1 +!entry.PHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 +!entry.PHE.unit.name single str + "PHE" +!entry.PHE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.911613 5.857250 2.409890 + 3.236123 5.513843 3.193398 + 4.490014 7.129513 2.492354 + 4.264853 7.776651 3.340066 + 5.357616 7.570591 1.486016 + 5.807943 8.561138 1.550220 + 5.646818 6.739407 0.397211 + 6.322309 7.082817 -0.386295 + 5.068419 5.467143 0.314744 + 5.293584 4.820007 -0.532968 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.PHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 19 0 0 0 0 +!entry.PHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "PHE" 1 21 1 "p" 0 +!entry.PHE.unit.residuesPdbSequenceNumber array int + 0 +!entry.PHE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.PHE.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.PRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.254800 + "CD" "CT" 0 1 131072 2 6 0.019200 + "HD2" "H1" 0 1 131072 3 1 0.039100 + "HD3" "H1" 0 1 131072 4 1 0.039100 + "CG" "CT" 0 1 131072 5 6 0.018900 + "HG2" "HC" 0 1 131072 6 1 0.021300 + "HG3" "HC" 0 1 131072 7 1 0.021300 + "CB" "CT" 0 1 131072 8 6 -0.007000 + "HB2" "HC" 0 1 131072 9 1 0.025300 + "HB3" "HC" 0 1 131072 10 1 0.025300 + "CA" "CX" 0 1 131072 11 6 -0.026600 + "HA" "H1" 0 1 131072 12 1 0.064100 + "C" "C" 0 1 131072 13 6 0.589600 + "O" "O" 0 1 131072 14 8 -0.574800 +!entry.PRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "CD" "CT" 0 -1 0.0 + "HD2" "H1" 0 -1 0.0 + "HD3" "H1" 0 -1 0.0 + "CG" "CT" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.PRO.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.PRO.unit.childsequence single int + 2 +!entry.PRO.unit.connect array int + 1 + 13 +!entry.PRO.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 11 1 + 2 3 1 + 2 4 1 + 2 5 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 13 14 1 +!entry.PRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 +!entry.PRO.unit.name single str + "PRO" +!entry.PRO.unit.positions table dbl x dbl y dbl z + 3.326834 1.557389 -1.603945E-06 + 4.302147 0.476598 0.080119 + 4.419998 0.019283 -0.902263 + 3.955888 -0.274040 0.790574 + 5.547126 1.172441 0.544693 + 6.413549 0.741636 0.042879 + 5.652950 1.047934 1.622376 + 5.369091 2.628184 0.185227 + 5.969289 2.861861 -0.694123 + 5.690642 3.251038 1.019947 + 3.933610 2.871277 -0.104508 + 3.611470 3.488570 0.734106 + 3.505164 3.526392 -1.409783 + 2.754240 2.939065 -2.185412 +!entry.PRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 13 0 0 0 0 +!entry.PRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "PRO" 1 15 1 "p" 0 +!entry.PRO.unit.residuesPdbSequenceNumber array int + 0 +!entry.PRO.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.PRO.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.SER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.024900 + "HA" "H1" 0 1 131072 4 1 0.084300 + "CB" "2C" 0 1 131072 5 6 0.211700 + "HB2" "H1" 0 1 131072 6 1 0.035200 + "HB3" "H1" 0 1 131072 7 1 0.035200 + "OG" "OH" 0 1 131072 8 8 -0.654600 + "HG" "HO" 0 1 131072 9 1 0.427500 + "C" "C" 0 1 131072 10 6 0.597300 + "O" "O" 0 1 131072 11 8 -0.567900 +!entry.SER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "OG" "OH" 0 -1 0.0 + "HG" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.SER.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.SER.unit.childsequence single int + 2 +!entry.SER.unit.connect array int + 1 + 10 +!entry.SER.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 10 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 10 11 1 +!entry.SER.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 +!entry.SER.unit.name single str + "SER" +!entry.SER.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.230753 4.925145 1.196917 + 3.983305 5.433814 1.972562 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.SER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 10 0 0 0 0 +!entry.SER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "SER" 1 12 1 "p" 0 +!entry.SER.unit.residuesPdbSequenceNumber array int + 0 +!entry.SER.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.SER.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.THR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.038900 + "HA" "H1" 0 1 131072 4 1 0.100700 + "CB" "3C" 0 1 131072 5 6 0.365400 + "HB" "H1" 0 1 131072 6 1 0.004300 + "CG2" "CT" 0 1 131072 7 6 -0.243800 + "HG21" "HC" 0 1 131072 8 1 0.064200 + "HG22" "HC" 0 1 131072 9 1 0.064200 + "HG23" "HC" 0 1 131072 10 1 0.064200 + "OG1" "OH" 0 1 131072 11 8 -0.676100 + "HG1" "HO" 0 1 131072 12 1 0.410200 + "C" "C" 0 1 131072 13 6 0.597300 + "O" "O" 0 1 131072 14 8 -0.567900 +!entry.THR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "H1" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "OG1" "OH" 0 -1 0.0 + "HG1" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.THR.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.THR.unit.childsequence single int + 2 +!entry.THR.unit.connect array int + 1 + 13 +!entry.THR.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 13 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 + 13 14 1 +!entry.THR.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 +!entry.THR.unit.name single str + "THR" +!entry.THR.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 4.075059 4.623017 1.205786 + 2.065936 3.859425 1.244383 + 1.567127 2.890627 1.271209 + 1.784431 4.436953 2.124903 + 1.764699 4.397847 0.345796 + 3.971501 2.947413 2.411212 + 3.724052 3.456082 3.186857 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.THR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 13 0 0 0 0 +!entry.THR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "THR" 1 15 1 "p" 0 +!entry.THR.unit.residuesPdbSequenceNumber array int + 0 +!entry.THR.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.THR.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.TRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.027500 + "HA" "H1" 0 1 131072 4 1 0.112300 + "CB" "CT" 0 1 131072 5 6 -0.005000 + "HB2" "HC" 0 1 131072 6 1 0.033900 + "HB3" "HC" 0 1 131072 7 1 0.033900 + "CG" "C*" 0 1 131072 8 6 -0.141500 + "CD1" "CW" 0 1 131072 9 6 -0.163800 + "HD1" "H4" 0 1 131072 10 1 0.206200 + "NE1" "NA" 0 1 131072 11 7 -0.341800 + "HE1" "H" 0 1 131072 12 1 0.341200 + "CE2" "CN" 0 1 131072 13 6 0.138000 + "CZ2" "CA" 0 1 131072 14 6 -0.260100 + "HZ2" "HA" 0 1 131072 15 1 0.157200 + "CH2" "CA" 0 1 131072 16 6 -0.113400 + "HH2" "HA" 0 1 131072 17 1 0.141700 + "CZ3" "CA" 0 1 131072 18 6 -0.197200 + "HZ3" "HA" 0 1 131072 19 1 0.144700 + "CE3" "CA" 0 1 131072 20 6 -0.238700 + "HE3" "HA" 0 1 131072 21 1 0.170000 + "CD2" "CB" 0 1 131072 22 6 0.124300 + "C" "C" 0 1 131072 23 6 0.597300 + "O" "O" 0 1 131072 24 8 -0.567900 +!entry.TRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C*" 0 -1 0.0 + "CD1" "CW" 0 -1 0.0 + "HD1" "H4" 0 -1 0.0 + "NE1" "NA" 0 -1 0.0 + "HE1" "H" 0 -1 0.0 + "CE2" "CN" 0 -1 0.0 + "CZ2" "CA" 0 -1 0.0 + "HZ2" "HA" 0 -1 0.0 + "CH2" "CA" 0 -1 0.0 + "HH2" "HA" 0 -1 0.0 + "CZ3" "CA" 0 -1 0.0 + "HZ3" "HA" 0 -1 0.0 + "CE3" "CA" 0 -1 0.0 + "HE3" "HA" 0 -1 0.0 + "CD2" "CB" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.TRP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.TRP.unit.childsequence single int + 2 +!entry.TRP.unit.connect array int + 1 + 23 +!entry.TRP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 23 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 22 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 22 1 + 14 15 1 + 14 16 1 + 16 17 1 + 16 18 1 + 18 19 1 + 18 20 1 + 20 21 1 + 20 22 1 + 23 24 1 +!entry.TRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 +!entry.TRP.unit.name single str + "TRP" +!entry.TRP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 4.023453 5.931084 2.293240 + 3.368841 5.705466 3.135071 + 4.811943 7.073555 1.949808 + 4.882921 7.922010 2.493118 + 5.427347 6.842060 0.816764 + 6.297161 7.689052 0.119605 + 6.531230 8.676649 0.517050 + 6.814091 7.187011 -1.069023 + 7.498074 7.791857 -1.664362 + 6.482659 5.953119 -1.505101 + 6.897660 5.575648 -2.439654 + 5.604041 5.117355 -0.785636 + 5.358720 4.126570 -1.168080 + 5.083390 5.623004 0.411545 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.TRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 23 0 0 0 0 +!entry.TRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "TRP" 1 25 1 "p" 0 +!entry.TRP.unit.residuesPdbSequenceNumber array int + 0 +!entry.TRP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.TRP.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.TYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.001400 + "HA" "H1" 0 1 131072 4 1 0.087600 + "CB" "CT" 0 1 131072 5 6 -0.015200 + "HB2" "HC" 0 1 131072 6 1 0.029500 + "HB3" "HC" 0 1 131072 7 1 0.029500 + "CG" "CA" 0 1 131072 8 6 -0.001100 + "CD1" "CA" 0 1 131072 9 6 -0.190600 + "HD1" "HA" 0 1 131072 10 1 0.169900 + "CE1" "CA" 0 1 131072 11 6 -0.234100 + "HE1" "HA" 0 1 131072 12 1 0.165600 + "CZ" "C" 0 1 131072 13 6 0.322600 + "OH" "OH" 0 1 131072 14 8 -0.557900 + "HH" "HO" 0 1 131072 15 1 0.399200 + "CE2" "CA" 0 1 131072 16 6 -0.234100 + "HE2" "HA" 0 1 131072 17 1 0.165600 + "CD2" "CA" 0 1 131072 18 6 -0.190600 + "HD2" "HA" 0 1 131072 19 1 0.169900 + "C" "C" 0 1 131072 20 6 0.597300 + "O" "O" 0 1 131072 21 8 -0.567900 +!entry.TYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CA" 0 -1 0.0 + "CD1" "CA" 0 -1 0.0 + "HD1" "HA" 0 -1 0.0 + "CE1" "CA" 0 -1 0.0 + "HE1" "HA" 0 -1 0.0 + "CZ" "C" 0 -1 0.0 + "OH" "OH" 0 -1 0.0 + "HH" "HO" 0 -1 0.0 + "CE2" "CA" 0 -1 0.0 + "HE2" "HA" 0 -1 0.0 + "CD2" "CA" 0 -1 0.0 + "HD2" "HA" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.TYR.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.TYR.unit.childsequence single int + 2 +!entry.TYR.unit.connect array int + 1 + 20 +!entry.TYR.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 20 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 18 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 16 1 + 14 15 1 + 16 17 1 + 16 18 1 + 18 19 1 + 20 21 1 +!entry.TYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 +!entry.TYR.unit.name single str + "TYR" +!entry.TYR.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.267328 4.996267 1.194946 + 4.059927 5.918911 2.227280 + 3.400108 5.668218 3.057877 + 4.699998 7.163547 2.192791 + 4.538522 7.881891 2.996538 + 5.547471 7.485542 1.125970 + 6.169255 8.694617 1.092468 + 5.956327 9.246984 1.848214 + 5.754875 6.562900 0.093635 + 6.414694 6.813595 -0.736962 + 5.114806 5.318263 0.128119 + 5.276286 4.599920 -0.675627 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.TYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 20 0 0 0 0 +!entry.TYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "TYR" 1 22 1 "p" 0 +!entry.TYR.unit.residuesPdbSequenceNumber array int + 0 +!entry.TYR.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.TYR.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.VAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "CX" 0 1 131072 3 6 -0.087500 + "HA" "H1" 0 1 131072 4 1 0.096900 + "CB" "3C" 0 1 131072 5 6 0.298500 + "HB" "HC" 0 1 131072 6 1 -0.029700 + "CG1" "CT" 0 1 131072 7 6 -0.319200 + "HG11" "HC" 0 1 131072 8 1 0.079100 + "HG12" "HC" 0 1 131072 9 1 0.079100 + "HG13" "HC" 0 1 131072 10 1 0.079100 + "CG2" "CT" 0 1 131072 11 6 -0.319200 + "HG21" "HC" 0 1 131072 12 1 0.079100 + "HG22" "HC" 0 1 131072 13 1 0.079100 + "HG23" "HC" 0 1 131072 14 1 0.079100 + "C" "C" 0 1 131072 15 6 0.597300 + "O" "O" 0 1 131072 16 8 -0.567900 +!entry.VAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "HC" 0 -1 0.0 + "CG1" "CT" 0 -1 0.0 + "HG11" "HC" 0 -1 0.0 + "HG12" "HC" 0 -1 0.0 + "HG13" "HC" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.VAL.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.VAL.unit.childsequence single int + 2 +!entry.VAL.unit.connect array int + 1 + 15 +!entry.VAL.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 15 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 + 11 13 1 + 11 14 1 + 15 16 1 +!entry.VAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 +!entry.VAL.unit.name single str + "VAL" +!entry.VAL.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.997712 2.900483 2.489542 + 5.077693 2.753265 2.481244 + 3.716972 3.477628 3.370558 + 3.499630 1.931323 2.516834 + 4.274186 5.009602 1.194577 + 3.973781 5.548460 0.295972 + 3.993559 5.587585 2.075079 + 5.354271 4.863178 1.185788 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.VAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 15 0 0 0 0 +!entry.VAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "VAL" 1 17 1 "p" 0 +!entry.VAL.unit.residuesPdbSequenceNumber array int + 0 +!entry.VAL.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.VAL.unit.velocities table dbl x dbl y dbl z + 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.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 diff --git a/test/Test_Build/aminoct12.lib b/test/Test_Build/aminoct12.lib new file mode 100644 index 0000000000..c6bb0f1a12 --- /dev/null +++ b/test/Test_Build/aminoct12.lib @@ -0,0 +1,3344 @@ +!!index array str + "CALA" + "CARG" + "CASN" + "CASP" + "CCYS" + "CCYX" + "CGLN" + "CGLU" + "CGLY" + "CHID" + "CHIE" + "CHIP" + "CHYP" + "CILE" + "CLEU" + "CLYS" + "CMET" + "CPHE" + "CPRO" + "CSER" + "CTHR" + "CTRP" + "CTYR" + "CVAL" + "NHE" + "NME" +!entry.CALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.174700 + "HA" "H1" 0 1 131072 4 1 0.106700 + "CB" "CT" 0 1 131072 5 6 -0.209300 + "HB1" "HC" 0 1 131072 6 1 0.076400 + "HB2" "HC" 0 1 131072 7 1 0.076400 + "HB3" "HC" 0 1 131072 8 1 0.076400 + "C" "C" 0 1 131072 9 6 0.773100 + "O" "O2" 0 1 131072 10 8 -0.805500 + "OXT" "O2" 0 1 131072 11 8 -0.805500 +!entry.CALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB1" "HC" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CALA.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CALA.unit.childsequence single int + 2 +!entry.CALA.unit.connect array int + 1 + 0 +!entry.CALA.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 9 1 + 5 6 1 + 5 7 1 + 5 8 1 + 9 10 1 + 9 11 1 +!entry.CALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 +!entry.CALA.unit.name single str + "CALA" +!entry.CALA.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 3.877484 3.115795 2.131197 + 4.075059 4.623017 1.205786 + 2.496995 3.801075 1.241379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CALA" 1 12 1 "p" 0 +!entry.CALA.unit.residuesPdbSequenceNumber array int + 0 +!entry.CALA.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CALA.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.348100 + "H" "H" 0 1 131072 2 1 0.276400 + "CA" "CX" 0 1 131072 3 6 -0.306800 + "HA" "H1" 0 1 131072 4 1 0.144700 + "CB" "C8" 0 1 131072 5 6 -0.037400 + "HB2" "HC" 0 1 131072 6 1 0.037100 + "HB3" "HC" 0 1 131072 7 1 0.037100 + "CG" "C8" 0 1 131072 8 6 0.074400 + "HG2" "HC" 0 1 131072 9 1 0.018500 + "HG3" "HC" 0 1 131072 10 1 0.018500 + "CD" "C8" 0 1 131072 11 6 0.111400 + "HD2" "H1" 0 1 131072 12 1 0.046800 + "HD3" "H1" 0 1 131072 13 1 0.046800 + "NE" "N2" 0 1 131072 14 7 -0.556400 + "HE" "H" 0 1 131072 15 1 0.347900 + "CZ" "CA" 0 1 131072 16 6 0.836800 + "NH1" "N2" 0 1 131072 17 7 -0.873700 + "HH11" "H" 0 1 131072 18 1 0.449300 + "HH12" "H" 0 1 131072 19 1 0.449300 + "NH2" "N2" 0 1 131072 20 7 -0.873700 + "HH21" "H" 0 1 131072 21 1 0.449300 + "HH22" "H" 0 1 131072 22 1 0.449300 + "C" "C" 0 1 131072 23 6 0.855700 + "O" "O2" 0 1 131072 24 8 -0.826600 + "OXT" "O2" 0 1 131072 25 8 -0.826600 +!entry.CARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "C8" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C8" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C8" 0 -1 0.0 + "HD2" "H1" 0 -1 0.0 + "HD3" "H1" 0 -1 0.0 + "NE" "N2" 0 -1 0.0 + "HE" "H" 0 -1 0.0 + "CZ" "CA" 0 -1 0.0 + "NH1" "N2" 0 -1 0.0 + "HH11" "H" 0 -1 0.0 + "HH12" "H" 0 -1 0.0 + "NH2" "N2" 0 -1 0.0 + "HH21" "H" 0 -1 0.0 + "HH22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CARG.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CARG.unit.childsequence single int + 2 +!entry.CARG.unit.connect array int + 1 + 0 +!entry.CARG.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 23 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 16 17 1 + 16 20 1 + 17 18 1 + 17 19 1 + 20 21 1 + 20 22 1 + 23 24 1 + 23 25 1 +!entry.CARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 + "R" 1 "A" 25 +!entry.CARG.unit.name single str + "CARG" +!entry.CARG.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.540320 7.142723 2.424483 + 5.151805 7.375492 1.655065 + 4.364284 8.040989 3.389382 + 3.575026 7.807606 4.434133 + 3.088949 6.925423 4.508848 + 3.465367 8.513631 5.147998 + 5.006254 9.201287 3.286991 + 5.604855 9.375325 2.492329 + 4.892216 9.903045 4.004368 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CARG" 1 26 1 "p" 0 +!entry.CARG.unit.residuesPdbSequenceNumber array int + 0 +!entry.CARG.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CARG.unit.velocities table dbl x dbl y dbl z + 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.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 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.0 0.0 +!entry.CASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.208000 + "HA" "H1" 0 1 131072 4 1 0.135800 + "CB" "2C" 0 1 131072 5 6 -0.229900 + "HB2" "HC" 0 1 131072 6 1 0.102300 + "HB3" "HC" 0 1 131072 7 1 0.102300 + "CG" "C" 0 1 131072 8 6 0.715300 + "OD1" "O" 0 1 131072 9 8 -0.601000 + "ND2" "N" 0 1 131072 10 7 -0.908400 + "HD21" "H" 0 1 131072 11 1 0.415000 + "HD22" "H" 0 1 131072 12 1 0.415000 + "C" "C" 0 1 131072 13 6 0.805000 + "O" "O2" 0 1 131072 14 8 -0.814700 + "OXT" "O2" 0 1 131072 15 8 -0.814700 +!entry.CASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C" 0 -1 0.0 + "OD1" "O" 0 -1 0.0 + "ND2" "N" 0 -1 0.0 + "HD21" "H" 0 -1 0.0 + "HD22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CASN.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CASN.unit.childsequence single int + 2 +!entry.CASN.unit.connect array int + 1 + 0 +!entry.CASN.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 13 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 10 11 1 + 10 12 1 + 13 14 1 + 13 15 1 +!entry.CASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 +!entry.CASN.unit.name single str + "CASN" +!entry.CASN.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.253700 5.017112 1.232144 + 5.005299 5.340406 0.315072 + 3.984885 5.817909 2.265917 + 4.408015 6.733702 2.314743 + 3.359611 5.504297 2.994464 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CASN" 1 16 1 "p" 0 +!entry.CASN.unit.residuesPdbSequenceNumber array int + 0 +!entry.CASN.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CASN.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.CASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.519200 + "H" "H" 0 1 131072 2 1 0.305500 + "CA" "CX" 0 1 131072 3 6 -0.181700 + "HA" "H1" 0 1 131072 4 1 0.104600 + "CB" "2C" 0 1 131072 5 6 -0.067700 + "HB2" "HC" 0 1 131072 6 1 -0.021200 + "HB3" "HC" 0 1 131072 7 1 -0.021200 + "CG" "CO" 0 1 131072 8 6 0.885100 + "OD1" "O2" 0 1 131072 9 8 -0.816200 + "OD2" "O2" 0 1 131072 10 8 -0.816200 + "C" "C" 0 1 131072 11 6 0.725600 + "O" "O2" 0 1 131072 12 8 -0.788700 + "OXT" "O2" 0 1 131072 13 8 -0.788700 +!entry.CASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CO" 0 -1 0.0 + "OD1" "O2" 0 -1 0.0 + "OD2" "O2" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CASP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CASP.unit.childsequence single int + 2 +!entry.CASP.unit.connect array int + 1 + 0 +!entry.CASP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 11 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 11 12 1 + 11 13 1 +!entry.CASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 +!entry.CASP.unit.name single str + "CASP" +!entry.CASP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.275101 5.011380 1.194527 + 3.669108 5.954940 0.620011 + 5.407731 5.091879 1.740667 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CASP" 1 14 1 "p" 0 +!entry.CASP.unit.residuesPdbSequenceNumber array int + 0 +!entry.CASP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CASP.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.CCYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.163500 + "HA" "H1" 0 1 131072 4 1 0.139600 + "CB" "2C" 0 1 131072 5 6 -0.199600 + "HB2" "H1" 0 1 131072 6 1 0.143700 + "HB3" "H1" 0 1 131072 7 1 0.143700 + "SG" "SH" 0 1 131072 8 16 -0.310200 + "HG" "HS" 0 1 131072 9 1 0.206800 + "C" "C" 0 1 131072 10 6 0.749700 + "O" "O2" 0 1 131072 11 8 -0.798100 + "OXT" "O2" 0 1 131072 12 8 -0.798100 +!entry.CCYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "SG" "SH" 0 -1 0.0 + "HG" "HS" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CCYS.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CCYS.unit.childsequence single int + 2 +!entry.CCYS.unit.connect array int + 1 + 0 +!entry.CCYS.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 10 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 10 11 1 + 10 12 1 +!entry.CCYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 +!entry.CCYS.unit.name single str + "CCYS" +!entry.CCYS.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.309573 5.303523 1.366036 + 3.725392 5.622018 2.517640 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CCYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CCYS" 1 13 1 "p" 0 +!entry.CCYS.unit.residuesPdbSequenceNumber array int + 0 +!entry.CCYS.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CCYS.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.131800 + "HA" "H1" 0 1 131072 4 1 0.093800 + "CB" "2C" 0 1 131072 5 6 -0.194300 + "HB2" "H1" 0 1 131072 6 1 0.122800 + "HB3" "H1" 0 1 131072 7 1 0.122800 + "SG" "S" 0 1 131072 8 16 -0.052900 + "C" "C" 0 1 131072 9 6 0.761800 + "O" "O2" 0 1 131072 10 8 -0.804100 + "OXT" "O2" 0 1 131072 11 8 -0.804100 +!entry.CCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "SG" "S" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CCYX.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CCYX.unit.childsequence single int + 2 +!entry.CCYX.unit.connect array int + 1 + 0 +!entry.CCYX.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 9 1 + 5 6 1 + 5 7 1 + 5 8 1 + 9 10 1 + 9 11 1 +!entry.CCYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 +!entry.CCYX.unit.name single str + "CCYX" +!entry.CCYX.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.309573 5.303523 1.366036 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 8 0 0 0 +!entry.CCYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CCYX" 1 12 1 "p" 0 +!entry.CCYX.unit.residuesPdbSequenceNumber array int + 0 +!entry.CCYX.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CCYX.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CGLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.224800 + "HA" "H1" 0 1 131072 4 1 0.123200 + "CB" "2C" 0 1 131072 5 6 -0.066400 + "HB2" "HC" 0 1 131072 6 1 0.045200 + "HB3" "HC" 0 1 131072 7 1 0.045200 + "CG" "2C" 0 1 131072 8 6 -0.021000 + "HG2" "HC" 0 1 131072 9 1 0.020300 + "HG3" "HC" 0 1 131072 10 1 0.020300 + "CD" "C" 0 1 131072 11 6 0.709300 + "OE1" "O" 0 1 131072 12 8 -0.609800 + "NE2" "N" 0 1 131072 13 7 -0.957400 + "HE21" "H" 0 1 131072 14 1 0.430400 + "HE22" "H" 0 1 131072 15 1 0.430400 + "C" "C" 0 1 131072 16 6 0.777500 + "O" "O2" 0 1 131072 17 8 -0.804200 + "OXT" "O2" 0 1 131072 18 8 -0.804200 +!entry.CGLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C" 0 -1 0.0 + "OE1" "O" 0 -1 0.0 + "NE2" "N" 0 -1 0.0 + "HE21" "H" 0 -1 0.0 + "HE22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CGLN.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CGLN.unit.childsequence single int + 2 +!entry.CGLN.unit.connect array int + 1 + 0 +!entry.CGLN.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 16 17 1 + 16 18 1 +!entry.CGLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 +!entry.CGLN.unit.name single str + "CGLN" +!entry.CGLN.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.906976 5.848443 2.410302 + 3.138962 5.408349 3.262893 + 4.458856 7.061523 2.488333 + 4.248434 7.659045 3.274966 + 5.084281 7.376210 1.760379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CGLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CGLN" 1 19 1 "p" 0 +!entry.CGLN.unit.residuesPdbSequenceNumber array int + 0 +!entry.CGLN.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CGLN.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 +!entry.CGLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.519200 + "H" "H" 0 1 131072 2 1 0.305500 + "CA" "CX" 0 1 131072 3 6 -0.205900 + "HA" "H1" 0 1 131072 4 1 0.139900 + "CB" "2C" 0 1 131072 5 6 0.007100 + "HB2" "HC" 0 1 131072 6 1 -0.007800 + "HB3" "HC" 0 1 131072 7 1 -0.007800 + "CG" "2C" 0 1 131072 8 6 0.067500 + "HG2" "HC" 0 1 131072 9 1 -0.054800 + "HG3" "HC" 0 1 131072 10 1 -0.054800 + "CD" "CO" 0 1 131072 11 6 0.818300 + "OE1" "O2" 0 1 131072 12 8 -0.822000 + "OE2" "O2" 0 1 131072 13 8 -0.822000 + "C" "C" 0 1 131072 14 6 0.742000 + "O" "O2" 0 1 131072 15 8 -0.793000 + "OXT" "O2" 0 1 131072 16 8 -0.793000 +!entry.CGLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "CO" 0 -1 0.0 + "OE1" "O2" 0 -1 0.0 + "OE2" "O2" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CGLU.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CGLU.unit.childsequence single int + 2 +!entry.CGLU.unit.connect array int + 1 + 0 +!entry.CGLU.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 14 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 14 15 1 + 14 16 1 +!entry.CGLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 +!entry.CGLU.unit.name single str + "CGLU" +!entry.CGLU.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.267328 4.996267 1.194946 + 5.347413 4.849843 1.186158 + 3.966923 5.535124 0.296342 + 3.873732 5.805369 2.428706 + 4.594590 5.679012 3.454376 + 2.855965 6.542070 2.333721 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CGLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CGLU" 1 17 1 "p" 0 +!entry.CGLU.unit.residuesPdbSequenceNumber array int + 0 +!entry.CGLU.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CGLU.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.CGLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.249300 + "HA2" "H1" 0 1 131072 4 1 0.105600 + "HA3" "H1" 0 1 131072 5 1 0.105600 + "C" "C" 0 1 131072 6 6 0.723100 + "O" "O2" 0 1 131072 7 8 -0.785500 + "OXT" "O2" 0 1 131072 8 8 -0.785500 +!entry.CGLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA2" "H1" 0 -1 0.0 + "HA3" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CGLY.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CGLY.unit.childsequence single int + 2 +!entry.CGLY.unit.connect array int + 1 + 0 +!entry.CGLY.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 6 1 + 6 7 1 + 6 8 1 +!entry.CGLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 +!entry.CGLY.unit.name single str + "CGLY" +!entry.CGLY.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.671668 3.400125 0.889824 + 5.483710 2.686702 -4.438857E-06 + 5.993369 1.568360 -8.469843E-06 + 6.214748 3.674642 -2.512987E-06 +!entry.CGLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CGLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CGLY" 1 9 1 "p" 0 +!entry.CGLY.unit.residuesPdbSequenceNumber array int + 0 +!entry.CGLY.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CGLY.unit.velocities table dbl x dbl y dbl z + 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 +!entry.CHID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.173900 + "HA" "H1" 0 1 131072 4 1 0.110000 + "CB" "CT" 0 1 131072 5 6 -0.104600 + "HB2" "HC" 0 1 131072 6 1 0.056500 + "HB3" "HC" 0 1 131072 7 1 0.056500 + "CG" "CC" 0 1 131072 8 6 0.029300 + "ND1" "NA" 0 1 131072 9 7 -0.389200 + "HD1" "H" 0 1 131072 10 1 0.375500 + "CE1" "CR" 0 1 131072 11 6 0.192500 + "HE1" "H5" 0 1 131072 12 1 0.141800 + "NE2" "NB" 0 1 131072 13 7 -0.562900 + "CD2" "CV" 0 1 131072 14 6 0.100100 + "HD2" "H4" 0 1 131072 15 1 0.124100 + "C" "C" 0 1 131072 16 6 0.761500 + "O" "O2" 0 1 131072 17 8 -0.801600 + "OXT" "O2" 0 1 131072 18 8 -0.801600 +!entry.CHID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NA" 0 -1 0.0 + "HD1" "H" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NB" 0 -1 0.0 + "CD2" "CV" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CHID.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHID.unit.childsequence single int + 2 +!entry.CHID.unit.connect array int + 1 + 0 +!entry.CHID.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 14 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 14 15 1 + 16 17 1 + 16 18 1 +!entry.CHID.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 +!entry.CHID.unit.name single str + "CHID" +!entry.CHID.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 3.339725 5.691913 3.169805 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CHID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CHID" 1 19 1 "p" 0 +!entry.CHID.unit.residuesPdbSequenceNumber array int + 0 +!entry.CHID.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHID.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 +!entry.CHIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.269900 + "HA" "H1" 0 1 131072 4 1 0.165000 + "CB" "CT" 0 1 131072 5 6 -0.106800 + "HB2" "HC" 0 1 131072 6 1 0.062000 + "HB3" "HC" 0 1 131072 7 1 0.062000 + "CG" "CC" 0 1 131072 8 6 0.272400 + "ND1" "NB" 0 1 131072 9 7 -0.551700 + "CE1" "CR" 0 1 131072 10 6 0.155800 + "HE1" "H5" 0 1 131072 11 1 0.144800 + "NE2" "NA" 0 1 131072 12 7 -0.267000 + "HE2" "H" 0 1 131072 13 1 0.331900 + "CD2" "CW" 0 1 131072 14 6 -0.258800 + "HD2" "H4" 0 1 131072 15 1 0.195700 + "C" "C" 0 1 131072 16 6 0.791600 + "O" "O2" 0 1 131072 17 8 -0.806500 + "OXT" "O2" 0 1 131072 18 8 -0.806500 +!entry.CHIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NB" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NA" 0 -1 0.0 + "HE2" "H" 0 -1 0.0 + "CD2" "CW" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CHIE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHIE.unit.childsequence single int + 2 +!entry.CHIE.unit.connect array int + 1 + 0 +!entry.CHIE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 14 1 + 9 10 1 + 10 11 1 + 10 12 1 + 12 13 1 + 12 14 1 + 14 15 1 + 16 17 1 + 16 18 1 +!entry.CHIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 +!entry.CHIE.unit.name single str + "CHIE" +!entry.CHIE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.896297 7.605085 0.676854 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CHIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CHIE" 1 19 1 "p" 0 +!entry.CHIE.unit.residuesPdbSequenceNumber array int + 0 +!entry.CHIE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHIE.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 +!entry.CHIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.348100 + "H" "H" 0 1 131072 2 1 0.276400 + "CA" "CX" 0 1 131072 3 6 -0.144500 + "HA" "H1" 0 1 131072 4 1 0.111500 + "CB" "CT" 0 1 131072 5 6 -0.080000 + "HB2" "HC" 0 1 131072 6 1 0.086800 + "HB3" "HC" 0 1 131072 7 1 0.086800 + "CG" "CC" 0 1 131072 8 6 0.029800 + "ND1" "NA" 0 1 131072 9 7 -0.150100 + "HD1" "H" 0 1 131072 10 1 0.388300 + "CE1" "CR" 0 1 131072 11 6 -0.025100 + "HE1" "H5" 0 1 131072 12 1 0.269400 + "NE2" "NA" 0 1 131072 13 7 -0.168300 + "HE2" "H" 0 1 131072 14 1 0.391300 + "CD2" "CW" 0 1 131072 15 6 -0.125600 + "HD2" "H4" 0 1 131072 16 1 0.233600 + "C" "C" 0 1 131072 17 6 0.803200 + "O" "O2" 0 1 131072 18 8 -0.817700 + "OXT" "O2" 0 1 131072 19 8 -0.817700 +!entry.CHIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NA" 0 -1 0.0 + "HD1" "H" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NA" 0 -1 0.0 + "HE2" "H" 0 -1 0.0 + "CD2" "CW" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CHIP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHIP.unit.childsequence single int + 2 +!entry.CHIP.unit.connect array int + 1 + 0 +!entry.CHIP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 17 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 15 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 17 18 1 + 17 19 1 +!entry.CHIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 +!entry.CHIP.unit.name single str + "CHIP" +!entry.CHIP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 3.339725 5.691913 3.169805 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.896297 7.605085 0.676854 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CHIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CHIP" 1 20 1 "p" 0 +!entry.CHIP.unit.residuesPdbSequenceNumber array int + 0 +!entry.CHIP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHIP.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CHYP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.280200 + "CD" "CT" 0 1 131072 2 6 0.077800 + "HD22" "H1" 0 1 131072 3 1 0.033100 + "HD23" "H1" 0 1 131072 4 1 0.033100 + "CG" "CT" 0 1 131072 5 6 0.081000 + "HG" "H1" 0 1 131072 6 1 0.041600 + "OD1" "OH" 0 1 131072 7 8 -0.613400 + "HD1" "HO" 0 1 131072 8 1 0.385100 + "CB" "CT" 0 1 131072 9 6 0.054700 + "HB2" "HC" 0 1 131072 10 1 0.042600 + "HB3" "HC" 0 1 131072 11 1 0.042600 + "CA" "CX" 0 1 131072 12 6 -0.099300 + "HA" "H1" 0 1 131072 13 1 0.077600 + "C" "C" 0 1 131072 14 6 0.663100 + "O" "O2" 0 1 131072 15 8 -0.769700 + "OXT" "O2" 0 1 131072 16 8 -0.769700 +!entry.CHYP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "CD" "CT" 0 -1 0.0 + "HD22" "H1" 0 -1 0.0 + "HD23" "H1" 0 -1 0.0 + "CG" "CT" 0 -1 0.0 + "HG" "H1" 0 -1 0.0 + "OD1" "OH" 0 -1 0.0 + "HD1" "HO" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CHYP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHYP.unit.childsequence single int + 2 +!entry.CHYP.unit.connect array int + 1 + 0 +!entry.CHYP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 12 1 + 2 3 1 + 2 4 1 + 2 5 1 + 5 6 1 + 5 7 1 + 5 9 1 + 7 8 1 + 9 10 1 + 9 11 1 + 9 12 1 + 12 13 1 + 12 14 1 + 14 15 1 + 14 16 1 +!entry.CHYP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 +!entry.CHYP.unit.name single str + "CHYP" +!entry.CHYP.unit.positions table dbl x dbl y dbl z + 3.326834 1.557389 -1.603945E-06 + 4.302147 0.476598 0.080119 + 4.419998 0.019283 -0.902263 + 3.955888 -0.274040 0.790574 + 5.547126 1.172441 0.544693 + 6.413549 0.741636 0.042879 + 5.687901 1.006813 1.978308 + 6.219605 0.169859 2.170401 + 5.369091 2.628184 0.185227 + 5.969289 2.861861 -0.694123 + 5.690642 3.251038 1.019947 + 3.933610 2.871277 -0.104508 + 3.611470 3.488570 0.734106 + 3.505164 3.526392 -1.409783 + 2.754240 2.939065 -2.185412 + 3.904907 4.650696 -1.704043 +!entry.CHYP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CHYP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CHYP" 1 17 1 "p" 0 +!entry.CHYP.unit.residuesPdbSequenceNumber array int + 0 +!entry.CHYP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CHYP.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.CILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.310000 + "HA" "H1" 0 1 131072 4 1 0.137500 + "CB" "3C" 0 1 131072 5 6 0.036300 + "HB" "HC" 0 1 131072 6 1 0.076600 + "CG2" "CT" 0 1 131072 7 6 -0.349800 + "HG21" "HC" 0 1 131072 8 1 0.102100 + "HG22" "HC" 0 1 131072 9 1 0.102100 + "HG23" "HC" 0 1 131072 10 1 0.102100 + "CG1" "2C" 0 1 131072 11 6 -0.032300 + "HG12" "HC" 0 1 131072 12 1 0.032100 + "HG13" "HC" 0 1 131072 13 1 0.032100 + "CD1" "CT" 0 1 131072 14 6 -0.069900 + "HD11" "HC" 0 1 131072 15 1 0.019600 + "HD12" "HC" 0 1 131072 16 1 0.019600 + "HD13" "HC" 0 1 131072 17 1 0.019600 + "C" "C" 0 1 131072 18 6 0.834300 + "O" "O2" 0 1 131072 19 8 -0.819000 + "OXT" "O2" 0 1 131072 20 8 -0.819000 +!entry.CILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "HC" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "CG1" "2C" 0 -1 0.0 + "HG12" "HC" 0 -1 0.0 + "HG13" "HC" 0 -1 0.0 + "CD1" "CT" 0 -1 0.0 + "HD11" "HC" 0 -1 0.0 + "HD12" "HC" 0 -1 0.0 + "HD13" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CILE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CILE.unit.childsequence single int + 2 +!entry.CILE.unit.connect array int + 1 + 0 +!entry.CILE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 18 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 14 17 1 + 18 19 1 + 18 20 1 +!entry.CILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 +!entry.CILE.unit.name single str + "CILE" +!entry.CILE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.552136 3.620733 1.245168 + 2.470128 3.752486 1.245640 + 3.970045 2.845728 2.490296 + 5.052053 2.713974 2.490763 + 3.671561 3.399208 3.380615 + 3.485650 1.869275 2.490737 + 4.230204 4.986694 1.245169 + 5.312310 4.855746 1.245164 + 3.931820 5.541027 0.355348 + 3.812294 5.761632 2.490339 + 4.110777 5.208104 3.380628 + 4.296689 6.738085 2.490833 + 2.730286 5.893383 2.490813 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CILE" 1 21 1 "p" 0 +!entry.CILE.unit.residuesPdbSequenceNumber array int + 0 +!entry.CILE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CILE.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CLEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.284700 + "HA" "H1" 0 1 131072 4 1 0.134600 + "CB" "2C" 0 1 131072 5 6 -0.246900 + "HB2" "HC" 0 1 131072 6 1 0.097400 + "HB3" "HC" 0 1 131072 7 1 0.097400 + "CG" "3C" 0 1 131072 8 6 0.370600 + "HG" "HC" 0 1 131072 9 1 -0.037400 + "CD1" "CT" 0 1 131072 10 6 -0.416300 + "HD11" "HC" 0 1 131072 11 1 0.103800 + "HD12" "HC" 0 1 131072 12 1 0.103800 + "HD13" "HC" 0 1 131072 13 1 0.103800 + "CD2" "CT" 0 1 131072 14 6 -0.416300 + "HD21" "HC" 0 1 131072 15 1 0.103800 + "HD22" "HC" 0 1 131072 16 1 0.103800 + "HD23" "HC" 0 1 131072 17 1 0.103800 + "C" "C" 0 1 131072 18 6 0.832600 + "O" "O2" 0 1 131072 19 8 -0.819900 + "OXT" "O2" 0 1 131072 20 8 -0.819900 +!entry.CLEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "3C" 0 -1 0.0 + "HG" "HC" 0 -1 0.0 + "CD1" "CT" 0 -1 0.0 + "HD11" "HC" 0 -1 0.0 + "HD12" "HC" 0 -1 0.0 + "HD13" "HC" 0 -1 0.0 + "CD2" "CT" 0 -1 0.0 + "HD21" "HC" 0 -1 0.0 + "HD22" "HC" 0 -1 0.0 + "HD23" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CLEU.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CLEU.unit.childsequence single int + 2 +!entry.CLEU.unit.connect array int + 1 + 0 +!entry.CLEU.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 18 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 14 1 + 10 11 1 + 10 12 1 + 10 13 1 + 14 15 1 + 14 16 1 + 14 17 1 + 18 19 1 + 18 20 1 +!entry.CLEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 +!entry.CLEU.unit.name single str + "CLEU" +!entry.CLEU.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.853429 5.762895 -0.062857 + 2.773449 5.910113 -0.054557 + 4.351513 6.732052 -0.090203 + 4.134159 5.185704 -0.943846 + 3.881105 5.817645 2.426721 + 4.181626 5.279602 3.325774 + 4.379198 6.786825 2.400363 + 2.801135 5.964881 2.435959 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CLEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CLEU" 1 21 1 "p" 0 +!entry.CLEU.unit.residuesPdbSequenceNumber array int + 0 +!entry.CLEU.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CLEU.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CLYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.348100 + "H" "H" 0 1 131072 2 1 0.276400 + "CA" "CX" 0 1 131072 3 6 -0.290300 + "HA" "H1" 0 1 131072 4 1 0.143800 + "CB" "C8" 0 1 131072 5 6 -0.053800 + "HB2" "HC" 0 1 131072 6 1 0.048200 + "HB3" "HC" 0 1 131072 7 1 0.048200 + "CG" "C8" 0 1 131072 8 6 0.022700 + "HG2" "HC" 0 1 131072 9 1 0.013400 + "HG3" "HC" 0 1 131072 10 1 0.013400 + "CD" "C8" 0 1 131072 11 6 -0.039200 + "HD2" "HC" 0 1 131072 12 1 0.061100 + "HD3" "HC" 0 1 131072 13 1 0.061100 + "CE" "C8" 0 1 131072 14 6 -0.017600 + "HE2" "HP" 0 1 131072 15 1 0.112100 + "HE3" "HP" 0 1 131072 16 1 0.112100 + "NZ" "N3" 0 1 131072 17 7 -0.374100 + "HZ1" "H" 0 1 131072 18 1 0.337400 + "HZ2" "H" 0 1 131072 19 1 0.337400 + "HZ3" "H" 0 1 131072 20 1 0.337400 + "C" "C" 0 1 131072 21 6 0.848800 + "O" "O2" 0 1 131072 22 8 -0.825200 + "OXT" "O2" 0 1 131072 23 8 -0.825200 +!entry.CLYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "C8" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C8" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C8" 0 -1 0.0 + "HD2" "HC" 0 -1 0.0 + "HD3" "HC" 0 -1 0.0 + "CE" "C8" 0 -1 0.0 + "HE2" "HP" 0 -1 0.0 + "HE3" "HP" 0 -1 0.0 + "NZ" "N3" 0 -1 0.0 + "HZ1" "H" 0 -1 0.0 + "HZ2" "H" 0 -1 0.0 + "HZ3" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CLYS.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CLYS.unit.childsequence single int + 2 +!entry.CLYS.unit.connect array int + 1 + 0 +!entry.CLYS.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 21 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 14 17 1 + 17 18 1 + 17 19 1 + 17 20 1 + 21 22 1 + 21 23 1 +!entry.CLYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 +!entry.CLYS.unit.name single str + "CLYS" +!entry.CLYS.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.578325 7.173410 2.389153 + 5.658410 7.026987 2.380363 + 4.277917 7.712267 1.490550 + 4.199422 7.952309 3.576860 + 4.478085 7.453366 4.409628 + 4.661186 8.850226 3.551979 + 3.198675 8.088466 3.584971 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CLYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CLYS" 1 24 1 "p" 0 +!entry.CLYS.unit.residuesPdbSequenceNumber array int + 0 +!entry.CLYS.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CLYS.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.CMET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.259700 + "HA" "H1" 0 1 131072 4 1 0.127700 + "CB" "2C" 0 1 131072 5 6 -0.023600 + "HB2" "HC" 0 1 131072 6 1 0.048000 + "HB3" "HC" 0 1 131072 7 1 0.048000 + "CG" "2C" 0 1 131072 8 6 0.049200 + "HG2" "H1" 0 1 131072 9 1 0.031700 + "HG3" "H1" 0 1 131072 10 1 0.031700 + "SD" "S" 0 1 131072 11 16 -0.269200 + "CE" "CT" 0 1 131072 12 6 -0.037600 + "HE1" "H1" 0 1 131072 13 1 0.062500 + "HE2" "H1" 0 1 131072 14 1 0.062500 + "HE3" "H1" 0 1 131072 15 1 0.062500 + "C" "C" 0 1 131072 16 6 0.801300 + "O" "O2" 0 1 131072 17 8 -0.810500 + "OXT" "O2" 0 1 131072 18 8 -0.810500 +!entry.CMET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "H1" 0 -1 0.0 + "HG3" "H1" 0 -1 0.0 + "SD" "S" 0 -1 0.0 + "CE" "CT" 0 -1 0.0 + "HE1" "H1" 0 -1 0.0 + "HE2" "H1" 0 -1 0.0 + "HE3" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CMET.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CMET.unit.childsequence single int + 2 +!entry.CMET.unit.connect array int + 1 + 0 +!entry.CMET.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 16 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 12 13 1 + 12 14 1 + 12 15 1 + 16 17 1 + 16 18 1 +!entry.CMET.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 +!entry.CMET.unit.name single str + "CMET" +!entry.CMET.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.817309 5.981266 2.651708 + 4.753212 7.463128 2.340949 + 4.433582 7.904044 1.396741 + 4.585907 8.175299 3.148985 + 5.814074 7.218763 2.286554 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CMET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CMET" 1 19 1 "p" 0 +!entry.CMET.unit.residuesPdbSequenceNumber array int + 0 +!entry.CMET.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CMET.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 +!entry.CPHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.182500 + "HA" "H1" 0 1 131072 4 1 0.109800 + "CB" "CT" 0 1 131072 5 6 -0.095900 + "HB2" "HC" 0 1 131072 6 1 0.044300 + "HB3" "HC" 0 1 131072 7 1 0.044300 + "CG" "CA" 0 1 131072 8 6 0.055200 + "CD1" "CA" 0 1 131072 9 6 -0.130000 + "HD1" "HA" 0 1 131072 10 1 0.140800 + "CE1" "CA" 0 1 131072 11 6 -0.184700 + "HE1" "HA" 0 1 131072 12 1 0.146100 + "CZ" "CA" 0 1 131072 13 6 -0.094400 + "HZ" "HA" 0 1 131072 14 1 0.128000 + "CE2" "CA" 0 1 131072 15 6 -0.184700 + "HE2" "HA" 0 1 131072 16 1 0.146100 + "CD2" "CA" 0 1 131072 17 6 -0.130000 + "HD2" "HA" 0 1 131072 18 1 0.140800 + "C" "C" 0 1 131072 19 6 0.766000 + "O" "O2" 0 1 131072 20 8 -0.802600 + "OXT" "O2" 0 1 131072 21 8 -0.802600 +!entry.CPHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CA" 0 -1 0.0 + "CD1" "CA" 0 -1 0.0 + "HD1" "HA" 0 -1 0.0 + "CE1" "CA" 0 -1 0.0 + "HE1" "HA" 0 -1 0.0 + "CZ" "CA" 0 -1 0.0 + "HZ" "HA" 0 -1 0.0 + "CE2" "CA" 0 -1 0.0 + "HE2" "HA" 0 -1 0.0 + "CD2" "CA" 0 -1 0.0 + "HD2" "HA" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CPHE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CPHE.unit.childsequence single int + 2 +!entry.CPHE.unit.connect array int + 1 + 0 +!entry.CPHE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 19 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 17 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 15 17 1 + 17 18 1 + 19 20 1 + 19 21 1 +!entry.CPHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 +!entry.CPHE.unit.name single str + "CPHE" +!entry.CPHE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.911613 5.857250 2.409890 + 3.236123 5.513843 3.193398 + 4.490014 7.129513 2.492354 + 4.264853 7.776651 3.340066 + 5.357616 7.570591 1.486016 + 5.807943 8.561138 1.550220 + 5.646818 6.739407 0.397211 + 6.322309 7.082817 -0.386295 + 5.068419 5.467143 0.314744 + 5.293584 4.820007 -0.532968 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CPHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CPHE" 1 22 1 "p" 0 +!entry.CPHE.unit.residuesPdbSequenceNumber array int + 0 +!entry.CPHE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CPHE.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.CPRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.280200 + "CD" "CT" 0 1 131072 2 6 0.043400 + "HD2" "H1" 0 1 131072 3 1 0.033100 + "HD3" "H1" 0 1 131072 4 1 0.033100 + "CG" "CT" 0 1 131072 5 6 0.046600 + "HG2" "HC" 0 1 131072 6 1 0.017200 + "HG3" "HC" 0 1 131072 7 1 0.017200 + "CB" "CT" 0 1 131072 8 6 -0.054300 + "HB2" "HC" 0 1 131072 9 1 0.038100 + "HB3" "HC" 0 1 131072 10 1 0.038100 + "CA" "CX" 0 1 131072 11 6 -0.133600 + "HA" "H1" 0 1 131072 12 1 0.077600 + "C" "C" 0 1 131072 13 6 0.663100 + "O" "O2" 0 1 131072 14 8 -0.769700 + "OXT" "O2" 0 1 131072 15 8 -0.769700 +!entry.CPRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "CD" "CT" 0 -1 0.0 + "HD2" "H1" 0 -1 0.0 + "HD3" "H1" 0 -1 0.0 + "CG" "CT" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CPRO.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CPRO.unit.childsequence single int + 2 +!entry.CPRO.unit.connect array int + 1 + 0 +!entry.CPRO.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 11 1 + 2 3 1 + 2 4 1 + 2 5 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 +!entry.CPRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 +!entry.CPRO.unit.name single str + "CPRO" +!entry.CPRO.unit.positions table dbl x dbl y dbl z + 3.326834 1.557389 -1.603945E-06 + 4.302147 0.476598 0.080119 + 4.419998 0.019283 -0.902263 + 3.955888 -0.274040 0.790574 + 5.547126 1.172441 0.544693 + 6.413549 0.741636 0.042879 + 5.652950 1.047934 1.622376 + 5.369091 2.628184 0.185227 + 5.969289 2.861861 -0.694123 + 5.690642 3.251038 1.019947 + 3.933610 2.871277 -0.104508 + 3.611470 3.488570 0.734106 + 3.505164 3.526392 -1.409783 + 2.754240 2.939065 -2.185412 + 3.904907 4.650696 -1.704043 +!entry.CPRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CPRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CPRO" 1 16 1 "p" 0 +!entry.CPRO.unit.residuesPdbSequenceNumber array int + 0 +!entry.CPRO.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CPRO.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.CSER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.272200 + "HA" "H1" 0 1 131072 4 1 0.130400 + "CB" "2C" 0 1 131072 5 6 0.112300 + "HB2" "H1" 0 1 131072 6 1 0.081300 + "HB3" "H1" 0 1 131072 7 1 0.081300 + "OG" "OH" 0 1 131072 8 8 -0.651400 + "HG" "HO" 0 1 131072 9 1 0.447400 + "C" "C" 0 1 131072 10 6 0.811300 + "O" "O2" 0 1 131072 11 8 -0.813200 + "OXT" "O2" 0 1 131072 12 8 -0.813200 +!entry.CSER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "OG" "OH" 0 -1 0.0 + "HG" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CSER.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CSER.unit.childsequence single int + 2 +!entry.CSER.unit.connect array int + 1 + 0 +!entry.CSER.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 10 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 10 11 1 + 10 12 1 +!entry.CSER.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 +!entry.CSER.unit.name single str + "CSER" +!entry.CSER.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.230753 4.925145 1.196917 + 3.983305 5.433814 1.972562 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CSER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CSER" 1 13 1 "p" 0 +!entry.CSER.unit.residuesPdbSequenceNumber array int + 0 +!entry.CSER.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CSER.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.CTHR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.242000 + "HA" "H1" 0 1 131072 4 1 0.120700 + "CB" "3C" 0 1 131072 5 6 0.302500 + "HB" "H1" 0 1 131072 6 1 0.007800 + "CG2" "CT" 0 1 131072 7 6 -0.185300 + "HG21" "HC" 0 1 131072 8 1 0.058600 + "HG22" "HC" 0 1 131072 9 1 0.058600 + "HG23" "HC" 0 1 131072 10 1 0.058600 + "OG1" "OH" 0 1 131072 11 8 -0.649600 + "HG1" "HO" 0 1 131072 12 1 0.411900 + "C" "C" 0 1 131072 13 6 0.781000 + "O" "O2" 0 1 131072 14 8 -0.804400 + "OXT" "O2" 0 1 131072 15 8 -0.804400 +!entry.CTHR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "H1" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "OG1" "OH" 0 -1 0.0 + "HG1" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CTHR.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CTHR.unit.childsequence single int + 2 +!entry.CTHR.unit.connect array int + 1 + 0 +!entry.CTHR.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 13 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 + 13 14 1 + 13 15 1 +!entry.CTHR.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 +!entry.CTHR.unit.name single str + "CTHR" +!entry.CTHR.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 4.075059 4.623017 1.205786 + 2.065936 3.859425 1.244383 + 1.567127 2.890627 1.271209 + 1.784431 4.436953 2.124903 + 1.764699 4.397847 0.345796 + 3.971501 2.947413 2.411212 + 3.724052 3.456082 3.186857 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CTHR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CTHR" 1 16 1 "p" 0 +!entry.CTHR.unit.residuesPdbSequenceNumber array int + 0 +!entry.CTHR.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CTHR.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.CTRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.208400 + "HA" "H1" 0 1 131072 4 1 0.127200 + "CB" "CT" 0 1 131072 5 6 -0.074200 + "HB2" "HC" 0 1 131072 6 1 0.049700 + "HB3" "HC" 0 1 131072 7 1 0.049700 + "CG" "C*" 0 1 131072 8 6 -0.079600 + "CD1" "CW" 0 1 131072 9 6 -0.180800 + "HD1" "H4" 0 1 131072 10 1 0.204300 + "NE1" "NA" 0 1 131072 11 7 -0.331600 + "HE1" "H" 0 1 131072 12 1 0.341300 + "CE2" "CN" 0 1 131072 13 6 0.122200 + "CZ2" "CA" 0 1 131072 14 6 -0.259400 + "HZ2" "HA" 0 1 131072 15 1 0.156700 + "CH2" "CA" 0 1 131072 16 6 -0.102000 + "HH2" "HA" 0 1 131072 17 1 0.140100 + "CZ3" "CA" 0 1 131072 18 6 -0.228700 + "HZ3" "HA" 0 1 131072 19 1 0.150700 + "CE3" "CA" 0 1 131072 20 6 -0.183700 + "HE3" "HA" 0 1 131072 21 1 0.149100 + "CD2" "CB" 0 1 131072 22 6 0.107800 + "C" "C" 0 1 131072 23 6 0.765800 + "O" "O2" 0 1 131072 24 8 -0.801100 + "OXT" "O2" 0 1 131072 25 8 -0.801100 +!entry.CTRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C*" 0 -1 0.0 + "CD1" "CW" 0 -1 0.0 + "HD1" "H4" 0 -1 0.0 + "NE1" "NA" 0 -1 0.0 + "HE1" "H" 0 -1 0.0 + "CE2" "CN" 0 -1 0.0 + "CZ2" "CA" 0 -1 0.0 + "HZ2" "HA" 0 -1 0.0 + "CH2" "CA" 0 -1 0.0 + "HH2" "HA" 0 -1 0.0 + "CZ3" "CA" 0 -1 0.0 + "HZ3" "HA" 0 -1 0.0 + "CE3" "CA" 0 -1 0.0 + "HE3" "HA" 0 -1 0.0 + "CD2" "CB" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CTRP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CTRP.unit.childsequence single int + 2 +!entry.CTRP.unit.connect array int + 1 + 0 +!entry.CTRP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 23 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 22 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 22 1 + 14 15 1 + 14 16 1 + 16 17 1 + 16 18 1 + 18 19 1 + 18 20 1 + 20 21 1 + 20 22 1 + 23 24 1 + 23 25 1 +!entry.CTRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 + "R" 1 "A" 25 +!entry.CTRP.unit.name single str + "CTRP" +!entry.CTRP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 4.023453 5.931084 2.293240 + 3.368841 5.705466 3.135071 + 4.811943 7.073555 1.949808 + 4.882921 7.922010 2.493118 + 5.427347 6.842060 0.816764 + 6.297161 7.689052 0.119605 + 6.531230 8.676649 0.517050 + 6.814091 7.187011 -1.069023 + 7.498074 7.791857 -1.664362 + 6.482659 5.953119 -1.505101 + 6.897660 5.575648 -2.439654 + 5.604041 5.117355 -0.785636 + 5.358720 4.126570 -1.168080 + 5.083390 5.623004 0.411545 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CTRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CTRP" 1 26 1 "p" 0 +!entry.CTRP.unit.residuesPdbSequenceNumber array int + 0 +!entry.CTRP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CTRP.unit.velocities table dbl x dbl y dbl z + 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.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 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.0 0.0 +!entry.CTYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.201500 + "HA" "H1" 0 1 131072 4 1 0.109200 + "CB" "CT" 0 1 131072 5 6 -0.075200 + "HB2" "HC" 0 1 131072 6 1 0.049000 + "HB3" "HC" 0 1 131072 7 1 0.049000 + "CG" "CA" 0 1 131072 8 6 0.024300 + "CD1" "CA" 0 1 131072 9 6 -0.192200 + "HD1" "HA" 0 1 131072 10 1 0.178000 + "CE1" "CA" 0 1 131072 11 6 -0.245800 + "HE1" "HA" 0 1 131072 12 1 0.167300 + "CZ" "C" 0 1 131072 13 6 0.339500 + "OH" "OH" 0 1 131072 14 8 -0.564300 + "HH" "HO" 0 1 131072 15 1 0.401700 + "CE2" "CA" 0 1 131072 16 6 -0.245800 + "HE2" "HA" 0 1 131072 17 1 0.167300 + "CD2" "CA" 0 1 131072 18 6 -0.192200 + "HD2" "HA" 0 1 131072 19 1 0.178000 + "C" "C" 0 1 131072 20 6 0.781700 + "O" "O2" 0 1 131072 21 8 -0.807000 + "OXT" "O2" 0 1 131072 22 8 -0.807000 +!entry.CTYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CA" 0 -1 0.0 + "CD1" "CA" 0 -1 0.0 + "HD1" "HA" 0 -1 0.0 + "CE1" "CA" 0 -1 0.0 + "HE1" "HA" 0 -1 0.0 + "CZ" "C" 0 -1 0.0 + "OH" "OH" 0 -1 0.0 + "HH" "HO" 0 -1 0.0 + "CE2" "CA" 0 -1 0.0 + "HE2" "HA" 0 -1 0.0 + "CD2" "CA" 0 -1 0.0 + "HD2" "HA" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CTYR.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CTYR.unit.childsequence single int + 2 +!entry.CTYR.unit.connect array int + 1 + 0 +!entry.CTYR.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 20 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 18 1 + 9 10 1 + 9 11 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 16 1 + 14 15 1 + 16 17 1 + 16 18 1 + 18 19 1 + 20 21 1 + 20 22 1 +!entry.CTYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 +!entry.CTYR.unit.name single str + "CTYR" +!entry.CTYR.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.267328 4.996267 1.194946 + 4.059927 5.918911 2.227280 + 3.400108 5.668218 3.057877 + 4.699998 7.163547 2.192791 + 4.538522 7.881891 2.996538 + 5.547471 7.485542 1.125970 + 6.169255 8.694617 1.092468 + 5.956327 9.246984 1.848214 + 5.754875 6.562900 0.093635 + 6.414694 6.813595 -0.736962 + 5.114806 5.318263 0.128119 + 5.276286 4.599920 -0.675627 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CTYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CTYR" 1 23 1 "p" 0 +!entry.CTYR.unit.residuesPdbSequenceNumber array int + 0 +!entry.CTYR.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CTYR.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.CVAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.382100 + "H" "H" 0 1 131072 2 1 0.268100 + "CA" "CX" 0 1 131072 3 6 -0.343800 + "HA" "H1" 0 1 131072 4 1 0.143800 + "CB" "3C" 0 1 131072 5 6 0.194000 + "HB" "HC" 0 1 131072 6 1 0.030800 + "CG1" "CT" 0 1 131072 7 6 -0.306400 + "HG11" "HC" 0 1 131072 8 1 0.083600 + "HG12" "HC" 0 1 131072 9 1 0.083600 + "HG13" "HC" 0 1 131072 10 1 0.083600 + "CG2" "CT" 0 1 131072 11 6 -0.306400 + "HG21" "HC" 0 1 131072 12 1 0.083600 + "HG22" "HC" 0 1 131072 13 1 0.083600 + "HG23" "HC" 0 1 131072 14 1 0.083600 + "C" "C" 0 1 131072 15 6 0.835000 + "O" "O2" 0 1 131072 16 8 -0.817300 + "OXT" "O2" 0 1 131072 17 8 -0.817300 +!entry.CVAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "HC" 0 -1 0.0 + "CG1" "CT" 0 -1 0.0 + "HG11" "HC" 0 -1 0.0 + "HG12" "HC" 0 -1 0.0 + "HG13" "HC" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O2" 0 -1 0.0 + "OXT" "O2" 0 -1 0.0 +!entry.CVAL.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CVAL.unit.childsequence single int + 2 +!entry.CVAL.unit.connect array int + 1 + 0 +!entry.CVAL.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 15 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 + 11 13 1 + 11 14 1 + 15 16 1 + 15 17 1 +!entry.CVAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 +!entry.CVAL.unit.name single str + "CVAL" +!entry.CVAL.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.997712 2.900483 2.489542 + 5.077693 2.753265 2.481244 + 3.716972 3.477628 3.370558 + 3.499630 1.931323 2.516834 + 4.274186 5.009602 1.194577 + 3.973781 5.548460 0.295972 + 3.993559 5.587585 2.075079 + 5.354271 4.863178 1.185788 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 + 6.204455 3.702003 -2.420005E-06 +!entry.CVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 0 0 0 0 0 +!entry.CVAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "CVAL" 1 18 1 "p" 0 +!entry.CVAL.unit.residuesPdbSequenceNumber array int + 0 +!entry.CVAL.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.CVAL.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 +!entry.NHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.463000 + "HN1" "H" 0 1 131072 2 1 0.231500 + "HN2" "H" 0 1 131072 3 1 0.231500 +!entry.NHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "HN1" "H" 0 -1 0.0 + "HN2" "H" 0 -1 0.0 +!entry.NHE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHE.unit.childsequence single int + 2 +!entry.NHE.unit.connect array int + 1 + 0 +!entry.NHE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 +!entry.NHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 +!entry.NHE.unit.name single str + "NHE" +!entry.NHE.unit.positions table dbl x dbl y dbl z + 2.193696 1.597759 -1.607204E-06 + 3.034948 1.038834 -2.739928E-06 + 2.250077 2.606184 -5.030662E-07 +!entry.NHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 1 0 0 0 0 +!entry.NHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NHE" 1 4 1 "p" 0 +!entry.NHE.unit.residuesPdbSequenceNumber array int + 0 +!entry.NHE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHE.unit.velocities table dbl x dbl y dbl z + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NME.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "C" "CT" 0 1 131072 3 6 -0.149000 + "H1" "H1" 0 1 131072 4 1 0.097600 + "H2" "H1" 0 1 131072 5 1 0.097600 + "H3" "H1" 0 1 131072 6 1 0.097600 +!entry.NME.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "C" "CT" 0 -1 0.0 + "H1" "H1" 0 -1 0.0 + "H2" "H1" 0 -1 0.0 + "H3" "H1" 0 -1 0.0 +!entry.NME.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NME.unit.childsequence single int + 2 +!entry.NME.unit.connect array int + 1 + 0 +!entry.NME.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 6 1 +!entry.NME.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 +!entry.NME.unit.name single str + "NME" +!entry.NME.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.211504 3.628554 2.348065E-06 + 4.591993 2.943271 0.889822 + 4.591988 2.943275 -0.889825 +!entry.NME.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 3 0 0 0 0 +!entry.NME.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NME" 1 7 1 "p" 0 +!entry.NME.unit.residuesPdbSequenceNumber array int + 0 +!entry.NME.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NME.unit.velocities table dbl x dbl y dbl z + 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 diff --git a/test/Test_Build/aminont12.lib b/test/Test_Build/aminont12.lib new file mode 100644 index 0000000000..adaac9fa60 --- /dev/null +++ b/test/Test_Build/aminont12.lib @@ -0,0 +1,3303 @@ +!!index array str + "ACE" + "NALA" + "NARG" + "NASN" + "NASP" + "NCYS" + "NCYX" + "NGLN" + "NGLU" + "NGLY" + "NHID" + "NHIE" + "NHIP" + "NILE" + "NLEU" + "NLYS" + "NMET" + "NPHE" + "NPRO" + "NSER" + "NTHR" + "NTRP" + "NTYR" + "NVAL" +!entry.ACE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "H1" "HC" 0 1 131072 1 1 0.112300 + "CH3" "CT" 0 1 131072 2 6 -0.366200 + "H2" "HC" 0 1 131072 3 1 0.112300 + "H3" "HC" 0 1 131072 4 1 0.112300 + "C" "C" 0 1 131072 5 6 0.597200 + "O" "O" 0 1 131072 6 8 -0.567900 +!entry.ACE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "H1" "HC" 0 -1 0.0 + "CH3" "CT" 0 -1 0.0 + "H2" "HC" 0 -1 0.0 + "H3" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ACE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ACE.unit.childsequence single int + 2 +!entry.ACE.unit.connect array int + 0 + 5 +!entry.ACE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 2 3 1 + 2 4 1 + 2 5 1 + 5 6 1 +!entry.ACE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 +!entry.ACE.unit.name single str + "ACE" +!entry.ACE.unit.positions table dbl x dbl y dbl z + 2.000001 1.000000 -1.346410E-06 + 2.000001 2.090000 1.211769E-07 + 1.486264 2.453849 0.889824 + 1.486259 2.453852 -0.889820 + 3.427420 2.640795 -2.981008E-06 + 4.390580 1.877406 -6.602451E-06 +!entry.ACE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 5 0 0 0 0 +!entry.ACE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ACE" 1 7 1 "p" 0 +!entry.ACE.unit.residuesPdbSequenceNumber array int + 0 +!entry.ACE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ACE.unit.velocities table dbl x dbl y dbl z + 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 +!entry.NALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.141400 + "H1" "H" 0 1 131072 2 1 0.199700 + "H2" "H" 0 1 131072 3 1 0.199700 + "H3" "H" 0 1 131072 4 1 0.199700 + "CA" "CX" 0 1 131072 5 6 0.096200 + "HA" "HP" 0 1 131072 6 1 0.088900 + "CB" "CT" 0 1 131072 7 6 -0.059700 + "HB1" "HC" 0 1 131072 8 1 0.030000 + "HB2" "HC" 0 1 131072 9 1 0.030000 + "HB3" "HC" 0 1 131072 10 1 0.030000 + "C" "C" 0 1 131072 11 6 0.616300 + "O" "O" 0 1 131072 12 8 -0.572200 +!entry.NALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB1" "HC" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NALA.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NALA.unit.childsequence single int + 2 +!entry.NALA.unit.connect array int + 0 + 11 +!entry.NALA.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 +!entry.NALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 +!entry.NALA.unit.name single str + "NALA" +!entry.NALA.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 3.877484 3.115795 2.131197 + 4.075059 4.623017 1.205786 + 2.496995 3.801075 1.241379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 11 0 0 0 0 +!entry.NALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NALA" 1 13 1 "p" 0 +!entry.NALA.unit.residuesPdbSequenceNumber array int + 0 +!entry.NALA.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NALA.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.130500 + "H1" "H" 0 1 131072 2 1 0.208300 + "H2" "H" 0 1 131072 3 1 0.208300 + "H3" "H" 0 1 131072 4 1 0.208300 + "CA" "CX" 0 1 131072 5 6 -0.022300 + "HA" "HP" 0 1 131072 6 1 0.124200 + "CB" "C8" 0 1 131072 7 6 0.011800 + "HB2" "HC" 0 1 131072 8 1 0.022600 + "HB3" "HC" 0 1 131072 9 1 0.022600 + "CG" "C8" 0 1 131072 10 6 0.023600 + "HG2" "HC" 0 1 131072 11 1 0.030900 + "HG3" "HC" 0 1 131072 12 1 0.030900 + "CD" "C8" 0 1 131072 13 6 0.093500 + "HD2" "H1" 0 1 131072 14 1 0.052700 + "HD3" "H1" 0 1 131072 15 1 0.052700 + "NE" "N2" 0 1 131072 16 7 -0.565000 + "HE" "H" 0 1 131072 17 1 0.359200 + "CZ" "CA" 0 1 131072 18 6 0.828100 + "NH1" "N2" 0 1 131072 19 7 -0.869300 + "HH11" "H" 0 1 131072 20 1 0.449400 + "HH12" "H" 0 1 131072 21 1 0.449400 + "NH2" "N2" 0 1 131072 22 7 -0.869300 + "HH21" "H" 0 1 131072 23 1 0.449400 + "HH22" "H" 0 1 131072 24 1 0.449400 + "C" "C" 0 1 131072 25 6 0.721400 + "O" "O" 0 1 131072 26 8 -0.601300 +!entry.NARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "C8" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C8" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C8" 0 -1 0.0 + "HD2" "H1" 0 -1 0.0 + "HD3" "H1" 0 -1 0.0 + "NE" "N2" 0 -1 0.0 + "HE" "H" 0 -1 0.0 + "CZ" "CA" 0 -1 0.0 + "NH1" "N2" 0 -1 0.0 + "HH11" "H" 0 -1 0.0 + "HH12" "H" 0 -1 0.0 + "NH2" "N2" 0 -1 0.0 + "HH21" "H" 0 -1 0.0 + "HH22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NARG.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NARG.unit.childsequence single int + 2 +!entry.NARG.unit.connect array int + 0 + 25 +!entry.NARG.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 25 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 10 13 1 + 13 14 1 + 13 15 1 + 13 16 1 + 16 17 1 + 16 18 1 + 18 19 1 + 18 22 1 + 19 20 1 + 19 21 1 + 22 23 1 + 22 24 1 + 25 26 1 +!entry.NARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 + "R" 1 "A" 25 + "R" 1 "A" 26 +!entry.NARG.unit.name single str + "NARG" +!entry.NARG.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.540320 7.142723 2.424483 + 5.151805 7.375492 1.655065 + 4.364284 8.040989 3.389382 + 3.575026 7.807606 4.434133 + 3.088949 6.925423 4.508848 + 3.465367 8.513631 5.147998 + 5.006254 9.201287 3.286991 + 5.604855 9.375325 2.492329 + 4.892216 9.903045 4.004368 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 25 0 0 0 0 +!entry.NARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NARG" 1 27 1 "p" 0 +!entry.NARG.unit.residuesPdbSequenceNumber array int + 0 +!entry.NARG.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NARG.unit.velocities table dbl x dbl y dbl z + 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.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 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.0 0.0 + 0.0 0.0 0.0 +!entry.NASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.180100 + "H1" "H" 0 1 131072 2 1 0.192100 + "H2" "H" 0 1 131072 3 1 0.192100 + "H3" "H" 0 1 131072 4 1 0.192100 + "CA" "CX" 0 1 131072 5 6 0.036800 + "HA" "HP" 0 1 131072 6 1 0.123100 + "CB" "2C" 0 1 131072 7 6 -0.028300 + "HB2" "HC" 0 1 131072 8 1 0.051500 + "HB3" "HC" 0 1 131072 9 1 0.051500 + "CG" "C" 0 1 131072 10 6 0.583300 + "OD1" "O" 0 1 131072 11 8 -0.574400 + "ND2" "N" 0 1 131072 12 7 -0.863400 + "HD21" "H" 0 1 131072 13 1 0.409700 + "HD22" "H" 0 1 131072 14 1 0.409700 + "C" "C" 0 1 131072 15 6 0.616300 + "O" "O" 0 1 131072 16 8 -0.572200 +!entry.NASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C" 0 -1 0.0 + "OD1" "O" 0 -1 0.0 + "ND2" "N" 0 -1 0.0 + "HD21" "H" 0 -1 0.0 + "HD22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NASN.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NASN.unit.childsequence single int + 2 +!entry.NASN.unit.connect array int + 0 + 15 +!entry.NASN.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 15 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 12 13 1 + 12 14 1 + 15 16 1 +!entry.NASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 +!entry.NASN.unit.name single str + "NASN" +!entry.NASN.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.253700 5.017112 1.232144 + 5.005299 5.340406 0.315072 + 3.984885 5.817909 2.265917 + 4.408015 6.733702 2.314743 + 3.359611 5.504297 2.994464 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 15 0 0 0 0 +!entry.NASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NASN" 1 17 1 "p" 0 +!entry.NASN.unit.residuesPdbSequenceNumber array int + 0 +!entry.NASN.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NASN.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.NASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.078200 + "H1" "H" 0 1 131072 2 1 0.220000 + "H2" "H" 0 1 131072 3 1 0.220000 + "H3" "H" 0 1 131072 4 1 0.220000 + "CA" "CX" 0 1 131072 5 6 0.029200 + "HA" "HP" 0 1 131072 6 1 0.114100 + "CB" "2C" 0 1 131072 7 6 -0.023500 + "HB2" "HC" 0 1 131072 8 1 -0.016900 + "HB3" "HC" 0 1 131072 9 1 -0.016900 + "CG" "CO" 0 1 131072 10 6 0.819400 + "OD1" "O2" 0 1 131072 11 8 -0.808400 + "OD2" "O2" 0 1 131072 12 8 -0.808400 + "C" "C" 0 1 131072 13 6 0.562100 + "O" "O" 0 1 131072 14 8 -0.588900 +!entry.NASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CO" 0 -1 0.0 + "OD1" "O2" 0 -1 0.0 + "OD2" "O2" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NASP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NASP.unit.childsequence single int + 2 +!entry.NASP.unit.connect array int + 0 + 13 +!entry.NASP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 13 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 13 14 1 +!entry.NASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 +!entry.NASP.unit.name single str + "NASP" +!entry.NASP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.275101 5.011380 1.194527 + 3.669108 5.954940 0.620011 + 5.407731 5.091879 1.740667 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 13 0 0 0 0 +!entry.NASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NASP" 1 15 1 "p" 0 +!entry.NASP.unit.residuesPdbSequenceNumber array int + 0 +!entry.NASP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NASP.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.NCYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.132500 + "H1" "H" 0 1 131072 2 1 0.202300 + "H2" "H" 0 1 131072 3 1 0.202300 + "H3" "H" 0 1 131072 4 1 0.202300 + "CA" "CX" 0 1 131072 5 6 0.092700 + "HA" "HP" 0 1 131072 6 1 0.141100 + "CB" "2C" 0 1 131072 7 6 -0.119500 + "HB2" "H1" 0 1 131072 8 1 0.118800 + "HB3" "H1" 0 1 131072 9 1 0.118800 + "SG" "SH" 0 1 131072 10 16 -0.329800 + "HG" "HS" 0 1 131072 11 1 0.197500 + "C" "C" 0 1 131072 12 6 0.612300 + "O" "O" 0 1 131072 13 8 -0.571300 +!entry.NCYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "SG" "SH" 0 -1 0.0 + "HG" "HS" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NCYS.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NCYS.unit.childsequence single int + 2 +!entry.NCYS.unit.connect array int + 0 + 12 +!entry.NCYS.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 12 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 12 13 1 +!entry.NCYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 +!entry.NCYS.unit.name single str + "NCYS" +!entry.NCYS.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.309573 5.303523 1.366036 + 3.725392 5.622018 2.517640 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 12 0 0 0 0 +!entry.NCYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NCYS" 1 14 1 "p" 0 +!entry.NCYS.unit.residuesPdbSequenceNumber array int + 0 +!entry.NCYS.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NCYS.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.NCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.206900 + "H1" "H" 0 1 131072 2 1 0.181500 + "H2" "H" 0 1 131072 3 1 0.181500 + "H3" "H" 0 1 131072 4 1 0.181500 + "CA" "CX" 0 1 131072 5 6 0.105500 + "HA" "HP" 0 1 131072 6 1 0.092200 + "CB" "2C" 0 1 131072 7 6 -0.027700 + "HB2" "H1" 0 1 131072 8 1 0.068000 + "HB3" "H1" 0 1 131072 9 1 0.068000 + "SG" "S" 0 1 131072 10 16 -0.098400 + "C" "C" 0 1 131072 11 6 0.612300 + "O" "O" 0 1 131072 12 8 -0.571300 +!entry.NCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "SG" "S" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NCYX.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NCYX.unit.childsequence single int + 2 +!entry.NCYX.unit.connect array int + 0 + 11 +!entry.NCYX.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 +!entry.NCYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 +!entry.NCYX.unit.name single str + "NCYX" +!entry.NCYX.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.309573 5.303523 1.366036 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 11 10 0 0 0 +!entry.NCYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NCYX" 1 13 1 "p" 0 +!entry.NCYX.unit.residuesPdbSequenceNumber array int + 0 +!entry.NCYX.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NCYX.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NGLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.149300 + "H1" "H" 0 1 131072 2 1 0.199600 + "H2" "H" 0 1 131072 3 1 0.199600 + "H3" "H" 0 1 131072 4 1 0.199600 + "CA" "CX" 0 1 131072 5 6 0.053600 + "HA" "HP" 0 1 131072 6 1 0.101500 + "CB" "2C" 0 1 131072 7 6 0.065100 + "HB2" "HC" 0 1 131072 8 1 0.005000 + "HB3" "HC" 0 1 131072 9 1 0.005000 + "CG" "2C" 0 1 131072 10 6 -0.090300 + "HG2" "HC" 0 1 131072 11 1 0.033100 + "HG3" "HC" 0 1 131072 12 1 0.033100 + "CD" "C" 0 1 131072 13 6 0.735400 + "OE1" "O" 0 1 131072 14 8 -0.613300 + "NE2" "N" 0 1 131072 15 7 -1.003100 + "HE21" "H" 0 1 131072 16 1 0.442900 + "HE22" "H" 0 1 131072 17 1 0.442900 + "C" "C" 0 1 131072 18 6 0.612300 + "O" "O" 0 1 131072 19 8 -0.571300 +!entry.NGLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C" 0 -1 0.0 + "OE1" "O" 0 -1 0.0 + "NE2" "N" 0 -1 0.0 + "HE21" "H" 0 -1 0.0 + "HE22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NGLN.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NGLN.unit.childsequence single int + 2 +!entry.NGLN.unit.connect array int + 0 + 18 +!entry.NGLN.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 18 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 10 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 15 17 1 + 18 19 1 +!entry.NGLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 +!entry.NGLN.unit.name single str + "NGLN" +!entry.NGLN.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.906976 5.848443 2.410302 + 3.138962 5.408349 3.262893 + 4.458856 7.061523 2.488333 + 4.248434 7.659045 3.274966 + 5.084281 7.376210 1.760379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 18 0 0 0 0 +!entry.NGLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NGLN" 1 20 1 "p" 0 +!entry.NGLN.unit.residuesPdbSequenceNumber array int + 0 +!entry.NGLN.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NGLN.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NGLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.001700 + "H1" "H" 0 1 131072 2 1 0.239100 + "H2" "H" 0 1 131072 3 1 0.239100 + "H3" "H" 0 1 131072 4 1 0.239100 + "CA" "CX" 0 1 131072 5 6 0.058800 + "HA" "HP" 0 1 131072 6 1 0.120200 + "CB" "2C" 0 1 131072 7 6 0.090900 + "HB2" "HC" 0 1 131072 8 1 -0.023200 + "HB3" "HC" 0 1 131072 9 1 -0.023200 + "CG" "2C" 0 1 131072 10 6 -0.023600 + "HG2" "HC" 0 1 131072 11 1 -0.031500 + "HG3" "HC" 0 1 131072 12 1 -0.031500 + "CD" "CO" 0 1 131072 13 6 0.808700 + "OE1" "O2" 0 1 131072 14 8 -0.818900 + "OE2" "O2" 0 1 131072 15 8 -0.818900 + "C" "C" 0 1 131072 16 6 0.562100 + "O" "O" 0 1 131072 17 8 -0.588900 +!entry.NGLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "CO" 0 -1 0.0 + "OE1" "O2" 0 -1 0.0 + "OE2" "O2" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NGLU.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NGLU.unit.childsequence single int + 2 +!entry.NGLU.unit.connect array int + 0 + 16 +!entry.NGLU.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 16 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 10 13 1 + 13 14 1 + 13 15 1 + 16 17 1 +!entry.NGLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 +!entry.NGLU.unit.name single str + "NGLU" +!entry.NGLU.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.267328 4.996267 1.194946 + 5.347413 4.849843 1.186158 + 3.966923 5.535124 0.296342 + 3.873732 5.805369 2.428706 + 4.594590 5.679012 3.454376 + 2.855965 6.542070 2.333721 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 16 0 0 0 0 +!entry.NGLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NGLU" 1 18 1 "p" 0 +!entry.NGLU.unit.residuesPdbSequenceNumber array int + 0 +!entry.NGLU.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NGLU.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 +!entry.NGLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.294300 + "H1" "H" 0 1 131072 2 1 0.164200 + "H2" "H" 0 1 131072 3 1 0.164200 + "H3" "H" 0 1 131072 4 1 0.164200 + "CA" "CX" 0 1 131072 5 6 -0.010000 + "HA2" "HP" 0 1 131072 6 1 0.089500 + "HA3" "HP" 0 1 131072 7 1 0.089500 + "C" "C" 0 1 131072 8 6 0.616300 + "O" "O" 0 1 131072 9 8 -0.572200 +!entry.NGLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA2" "HP" 0 -1 0.0 + "HA3" "HP" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NGLY.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NGLY.unit.childsequence single int + 2 +!entry.NGLY.unit.connect array int + 0 + 8 +!entry.NGLY.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 +!entry.NGLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 +!entry.NGLY.unit.name single str + "NGLY" +!entry.NGLY.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.671668 3.400125 0.889824 + 5.483710 2.686702 -4.438857E-06 + 5.993369 1.568360 -8.469843E-06 +!entry.NGLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 8 0 0 0 0 +!entry.NGLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NGLY" 1 10 1 "p" 0 +!entry.NGLY.unit.residuesPdbSequenceNumber array int + 0 +!entry.NGLY.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NGLY.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 +!entry.NHID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.154200 + "H1" "H" 0 1 131072 2 1 0.196300 + "H2" "H" 0 1 131072 3 1 0.196300 + "H3" "H" 0 1 131072 4 1 0.196300 + "CA" "CX" 0 1 131072 5 6 0.096400 + "HA" "HP" 0 1 131072 6 1 0.095800 + "CB" "CT" 0 1 131072 7 6 0.025900 + "HB2" "HC" 0 1 131072 8 1 0.020900 + "HB3" "HC" 0 1 131072 9 1 0.020900 + "CG" "CC" 0 1 131072 10 6 -0.039900 + "ND1" "NA" 0 1 131072 11 7 -0.381900 + "HD1" "H" 0 1 131072 12 1 0.363200 + "CE1" "CR" 0 1 131072 13 6 0.212700 + "HE1" "H5" 0 1 131072 14 1 0.138500 + "NE2" "NB" 0 1 131072 15 7 -0.571100 + "CD2" "CV" 0 1 131072 16 6 0.104600 + "HD2" "H4" 0 1 131072 17 1 0.129900 + "C" "C" 0 1 131072 18 6 0.612300 + "O" "O" 0 1 131072 19 8 -0.571300 +!entry.NHID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NA" 0 -1 0.0 + "HD1" "H" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NB" 0 -1 0.0 + "CD2" "CV" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NHID.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHID.unit.childsequence single int + 2 +!entry.NHID.unit.connect array int + 0 + 18 +!entry.NHID.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 18 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 16 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 16 17 1 + 18 19 1 +!entry.NHID.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 +!entry.NHID.unit.name single str + "NHID" +!entry.NHID.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 3.339725 5.691913 3.169805 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 18 0 0 0 0 +!entry.NHID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NHID" 1 20 1 "p" 0 +!entry.NHID.unit.residuesPdbSequenceNumber array int + 0 +!entry.NHID.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHID.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NHIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.147200 + "H1" "H" 0 1 131072 2 1 0.201600 + "H2" "H" 0 1 131072 3 1 0.201600 + "H3" "H" 0 1 131072 4 1 0.201600 + "CA" "CX" 0 1 131072 5 6 0.023600 + "HA" "HP" 0 1 131072 6 1 0.138000 + "CB" "CT" 0 1 131072 7 6 0.048900 + "HB2" "HC" 0 1 131072 8 1 0.022300 + "HB3" "HC" 0 1 131072 9 1 0.022300 + "CG" "CC" 0 1 131072 10 6 0.174000 + "ND1" "NB" 0 1 131072 11 7 -0.557900 + "CE1" "CR" 0 1 131072 12 6 0.180400 + "HE1" "H5" 0 1 131072 13 1 0.139700 + "NE2" "NA" 0 1 131072 14 7 -0.278100 + "HE2" "H" 0 1 131072 15 1 0.332400 + "CD2" "CW" 0 1 131072 16 6 -0.234900 + "HD2" "H4" 0 1 131072 17 1 0.196300 + "C" "C" 0 1 131072 18 6 0.612300 + "O" "O" 0 1 131072 19 8 -0.571300 +!entry.NHIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NB" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NA" 0 -1 0.0 + "HE2" "H" 0 -1 0.0 + "CD2" "CW" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NHIE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHIE.unit.childsequence single int + 2 +!entry.NHIE.unit.connect array int + 0 + 18 +!entry.NHIE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 18 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 16 1 + 11 12 1 + 12 13 1 + 12 14 1 + 14 15 1 + 14 16 1 + 16 17 1 + 18 19 1 +!entry.NHIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 +!entry.NHIE.unit.name single str + "NHIE" +!entry.NHIE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.896297 7.605085 0.676854 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 18 0 0 0 0 +!entry.NHIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NHIE" 1 20 1 "p" 0 +!entry.NHIE.unit.residuesPdbSequenceNumber array int + 0 +!entry.NHIE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHIE.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NHIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.256000 + "H1" "H" 0 1 131072 2 1 0.170400 + "H2" "H" 0 1 131072 3 1 0.170400 + "H3" "H" 0 1 131072 4 1 0.170400 + "CA" "CX" 0 1 131072 5 6 0.058100 + "HA" "HP" 0 1 131072 6 1 0.104700 + "CB" "CT" 0 1 131072 7 6 0.048400 + "HB2" "HC" 0 1 131072 8 1 0.053100 + "HB3" "HC" 0 1 131072 9 1 0.053100 + "CG" "CC" 0 1 131072 10 6 -0.023600 + "ND1" "NA" 0 1 131072 11 7 -0.151000 + "HD1" "H" 0 1 131072 12 1 0.382100 + "CE1" "CR" 0 1 131072 13 6 -0.001100 + "HE1" "H5" 0 1 131072 14 1 0.264500 + "NE2" "NA" 0 1 131072 15 7 -0.173900 + "HE2" "H" 0 1 131072 16 1 0.392100 + "CD2" "CW" 0 1 131072 17 6 -0.143300 + "HD2" "H4" 0 1 131072 18 1 0.249500 + "C" "C" 0 1 131072 19 6 0.721400 + "O" "O" 0 1 131072 20 8 -0.601300 +!entry.NHIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CC" 0 -1 0.0 + "ND1" "NA" 0 -1 0.0 + "HD1" "H" 0 -1 0.0 + "CE1" "CR" 0 -1 0.0 + "HE1" "H5" 0 -1 0.0 + "NE2" "NA" 0 -1 0.0 + "HE2" "H" 0 -1 0.0 + "CD2" "CW" 0 -1 0.0 + "HD2" "H4" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NHIP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHIP.unit.childsequence single int + 2 +!entry.NHIP.unit.connect array int + 0 + 19 +!entry.NHIP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 19 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 17 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 15 17 1 + 17 18 1 + 19 20 1 +!entry.NHIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 +!entry.NHIP.unit.name single str + "NHIP" +!entry.NHIP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.942782 5.885086 2.382972 + 3.339725 5.691913 3.169805 + 4.624274 6.997642 2.182500 + 4.563048 7.811875 2.904563 + 5.294011 6.891451 1.061663 + 5.896297 7.605085 0.676854 + 5.058974 5.678868 0.492453 + 5.537741 5.417846 -0.451343 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 19 0 0 0 0 +!entry.NHIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NHIP" 1 21 1 "p" 0 +!entry.NHIP.unit.residuesPdbSequenceNumber array int + 0 +!entry.NHIP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NHIP.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.031100 + "H1" "H" 0 1 131072 2 1 0.232900 + "H2" "H" 0 1 131072 3 1 0.232900 + "H3" "H" 0 1 131072 4 1 0.232900 + "CA" "CX" 0 1 131072 5 6 0.025700 + "HA" "HP" 0 1 131072 6 1 0.103100 + "CB" "3C" 0 1 131072 7 6 0.188500 + "HB" "HC" 0 1 131072 8 1 0.021300 + "CG2" "CT" 0 1 131072 9 6 -0.372000 + "HG21" "HC" 0 1 131072 10 1 0.094700 + "HG22" "HC" 0 1 131072 11 1 0.094700 + "HG23" "HC" 0 1 131072 12 1 0.094700 + "CG1" "2C" 0 1 131072 13 6 -0.038700 + "HG12" "HC" 0 1 131072 14 1 0.020100 + "HG13" "HC" 0 1 131072 15 1 0.020100 + "CD1" "CT" 0 1 131072 16 6 -0.090800 + "HD11" "HC" 0 1 131072 17 1 0.022600 + "HD12" "HC" 0 1 131072 18 1 0.022600 + "HD13" "HC" 0 1 131072 19 1 0.022600 + "C" "C" 0 1 131072 20 6 0.612300 + "O" "O" 0 1 131072 21 8 -0.571300 +!entry.NILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "HC" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "CG1" "2C" 0 -1 0.0 + "HG12" "HC" 0 -1 0.0 + "HG13" "HC" 0 -1 0.0 + "CD1" "CT" 0 -1 0.0 + "HD11" "HC" 0 -1 0.0 + "HD12" "HC" 0 -1 0.0 + "HD13" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NILE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NILE.unit.childsequence single int + 2 +!entry.NILE.unit.connect array int + 0 + 20 +!entry.NILE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 20 1 + 7 8 1 + 7 9 1 + 7 13 1 + 9 10 1 + 9 11 1 + 9 12 1 + 13 14 1 + 13 15 1 + 13 16 1 + 16 17 1 + 16 18 1 + 16 19 1 + 20 21 1 +!entry.NILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 +!entry.NILE.unit.name single str + "NILE" +!entry.NILE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.552136 3.620733 1.245168 + 2.470128 3.752486 1.245640 + 3.970045 2.845728 2.490296 + 5.052053 2.713974 2.490763 + 3.671561 3.399208 3.380615 + 3.485650 1.869275 2.490737 + 4.230204 4.986694 1.245169 + 3.931820 5.541027 0.355348 + 5.312310 4.855746 1.245164 + 3.812294 5.761632 2.490339 + 4.110777 5.208104 3.380628 + 4.296689 6.738085 2.490833 + 2.730286 5.893383 2.490813 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 20 0 0 0 0 +!entry.NILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NILE" 1 22 1 "p" 0 +!entry.NILE.unit.residuesPdbSequenceNumber array int + 0 +!entry.NILE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NILE.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.NLEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.101000 + "H1" "H" 0 1 131072 2 1 0.214800 + "H2" "H" 0 1 131072 3 1 0.214800 + "H3" "H" 0 1 131072 4 1 0.214800 + "CA" "CX" 0 1 131072 5 6 0.010400 + "HA" "HP" 0 1 131072 6 1 0.105300 + "CB" "2C" 0 1 131072 7 6 -0.024400 + "HB2" "HC" 0 1 131072 8 1 0.025600 + "HB3" "HC" 0 1 131072 9 1 0.025600 + "CG" "3C" 0 1 131072 10 6 0.342100 + "HG" "HC" 0 1 131072 11 1 -0.038000 + "CD1" "CT" 0 1 131072 12 6 -0.410600 + "HD11" "HC" 0 1 131072 13 1 0.098000 + "HD12" "HC" 0 1 131072 14 1 0.098000 + "HD13" "HC" 0 1 131072 15 1 0.098000 + "CD2" "CT" 0 1 131072 16 6 -0.410400 + "HD21" "HC" 0 1 131072 17 1 0.098000 + "HD22" "HC" 0 1 131072 18 1 0.098000 + "HD23" "HC" 0 1 131072 19 1 0.098000 + "C" "C" 0 1 131072 20 6 0.612300 + "O" "O" 0 1 131072 21 8 -0.571300 +!entry.NLEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "3C" 0 -1 0.0 + "HG" "HC" 0 -1 0.0 + "CD1" "CT" 0 -1 0.0 + "HD11" "HC" 0 -1 0.0 + "HD12" "HC" 0 -1 0.0 + "HD13" "HC" 0 -1 0.0 + "CD2" "CT" 0 -1 0.0 + "HD21" "HC" 0 -1 0.0 + "HD22" "HC" 0 -1 0.0 + "HD23" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NLEU.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NLEU.unit.childsequence single int + 2 +!entry.NLEU.unit.connect array int + 0 + 20 +!entry.NLEU.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 20 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 10 16 1 + 12 13 1 + 12 14 1 + 12 15 1 + 16 17 1 + 16 18 1 + 16 19 1 + 20 21 1 +!entry.NLEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 +!entry.NLEU.unit.name single str + "NLEU" +!entry.NLEU.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.853429 5.762895 -0.062857 + 2.773449 5.910113 -0.054557 + 4.351513 6.732052 -0.090203 + 4.134159 5.185704 -0.943846 + 3.881105 5.817645 2.426721 + 4.181626 5.279602 3.325774 + 4.379198 6.786825 2.400363 + 2.801135 5.964881 2.435959 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 20 0 0 0 0 +!entry.NLEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NLEU" 1 22 1 "p" 0 +!entry.NLEU.unit.residuesPdbSequenceNumber array int + 0 +!entry.NLEU.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NLEU.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.NLYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.096600 + "H1" "H" 0 1 131072 2 1 0.216500 + "H2" "H" 0 1 131072 3 1 0.216500 + "H3" "H" 0 1 131072 4 1 0.216500 + "CA" "CX" 0 1 131072 5 6 -0.001500 + "HA" "HP" 0 1 131072 6 1 0.118000 + "CB" "C8" 0 1 131072 7 6 0.021200 + "HB2" "HC" 0 1 131072 8 1 0.028300 + "HB3" "HC" 0 1 131072 9 1 0.028300 + "CG" "C8" 0 1 131072 10 6 -0.004800 + "HG2" "HC" 0 1 131072 11 1 0.012100 + "HG3" "HC" 0 1 131072 12 1 0.012100 + "CD" "C8" 0 1 131072 13 6 -0.060800 + "HD2" "HC" 0 1 131072 14 1 0.063300 + "HD3" "HC" 0 1 131072 15 1 0.063300 + "CE" "C8" 0 1 131072 16 6 -0.018100 + "HE2" "HP" 0 1 131072 17 1 0.117100 + "HE3" "HP" 0 1 131072 18 1 0.117100 + "NZ" "N3" 0 1 131072 19 7 -0.376400 + "HZ1" "H" 0 1 131072 20 1 0.338200 + "HZ2" "H" 0 1 131072 21 1 0.338200 + "HZ3" "H" 0 1 131072 22 1 0.338200 + "C" "C" 0 1 131072 23 6 0.721400 + "O" "O" 0 1 131072 24 8 -0.601300 +!entry.NLYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "C8" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C8" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C8" 0 -1 0.0 + "HD2" "HC" 0 -1 0.0 + "HD3" "HC" 0 -1 0.0 + "CE" "C8" 0 -1 0.0 + "HE2" "HP" 0 -1 0.0 + "HE3" "HP" 0 -1 0.0 + "NZ" "N3" 0 -1 0.0 + "HZ1" "H" 0 -1 0.0 + "HZ2" "H" 0 -1 0.0 + "HZ3" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NLYS.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NLYS.unit.childsequence single int + 2 +!entry.NLYS.unit.connect array int + 0 + 23 +!entry.NLYS.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 23 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 10 13 1 + 13 14 1 + 13 15 1 + 13 16 1 + 16 17 1 + 16 18 1 + 16 19 1 + 19 20 1 + 19 21 1 + 19 22 1 + 23 24 1 +!entry.NLYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 +!entry.NLYS.unit.name single str + "NLYS" +!entry.NLYS.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.578325 7.173410 2.389153 + 5.658410 7.026987 2.380363 + 4.277917 7.712267 1.490550 + 4.199422 7.952309 3.576860 + 4.478085 7.453366 4.409628 + 4.661186 8.850226 3.551979 + 3.198675 8.088466 3.584971 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 23 0 0 0 0 +!entry.NLYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NLYS" 1 25 1 "p" 0 +!entry.NLYS.unit.residuesPdbSequenceNumber array int + 0 +!entry.NLYS.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NLYS.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.NMET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.159200 + "H1" "H" 0 1 131072 2 1 0.198400 + "H2" "H" 0 1 131072 3 1 0.198400 + "H3" "H" 0 1 131072 4 1 0.198400 + "CA" "CX" 0 1 131072 5 6 0.022100 + "HA" "HP" 0 1 131072 6 1 0.111600 + "CB" "2C" 0 1 131072 7 6 0.086500 + "HB2" "HC" 0 1 131072 8 1 0.012500 + "HB3" "HC" 0 1 131072 9 1 0.012500 + "CG" "2C" 0 1 131072 10 6 0.033400 + "HG2" "H1" 0 1 131072 11 1 0.029200 + "HG3" "H1" 0 1 131072 12 1 0.029200 + "SD" "S" 0 1 131072 13 16 -0.277400 + "CE" "CT" 0 1 131072 14 6 -0.034100 + "HE1" "H1" 0 1 131072 15 1 0.059700 + "HE2" "H1" 0 1 131072 16 1 0.059700 + "HE3" "H1" 0 1 131072 17 1 0.059700 + "C" "C" 0 1 131072 18 6 0.612300 + "O" "O" 0 1 131072 19 8 -0.571300 +!entry.NMET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "2C" 0 -1 0.0 + "HG2" "H1" 0 -1 0.0 + "HG3" "H1" 0 -1 0.0 + "SD" "S" 0 -1 0.0 + "CE" "CT" 0 -1 0.0 + "HE1" "H1" 0 -1 0.0 + "HE2" "H1" 0 -1 0.0 + "HE3" "H1" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NMET.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NMET.unit.childsequence single int + 2 +!entry.NMET.unit.connect array int + 0 + 18 +!entry.NMET.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 18 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 10 13 1 + 13 14 1 + 14 15 1 + 14 16 1 + 14 17 1 + 18 19 1 +!entry.NMET.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 +!entry.NMET.unit.name single str + "NMET" +!entry.NMET.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.817309 5.981266 2.651708 + 4.753212 7.463128 2.340949 + 4.433582 7.904044 1.396741 + 4.585907 8.175299 3.148985 + 5.814074 7.218763 2.286554 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 18 0 0 0 0 +!entry.NMET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NMET" 1 20 1 "p" 0 +!entry.NMET.unit.residuesPdbSequenceNumber array int + 0 +!entry.NMET.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NMET.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.NPHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.173700 + "H1" "H" 0 1 131072 2 1 0.192100 + "H2" "H" 0 1 131072 3 1 0.192100 + "H3" "H" 0 1 131072 4 1 0.192100 + "CA" "CX" 0 1 131072 5 6 0.073300 + "HA" "HP" 0 1 131072 6 1 0.104100 + "CB" "CT" 0 1 131072 7 6 0.033000 + "HB2" "HC" 0 1 131072 8 1 0.010400 + "HB3" "HC" 0 1 131072 9 1 0.010400 + "CG" "CA" 0 1 131072 10 6 0.003100 + "CD1" "CA" 0 1 131072 11 6 -0.139200 + "HD1" "HA" 0 1 131072 12 1 0.137400 + "CE1" "CA" 0 1 131072 13 6 -0.160200 + "HE1" "HA" 0 1 131072 14 1 0.143300 + "CZ" "CA" 0 1 131072 15 6 -0.120800 + "HZ" "HA" 0 1 131072 16 1 0.132900 + "CE2" "CA" 0 1 131072 17 6 -0.160300 + "HE2" "HA" 0 1 131072 18 1 0.143300 + "CD2" "CA" 0 1 131072 19 6 -0.139100 + "HD2" "HA" 0 1 131072 20 1 0.137400 + "C" "C" 0 1 131072 21 6 0.612300 + "O" "O" 0 1 131072 22 8 -0.571300 +!entry.NPHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CA" 0 -1 0.0 + "CD1" "CA" 0 -1 0.0 + "HD1" "HA" 0 -1 0.0 + "CE1" "CA" 0 -1 0.0 + "HE1" "HA" 0 -1 0.0 + "CZ" "CA" 0 -1 0.0 + "HZ" "HA" 0 -1 0.0 + "CE2" "CA" 0 -1 0.0 + "HE2" "HA" 0 -1 0.0 + "CD2" "CA" 0 -1 0.0 + "HD2" "HA" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NPHE.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NPHE.unit.childsequence single int + 2 +!entry.NPHE.unit.connect array int + 0 + 21 +!entry.NPHE.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 21 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 19 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 15 17 1 + 17 18 1 + 17 19 1 + 19 20 1 + 21 22 1 +!entry.NPHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 +!entry.NPHE.unit.name single str + "NPHE" +!entry.NPHE.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 3.911613 5.857250 2.409890 + 3.236123 5.513843 3.193398 + 4.490014 7.129513 2.492354 + 4.264853 7.776651 3.340066 + 5.357616 7.570591 1.486016 + 5.807943 8.561138 1.550220 + 5.646818 6.739407 0.397211 + 6.322309 7.082817 -0.386295 + 5.068419 5.467143 0.314744 + 5.293584 4.820007 -0.532968 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 21 0 0 0 0 +!entry.NPHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NPHE" 1 23 1 "p" 0 +!entry.NPHE.unit.residuesPdbSequenceNumber array int + 0 +!entry.NPHE.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NPHE.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.NPRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 -0.202000 + "H2" "H" 0 1 131072 2 1 0.312000 + "H3" "H" 0 1 131072 3 1 0.312000 + "CD" "CT" 0 1 131072 4 6 -0.012000 + "HD2" "HP" 0 1 131072 5 1 0.100000 + "HD3" "HP" 0 1 131072 6 1 0.100000 + "CG" "CT" 0 1 131072 7 6 -0.121000 + "HG2" "HC" 0 1 131072 8 1 0.100000 + "HG3" "HC" 0 1 131072 9 1 0.100000 + "CB" "CT" 0 1 131072 10 6 -0.115000 + "HB2" "HC" 0 1 131072 11 1 0.100000 + "HB3" "HC" 0 1 131072 12 1 0.100000 + "CA" "CX" 0 1 131072 13 6 0.100000 + "HA" "HP" 0 1 131072 14 1 0.100000 + "C" "C" 0 1 131072 15 6 0.526000 + "O" "O" 0 1 131072 16 8 -0.500000 +!entry.NPRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CD" "CT" 0 -1 0.0 + "HD2" "HP" 0 -1 0.0 + "HD3" "HP" 0 -1 0.0 + "CG" "CT" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NPRO.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NPRO.unit.childsequence single int + 2 +!entry.NPRO.unit.connect array int + 0 + 15 +!entry.NPRO.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 13 1 + 4 5 1 + 4 6 1 + 4 7 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 12 1 + 10 13 1 + 13 14 1 + 13 15 1 + 15 16 1 +!entry.NPRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 +!entry.NPRO.unit.name single str + "NPRO" +!entry.NPRO.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 4.293514 0.460336 0.080119 + 4.408169 0.002209 -0.902263 + 3.942023 -0.287867 0.790574 + 5.543321 1.147470 0.544693 + 6.406715 0.710627 0.042879 + 5.648273 1.022228 1.622376 + 5.375453 2.604421 0.185227 + 5.977268 2.833902 -0.694123 + 5.701345 3.225015 1.019947 + 3.941704 2.857529 -0.104508 + 3.623882 3.477056 0.734106 + 3.517842 3.515620 -1.409783 + 2.762837 2.933549 -2.185412 +!entry.NPRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 15 0 0 0 0 +!entry.NPRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NPRO" 1 17 1 "p" 0 +!entry.NPRO.unit.residuesPdbSequenceNumber array int + 0 +!entry.NPRO.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NPRO.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.NSER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.184900 + "H1" "H" 0 1 131072 2 1 0.189800 + "H2" "H" 0 1 131072 3 1 0.189800 + "H3" "H" 0 1 131072 4 1 0.189800 + "CA" "CX" 0 1 131072 5 6 0.056700 + "HA" "HP" 0 1 131072 6 1 0.078200 + "CB" "2C" 0 1 131072 7 6 0.259600 + "HB2" "H1" 0 1 131072 8 1 0.027300 + "HB3" "H1" 0 1 131072 9 1 0.027300 + "OG" "OH" 0 1 131072 10 8 -0.671400 + "HG" "HO" 0 1 131072 11 1 0.423900 + "C" "C" 0 1 131072 12 6 0.616300 + "O" "O" 0 1 131072 13 8 -0.572200 +!entry.NSER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "2C" 0 -1 0.0 + "HB2" "H1" 0 -1 0.0 + "HB3" "H1" 0 -1 0.0 + "OG" "OH" 0 -1 0.0 + "HG" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NSER.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NSER.unit.childsequence single int + 2 +!entry.NSER.unit.connect array int + 0 + 12 +!entry.NSER.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 12 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 12 13 1 +!entry.NSER.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 +!entry.NSER.unit.name single str + "NSER" +!entry.NSER.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.230753 4.925145 1.196917 + 3.983305 5.433814 1.972562 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 12 0 0 0 0 +!entry.NSER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NSER" 1 14 1 "p" 0 +!entry.NSER.unit.residuesPdbSequenceNumber array int + 0 +!entry.NSER.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NSER.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.NTHR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.181200 + "H1" "H" 0 1 131072 2 1 0.193400 + "H2" "H" 0 1 131072 3 1 0.193400 + "H3" "H" 0 1 131072 4 1 0.193400 + "CA" "CX" 0 1 131072 5 6 0.003400 + "HA" "HP" 0 1 131072 6 1 0.108700 + "CB" "3C" 0 1 131072 7 6 0.451400 + "HB" "H1" 0 1 131072 8 1 -0.032300 + "CG2" "CT" 0 1 131072 9 6 -0.255400 + "HG21" "HC" 0 1 131072 10 1 0.062700 + "HG22" "HC" 0 1 131072 11 1 0.062700 + "HG23" "HC" 0 1 131072 12 1 0.062700 + "OG1" "OH" 0 1 131072 13 8 -0.676400 + "HG1" "HO" 0 1 131072 14 1 0.407000 + "C" "C" 0 1 131072 15 6 0.616300 + "O" "O" 0 1 131072 16 8 -0.572200 +!entry.NTHR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "H1" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "OG1" "OH" 0 -1 0.0 + "HG1" "HO" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NTHR.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NTHR.unit.childsequence single int + 2 +!entry.NTHR.unit.connect array int + 0 + 15 +!entry.NTHR.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 15 1 + 7 8 1 + 7 9 1 + 7 13 1 + 9 10 1 + 9 11 1 + 9 12 1 + 13 14 1 + 15 16 1 +!entry.NTHR.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 +!entry.NTHR.unit.name single str + "NTHR" +!entry.NTHR.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 4.075059 4.623017 1.205786 + 2.065936 3.859425 1.244383 + 1.567127 2.890627 1.271209 + 1.784431 4.436953 2.124903 + 1.764699 4.397847 0.345796 + 3.971501 2.947413 2.411212 + 3.724052 3.456082 3.186857 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 15 0 0 0 0 +!entry.NTHR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NTHR" 1 17 1 "p" 0 +!entry.NTHR.unit.residuesPdbSequenceNumber array int + 0 +!entry.NTHR.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NTHR.unit.velocities table dbl x dbl y dbl z + 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.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 +!entry.NTRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.191300 + "H1" "H" 0 1 131072 2 1 0.188800 + "H2" "H" 0 1 131072 3 1 0.188800 + "H3" "H" 0 1 131072 4 1 0.188800 + "CA" "CX" 0 1 131072 5 6 0.042100 + "HA" "HP" 0 1 131072 6 1 0.116200 + "CB" "CT" 0 1 131072 7 6 0.054300 + "HB2" "HC" 0 1 131072 8 1 0.022200 + "HB3" "HC" 0 1 131072 9 1 0.022200 + "CG" "C*" 0 1 131072 10 6 -0.165400 + "CD1" "CW" 0 1 131072 11 6 -0.178800 + "HD1" "H4" 0 1 131072 12 1 0.219500 + "NE1" "NA" 0 1 131072 13 7 -0.344400 + "HE1" "H" 0 1 131072 14 1 0.341200 + "CE2" "CN" 0 1 131072 15 6 0.157500 + "CZ2" "CA" 0 1 131072 16 6 -0.271000 + "HZ2" "HA" 0 1 131072 17 1 0.158900 + "CH2" "CA" 0 1 131072 18 6 -0.108000 + "HH2" "HA" 0 1 131072 19 1 0.141100 + "CZ3" "CA" 0 1 131072 20 6 -0.203400 + "HZ3" "HA" 0 1 131072 21 1 0.145800 + "CE3" "CA" 0 1 131072 22 6 -0.226500 + "HE3" "HA" 0 1 131072 23 1 0.164600 + "CD2" "CB" 0 1 131072 24 6 0.113200 + "C" "C" 0 1 131072 25 6 0.612300 + "O" "O" 0 1 131072 26 8 -0.571300 +!entry.NTRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C*" 0 -1 0.0 + "CD1" "CW" 0 -1 0.0 + "HD1" "H4" 0 -1 0.0 + "NE1" "NA" 0 -1 0.0 + "HE1" "H" 0 -1 0.0 + "CE2" "CN" 0 -1 0.0 + "CZ2" "CA" 0 -1 0.0 + "HZ2" "HA" 0 -1 0.0 + "CH2" "CA" 0 -1 0.0 + "HH2" "HA" 0 -1 0.0 + "CZ3" "CA" 0 -1 0.0 + "HZ3" "HA" 0 -1 0.0 + "CE3" "CA" 0 -1 0.0 + "HE3" "HA" 0 -1 0.0 + "CD2" "CB" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NTRP.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NTRP.unit.childsequence single int + 2 +!entry.NTRP.unit.connect array int + 0 + 25 +!entry.NTRP.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 25 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 24 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 15 24 1 + 16 17 1 + 16 18 1 + 18 19 1 + 18 20 1 + 20 21 1 + 20 22 1 + 22 23 1 + 22 24 1 + 25 26 1 +!entry.NTRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 + "R" 1 "A" 25 + "R" 1 "A" 26 +!entry.NTRP.unit.name single str + "NTRP" +!entry.NTRP.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.200813 5.026064 1.321087 + 4.023453 5.931084 2.293240 + 3.368841 5.705466 3.135071 + 4.811943 7.073555 1.949808 + 4.882921 7.922010 2.493118 + 5.427347 6.842060 0.816764 + 6.297161 7.689052 0.119605 + 6.531230 8.676649 0.517050 + 6.814091 7.187011 -1.069023 + 7.498074 7.791857 -1.664362 + 6.482659 5.953119 -1.505101 + 6.897660 5.575648 -2.439654 + 5.604041 5.117355 -0.785636 + 5.358720 4.126570 -1.168080 + 5.083390 5.623004 0.411545 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 25 0 0 0 0 +!entry.NTRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NTRP" 1 27 1 "p" 0 +!entry.NTRP.unit.residuesPdbSequenceNumber array int + 0 +!entry.NTRP.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NTRP.unit.velocities table dbl x dbl y dbl z + 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.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 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.0 0.0 + 0.0 0.0 0.0 +!entry.NTYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.194000 + "H1" "H" 0 1 131072 2 1 0.187300 + "H2" "H" 0 1 131072 3 1 0.187300 + "H3" "H" 0 1 131072 4 1 0.187300 + "CA" "CX" 0 1 131072 5 6 0.057000 + "HA" "HP" 0 1 131072 6 1 0.098300 + "CB" "CT" 0 1 131072 7 6 0.065900 + "HB2" "HC" 0 1 131072 8 1 0.010200 + "HB3" "HC" 0 1 131072 9 1 0.010200 + "CG" "CA" 0 1 131072 10 6 -0.020500 + "CD1" "CA" 0 1 131072 11 6 -0.200200 + "HD1" "HA" 0 1 131072 12 1 0.172000 + "CE1" "CA" 0 1 131072 13 6 -0.223900 + "HE1" "HA" 0 1 131072 14 1 0.165000 + "CZ" "C" 0 1 131072 15 6 0.313900 + "OH" "OH" 0 1 131072 16 8 -0.557800 + "HH" "HO" 0 1 131072 17 1 0.400100 + "CE2" "CA" 0 1 131072 18 6 -0.223900 + "HE2" "HA" 0 1 131072 19 1 0.165000 + "CD2" "CA" 0 1 131072 20 6 -0.200200 + "HD2" "HA" 0 1 131072 21 1 0.172000 + "C" "C" 0 1 131072 22 6 0.612300 + "O" "O" 0 1 131072 23 8 -0.571300 +!entry.NTYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "CA" 0 -1 0.0 + "CD1" "CA" 0 -1 0.0 + "HD1" "HA" 0 -1 0.0 + "CE1" "CA" 0 -1 0.0 + "HE1" "HA" 0 -1 0.0 + "CZ" "C" 0 -1 0.0 + "OH" "OH" 0 -1 0.0 + "HH" "HO" 0 -1 0.0 + "CE2" "CA" 0 -1 0.0 + "HE2" "HA" 0 -1 0.0 + "CD2" "CA" 0 -1 0.0 + "HD2" "HA" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NTYR.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NTYR.unit.childsequence single int + 2 +!entry.NTYR.unit.connect array int + 0 + 22 +!entry.NTYR.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 22 1 + 7 8 1 + 7 9 1 + 7 10 1 + 10 11 1 + 10 20 1 + 11 12 1 + 11 13 1 + 13 14 1 + 13 15 1 + 15 16 1 + 15 18 1 + 16 17 1 + 18 19 1 + 18 20 1 + 20 21 1 + 22 23 1 +!entry.NTYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 +!entry.NTYR.unit.name single str + "NTYR" +!entry.NTYR.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.267328 4.996267 1.194946 + 4.059927 5.918911 2.227280 + 3.400108 5.668218 3.057877 + 4.699998 7.163547 2.192791 + 4.538522 7.881891 2.996538 + 5.547471 7.485542 1.125970 + 6.169255 8.694617 1.092468 + 5.956327 9.246984 1.848214 + 5.754875 6.562900 0.093635 + 6.414694 6.813595 -0.736962 + 5.114806 5.318263 0.128119 + 5.276286 4.599920 -0.675627 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 22 0 0 0 0 +!entry.NTYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NTYR" 1 24 1 "p" 0 +!entry.NTYR.unit.residuesPdbSequenceNumber array int + 0 +!entry.NTYR.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NTYR.unit.velocities table dbl x dbl y dbl z + 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.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 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 +!entry.NVAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.057700 + "H1" "H" 0 1 131072 2 1 0.227200 + "H2" "H" 0 1 131072 3 1 0.227200 + "H3" "H" 0 1 131072 4 1 0.227200 + "CA" "CX" 0 1 131072 5 6 -0.005400 + "HA" "HP" 0 1 131072 6 1 0.109300 + "CB" "3C" 0 1 131072 7 6 0.319600 + "HB" "HC" 0 1 131072 8 1 -0.022100 + "CG1" "CT" 0 1 131072 9 6 -0.312900 + "HG11" "HC" 0 1 131072 10 1 0.073500 + "HG12" "HC" 0 1 131072 11 1 0.073500 + "HG13" "HC" 0 1 131072 12 1 0.073500 + "CG2" "CT" 0 1 131072 13 6 -0.312900 + "HG21" "HC" 0 1 131072 14 1 0.073500 + "HG22" "HC" 0 1 131072 15 1 0.073500 + "HG23" "HC" 0 1 131072 16 1 0.073500 + "C" "C" 0 1 131072 17 6 0.616300 + "O" "O" 0 1 131072 18 8 -0.572200 +!entry.NVAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "3C" 0 -1 0.0 + "HB" "HC" 0 -1 0.0 + "CG1" "CT" 0 -1 0.0 + "HG11" "HC" 0 -1 0.0 + "HG12" "HC" 0 -1 0.0 + "HG13" "HC" 0 -1 0.0 + "CG2" "CT" 0 -1 0.0 + "HG21" "HC" 0 -1 0.0 + "HG22" "HC" 0 -1 0.0 + "HG23" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NVAL.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NVAL.unit.childsequence single int + 2 +!entry.NVAL.unit.connect array int + 0 + 17 +!entry.NVAL.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 17 1 + 7 8 1 + 7 9 1 + 7 13 1 + 9 10 1 + 9 11 1 + 9 12 1 + 13 14 1 + 13 15 1 + 13 16 1 + 17 18 1 +!entry.NVAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 +!entry.NVAL.unit.name single str + "NVAL" +!entry.NVAL.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.997712 2.900483 2.489542 + 5.077693 2.753265 2.481244 + 3.716972 3.477628 3.370558 + 3.499630 1.931323 2.516834 + 4.274186 5.009602 1.194577 + 3.973781 5.548460 0.295972 + 3.993559 5.587585 2.075079 + 5.354271 4.863178 1.185788 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 17 0 0 0 0 +!entry.NVAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NVAL" 1 19 1 "p" 0 +!entry.NVAL.unit.residuesPdbSequenceNumber array int + 0 +!entry.NVAL.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NVAL.unit.velocities table dbl x dbl y dbl z + 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.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 0.0 0.0 + 0.0 0.0 0.0 diff --git a/test/Test_Build/frcmod.ff14SB b/test/Test_Build/frcmod.ff14SB new file mode 100644 index 0000000000..5fee412e6e --- /dev/null +++ b/test/Test_Build/frcmod.ff14SB @@ -0,0 +1,514 @@ +ff14SB protein backbone and sidechain parameters +MASS +CO 12.01 0.616 ! sp2 C carboxylate group +2C 12.01 0.878 sp3 aliphatic C with two (duo) heavy atoms +3C 12.01 0.878 sp3 aliphatic C with three (tres) heavy atoms +C8 12.01 0.878 sp3 aliphatic C basic AA side chain + +BOND +C -2C 317.0 1.5220 +C*-2C 317.0 1.4950 +C8-C8 310.0 1.5260 +C8-CX 310.0 1.5260 +C8-H1 340.0 1.0900 +C8-HC 340.0 1.0900 +C8-HP 340.0 1.0900 +C8-N2 337.0 1.4630 +C8-N3 367.0 1.4710 +CA-2C 317.0 1.5100 +CC-2C 317.0 1.5040 +CO-O2 656.0 1.2500 +CO-2C 317.0 1.5220 +CT-2C 310.0 1.5260 +CT-3C 310.0 1.5260 +CX-2C 310.0 1.5260 +CX-3C 310.0 1.5260 +H1-2C 340.0 1.0900 +H1-3C 340.0 1.0900 +HC-2C 340.0 1.0900 +HC-3C 340.0 1.0900 +OH-2C 320.0 1.4100 +OH-3C 320.0 1.4100 +S -2C 227.0 1.8100 +SH-2C 237.0 1.8100 +2C-2C 310.0 1.5260 +2C-3C 310.0 1.5260 + +ANGL +N -C -2C 70.0 116.60 +O -C -2C 80.0 120.40 +OH-C -2C 80.0 110.00 +CB-C*-2C 70.0 128.60 +CW-C*-2C 70.0 125.00 +C8-C8-C8 40.0 109.50 +C8-C8-CX 40.0 109.50 +C8-C8-H1 50.0 109.50 +C8-C8-HC 50.0 109.50 +C8-C8-HP 50.0 109.50 +C8-C8-N2 80.0 111.20 +C8-C8-N3 80.0 111.20 +CX-C8-HC 50.0 109.50 +H1-C8-H1 35.0 109.50 +H1-C8-N2 50.0 109.50 +HC-C8-HC 35.0 109.50 +HP-C8-HP 35.0 109.50 +HP-C8-N3 50.0 109.50 +CA-CA-2C 70.0 120.00 +CV-CC-2C 70.0 120.00 +CW-CC-2C 70.0 120.00 +NA-CC-2C 70.0 120.00 +NB-CC-2C 70.0 120.00 +O2-CO-O2 80.0 126.00 +O2-CO-2C 70.0 117.00 +HC-CT-2C 50.0 109.50 +HC-CT-3C 50.0 109.50 +C -CX-C8 63.0 111.10 +C -CX-2C 63.0 111.10 +C -CX-3C 63.0 111.10 +C8-CX-H1 50.0 109.50 +C8-CX-N 80.0 109.70 +C8-CX-N3 80.0 111.20 +H1-CX-2C 50.0 109.50 +H1-CX-3C 50.0 109.50 +HP-CX-C8 50.0 109.50 changed based on NMA nmodes (was CT-CT-HP) +HP-CX-2C 50.0 109.50 changed based on NMA nmodes (was CT-CT-HP) +HP-CX-3C 50.0 109.50 changed based on NMA nmodes (was CT-CT-HP) +N -CX-2C 80.0 109.70 +N -CX-3C 80.0 109.70 +N3-CX-2C 80.0 111.20 +N3-CX-3C 80.0 111.20 +C8-N2-CA 50.0 123.20 +C8-N2-H 50.0 118.40 +C8-N3-H 50.0 109.50 +HO-OH-2C 55.0 108.50 +HO-OH-3C 55.0 108.50 +CT-S -2C 62.0 98.90 +2C-S -S 68.0 103.70 +HS-SH-2C 43.0 96.00 +C -2C-CX 63.0 111.10 +C -2C-HC 50.0 109.50 +C -2C-2C 63.0 111.10 +C*-2C-CX 63.0 115.60 +C*-2C-HC 50.0 109.50 +CA-2C-CX 63.0 114.00 +CA-2C-HC 50.0 109.50 +CC-2C-CX 63.0 113.10 +CC-2C-HC 50.0 109.50 +CO-2C-CX 63.0 111.10 +CO-2C-HC 50.0 109.50 +CO-2C-2C 63.0 111.10 +CT-2C-HC 50.0 109.50 +CT-2C-3C 40.0 109.50 +CX-2C-H1 50.0 109.50 +CX-2C-HC 50.0 109.50 +CX-2C-OH 50.0 109.50 +CX-2C-S 50.0 114.70 +CX-2C-SH 50.0 108.60 +CX-2C-2C 40.0 109.50 +CX-2C-3C 40.0 109.50 +H1-2C-H1 35.0 109.50 +H1-2C-OH 50.0 109.50 +H1-2C-S 50.0 109.50 +H1-2C-SH 50.0 109.50 +H1-2C-2C 50.0 109.50 +HC-2C-HC 35.0 109.50 +HC-2C-2C 50.0 109.50 +HC-2C-3C 50.0 109.50 +S -2C-2C 50.0 114.70 +CT-3C-CT 40.0 109.50 +CT-3C-CX 40.0 109.50 +CT-3C-H1 50.0 109.50 +CT-3C-HC 50.0 109.50 +CT-3C-OH 50.0 109.50 +CT-3C-2C 40.0 109.50 +CX-3C-H1 50.0 109.50 +CX-3C-HC 50.0 109.50 +CX-3C-OH 50.0 109.50 +CX-3C-2C 40.0 109.50 +H1-3C-OH 50.0 109.50 +HC-3C-2C 50.0 109.50 + +DIHE +C8-CX-N -C 1 0.000 0.0 -4. phi' +C8-CX-N -C 1 0.800 0.0 -3. +C8-CX-N -C 1 1.800 0.0 -2. +C8-CX-N -C 1 2.000 0.0 1. +CT-CX-N -C 1 0.000 0.0 -4. +CT-CX-N -C 1 0.800 0.0 -3. +CT-CX-N -C 1 1.800 0.0 -2. +CT-CX-N -C 1 2.000 0.0 1. +2C-CX-N -C 1 0.000 0.0 -4. +2C-CX-N -C 1 0.800 0.0 -3. +2C-CX-N -C 1 1.800 0.0 -2. +2C-CX-N -C 1 2.000 0.0 1. +3C-CX-N -C 1 0.000 0.0 -4. +3C-CX-N -C 1 0.800 0.0 -3. +3C-CX-N -C 1 1.800 0.0 -2. +3C-CX-N -C 1 2.000 0.0 1. +N -C -CX-C8 1 0.000 0.0 -4. psi' +N -C -CX-C8 1 0.400 0.0 -3. +N -C -CX-C8 1 0.200 0.0 -2. +N -C -CX-C8 1 0.200 0.0 1. +N -C -CX-CT 1 0.000 0.0 -4. +N -C -CX-CT 1 0.400 0.0 -3. +N -C -CX-CT 1 0.200 0.0 -2. +N -C -CX-CT 1 0.200 0.0 1. +N -C -CX-2C 1 0.000 0.0 -4. +N -C -CX-2C 1 0.400 0.0 -3. +N -C -CX-2C 1 0.200 0.0 -2. +N -C -CX-2C 1 0.200 0.0 1. +N -C -CX-3C 1 0.000 0.0 -4. +N -C -CX-3C 1 0.400 0.0 -3. +N -C -CX-3C 1 0.200 0.0 -2. +N -C -CX-3C 1 0.200 0.0 1. +N -C -2C-HC 1 0.000 0.0 2. JCC,7,(1986),230 (X -C -CT-X ) +O -C -2C-HC 1 0.080 180.0 -3. Junmei et al, 1999 (HC-CT-C -O ) +O -C -2C-HC 1 0.000 0.0 -2. +O -C -2C-HC 1 0.800 0.0 1. +OH-C -2C-HC 1 0.000 0.0 2. +CB-C*-2C-HC 1 0.000 0.0 2. JCC,7,(1986),230 (X -C*-CT-X ) +CW-C*-2C-HC 1 0.000 0.0 2. +X -C8-C8-X 9 1.400 0.0 3. JCC,7,(1986),230 (X -CT-CT-X ) +C8-C8-C8-HC 1 0.160 0.0 3. Junmei et al, 1999 (was HC-CT-CT-CT) +CX-C8-C8-HC 1 0.160 0.0 3. +HC-C8-C8-HC 1 0.150 0.0 3. Junmei et al, 1999 (HC-CT-CT-HC) +X -C8-CX-X 9 1.400 0.0 3. +X -C8-N2-X 6 0.000 0.0 3. JCC,7,(1986),230 (X -CT-N2-X ) +X -C8-N3-X 9 1.400 0.0 3. JCC,7,(1986),230 (was X -CT-N3-X ) +X -CA-2C-X 1 0.000 0.0 2. JCC,7,(1986),230 (was X -CA-CT-X ) +2C-CC-CV-H4 1 5.150 180.0 2. +2C-CC-CV-NB 1 5.150 180.0 2. +2C-CC-CW-H4 1 5.375 180.0 2. +2C-CC-CW-NA 1 5.375 180.0 2. +2C-CC-NA-CR 1 1.400 180.0 2. +2C-CC-NA-H 1 1.400 180.0 2. +2C-CC-NB-CR 1 2.400 180.0 2. +CV-CC-2C-HC 1 0.000 0.0 2. +CW-CC-2C-HC 1 0.000 0.0 2. +NA-CC-2C-HC 1 0.000 0.0 2. +NB-CC-2C-HC 1 0.000 0.0 2. +O2-CO-2C-HC 1 0.000 0.0 2. +H1-CT-S -2C 3 1.000 0.0 3. +HC-CT-2C-HC 1 0.150 0.0 3. +HC-CT-2C-3C 1 0.160 0.0 3. +HC-CT-3C-CT 1 0.160 0.0 3. +HC-CT-3C-CX 1 0.160 0.0 3. +HC-CT-3C-H1 9 1.400 0.0 3. +HC-CT-3C-HC 1 0.150 0.0 3. +HC-CT-3C-OH 1 0.000 0.0 -3. +HC-CT-3C-OH 1 0.250 0.0 1. +HC-CT-3C-2C 1 0.160 0.0 3. +X -CX-2C-X 9 1.400 0.0 3. +H1-CX-2C-OH 1 0.000 0.0 -3. +H1-CX-2C-OH 1 0.250 0.0 1. +X -CX-3C-X 9 1.400 0.0 3. +H1-CX-3C-OH 1 0.000 0.0 -3. +H1-CX-3C-OH 1 0.250 0.0 1. +HO-OH-2C-H1 3 0.500 0.0 3. JCC,7,(1986),230 +HO-OH-3C-H1 3 0.500 0.0 3. +EP-S -S -2C 1 0.000 0.0 3. cyx (dac) +X -S -2C-X 3 1.000 0.0 3. JCC,7,(1986),230 (X -CT-S -X ) +X -SH-2C-X 3 0.750 0.0 3. JCC,7,(1986),230 (X -CT-SH-X ) +X -2C-2C-X 9 1.400 0.0 3. +CX-2C-2C-HC 1 0.160 0.0 3. Junmei et al, 1999 +HC-2C-2C-HC 1 0.150 0.0 3. Junmei et al, 1999 +CT-2C-3C-HC 1 0.160 0.0 3. Junmei et al, 1999 +CX-2C-3C-HC 1 0.160 0.0 3. +HC-2C-3C-CT 1 0.160 0.0 3. +HC-2C-3C-CX 1 0.160 0.0 3. +HC-2C-3C-HC 1 0.150 0.0 3. +C -CX-C8-C8 9 1.400 0.0 3. Arg Lys +N -CX-C8-C8 9 1.400 0.0 3. +N3-CX-C8-C8 9 1.400 0.0 3. +CX-C8-C8-C8 1 0.180 0.0 -3. +CX-C8-C8-C8 1 0.250 180.0 -2. +CX-C8-C8-C8 1 0.200 180.0 1. +C8-C8-C8-N2 9 1.400 0.0 3. +C8-C8-N2-CA 1 0.000 0.0 -3. +C8-C8-N2-CA 1 0.000 0.0 1. +C8-C8-C8-C8 1 0.180 0.0 -3. +C8-C8-C8-C8 1 0.250 180.0 -2. +C8-C8-C8-C8 1 0.200 180.0 1. +C8-C8-C8-N3 9 1.400 0.0 3. +C8-N2-CA-N2 1 0.000 0.0 -4. Arg Lys copied +C8-N2-CA-N2 1 2.400 180.0 2. +H -N2-CA-N2 1 0.000 0.0 -4. +H -N2-CA-N2 1 2.400 180.0 2. +C8-C8-N3-H 9 1.400 0.0 3. +C -CX-2C-SH 1 0.075 0.0 -4. C +C -CX-2C-SH 1 0.251 0.0 -3. +C -CX-2C-SH 1 0.337 180.0 -2. +C -CX-2C-SH 1 0.269 180.0 1. +N -CX-2C-SH 1 0.033 0.0 -4. +N -CX-2C-SH 1 0.251 0.0 -3. +N -CX-2C-SH 1 0.486 180.0 -2. +N -CX-2C-SH 1 0.154 0.0 1. +N3-CX-2C-SH 1 0.033 0.0 -4. +N3-CX-2C-SH 1 0.251 0.0 -3. +N3-CX-2C-SH 1 0.486 180.0 -2. +N3-CX-2C-SH 1 0.154 0.0 1. +CX-2C-SH-HS 1 0.030 0.0 -4. +CX-2C-SH-HS 1 0.252 0.0 -3. +CX-2C-SH-HS 1 0.612 0.0 -2. +CX-2C-SH-HS 1 0.092 0.0 1. +C -CX-2C-CO 1 0.154 0.0 -4. D +C -CX-2C-CO 1 0.058 0.0 -3. +C -CX-2C-CO 1 0.459 180.0 -2. +C -CX-2C-CO 1 0.424 0.0 1. +N -CX-2C-CO 1 0.089 0.0 -4. +N -CX-2C-CO 1 0.058 0.0 -3. +N -CX-2C-CO 1 0.647 180.0 -2. +N -CX-2C-CO 1 2.154 180.0 1. +N3-CX-2C-CO 1 0.089 0.0 -4. +N3-CX-2C-CO 1 0.058 0.0 -3. +N3-CX-2C-CO 1 0.647 180.0 -2. +N3-CX-2C-CO 1 2.154 180.0 1. +CX-2C-CO-O2 1 0.031 180.0 -4. +CX-2C-CO-O2 1 0.000 0.0 -3. +CX-2C-CO-O2 1 0.769 180.0 -2. +CX-2C-CO-O2 1 0.000 0.0 1. +C -CX-2C-C 1 0.107 0.0 -4. DhN +C -CX-2C-C 1 0.033 0.0 -3. +C -CX-2C-C 1 0.303 180.0 -2. +C -CX-2C-C 1 1.046 0.0 1. +N -CX-2C-C 1 0.059 0.0 -4. +N -CX-2C-C 1 0.033 0.0 -3. +N -CX-2C-C 1 0.297 180.0 -2. +N -CX-2C-C 1 0.688 180.0 1. +N3-CX-2C-C 1 0.059 0.0 -4. +N3-CX-2C-C 1 0.033 0.0 -3. +N3-CX-2C-C 1 0.297 180.0 -2. +N3-CX-2C-C 1 0.688 180.0 1. +CX-2C-C -O 1 0.000 0.0 1. +CX-2C-C -OH 1 0.199 180.0 -4. +CX-2C-C -OH 1 0.008 0.0 -3. +CX-2C-C -OH 1 0.575 180.0 -2. +CX-2C-C -OH 1 1.199 180.0 1. +2C-C -OH-HO 1 0.113 0.0 -4. +2C-C -OH-HO 1 0.479 0.0 -3. +2C-C -OH-HO 1 2.706 180.0 -2. +2C-C -OH-HO 1 0.448 180.0 1. +CX-2C-C -N 1 0.008 0.0 -4. +CX-2C-C -N 1 0.301 180.0 -3. +CX-2C-C -N 1 0.485 180.0 -2. +CX-2C-C -N 1 0.828 180.0 1. +C -CX-CT-CC 1 0.025 0.0 -4. Hie,dp +C -CX-CT-CC 1 0.219 0.0 -3. +C -CX-CT-CC 1 0.244 180.0 -2. +C -CX-CT-CC 1 0.143 180.0 1. +N -CX-CT-CC 1 0.089 0.0 -4. +N -CX-CT-CC 1 0.219 0.0 -3. +N -CX-CT-CC 1 0.221 180.0 -2. +N -CX-CT-CC 1 0.306 180.0 1. +N3-CX-CT-CC 1 0.089 0.0 -4. +N3-CX-CT-CC 1 0.219 0.0 -3. +N3-CX-CT-CC 1 0.221 180.0 -2. +N3-CX-CT-CC 1 0.306 180.0 1. +CX-CT-CC-NA 1 0.037 180.0 -4. +CX-CT-CC-NA 1 0.686 0.0 -3. +CX-CT-CC-NA 1 0.392 180.0 -2. +CX-CT-CC-NA 1 0.160 180.0 1. +CX-CT-CC-CV 1 0.010 180.0 -4. +CX-CT-CC-CV 1 0.122 180.0 -3. +CX-CT-CC-CV 1 0.750 0.0 -2. +CX-CT-CC-CV 1 0.674 180.0 1. +CX-CT-CC-NB 1 0.047 180.0 -4. +CX-CT-CC-NB 1 0.740 0.0 -3. +CX-CT-CC-NB 1 0.204 0.0 -2. +CX-CT-CC-NB 1 0.690 0.0 1. +C -CX-3C-CT 1 0.112 0.0 -4. ITV +C -CX-3C-CT 1 0.148 0.0 -3. +C -CX-3C-CT 1 0.289 180.0 -2. +C -CX-3C-CT 1 0.406 180.0 1. +C -CX-3C-2C 1 0.115 0.0 -4. +C -CX-3C-2C 1 0.113 0.0 -3. +C -CX-3C-2C 1 0.735 180.0 -2. +C -CX-3C-2C 1 0.162 0.0 1. +N -CX-3C-CT 1 0.001 180.0 -4. +N -CX-3C-CT 1 0.148 0.0 -3. +N -CX-3C-CT 1 0.216 180.0 -2. +N -CX-3C-CT 1 0.337 0.0 1. +N -CX-3C-2C 1 0.097 180.0 -4. +N -CX-3C-2C 1 0.113 0.0 -3. +N -CX-3C-2C 1 0.144 180.0 -2. +N -CX-3C-2C 1 0.310 0.0 1. +N3-CX-3C-CT 1 0.001 180.0 -4. +N3-CX-3C-CT 1 0.148 0.0 -3. +N3-CX-3C-CT 1 0.216 180.0 -2. +N3-CX-3C-CT 1 0.337 0.0 1. +N3-CX-3C-2C 1 0.097 180.0 -4. +N3-CX-3C-2C 1 0.113 0.0 -3. +N3-CX-3C-2C 1 0.144 180.0 -2. +N3-CX-3C-2C 1 0.310 0.0 1. +CX-3C-2C-CT 1 0.230 0.0 -4. +CX-3C-2C-CT 1 0.107 0.0 -3. +CX-3C-2C-CT 1 0.053 0.0 -2. +CX-3C-2C-CT 1 0.447 0.0 1. +CT-3C-2C-CT 1 0.224 0.0 -4. +CT-3C-2C-CT 1 0.107 0.0 -3. +CT-3C-2C-CT 1 0.077 180.0 -2. +CT-3C-2C-CT 1 0.202 0.0 1. +C -CX-3C-OH 1 0.156 0.0 -4. +C -CX-3C-OH 1 0.315 0.0 -3. +C -CX-3C-OH 1 0.119 180.0 -2. +C -CX-3C-OH 1 0.697 180.0 1. +N -CX-3C-OH 1 0.095 0.0 -4. +N -CX-3C-OH 1 0.315 0.0 -3. +N -CX-3C-OH 1 0.006 0.0 -2. +N -CX-3C-OH 1 0.674 0.0 1. +N3-CX-3C-OH 1 0.095 0.0 -4. +N3-CX-3C-OH 1 0.315 0.0 -3. +N3-CX-3C-OH 1 0.006 0.0 -2. +N3-CX-3C-OH 1 0.674 0.0 1. +CX-3C-OH-HO 1 0.013 0.0 -4. +CX-3C-OH-HO 1 0.236 0.0 -3. +CX-3C-OH-HO 1 0.251 0.0 -2. +CX-3C-OH-HO 1 0.006 180.0 1. +CT-3C-OH-HO 1 0.048 0.0 -4. +CT-3C-OH-HO 1 0.236 0.0 -3. +CT-3C-OH-HO 1 0.079 180.0 -2. +CT-3C-OH-HO 1 0.643 0.0 1. +C -CX-2C-3C 1 0.190 0.0 -4. L +C -CX-2C-3C 1 0.144 0.0 -3. +C -CX-2C-3C 1 0.620 180.0 -2. +C -CX-2C-3C 1 0.706 0.0 1. +N -CX-2C-3C 1 0.073 0.0 -4. +N -CX-2C-3C 1 0.144 0.0 -3. +N -CX-2C-3C 1 0.259 180.0 -2. +N -CX-2C-3C 1 0.098 0.0 1. +N3-CX-2C-3C 1 0.073 0.0 -4. +N3-CX-2C-3C 1 0.144 0.0 -3. +N3-CX-2C-3C 1 0.259 180.0 -2. +N3-CX-2C-3C 1 0.098 0.0 1. +CX-2C-3C-CT 1 0.179 0.0 -4. +CX-2C-3C-CT 1 0.142 0.0 -3. +CX-2C-3C-CT 1 0.027 180.0 -2. +CX-2C-3C-CT 1 0.379 0.0 1. +C -CX-2C-OH 1 0.129 0.0 -4. S +C -CX-2C-OH 1 0.401 0.0 -3. +C -CX-2C-OH 1 0.218 180.0 -2. +C -CX-2C-OH 1 0.661 180.0 1. +N -CX-2C-OH 1 0.160 0.0 -4. +N -CX-2C-OH 1 0.401 0.0 -3. +N -CX-2C-OH 1 0.246 180.0 -2. +N -CX-2C-OH 1 0.666 0.0 1. +N3-CX-2C-OH 1 0.160 0.0 -4. +N3-CX-2C-OH 1 0.401 0.0 -3. +N3-CX-2C-OH 1 0.246 180.0 -2. +N3-CX-2C-OH 1 0.666 0.0 1. +CX-2C-OH-HO 1 0.007 0.0 -4. +CX-2C-OH-HO 1 0.267 0.0 -3. +CX-2C-OH-HO 1 0.444 0.0 -2. +CX-2C-OH-HO 1 0.211 0.0 1. +C -CX-CT-C* 1 0.074 0.0 -4. W_CB +C -CX-CT-C* 1 0.234 0.0 -3. +C -CX-CT-C* 1 0.353 180.0 -2. +C -CX-CT-C* 1 0.017 180.0 1. +N -CX-CT-C* 1 0.031 0.0 -4. +N -CX-CT-C* 1 0.234 0.0 -3. +N -CX-CT-C* 1 0.313 180.0 -2. +N -CX-CT-C* 1 0.079 0.0 1. +N3-CX-CT-C* 1 0.031 0.0 -4. +N3-CX-CT-C* 1 0.234 0.0 -3. +N3-CX-CT-C* 1 0.313 180.0 -2. +N3-CX-CT-C* 1 0.079 0.0 1. +CX-CT-C*-CB 1 0.095 180.0 -4. +CX-CT-C*-CB 1 0.819 0.0 -3. +CX-CT-C*-CB 1 0.408 0.0 -2. +CX-CT-C*-CB 1 0.365 0.0 1. +CX-CT-C*-CW 1 0.000 0.0 -4. +CX-CT-C*-CW 1 0.000 0.0 -3. +CX-CT-C*-CW 1 0.000 0.0 -2. +CX-CT-C*-CW 1 0.000 0.0 1. +C -CX-CT-CA 1 0.012 180.0 -4. FY +C -CX-CT-CA 1 0.192 0.0 -3. +C -CX-CT-CA 1 0.469 180.0 -2. +C -CX-CT-CA 1 0.055 0.0 1. +N -CX-CT-CA 1 0.007 180.0 -4. +N -CX-CT-CA 1 0.192 0.0 -3. +N -CX-CT-CA 1 0.290 180.0 -2. +N -CX-CT-CA 1 0.012 180.0 1. +N3-CX-CT-CA 1 0.007 180.0 -4. +N3-CX-CT-CA 1 0.192 0.0 -3. +N3-CX-CT-CA 1 0.290 180.0 -2. +N3-CX-CT-CA 1 0.012 180.0 1. +CX-CT-CA-CA 1 0.048 180.0 -4. +CX-CT-CA-CA 1 0.000 0.0 -3. +CX-CT-CA-CA 1 0.069 180.0 -2. +CX-CT-CA-CA 1 0.000 0.0 1. +CA-C -OH-HO 1 0.065 0.0 -4. +CA-C -OH-HO 1 0.000 0.0 -3. +CA-C -OH-HO 1 0.883 180.0 -2. +CA-C -OH-HO 1 0.000 0.0 1. +C -CX-2C-2C 1 0.145 0.0 -4. Glh Gln Glu Met +C -CX-2C-2C 1 0.144 0.0 -3. +C -CX-2C-2C 1 0.393 180.0 -2. +C -CX-2C-2C 1 0.421 180.0 1. +N -CX-2C-2C 1 0.078 0.0 -4. +N -CX-2C-2C 1 0.144 0.0 -3. +N -CX-2C-2C 1 0.184 180.0 -2. +N -CX-2C-2C 1 0.100 180.0 1. +N3-CX-2C-2C 1 0.078 0.0 -4. +N3-CX-2C-2C 1 0.144 0.0 -3. +N3-CX-2C-2C 1 0.184 180.0 -2. +N3-CX-2C-2C 1 0.100 180.0 1. +CX-2C-2C-C 1 0.138 0.0 -4. +CX-2C-2C-C 1 0.412 180.0 -3. +CX-2C-2C-C 1 0.083 0.0 -2. +CX-2C-2C-C 1 0.196 180.0 1. +2C-2C-C -O 1 0.000 0.0 1. +2C-2C-C -OH 1 0.066 180.0 -4. +2C-2C-C -OH 1 0.025 180.0 -3. +2C-2C-C -OH 1 1.104 180.0 -2. +2C-2C-C -OH 1 0.824 180.0 1. +2C-2C-C -N 1 0.042 0.0 -4. +2C-2C-C -N 1 0.085 180.0 -3. +2C-2C-C -N 1 0.845 180.0 -2. +2C-2C-C -N 1 0.609 180.0 1. +CX-2C-2C-CO 1 0.056 180.0 -4. +CX-2C-2C-CO 1 0.608 180.0 -3. +CX-2C-2C-CO 1 0.222 180.0 -2. +CX-2C-2C-CO 1 1.367 180.0 1. +2C-2C-CO-O2 1 0.064 0.0 -4. +2C-2C-CO-O2 1 0.390 180.0 2. +CX-2C-2C-S 1 0.028 0.0 -4. +CX-2C-2C-S 1 0.016 0.0 -3. +CX-2C-2C-S 1 0.245 0.0 -2. +CX-2C-2C-S 1 0.417 0.0 1. +2C-2C-S -CT 1 0.057 0.0 -4. +2C-2C-S -CT 1 0.414 0.0 -3. +2C-2C-S -CT 1 0.442 0.0 -2. +2C-2C-S -CT 1 0.247 180.0 1. +C -CX-2C-S 1 0.278 0.0 -4. C-C +C -CX-2C-S 1 0.323 0.0 -3. +C -CX-2C-S 1 0.394 180.0 -2. +C -CX-2C-S 1 0.602 0.0 1. +N -CX-2C-S 1 0.064 0.0 -4. +N -CX-2C-S 1 0.323 0.0 -3. +N -CX-2C-S 1 0.021 180.0 -2. +N -CX-2C-S 1 0.469 0.0 1. +N3-CX-2C-S 1 0.064 0.0 -4. +N3-CX-2C-S 1 0.323 0.0 -3. +N3-CX-2C-S 1 0.021 180.0 -2. +N3-CX-2C-S 1 0.469 0.0 1. +CX-2C-S -S 1 0.135 180.0 -4. +CX-2C-S -S 1 0.302 0.0 -3. +CX-2C-S -S 1 0.666 0.0 -2. +CX-2C-S -S 1 0.056 0.0 1. +2C-S -S -2C 1 0.379 0.0 -4. +2C-S -S -2C 1 0.682 0.0 -3. +2C-S -S -2C 1 4.480 0.0 -2. +2C-S -S -2C 1 0.420 0.0 1. + +IMPR +X -O2-CO-O2 10.5 180. 2. +2C-O -C -OH 10.5 180. 2. +CA-CA-CA-2C 1.1 180. 2. + +NONB + 2C 1.9080 0.1094 Spellmeyer + 3C 1.9080 0.1094 Spellmeyer + C8 1.9080 0.1094 Spellmeyer + CO 1.9080 0.0860 OPLS + + diff --git a/test/Test_Build/leaprc.protein.ff14SB b/test/Test_Build/leaprc.protein.ff14SB new file mode 100644 index 0000000000..cfb292f1fd --- /dev/null +++ b/test/Test_Build/leaprc.protein.ff14SB @@ -0,0 +1,127 @@ +logFile leap.log +# +# ----- leaprc for loading the ff14SB force field +# ----- NOTE: this is designed for PDB format 3! +# +# load atom type hybridizations +# +addAtomTypes { + { "H" "H" "sp3" } + { "HO" "H" "sp3" } + { "HS" "H" "sp3" } + { "H1" "H" "sp3" } + { "H2" "H" "sp3" } + { "H3" "H" "sp3" } + { "H4" "H" "sp3" } + { "H5" "H" "sp3" } + { "HW" "H" "sp3" } + { "HC" "H" "sp3" } + { "HA" "H" "sp3" } + { "HP" "H" "sp3" } + { "HZ" "H" "sp3" } + { "OH" "O" "sp3" } + { "OS" "O" "sp3" } + { "O" "O" "sp2" } + { "O2" "O" "sp2" } + { "OP" "O" "sp2" } + { "OW" "O" "sp3" } + { "CT" "C" "sp3" } + { "CX" "C" "sp3" } + { "C8" "C" "sp3" } + { "2C" "C" "sp3" } + { "3C" "C" "sp3" } + { "CH" "C" "sp3" } + { "CS" "C" "sp2" } + { "C" "C" "sp2" } + { "CO" "C" "sp2" } + { "C*" "C" "sp2" } + { "CA" "C" "sp2" } + { "CB" "C" "sp2" } + { "CC" "C" "sp2" } + { "CN" "C" "sp2" } + { "CM" "C" "sp2" } + { "CK" "C" "sp2" } + { "CQ" "C" "sp2" } + { "CD" "C" "sp2" } + { "C5" "C" "sp2" } + { "C4" "C" "sp2" } + { "CP" "C" "sp2" } + { "CI" "C" "sp3" } + { "CJ" "C" "sp2" } + { "CW" "C" "sp2" } + { "CV" "C" "sp2" } + { "CR" "C" "sp2" } + { "CA" "C" "sp2" } + { "CY" "C" "sp2" } + { "C0" "Ca" "sp3" } + { "MG" "Mg" "sp3" } + { "N" "N" "sp2" } + { "NA" "N" "sp2" } + { "N2" "N" "sp2" } + { "N*" "N" "sp2" } + { "NP" "N" "sp2" } + { "NQ" "N" "sp2" } + { "NB" "N" "sp2" } + { "NC" "N" "sp2" } + { "NT" "N" "sp3" } + { "NY" "N" "sp2" } + { "N3" "N" "sp3" } + { "S" "S" "sp3" } + { "SH" "S" "sp3" } + { "P" "P" "sp3" } + { "LP" "" "sp3" } + { "EP" "" "sp3" } + { "F" "F" "sp3" } + { "Cl" "Cl" "sp3" } + { "Br" "Br" "sp3" } + { "I" "I" "sp3" } +} +# +# Load the main parameter set. +# +parm10 = loadamberparams parm10.dat +frcmod14SB = loadamberparams frcmod.ff14SB +# +# Load main chain and terminating amino acid libraries +# +loadOff amino12.lib +loadOff aminoct12.lib +loadOff aminont12.lib + +# +# Define the PDB name map for the amino acids +# +addPdbResMap { + { 0 "HYP" "HYP" } { 1 "HYP" "CHYP" } + { 0 "ALA" "NALA" } { 1 "ALA" "CALA" } + { 0 "ARG" "NARG" } { 1 "ARG" "CARG" } + { 0 "ASN" "NASN" } { 1 "ASN" "CASN" } + { 0 "ASP" "NASP" } { 1 "ASP" "CASP" } + { 0 "CYS" "NCYS" } { 1 "CYS" "CCYS" } + { 0 "CYX" "NCYX" } { 1 "CYX" "CCYX" } + { 0 "GLN" "NGLN" } { 1 "GLN" "CGLN" } + { 0 "GLU" "NGLU" } { 1 "GLU" "CGLU" } + { 0 "GLY" "NGLY" } { 1 "GLY" "CGLY" } + { 0 "HID" "NHID" } { 1 "HID" "CHID" } + { 0 "HIE" "NHIE" } { 1 "HIE" "CHIE" } + { 0 "HIP" "NHIP" } { 1 "HIP" "CHIP" } + { 0 "ILE" "NILE" } { 1 "ILE" "CILE" } + { 0 "LEU" "NLEU" } { 1 "LEU" "CLEU" } + { 0 "LYS" "NLYS" } { 1 "LYS" "CLYS" } + { 0 "MET" "NMET" } { 1 "MET" "CMET" } + { 0 "PHE" "NPHE" } { 1 "PHE" "CPHE" } + { 0 "PRO" "NPRO" } { 1 "PRO" "CPRO" } + { 0 "SER" "NSER" } { 1 "SER" "CSER" } + { 0 "THR" "NTHR" } { 1 "THR" "CTHR" } + { 0 "TRP" "NTRP" } { 1 "TRP" "CTRP" } + { 0 "TYR" "NTYR" } { 1 "TYR" "CTYR" } + { 0 "VAL" "NVAL" } { 1 "VAL" "CVAL" } + { 0 "HIS" "NHIS" } { 1 "HIS" "CHIS" } +} + +# +# assume that most often proteins use HIE +# +NHIS = NHIE +HIS = HIE +CHIS = CHIE diff --git a/test/Test_Build/parm10.dat b/test/Test_Build/parm10.dat new file mode 100644 index 0000000000..cb5815c94f --- /dev/null +++ b/test/Test_Build/parm10.dat @@ -0,0 +1,1005 @@ +PARM99 + frcmod.ff99SB + frcmod.parmbsc0 + OL3 for RNA +C 12.01 0.616 ! sp2 C carbonyl group +CA 12.01 0.360 sp2 C pure aromatic (benzene) +CB 12.01 0.360 sp2 aromatic C, 5&6 membered ring junction +CC 12.01 0.360 sp2 aromatic C, 5 memb. ring HIS +CD 12.01 0.360 sp2 C atom in the middle of: C=CD-CD=C +CI 12.01 parmbsc0 +CK 12.01 0.360 sp2 C 5 memb.ring in purines (dA,dG) +CP 12.01 0.360 sp2 C 5 memb.ring in purines (G) +CM 12.01 0.360 sp2 C pyrimidines in pos. 5 & 6 (dT,dC) +CS 12.01 0.360 sp2 C pyrimidines in pos. 5 & 6 (U) +CN 12.01 0.360 sp2 C aromatic 5&6 memb.ring junct.(TRP) +CQ 12.01 0.360 sp2 C in 5 mem.ring of purines between 2 N +CR 12.01 0.360 sp2 arom as CQ but in HIS +CT 12.01 0.878 sp3 aliphatic C +CV 12.01 0.360 sp2 arom. 5 memb.ring w/1 N and 1 H (HIS) +CW 12.01 0.360 sp2 arom. 5 memb.ring w/1 N-H and 1 H (HIS) +C* 12.01 0.360 sp2 arom. 5 memb.ring w/1 subst. (TRP) +CX 12.01 0.360 protein C-alpha (new to ff10) +CY 12.01 0.360 nitrile C (Howard et al.JCC,16,243,1995) +CZ 12.01 0.360 sp C (Howard et al.JCC,16,243,1995) +C5 12.01 0.360 sp2 C 5 memb.ring in purines (A) +C4 12.01 0.360 sp2 C pyrimidines in pos. 5 & 6 (C) +C0 40.08 calcium +H 1.008 0.161 H bonded to nitrogen atoms +HC 1.008 0.135 H aliph. bond. to C without electrwd.group +H1 1.008 0.135 H aliph. bond. to C with 1 electrwd. group +H2 1.008 0.135 H aliph. bond. to C with 2 electrwd.groups +H3 1.008 0.135 H aliph. bond. to C with 3 eletrwd.groups +HA 1.008 0.167 H arom. bond. to C without elctrwd. groups +H4 1.008 0.167 H arom. bond. to C with 1 electrwd. group +H5 1.008 0.167 H arom.at C with 2 elctrwd. gr,+HCOO group +HO 1.008 0.135 hydroxyl group +HS 1.008 0.135 hydrogen bonded to sulphur (pol?) +HP 1.008 0.135 H bonded to C next to positively charged gr +HZ 1.008 0.161 H bond sp C (Howard et al.JCC,16,243,1995) +F 19.00 0.320 fluorine (not fluoride!) +Cl 35.45 1.910 chlorine (Applequist) (not chloride!) +Br 79.90 2.880 bromine (Applequist) (not bromide!) +I 126.9 4.690 iodine (Applequist) (not iodide!) +MG 24.305 0.120 magnesium +N 14.01 0.530 sp2 nitrogen in amide groups +NA 14.01 0.530 sp2 N in 5 memb.ring w/H atom (HIS) +NB 14.01 0.530 sp2 N in 5 memb.ring w/LP (HIS,ADE,GUA) +NC 14.01 0.530 sp2 N in 6 memb.ring w/LP (ADE,GUA) +N2 14.01 0.530 sp2 N in amino groups +N3 14.01 0.530 sp3 N for charged amino groups (Lys, etc) +NT 14.01 0.530 sp3 N for amino groups amino groups +N* 14.01 0.530 sp2 N +NY 14.01 0.530 nitrile N (Howard et al.JCC,16,243,1995) +O 16.00 0.434 carbonyl group oxygen +O2 16.00 0.434 carboxyl and phosphate group oxygen +OH 16.00 0.465 oxygen in hydroxyl group +OS 16.00 0.465 ether and ester oxygen +OP 16.00 0.465 2- phosphate oxygen +P 30.97 1.538 phosphate,pol:JACS,112,8543,90,K.J.Miller +S 32.06 2.900 S in disulfide linkage,pol:JPC,102,2399,98 +SH 32.06 2.900 S in cystine +CU 63.55 copper +FE 55.00 iron + +C H HO N NA NB NC N2 NT N2 N3 N* O OH OS P O2 +C -C 310.0 1.525 Junmei et al, 1999 +C -CA 469.0 1.409 JCC,7,(1986),230; (not used any more in TYR) +C -CB 447.0 1.419 JCC,7,(1986),230; GUA +C -CM 410.0 1.444 JCC,7,(1986),230; THY,URA +C -CS 410.0 1.444 JCC,7,(1986),230; THY,URA +C -CT 317.0 1.522 JCC,7,(1986),230; AA +C -CX 317.0 1.522 JCC,7,(1986),230; AA (was C-CT) +C -N 490.0 1.335 JCC,7,(1986),230; AA +C -N* 424.0 1.383 JCC,7,(1986),230; CYT,URA +C -NA 418.0 1.388 JCC,7,(1986),230; GUA.URA +C -NC 457.0 1.358 JCC,7,(1986),230; CYT +C -O 570.0 1.229 JCC,7,(1986),230; AA,CYT,GUA,THY,URA +C -O2 656.0 1.250 JCC,7,(1986),230; GLU,ASP +C -OH 450.0 1.364 JCC,7,(1986),230; (not used any more for TYR) +C -OS 450.0 1.323 Junmei et al, 1999 +C -H4 367.0 1.080 Junmei et al, 1999 +C -H5 367.0 1.080 Junmei et al, 1999 +CA-CA 469.0 1.400 JCC,7,(1986),230; BENZENE,PHE,TRP,TYR +CA-CB 469.0 1.404 JCC,7,(1986),230; ADE,TRP +CA-CM 427.0 1.433 JCC,7,(1986),230; CYT +CA-CS 427.0 1.433 JCC,7,(1986),230; CYT +CA-CN 469.0 1.400 JCC,7,(1986),230; TRP +CA-CT 317.0 1.510 JCC,7,(1986),230; PHE,TYR +CA-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; PHE,TRP,TYR +CA-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; no assigned +CA-N2 481.0 1.340 JCC,7,(1986),230; ARG,CYT,GUA +CA-NA 427.0 1.381 JCC,7,(1986),230; GUA +CA-NC 483.0 1.339 JCC,7,(1986),230; ADE,CYT,GUA +CA-OH 450.0 1.364 substituted for C-OH in tyr +CB-CB 520.0 1.370 JCC,7,(1986),230; ADE,GUA +CB-N* 436.0 1.374 JCC,7,(1986),230; ADE,GUA +CB-NB 414.0 1.391 JCC,7,(1986),230; ADE,GUA +CB-NC 461.0 1.354 JCC,7,(1986),230; ADE,GUA +CD-HA 367.0 1.080 Junmei et al, 1999 +CD-CD 469.0 1.400 Junmei et al, 1999 +CD-CM 549.0 1.350 Junmei et al, 1999 +CD-CS 549.0 1.350 Junmei et al, 1999 +CD-CT 317.0 1.510 Junmei et al, 1999 +CK-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE,GUA +CK-N* 440.0 1.371 JCC,7,(1986),230; ADE,GUA +CK-NB 529.0 1.304 JCC,7,(1986),230; ADE,GUA +CP-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE,GUA +CP-N* 440.0 1.371 JCC,7,(1986),230; ADE,GUA +CP-NB 529.0 1.304 JCC,7,(1986),230; ADE,GUA +CM-CM 549.0 1.350 JCC,7,(1986),230; CYT,THY,URA +CM-CT 317.0 1.510 JCC,7,(1986),230; THY +CM-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA +CM-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA +CM-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; not assigned +CM-N* 448.0 1.365 JCC,7,(1986),230; CYT,THY,URA +CM-OS 480.0 1.240 Junmei et al, 1999 +CS-CS 549.0 1.350 JCC,7,(1986),230; CYT,THY,URA +CS-CT 317.0 1.510 JCC,7,(1986),230; THY +CS-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA +CS-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA +CS-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; not assigned +CS-N* 448.0 1.365 JCC,7,(1986),230; CYT,THY,URA +CS-OS 480.0 1.240 Junmei et al, 1999 +CQ-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE +CQ-NC 502.0 1.324 JCC,7,(1986),230; ADE +CT-CT 310.0 1.526 JCC,7,(1986),230; AA, SUGARS +CX-CT 310.0 1.526 JCC,7,(1986),230; AA, SUGARS (was CT-CT) +CT-HC 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, SUGARS +CT-H1 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, RIBOSE +CX-H1 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, RIBOSE (was CT-H1) +CT-H2 340.0 1.090 changed from 331 bsd on NMA nmodes; SUGARS +CT-H3 340.0 1.090 changed from 331 bsd on NMA nmodes; not assigned +CT-HP 340.0 1.090 changed from 331; AA-lysine, methyl ammonium cation +CX-HP 340.0 1.090 changed from 331; AA-lysine, methyl ammonium cation (was CT-HP) +CT-N* 337.0 1.475 JCC,7,(1986),230; ADE,CYT,GUA,THY,URA +CT-N2 337.0 1.463 JCC,7,(1986),230; ARG +CT-OH 320.0 1.410 JCC,7,(1986),230; SUGARS +CT-OS 320.0 1.410 JCC,7,(1986),230; NUCLEIC ACIDS +C*-HC 367.0 1.080 changed from 340. bsd on C6H6 nmodes, not needed AA +C*-CB 388.0 1.459 JCC,7,(1986),230; TRP +C*-CT 317.0 1.495 JCC,7,(1986),230; TRP +C*-CW 546.0 1.352 JCC,7,(1986),230; TRP +CB-CN 447.0 1.419 JCC,7,(1986),230; TRP +CC-CT 317.0 1.504 JCC,7,(1986),230; HIS +CC-CV 512.0 1.375 JCC,7,(1986),230; HIS(delta) +CC-CW 518.0 1.371 JCC,7,(1986),230; HIS(epsilon) +CC-NA 422.0 1.385 JCC,7,(1986),230; HIS +CC-NB 410.0 1.394 JCC,7,(1986),230; HIS +CN-NA 428.0 1.380 JCC,7,(1986),230; TRP +CR-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes;HIS +CR-NA 477.0 1.343 JCC,7,(1986),230; HIS +CR-NB 488.0 1.335 JCC,7,(1986),230; HIS +CT-N 337.0 1.449 JCC,7,(1986),230; AA +CX-N 337.0 1.449 JCC,7,(1986),230; AA (was CT-N) +CT-N3 367.0 1.471 JCC,7,(1986),230; LYS +CX-N3 367.0 1.471 JCC,7,(1986),230; LYS (was CT-N3) +CT-NT 367.0 1.471 for neutral amines +CT-S 227.0 1.810 changed from 222.0 based on dimethylS nmodes +CT-SH 237.0 1.810 changed from 222.0 based on methanethiol nmodes +CT-CY 400.0 1.458 Howard et al JCC.16,243,1995 +CT-CZ 400.0 1.459 Howard et al JCC,16,243,1995 +CV-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; HIS +CV-NB 410.0 1.394 JCC,7,(1986),230; HIS +CW-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes;HIS(epsilon,+) +CW-NA 427.0 1.381 JCC,7,(1986),230; HIS,TRP +CY-NY 600.0 1.150 Howard et al JCC,16,243,1995 +CZ-CZ 600.0 1.206 Howard et al JCC,16,243,1995 +CZ-HZ 400.0 1.056 Howard et al JCC,16,243,1995 +OP-P 525.0 1.480 JCC,7,(1986),230; NA PHOSPHATES +O2-P 525.0 1.480 JCC,7,(1986),230; NA PHOSPHATES +OH-P 230.0 1.610 JCC,7,(1986),230; NA PHOSPHATES +OS-P 230.0 1.610 JCC,7,(1986),230; NA PHOSPHATES +NA-P 250.0 1.840 phosphohistidine +H -N2 434.0 1.010 JCC,7,(1986),230; ADE,CYT,GUA,ARG +H -N* 434.0 1.010 for plain unmethylated bases ADE,CYT,GUA,ARG +H -NA 434.0 1.010 JCC,7,(1986),230; GUA,URA,HIS +H -N 434.0 1.010 JCC,7,(1986),230; AA +H -N3 434.0 1.010 JCC,7,(1986),230; LYS +H -NT 434.0 1.010 for neutral amines +HO-OH 553.0 0.960 JCC,7,(1986),230; SUGARS,SER,TYR +HO-OS 553.0 0.960 JCC,7,(1986),230; NUCLEOTIDE ENDS +HS-SH 274.0 1.336 JCC,7,(1986),230; CYS +S -S 166.0 2.038 JCC,7,(1986),230; CYX (SCHERAGA) +F -CT 367.0 1.380 JCC,13,(1992),963;CF4; R0=1.332 FOR CHF3 +Cl-CT 232.0 1.766 6-31g* opt +Br-CT 159.0 1.944 Junmei et al,99 +I -CT 148.0 2.166 Junmei et al,99 +F -CA 386.0 1.359 Junmei et al,99 +Cl-CA 193.0 1.727 Junmei et al,99 +I -CA 171.0 2.075 Junmei et al,99 +Br-CA 172.0 1.890 Junmei et al,99 +EP-O 600.0 0.200 or 0.35 +EP-OH 600.0 0.200 or 0.35 +EP-OS 600.0 0.200 or 0.35 +EP-N3 600.0 0.200 or 0.35 +EP-NT 600.0 0.200 or 0.35 +EP-NB 600.0 0.200 or 0.35 histidines, nucleic acids +EP-NC 600.0 0.200 or 0.35 nucleic acids +EP-S 600.0 0.700 cys,cyx,met +EP-SH 600.0 0.700 cys,cyx +CI-H1 340.0 1.090 parmbsc0 +CI-CT 310.0 1.526 parmbsc0 +OS-CI 320.0 1.410 parmbsc0 +OH-CI 320.0 1.410 parmbsc0 +C5-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE,GUA +C5-N* 440.0 1.371 JCC,7,(1986),230; ADE,GUA +C5-NB 529.0 1.304 JCC,7,(1986),230; ADE,GUA +C -C4 410.0 1.444 JCC,7,(1986),230; THY,URA +CA-C4 427.0 1.433 JCC,7,(1986),230; CYT +C4-C4 549.0 1.350 JCC,7,(1986),230; CYT,THY,URA +C4-CT 317.0 1.510 JCC,7,(1986),230; THY +C4-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA +C4-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA +C4-N* 448.0 1.365 JCC,7,(1986),230; CYT,THY,URA + +C -C -O 80.0 120.00 Junmei et al, 1999 acrolein +C -C -OH 80.0 120.00 Junmei et al, 1999 +CA-C -CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes; AA +CA-C -OH 70.0 120.00 AA (not used in tyr) +CA-C -OS 70.0 120.00 phosphotyrosine +CC-NA-P 76.7 125.10 phosphohistidine +CR-NA-P 76.7 125.10 phosphohistidine +NA-P -OP 42.9 102.38 phosphohistidine +CB-C -NA 70.0 111.30 NA +CB-C -O 80.0 128.80 +CM-C -NA 70.0 114.10 +CM-C -O 80.0 125.30 +CS-C -NA 70.0 114.10 +CS-C -O 80.0 125.30 +CT-C -O 80.0 120.40 +CX-C -O 80.0 120.40 (was CT-C-O) +CT-C -O2 70.0 117.00 +CX-C -O2 70.0 117.00 (was CT-C -O2) +CT-C -N 70.0 116.60 AA general +CX-C -N 70.0 116.60 AA general (was CT-C-N) +CT-C -CT 63.0 117.00 Junmei et al, 1999 +CT-C -OS 80.0 115.00 Junmei et al, 1999 +CT-C -OH 80.0 110.00 Junmei et al, 1999 +CX-C -OH 80.0 110.00 Junmei et al, 1999 (was CT-C-OH) +N*-C -NA 70.0 115.40 +N*-C -NC 70.0 118.60 +N*-C -O 80.0 120.90 +NA-C -O 80.0 120.60 +NC-C -O 80.0 122.50 +N -C -O 80.0 122.90 AA general +O -C -O 80.0 126.00 AA COO- terminal residues +O -C -OH 80.0 120.00 (check with Junmei for: theta0:120.0?) +O -C -OS 80.0 125.00 Junmei et al, 1999 +O2-C -O2 80.0 126.00 AA GLU (SCH JPC 79,2379) +H4-C -C 50.0 120.00 Junmei et al, 1999 +H4-C -CM 50.0 115.00 Junmei et al, 1999 +H4-C -CS 50.0 115.00 Junmei et al, 1999 +H4-C -CT 50.0 115.00 Junmei et al, 1999 +H4-C -O 50.0 120.00 Junmei et al, 1999 +H4-C -OH 50.0 120.00 Junmei et al, 1999 +H5-C -N 50.0 120.00 Junmei et al, 1999 +H5-C -O 50.0 119.00 Junmei et al, 1999 +H5-C -OH 50.0 107.00 Junmei et al, 1999 +H5-C -OS 50.0 107.00 Junmei et al, 1999 +C -CA-CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes +C -CA-HA 50.0 120.00 AA (not used in tyr) +CA-CA-CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes +CA-CA-CB 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes +CA-CA-CT 70.0 120.00 +CA-CA-HA 50.0 120.00 +CA-CA-H4 50.0 120.00 +CA-CA-OH 70.0 120.00 replacement in tyr +CA-CA-CN 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes; AA trp +CB-CA-HA 50.0 120.00 +CB-CA-H4 50.0 120.00 +CB-CA-N2 70.0 123.50 +CB-CA-NC 70.0 117.30 +CM-CA-N2 70.0 120.10 +CM-CA-NC 70.0 121.50 +CS-CA-N2 70.0 120.10 +CS-CA-NC 70.0 121.50 +CN-CA-HA 50.0 120.00 AA trp +NA-CA-NC 70.0 123.30 +N2-CA-NA 70.0 116.00 +N2-CA-NC 70.0 119.30 +N2-CA-N2 70.0 120.00 AA arg +F -CA-CA 70.0 121.00 Junmei et al,99 +Cl-CA-CA 70.0 118.80 Junmei et al,99 +Br-CA-CA 70.0 118.80 Junmei et al,99 +I -CA-CA 70.0 118.80 Junmei et al,99 +C -CB-CB 63.0 119.20 changed from 85.0 bsd on C6H6 nmodes; NA gua +C -CB-NB 70.0 130.00 +CA-CB-CB 63.0 117.30 changed from 85.0 bsd on C6H6 nmodes; NA ade +CA-CB-NB 70.0 132.40 +CB-CB-N* 70.0 106.20 +CB-CB-NB 70.0 110.40 +CB-CB-NC 70.0 127.70 +C*-CB-CA 63.0 134.90 changed from 85.0 bsd on C6H6 nmodes; AA trp +C*-CB-CN 63.0 108.80 changed from 85.0 bsd on C6H6 nmodes; AA trp +CA-CB-CN 63.0 116.20 changed from 85.0 bsd on C6H6 nmodes; AA trp +N*-CB-NC 70.0 126.20 +CD-CD-CM 63.0 120.00 Junmei et al, 1999 +CD-CD-CS 63.0 120.00 Junmei et al, 1999 +CD-CD-CT 70.0 120.00 Junmei et al, 1999 +CM-CD-CT 70.0 120.00 Junmei et al, 1999 +CS-CD-CT 70.0 120.00 Junmei et al, 1999 +HA-CD-HA 35.0 119.00 Junmei et al, 1999 +HA-CD-CD 50.0 120.00 Junmei et al, 1999 +HA-CD-CM 50.0 120.00 Junmei et al, 1999 +HA-CD-CS 50.0 120.00 Junmei et al, 1999 +H5-CK-N* 50.0 123.05 +H5-CK-NB 50.0 123.05 +N*-CK-NB 70.0 113.90 +H5-CP-N* 50.0 123.05 +H5-CP-NB 50.0 123.05 +N*-CP-NB 70.0 113.90 +C -CM-CM 63.0 120.70 changed from 85.0 bsd on C6H6 nmodes; NA thy +C -CM-CT 70.0 119.70 +C -CM-HA 50.0 119.70 +C -CM-H4 50.0 119.70 +CA-CM-CM 63.0 117.00 changed from 85.0 bsd on C6H6 nmodes; NA cyt +CA-CM-HA 50.0 123.30 +CA-CM-H4 50.0 123.30 +CM-CM-CT 70.0 119.70 +CM-CM-HA 50.0 119.70 +CM-CM-H4 50.0 119.70 +CM-CM-N* 70.0 121.20 +CM-CM-OS 80.0 125.00 Junmei et al, 1999 +H4-CM-N* 50.0 119.10 +H4-CM-OS 50.0 113.00 Junmei et al, 1999 +HA-CM-HA 35.0 120.00 Junmei et al, 1999 +HA-CM-CD 50.0 120.00 Junmei et al, 1999 +HA-CM-CT 50.0 120.00 Junmei et al, 1999 +C -CS-CS 63.0 120.70 changed from 85.0 bsd on C6H6 nmodes; NA thy +C -CS-CT 70.0 119.70 +C -CS-HA 50.0 119.70 +C -CS-H4 50.0 119.70 +CA-CS-CS 63.0 117.00 changed from 85.0 bsd on C6H6 nmodes; NA cyt +CA-CS-HA 50.0 123.30 +CA-CS-H4 50.0 123.30 +CM-CS-CT 70.0 119.70 +CS-CS-HA 50.0 119.70 +CS-CS-H4 50.0 119.70 +CS-CS-N* 70.0 121.20 +CS-CS-OS 80.0 125.00 Junmei et al, 1999 +H4-CS-N* 50.0 119.10 +H4-CS-OS 50.0 113.00 Junmei et al, 1999 +HA-CS-HA 35.0 120.00 Junmei et al, 1999 +HA-CS-CD 50.0 120.00 Junmei et al, 1999 +HA-CS-CT 50.0 120.00 Junmei et al, 1999 +NC-CQ-NC 70.0 129.10 +H5-CQ-NC 50.0 115.45 +H1-CT-H1 35.0 109.50 +H1-CX-H1 35.0 109.50 (was H1-CT-H1) +H1-CT-N* 50.0 109.50 changed based on NMA nmodes +H1-CT-OH 50.0 109.50 changed based on NMA nmodes +H1-CT-OS 50.0 109.50 changed based on NMA nmodes +H1-CT-CM 50.0 109.50 Junmei et al, 1999 +H1-CT-CS 50.0 109.50 Junmei et al, 1999 +H1-CT-CY 50.0 110.00 Junmei et al, 1999 +H1-CT-CZ 50.0 110.00 Junmei et al, 1999 +H1-CT-N 50.0 109.50 AA general changed based on NMA nmodes +H1-CX-N 50.0 109.50 AA general (was H1-CT-N) +H1-CT-S 50.0 109.50 AA cys changed based on NMA nmodes +H1-CT-SH 50.0 109.50 AA cyx changed based on NMA nmodes +H1-CT-N2 50.0 109.50 AA arg changed based on NMA nmodes +H1-CT-NT 50.0 109.50 neutral amines +H2-CT-H2 35.0 109.50 AA lys +H2-CT-N* 50.0 109.50 changed based on NMA nmodes +H2-CT-OS 50.0 109.50 changed based on NMA nmodes +HP-CT-HP 35.0 109.50 AA lys, ch3nh4+ +HP-CX-HP 35.0 109.50 AA lys, ch3nh4+ (was HP-CT-HP) +HP-CT-N3 50.0 109.50 AA lys, ch3nh3+, changed based on NMA nmodes +HP-CX-N3 50.0 109.50 AA lys, ch3nh3+, changed based on NMA nmodes (was HP-CT-N3) +HC-CT-HC 35.0 109.50 +HC-CT-CM 50.0 109.50 changed based on NMA nmodes +HC-CT-CS 50.0 109.50 changed based on NMA nmodes +HC-CT-CD 50.0 109.50 Junmei et al, 1999 +HC-CT-CZ 50.0 110.00 Junmei et al, 1999 +C -CT-H1 50.0 109.50 AA general changed based on NMA nmodes +C -CX-H1 50.0 109.50 AA general (was C-CT-H1) +C -CT-HP 50.0 109.50 AA zwitterion changed based on NMA nmodes +C -CX-HP 50.0 109.50 AA zwitterion changed based on NMA nmodes (was C -CT-HP) +C -CT-HC 50.0 109.50 AA gln changed based on NMA nmodes +C -CT-N 63.0 110.10 AA general +C -CX-N 63.0 110.10 AA general (was C-CT-N) +C -CT-N3 80.0 111.20 AA amino terminal residues +C -CX-N3 80.0 111.20 AA amino terminal residues (was C -CT-N3) +C -CT-CT 63.0 111.10 AA general +C -CT-CX 63.0 111.10 AA general (was C -CT-CT) +C -CX-CT 63.0 111.10 AA general (was C-CT-CT) +C -CT-OS 60.0 109.50 Junmei et al, 1999 +CA-CT-HC 50.0 109.50 AA tyr changed based on NMA nmodes +CC-CT-CT 63.0 113.10 AA his +CC-CT-CX 63.0 113.10 AA his (was CC-CT-CT) +CC-CT-HC 50.0 109.50 AA his changed based on NMA nmodes +CM-CT-CT 63.0 111.00 Junmei et al, 1999 (last change: Mar24,99) +CM-CT-OS 50.0 109.50 Junmei et al, 1999 +CS-CT-CT 63.0 111.00 Junmei et al, 1999 (last change: Mar24,99) +CS-CT-OS 50.0 109.50 Junmei et al, 1999 +CT-CT-CT 40.0 109.50 +CT-CT-CX 40.0 109.50 (was CT-CT-CT) +CT-CT-HC 50.0 109.50 changed based on NMA nmodes +CX-CT-HC 50.0 109.50 changed based on NMA nmodes (was CT-CT-HC) +CT-CT-H1 50.0 109.50 changed based on NMA nmodes +CT-CX-H1 50.0 109.50 changed based on NMA nmodes (was CT-CT-H1) +CX-CT-H1 50.0 109.50 changed based on NMA nmodes (was CT-CT-H1) +CT-CT-H2 50.0 109.50 changed based on NMA nmodes +CT-CT-HP 50.0 109.50 changed based on NMA nmodes +CT-CX-HP 50.0 109.50 changed based on NMA nmodes (was CT-CT-HP) +CT-CT-N* 50.0 109.50 +CT-CT-OH 50.0 109.50 +CX-CT-OH 50.0 109.50 (was CT-CT-OH) +CT-CT-OS 50.0 109.50 +CT-CT-S 50.0 114.70 AA cyx (SCHERAGA JPC 79,1428) +CX-CT-S 50.0 114.70 AA cyx (SCHERAGA JPC 79,1428) (was CT-CT-S ) +CT-CT-SH 50.0 108.60 AA cys +CX-CT-SH 50.0 108.60 AA cys (was CT-CT-SH) +CT-CT-CA 63.0 114.00 AA phe tyr (SCH JPC 79,2379) +CX-CT-CA 63.0 114.00 AA phe tyr (SCH JPC 79,2379) (was CT-CT-CA) +CT-CT-N2 80.0 111.20 AA arg (JCP 76, 1439) +CT-CT-N 80.0 109.70 AA ala, general (JACS 94, 2657) +CT-CX-N 80.0 109.70 AA ala, general (was CT-CT-N) +CT-CT-N3 80.0 111.20 AA lys (JCP 76, 1439) +CT-CX-N3 80.0 111.20 AA lys (JCP 76, 1439) (was CT-CT-N3) +CT-CT-NT 80.0 111.20 neutral amines +CT-CT-CY 63.0 110.00 Junmei et al, 1999 +CT-CT-CZ 63.0 110.00 Junmei et al, 1999 +C*-CT-CT 63.0 115.60 AA trp +C*-CT-CX 63.0 115.60 AA trp (was C*-CT-CT) +C*-CT-HC 50.0 109.50 AA trp changed based on NMA nmodes +OS-CT-OS 160.0 101.00 Junmei et al, 1999 +OS-CT-CY 50.0 110.00 Junmei et al, 1999 +OS-CT-CZ 50.0 110.00 Junmei et al, 1999 +OS-CT-N* 50.0 109.50 +F -CT-F 77.0 109.10 JCC,13,(1992),963; +F -CT-H1 50.0 109.50 JCC,13,(1992),963; +F -CT-CT 50.0 109.00 +F -CT-H2 50.0 109.50 +Cl-CT-CT 50.0 108.50 (6-31g* opt value) +Cl-CT-H1 50.0 108.50 (6-31g* opt value) +Br-CT-CT 50.0 108.00 Junmei et al 99 +Br-CT-H1 50.0 106.50 Junmei et al 99 +I -CT-CT 50.0 106.00 Junmei et al,99 +CT-CC-NA 70.0 120.00 AA his +CT-CC-CV 70.0 120.00 AA his +CT-CC-NB 70.0 120.00 AA his +CV-CC-NA 70.0 120.00 AA his +CW-CC-NA 70.0 120.00 AA his +CW-CC-NB 70.0 120.00 AA his +CT-CC-CW 70.0 120.00 AA his +H5-CR-NA 50.0 120.00 AA his +H5-CR-NB 50.0 120.00 AA his +NA-CR-NA 70.0 120.00 AA his +NA-CR-NB 70.0 120.00 AA his +CC-CV-H4 50.0 120.00 AA his +CC-CV-NB 70.0 120.00 AA his +H4-CV-NB 50.0 120.00 AA his +CC-CW-H4 50.0 120.00 AA his +CC-CW-NA 70.0 120.00 AA his +C*-CW-H4 50.0 120.00 AA trp +C*-CW-NA 70.0 108.70 AA trp +H4-CW-NA 50.0 120.00 AA his +CB-C*-CT 70.0 128.60 AA trp +CB-C*-CW 63.0 106.40 changed from 85.0 bsd on C6H6 nmodes; AA trp +CT-C*-CW 70.0 125.00 AA trp +CA-CN-CB 63.0 122.70 changed from 85.0 bsd on C6H6 nmodes; AA trp +CA-CN-NA 70.0 132.80 AA trp +CB-CN-NA 70.0 104.40 AA trp +CT-CY-NY 80.0 180.00 Junmei et al, 1999 +CT-CZ-CZ 80.0 180.00 Junmei et al, 1999 +CZ-CZ-HZ 50.0 180.00 Junmei et al, 1999 +C -N -CT 50.0 121.90 AA general +C -N -CX 50.0 121.90 AA general (was C-N-CT) +C -N -H 50.0 120.00 AA general, gln, asn,changed based on NMA nmodes +CT-N -H 50.0 118.04 AA general, changed based on NMA nmodes +CX-N -H 50.0 118.04 AA general, (was CT-N-H) +CT-N -CT 50.0 118.00 AA pro (DETAR JACS 99,1232) +CT-N -CX 50.0 118.00 AA pro (DETAR JACS 99,1232) (was CT-N -CT) +H -N -H 35.0 120.00 ade,cyt,gua,gln,asn ** +C -N*-CM 70.0 121.60 +C -N*-CS 70.0 121.60 +C -N*-CT 70.0 117.60 +C -N*-H 50.0 119.20 changed based on NMA nmodes +CB-N*-CK 70.0 105.40 +CB-N*-CP 70.0 105.40 +CB-N*-CT 70.0 125.80 +CB-N*-H 50.0 125.80 for unmethylated n.a. bases,chngd bsd NMA nmodes +CK-N*-CT 70.0 128.80 +CK-N*-H 50.0 128.80 for unmethylated n.a. bases,chngd bsd NMA nmodes +CP-N*-CT 70.0 128.80 +CP-N*-H 50.0 128.80 for unmethylated n.a. bases,chngd bsd NMA nmodes +CM-N*-CT 70.0 121.20 +CM-N*-H 50.0 121.20 for unmethylated n.a. bases,chngd bsd NMA nmodes +CS-N*-CT 70.0 121.20 +CS-N*-H 50.0 121.20 for unmethylated n.a. bases,chngd bsd NMA nmodes +CA-N2-H 50.0 120.00 +CA-N2-CT 50.0 123.20 AA arg +CT-N2-H 50.0 118.40 AA arg +H -N2-H 35.0 120.00 +CT-N3-H 50.0 109.50 AA lys, changed based on NMA nmodes +CX-N3-H 50.0 109.50 AA lys, changed based on NMA nmodes (was CT-N3-H ) +CT-N3-CT 50.0 109.50 AA pro/nt +CT-N3-CX 50.0 109.50 AA pro/nt (was CT-N3-CT) +H -N3-H 35.0 109.50 AA lys, AA(end) +CT-NT-H 50.0 109.50 neutral amines +CT-NT-CT 50.0 109.50 neutral amines +H -NT-H 35.0 109.50 neutral amines +C -NA-C 70.0 126.40 +C -NA-CA 70.0 125.20 +C -NA-H 50.0 116.80 changed based on NMA nmodes +CA-NA-H 50.0 118.00 changed based on NMA nmodes +CC-NA-CR 70.0 120.00 AA his +CC-NA-H 50.0 120.00 AA his, changed based on NMA nmodes +CR-NA-CW 70.0 120.00 AA his +CR-NA-H 50.0 120.00 AA his, changed based on NMA nmodes +CW-NA-H 50.0 120.00 AA his, changed based on NMA nmodes +CN-NA-CW 70.0 111.60 AA trp +CN-NA-H 50.0 123.10 AA trp, changed based on NMA nmodes +CB-NB-CK 70.0 103.80 +CB-NB-CP 70.0 103.80 +CC-NB-CR 70.0 117.00 AA his +CR-NB-CV 70.0 117.00 AA his +C -NC-CA 70.0 120.50 +CA-NC-CB 70.0 112.20 +CA-NC-CQ 70.0 118.60 +CB-NC-CQ 70.0 111.00 +C -OH-HO 50.0 113.00 (not used in tyr anymore) +CA-OH-HO 50.0 113.00 replacement in tyr +CT-OH-HO 55.0 108.50 +HO-OH-P 45.0 108.50 +C -OS-CT 60.0 117.00 Junmei et al, 1999 +CM-OS-CT 60.0 117.00 Junmei et al, 1999 +CS-OS-CT 60.0 117.00 Junmei et al, 1999 +CT-OS-CT 60.0 109.50 +CT-OS-P 100.0 120.50 +C -OS-P 100.0 120.50 phosphotyrosine +P -OS-P 100.0 120.50 +O2-P -OH 45.0 108.23 +O2-P -O2 140.0 119.90 +OP-P -OP 140.0 119.90 +OP-P -OS 100.0 108.23 +O2-P -OS 100.0 108.23 +OH-P -OS 45.0 102.60 +OS-P -OS 45.0 102.60 +CT-S -CT 62.0 98.90 AA met +CT-S -S 68.0 103.70 AA cyx (SCHERAGA JPC 79,1428) +CT-SH-HS 43.0 96.00 changed from 44.0 based on methanethiol nmodes +HS-SH-HS 35.0 92.07 AA cys +CB-NB-EP 150.0 126.0 NA +CC-NB-EP 150.0 126.0 his,NA +CK-NB-EP 150.0 126.0 NA +CP-NB-EP 150.0 126.0 NA +CR-NB-EP 150.0 126.0 his,NA +CV-NB-EP 150.0 126.0 his,NA +C -NC-EP 150.0 120.0 NA +CA-NC-EP 150.0 120.0 NA +CB-NC-EP 150.0 120.0 NA +CQ-NC-EP 150.0 120.0 NA +CT-N3-EP 150.0 109.5 in neutral lysine +H -N3-EP 150.0 109.5 in neutral lysine +CT-NT-EP 150.0 109.5 +H -NT-EP 150.0 109.5 +C -O -EP 150.0 120.0 +EP-O -EP 150.0 120.0 +C -OH-EP 150.0 120.0 +CT-OH-EP 150.0 109.5 +HO-OH-EP 150.0 109.5 +EP-OH-EP 150.0 109.5 +C -OS-EP 150.0 109.5 +CM-OS-EP 150.0 109.5 methyl vinyl ether +CS-OS-EP 150.0 109.5 methyl vinyl ether +CT-OS-EP 150.0 109.5 +EP-OS-EP 150.0 109.5 +CT-S -EP 150.0 90.0 cys,cyx,met +CT-SH-EP 150.0 90.0 cys,cyx,met +P -OS-EP 150.0 109.5 NA +EP-S -EP 150.0 180.0 cys,cyx,met +EP-SH-EP 150.0 180.0 cys,cyx,met +HS-SH-EP 150.0 90.0 cys +H1-CI-CT 50.0 109.50 parmbsc0 +H1-CI-H1 35.0 109.50 parmbsc0 +CI-CT-H1 50.0 109.50 parmbsc0 +CI-CT-OS 50.0 109.50 parmbsc0 +CI-CT-CT 40.0 109.50 parmbsc0 +OS-CI-H1 50.0 109.50 parmbsc0 +OS-CI-CT 50.0 109.50 parmbsc0 +P -OS-CI 100.0 120.50 parmbsc0 +OH-CI-H1 50.0 109.50 parmbsc0 +OH-CI-CT 50.0 109.50 parmbsc0 +HO-OH-CI 55.0 108.50 parmbsc0 +H5-C5-N* 50.0 123.05 +H5-C5-NB 50.0 123.05 +N*-C5-NB 70.0 113.90 +CB-N*-C5 70.0 105.40 +C5-N*-CT 70.0 128.80 +CB-NB-C5 70.0 103.80 +C4-C -NA 70.0 114.10 +C4-C -O 80.0 125.30 +C4-CA-N2 70.0 120.10 +C4-CA-NC 70.0 121.50 +C -C4-C4 63.0 120.70 changed from 85.0 bsd on C6H6 nmodes; NA thy +C -C4-CT 70.0 119.70 +C -C4-HA 50.0 119.70 +C -C4-H4 50.0 119.70 +CA-C4-C4 63.0 117.00 changed from 85.0 bsd on C6H6 nmodes; NA cyt +CA-C4-HA 50.0 123.30 +CA-C4-H4 50.0 123.30 +C4-C4-CT 70.0 119.70 +C4-C4-HA 50.0 119.70 +C4-C4-H4 50.0 119.70 +C4-C4-N* 70.0 121.20 +H4-C4-N* 50.0 119.10 +H1-CT-C4 50.0 109.50 Junmei et al, 1999 +HC-CT-C4 50.0 109.50 changed based on NMA nmodes +C -N*-C4 70.0 121.60 +C4-N*-CT 70.0 121.20 +EP-S -S 150.0 96.70 AA cyx (dac, from parm91 LP-S-S) + +X -C -C -X 4 14.50 180.0 2. Junmei et al, 1999 +X -C -CA-X 4 14.50 180.0 2. intrpol.bsd.on C6H6 +X -C -CB-X 4 12.00 180.0 2. intrpol.bsd.on C6H6 +X -C -CM-X 4 8.70 180.0 2. intrpol.bsd.on C6H6 +X -C -CS-X 4 8.70 180.0 2. intrpol.bsd.on C6H6 +X -C -CT-X 6 0.00 0.0 2. JCC,7,(1986),230 +X -C -CX-X 6 0.00 0.0 2. JCC,7,(1986),230 (was X -C -CT-X ) +X -C -N -X 4 10.00 180.0 2. AA,NMA +X -C -N*-X 4 5.80 180.0 2. JCC,7,(1986),230 +X -C -NA-X 4 5.40 180.0 2. JCC,7,(1986),230 +X -C -NC-X 2 8.00 180.0 2. JCC,7,(1986),230 +X -C -O -X 4 11.20 180.0 2. Junmei et al, 1999 +X -C -OH-X 2 4.60 180.0 2. Junmei et al, 1999 +X -C -OS-X 2 5.40 180.0 2. Junmei et al, 1999 +X -CA-CA-X 4 14.50 180.0 2. intrpol.bsd.on C6H6 +X -CA-CB-X 4 14.00 180.0 2. intrpol.bsd.on C6H6 +X -CA-CM-X 4 10.20 180.0 2. intrpol.bsd.on C6H6 +X -CA-CS-X 4 10.20 180.0 2. intrpol.bsd.on C6H6 +X -CA-CN-X 4 14.50 180.0 2. reinterpolated 93' +X -CA-CT-X 6 0.00 0.0 2. JCC,7,(1986),230 +X -CA-N2-X 4 9.60 180.0 2. reinterpolated 93' +X -CA-NA-X 4 6.00 180.0 2. JCC,7,(1986),230 +X -CA-NC-X 2 9.60 180.0 2. JCC,7,(1986),230 +X -CA-OH-X 2 1.80 180.0 2. Junmei et al, 99 +X -CB-CB-X 4 21.80 180.0 2. intrpol.bsd.on C6H6 +X -CB-CN-X 4 12.00 180.0 2. reinterpolated 93' +X -CB-N*-X 4 6.60 180.0 2. JCC,7,(1986),230 +X -CB-NB-X 2 5.10 180.0 2. JCC,7,(1986),230 +X -CB-NC-X 2 8.30 180.0 2. JCC,7,(1986),230 +X -CC-CT-X 6 0.00 0.0 2. JCC,7,(1986),230 +X -CC-CV-X 4 20.60 180.0 2. intrpol.bsd.on C6H6 +X -CC-CW-X 4 21.50 180.0 2. intrpol.bsd.on C6H6 +X -CC-NA-X 4 5.60 180.0 2. JCC,7,(1986),230 +X -CC-NB-X 2 4.80 180.0 2. JCC,7,(1986),230 +X -CD-CD-X 4 4.00 180.0 2. Junmei et al, 1999 +X -CD-CT-X 6 0.00 0.0 2. Junmei et al, 1999 +X -CD-CM-X 4 26.60 180.0 2. Junmei et al, 1999 +X -CD-CS-X 4 26.60 180.0 2. Junmei et al, 1999 +X -CK-N*-X 4 6.80 180.0 2. JCC,7,(1986),230 +X -CK-NB-X 2 20.00 180.0 2. JCC,7,(1986),230 +X -CP-N*-X 4 6.80 180.0 2. JCC,7,(1986),230 +X -CP-NB-X 2 20.00 180.0 2. JCC,7,(1986),230 +X -CM-CM-X 4 26.60 180.0 2. intrpol.bsd.on C6H6 +X -CM-CT-X 6 0.00 0.0 3. JCC,7,(1986),230 +X -CM-N*-X 4 7.40 180.0 2. JCC,7,(1986),230 +X -CM-OS-X 2 2.10 180.0 2. Junmei et al, 1999 +X -CS-CS-X 4 26.60 180.0 2. intrpol.bsd.on C6H6 +X -CS-CT-X 6 0.00 0.0 3. JCC,7,(1986),230 +X -CS-N*-X 4 7.40 180.0 2. JCC,7,(1986),230 +X -CS-OS-X 2 2.10 180.0 2. Junmei et al, 1999 +X -CN-NA-X 4 6.10 180.0 2. reinterpolated 93' +X -CQ-NC-X 2 13.60 180.0 2. JCC,7,(1986),230 +X -CT-CT-X 9 1.40 0.0 3. JCC,7,(1986),230 +X -CT-CX-X 9 1.40 0.0 3. JCC,7,(1986),230 (was X -CT-CT-X ) +X -CT-CY-X 3 0.00 0.0 1. Junmei et al, 1999 +X -CT-CZ-X 3 0.00 0.0 1. Junmei et al, 1999 +X -CT-N -X 6 0.00 0.0 2. JCC,7,(1986),230 +X -CX-N -X 6 0.00 0.0 2. JCC,7,(1986),230 (was X -CT-N -X ) +X -CT-N*-X 6 0.00 0.0 2. JCC,7,(1986),230 +X -CT-N2-X 6 0.00 0.0 3. JCC,7,(1986),230 +X -CT-NT-X 6 1.80 0.0 3. Junmei et al, 1999 +X -CT-N3-X 9 1.40 0.0 3. JCC,7,(1986),230 +X -CX-N3-X 9 1.40 0.0 3. JCC,7,(1986),230 (was X -CT-N3-X ) +X -CT-OH-X 3 0.50 0.0 3. JCC,7,(1986),230 +X -CT-OS-X 3 1.15 0.0 3. JCC,7,(1986),230 +X -CT-S -X 3 1.00 0.0 3. JCC,7,(1986),230 +X -CT-SH-X 3 0.75 0.0 3. JCC,7,(1986),230 +X -C*-CB-X 4 6.70 180.0 2. intrpol.bsd.onC6H6aa +X -C*-CT-X 6 0.00 0.0 2. JCC,7,(1986),230 +X -C*-CW-X 4 26.10 180.0 2. intrpol.bsd.on C6H6 +X -CR-NA-X 4 9.30 180.0 2. JCC,7,(1986),230 +X -CR-NB-X 2 10.00 180.0 2. JCC,7,(1986),230 +X -CV-NB-X 2 4.80 180.0 2. JCC,7,(1986),230 +X -CW-NA-X 4 6.00 180.0 2. JCC,7,(1986),230 +X -OH-P -X 3 0.75 0.0 3. JCC,7,(1986),230 +X -OS-P -X 3 0.75 0.0 3. JCC,7,(1986),230 +X -CI-OS-X 3 1.150 0.0 3. +X -CI-OH-X 3 0.500 0.0 3. +X -CI-CT-X 9 1.400 0.0 3. +X -C5-N*-X 4 6.80 180.0 2. JCC,7,(1986),230 +X -C5-NB-X 2 20.00 180.0 2. JCC,7,(1986),230 +X -C -C4-X 4 8.70 180.0 2. intrpol.bsd.on C6H6 +X -CA-C4-X 4 10.20 180.0 2. intrpol.bsd.on C6H6 +X -C4-C4-X 4 26.60 180.0 2. intrpol.bsd.on C6H6 +X -C4-CT-X 6 0.00 0.0 3. JCC,7,(1986),230 +X -C4-N*-X 4 7.40 180.0 2. JCC,7,(1986),230 +CT-OS-CT-CI 1 0.383 0.0 -3. +CT-OS-CT-CI 1 0.100 180.0 2. +H1-CI-CT-OS 1 0.00 0.0 -3. +H1-CI-CT-OS 1 0.250 0.0 1. +H1-CI-CT-OH 1 0.000 0.0 -3. +H1-CI-CT-OH 1 0.250 0.0 1. +H1-CT-CI-OS 1 0.00 0.0 -3. +H1-CT-CI-OS 1 0.250 0.0 1. +H1-CT-CI-OH 1 0.00 0.0 -3. +H1-CT-CI-OH 1 0.250 0.0 1. +CI-CT-CT-CT 1 0.180 0.0 -3. +CI-CT-CT-CT 1 0.250 180.0 -2. +CI-CT-CT-CT 1 0.200 180.0 1. +OP-P -OS-CA 1 0.0 180.0 -3. phosphotyrosine +OP-P -OS-CA 1 0.0 180.0 1. phosphotyrosine +CC-NA-P -OP 1 0.24 0.0 3. phosphohistidine +CR-NA-P -OP 1 0.00 0.0 3. phosphohistidine +OS-P -OS-CI 1 0.185181 31.79508 -1. alfa +OS-P -OS-CI 1 1.256531 351.95960 -2. alfa +OS-P -OS-CI 1 0.354858 357.24748 3. alfa +OH-P -OS-CI 1 0.185181 31.79508 -1. alfa +OH-P -OS-CI 1 1.256531 351.95960 -2. alfa +OH-P -OS-CI 1 0.354858 357.24748 3. alfa +CT-CT-CI-OS 1 1.178040 190.97653 -1. gamma +CT-CT-CI-OS 1 0.092102 295.63279 -2. gamma +CT-CT-CI-OS 1 0.962830 348.09535 3. gamma +CT-CT-CI-OH 1 1.178040 190.97653 -1. gamma +CT-CT-CI-OH 1 0.092102 295.63279 -2. gamma +CT-CT-CI-OH 1 0.962830 348.09535 3. gamma +HC-CT-C4-C4 1 0.38 180.0 -3. Junmei et al, 1999 +HC-CT-C4-C4 1 1.15 0.0 1. Junmei et al, 1999 +C4-C4-C -O 1 2.175 180.0 -2. Junmei et al, 1999 +C4-C4-C -O 1 0.30 0.0 3. Junmei et al, 1999 +OS-CT-N*-C5 1 0.96561 68.7902 -1. ol3 chi ade +OS-CT-N*-C5 1 1.07403 15.6360 -2. ol3 chi ade +OS-CT-N*-C5 1 0.45754 171.5787 -3. ol3 chi ade +OS-CT-N*-C5 1 0.30917 19.0921 4. ol3 chi ade +OS-CT-N*-CP 1 0.70510 74.7558 -1. ol3 chi gua +OS-CT-N*-CP 1 1.06546 6.2286 -2. ol3 chi gua +OS-CT-N*-CP 1 0.44273 168.6503 -3. ol3 chi gua +OS-CT-N*-CP 1 0.25602 3.9746 4. ol3 chi gua +OS-CT-N*-C4 1 1.22506 146.9892 -1. ol3 chi cyt +OS-CT-N*-C4 1 1.63459 16.4766 -2. ol3 chi cyt +OS-CT-N*-C4 1 0.93747 185.8774 -3. ol3 chi cyt +OS-CT-N*-C4 1 0.31033 32.1590 4. ol3 chi cyt +OS-CT-N*-CS 1 1.02514 149.8583 -1. ol3 chi ura +OS-CT-N*-CS 1 1.74876 16.7648 -2. ol3 chi ura +OS-CT-N*-CS 1 0.58150 179.3474 -3. ol3 chi ura +OS-CT-N*-CS 1 0.35148 16.0016 4. ol3 chi ura +C -N -CX-C 1 0.00 0.0 -4. four amplitudes and +C -N -CX-C 1 0.42 0.0 -3. phases for phi +C -N -CX-C 1 0.27 0.0 -2. +C -N -CX-C 1 0.00 0.0 1. +N -CX-C -N 1 0.00 0.0 -4. four amplitudes and +N -CX-C -N 1 0.55 180.0 -3. phases for psi +N -CX-C -N 1 1.58 180.0 -2. +N -CX-C -N 1 0.45 180.0 1. +CT-CT-N -C 1 0.00 0.0 -4. four amplitudes and +CT-CT-N -C 1 0.40 0.0 -3. phases for phi' +CT-CT-N -C 1 2.00 0.0 -2. +CT-CT-N -C 1 2.00 0.0 1. +CT-CX-N -C 1 0.00 0.0 -4. four amplitudes and +CT-CX-N -C 1 0.40 0.0 -3. phases for phi' +CT-CX-N -C 1 2.00 0.0 -2. +CT-CX-N -C 1 2.00 0.0 1. +CT-CT-C -N 1 0.00 0.0 -4. four amplitudes and +CT-CT-C -N 1 0.40 0.0 -3. phases for psi' +CT-CT-C -N 1 0.20 0.0 -2. +CT-CT-C -N 1 0.20 0.0 1. +CT-CX-C -N 1 0.00 0.0 -4. four amplitudes and +CT-CX-C -N 1 0.40 0.0 -3. phases for psi' +CT-CX-C -N 1 0.20 0.0 -2. +CT-CX-C -N 1 0.20 0.0 1. +CX-CT-C -N 1 0.00 0.0 -4. four amplitudes and +CX-CT-C -N 1 0.40 0.0 -3. phases for psi' +CX-CT-C -N 1 0.20 0.0 -2. +CX-CT-C -N 1 0.20 0.0 1. +H -N -C -O 1 2.50 180.0 -2. JCC,7,(1986),230 +H -N -C -O 1 2.00 0.0 1. J.C.cistrans-NMA DE +CT-S -S -CT 1 3.50 0.0 -2. JCC,7,(1986),230 +CT-S -S -CT 1 0.60 0.0 3. JCC,7,(1986),230 +OH-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230 +OH-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2 +OS-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230 +OS-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2 +H1-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999 +H1-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X +H1-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999 +H1-CX-C -O 1 0.80 0.0 -1. Junmei et al, 1999 (was H1-CT-C -O ) +H1-CX-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X +H1-CX-C -O 1 0.08 180.0 3. Junmei et al, 1999 (was H1-CT-C -O ) +HC-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999 +HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X +HC-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999 +HC-CT-CT-HC 1 0.15 0.0 3. Junmei et al, 1999 +HC-CT-CT-CT 1 0.16 0.0 3. Junmei et al, 1999 +HC-CT-CT-CX 1 0.16 0.0 3. Junmei et al, 1999 (was HC-CT-CT-CT) +HC-CT-CM-CM 1 0.38 180.0 -3. Junmei et al, 1999 +HC-CT-CM-CM 1 1.15 0.0 1. Junmei et al, 1999 +HC-CT-CS-CS 1 0.38 180.0 -3. Junmei et al, 1999 +HC-CT-CS-CS 1 1.15 0.0 1. Junmei et al, 1999 +HO-OH-CT-CT 1 0.16 0.0 -3. Junmei et al, 1999 +HO-OH-CT-CT 1 0.25 0.0 1. Junmei et al, 1999 +HO-OH-CT-CX 1 0.16 0.0 -3. Junmei et al, 1999 (was HO-OH-CT-CT) +HO-OH-CT-CX 1 0.25 0.0 1. Junmei et al, 1999 (was HO-OH-CT-CT) +HO-OH-C -O 1 2.30 180.0 -2. Junmei et al, 1999 +HO-OH-C -O 1 1.90 0.0 1. Junmei et al, 1999 +CM-CM-C -O 1 2.175 180.0 -2. Junmei et al, 1999 +CM-CM-C -O 1 0.30 0.0 3. Junmei et al, 1999 +CT-CM-CM-CT 1 6.65 180.0 -2. Junmei et al, 1999 +CT-CM-CM-CT 1 1.90 180.0 1. Junmei et al, 1999 +CS-CS-C -O 1 2.175 180.0 -2. Junmei et al, 1999 +CS-CS-C -O 1 0.30 0.0 3. Junmei et al, 1999 +CT-CS-CS-CT 1 6.65 180.0 -2. Junmei et al, 1999 +CT-CS-CS-CT 1 1.90 180.0 1. Junmei et al, 1999 +CT-CT-CT-CT 1 0.18 0.0 -3. Junmei et al, 1999 +CT-CT-CT-CT 1 0.25 180.0 -2. Junmei et al, 1999 +CT-CT-CT-CT 1 0.20 180.0 1. Junmei et al, 1999 +CX-CT-CT-CT 1 0.18 0.0 -3. Junmei et al, 1999 (was CT-CT-CT-CT) +CX-CT-CT-CT 1 0.25 180.0 -2. Junmei et al, 1999 (was CT-CT-CT-CT) +CX-CT-CT-CT 1 0.20 180.0 1. Junmei et al, 1999 (was CT-CT-CT-CT) +CT-CT-NT-CT 1 0.30 0.0 -3. Junmei et al, 1999 +CT-CT-NT-CT 1 0.48 180.0 2. Junmei et al, 1999 +CT-CT-OS-CT 1 0.383 0.0 -3. +CT-CT-OS-CT 1 0.1 180.0 2. +CT-CT-OS-C 1 0.383 0.0 -3. Junmei et al, 1999 +CT-CT-OS-C 1 0.80 180.0 1. Junmei et al, 1999 +CT-OS-CT-OS 1 0.10 0.0 -3. Junmei et al, 1999 +CT-OS-CT-OS 1 0.85 180.0 -2. Junmei et al, 1999 +CT-OS-CT-OS 1 1.35 180.0 1. Junmei et al, 1999 +CT-OS-CT-N* 1 0.383 0.0 -3. parm98.dat, TC,PC,PAK +CT-OS-CT-N* 1 0.65 0.0 2. Piotr et al. +CT-CZ-CZ-HZ 1 0.00 0.0 1. Junmei et al, 1999 +O -C -OS-CT 1 2.70 180.0 -2. Junmei et al, 1999 +O -C -OS-CT 1 1.40 180.0 1. Junmei et al, 1999 +OS-CT-N*-CK 1 0.00 000.0 -2. parm98, TC,PC,PAK +OS-CT-N*-CK 1 2.50 0.0 1. parm98, TC,PC,PAK +OS-CT-N*-CM 1 0.00 000.0 -2. parm98, TC,PC,PAK +OS-CT-N*-CM 1 2.50 0.0 1. parm98, TC,PC,PAK +OS-CT-CT-OS 1 0.144 0.0 -3. parm98, TC,PC,PAK +OS-CT-CT-OS 1 1.175 0.0 2. Piotr et al. +OS-CT-CT-OH 1 0.144 0.0 -3. parm98, TC,PC,PAK +OS-CT-CT-OH 1 1.175 0.0 2. parm98, TC,PC,PAK +OH-CT-CT-OH 1 0.144 0.0 -3. parm98, TC,PC,PAK +OH-CT-CT-OH 1 1.175 0.0 2. parm98, TC,PC,PAK +F -CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230 +F -CT-CT-F 1 1.20 180.0 1. Junmei et al, 1999 +Cl-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230 +Cl-CT-CT-Cl 1 0.45 180.0 1. Junmei et al, 1999 +Br-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230 +Br-CT-CT-Br 1 0.00 180.0 1. Junmei et al, 1999 +H1-CT-CT-OS 1 0.000 0.0 -3. JCC,7,(1986),230 +H1-CT-CT-OS 1 0.25 0.0 1. Junmei et al, 1999 +H1-CT-CT-OH 1 0.000 0.0 -3. JCC,7,(1986),230 +H1-CT-CT-OH 1 0.25 0.0 1. Junmei et al, 1999 +H1-CX-CT-OH 1 0.000 0.0 -3. JCC,7,(1986),230 (was H1-CT-CT-OH) +H1-CX-CT-OH 1 0.25 0.0 1. Junmei et al, 1999 (was H1-CT-CT-OH) +H1-CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230 +H1-CT-CT-F 1 0.19 0.0 1. Junmei et al, 1999 +H1-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230 +H1-CT-CT-Cl 1 0.25 0.0 1. Junmei et al, 1999 +H1-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230 +H1-CT-CT-Br 1 0.55 0.0 1. Junmei et al, 1999 +HC-CT-CT-OS 1 0.000 0.0 -3. JCC,7,(1986),230 +HC-CT-CT-OS 1 0.25 0.0 1. Junmei et al, 1999 +HC-CT-CT-OH 1 0.000 0.0 -3. JCC,7,(1986),230 +HC-CT-CT-OH 1 0.25 0.0 1. Junmei et al, 1999 +HC-CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230 +HC-CT-CT-F 1 0.19 0.0 1. Junmei et al, 1999 +HC-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230 +HC-CT-CT-Cl 1 0.25 0.0 1. Junmei et al, 1999 +HC-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230 +HC-CT-CT-Br 1 0.55 0.0 1. Junmei et al, 1999 +H1-CT-NT-EP 1 0.000 0.000 3.000 +CT-CT-NT-EP 1 0.000 0.000 3.000 +CT-C -N -EP 1 0.000 180.000 2.000 +O -C -N -EP 1 0.000 180.000 2.000 +H1-CT-OH-EP 1 0.000 0.000 3.000 +CT-CT-OH-EP 1 0.000 0.000 3.000 +H1-CT-OS-EP 1 0.000 0.000 3.000 +H2-CT-OS-EP 1 0.000 0.000 3.000 +CT-CT-OS-EP 1 0.000 0.000 3.000 +CM-CM-OS-EP 1 0.000 180.000 2.000 +HA-CM-OS-EP 1 0.000 180.000 2.000 +H4-CM-OS-EP 1 0.000 180.000 2.000 +CS-CS-OS-EP 1 0.000 180.000 2.000 +HA-CS-OS-EP 1 0.000 180.000 2.000 +H4-CS-OS-EP 1 0.000 180.000 2.000 +N -CT-CT-OH 1 0.000 0.000 -1. HYP +N -CT-CT-OH 1 1.490 0.000 -2. HYP (JCC 26:1612,2005) +N -CT-CT-OH 1 0.156 0.000 -3. HYP +N -CT-CT-OH 1 0.000 0.000 4. HYP +EP-S -S -CT 1 0.00 0.0 3. cyx (dac) +EP-S -S -EP 1 0.00 0.0 3. cyx (dac) + +X -X -C -O 10.5 180. 2. JCC,7,(1986),230 +X -O2-C -O2 10.5 180. 2. JCC,7,(1986),230 +X -X -N -H 1.0 180. 2. JCC,7,(1986),230 +X -X -N2-H 1.0 180. 2. JCC,7,(1986),230 +X -X -NA-H 1.0 180. 2. JCC,7,(1986),230 +X -N2-CA-N2 10.5 180. 2. JCC,7,(1986),230 +X -CT-N -CT 1.0 180. 2. JCC,7,(1986),230 +X -CT-N -CX 1.0 180. 2. JCC,7,(1986),230 (was X -CT-N -CT) +X -X -CA-HA 1.1 180. 2. bsd.on C6H6 nmodes +X -X -CW-H4 1.1 180. 2. +X -X -CR-H5 1.1 180. 2. +X -X -CV-H4 1.1 180. 2. +X -X -CQ-H5 1.1 180. 2. +X -X -CK-H5 1.1 180. 2. +X -X -CP-H5 1.1 180. 2. +X -X -CM-H4 1.1 180. 2. +X -X -CM-HA 1.1 180. 2. +X -X -CS-H4 1.1 180. 2. +X -X -CS-HA 1.1 180. 2. +X -X -CA-H4 1.1 180. 2. bsd.on C6H6 nmodes +X -X -CA-H5 1.1 180. 2. bsd.on C6H6 nmodes +CB-CK-N*-CT 1.0 180. 2. +CB-CP-N*-CT 1.0 180. 2. +C -CM-N*-CT 1.0 180. 2. dac guess, 9/94 +C -CS-N*-CT 1.0 180. 2. dac guess, 9/94 +C -CS-CM-CT 1.1 180. 2. +CT-O -C -OH 10.5 180. 2. +CT-CV-CC-NA 1.1 180. 2. +CT-CW-CC-NB 1.1 180. 2. +CT-CW-CC-NA 1.1 180. 2. +CB-CT-C*-CW 1.1 180. 2. +CA-CA-CA-CT 1.1 180. 2. +C -CM-CM-CT 1.1 180. 2. dac guess, 9/94 +C -CS-CS-CT 1.1 180. 2. dac guess, 9/94 +CM-N2-CA-NC 1.1 180. 2. dac guess, 9/94 +CS-N2-CA-NC 1.1 180. 2. dac guess, 9/94 +CB-N2-CA-NC 1.1 180. 2. dac, 10/94 +N2-NA-CA-NC 1.1 180. 2. dac, 10/94 +CA-CA-C -OH 1.1 180. 2. (not used in tyr!) +CA-CA-CA-OH 1.1 180. 2. in tyr +H5-O -C -OH 1.1 180. 2. Junmei et al.1999 +H5-O -C -OS 1.1 180. 2. +CM-CT-CM-HA 1.1 180. 2. Junmei et al.1999 +CS-CT-CS-HA 1.1 180. 2. Junmei et al.1999 +Br-CA-CA-CA 1.1 180. 2. Junmei et al.1999 +CM-H4-C -O 1.1 180. 2. Junmei et al.1999 +CS-H4-C -O 1.1 180. 2. Junmei et al.1999 +C -CT-N -H 1.1 180. 2. Junmei et al.1999 +C -CX-N -H 1.1 180. 2. Junmei et al.1999 (was C -CT-N -H ) +C -CT-N -O 1.1 180. 2. Junmei et al.1999 +X -X -C5-H5 1.1 180. 2. +CB-C5-N*-CT 1.0 180. 2. +X -X -C4-H4 1.1 180. 2. +X -X -C4-HA 1.1 180. 2. +C -C4-N*-CT 1.0 180. 2. dac guess, 9/94 +C -C4-C4-CT 1.1 180. 2. dac guess, 9/94 +C4-N2-CA-NC 1.1 180. 2. dac guess, 9/94 +CA-CA-C -OS 1.1 180. 2. phosphotyrosine +CR-CC-NA-P 1.1 180. 2. phosphohistine +C*-CN-CB-CA 0.0 180. 2. # zero improper for rings +NA-CA-CN-CB 0.0 180. 2. # that were not defined +N*-CB-CB-NC 0.0 180. 2. # before +NB-C -CB-CB 0.0 180. 2. +NB-CA-CB-CB 0.0 180. 2. +OH-H1-CJ-H1 0.0 180. 2. +OH-H1-CJ-CT 0.0 180. 2. +H1-H1-CJ-CT 0.0 180. 2. +OS-H1-CJ-H1 0.0 180. 2. +OS-H1-CJ-CT 0.0 180. 2. + + +N NA N2 N* NC NB NT NY +C* CA CB CC CD CK CM CN CQ CR CV CW CY CZ CP CS + +MOD4 RE + H 0.6000 0.0157 !Ferguson base pair geom. + HO 0.0000 0.0000 OPLS Jorgensen, JACS,110,(1988),1657 + HS 0.6000 0.0157 W. Cornell CH3SH --> CH3OH FEP + HC 1.4870 0.0157 OPLS + H1 1.3870 0.0157 Veenstra et al JCC,8,(1992),963 + H2 1.2870 0.0157 Veenstra et al JCC,8,(1992),963 + H3 1.1870 0.0157 Veenstra et al JCC,8,(1992),963 + HP 1.1000 0.0157 Veenstra et al JCC,8,(1992),963 + HA 1.4590 0.0150 Spellmeyer + H4 1.4090 0.0150 Spellmeyer, one electrowithdr. neighbor + H5 1.3590 0.0150 Spellmeyer, two electrowithdr. neighbor + HZ 1.4590 0.0150 H bonded to sp C (Howard et al JCC 16) + O 1.6612 0.2100 OPLS + O2 1.6612 0.2100 OPLS + OH 1.7210 0.2104 OPLS + OS 1.6837 0.1700 OPLS ether + OP 1.8500 0.1700 Steinbrecher/Latzer for 2- phosphate + C* 1.9080 0.0860 Spellmeyer + CI 1.9080 0.1094 parmbsc0 + C5 1.9080 0.0860 Spellmeyer + C4 1.9080 0.0860 Spellmeyer + CT 1.9080 0.1094 Spellmeyer + CX 1.9080 0.1094 Spellmeyer (was CT) + C 1.9080 0.0860 OPLS + N 1.8240 0.1700 OPLS + N3 1.8240 0.1700 OPLS + S 2.0000 0.2500 W. Cornell CH3SH and CH3SCH3 FEP's + SH 2.0000 0.2500 W. Cornell CH3SH and CH3SCH3 FEP's + P 2.1000 0.2000 JCC,7,(1986),230; + MG 0.7926 0.8947 Mg2+ Aqvist JPC 1990,94,8021.(adapted) + C0 1.7131 0.459789 Ca2+ Aqvist JPC 1990,94,8021.(adapted) + F 1.75 0.061 Gough et al. JCC 13,(1992),963. + Cl 1.948 0.265 Fox, JPCB,102,8070,(98),flex.mdl CHCl3 + Br 2.22 0.320 Junmei(?) + I 2.35 0.40 JCC,7,(1986),230; + +END + diff --git a/test/Test_Build/tz2.parm7.save b/test/Test_Build/tz2.parm7.save new file mode 100644 index 0000000000..7a32d0acd6 --- /dev/null +++ b/test/Test_Build/tz2.parm7.save @@ -0,0 +1,1562 @@ +%VERSION VERSION_STAMP = V0001.000 DATE = 03/03/26 14:08:41 +%FLAG TITLE +%FORMAT(20a4) +tz2.pdb +%FLAG POINTERS +%FORMAT(10I8) + 223 12 106 124 238 170 494 477 0 0 + 1226 13 124 170 477 43 94 104 25 0 + 0 0 0 0 0 0 0 0 24 0 + 0 +%FLAG FORCE_FIELD_TYPE +%FORMAT(i2,a78) + 2 parm10.dat + 2 frcmod.ff14SB +%FLAG ATOM_NAME +%FORMAT(20a4) +N H1 H2 H3 CA HA CB HB2 HB3 OG HG C O N H CA HA CB HB2 HB3 +CG CD1 HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA +HA CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG CD1 +HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA HA CB +HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA CB HB2 HB3 CG OD1 ND2 +HD21HD22C O N H CA HA2 HA3 C O N H CA HA CB HB2 HB3 CG HG2 +HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB2 HB3 +CG CD1 HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA +HA CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG CD1 +HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA HA CB +HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H C +H1 H2 H3 +%FLAG CHARGE +%FORMAT(5E16.8) + 3.36930327E+00 3.45859254E+00 3.45859254E+00 3.45859254E+00 1.03320441E+00 + 1.42498386E+00 4.73050908E+00 4.97468790E-01 4.97468790E-01 -1.22344522E+01 + 7.72443297E+00 1.12304035E+01 -1.04268001E+01 -7.57501011E+00 4.95464337E+00 + -5.01113250E-01 2.04636429E+00 -9.11115000E-02 6.17735970E-01 6.17735970E-01 + -2.57845545E+00 -2.98481274E+00 3.75743826E+00 -6.22838214E+00 6.21744876E+00 + 2.51467740E+00 -4.73962023E+00 2.86454556E+00 -2.06640882E+00 2.58209991E+00 + -3.59343756E+00 2.63676681E+00 -4.34966301E+00 3.09779100E+00 2.26503189E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 + 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 + 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -5.01113250E-01 2.04636429E+00 + -9.11115000E-02 6.17735970E-01 6.17735970E-01 -2.57845545E+00 -2.98481274E+00 + 3.75743826E+00 -6.22838214E+00 6.21744876E+00 2.51467740E+00 -4.73962023E+00 + 2.86454556E+00 -2.06640882E+00 2.58209991E+00 -3.59343756E+00 2.63676681E+00 + -4.34966301E+00 3.09779100E+00 2.26503189E+00 1.08841798E+01 -1.03484442E+01 + -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 1.02044880E+00 + -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 + 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 -1.06035564E+01 + -7.57501011E+00 4.95464337E+00 2.60578890E-01 1.90969704E+00 -3.71917143E+00 + 1.45231731E+00 1.45231731E+00 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 + 7.64607708E+00 7.64607708E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 + -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 + -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 + 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 + 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 + 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 + -5.01113250E-01 2.04636429E+00 -9.11115000E-02 6.17735970E-01 6.17735970E-01 + -2.57845545E+00 -2.98481274E+00 3.75743826E+00 -6.22838214E+00 6.21744876E+00 + 2.51467740E+00 -4.73962023E+00 2.86454556E+00 -2.06640882E+00 2.58209991E+00 + -3.59343756E+00 2.63676681E+00 -4.34966301E+00 3.09779100E+00 2.26503189E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 + 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 + 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -5.01113250E-01 2.04636429E+00 + -9.11115000E-02 6.17735970E-01 6.17735970E-01 -2.57845545E+00 -2.98481274E+00 + 3.75743826E+00 -6.22838214E+00 6.21744876E+00 2.51467740E+00 -4.73962023E+00 + 2.86454556E+00 -2.06640882E+00 2.58209991E+00 -3.59343756E+00 2.63676681E+00 + -4.34966301E+00 3.09779100E+00 2.26503189E+00 1.08841798E+01 -1.03484442E+01 + -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 + 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 + -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 + 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 + 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 -2.71512270E+00 + 1.77849648E+00 1.77849648E+00 1.77849648E+00 +%FLAG ATOMIC_NUMBER +%FORMAT(10I8) + 7 1 1 1 6 1 6 1 1 8 + 1 6 8 7 1 6 1 6 1 1 + 6 6 1 7 1 6 6 1 6 1 + 6 1 6 1 6 6 8 7 1 6 + 1 6 1 6 1 1 1 8 1 6 + 8 7 1 6 1 6 1 1 6 6 + 1 7 1 6 6 1 6 1 6 1 + 6 1 6 6 8 7 1 6 1 6 + 1 1 6 1 1 6 8 8 6 8 + 7 1 6 1 6 1 1 6 8 7 + 1 1 6 8 7 1 6 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 1 1 6 1 1 7 1 1 + 1 6 8 7 1 6 1 6 1 1 + 6 6 1 7 1 6 6 1 6 1 + 6 1 6 1 6 6 8 7 1 6 + 1 6 1 6 1 1 1 8 1 6 + 8 7 1 6 1 6 1 1 6 6 + 1 7 1 6 6 1 6 1 6 1 + 6 1 6 6 8 7 1 6 1 6 + 1 1 6 1 1 6 1 1 6 1 + 1 7 1 1 1 6 8 7 1 6 + 1 1 1 +%FLAG MASS +%FORMAT(5E16.8) + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 +%FLAG ATOM_TYPE_INDEX +%FORMAT(10I8) + 1 2 2 2 3 4 3 5 5 6 + 7 8 9 1 2 3 5 3 10 10 + 8 8 11 1 2 8 8 12 8 12 + 8 12 8 12 8 8 9 1 2 3 + 5 3 5 3 10 10 10 6 7 8 + 9 1 2 3 5 3 10 10 8 8 + 11 1 2 8 8 12 8 12 8 12 + 8 12 8 8 9 1 2 3 5 3 + 10 10 3 10 10 8 9 9 8 9 + 1 2 3 5 3 10 10 8 9 1 + 2 2 8 9 1 2 3 5 5 8 + 9 1 2 3 5 3 10 10 3 10 + 10 3 10 10 3 4 4 1 2 2 + 2 8 9 1 2 3 5 3 10 10 + 8 8 11 1 2 8 8 12 8 12 + 8 12 8 12 8 8 9 1 2 3 + 5 3 5 3 10 10 10 6 7 8 + 9 1 2 3 5 3 10 10 8 8 + 11 1 2 8 8 12 8 12 8 12 + 8 12 8 8 9 1 2 3 5 3 + 10 10 3 10 10 3 10 10 3 4 + 4 1 2 2 2 8 9 1 2 3 + 5 5 5 +%FLAG NUMBER_EXCLUDED_ATOMS +%FORMAT(10I8) + 12 6 5 4 11 7 7 4 3 2 + 1 7 3 10 4 12 7 12 5 4 + 11 7 4 7 3 8 7 4 6 3 + 4 3 2 1 1 7 3 10 4 14 + 7 10 7 6 3 2 1 2 1 7 + 3 10 4 12 7 12 5 4 11 7 + 4 7 3 8 7 4 6 3 4 3 + 2 1 1 7 3 10 4 13 7 11 + 6 5 6 4 3 2 1 1 7 3 + 10 4 12 7 10 5 4 5 3 2 + 1 1 7 3 7 4 7 4 3 7 + 3 10 4 13 7 12 6 5 10 5 + 4 9 5 4 6 5 4 3 2 1 + 1 7 3 10 4 12 7 12 5 4 + 11 7 4 7 3 8 7 4 6 3 + 4 3 2 1 1 7 3 10 4 14 + 7 10 7 6 3 2 1 2 1 7 + 3 10 4 12 7 12 5 4 11 7 + 4 7 3 8 7 4 6 3 4 3 + 2 1 1 7 3 10 4 13 7 12 + 6 5 10 5 4 9 5 4 6 5 + 4 3 2 1 1 7 3 5 4 3 + 2 1 1 +%FLAG NONBONDED_PARM_INDEX +%FORMAT(10I8) + 1 2 4 7 11 16 22 29 37 46 + 56 67 2 3 5 8 12 17 23 30 + 38 47 57 68 4 5 6 9 13 18 + 24 31 39 48 58 69 7 8 9 10 + 14 19 25 32 40 49 59 70 11 12 + 13 14 15 20 26 33 41 50 60 71 + 16 17 18 19 20 21 27 34 42 51 + 61 72 22 23 24 25 26 27 28 35 + 43 52 62 73 29 30 31 32 33 34 + 35 36 44 53 63 74 37 38 39 40 + 41 42 43 44 45 54 64 75 46 47 + 48 49 50 51 52 53 54 55 65 76 + 56 57 58 59 60 61 62 63 64 65 + 66 77 67 68 69 70 71 72 73 74 + 75 76 77 78 +%FLAG RESIDUE_LABEL +%FORMAT(20a4) +SER TRP THR TRP GLU ASN GLY LYS TRP THR TRP LYS NME +%FLAG RESIDUE_POINTER +%FORMAT(10I8) + 1 14 38 52 76 91 105 112 134 158 + 172 196 218 +%FLAG BOND_FORCE_CONSTANT +%FORMAT(5E16.8) + 5.70000000E+02 4.90000000E+02 5.53000000E+02 3.40000000E+02 3.20000000E+02 + 3.40000000E+02 3.10000000E+02 3.17000000E+02 4.34000000E+02 3.67000000E+02 + 3.67000000E+02 4.69000000E+02 4.69000000E+02 4.69000000E+02 4.47000000E+02 + 4.34000000E+02 4.28000000E+02 3.67000000E+02 4.27000000E+02 5.46000000E+02 + 3.88000000E+02 3.40000000E+02 3.17000000E+02 3.40000000E+02 3.10000000E+02 + 4.34000000E+02 3.37000000E+02 3.40000000E+02 3.10000000E+02 3.20000000E+02 + 3.10000000E+02 6.56000000E+02 3.40000000E+02 3.17000000E+02 3.10000000E+02 + 3.17000000E+02 3.40000000E+02 3.67000000E+02 3.40000000E+02 3.10000000E+02 + 3.10000000E+02 3.40000000E+02 3.37000000E+02 +%FLAG BOND_EQUIL_VALUE +%FORMAT(5E16.8) + 1.22900000E+00 1.33500000E+00 9.60000000E-01 1.09000000E+00 1.41000000E+00 + 1.09000000E+00 1.52600000E+00 1.52200000E+00 1.01000000E+00 1.47100000E+00 + 1.08000000E+00 1.40400000E+00 1.40000000E+00 1.40000000E+00 1.41900000E+00 + 1.01000000E+00 1.38000000E+00 1.08000000E+00 1.38100000E+00 1.35200000E+00 + 1.45900000E+00 1.09000000E+00 1.49500000E+00 1.09000000E+00 1.52600000E+00 + 1.01000000E+00 1.44900000E+00 1.09000000E+00 1.52600000E+00 1.41000000E+00 + 1.52600000E+00 1.25000000E+00 1.09000000E+00 1.52200000E+00 1.52600000E+00 + 1.52200000E+00 1.09000000E+00 1.47100000E+00 1.09000000E+00 1.52600000E+00 + 1.52600000E+00 1.09000000E+00 1.44900000E+00 +%FLAG ANGLE_FORCE_CONSTANT +%FORMAT(5E16.8) + 8.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 3.50000000E+01 + 6.30000000E+01 5.50000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 8.00000000E+01 7.00000000E+01 5.00000000E+01 3.50000000E+01 + 5.00000000E+01 8.00000000E+01 8.00000000E+01 5.00000000E+01 5.00000000E+01 + 6.30000000E+01 6.30000000E+01 6.30000000E+01 5.00000000E+01 6.30000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 + 6.30000000E+01 6.30000000E+01 5.00000000E+01 3.50000000E+01 6.30000000E+01 + 7.00000000E+01 7.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 6.30000000E+01 5.00000000E+01 5.00000000E+01 8.00000000E+01 6.30000000E+01 + 5.00000000E+01 5.00000000E+01 5.00000000E+01 6.30000000E+01 5.00000000E+01 + 5.50000000E+01 5.00000000E+01 5.00000000E+01 4.00000000E+01 5.00000000E+01 + 8.00000000E+01 8.00000000E+01 5.00000000E+01 3.50000000E+01 7.00000000E+01 + 5.00000000E+01 6.30000000E+01 5.00000000E+01 5.00000000E+01 4.00000000E+01 + 8.00000000E+01 3.50000000E+01 5.00000000E+01 8.00000000E+01 7.00000000E+01 + 6.30000000E+01 3.50000000E+01 5.00000000E+01 3.50000000E+01 5.00000000E+01 + 5.00000000E+01 3.50000000E+01 5.00000000E+01 8.00000000E+01 4.00000000E+01 + 6.30000000E+01 5.00000000E+01 5.00000000E+01 4.00000000E+01 8.00000000E+01 + 5.00000000E+01 3.50000000E+01 5.00000000E+01 5.00000000E+01 +%FLAG ANGLE_EQUIL_VALUE +%FORMAT(5E16.8) + 2.14500965E+00 2.09439510E+00 2.12755636E+00 1.91113553E+00 1.91113553E+00 + 1.93906080E+00 1.89368224E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 + 1.91113553E+00 2.10137642E+00 2.03505391E+00 1.91113553E+00 1.91113553E+00 + 1.91113553E+00 1.94080613E+00 1.94080613E+00 2.09439510E+00 2.09439510E+00 + 2.09439510E+00 2.09439510E+00 2.14151899E+00 2.09439510E+00 2.09439510E+00 + 2.02807259E+00 2.14850031E+00 2.31779725E+00 1.82212374E+00 2.09439510E+00 + 1.85703032E+00 2.09439510E+00 1.94778745E+00 2.09439510E+00 1.89717290E+00 + 1.89891823E+00 2.35444916E+00 1.91113553E+00 1.91113553E+00 1.93906080E+00 + 2.18166156E+00 2.24449342E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 + 2.01760062E+00 2.06018665E+00 1.91113553E+00 1.91462619E+00 1.92160751E+00 + 1.91113553E+00 1.91113553E+00 1.91113553E+00 1.93906080E+00 1.91113553E+00 + 1.89368224E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 + 1.91462619E+00 2.19911486E+00 1.91113553E+00 1.91113553E+00 2.04203522E+00 + 1.91113553E+00 1.93906080E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 + 1.91462619E+00 2.09439510E+00 1.91113553E+00 2.10137642E+00 2.03505391E+00 + 1.93906080E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 + 1.91113553E+00 1.91113553E+00 1.91113553E+00 1.94080613E+00 1.91113553E+00 + 1.93906080E+00 1.91113553E+00 1.91113553E+00 1.91113553E+00 1.91462619E+00 + 2.12755636E+00 1.91113553E+00 2.06018665E+00 1.91113553E+00 +%FLAG DIHEDRAL_FORCE_CONSTANT +%FORMAT(5E16.8) + 2.00000000E+00 2.50000000E+00 0.00000000E+00 1.80000000E+00 8.00000000E-01 + 0.00000000E+00 0.00000000E+00 2.70000000E-01 4.20000000E-01 6.61000000E-01 + 2.18000000E-01 4.01000000E-01 1.29000000E-01 1.55555556E-01 1.66666667E-01 + 2.00000000E-01 2.00000000E-01 4.00000000E-01 2.11000000E-01 4.44000000E-01 + 2.67000000E-01 7.00000000E-03 6.66000000E-01 2.46000000E-01 1.60000000E-01 + 3.62500000E+00 3.00000000E+00 3.50000000E+00 1.52500000E+00 6.52500000E+00 + 1.50000000E+00 1.67500000E+00 1.70000000E-02 3.53000000E-01 2.34000000E-01 + 7.40000000E-02 8.00000000E-01 8.00000000E-02 0.00000000E+00 3.65000000E-01 + 4.08000000E-01 8.19000000E-01 9.50000000E-02 7.90000000E-02 3.13000000E-01 + 3.10000000E-02 4.50000000E-01 1.58000000E+00 5.50000000E-01 6.97000000E-01 + 1.19000000E-01 3.15000000E-01 1.56000000E-01 2.50000000E-01 4.06000000E-01 + 2.89000000E-01 1.48000000E-01 1.12000000E-01 6.43000000E-01 7.90000000E-02 + 2.36000000E-01 4.80000000E-02 1.60000000E-01 6.00000000E-03 2.51000000E-01 + 1.30000000E-02 3.37000000E-01 2.16000000E-01 1.00000000E-03 6.74000000E-01 + 6.00000000E-03 9.50000000E-02 4.21000000E-01 3.93000000E-01 1.44000000E-01 + 1.45000000E-01 1.50000000E-01 3.90000000E-01 6.40000000E-02 1.36700000E+00 + 2.22000000E-01 6.08000000E-01 5.60000000E-02 1.00000000E-01 1.84000000E-01 + 7.80000000E-02 1.04600000E+00 3.03000000E-01 3.30000000E-02 1.07000000E-01 + 8.28000000E-01 4.85000000E-01 3.01000000E-01 8.00000000E-03 6.88000000E-01 + 2.97000000E-01 5.90000000E-02 2.00000000E-01 2.50000000E-01 1.80000000E-01 + 1.05000000E+01 0.00000000E+00 1.10000000E+00 1.00000000E+00 +%FLAG DIHEDRAL_PERIODICITY +%FORMAT(5E16.8) + 1.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 3.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 4.00000000E+00 3.00000000E+00 3.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 4.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 + 4.00000000E+00 1.00000000E+00 3.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 4.00000000E+00 3.00000000E+00 1.00000000E+00 2.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 4.00000000E+00 1.00000000E+00 + 2.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 + 4.00000000E+00 3.00000000E+00 2.00000000E+00 4.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 + 2.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 +%FLAG DIHEDRAL_PHASE +%FORMAT(5E16.8) + 0.00000000E+00 3.14159265E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159265E+00 + 3.14159265E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 + 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 + 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 3.14159265E+00 + 0.00000000E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 + 3.14159265E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159265E+00 + 3.14159265E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159265E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159265E+00 3.14159265E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159265E+00 3.14159265E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 3.14159265E+00 + 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 + 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 0.00000000E+00 + 3.14159265E+00 3.14159265E+00 3.14159265E+00 0.00000000E+00 3.14159265E+00 + 3.14159265E+00 0.00000000E+00 3.14159265E+00 3.14159265E+00 0.00000000E+00 + 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 +%FLAG SCEE_SCALE_FACTOR +%FORMAT(5E16.8) + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 +%FLAG SCNB_SCALE_FACTOR +%FORMAT(5E16.8) + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 +%FLAG SOLTY +%FORMAT(5E16.8) + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 +%FLAG LENNARD_JONES_ACOEF +%FORMAT(5E16.8) + 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03 + 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02 + 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03 + 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04 + 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03 + 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00 + 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04 + 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05 + 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03 + 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03 + 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02 3.50301067E+03 + 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04 5.34045360E+03 + 3.76169105E+03 7.91627154E+04 8.90987508E+01 8.59947003E+04 1.21014911E+03 + 4.33325458E+03 6.00750218E+04 0.00000000E+00 7.62451550E+04 4.77908183E+04 + 6.55825601E+03 4.64559155E+03 5.71629601E+03 +%FLAG LENNARD_JONES_BCOEF +%FORMAT(5E16.8) + 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01 + 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00 + 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01 + 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02 + 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01 + 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00 + 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01 + 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02 + 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01 + 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01 + 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00 1.46638650E+01 + 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01 1.81057616E+01 + 1.50233639E+01 1.26451907E+02 2.33864085E+00 1.18043746E+02 8.61880722E+00 + 1.63092814E+01 1.16187983E+02 0.00000000E+00 1.04660679E+02 1.03580945E+02 + 2.00642027E+01 1.66953734E+01 1.85196588E+01 +%FLAG BONDS_INC_HYDROGEN +%FORMAT(10I8) + 27 30 3 18 21 4 18 24 4 12 + 15 6 0 3 9 0 6 9 0 9 + 9 96 99 11 90 93 11 84 87 11 + 78 81 11 69 72 16 63 66 18 51 + 54 22 51 57 22 45 48 24 39 42 + 26 141 144 3 129 132 22 129 135 22 + 129 138 22 123 126 28 117 120 24 111 + 114 26 210 213 11 204 207 11 198 201 + 11 192 195 11 183 186 16 177 180 18 + 165 168 22 165 171 22 159 162 24 153 + 156 26 246 249 33 246 252 33 237 240 + 33 237 243 33 231 234 24 225 228 26 + 297 300 26 297 303 26 282 285 33 282 + 288 33 276 279 24 270 273 26 318 321 + 24 318 324 24 312 315 26 381 384 9 + 381 387 9 381 390 9 372 375 37 372 + 378 37 363 366 39 363 369 39 354 357 + 39 354 360 39 345 348 39 345 351 39 + 339 342 24 333 336 26 456 459 11 450 + 453 11 444 447 11 438 441 11 429 432 + 16 423 426 18 411 414 22 411 417 22 + 405 408 24 399 402 26 501 504 3 489 + 492 22 489 495 22 489 498 22 483 486 + 28 477 480 24 471 474 26 570 573 11 + 564 567 11 558 561 11 552 555 11 543 + 546 16 537 540 18 525 528 22 525 531 + 22 519 522 24 513 516 26 633 636 9 + 633 639 9 633 642 9 624 627 37 624 + 630 37 615 618 39 615 621 39 606 609 + 39 606 612 39 597 600 39 597 603 39 + 591 594 24 585 588 26 657 660 42 657 + 663 42 657 666 42 651 654 26 +%FLAG BONDS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 33 36 1 33 39 2 18 27 5 12 + 18 7 12 33 8 0 12 10 105 108 + 1 105 111 2 96 102 12 90 96 13 + 84 90 13 78 84 13 75 78 14 75 + 102 15 69 75 17 63 69 19 60 63 + 20 60 102 21 51 60 23 45 51 25 + 45 105 8 39 45 27 147 150 1 147 + 153 2 123 129 29 123 141 30 117 123 + 31 117 147 8 111 117 27 219 222 1 + 219 225 2 210 216 12 204 210 13 198 + 204 13 192 198 13 189 192 14 189 216 + 15 183 189 17 177 183 19 174 177 20 + 174 216 21 165 174 23 159 165 25 159 + 219 8 153 159 27 264 267 1 264 270 + 2 255 258 32 255 261 32 246 255 34 + 237 246 35 231 237 7 231 264 8 225 + 231 27 306 309 1 306 312 2 291 294 + 1 291 297 2 282 291 36 276 282 7 + 276 306 8 270 276 27 327 330 1 327 + 333 2 318 327 8 312 318 27 393 396 + 1 393 399 2 372 381 38 363 372 40 + 354 363 40 345 354 40 339 345 41 339 + 393 8 333 339 27 465 468 1 465 471 + 2 456 462 12 450 456 13 444 450 13 + 438 444 13 435 438 14 435 462 15 429 + 435 17 423 429 19 420 423 20 420 462 + 21 411 420 23 405 411 25 405 465 8 + 399 405 27 507 510 1 507 513 2 483 + 489 29 483 501 30 477 483 31 477 507 + 8 471 477 27 579 582 1 579 585 2 + 570 576 12 564 570 13 558 564 13 552 + 558 13 549 552 14 549 576 15 543 549 + 17 537 543 19 534 537 20 534 576 21 + 525 534 23 519 525 25 519 579 8 513 + 519 27 645 648 1 645 651 2 624 633 + 38 615 624 40 606 615 40 597 606 40 + 591 597 41 591 645 8 585 591 27 651 + 657 43 +%FLAG ANGLES_INC_HYDROGEN +%FORMAT(10I8) + 33 39 42 2 24 18 27 4 21 18 + 24 5 21 18 27 4 18 27 30 7 + 15 12 18 8 15 12 33 9 12 18 + 21 10 12 18 24 10 9 0 12 14 + 6 0 9 15 6 0 12 14 3 0 + 6 15 3 0 9 15 3 0 12 14 + 0 12 15 16 105 111 114 2 99 96 + 102 19 93 90 96 20 90 96 99 20 + 87 84 90 20 84 90 93 20 81 78 + 84 20 78 84 87 20 75 78 81 24 + 72 69 75 27 66 63 69 30 63 69 + 72 32 60 63 66 34 57 51 60 38 + 54 51 57 39 54 51 60 38 48 45 + 51 43 48 45 105 44 45 51 54 45 + 45 51 57 45 42 39 45 47 39 45 + 48 48 147 153 156 2 135 129 138 39 + 132 129 135 39 132 129 138 39 126 123 + 129 52 126 123 141 53 123 129 132 55 + 123 129 135 55 123 129 138 55 123 141 + 144 56 120 117 123 57 120 117 147 44 + 117 123 126 58 114 111 117 47 111 117 + 120 48 219 225 228 2 213 210 216 19 + 207 204 210 20 204 210 213 20 201 198 + 204 20 198 204 207 20 195 192 198 20 + 192 198 201 20 189 192 195 24 186 183 + 189 27 180 177 183 30 177 183 186 32 + 174 177 180 34 171 165 174 38 168 165 + 171 39 168 165 174 38 162 159 165 43 + 162 159 219 44 159 165 168 45 159 165 + 171 45 156 153 159 47 153 159 162 48 + 264 270 273 2 252 246 255 63 249 246 + 252 64 249 246 255 63 243 237 246 66 + 240 237 243 64 240 237 246 66 237 246 + 249 66 237 246 252 66 234 231 237 68 + 234 231 264 44 231 237 240 69 231 237 + 243 69 228 225 231 47 225 231 234 48 + 306 312 315 2 300 297 303 72 291 297 + 300 2 291 297 303 2 288 282 291 73 + 285 282 288 64 285 282 291 73 279 276 + 282 68 279 276 306 44 276 282 285 69 + 276 282 288 69 273 270 276 47 270 276 + 279 48 327 333 336 2 324 318 327 44 + 321 318 324 77 321 318 327 44 315 312 + 318 47 312 318 321 48 312 318 324 48 + 393 399 402 2 387 381 390 15 384 381 + 387 15 384 381 390 15 378 372 381 78 + 375 372 378 79 375 372 381 78 372 381 + 384 80 372 381 387 80 372 381 390 80 + 369 363 372 81 366 363 369 82 366 363 + 372 81 363 372 375 83 363 372 378 83 + 360 354 363 81 357 354 360 82 357 354 + 363 81 354 363 366 81 354 363 369 81 + 351 345 354 81 348 345 351 82 348 345 + 354 81 345 354 357 81 345 354 360 81 + 342 339 345 87 342 339 393 44 339 345 + 348 88 339 345 351 88 336 333 339 47 + 333 339 342 48 465 471 474 2 459 456 + 462 19 453 450 456 20 450 456 459 20 + 447 444 450 20 444 450 453 20 441 438 + 444 20 438 444 447 20 435 438 441 24 + 432 429 435 27 426 423 429 30 423 429 + 432 32 420 423 426 34 417 411 420 38 + 414 411 417 39 414 411 420 38 408 405 + 411 43 408 405 465 44 405 411 414 45 + 405 411 417 45 402 399 405 47 399 405 + 408 48 507 513 516 2 495 489 498 39 + 492 489 495 39 492 489 498 39 486 483 + 489 52 486 483 501 53 483 489 492 55 + 483 489 495 55 483 489 498 55 483 501 + 504 56 480 477 483 57 480 477 507 44 + 477 483 486 58 474 471 477 47 471 477 + 480 48 579 585 588 2 573 570 576 19 + 567 564 570 20 564 570 573 20 561 558 + 564 20 558 564 567 20 555 552 558 20 + 552 558 561 20 549 552 555 24 546 543 + 549 27 540 537 543 30 537 543 546 32 + 534 537 540 34 531 525 534 38 528 525 + 531 39 528 525 534 38 522 519 525 43 + 522 519 579 44 519 525 528 45 519 525 + 531 45 516 513 519 47 513 519 522 48 + 645 651 654 2 639 633 642 15 636 633 + 639 15 636 633 642 15 630 624 633 78 + 627 624 630 79 627 624 633 78 624 633 + 636 80 624 633 639 80 624 633 642 80 + 621 615 624 81 618 615 621 82 618 615 + 624 81 615 624 627 83 615 624 630 83 + 612 606 615 81 609 606 612 82 609 606 + 615 81 606 615 618 81 606 615 621 81 + 603 597 606 81 600 597 603 82 600 597 + 606 81 597 606 609 81 597 606 612 81 + 594 591 597 87 594 591 645 44 591 597 + 600 88 591 597 603 88 588 585 591 47 + 585 591 594 48 663 657 666 92 660 657 + 663 92 660 657 666 92 654 651 657 93 + 651 657 660 94 651 657 663 94 651 657 + 666 94 +%FLAG ANGLES_WITHOUT_HYDROGEN +%FORMAT(10I8) + 36 33 39 1 33 39 45 3 18 12 + 33 6 12 18 27 11 12 33 36 12 + 12 33 39 13 0 12 18 17 0 12 + 33 18 108 105 111 1 105 111 117 3 + 90 96 102 21 84 90 96 22 78 75 + 102 23 78 84 90 22 75 78 84 25 + 75 102 96 26 69 75 78 28 69 75 + 102 29 63 60 102 31 63 69 75 33 + 60 63 69 35 60 102 75 36 60 102 + 96 37 51 45 105 40 51 60 63 41 + 51 60 102 42 45 51 60 46 45 105 + 108 12 45 105 111 13 39 45 51 49 + 39 45 105 50 150 147 153 1 147 153 + 159 3 129 123 141 51 123 117 147 54 + 117 123 129 59 117 123 141 60 117 147 + 150 12 117 147 153 13 111 117 123 61 + 111 117 147 50 222 219 225 1 219 225 + 231 3 204 210 216 21 198 204 210 22 + 192 189 216 23 192 198 204 22 189 192 + 198 25 189 216 210 26 183 189 192 28 + 183 189 216 29 177 174 216 31 177 183 + 189 33 174 177 183 35 174 216 189 36 + 174 216 210 37 165 159 219 40 165 174 + 177 41 165 174 216 42 159 165 174 46 + 159 219 222 12 159 219 225 13 153 159 + 165 49 153 159 219 50 267 264 270 1 + 264 270 276 3 258 255 261 62 246 255 + 258 65 246 255 261 65 237 231 264 6 + 237 246 255 67 231 237 246 70 231 264 + 267 12 231 264 270 13 225 231 237 71 + 225 231 264 50 309 306 312 1 306 312 + 318 3 294 291 297 1 282 276 306 6 + 282 291 294 74 282 291 297 75 276 282 + 291 76 276 306 309 12 276 306 312 13 + 270 276 282 71 270 276 306 50 330 327 + 333 1 327 333 339 3 318 327 330 12 + 318 327 333 13 312 318 327 50 396 393 + 399 1 393 399 405 3 363 372 381 84 + 354 363 372 85 345 339 393 86 345 354 + 363 85 339 345 354 89 339 393 396 12 + 339 393 399 13 333 339 345 90 333 339 + 393 50 468 465 471 1 465 471 477 3 + 450 456 462 21 444 450 456 22 438 435 + 462 23 438 444 450 22 435 438 444 25 + 435 462 456 26 429 435 438 28 429 435 + 462 29 423 420 462 31 423 429 435 33 + 420 423 429 35 420 462 435 36 420 462 + 456 37 411 405 465 40 411 420 423 41 + 411 420 462 42 405 411 420 46 405 465 + 468 12 405 465 471 13 399 405 411 49 + 399 405 465 50 510 507 513 1 507 513 + 519 3 489 483 501 51 483 477 507 54 + 477 483 489 59 477 483 501 60 477 507 + 510 12 477 507 513 13 471 477 483 61 + 471 477 507 50 582 579 585 1 579 585 + 591 3 564 570 576 21 558 564 570 22 + 552 549 576 23 552 558 564 22 549 552 + 558 25 549 576 570 26 543 549 552 28 + 543 549 576 29 537 534 576 31 537 543 + 549 33 534 537 543 35 534 576 549 36 + 534 576 570 37 525 519 579 40 525 534 + 537 41 525 534 576 42 519 525 534 46 + 519 579 582 12 519 579 585 13 513 519 + 525 49 513 519 579 50 648 645 651 1 + 645 651 657 91 615 624 633 84 606 615 + 624 85 597 591 645 86 597 606 615 85 + 591 597 606 89 591 645 648 12 591 645 + 651 13 585 591 597 90 585 591 645 50 +%FLAG DIHEDRALS_INC_HYDROGEN +%FORMAT(10I8) + 36 33 39 42 1 36 33 -39 42 2 + 33 39 45 48 3 24 18 12 33 14 + 24 18 27 30 15 21 18 12 33 14 + 21 18 27 30 15 15 12 18 21 14 + 15 12 18 24 14 15 12 18 27 14 + 15 12 33 36 3 15 12 33 39 3 + 12 18 27 30 19 12 18 -27 30 20 + 12 18 -27 30 21 12 18 -27 30 22 + 12 33 39 42 2 9 0 12 15 14 + 9 0 12 18 14 9 0 12 33 14 + 6 0 12 15 14 6 0 12 18 14 + 6 0 12 33 14 3 0 12 15 14 + 3 0 12 18 14 3 0 12 33 14 + 0 12 18 21 14 0 12 18 24 14 + 108 105 111 114 1 108 105 -111 114 2 + 105 111 117 120 3 93 90 96 99 26 + 93 90 96 102 26 87 84 90 93 26 + 87 84 90 96 26 84 90 96 99 26 + 81 78 75 102 26 81 78 84 87 26 + 81 78 84 90 26 78 84 90 93 26 + 75 78 84 87 26 75 102 96 99 28 + 72 69 75 78 29 72 69 75 102 29 + 69 75 78 81 26 66 63 60 102 30 + 66 63 69 72 31 66 63 69 75 31 + 60 63 69 72 31 60 102 96 99 28 + 57 51 45 105 14 57 51 60 63 3 + 57 51 60 102 3 54 51 45 105 14 + 54 51 60 63 3 54 51 60 102 3 + 51 60 63 66 30 48 45 51 54 14 + 48 45 51 57 14 48 45 51 60 14 + 48 45 105 108 37 48 45 -105 108 3 + 48 45 -105 108 38 48 45 105 111 3 + 45 105 111 114 2 42 39 45 48 3 + 42 39 45 51 3 42 39 45 105 3 + 39 45 51 54 14 39 45 51 57 14 + 150 147 153 156 1 150 147 -153 156 2 + 147 153 159 162 3 138 129 123 141 54 + 138 129 -123 141 39 135 129 123 141 54 + 135 129 -123 141 39 132 129 123 141 54 + 132 129 -123 141 39 129 123 141 144 59 + 129 123 -141 144 60 129 123 -141 144 61 + 129 123 -141 144 62 126 123 117 147 14 + 126 123 129 132 14 126 123 129 135 14 + 126 123 129 138 14 126 123 141 144 15 + 120 117 123 126 14 120 117 123 129 14 + 120 117 123 141 54 120 117 -123 141 39 + 120 117 147 150 37 120 117 -147 150 3 + 120 117 -147 150 38 120 117 147 153 3 + 117 123 129 132 63 117 123 129 135 63 + 117 123 129 138 63 117 123 141 144 64 + 117 123 -141 144 65 117 123 -141 144 61 + 117 123 -141 144 66 117 147 153 156 2 + 114 111 117 120 3 114 111 117 123 3 + 114 111 117 147 3 111 117 123 126 14 + 222 219 225 228 1 222 219 -225 228 2 + 219 225 231 234 3 207 204 210 213 26 + 207 204 210 216 26 201 198 204 207 26 + 201 198 204 210 26 198 204 210 213 26 + 195 192 189 216 26 195 192 198 201 26 + 195 192 198 204 26 192 198 204 207 26 + 189 192 198 201 26 189 216 210 213 28 + 186 183 189 192 29 186 183 189 216 29 + 183 189 192 195 26 180 177 174 216 30 + 180 177 183 186 31 180 177 183 189 31 + 174 177 183 186 31 174 216 210 213 28 + 171 165 159 219 14 171 165 174 177 3 + 171 165 174 216 3 168 165 159 219 14 + 168 165 174 177 3 168 165 174 216 3 + 165 174 177 180 30 162 159 165 168 14 + 162 159 165 171 14 162 159 165 174 14 + 162 159 219 222 37 162 159 -219 222 3 + 162 159 -219 222 38 162 159 219 225 3 + 159 219 225 228 2 156 153 159 162 3 + 156 153 159 165 3 156 153 159 219 3 + 153 159 165 168 14 153 159 165 171 14 + 267 264 270 273 1 267 264 -270 273 2 + 264 270 276 279 3 252 246 255 258 3 + 252 246 255 261 3 249 246 255 258 3 + 249 246 255 261 3 243 237 231 264 14 + 243 237 246 249 77 243 237 246 252 77 + 243 237 246 255 14 240 237 231 264 14 + 240 237 246 249 77 240 237 246 252 77 + 240 237 246 255 14 234 231 237 240 14 + 234 231 237 243 14 234 231 237 246 14 + 234 231 264 267 37 234 231 -264 267 3 + 234 231 -264 267 38 234 231 264 270 3 + 231 237 246 249 63 231 237 246 252 63 + 231 264 270 273 2 228 225 231 234 3 + 228 225 231 237 3 228 225 231 264 3 + 225 231 237 240 14 225 231 237 243 14 + 309 306 312 315 1 309 306 -312 315 2 + 306 312 318 321 3 306 312 318 324 3 + 294 291 297 300 1 294 291 -297 300 2 + 294 291 297 303 1 294 291 -297 303 2 + 288 282 276 306 14 288 282 291 294 37 + 288 282 -291 294 3 288 282 -291 294 38 + 288 282 291 297 3 285 282 276 306 14 + 285 282 291 294 37 285 282 -291 294 3 + 285 282 -291 294 38 285 282 291 297 3 + 282 291 297 300 2 282 291 297 303 2 + 279 276 282 285 14 279 276 282 288 14 + 279 276 282 291 14 279 276 306 309 37 + 279 276 -306 309 3 279 276 -306 309 38 + 279 276 306 312 3 276 306 312 315 2 + 273 270 276 279 3 273 270 276 282 3 + 273 270 276 306 3 270 276 282 285 14 + 270 276 282 288 14 330 327 333 336 1 + 330 327 -333 336 2 327 333 339 342 3 + 324 318 327 330 37 324 318 -327 330 3 + 324 318 -327 330 38 324 318 327 333 3 + 321 318 327 330 37 321 318 -327 330 3 + 321 318 -327 330 38 321 318 327 333 3 + 318 327 333 336 2 315 312 318 321 3 + 315 312 318 324 3 315 312 318 327 3 + 396 393 399 402 1 396 393 -399 402 2 + 393 399 405 408 3 378 372 381 384 14 + 378 372 381 387 14 378 372 381 390 14 + 375 372 381 384 14 375 372 381 387 14 + 375 372 381 390 14 369 363 372 375 14 + 369 363 372 378 14 369 363 372 381 14 + 366 363 372 375 14 366 363 372 378 14 + 366 363 372 381 14 363 372 381 384 14 + 363 372 381 387 14 363 372 381 390 14 + 360 354 363 366 77 360 354 363 369 77 + 360 354 363 372 63 357 354 363 366 77 + 357 354 363 369 77 357 354 363 372 63 + 354 363 372 375 14 354 363 372 378 14 + 351 345 339 393 14 351 345 354 357 77 + 351 345 354 360 77 351 345 354 363 63 + 348 345 339 393 14 348 345 354 357 77 + 348 345 354 360 77 348 345 354 363 63 + 345 354 363 366 63 345 354 363 369 63 + 342 339 345 348 14 342 339 345 351 14 + 342 339 345 354 14 342 339 393 396 37 + 342 339 -393 396 3 342 339 -393 396 38 + 342 339 393 399 3 339 345 354 357 63 + 339 345 354 360 63 339 393 399 402 2 + 336 333 339 342 3 336 333 339 345 3 + 336 333 339 393 3 333 339 345 348 14 + 333 339 345 351 14 468 465 471 474 1 + 468 465 -471 474 2 465 471 477 480 3 + 453 450 456 459 26 453 450 456 462 26 + 447 444 450 453 26 447 444 450 456 26 + 444 450 456 459 26 441 438 435 462 26 + 441 438 444 447 26 441 438 444 450 26 + 438 444 450 453 26 435 438 444 447 26 + 435 462 456 459 28 432 429 435 438 29 + 432 429 435 462 29 429 435 438 441 26 + 426 423 420 462 30 426 423 429 432 31 + 426 423 429 435 31 420 423 429 432 31 + 420 462 456 459 28 417 411 405 465 14 + 417 411 420 423 3 417 411 420 462 3 + 414 411 405 465 14 414 411 420 423 3 + 414 411 420 462 3 411 420 423 426 30 + 408 405 411 414 14 408 405 411 417 14 + 408 405 411 420 14 408 405 465 468 37 + 408 405 -465 468 3 408 405 -465 468 38 + 408 405 465 471 3 405 465 471 474 2 + 402 399 405 408 3 402 399 405 411 3 + 402 399 405 465 3 399 405 411 414 14 + 399 405 411 417 14 510 507 513 516 1 + 510 507 -513 516 2 507 513 519 522 3 + 498 489 483 501 54 498 489 -483 501 39 + 495 489 483 501 54 495 489 -483 501 39 + 492 489 483 501 54 492 489 -483 501 39 + 489 483 501 504 59 489 483 -501 504 60 + 489 483 -501 504 61 489 483 -501 504 62 + 486 483 477 507 14 486 483 489 492 14 + 486 483 489 495 14 486 483 489 498 14 + 486 483 501 504 15 480 477 483 486 14 + 480 477 483 489 14 480 477 483 501 54 + 480 477 -483 501 39 480 477 507 510 37 + 480 477 -507 510 3 480 477 -507 510 38 + 480 477 507 513 3 477 483 489 492 63 + 477 483 489 495 63 477 483 489 498 63 + 477 483 501 504 64 477 483 -501 504 65 + 477 483 -501 504 61 477 483 -501 504 66 + 477 507 513 516 2 474 471 477 480 3 + 474 471 477 483 3 474 471 477 507 3 + 471 477 483 486 14 582 579 585 588 1 + 582 579 -585 588 2 579 585 591 594 3 + 567 564 570 573 26 567 564 570 576 26 + 561 558 564 567 26 561 558 564 570 26 + 558 564 570 573 26 555 552 549 576 26 + 555 552 558 561 26 555 552 558 564 26 + 552 558 564 567 26 549 552 558 561 26 + 549 576 570 573 28 546 543 549 552 29 + 546 543 549 576 29 543 549 552 555 26 + 540 537 534 576 30 540 537 543 546 31 + 540 537 543 549 31 534 537 543 546 31 + 534 576 570 573 28 531 525 519 579 14 + 531 525 534 537 3 531 525 534 576 3 + 528 525 519 579 14 528 525 534 537 3 + 528 525 534 576 3 525 534 537 540 30 + 522 519 525 528 14 522 519 525 531 14 + 522 519 525 534 14 522 519 579 582 37 + 522 519 -579 582 3 522 519 -579 582 38 + 522 519 579 585 3 519 579 585 588 2 + 516 513 519 522 3 516 513 519 525 3 + 516 513 519 579 3 513 519 525 528 14 + 513 519 525 531 14 648 645 651 654 1 + 648 645 -651 654 2 645 651 657 660 3 + 645 651 657 663 3 645 651 657 666 3 + 630 624 633 636 14 630 624 633 639 14 + 630 624 633 642 14 627 624 633 636 14 + 627 624 633 639 14 627 624 633 642 14 + 621 615 624 627 14 621 615 624 630 14 + 621 615 624 633 14 618 615 624 627 14 + 618 615 624 630 14 618 615 624 633 14 + 615 624 633 636 14 615 624 633 639 14 + 615 624 633 642 14 612 606 615 618 77 + 612 606 615 621 77 612 606 615 624 63 + 609 606 615 618 77 609 606 615 621 77 + 609 606 615 624 63 606 615 624 627 14 + 606 615 624 630 14 603 597 591 645 14 + 603 597 606 609 77 603 597 606 612 77 + 603 597 606 615 63 600 597 591 645 14 + 600 597 606 609 77 600 597 606 612 77 + 600 597 606 615 63 597 606 615 618 63 + 597 606 615 621 63 594 591 597 600 14 + 594 591 597 603 14 594 591 597 606 14 + 594 591 645 648 37 594 591 -645 648 3 + 594 591 -645 648 38 594 591 645 651 3 + 591 597 606 609 63 591 597 606 612 63 + 591 645 651 654 2 588 585 591 594 3 + 588 585 591 597 3 588 585 591 645 3 + 585 591 597 600 14 585 591 597 603 14 + 654 651 657 660 3 654 651 657 663 3 + 654 651 657 666 3 90 102 -96 -99 103 + 84 96 -90 -93 103 78 90 -84 -87 103 + 75 84 -78 -81 103 63 75 -69 -72 104 + 60 69 -63 -66 103 33 45 -39 -42 103 + 105 117 -111 -114 103 204 216 -210 -213 103 + 198 210 -204 -207 103 192 204 -198 -201 103 + 189 198 -192 -195 103 177 189 -183 -186 104 + 174 183 -177 -180 103 147 159 -153 -156 103 + 219 231 -225 -228 103 291 300 -297 -303 104 + 264 276 -270 -273 103 306 318 -312 -315 103 + 327 339 -333 -336 103 450 462 -456 -459 103 + 444 456 -450 -453 103 438 450 -444 -447 103 + 435 444 -438 -441 103 423 435 -429 -432 104 + 420 429 -423 -426 103 393 405 -399 -402 103 + 465 477 -471 -474 103 564 576 -570 -573 103 + 558 570 -564 -567 103 552 564 -558 -561 103 + 549 558 -552 -555 103 537 549 -543 -546 104 + 534 543 -537 -540 103 507 519 -513 -516 103 + 579 591 -585 -588 103 645 657 -651 -654 103 +%FLAG DIHEDRALS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 36 33 39 45 2 33 39 45 51 1 + 33 39 -45 51 4 33 39 -45 51 5 + 33 39 -45 51 6 33 39 45 105 7 + 33 39 -45 105 8 33 39 -45 105 9 + 33 39 -45 105 6 27 18 12 33 10 + 27 18 -12 33 11 27 18 -12 33 12 + 27 18 -12 33 13 18 12 33 36 3 + 18 12 33 39 16 18 12 -33 39 17 + 18 12 -33 39 18 18 12 -33 39 6 + 12 33 39 45 2 0 12 18 27 23 + 0 12 -18 27 24 0 12 -18 27 12 + 0 12 -18 27 25 0 12 33 36 3 + 0 12 33 39 3 108 105 111 117 2 + 105 111 117 123 1 105 111 -117 123 4 + 105 111 -117 123 5 105 111 -117 123 6 + 105 111 117 147 7 105 111 -117 147 8 + 105 111 -117 147 9 105 111 -117 147 6 + 84 78 75 102 26 84 90 -96 102 26 + 78 75 102 96 27 78 84 -90 96 26 + 75 78 84 90 26 75 102 -96 90 28 + 69 63 -60 102 30 69 75 78 84 26 + 69 75 102 96 27 63 60 -102 75 32 + 63 60 102 96 32 63 69 75 78 29 + 63 69 -75 102 29 60 51 45 105 33 + 60 51 -45 105 34 60 51 -45 105 35 + 60 51 -45 105 36 60 63 -69 75 31 + 60 102 -75 69 27 60 102 75 78 27 + 60 102 96 90 28 51 45 105 108 3 + 51 45 105 111 16 51 45 -105 111 17 + 51 45 -105 111 18 51 45 -105 111 6 + 51 60 63 69 30 51 60 102 75 32 + 51 60 102 96 32 45 51 60 63 7 + 45 51 -60 63 3 45 51 -60 63 39 + 45 51 -60 63 6 45 51 60 102 40 + 45 51 -60 102 41 45 51 -60 102 42 + 45 51 -60 102 43 45 105 111 117 2 + 39 45 51 60 44 39 45 -51 60 45 + 39 45 -51 60 35 39 45 -51 60 46 + 39 45 105 108 3 39 45 105 111 47 + 39 45 -105 111 48 39 45 -105 111 49 + 39 45 -105 111 6 150 147 153 159 2 + 147 153 159 165 1 147 153 -159 165 4 + 147 153 -159 165 5 147 153 -159 165 6 + 147 153 159 219 7 147 153 -159 219 8 + 147 153 -159 219 9 147 153 -159 219 6 + 141 123 117 147 50 141 123 -117 147 51 + 141 123 -117 147 52 141 123 -117 147 53 + 129 123 117 147 55 129 123 -117 147 56 + 129 123 -117 147 57 129 123 -117 147 58 + 123 117 147 150 3 123 117 147 153 16 + 123 117 -147 153 17 123 117 -147 153 18 + 123 117 -147 153 6 117 147 153 159 2 + 111 117 123 129 67 111 117 -123 129 68 + 111 117 -123 129 57 111 117 -123 129 69 + 111 117 123 141 70 111 117 -123 141 71 + 111 117 -123 141 52 111 117 -123 141 72 + 111 117 147 150 3 111 117 147 153 47 + 111 117 -147 153 48 111 117 -147 153 49 + 111 117 -147 153 6 222 219 225 231 2 + 219 225 231 237 1 219 225 -231 237 4 + 219 225 -231 237 5 219 225 -231 237 6 + 219 225 231 264 7 219 225 -231 264 8 + 219 225 -231 264 9 219 225 -231 264 6 + 198 192 189 216 26 198 204 -210 216 26 + 192 189 216 210 27 192 198 -204 210 26 + 189 192 198 204 26 189 216 -210 204 28 + 183 177 -174 216 30 183 189 192 198 26 + 183 189 216 210 27 177 174 -216 189 32 + 177 174 216 210 32 177 183 189 192 29 + 177 183 -189 216 29 174 165 159 219 33 + 174 165 -159 219 34 174 165 -159 219 35 + 174 165 -159 219 36 174 177 -183 189 31 + 174 216 -189 183 27 174 216 189 192 27 + 174 216 210 204 28 165 159 219 222 3 + 165 159 219 225 16 165 159 -219 225 17 + 165 159 -219 225 18 165 159 -219 225 6 + 165 174 177 183 30 165 174 216 189 32 + 165 174 216 210 32 159 165 174 177 7 + 159 165 -174 177 3 159 165 -174 177 39 + 159 165 -174 177 6 159 165 174 216 40 + 159 165 -174 216 41 159 165 -174 216 42 + 159 165 -174 216 43 159 219 225 231 2 + 153 159 165 174 44 153 159 -165 174 45 + 153 159 -165 174 35 153 159 -165 174 46 + 153 159 219 222 3 153 159 219 225 47 + 153 159 -219 225 48 153 159 -219 225 49 + 153 159 -219 225 6 267 264 270 276 2 + 264 270 276 282 1 264 270 -276 282 4 + 264 270 -276 282 5 264 270 -276 282 6 + 264 270 276 306 7 264 270 -276 306 8 + 264 270 -276 306 9 264 270 -276 306 6 + 246 237 231 264 73 246 237 -231 264 74 + 246 237 -231 264 75 246 237 -231 264 76 + 237 231 264 267 3 237 231 264 270 16 + 237 231 -264 270 17 237 231 -264 270 18 + 237 231 -264 270 6 237 246 255 258 78 + 237 246 -255 258 79 237 246 255 261 78 + 237 246 -255 261 79 231 237 246 255 80 + 231 237 -246 255 81 231 237 -246 255 82 + 231 237 -246 255 83 231 264 270 276 2 + 225 231 237 246 84 225 231 -237 246 85 + 225 231 -237 246 75 225 231 -237 246 86 + 225 231 264 267 3 225 231 264 270 47 + 225 231 -264 270 48 225 231 -264 270 49 + 225 231 -264 270 6 309 306 312 318 2 + 306 312 318 327 7 306 312 -318 327 8 + 306 312 -318 327 9 306 312 -318 327 6 + 291 282 276 306 87 291 282 -276 306 88 + 291 282 -276 306 89 291 282 -276 306 90 + 282 276 306 309 3 282 276 306 312 16 + 282 276 -306 312 17 282 276 -306 312 18 + 282 276 -306 312 6 276 282 291 294 7 + 276 282 291 297 91 276 282 -291 297 92 + 276 282 -291 297 93 276 282 -291 297 94 + 276 306 312 318 2 270 276 282 291 95 + 270 276 -282 291 96 270 276 -282 291 89 + 270 276 -282 291 97 270 276 306 309 3 + 270 276 306 312 47 270 276 -306 312 48 + 270 276 -306 312 49 270 276 -306 312 6 + 330 327 333 339 2 327 333 339 345 1 + 327 333 -339 345 4 327 333 -339 345 5 + 327 333 -339 345 6 327 333 339 393 7 + 327 333 -339 393 8 327 333 -339 393 9 + 327 333 -339 393 6 318 327 333 339 2 + 312 318 327 330 3 312 318 327 333 47 + 312 318 -327 333 48 312 318 -327 333 49 + 312 318 -327 333 6 396 393 399 405 2 + 393 399 405 411 1 393 399 -405 411 4 + 393 399 -405 411 5 393 399 -405 411 6 + 393 399 405 465 7 393 399 -405 465 8 + 393 399 -405 465 9 393 399 -405 465 6 + 354 345 339 393 14 354 363 372 381 14 + 345 339 393 396 3 345 339 393 399 16 + 345 339 -393 399 17 345 339 -393 399 18 + 345 339 -393 399 6 345 354 363 372 98 + 345 354 -363 372 99 345 354 -363 372 100 + 339 345 354 363 98 339 345 -354 363 99 + 339 345 -354 363 100 339 393 399 405 2 + 333 339 345 354 14 333 339 393 396 3 + 333 339 393 399 47 333 339 -393 399 48 + 333 339 -393 399 49 333 339 -393 399 6 + 468 465 471 477 2 465 471 477 483 1 + 465 471 -477 483 4 465 471 -477 483 5 + 465 471 -477 483 6 465 471 477 507 7 + 465 471 -477 507 8 465 471 -477 507 9 + 465 471 -477 507 6 444 438 435 462 26 + 444 450 -456 462 26 438 435 462 456 27 + 438 444 -450 456 26 435 438 444 450 26 + 435 462 -456 450 28 429 423 -420 462 30 + 429 435 438 444 26 429 435 462 456 27 + 423 420 -462 435 32 423 420 462 456 32 + 423 429 435 438 29 423 429 -435 462 29 + 420 411 405 465 33 420 411 -405 465 34 + 420 411 -405 465 35 420 411 -405 465 36 + 420 423 -429 435 31 420 462 -435 429 27 + 420 462 435 438 27 420 462 456 450 28 + 411 405 465 468 3 411 405 465 471 16 + 411 405 -465 471 17 411 405 -465 471 18 + 411 405 -465 471 6 411 420 423 429 30 + 411 420 462 435 32 411 420 462 456 32 + 405 411 420 423 7 405 411 -420 423 3 + 405 411 -420 423 39 405 411 -420 423 6 + 405 411 420 462 40 405 411 -420 462 41 + 405 411 -420 462 42 405 411 -420 462 43 + 405 465 471 477 2 399 405 411 420 44 + 399 405 -411 420 45 399 405 -411 420 35 + 399 405 -411 420 46 399 405 465 468 3 + 399 405 465 471 47 399 405 -465 471 48 + 399 405 -465 471 49 399 405 -465 471 6 + 510 507 513 519 2 507 513 519 525 1 + 507 513 -519 525 4 507 513 -519 525 5 + 507 513 -519 525 6 507 513 519 579 7 + 507 513 -519 579 8 507 513 -519 579 9 + 507 513 -519 579 6 501 483 477 507 50 + 501 483 -477 507 51 501 483 -477 507 52 + 501 483 -477 507 53 489 483 477 507 55 + 489 483 -477 507 56 489 483 -477 507 57 + 489 483 -477 507 58 483 477 507 510 3 + 483 477 507 513 16 483 477 -507 513 17 + 483 477 -507 513 18 483 477 -507 513 6 + 477 507 513 519 2 471 477 483 489 67 + 471 477 -483 489 68 471 477 -483 489 57 + 471 477 -483 489 69 471 477 483 501 70 + 471 477 -483 501 71 471 477 -483 501 52 + 471 477 -483 501 72 471 477 507 510 3 + 471 477 507 513 47 471 477 -507 513 48 + 471 477 -507 513 49 471 477 -507 513 6 + 582 579 585 591 2 579 585 591 597 1 + 579 585 -591 597 4 579 585 -591 597 5 + 579 585 -591 597 6 579 585 591 645 7 + 579 585 -591 645 8 579 585 -591 645 9 + 579 585 -591 645 6 558 552 549 576 26 + 558 564 -570 576 26 552 549 576 570 27 + 552 558 -564 570 26 549 552 558 564 26 + 549 576 -570 564 28 543 537 -534 576 30 + 543 549 552 558 26 543 549 576 570 27 + 537 534 -576 549 32 537 534 576 570 32 + 537 543 549 552 29 537 543 -549 576 29 + 534 525 519 579 33 534 525 -519 579 34 + 534 525 -519 579 35 534 525 -519 579 36 + 534 537 -543 549 31 534 576 -549 543 27 + 534 576 549 552 27 534 576 570 564 28 + 525 519 579 582 3 525 519 579 585 16 + 525 519 -579 585 17 525 519 -579 585 18 + 525 519 -579 585 6 525 534 537 543 30 + 525 534 576 549 32 525 534 576 570 32 + 519 525 534 537 7 519 525 -534 537 3 + 519 525 -534 537 39 519 525 -534 537 6 + 519 525 534 576 40 519 525 -534 576 41 + 519 525 -534 576 42 519 525 -534 576 43 + 519 579 585 591 2 513 519 525 534 44 + 513 519 -525 534 45 513 519 -525 534 35 + 513 519 -525 534 46 513 519 579 582 3 + 513 519 579 585 47 513 519 -579 585 48 + 513 519 -579 585 49 513 519 -579 585 6 + 648 645 651 657 2 606 597 591 645 14 + 606 615 624 633 14 597 591 645 648 3 + 597 591 645 651 16 597 591 -645 651 17 + 597 591 -645 651 18 597 591 -645 651 6 + 597 606 615 624 98 597 606 -615 624 99 + 597 606 -615 624 100 591 597 606 615 98 + 591 597 -606 615 99 591 597 -606 615 100 + 591 645 651 657 2 585 591 597 606 14 + 585 591 645 648 3 585 591 645 651 47 + 585 591 -645 651 48 585 591 -645 651 49 + 585 591 -645 651 6 12 39 -33 -36 101 + 45 111 -105 -108 101 60 75 -102 -96 102 + 69 78 -75 -102 102 102 51 -60 -63 103 + 117 153 -147 -150 101 159 225 -219 -222 101 + 174 210 -216 -189 102 192 216 -189 -183 102 + 216 165 -174 -177 103 231 270 -264 -267 101 + 246 258 -255 -261 101 276 312 -306 -309 101 + 282 297 -291 -294 101 318 333 -327 -330 101 + 339 399 -393 -396 101 405 471 -465 -468 101 + 420 456 -462 -435 102 438 462 -435 -429 102 + 462 411 -420 -423 103 477 513 -507 -510 101 + 519 585 -579 -582 101 534 570 -576 -549 102 + 552 576 -549 -543 102 576 525 -534 -537 103 + 591 651 -645 -648 101 +%FLAG EXCLUDED_ATOMS_LIST +%FORMAT(10I8) + 2 3 4 5 6 7 8 9 10 12 + 13 14 3 4 5 6 7 12 4 5 + 6 7 12 5 6 7 12 6 7 8 + 9 10 11 12 13 14 15 16 7 8 + 9 10 12 13 14 8 9 10 11 12 + 13 14 9 10 11 12 10 11 12 11 + 12 0 13 14 15 16 17 18 36 14 + 15 16 15 16 17 18 19 20 21 36 + 37 38 16 17 18 36 17 18 19 20 + 21 22 35 36 37 38 39 40 18 19 + 20 21 36 37 38 19 20 21 22 23 + 24 26 33 35 36 37 38 20 21 22 + 35 36 21 22 35 36 22 23 24 25 + 26 27 31 33 34 35 36 23 24 25 + 26 27 33 35 24 25 26 35 25 26 + 27 28 29 33 35 26 27 35 27 28 + 29 30 31 33 34 35 28 29 30 31 + 32 33 35 29 30 31 35 30 31 32 + 33 34 35 31 32 33 32 33 34 35 + 33 34 35 34 35 35 0 37 38 39 + 40 41 42 50 38 39 40 39 40 41 + 42 43 44 48 50 51 52 40 41 42 + 50 41 42 43 44 45 46 47 48 49 + 50 51 52 53 54 42 43 44 48 50 + 51 52 43 44 45 46 47 48 49 50 + 51 52 44 45 46 47 48 49 50 45 + 46 47 48 49 50 46 47 48 47 48 + 48 49 50 0 51 52 53 54 55 56 + 74 52 53 54 53 54 55 56 57 58 + 59 74 75 76 54 55 56 74 55 56 + 57 58 59 60 73 74 75 76 77 78 + 56 57 58 59 74 75 76 57 58 59 + 60 61 62 64 71 73 74 75 76 58 + 59 60 73 74 59 60 73 74 60 61 + 62 63 64 65 69 71 72 73 74 61 + 62 63 64 65 71 73 62 63 64 73 + 63 64 65 66 67 71 73 64 65 73 + 65 66 67 68 69 71 72 73 66 67 + 68 69 70 71 73 67 68 69 73 68 + 69 70 71 72 73 69 70 71 70 71 + 72 73 71 72 73 72 73 73 0 75 + 76 77 78 79 80 89 76 77 78 77 + 78 79 80 81 82 83 89 90 91 78 + 79 80 89 79 80 81 82 83 84 85 + 86 89 90 91 92 93 80 81 82 83 + 89 90 91 81 82 83 84 85 86 87 + 88 89 90 91 82 83 84 85 86 89 + 83 84 85 86 89 84 85 86 87 88 + 89 85 86 87 88 86 87 88 87 88 + 88 0 90 91 92 93 94 95 103 91 + 92 93 92 93 94 95 96 97 98 103 + 104 105 93 94 95 103 94 95 96 97 + 98 99 100 103 104 105 106 107 95 96 + 97 98 103 104 105 96 97 98 99 100 + 101 102 103 104 105 97 98 99 100 103 + 98 99 100 103 99 100 101 102 103 100 + 101 102 101 102 102 0 104 105 106 107 + 108 109 110 105 106 107 106 107 108 109 + 110 111 112 107 108 109 110 108 109 110 + 111 112 113 114 109 110 111 112 110 111 + 112 111 112 113 114 115 116 132 112 113 + 114 113 114 115 116 117 118 119 132 133 + 134 114 115 116 132 115 116 117 118 119 + 120 121 122 132 133 134 135 136 116 117 + 118 119 132 133 134 117 118 119 120 121 + 122 123 124 125 132 133 134 118 119 120 + 121 122 132 119 120 121 122 132 120 121 + 122 123 124 125 126 127 128 132 121 122 + 123 124 125 122 123 124 125 123 124 125 + 126 127 128 129 130 131 124 125 126 127 + 128 125 126 127 128 126 127 128 129 130 + 131 127 128 129 130 131 128 129 130 131 + 129 130 131 130 131 131 0 133 134 135 + 136 137 138 156 134 135 136 135 136 137 + 138 139 140 141 156 157 158 136 137 138 + 156 137 138 139 140 141 142 155 156 157 + 158 159 160 138 139 140 141 156 157 158 + 139 140 141 142 143 144 146 153 155 156 + 157 158 140 141 142 155 156 141 142 155 + 156 142 143 144 145 146 147 151 153 154 + 155 156 143 144 145 146 147 153 155 144 + 145 146 155 145 146 147 148 149 153 155 + 146 147 155 147 148 149 150 151 153 154 + 155 148 149 150 151 152 153 155 149 150 + 151 155 150 151 152 153 154 155 151 152 + 153 152 153 154 155 153 154 155 154 155 + 155 0 157 158 159 160 161 162 170 158 + 159 160 159 160 161 162 163 164 168 170 + 171 172 160 161 162 170 161 162 163 164 + 165 166 167 168 169 170 171 172 173 174 + 162 163 164 168 170 171 172 163 164 165 + 166 167 168 169 170 171 172 164 165 166 + 167 168 169 170 165 166 167 168 169 170 + 166 167 168 167 168 168 169 170 0 171 + 172 173 174 175 176 194 172 173 174 173 + 174 175 176 177 178 179 194 195 196 174 + 175 176 194 175 176 177 178 179 180 193 + 194 195 196 197 198 176 177 178 179 194 + 195 196 177 178 179 180 181 182 184 191 + 193 194 195 196 178 179 180 193 194 179 + 180 193 194 180 181 182 183 184 185 189 + 191 192 193 194 181 182 183 184 185 191 + 193 182 183 184 193 183 184 185 186 187 + 191 193 184 185 193 185 186 187 188 189 + 191 192 193 186 187 188 189 190 191 193 + 187 188 189 193 188 189 190 191 192 193 + 189 190 191 190 191 192 193 191 192 193 + 192 193 193 0 195 196 197 198 199 200 + 216 196 197 198 197 198 199 200 201 202 + 203 216 217 218 198 199 200 216 199 200 + 201 202 203 204 205 206 216 217 218 219 + 220 200 201 202 203 216 217 218 201 202 + 203 204 205 206 207 208 209 216 217 218 + 202 203 204 205 206 216 203 204 205 206 + 216 204 205 206 207 208 209 210 211 212 + 216 205 206 207 208 209 206 207 208 209 + 207 208 209 210 211 212 213 214 215 208 + 209 210 211 212 209 210 211 212 210 211 + 212 213 214 215 211 212 213 214 215 212 + 213 214 215 213 214 215 214 215 215 0 + 217 218 219 220 221 222 223 218 219 220 + 219 220 221 222 223 220 221 222 223 221 + 222 223 222 223 223 0 +%FLAG HBOND_ACOEF +%FORMAT(5E16.8) + +%FLAG HBOND_BCOEF +%FORMAT(5E16.8) + +%FLAG HBCUT +%FORMAT(5E16.8) + +%FLAG AMBER_ATOM_TYPE +%FORMAT(20a4) +N3 H H H CX HP 2C H1 H1 OH HO C O N H CX H1 CT HC HC +C* CW H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H CX +H1 3C H1 CT HC HC HC OH HO C O N H CX H1 CT HC HC C* CW +H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H CX H1 2C +HC HC 2C HC HC CO O2 O2 C O N H CX H1 2C HC HC C O N +H H C O N H CX H1 H1 C O N H CX H1 C8 HC HC C8 HC +HC C8 HC HC C8 HP HP N3 H H H C O N H CX H1 CT HC HC +C* CW H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H CX +H1 3C H1 CT HC HC HC OH HO C O N H CX H1 CT HC HC C* CW +H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H CX H1 C8 +HC HC C8 HC HC C8 HC HC C8 HP HP N3 H H H C O N H CT +H1 H1 H1 +%FLAG TREE_CHAIN_CLASSIFICATION +%FORMAT(20a4) +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA +%FLAG JOIN_ARRAY +%FORMAT(10I8) + 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 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 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 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 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 +%FLAG IROTAT +%FORMAT(10I8) + 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 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 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 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 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 +%FLAG RADIUS_SET +%FORMAT(1a80) +modified Bondi radii (mbondi) +%FLAG RADII +%FORMAT(5E16.8) + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 +%FLAG SCREEN +%FORMAT(5E16.8) + 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 +%FLAG ATOM_OCCUPANCY +%FORMAT(10F8.2) + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.00 + 0.00 0.00 0.00 +%FLAG ATOM_BFACTOR +%FORMAT(10F8.2) + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 + 0.00 0.00 0.00 +%FLAG ATOM_NUMBER +%FORMAT(10I8) + 1 2 3 4 5 6 7 8 9 10 + 11 12 13 14 15 16 17 18 19 20 + 21 22 23 24 25 26 27 28 29 30 + 31 32 33 34 35 36 37 38 39 40 + 41 42 43 44 45 46 47 48 49 50 + 51 52 53 54 55 56 57 58 59 60 + 61 62 63 64 65 66 67 68 69 70 + 71 72 73 74 75 76 77 78 79 80 + 81 82 83 84 85 86 87 88 89 90 + 91 92 93 94 95 96 97 98 99 100 + 101 102 103 104 105 106 107 108 109 110 + 111 112 113 114 115 116 117 118 119 120 + 121 122 123 124 125 126 127 128 129 130 + 131 132 133 134 135 136 137 138 139 140 + 141 142 143 144 145 146 147 148 149 150 + 151 152 153 154 155 156 157 158 159 160 + 161 162 163 164 165 166 167 168 169 170 + 171 172 173 174 175 176 177 178 179 180 + 181 182 183 184 185 186 187 188 189 190 + 191 192 193 194 195 196 197 198 199 200 + 201 202 203 204 205 206 207 208 209 210 + 211 212 213 214 215 216 217 218 219 0 + 0 0 0 diff --git a/test/Test_Build/tz2.rst7.save b/test/Test_Build/tz2.rst7.save new file mode 100644 index 0000000000..c58ccf35ff --- /dev/null +++ b/test/Test_Build/tz2.rst7.save @@ -0,0 +1,114 @@ +Cpptraj Generated Restart + 223 + -1.8890001 9.1590004 7.5689998 -1.0369999 8.6910000 7.2960000 + -1.9000000 9.2980003 8.5690002 -2.5380001 8.4469995 7.2649999 + -2.0639999 10.5010004 6.9930000 -3.0999999 10.8240004 7.1020002 + -1.2300000 11.5609999 7.7069998 -1.6700000 11.8109999 8.6730003 + -1.2480000 12.5030003 7.1589999 0.1230000 11.2159996 7.9039998 + 0.2740000 11.7279997 8.7010002 -1.6130000 10.4180002 5.5419998 + -2.4979999 10.4329996 4.6890001 -0.3660000 10.5719995 5.0900002 + 0.3440000 10.6120005 5.8080001 0.1950000 10.6969995 3.7600000 + -0.2180000 11.5690002 3.2539999 1.7100000 10.8789997 3.7090001 + 2.2079999 9.9860001 4.0869999 1.9270000 11.6409998 4.4580002 + 2.2650001 11.2910004 2.3840001 2.0320001 12.5000000 1.8270000 + 1.5380000 13.3330002 2.3050001 2.8599999 12.5799999 0.7240000 + 2.9289999 13.4040003 0.1430000 3.6619999 11.4600000 0.6460000 + 4.6199999 11.1599998 -0.3300000 5.0590000 11.8629999 -1.0230000 + 5.0910001 9.8430004 -0.3770000 5.8540001 9.6099997 -1.1050000 + 4.5450001 8.8500004 0.4450000 4.8230000 7.8400002 0.1820000 + 3.5490000 9.1590004 1.3789999 3.1350000 8.4300003 2.0590000 + 3.0750000 10.4770002 1.4830000 -0.1900000 9.6090002 2.7679999 + -0.4520000 9.9630003 1.6210001 -0.2680000 8.4020004 3.3340001 + -0.2600000 8.2749996 4.3360000 -0.6060000 7.1719999 2.6470001 + -0.1800000 7.2659998 1.6480000 -0.0930000 5.9920001 3.4679999 + -0.5860000 5.0809999 3.1280000 1.3430001 5.6479998 3.0810001 + 1.3060000 5.0050001 2.2019999 1.9550000 6.5430002 2.9670000 + 1.8279999 5.0679998 3.8659999 -0.2730000 6.2459998 4.8429999 + 0.4280000 5.7500000 5.2709999 -2.0730000 6.8820000 2.3629999 + -2.8840001 6.6849999 3.2650001 -2.4140000 6.7960000 1.0750000 + -1.6310000 6.7560000 0.4390000 -3.6889999 6.2859998 0.6130000 + -4.2880001 6.0200000 1.4850000 -4.4650002 7.2750001 -0.2530000 + -5.4499998 6.8210001 -0.3660000 -4.0219998 7.1620002 -1.2420000 + -4.6320000 8.7229996 0.0770000 -3.9020000 9.7130003 -0.4830000 + -3.0890000 9.5530005 -1.1760000 -4.4730000 10.9230003 -0.1410000 + -4.1360002 11.8610001 -0.3060000 -5.4689999 10.7460003 0.7980000 + -6.3299999 11.6929998 1.3650000 -6.2760000 12.7460003 1.1300000 + -7.3740001 11.1960001 2.1540000 -8.2299995 11.8219995 2.3620000 + -7.6300001 9.8240004 2.2590001 -8.3789997 9.4820004 2.9590001 + -6.7760000 8.9049997 1.6380000 -6.9740000 7.8720002 1.8839999 + -5.7030001 9.3470001 0.8480000 -3.6320000 4.9260001 -0.0680000 + -4.2789998 3.9519999 0.3090000 -2.7950001 4.8720002 -1.1059999 + -2.2780001 5.7080002 -1.3390000 -2.5350001 3.7230000 -1.9500000 + -3.0070000 2.9480000 -1.3460000 -3.4130001 3.5239999 -3.1830001 + -3.1389999 4.1409998 -4.0380001 -4.3860002 3.7869999 -2.7670000 + -3.4700000 2.1080000 -3.7479999 -2.4470000 1.7930000 -3.9530001 + -4.0390000 2.4250000 -4.6230001 -4.1890001 1.1230000 -2.8369999 + -3.8030000 0.7710000 -1.7020000 -5.2630000 0.6010000 -3.2070000 + -1.0580000 3.5179999 -2.2550001 -0.3010000 4.4140000 -2.6190000 + -0.6680000 2.2650001 -2.0090001 -1.3230000 1.6560000 -1.5390000 + 0.6390000 1.6960000 -2.2670000 1.2390000 2.4530001 -2.7720001 + 1.4119999 1.3660001 -0.9930000 2.2240000 0.7030000 -1.2910000 + 0.7120000 0.8820000 -0.3110000 2.1540000 2.5500000 -0.3910000 + 2.8090000 3.3469999 -1.0580000 2.3590000 2.5190001 0.9280000 + 1.8690000 1.8970000 1.5560000 3.0239999 3.1960001 1.2720000 + 0.5090000 0.4880000 -3.1849999 -0.4570000 -0.2500000 -3.0039999 + 1.4630001 0.2470000 -4.0869999 2.3720000 0.6580000 -3.9319999 + 1.3990000 -0.9020000 -4.9670000 2.1800001 -0.8820000 -5.7280002 + 0.5010000 -0.7990000 -5.5760002 1.4480000 -2.2750001 -4.3130002 + 0.7270000 -2.5760000 -3.3640001 2.3610001 -3.1180000 -4.8010001 + 3.0799999 -2.7839999 -5.4260001 2.5409999 -4.5139999 -4.4580002 + 1.6270000 -5.0149999 -4.1380000 3.1229999 -5.2830000 -5.6409998 + 2.4349999 -5.2430000 -6.4860001 3.3350000 -6.3179998 -5.3720002 + 4.4159999 -4.7459998 -6.2480001 5.3080001 -4.9600000 -5.6599998 + 4.3930001 -3.6740000 -6.4390001 4.7259998 -5.5029998 -7.5359998 + 3.9920001 -5.2719998 -8.3079996 4.5840001 -6.5430002 -7.2410002 + 6.1479998 -5.3379998 -8.0660000 6.5209999 -6.2900000 -8.4440002 + 6.8480000 -5.0250001 -7.2900000 6.1770000 -4.4200001 -9.2139997 + 6.0460000 -3.5469999 -8.7220001 7.1310000 -4.3920002 -9.5459995 + 5.4710002 -4.5500002 -9.9250002 3.5120001 -4.5190001 -3.2860000 + 4.6240001 -5.0419998 -3.2860000 2.9250000 -4.2560000 -2.1159999 + 2.0100000 -3.8789999 -2.3160000 3.3410001 -4.2620001 -0.7280000 + 4.4099998 -4.0450001 -0.7240000 2.6250000 -3.0680001 -0.1040000 + 1.5890000 -3.2939999 0.1480000 2.8350000 -2.1940000 -0.7210000 + 3.2880001 -2.4619999 1.0910000 2.9250000 -2.4360001 2.3929999 + 1.9490000 -2.7990000 2.6780000 3.8550000 -1.8450000 3.2240000 + 3.8850000 -1.8480000 4.2340002 4.8270001 -1.3030000 2.4080000 + 5.9109998 -0.4710000 2.7140000 6.1389999 -0.1560000 3.7210000 + 6.8410001 -0.1410000 1.7220000 7.7249999 0.4050000 2.0179999 + 6.5840001 -0.5900000 0.4210000 7.2309999 -0.2350000 -0.3680000 + 5.4239998 -1.2970001 0.0820000 5.1389999 -1.4650000 -0.9460000 + 4.4790001 -1.6200000 1.0690000 2.9449999 -5.5929999 -0.1050000 + 3.0220001 -6.6750002 -0.6820000 2.5309999 -5.6090002 1.1640000 + 2.7110000 -4.7940001 1.7309999 2.2539999 -6.8740001 1.8150001 + 2.9820001 -7.6669998 1.6440001 2.2070000 -6.6220002 3.3199999 + 1.7220000 -5.6669998 3.5260000 1.4560000 -7.6589999 4.1490002 + 1.5810000 -7.4640002 5.2140002 0.4020000 -7.4679999 3.9460001 + 1.7250000 -8.6400003 3.7550001 3.4600000 -6.5009999 3.9540000 + 3.3850000 -6.0970001 4.8220000 0.8890000 -7.3540001 1.3440000 + -0.1720000 -6.7600002 1.5240000 0.9060000 -8.5220003 0.6990000 + 1.7230000 -9.1149998 0.7340000 -0.1880000 -9.0660000 -0.0800000 + -0.7370000 -8.2200003 -0.4950000 0.4120000 -10.0100002 -1.1170000 + 1.1130000 -10.7100000 -0.6610000 0.8870000 -9.3680000 -1.8590000 + -0.5390000 -10.9280005 -1.8160000 -1.3130000 -10.6859999 -2.8980000 + -1.3370000 -9.7639999 -3.4600000 -1.9710000 -11.7860003 -3.4110000 + -2.3840001 -11.8640003 -4.3299999 -1.9570000 -12.7629995 -2.4370000 + -2.7850001 -13.8649998 -2.1910000 -3.6310000 -14.0120001 -2.8460000 + -2.5999999 -14.7089996 -1.0890000 -3.3150001 -15.4729996 -0.8230000 + -1.5180000 -14.3450003 -0.2780000 -1.3250000 -14.9359999 0.6040000 + -0.8090000 -13.1459999 -0.4190000 -0.0380000 -12.8339996 0.2700000 + -1.0340000 -12.2589998 -1.4840000 -1.0790000 -9.7519999 0.9460000 + -0.7100000 -10.6730003 1.6720001 -2.3440001 -9.3260002 0.9490000 + -2.4560001 -8.3389997 0.7700000 -3.4700000 -9.9259996 1.6360000 + -3.0969999 -10.4390001 2.5220001 -4.3839998 -8.8140001 2.1420000 + -5.3889999 -9.1120005 2.4400001 -4.4390001 -8.0089998 1.4090000 + -3.7990000 -8.0920000 3.3520000 -2.8889999 -7.5660000 3.0639999 + -3.6910000 -8.7240000 4.2329998 -4.8480000 -7.0240002 3.6500001 + -5.6910000 -7.4109998 4.2220001 -5.1300001 -6.4949999 2.7400000 + -4.1079998 -6.0190001 4.5289998 -3.1830001 -5.6350002 4.0990000 + -3.8850000 -6.5530000 5.4520001 -4.8769999 -4.8020000 4.8290000 + -5.1320000 -4.3049998 3.9870000 -5.7179999 -4.9679999 5.3620000 + -4.2500000 -4.2630000 5.4099998 -4.3950000 -10.7779999 0.7790000 + -4.4829998 -11.9390001 1.1720001 -4.8319998 -10.2019997 -0.3440000 + -4.6469998 -9.2390003 -0.5870000 -5.7864748 -10.8540745 -1.2177150 + -5.9324884 -11.8842255 -0.8928001 -6.7375435 -10.3230082 -1.1785067 + -5.4084096 -10.8462084 -2.2400188 diff --git a/test/Test_Change/RunTest.sh b/test/Test_Change/RunTest.sh index 8b42a8c8a1..c4b9bb1ee1 100755 --- a/test/Test_Change/RunTest.sh +++ b/test/Test_Change/RunTest.sh @@ -4,7 +4,8 @@ CleanFiles change.in ala3.mod.pdb ala3.chain.pdb crdala3.chain.pdb \ AFV.zeroHmass.dat AFV.fluctMass.dat merged.?-?.mol2 \ - AFV.zeroHcharge.dat AFV.1.offset.dat AFV.1.byfac.dat + AFV.zeroHcharge.dat AFV.1.offset.dat AFV.1.byfac.dat \ + ala3.mod.namemap.pdb TESTNAME='Change command test' @@ -25,6 +26,22 @@ EOF DoTest ala3.mod.pdb.save ala3.mod.pdb fi +UNITNAME='Change atom name using name map test' +CheckFor maxthreads 1 +if [ $? -eq 0 ] ; then + cat > change.in <<EOF +parm ../Test_Charmm/ala3.psf +trajin ../Test_Charmm/ala3.dcd 1 1 +change parmindex 0 resname from :1 to NALA +change parmindex 0 resname from :3 to CALA +readdata namemap.dat namemap +change parmindex 0 atomname from @HN namemap namemap.dat +trajout ala3.mod.namemap.pdb chainid " " +EOF + RunCpptraj "$UNITNAME" + DoTest ala3.mod.pdb.save ala3.mod.namemap.pdb +fi + UNITNAME='Change chain ID test' CheckFor maxthreads 1 if [ $? -eq 0 ] ; then diff --git a/test/Test_Change/namemap.dat b/test/Test_Change/namemap.dat new file mode 100644 index 0000000000..65b23bbdea --- /dev/null +++ b/test/Test_Change/namemap.dat @@ -0,0 +1 @@ +H HN diff --git a/test/Test_Charmm/strip.chamber.parm7.save b/test/Test_Charmm/strip.chamber.parm7.save index 433bd15132..60438bccfe 100644 --- a/test/Test_Charmm/strip.chamber.parm7.save +++ b/test/Test_Charmm/strip.chamber.parm7.save @@ -1,11 +1,11 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 01/19/18 10:10:48 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 10:33:11 %FLAG CTITLE %FORMAT(a80) %FLAG POINTERS %FORMAT(10I8) 16 8 8 7 17 8 22 7 0 0 - 69 1 7 8 7 9 16 17 1 0 + 69 1 7 8 7 9 16 17 8 0 0 0 0 0 0 0 0 0 16 0 0 %FLAG FORCE_FIELD_TYPE @@ -140,7 +140,8 @@ ALA 0.00000000E+00 0.00000000E+00 6.09119909E-01 %FLAG SOLTY %FORMAT(5E16.8) - 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 %FLAG LENNARD_JONES_ACOEF %FORMAT(3E24.16) 1.9136238690375928E+06 9.3273170044881190E+04 2.5215628838626608E+03 @@ -288,3 +289,6 @@ modified Bondi radii (mbondi) 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_CharmmParams/KCX.rst7 b/test/Test_CharmmParams/KCX.rst7 new file mode 100644 index 0000000000..0dee3b87bd --- /dev/null +++ b/test/Test_CharmmParams/KCX.rst7 @@ -0,0 +1,14 @@ +Cpptraj Generated Restart + 23 + 8.7990000 -2.8920000 11.2160000 9.5010000 -3.4990000 10.8510000 + 7.4570000 -3.3790000 11.2170000 7.3030000 -3.9110000 10.2900000 + 7.1420000 -4.3270000 12.4080000 7.6340000 -3.8850000 13.2970000 + 7.6210000 -5.2970000 12.1690000 5.6860000 -4.6530000 12.8330000 + 5.0890000 -4.6700000 11.9000000 5.3530000 -3.8060000 13.4650000 + 5.3190000 -5.9160000 13.5920000 4.9780000 -5.6410000 14.6130000 + 6.2170000 -6.5650000 13.6760000 4.2090000 -6.6870000 12.8840000 + 3.2900000 -6.0650000 12.9110000 4.0320000 -7.6270000 13.4480000 + 4.4530000 -7.0540000 11.4800000 4.8310000 -7.9680000 11.3800000 + 4.2300000 -6.3190000 10.3730000 4.9750000 -6.3540000 9.3310000 + 3.3590000 -5.5850000 10.2430000 6.4950000 -2.2790000 10.8990000 + 5.8750000 -2.3320000 9.9930000 diff --git a/test/Test_CharmmParams/test3.parm7.save b/test/Test_CharmmParams/test3.parm7.save index 9746a76ce0..9c11e876f5 100644 --- a/test/Test_CharmmParams/test3.parm7.save +++ b/test/Test_CharmmParams/test3.parm7.save @@ -1,11 +1,11 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 10/22/18 14:47:36 +%VERSION VERSION_STAMP = V0001.000 DATE = 10/19/25 11:02:40 %FLAG CTITLE %FORMAT(a80) %FLAG POINTERS %FORMAT(10I8) - 23 12 11 11 26 12 42 19 0 0 - 114 1 11 12 19 13 22 36 1 0 + 23 11 11 11 26 12 42 19 0 0 + 114 1 11 12 19 13 22 19 12 0 0 0 0 0 0 0 0 1 23 0 0 %FLAG FORCE_FIELD_TYPE @@ -41,8 +41,8 @@ OQ2 C O %FLAG ATOM_TYPE_INDEX %FORMAT(10I8) 1 2 3 4 5 6 6 5 6 6 - 5 6 6 5 7 7 8 2 9 10 - 10 11 12 + 5 6 6 5 4 4 7 2 8 9 + 9 10 11 %FLAG NUMBER_EXCLUDED_ATOMS %FORMAT(10I8) 9 4 10 6 11 6 5 10 5 4 @@ -51,20 +51,18 @@ OQ2 C O %FLAG NONBONDED_PARM_INDEX %FORMAT(10I8) 1 2 4 7 11 16 22 29 37 46 - 56 67 2 3 5 8 12 17 23 30 - 38 47 57 68 4 5 6 9 13 18 - 24 31 39 48 58 69 7 8 9 10 - 14 19 25 32 40 49 59 70 11 12 - 13 14 15 20 26 33 41 50 60 71 - 16 17 18 19 20 21 27 34 42 51 - 61 72 22 23 24 25 26 27 28 35 - 43 52 62 73 29 30 31 32 33 34 - 35 36 44 53 63 74 37 38 39 40 - 41 42 43 44 45 54 64 75 46 47 - 48 49 50 51 52 53 54 55 65 76 + 56 2 3 5 8 12 17 23 30 38 + 47 57 4 5 6 9 13 18 24 31 + 39 48 58 7 8 9 10 14 19 25 + 32 40 49 59 11 12 13 14 15 20 + 26 33 41 50 60 16 17 18 19 20 + 21 27 34 42 51 61 22 23 24 25 + 26 27 28 35 43 52 62 29 30 31 + 32 33 34 35 36 44 53 63 37 38 + 39 40 41 42 43 44 45 54 64 46 + 47 48 49 50 51 52 53 54 55 65 56 57 58 59 60 61 62 63 64 65 - 66 77 67 68 69 70 71 72 73 74 - 75 76 77 78 + 66 %FLAG RESIDUE_LABEL %FORMAT(20a4) LYS @@ -123,51 +121,31 @@ LYS 8.80000000E-01 0.00000000E+00 1.90000000E+00 0.00000000E+00 6.30000000E-01 1.00000000E-02 1.50000000E-01 1.40000000E+00 1.00000000E-01 1.50000000E-01 1.00000000E-01 3.50000000E-01 4.20000000E-01 1.91000000E+00 1.90000000E-01 - 1.10000000E+00 2.00000000E-01 2.20000000E+00 2.00000000E-01 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 1.90000000E-01 2.00000000E-01 2.00000000E-01 - 0.00000000E+00 1.90000000E-01 2.00000000E-01 1.90000000E-01 1.90000000E-01 - 2.00000000E-01 1.90000000E-01 1.90000000E-01 0.00000000E+00 0.00000000E+00 - 1.92500000E+00 + 1.10000000E+00 2.00000000E-01 2.20000000E+00 1.92500000E+00 %FLAG DIHEDRAL_PERIODICITY %FORMAT(5E16.8) 1.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 2.00000000E+00 4.00000000E+00 6.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 3.00000000E+00 - 1.00000000E+00 3.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 3.00000000E+00 3.00000000E+00 3.00000000E+00 - 1.00000000E+00 3.00000000E+00 3.00000000E+00 3.00000000E+00 3.00000000E+00 - 3.00000000E+00 3.00000000E+00 3.00000000E+00 1.00000000E+00 1.00000000E+00 - 2.00000000E+00 + 1.00000000E+00 3.00000000E+00 2.00000000E+00 2.00000000E+00 %FLAG DIHEDRAL_PHASE %FORMAT(5E16.8) 3.14159265E+00 3.14159265E+00 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 3.14159265E+00 0.00000000E+00 - 3.14159265E+00 0.00000000E+00 3.14159265E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 3.14159265E+00 + 3.14159265E+00 0.00000000E+00 3.14159265E+00 3.14159265E+00 %FLAG SCEE_SCALE_FACTOR %FORMAT(5E16.8) 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 + 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 %FLAG SCNB_SCALE_FACTOR %FORMAT(5E16.8) 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 - 1.00000000E+00 + 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.00000000E+00 %FLAG CHARMM_NUM_IMPROPERS %FORMAT(10I8) 1 @@ -185,7 +163,9 @@ LYS 0.00000000E+00 %FLAG SOLTY %FORMAT(5E16.8) - 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 %FLAG LENNARD_JONES_ACOEF %FORMAT(3E24.16) 1.3165904011680079E+06 6.0933367984903236E+02 3.0882604789375229E-06 @@ -195,24 +175,20 @@ LYS 7.3181528163627407E+05 6.5258360090677787E+04 9.9747188643525087E+05 9.1567773233238448E+04 8.5040378433301811E+00 6.3572903858652840E+04 3.4318669196435499E+03 8.7170825044557787E+04 4.6676302460305051E+03 - 6.8302639168618378E+04 5.8619918176552899E+00 4.7582070268952521E+04 - 2.5215628838626608E+03 6.5258360090677787E+04 3.4318669196435499E+03 - 2.5215628838626608E+03 1.3165904011680079E+06 6.0933367984903236E+02 - 8.4843532269460149E+05 6.8302639168618378E+04 1.1578616437851232E+06 - 9.1567773233238448E+04 6.8302639168618378E+04 1.3165904011680079E+06 - 1.2548527649652825E+06 8.3313783399093302E+02 7.9404278715436335E+05 - 7.0374830989043825E+04 1.0823693981629282E+06 9.4025592817777913E+04 - 7.0374830989043825E+04 1.2548527649652825E+06 1.1744051200000001E+06 + 1.3165904011680079E+06 6.0933367984903236E+02 8.4843532269460149E+05 + 6.8302639168618378E+04 1.1578616437851232E+06 9.1567773233238448E+04 + 1.3165904011680079E+06 1.2548527649652825E+06 8.3313783399093302E+02 + 7.9404278715436335E+05 7.0374830989043825E+04 1.0823693981629282E+06 + 9.4025592817777913E+04 1.2548527649652825E+06 1.1744051200000001E+06 6.2064871065477643E+05 1.9177170259300729E+02 4.0793061580001831E+05 2.9572311958222777E+04 5.5740588794684899E+05 3.9793586685559225E+04 - 2.9572311958222777E+04 6.2064871065477643E+05 6.0333751726046635E+05 - 2.8637048204317159E+05 1.5730411891415559E+06 1.0443935461513495E+03 - 9.9538531133501721E+05 8.8219519385371299E+04 1.3568218461261056E+06 - 1.1786731835420479E+05 8.8219519385371299E+04 1.5730411891415559E+06 - 1.4721947291958532E+06 7.5632360393402458E+05 1.8454937600000000E+06 - 6.2064871065477643E+05 1.9177170259300729E+02 4.0793061580001831E+05 - 2.9572311958222777E+04 5.5740588794684899E+05 3.9793586685559225E+04 - 2.9572311958222777E+04 6.2064871065477643E+05 6.0333751726046635E+05 + 6.2064871065477643E+05 6.0333751726046635E+05 2.8637048204317159E+05 + 1.5730411891415559E+06 1.0443935461513495E+03 9.9538531133501721E+05 + 8.8219519385371299E+04 1.3568218461261056E+06 1.1786731835420479E+05 + 1.5730411891415559E+06 1.4721947291958532E+06 7.5632360393402458E+05 + 1.8454937600000000E+06 6.2064871065477643E+05 1.9177170259300729E+02 + 4.0793061580001831E+05 2.9572311958222777E+04 5.5740588794684899E+05 + 3.9793586685559225E+04 6.2064871065477643E+05 6.0333751726046635E+05 2.8637048204317159E+05 7.5632360393402458E+05 2.8637048204317159E+05 %FLAG LENNARD_JONES_BCOEF %FORMAT(3E24.16) @@ -223,24 +199,20 @@ LYS 3.5201829414699682E+02 9.5719572566977860E+01 4.7268774318940854E+02 1.7379150748946228E+02 1.1598498613736850E+00 9.1584766861999441E+01 1.9376289489599738E+01 1.2334805617966474E+02 2.5195192268767240E+01 - 1.3462071944937435E+02 8.6366978783292059E-01 7.1063211034782952E+01 - 1.4896225487683587E+01 9.5719572566977860E+01 1.9376289489599738E+01 - 1.4896225487683587E+01 1.0262905636000003E+03 1.5289896454943387E+01 - 5.2105595022250009E+02 1.3462071944937435E+02 7.0010444501670088E+02 - 1.7379150748946228E+02 1.3462071944937435E+02 1.0262905636000003E+03 - 7.7065214324377325E+02 1.3751573424392696E+01 3.8771620466521648E+02 - 1.0510390653125525E+02 5.2064207832106547E+02 1.3545569691804164E+02 - 1.0510390653125525E+02 7.7065214324377325E+02 5.7344000000000005E+02 + 1.0262905636000003E+03 1.5289896454943387E+01 5.2105595022250009E+02 + 1.3462071944937435E+02 7.0010444501670088E+02 1.7379150748946228E+02 + 1.0262905636000003E+03 7.7065214324377325E+02 1.3751573424392696E+01 + 3.8771620466521648E+02 1.0510390653125525E+02 5.2064207832106547E+02 + 1.3545569691804164E+02 7.7065214324377325E+02 5.7344000000000005E+02 6.2016283283809321E+02 7.5493059634400677E+00 3.1798450089540978E+02 7.7960320675811644E+01 4.2752162763340442E+02 1.0083274234917499E+02 - 7.7960320675811644E+01 6.2016283283809321E+02 4.7030541927158896E+02 - 3.7075305983999965E+02 9.6606358743307453E+02 1.7238509581379120E+01 - 4.8602798405030137E+02 1.3175471954107928E+02 6.5265938512073842E+02 - 1.6980270236074230E+02 1.3175471954107928E+02 9.6606358743307453E+02 - 7.1884508261516271E+02 5.8955904361510193E+02 9.0112000000000000E+02 - 6.2016283283809321E+02 7.5493059634400677E+00 3.1798450089540978E+02 - 7.7960320675811644E+01 4.2752162763340442E+02 1.0083274234917499E+02 - 7.7960320675811644E+01 6.2016283283809321E+02 4.7030541927158896E+02 + 6.2016283283809321E+02 4.7030541927158896E+02 3.7075305983999965E+02 + 9.6606358743307453E+02 1.7238509581379120E+01 4.8602798405030137E+02 + 1.3175471954107928E+02 6.5265938512073842E+02 1.6980270236074230E+02 + 9.6606358743307453E+02 7.1884508261516271E+02 5.8955904361510193E+02 + 9.0112000000000000E+02 6.2016283283809321E+02 7.5493059634400677E+00 + 3.1798450089540978E+02 7.7960320675811644E+01 4.2752162763340442E+02 + 1.0083274234917499E+02 6.2016283283809321E+02 4.7030541927158896E+02 3.7075305983999965E+02 5.8955904361510193E+02 3.7075305983999965E+02 %FLAG LENNARD_JONES_14_ACOEF %FORMAT(3E24.16) @@ -251,24 +223,20 @@ LYS 9.0657379084949906E+04 1.8428152636329229E+04 9.0657379084949906E+04 2.7991654526114347E+04 8.5040378433301669E+00 2.4676273834651991E+04 3.4318669196435499E+03 2.4676273834651991E+04 4.6676302460305051E+03 - 2.0716152484524384E+04 5.8619918176552899E+00 1.8428152636329229E+04 - 2.5215628838626608E+03 1.8428152636329229E+04 3.4318669196435499E+03 - 2.5215628838626608E+03 4.7728413673862081E+05 6.0933367984903236E+02 - 3.4585193557154440E+05 6.8302639168618378E+04 3.4585193557154440E+05 - 9.1567773233238448E+04 6.8302639168618378E+04 1.3165904011680079E+06 - 4.7402828275870968E+05 8.3313783399093302E+02 3.2758522400263138E+05 - 7.0374830989043956E+04 3.2758522400263138E+05 9.4025592817777768E+04 - 7.0374830989043956E+04 1.2548527649652825E+06 1.1744051200000001E+06 + 4.7728413673862081E+05 6.0933367984903236E+02 3.4585193557154440E+05 + 6.8302639168618378E+04 3.4585193557154440E+05 9.1567773233238448E+04 + 1.3165904011680079E+06 4.7402828275870968E+05 8.3313783399093302E+02 + 3.2758522400263138E+05 7.0374830989043956E+04 3.2758522400263138E+05 + 9.4025592817777768E+04 1.2548527649652825E+06 1.1744051200000001E+06 2.1513246459458279E+05 1.9177170259300729E+02 1.6414234447218489E+05 2.9572311958222777E+04 1.6414234447218489E+05 3.9793586685559290E+04 - 2.9572311958222777E+04 6.2064871065477643E+05 6.0333751726046717E+05 - 2.8637048204317200E+05 5.9422589997490286E+05 1.0443935461513495E+03 - 4.1064981063699443E+05 8.8219519385371445E+04 4.1064981063699443E+05 - 1.1786731835420460E+05 8.8219519385371445E+04 1.5730411891415559E+06 - 1.4721947291958532E+06 7.5632360393402562E+05 1.8454937600000000E+06 - 6.7292987992743627E+04 2.5096093690802419E+01 5.7777387626199576E+04 - 8.4261427397045609E+03 5.7777387626199576E+04 1.1437650860852889E+04 - 8.4261427397045609E+03 2.1513246459458279E+05 2.1871906846063802E+05 + 6.2064871065477643E+05 6.0333751726046717E+05 2.8637048204317200E+05 + 5.9422589997490286E+05 1.0443935461513495E+03 4.1064981063699443E+05 + 8.8219519385371445E+04 4.1064981063699443E+05 1.1786731835420460E+05 + 1.5730411891415559E+06 1.4721947291958532E+06 7.5632360393402562E+05 + 1.8454937600000000E+06 6.7292987992743627E+04 2.5096093690802419E+01 + 5.7777387626199576E+04 8.4261427397045609E+03 5.7777387626199576E+04 + 1.1437650860852889E+04 2.1513246459458279E+05 2.1871906846063802E+05 9.4519534054625838E+04 2.7417886236938258E+05 2.7866191810705470E+04 %FLAG LENNARD_JONES_14_BCOEF %FORMAT(3E24.16) @@ -279,24 +247,20 @@ LYS 6.0218727679999986E+01 3.3065612070731468E+01 6.0218727679999986E+01 9.6088520957279030E+01 1.1598498613736841E+00 4.2661833402600713E+01 1.9376289489599738E+01 4.2661833402600713E+01 2.5195192268767240E+01 - 7.4139169075978288E+01 8.6366978783292059E-01 3.3065612070731468E+01 - 1.4896225487683587E+01 3.3065612070731468E+01 1.9376289489599738E+01 - 1.4896225487683587E+01 6.1792176640000037E+02 1.5289896454943387E+01 - 2.4873253717000529E+02 1.3462071944937435E+02 2.4873253717000529E+02 - 1.7379150748946228E+02 1.3462071944937435E+02 1.0262905636000003E+03 - 4.7365718744646796E+02 1.3751573424392696E+01 1.8619441837932197E+02 - 1.0510390653125533E+02 1.8619441837932197E+02 1.3545569691804153E+02 - 1.0510390653125533E+02 7.7065214324377325E+02 5.7344000000000005E+02 + 6.1792176640000037E+02 1.5289896454943387E+01 2.4873253717000529E+02 + 1.3462071944937435E+02 2.4873253717000529E+02 1.7379150748946228E+02 + 1.0262905636000003E+03 4.7365718744646796E+02 1.3751573424392696E+01 + 1.8619441837932197E+02 1.0510390653125533E+02 1.8619441837932197E+02 + 1.3545569691804153E+02 7.7065214324377325E+02 5.7344000000000005E+02 3.6512013422507960E+02 7.5493059634400677E+00 1.5081190411881860E+02 7.7960320675811644E+01 1.5081190411881860E+02 1.0083274234917508E+02 - 7.7960320675811644E+01 6.2016283283809321E+02 4.7030541927158930E+02 - 3.7075305983999993E+02 5.9376070738215299E+02 1.7238509581379120E+01 - 2.3340705577281992E+02 1.3175471954107940E+02 2.3340705577281992E+02 - 1.6980270236074216E+02 1.3175471954107940E+02 9.6606358743307453E+02 - 7.1884508261516271E+02 5.8955904361510227E+02 9.0112000000000000E+02 - 2.0420563040716846E+02 2.7309756545650936E+00 8.9475525546231481E+01 - 4.1614567301854414E+01 8.9475525546231481E+01 5.4058433192453492E+01 - 4.1614567301854414E+01 3.6512013422507960E+02 2.8316732680888202E+02 + 6.2016283283809321E+02 4.7030541927158930E+02 3.7075305983999993E+02 + 5.9376070738215299E+02 1.7238509581379120E+01 2.3340705577281992E+02 + 1.3175471954107940E+02 2.3340705577281992E+02 1.6980270236074216E+02 + 9.6606358743307453E+02 7.1884508261516271E+02 5.8955904361510227E+02 + 9.0112000000000000E+02 2.0420563040716846E+02 2.7309756545650936E+00 + 8.9475525546231481E+01 4.1614567301854414E+01 8.9475525546231481E+01 + 5.4058433192453492E+01 3.6512013422507960E+02 2.8316732680888202E+02 2.1300088343999982E+02 3.5496902977442369E+02 1.1565367295999995E+02 %FLAG BONDS_INC_HYDROGEN %FORMAT(10I8) @@ -332,38 +296,38 @@ LYS 48 54 60 9 57 54 60 10 %FLAG DIHEDRALS_INC_HYDROGEN %FORMAT(10I8) - 0 6 12 15 19 0 6 12 18 19 - 3 0 6 9 20 3 0 6 12 21 - 3 0 6 63 22 6 12 21 24 23 - 6 12 21 27 23 9 6 12 15 24 - 9 6 12 18 24 9 6 12 21 25 - 9 6 63 66 26 12 21 30 33 27 - 12 21 30 36 27 15 12 6 63 28 - 15 12 21 24 29 15 12 21 27 29 - 15 12 21 30 27 18 12 6 63 28 - 18 12 21 24 29 18 12 21 27 29 - 18 12 21 30 27 21 30 39 42 30 - 21 30 39 45 30 24 21 30 33 29 - 24 21 30 36 29 24 21 30 39 27 - 27 21 30 33 29 27 21 30 36 29 - 27 21 30 39 27 30 39 48 51 31 - 33 30 39 42 32 33 30 39 45 32 - 33 30 39 48 33 36 30 39 42 32 - 36 30 39 45 32 36 30 39 48 33 - 42 39 48 51 34 42 39 48 54 35 - 45 39 48 51 34 45 39 48 54 35 - 51 48 54 57 36 51 48 54 60 36 + 0 6 12 15 17 0 6 12 18 17 + 3 0 6 9 4 3 0 6 12 4 + 3 0 6 63 4 6 12 21 24 15 + 6 12 21 27 15 9 6 12 15 17 + 9 6 12 18 17 9 6 12 21 17 + 9 6 63 66 4 12 21 30 33 15 + 12 21 30 36 15 15 12 6 63 17 + 15 12 21 24 15 15 12 21 27 15 + 15 12 21 30 15 18 12 6 63 17 + 18 12 21 24 15 18 12 21 27 15 + 18 12 21 30 15 21 30 39 42 15 + 21 30 39 45 15 24 21 30 33 15 + 24 21 30 36 15 24 21 30 39 15 + 27 21 30 33 15 27 21 30 36 15 + 27 21 30 39 15 30 39 48 51 17 + 33 30 39 42 15 33 30 39 45 15 + 33 30 39 48 15 36 30 39 42 15 + 36 30 39 45 15 36 30 39 48 15 + 42 39 48 51 4 45 39 48 51 4 + 42 39 48 54 4 45 39 48 54 4 + 51 48 54 57 19 51 48 54 60 19 %FLAG DIHEDRALS_WITHOUT_HYDROGEN %FORMAT(10I8) - 0 6 -12 21 1 0 6 -12 21 2 - 0 6 12 21 3 0 6 63 66 4 - 6 12 -21 30 5 6 12 -21 30 6 - 6 12 21 30 7 12 6 63 66 8 - 12 21 -30 39 9 12 21 -30 39 10 - 12 21 30 39 11 21 12 -6 63 12 - 21 12 -6 63 13 21 12 6 63 14 - 21 30 39 48 15 30 39 -48 54 16 - 30 39 48 54 17 39 48 54 57 18 + 0 6 12 21 1 0 6 -12 21 2 + 0 6 -12 21 3 0 6 63 66 4 + 6 12 21 30 5 6 12 -21 30 6 + 6 12 -21 30 7 12 6 63 66 8 + 12 21 30 39 9 12 21 -30 39 10 + 12 21 -30 39 11 21 12 6 63 12 + 21 12 -6 63 13 21 12 -6 63 14 + 21 30 39 48 15 30 39 48 54 16 + 30 39 -48 54 17 39 48 54 57 18 39 48 54 60 18 %FLAG EXCLUDED_ATOMS_LIST %FORMAT(10I8) @@ -432,3 +396,6 @@ modified Bondi radii (mbondi) 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_CharmmParams/testdata.prm.save b/test/Test_CharmmParams/testdata.prm.save index ee1c3b25ff..f20208d07d 100644 --- a/test/Test_CharmmParams/testdata.prm.save +++ b/test/Test_CharmmParams/testdata.prm.save @@ -6,57 +6,57 @@ read param card flex append * ATOMS -MASS -1 NH1 14.00700 -MASS -1 H 1.00800 +MASS -1 C 12.01100 +MASS -1 CC 12.01100 MASS -1 CT1 12.01100 -MASS -1 HB1 1.00800 MASS -1 CT2 12.01100 -MASS -1 HA2 1.00800 +MASS -1 H 1.00800 MASS -1 HA 1.00800 +MASS -1 HA2 1.00800 +MASS -1 HB1 1.00800 MASS -1 NECA 14.00700 -MASS -1 CC 12.01100 -MASS -1 OC 15.99900 -MASS -1 C 12.01100 +MASS -1 NH1 14.00700 MASS -1 O 15.99900 +MASS -1 OC 15.99900 BONDS -CT2 CT1 222.500 1.5380 -CT2 CT2 222.500 1.5300 -NECA CT2 380.000 1.4300 -NH1 CT1 320.000 1.4300 C CT1 250.000 1.4900 -O C 620.000 1.2300 -NECA CC 320.000 1.4617 +C O 620.000 1.2300 +CC NECA 320.000 1.4617 CC OC 525.000 1.2600 -NH1 H 440.000 0.9970 +CT1 CT2 222.500 1.5380 CT1 HB1 330.000 1.0800 -CT2 HA2 309.000 1.1110 +CT1 NH1 320.000 1.4300 +CT2 CT2 222.500 1.5300 CT2 HA 309.000 1.1110 -NECA H 440.000 1.0280 +CT2 HA2 309.000 1.1110 +CT2 NECA 380.000 1.4300 +H NECA 440.000 1.0280 +H NH1 440.000 0.9970 ANGLES -NH1 CT1 CT2 70.000 1.9809 -NH1 CT1 C 50.000 1.8675 -CT2 CT1 C 52.000 1.8850 -CT1 CT2 CT2 58.350 1.9809 -CT2 CT2 CT2 58.350 1.9827 -CT2 CT2 NECA 67.700 1.9361 +C CT1 CT2 52.000 1.8850 +C CT1 HB1 50.000 1.9111 +C CT1 NH1 50.000 1.8675 +CC NECA CT2 50.000 2.0071 +CC NECA H 60.000 1.9199 CT1 C O 80.000 2.1118 -CT2 NECA CC 50.000 2.0071 -NECA CC OC 80.000 1.9199 -OC CC OC 0.000 0.0000 -H NH1 CT1 35.000 2.0420 -NH1 CT1 HB1 48.000 1.8850 -HB1 CT1 CT2 35.000 1.9373 -HB1 CT1 C 50.000 1.9111 +CT1 CT2 CT2 58.350 1.9809 CT1 CT2 HA2 26.500 1.9216 -HA2 CT2 HA2 35.500 1.9024 -HA2 CT2 CT2 26.500 1.9216 +CT1 NH1 H 35.000 2.0420 +CT2 CT1 HB1 35.000 1.9373 +CT2 CT1 NH1 70.000 1.9809 +CT2 CT2 CT2 58.350 1.9827 CT2 CT2 HA 26.500 1.9216 +CT2 CT2 HA2 26.500 1.9216 +CT2 CT2 NECA 67.700 1.9361 +CT2 NECA H 60.000 1.9199 HA CT2 HA 35.500 1.9024 HA CT2 NECA 51.500 1.8762 -CT2 NECA H 60.000 1.9199 -H NECA CC 60.000 1.9199 +HA2 CT2 HA2 35.500 1.9024 +HB1 CT1 NH1 48.000 1.8850 +NECA CC OC 80.000 1.9199 +OC CC OC 0.000 0.0000 DIHEDRALS NH1 CT1 CT2 CT2 0.8800 1 180.00 diff --git a/test/Test_CheckStructure/EntangledRings.mol2 b/test/Test_CheckStructure/EntangledRings.mol2 new file mode 100644 index 0000000000..76d73944a5 --- /dev/null +++ b/test/Test_CheckStructure/EntangledRings.mol2 @@ -0,0 +1,139 @@ +@<TRIPOS>MOLECULE +Cpptraj Generated mol2 file. + 62 65 2 0 0 +SMALL +USER_CHARGES + + +@<TRIPOS>ATOM + 1 P 285.8038 391.7831 319.3175 P 1 C 1.166200 + 2 OP1 287.1906 391.9346 320.1224 O2 1 C -0.776000 + 3 OP2 285.8478 393.1884 318.4521 O2 1 C -0.776000 + 4 O5' 284.2520 391.7027 319.8058 OS 1 C -0.498900 + 5 C5' 283.5152 390.5065 320.1660 CI 1 C 0.055800 + 6 H5' 283.5382 389.7974 319.3293 H1 1 C 0.067900 + 7 H5'' 282.4820 390.7762 320.2901 H1 1 C 0.067900 + 8 C4' 283.9939 389.7827 321.4424 CT 1 C 0.106500 + 9 H4' 284.7805 390.3915 321.8247 H1 1 C 0.117400 + 10 O4' 285.0154 388.3363 320.4650 OS 1 C -0.354800 + 11 C1' 285.0173 386.3656 321.0598 CT 1 C 0.006600 + 12 H1' 284.6932 385.7520 320.2367 H2 1 C 0.202900 + 13 N1 286.4840 386.0377 321.2004 N* 1 C -0.048400 + 14 C6 287.0434 385.7127 322.4146 C4 1 C 0.005300 + 15 H6 286.4687 385.7361 323.3145 H4 1 C 0.195800 + 16 C5 288.3337 385.3264 322.4910 C4 1 C -0.521500 + 17 H5 288.7803 384.9512 323.3967 HA 1 C 0.192800 + 18 C4 288.9877 385.1844 321.2398 CA 1 C 0.818500 + 19 N4 290.1075 384.5521 321.1494 N2 1 C -0.953000 + 20 H41 290.1655 384.1915 320.2126 H 1 C 0.423400 + 21 H42 290.1046 383.6766 321.6632 H 1 C 0.423400 + 22 N3 288.6709 385.9681 320.2824 NC 1 C -0.758400 + 23 C2 287.4219 386.4470 320.1868 C 1 C 0.753800 + 24 O2 287.3292 387.6063 319.7722 O 1 C -0.625200 + 25 C3' 282.9574 388.9761 323.0114 CT 1 C 0.202200 + 26 H3' 283.3236 389.6618 323.9442 H1 1 C 0.061500 + 27 C2' 283.8130 386.1339 322.6725 CT 1 C 0.067000 + 28 H2' 284.4478 385.5066 323.4930 H1 1 C 0.097200 + 29 O2' 282.8556 384.8312 322.6446 OH 1 C -0.613900 + 30 HO2' 282.7244 384.4064 321.7691 HO 1 C 0.418600 + 31 O3' 281.5073 389.8270 323.1880 OS 1 C -0.524600 + 32 P 280.3858 390.0247 322.0521 P 2 C 1.166200 + 33 OP1 279.4383 391.2704 322.5749 O2 2 C -0.776000 + 34 OP2 280.4518 391.4828 321.2961 O2 2 C -0.776000 + 35 O5' 279.1614 389.3002 322.7577 OS 2 C -0.498900 + 36 C5' 278.9831 389.1951 324.1755 CI 2 C 0.055800 + 37 H5' 277.9201 389.0894 324.2149 H1 2 C 0.067900 + 38 H5'' 279.3429 390.1107 324.6409 H1 2 C 0.067900 + 39 C4' 279.6434 388.0308 324.9422 CT 2 C 0.106500 + 40 H4' 280.6225 388.4529 324.9784 H1 2 C 0.117400 + 41 O4' 279.5307 386.9583 324.0240 OS 2 C -0.354800 + 42 C1' 280.6562 386.1707 324.3469 CT 2 C 0.006600 + 43 H1' 280.6568 385.2004 323.8602 H2 2 C 0.202900 + 44 N1 281.8571 386.9492 323.7575 N* 2 C -0.048400 + 45 C6 283.0934 387.2197 324.6550 C4 2 C 0.005300 + 46 H6 283.0028 386.8606 325.6768 H4 2 C 0.195800 + 47 C5 284.4573 387.7044 324.2426 C4 2 C -0.521500 + 48 H5 285.2209 387.7020 325.0247 HA 2 C 0.192800 + 49 C4 284.6728 387.9521 322.7094 CA 2 C 0.818500 + 50 N4 286.1195 388.4884 322.6764 N2 2 C -0.953000 + 51 H41 286.3574 388.5044 321.6903 H 2 C 0.423400 + 52 H42 286.7188 387.8412 323.1284 H 2 C 0.423400 + 53 N3 283.1405 387.6475 321.5249 NC 2 C -0.758400 + 54 C2 281.8226 387.1609 322.1354 C 2 C 0.753800 + 55 O2 280.7385 387.1371 321.5312 O 2 C -0.625200 + 56 C3' 279.6585 387.3495 326.3619 CT 2 C 0.202200 + 57 H3' 280.3674 387.8312 327.0051 H1 2 C 0.061500 + 58 C2' 280.3768 386.0129 325.9019 CT 2 C 0.067000 + 59 H2' 281.2846 385.8205 326.4458 H1 2 C 0.097200 + 60 O2' 279.5887 384.8563 326.1845 OH 2 C -0.613900 + 61 HO2' 280.1004 384.0421 325.9612 HO 2 C 0.418600 + 62 O3' 278.3541 387.3277 327.1440 OS 2 C -0.524600 +@<TRIPOS>BOND + 1 31 32 1 + 2 27 29 1 + 3 25 27 1 + 4 25 31 1 + 5 23 24 1 + 6 22 23 1 + 7 18 19 1 + 8 18 22 1 + 9 16 18 1 + 10 14 16 1 + 11 13 14 1 + 12 13 23 1 + 13 11 13 1 + 14 11 27 1 + 15 10 11 1 + 16 8 10 1 + 17 8 25 1 + 18 5 8 1 + 19 4 5 1 + 20 1 2 1 + 21 1 3 1 + 22 1 4 1 + 23 58 60 1 + 24 56 58 1 + 25 56 62 1 + 26 54 55 1 + 27 53 54 1 + 28 49 50 1 + 29 49 53 1 + 30 47 49 1 + 31 45 47 1 + 32 44 45 1 + 33 44 54 1 + 34 42 44 1 + 35 42 58 1 + 36 41 42 1 + 37 39 41 1 + 38 39 56 1 + 39 36 39 1 + 40 35 36 1 + 41 32 33 1 + 42 32 34 1 + 43 32 35 1 + 44 29 30 1 + 45 27 28 1 + 46 25 26 1 + 47 19 20 1 + 48 19 21 1 + 49 16 17 1 + 50 14 15 1 + 51 11 12 1 + 52 8 9 1 + 53 5 6 1 + 54 5 7 1 + 55 60 61 1 + 56 58 59 1 + 57 56 57 1 + 58 50 51 1 + 59 50 52 1 + 60 47 48 1 + 61 45 46 1 + 62 42 43 1 + 63 39 40 1 + 64 36 37 1 + 65 36 38 1 +@<TRIPOS>SUBSTRUCTURE + 1 C 1 **** 0 **** **** + 2 C 32 **** 0 **** **** diff --git a/test/Test_CheckStructure/RunTest.sh b/test/Test_CheckStructure/RunTest.sh index 785acc2ecf..2662807b85 100755 --- a/test/Test_CheckStructure/RunTest.sh +++ b/test/Test_CheckStructure/RunTest.sh @@ -3,7 +3,7 @@ . ../MasterTest.sh CleanFiles check.in report.dat nprob.dat tz2.dat skip.dat around.dat d1.dat \ - partial.report.dat tz2.cut0.9.dat + partial.report.dat tz2.cut0.9.dat entangled.dat report.opcbox.dat INPUT="-i check.in" @@ -68,6 +68,34 @@ EOF RunCpptraj "Structure Check with Around" DoTest around.dat.save around.dat fi + +UNITNAME='Check for entangled rings' +CheckFor maxthreads 1 +if [ $? -eq 0 ] ; then + cat > check.in <<EOF +parm EntangledRings.mol2 +trajin EntangledRings.mol2 +check reportfile entangled.dat +run +EOF + RunCpptraj "$UNITNAME" + DoTest entangled.dat.save entangled.dat +fi + +UNITNAME='Check with extra points' +CheckFor maxthreads 1 +if [ $? -eq 0 ] ; then + cat > check.in <<EOF +parm opcbox.mol2 +trajin opcbox.mol2 +box x 18.8648434 y 18.4781075 z 19.0062408 alpha 90 +check reportfile report.opcbox.dat checkxp +run +EOF + RunCpptraj "$UNITNAME" + DoTest report.opcbox.dat.save report.opcbox.dat +fi + EndTest exit 0 diff --git a/test/Test_CheckStructure/entangled.dat.save b/test/Test_CheckStructure/entangled.dat.save new file mode 100644 index 0000000000..6668374ecf --- /dev/null +++ b/test/Test_CheckStructure/entangled.dat.save @@ -0,0 +1,3 @@ +1 Warning: Unusual bond length 25:C_1@C3' to 27:C_1@C2' (2.99) +1 Warning: Bond involving atom 25:C_1@C3' intersects ring involving atom 44:C_2@N1 (0.41) +1 Warning: Bond involving atom 49:C_2@C4 intersects ring involving atom 8:C_1@C4' (0.48) diff --git a/test/Test_CheckStructure/opcbox.mol2 b/test/Test_CheckStructure/opcbox.mol2 new file mode 100644 index 0000000000..8f967be0c7 --- /dev/null +++ b/test/Test_CheckStructure/opcbox.mol2 @@ -0,0 +1,1954 @@ +@<TRIPOS>MOLECULE +Cpptraj Generated mol2 file. + 864 864 216 0 0 +SMALL +USER_CHARGES + + +@<TRIPOS>ATOM + 1 O 11.0300 1.0360 5.5020 OW 1 WAT 0.000000 + 2 H1 10.7850 1.5240 4.8220 HW 1 WAT 0.679142 + 3 H2 11.8930 0.9630 5.4020 HW 1 WAT 0.679142 + 4 EPW 11.1210 1.0970 5.3870 EP 1 WAT -1.358284 + 5 O 10.8390 7.9520 10.1730 OW 2 WAT 0.000000 + 6 H1 10.3150 8.5480 10.5360 HW 2 WAT 0.679142 + 7 H2 11.2360 7.5840 10.8570 HW 2 WAT 0.679142 + 8 EPW 10.8200 7.9860 10.3280 EP 2 WAT -1.358284 + 9 O 0.7080 12.0920 5.6290 OW 3 WAT 0.000000 + 10 H1 0.2670 12.2100 6.3720 HW 3 WAT 0.679142 + 11 H2 0.4250 11.3170 5.3440 HW 3 WAT 0.679142 + 12 EPW 0.6010 11.9950 5.6970 EP 3 WAT -1.358284 + 13 O 16.9830 15.3930 3.1440 OW 4 WAT 0.000000 + 14 H1 17.6840 14.8740 3.1400 HW 4 WAT 0.679142 + 15 H2 16.3960 14.9480 2.6750 HW 4 WAT 0.679142 + 16 EPW 17.0000 15.2500 3.0740 EP 4 WAT -1.358284 + 17 O 0.4510 5.8840 2.1360 OW 5 WAT 0.000000 + 18 H1 -0.3270 6.0460 1.7760 HW 5 WAT 0.679142 + 19 H2 0.4900 5.0130 2.1580 HW 5 WAT 0.679142 + 20 EPW 0.3420 5.7790 2.0860 EP 5 WAT -1.358284 + 21 O 3.5900 11.1470 0.8080 OW 6 WAT 0.000000 + 22 H1 3.1980 10.7760 0.1220 HW 6 WAT 0.679142 + 23 H2 3.5100 10.5490 1.4370 HW 6 WAT 0.679142 + 24 EPW 3.5200 11.0040 0.7990 EP 6 WAT -1.358284 + 25 O 13.5100 9.0190 6.8490 OW 7 WAT 0.000000 + 26 H1 13.5900 9.0230 5.9800 HW 7 WAT 0.679142 + 27 H2 12.9260 8.3870 6.9980 HW 7 WAT 0.679142 + 28 EPW 13.4350 8.9260 6.7430 EP 7 WAT -1.358284 + 29 O 3.2170 12.7880 4.7080 OW 8 WAT 0.000000 + 30 H1 3.8250 12.6180 5.3110 HW 8 WAT 0.679142 + 31 H2 2.4660 12.6480 5.1290 HW 8 WAT 0.679142 + 32 EPW 3.1960 12.7420 4.8590 EP 8 WAT -1.358284 + 33 O 7.4990 2.1230 4.6570 OW 9 WAT 0.000000 + 34 H1 7.4290 2.8000 4.1110 HW 9 WAT 0.679142 + 35 H2 8.2400 1.7350 4.4080 HW 9 WAT 0.679142 + 36 EPW 7.5980 2.1660 4.5390 EP 9 WAT -1.358284 + 37 O 2.1080 15.8790 0.7850 OW 10 WAT 0.000000 + 38 H1 2.5750 15.9630 0.0530 HW 10 WAT 0.679142 + 39 H2 2.5630 15.3010 1.2540 HW 10 WAT 0.679142 + 40 EPW 2.2440 15.8060 0.7460 EP 10 WAT -1.358284 + 41 O 0.6480 14.8270 11.8840 OW 11 WAT 0.000000 + 42 H1 0.7770 14.5470 12.7000 HW 11 WAT 0.679142 + 43 H2 0.0380 14.2860 11.5750 HW 11 WAT 0.679142 + 44 EPW 0.5770 14.7060 11.9590 EP 11 WAT -1.358284 + 45 O 7.2220 12.3520 16.9510 OW 12 WAT 0.000000 + 46 H1 6.9860 12.3490 17.7910 HW 12 WAT 0.679142 + 47 H2 6.4740 12.2040 16.5270 HW 12 WAT 0.679142 + 48 EPW 7.0760 12.3290 17.0120 EP 12 WAT -1.358284 + 49 O 2.0940 9.3480 6.0860 OW 13 WAT 0.000000 + 50 H1 1.6320 8.9560 5.4590 HW 13 WAT 0.679142 + 51 H2 2.7940 8.8350 6.1780 HW 13 WAT 0.679142 + 52 EPW 2.1290 9.2150 6.0070 EP 13 WAT -1.358284 + 53 O 6.6020 4.9580 11.4330 OW 14 WAT 0.000000 + 54 H1 7.2800 4.9760 10.8840 HW 14 WAT 0.679142 + 55 H2 6.5570 4.1220 11.6780 HW 14 WAT 0.679142 + 56 EPW 6.6950 4.8370 11.3880 EP 14 WAT -1.358284 + 57 O 7.2040 15.5440 14.2140 OW 15 WAT 0.000000 + 58 H1 7.3420 16.3040 13.8070 HW 15 WAT 0.679142 + 59 H2 7.9950 15.1790 14.2410 HW 15 WAT 0.679142 + 60 EPW 7.3410 15.6030 14.1580 EP 15 WAT -1.358284 + 61 O 4.0950 7.4480 6.1090 OW 16 WAT 0.000000 + 62 H1 4.9120 7.2610 6.3520 HW 16 WAT 0.679142 + 63 H2 3.6180 6.8340 6.5050 HW 16 WAT 0.679142 + 64 EPW 4.1450 7.3300 6.2040 EP 16 WAT -1.358284 + 65 O 8.2990 13.4290 8.7190 OW 17 WAT 0.000000 + 66 H1 8.6470 12.6300 8.7490 HW 17 WAT 0.679142 + 67 H2 8.9640 13.9330 8.4640 HW 17 WAT 0.679142 + 68 EPW 8.4490 13.3850 8.6860 EP 17 WAT -1.358284 + 69 O 8.3560 12.8780 4.9300 OW 18 WAT 0.000000 + 70 H1 8.6870 12.2340 5.4160 HW 18 WAT 0.679142 + 71 H2 8.5960 12.6670 4.1190 HW 18 WAT 0.679142 + 72 EPW 8.4400 12.7520 4.8820 EP 18 WAT -1.358284 + 73 O 10.3240 7.0090 16.2690 OW 19 WAT 0.000000 + 74 H1 9.4760 6.9100 16.0910 HW 19 WAT 0.679142 + 75 H2 10.3530 7.7540 16.7230 HW 19 WAT 0.679142 + 76 EPW 10.2030 7.1050 16.3100 EP 19 WAT -1.358284 + 77 O 4.6920 2.5420 5.3750 OW 20 WAT 0.000000 + 78 H1 4.3960 3.0430 4.7250 HW 20 WAT 0.679142 + 79 H2 5.5590 2.6200 5.3180 HW 20 WAT 0.679142 + 80 EPW 4.7760 2.6280 5.2710 EP 20 WAT -1.358284 + 81 O 14.8820 -0.0310 15.3830 OW 21 WAT 0.000000 + 82 H1 14.7240 0.7380 15.0010 HW 21 WAT 0.679142 + 83 H2 14.1100 -0.2510 15.7270 HW 21 WAT 0.679142 + 84 EPW 14.7440 0.0500 15.3780 EP 21 WAT -1.358284 + 85 O 7.6710 1.6840 7.5980 OW 22 WAT 0.000000 + 86 H1 7.7440 2.5440 7.7270 HW 22 WAT 0.679142 + 87 H2 7.6330 1.6090 6.7300 HW 22 WAT 0.679142 + 88 EPW 7.6760 1.8000 7.4890 EP 22 WAT -1.358284 + 89 O 12.3440 4.6100 -0.1030 OW 23 WAT 0.000000 + 90 H1 11.8940 5.2910 0.2040 HW 23 WAT 0.679142 + 91 H2 12.4580 4.1060 0.6000 HW 23 WAT 0.679142 + 92 EPW 12.2950 4.6360 0.0460 EP 23 WAT -1.358284 + 93 O 0.5500 7.1090 9.0990 OW 24 WAT 0.000000 + 94 H1 0.2940 7.9400 9.0240 HW 24 WAT 0.679142 + 95 H2 -0.1140 6.7260 9.5160 HW 24 WAT 0.679142 + 96 EPW 0.4140 7.1750 9.1500 EP 24 WAT -1.358284 + 97 O 0.4600 16.8190 6.9990 OW 25 WAT 0.000000 + 98 H1 -0.1320 17.3770 6.6860 HW 25 WAT 0.679142 + 99 H2 0.8860 16.5500 6.2870 HW 25 WAT 0.679142 + 100 EPW 0.4360 16.8610 6.8480 EP 25 WAT -1.358284 + 101 O 6.3000 14.6630 4.4790 OW 26 WAT 0.000000 + 102 H1 5.7210 14.3880 5.0710 HW 26 WAT 0.679142 + 103 H2 6.9240 14.0540 4.5040 HW 26 WAT 0.679142 + 104 EPW 6.3070 14.5330 4.5700 EP 26 WAT -1.358284 + 105 O 12.4430 16.9510 2.0010 OW 27 WAT 0.000000 + 106 H1 13.1700 17.4230 2.1030 HW 27 WAT 0.679142 + 107 H2 12.6720 16.1570 2.2810 HW 27 WAT 0.679142 + 108 EPW 12.5850 16.9040 2.0580 EP 27 WAT -1.358284 + 109 O 10.6110 17.3430 3.9910 OW 28 WAT 0.000000 + 110 H1 10.8250 17.8700 4.6530 HW 28 WAT 0.679142 + 111 H2 11.3780 17.1690 3.6120 HW 28 WAT 0.679142 + 112 EPW 10.7560 17.3950 4.0330 EP 28 WAT -1.358284 + 113 O 3.5790 1.9260 9.5900 OW 29 WAT 0.000000 + 114 H1 3.0580 1.2980 9.2820 HW 29 WAT 0.679142 + 115 H2 4.1700 1.4890 10.0610 HW 29 WAT 0.679142 + 116 EPW 3.5900 1.7680 9.6140 EP 29 WAT -1.358284 + 117 O 6.8850 4.0590 18.8880 OW 30 WAT 0.000000 + 118 H1 7.0020 3.6050 18.1520 HW 30 WAT 0.679142 + 119 H2 7.1730 4.8570 18.6850 HW 30 WAT 0.679142 + 120 EPW 6.9450 4.1100 18.7490 EP 30 WAT -1.358284 + 121 O 2.0050 15.4890 4.9300 OW 31 WAT 0.000000 + 122 H1 2.6610 14.9140 4.9450 HW 31 WAT 0.679142 + 123 H2 2.3940 16.2380 4.7090 HW 31 WAT 0.679142 + 124 EPW 2.1600 15.5140 4.9000 EP 31 WAT -1.358284 + 125 O 17.7380 4.5830 6.1920 OW 32 WAT 0.000000 + 126 H1 17.3920 5.2610 6.6180 HW 32 WAT 0.679142 + 127 H2 17.1020 3.9850 6.2080 HW 32 WAT 0.679142 + 128 EPW 17.5930 4.5950 6.2570 EP 32 WAT -1.358284 + 129 O 13.0500 17.3530 12.2960 OW 33 WAT 0.000000 + 130 H1 13.7940 17.8090 12.2860 HW 33 WAT 0.679142 + 131 H2 12.9290 17.1390 11.4590 HW 33 WAT 0.679142 + 132 EPW 13.1420 17.3890 12.1710 EP 33 WAT -1.358284 + 133 O 2.6180 3.6560 17.8720 OW 34 WAT 0.000000 + 134 H1 1.8400 3.2660 17.8000 HW 34 WAT 0.679142 + 135 H2 3.1090 3.2440 17.2810 HW 34 WAT 0.679142 + 136 EPW 2.5750 3.5370 17.7740 EP 34 WAT -1.358284 + 137 O 2.8230 13.9760 8.4300 OW 35 WAT 0.000000 + 138 H1 3.2460 13.6200 7.7560 HW 35 WAT 0.679142 + 139 H2 3.1470 13.5540 9.1220 HW 35 WAT 0.679142 + 140 EPW 2.9330 13.8610 8.4330 EP 35 WAT -1.358284 + 141 O 6.0540 16.8280 7.7260 OW 36 WAT 0.000000 + 142 H1 6.8980 16.9320 7.5310 HW 36 WAT 0.679142 + 143 H2 5.7570 17.6460 7.7940 HW 36 WAT 0.679142 + 144 EPW 6.1350 16.9640 7.7070 EP 36 WAT -1.358284 + 145 O 9.2670 1.2990 17.0400 OW 37 WAT 0.000000 + 146 H1 9.4450 0.4900 16.7650 HW 37 WAT 0.679142 + 147 H2 9.1240 1.7400 16.3010 HW 37 WAT 0.679142 + 148 EPW 9.2720 1.2450 16.8900 EP 37 WAT -1.358284 + 149 O 9.8610 6.2250 5.8130 OW 38 WAT 0.000000 + 150 H1 10.1480 5.9930 5.0230 HW 38 WAT 0.679142 + 151 H2 10.5930 6.3040 6.2820 HW 38 WAT 0.679142 + 152 EPW 10.0110 6.2020 5.7660 EP 38 WAT -1.358284 + 153 O 10.5830 6.5640 0.9340 OW 39 WAT 0.000000 + 154 H1 10.8640 7.3520 1.1830 HW 39 WAT 0.679142 + 155 H2 9.8070 6.7290 0.5710 HW 39 WAT 0.679142 + 156 EPW 10.5100 6.7050 0.9170 EP 39 WAT -1.358284 + 157 O 14.6240 18.5380 2.4010 OW 40 WAT 0.000000 + 158 H1 15.2890 18.3900 1.8560 HW 40 WAT 0.679142 + 159 H2 14.9840 18.4550 3.1910 HW 40 WAT 0.679142 + 160 EPW 14.7760 18.5040 2.4370 EP 40 WAT -1.358284 + 161 O 5.0520 18.0470 13.4660 OW 41 WAT 0.000000 + 162 H1 5.3440 17.9800 14.2860 HW 41 WAT 0.679142 + 163 H2 4.4260 17.4420 13.4210 HW 41 WAT 0.679142 + 164 EPW 5.0030 17.9480 13.5810 EP 41 WAT -1.358284 + 165 O 17.4130 2.9060 11.5610 OW 42 WAT 0.000000 + 166 H1 18.1700 2.9780 11.1330 HW 42 WAT 0.679142 + 167 H2 17.4760 2.1330 11.9600 HW 42 WAT 0.679142 + 168 EPW 17.5340 2.8030 11.5560 EP 42 WAT -1.358284 + 169 O -0.0340 4.2040 15.4580 OW 43 WAT 0.000000 + 170 H1 -0.0380 4.7910 16.1040 HW 43 WAT 0.679142 + 171 H2 0.5600 4.5160 14.9010 HW 43 WAT 0.679142 + 172 EPW 0.0530 4.3370 15.4710 EP 43 WAT -1.358284 + 173 O 12.3040 14.5380 16.0000 OW 44 WAT 0.000000 + 174 H1 12.2700 14.9200 16.7840 HW 44 WAT 0.679142 + 175 H2 13.1580 14.4960 15.8290 HW 44 WAT 0.679142 + 176 EPW 12.4250 14.5880 16.0910 EP 44 WAT -1.358284 + 177 O 9.4420 14.7350 0.7500 OW 45 WAT 0.000000 + 178 H1 9.2610 15.2800 1.4070 HW 45 WAT 0.679142 + 179 H2 10.2080 15.0250 0.4490 HW 45 WAT 0.679142 + 180 EPW 9.5280 14.8590 0.8030 EP 45 WAT -1.358284 + 181 O 12.9490 2.6310 1.8040 OW 46 WAT 0.000000 + 182 H1 13.4890 1.9490 1.8800 HW 46 WAT 0.679142 + 183 H2 13.0110 3.0290 2.5780 HW 46 WAT 0.679142 + 184 EPW 13.0380 2.5890 1.9300 EP 46 WAT -1.358284 + 185 O 0.9030 3.7990 4.3730 OW 47 WAT 0.000000 + 186 H1 0.7890 2.9350 4.4040 HW 47 WAT 0.679142 + 187 H2 0.4280 4.0930 5.0430 HW 47 WAT 0.679142 + 188 EPW 0.8160 3.7150 4.4760 EP 47 WAT -1.358284 + 189 O 3.0450 16.2090 12.5880 OW 48 WAT 0.000000 + 190 H1 2.3470 15.7010 12.7140 HW 48 WAT 0.679142 + 191 H2 3.3050 16.0040 11.7800 HW 48 WAT 0.679142 + 192 EPW 2.9800 16.1040 12.4870 EP 48 WAT -1.358284 + 193 O 10.2070 5.0070 3.1180 OW 49 WAT 0.000000 + 194 H1 9.6990 4.3450 2.8640 HW 49 WAT 0.679142 + 195 H2 10.2590 5.5110 2.4080 HW 49 WAT 0.679142 + 196 EPW 10.1400 4.9840 2.9760 EP 49 WAT -1.358284 + 197 O 10.7560 17.7020 13.4980 OW 50 WAT 0.000000 + 198 H1 11.5240 17.6220 13.0920 HW 50 WAT 0.679142 + 199 H2 10.1730 17.5810 12.8600 HW 50 WAT 0.679142 + 200 EPW 10.7830 17.6720 13.3440 EP 50 WAT -1.358284 + 201 O 10.2070 1.9480 3.0090 OW 51 WAT 0.000000 + 202 H1 9.7520 1.5460 2.3830 HW 51 WAT 0.679142 + 203 H2 10.9800 2.1030 2.6340 HW 51 WAT 0.679142 + 204 EPW 10.2540 1.9120 2.8610 EP 51 WAT -1.358284 + 205 O 17.0330 18.3050 6.3990 OW 52 WAT 0.000000 + 206 H1 16.5780 19.0220 6.6000 HW 52 WAT 0.679142 + 207 H2 16.4190 17.7340 6.1570 HW 52 WAT 0.679142 + 208 EPW 16.8750 18.3270 6.3930 EP 52 WAT -1.358284 + 209 O 8.8050 4.3150 7.5310 OW 53 WAT 0.000000 + 210 H1 8.8790 4.8830 6.8730 HW 53 WAT 0.679142 + 211 H2 8.9260 4.8070 8.2410 HW 53 WAT 0.679142 + 212 EPW 8.8330 4.4720 7.5390 EP 53 WAT -1.358284 + 213 O 14.0300 14.1500 5.9430 OW 54 WAT 0.000000 + 214 H1 14.7310 13.6680 6.1320 HW 54 WAT 0.679142 + 215 H2 13.3700 13.5810 5.9880 HW 54 WAT 0.679142 + 216 EPW 14.0360 13.9950 5.9770 EP 54 WAT -1.358284 + 217 O 4.4060 15.0600 15.1550 OW 55 WAT 0.000000 + 218 H1 5.2470 15.1230 14.9330 HW 55 WAT 0.679142 + 219 H2 4.3690 15.4570 15.9310 HW 55 WAT 0.679142 + 220 EPW 4.5250 15.1280 15.2370 EP 55 WAT -1.358284 + 221 O 3.4130 0.1380 5.8790 OW 56 WAT 0.000000 + 222 H1 3.9490 0.8260 5.8690 HW 56 WAT 0.679142 + 223 H2 3.4160 -0.1360 5.0510 HW 56 WAT 0.679142 + 224 EPW 3.4920 0.1990 5.7550 EP 56 WAT -1.358284 + 225 O 6.3690 10.5710 9.9040 OW 57 WAT 0.000000 + 226 H1 6.5410 10.3610 10.7330 HW 57 WAT 0.679142 + 227 H2 5.7140 10.0370 9.6880 HW 57 WAT 0.679142 + 228 EPW 6.2980 10.4610 9.9950 EP 57 WAT -1.358284 + 229 O 12.5970 4.4850 13.4190 OW 58 WAT 0.000000 + 230 H1 12.5020 4.8040 14.2250 HW 58 WAT 0.679142 + 231 H2 12.0040 3.8460 13.3810 HW 58 WAT 0.679142 + 232 EPW 12.4950 4.4370 13.5330 EP 58 WAT -1.358284 + 233 O 7.1190 10.5090 12.4940 OW 59 WAT 0.000000 + 234 H1 7.1720 11.3560 12.6960 HW 59 WAT 0.679142 + 235 H2 6.8340 10.1390 13.2310 HW 59 WAT 0.679142 + 236 EPW 7.0850 10.5790 12.6320 EP 59 WAT -1.358284 + 237 O 13.2960 11.2040 11.6240 OW 60 WAT 0.000000 + 238 H1 12.7820 10.7920 12.1950 HW 60 WAT 0.679142 + 239 H2 13.1700 12.0480 11.8050 HW 60 WAT 0.679142 + 240 EPW 13.2020 11.2680 11.7350 EP 60 WAT -1.358284 + 241 O 13.8530 0.4290 6.2550 OW 61 WAT 0.000000 + 242 H1 13.9020 0.1110 7.0660 HW 61 WAT 0.679142 + 243 H2 14.1760 -0.2150 5.7620 HW 61 WAT 0.679142 + 244 EPW 13.9080 0.2870 6.3020 EP 61 WAT -1.358284 + 245 O -0.0600 14.8800 18.7050 OW 62 WAT 0.000000 + 246 H1 0.6960 15.2290 18.9630 HW 62 WAT 0.679142 + 247 H2 0.1170 14.0270 18.6480 HW 62 WAT 0.679142 + 248 EPW 0.0780 14.8050 18.7350 EP 62 WAT -1.358284 + 249 O 16.3170 4.6650 14.5630 OW 63 WAT 0.000000 + 250 H1 17.0890 4.4400 14.9000 HW 63 WAT 0.679142 + 251 H2 15.8420 4.8820 15.2630 HW 63 WAT 0.679142 + 252 EPW 16.3610 4.6640 14.7160 EP 63 WAT -1.358284 + 253 O 3.8610 3.9480 7.5330 OW 64 WAT 0.000000 + 254 H1 4.1330 3.5180 6.8250 HW 64 WAT 0.679142 + 255 H2 3.6850 3.3120 8.1040 HW 64 WAT 0.679142 + 256 EPW 3.8750 3.7910 7.5130 EP 64 WAT -1.358284 + 257 O 16.5490 11.6430 1.7510 OW 65 WAT 0.000000 + 258 H1 16.6680 11.3560 2.5660 HW 65 WAT 0.679142 + 259 H2 17.3560 11.6640 1.4210 HW 65 WAT 0.679142 + 260 EPW 16.6850 11.6040 1.8230 EP 65 WAT -1.358284 + 261 O 3.6850 11.3750 7.0820 OW 66 WAT 0.000000 + 262 H1 4.5360 11.2950 6.9090 HW 66 WAT 0.679142 + 263 H2 3.3280 10.6930 6.6700 HW 66 WAT 0.679142 + 264 EPW 3.7580 11.2620 6.9950 EP 66 WAT -1.358284 + 265 O 2.4520 18.1000 8.3190 OW 67 WAT 0.000000 + 266 H1 1.7790 17.6020 8.0740 HW 67 WAT 0.679142 + 267 H2 2.8550 18.2850 7.5680 HW 67 WAT 0.679142 + 268 EPW 2.4120 18.0540 8.1720 EP 67 WAT -1.358284 + 269 O 2.0020 5.0500 10.6150 OW 68 WAT 0.000000 + 270 H1 2.8450 5.2700 10.5720 HW 68 WAT 0.679142 + 271 H2 1.6130 5.6230 10.0840 HW 68 WAT 0.679142 + 272 EPW 2.0690 5.1670 10.5300 EP 68 WAT -1.358284 + 273 O 18.7830 16.1520 16.0050 OW 69 WAT 0.000000 + 274 H1 18.1010 16.4620 15.5580 HW 69 WAT 0.679142 + 275 H2 18.4140 15.6940 16.6500 HW 69 WAT 0.679142 + 276 EPW 18.6270 16.1300 16.0340 EP 69 WAT -1.358284 + 277 O 14.4440 8.1800 1.3360 OW 70 WAT 0.000000 + 278 H1 14.2240 8.9110 0.9140 HW 70 WAT 0.679142 + 279 H2 13.9960 8.2310 2.0830 HW 70 WAT 0.679142 + 280 EPW 14.3450 8.2950 1.3840 EP 70 WAT -1.358284 + 281 O 6.0530 11.3820 5.3170 OW 71 WAT 0.000000 + 282 H1 6.7660 11.8770 5.4070 HW 71 WAT 0.679142 + 283 H2 6.2750 10.8150 4.6910 HW 71 WAT 0.679142 + 284 EPW 6.1910 11.3710 5.2380 EP 71 WAT -1.358284 + 285 O 18.6310 3.0410 0.7890 OW 72 WAT 0.000000 + 286 H1 17.9690 2.4730 0.8120 HW 72 WAT 0.679142 + 287 H2 18.4380 3.5530 0.1090 HW 72 WAT 0.679142 + 288 EPW 18.5050 3.0330 0.6920 EP 72 WAT -1.358284 + 289 O 0.2090 13.0250 8.6370 OW 73 WAT 0.000000 + 290 H1 -0.4580 13.5130 8.9130 HW 73 WAT 0.679142 + 291 H2 0.8890 13.5700 8.6660 HW 73 WAT 0.679142 + 292 EPW 0.2110 13.1770 8.6820 EP 73 WAT -1.358284 + 293 O 7.8560 6.7350 18.7330 OW 74 WAT 0.000000 + 294 H1 7.3720 7.3120 19.1750 HW 74 WAT 0.679142 + 295 H2 7.8280 7.0300 17.9120 HW 74 WAT 0.679142 + 296 EPW 7.7800 6.8640 18.6770 EP 74 WAT -1.358284 + 297 O 18.9540 7.4190 13.3450 OW 75 WAT 0.000000 + 298 H1 19.1690 6.6190 13.0690 HW 75 WAT 0.679142 + 299 H2 18.1040 7.4790 13.1560 HW 75 WAT 0.679142 + 300 EPW 18.8600 7.3100 13.2760 EP 75 WAT -1.358284 + 301 O 0.2750 9.7090 3.7400 OW 76 WAT 0.000000 + 302 H1 0.0900 8.8700 3.8920 HW 76 WAT 0.679142 + 303 H2 0.9340 9.6730 3.1700 HW 76 WAT 0.679142 + 304 EPW 0.3450 9.5800 3.6780 EP 76 WAT -1.358284 + 305 O 16.6330 2.5990 3.0680 OW 77 WAT 0.000000 + 306 H1 17.3790 2.1920 3.2670 HW 77 WAT 0.679142 + 307 H2 16.8960 3.3140 2.6430 HW 77 WAT 0.679142 + 308 EPW 16.7820 2.6450 3.0350 EP 77 WAT -1.358284 + 309 O 10.5760 15.0850 7.6440 OW 78 WAT 0.000000 + 310 H1 10.0530 15.7190 7.3510 HW 78 WAT 0.679142 + 311 H2 10.8860 14.7210 6.9150 HW 78 WAT 0.679142 + 312 EPW 10.5440 15.1250 7.4930 EP 78 WAT -1.358284 + 313 O 0.4470 13.8730 3.3150 OW 79 WAT 0.000000 + 314 H1 0.9990 14.4420 3.6790 HW 79 WAT 0.679142 + 315 H2 0.2150 13.3580 3.9800 HW 79 WAT 0.679142 + 316 EPW 0.4940 13.8810 3.4670 EP 79 WAT -1.358284 + 317 O 4.6510 12.8730 10.4040 OW 80 WAT 0.000000 + 318 H1 5.1180 13.1620 11.0820 HW 80 WAT 0.679142 + 319 H2 5.2230 12.3950 9.9500 HW 80 WAT 0.679142 + 320 EPW 4.8050 12.8450 10.4370 EP 80 WAT -1.358284 + 321 O 13.0870 4.8870 8.1410 OW 81 WAT 0.000000 + 322 H1 13.4310 5.0390 8.9280 HW 81 WAT 0.679142 + 323 H2 12.6340 4.1490 8.2540 HW 81 WAT 0.679142 + 324 EPW 13.0710 4.8000 8.2740 EP 81 WAT -1.358284 + 325 O 0.2770 12.3220 0.9430 OW 82 WAT 0.000000 + 326 H1 1.0330 11.8900 1.0010 HW 82 WAT 0.679142 + 327 H2 0.2920 12.8540 1.6340 HW 82 WAT 0.679142 + 328 EPW 0.3910 12.3370 1.0540 EP 82 WAT -1.358284 + 329 O 1.2170 10.5430 8.9480 OW 83 WAT 0.000000 + 330 H1 1.6480 10.4140 8.2010 HW 83 WAT 0.679142 + 331 H2 1.0120 11.3910 8.9220 HW 83 WAT 0.679142 + 332 EPW 1.2500 10.6490 8.8340 EP 83 WAT -1.358284 + 333 O 7.5630 4.1070 2.5980 OW 84 WAT 0.000000 + 334 H1 7.5610 3.9900 1.7330 HW 84 WAT 0.679142 + 335 H2 7.3820 4.9550 2.6900 HW 84 WAT 0.679142 + 336 EPW 7.5360 4.2150 2.4840 EP 84 WAT -1.358284 + 337 O 16.6170 16.5340 14.0950 OW 85 WAT 0.000000 + 338 H1 15.9460 17.0480 14.3130 HW 85 WAT 0.679142 + 339 H2 16.6800 16.6340 13.2310 HW 85 WAT 0.679142 + 340 EPW 16.5270 16.6250 14.0000 EP 85 WAT -1.358284 + 341 O 5.3010 14.0590 7.2300 OW 86 WAT 0.000000 + 342 H1 5.4270 14.9020 7.4170 HW 86 WAT 0.679142 + 343 H2 5.9690 13.6600 7.6260 HW 86 WAT 0.679142 + 344 EPW 5.4190 14.1250 7.3160 EP 86 WAT -1.358284 + 345 O 3.4310 7.5420 17.0920 OW 87 WAT 0.000000 + 346 H1 2.8950 7.0360 17.5600 HW 87 WAT 0.679142 + 347 H2 3.4510 7.1520 16.3120 HW 87 WAT 0.679142 + 348 EPW 3.3540 7.4090 17.0460 EP 87 WAT -1.358284 + 349 O 3.9160 6.9390 2.2320 OW 88 WAT 0.000000 + 350 H1 3.7880 6.4910 2.9700 HW 88 WAT 0.679142 + 351 H2 3.3340 6.5970 1.6800 HW 88 WAT 0.679142 + 352 EPW 3.8110 6.8220 2.2600 EP 88 WAT -1.358284 + 353 O 4.0830 8.7690 8.8310 OW 89 WAT 0.000000 + 354 H1 3.3020 8.7100 8.4480 HW 89 WAT 0.679142 + 355 H2 4.1550 8.0170 9.2680 HW 89 WAT 0.679142 + 356 EPW 3.9780 8.6500 8.8390 EP 89 WAT -1.358284 + 357 O 4.5130 8.5060 12.2990 OW 90 WAT 0.000000 + 358 H1 4.5380 7.8310 11.7480 HW 90 WAT 0.679142 + 359 H2 3.8670 9.0020 11.9870 HW 90 WAT 0.679142 + 360 EPW 4.4220 8.4790 12.1720 EP 90 WAT -1.358284 + 361 O 14.4080 6.2190 10.6950 OW 91 WAT 0.000000 + 362 H1 13.7460 6.5470 11.1580 HW 91 WAT 0.679142 + 363 H2 14.5950 6.8530 10.1260 HW 91 WAT 0.679142 + 364 EPW 14.3380 6.3610 10.6790 EP 91 WAT -1.358284 + 365 O 8.6130 17.2830 11.6910 OW 92 WAT 0.000000 + 366 H1 8.3360 16.6420 11.1680 HW 92 WAT 0.679142 + 367 H2 8.4050 18.0090 11.2530 HW 92 WAT 0.679142 + 368 EPW 8.5420 17.2960 11.5490 EP 92 WAT -1.358284 + 369 O 11.0530 2.1250 14.1240 OW 93 WAT 0.000000 + 370 H1 11.2020 1.3000 13.8810 HW 93 WAT 0.679142 + 371 H2 11.4320 2.1800 14.9080 HW 93 WAT 0.679142 + 372 EPW 11.1310 2.0110 14.2040 EP 93 WAT -1.358284 + 373 O 12.6010 4.1880 4.2060 OW 94 WAT 0.000000 + 374 H1 13.0910 4.9050 4.1290 HW 94 WAT 0.679142 + 375 H2 11.8110 4.4490 3.9430 HW 94 WAT 0.679142 + 376 EPW 12.5570 4.3320 4.1560 EP 94 WAT -1.358284 + 377 O 2.3120 9.8610 17.8580 OW 95 WAT 0.000000 + 378 H1 2.2750 10.3620 17.1440 HW 95 WAT 0.679142 + 379 H2 2.6430 9.1090 17.5630 HW 95 WAT 0.679142 + 380 EPW 2.3550 9.8230 17.7090 EP 95 WAT -1.358284 + 381 O 13.9150 12.0660 16.1160 OW 96 WAT 0.000000 + 382 H1 14.3990 12.7840 16.2140 HW 96 WAT 0.679142 + 383 H2 14.3090 11.6390 15.4650 HW 96 WAT 0.679142 + 384 EPW 14.0450 12.1090 16.0340 EP 96 WAT -1.358284 + 385 O 8.2110 14.9110 17.2930 OW 97 WAT 0.000000 + 386 H1 8.5650 14.7330 18.0700 HW 97 WAT 0.679142 + 387 H2 7.7750 14.1820 17.0940 HW 97 WAT 0.679142 + 388 EPW 8.1990 14.7770 17.3790 EP 97 WAT -1.358284 + 389 O 9.1830 5.6580 9.9310 OW 98 WAT 0.000000 + 390 H1 9.6630 6.3570 10.1390 HW 98 WAT 0.679142 + 391 H2 9.5560 5.0110 10.3820 HW 98 WAT 0.679142 + 392 EPW 9.3090 5.6660 10.0280 EP 98 WAT -1.358284 + 393 O 11.3720 8.8270 2.2050 OW 99 WAT 0.000000 + 394 H1 11.3640 9.5490 1.7150 HW 99 WAT 0.679142 + 395 H2 10.7330 8.9620 2.7820 HW 99 WAT 0.679142 + 396 EPW 11.2770 8.9540 2.2180 EP 99 WAT -1.358284 + 397 O 16.3440 12.6970 6.1860 OW 100 WAT 0.000000 + 398 H1 16.7000 12.3470 6.9010 HW 100 WAT 0.679142 + 399 H2 16.3360 12.0360 5.6160 HW 100 WAT 0.679142 + 400 EPW 16.3960 12.5470 6.2070 EP 100 WAT -1.358284 + 401 O 12.3890 15.7630 10.0300 OW 101 WAT 0.000000 + 402 H1 11.7860 15.4670 9.4730 HW 101 WAT 0.679142 + 403 H2 12.9340 16.2150 9.5210 HW 101 WAT 0.679142 + 404 EPW 12.3800 15.7860 9.8720 EP 101 WAT -1.358284 + 405 O 12.4020 12.6140 9.4300 OW 102 WAT 0.000000 + 406 H1 11.6050 12.8380 9.7040 HW 102 WAT 0.679142 + 407 H2 12.6600 12.0200 10.0150 HW 102 WAT 0.679142 + 408 EPW 12.3220 12.5590 9.5570 EP 102 WAT -1.358284 + 409 O 6.2940 17.4260 3.8780 OW 103 WAT 0.000000 + 410 H1 6.1470 16.6500 4.2490 HW 103 WAT 0.679142 + 411 H2 6.9830 17.2790 3.3630 HW 103 WAT 0.679142 + 412 EPW 6.3740 17.2890 3.8570 EP 103 WAT -1.358284 + 413 O 5.9650 1.1690 1.8660 OW 104 WAT 0.000000 + 414 H1 6.0620 1.0620 2.7270 HW 104 WAT 0.679142 + 415 H2 5.2570 1.6750 1.8010 HW 104 WAT 0.679142 + 416 EPW 5.8750 1.2280 1.9840 EP 104 WAT -1.358284 + 417 O 8.5860 16.9420 2.2800 OW 105 WAT 0.000000 + 418 H1 9.2080 17.1050 2.8700 HW 105 WAT 0.679142 + 419 H2 8.6220 17.6330 1.7480 HW 105 WAT 0.679142 + 420 EPW 8.6830 17.0680 2.2890 EP 105 WAT -1.358284 + 421 O 15.6620 10.6120 14.2760 OW 106 WAT 0.000000 + 422 H1 15.7170 10.7370 13.4140 HW 106 WAT 0.679142 + 423 H2 16.4150 10.9320 14.5780 HW 106 WAT 0.679142 + 424 EPW 15.7810 10.6770 14.1930 EP 106 WAT -1.358284 + 425 O 11.8530 15.9610 18.5530 OW 107 WAT 0.000000 + 426 H1 12.0170 16.2440 19.3620 HW 107 WAT 0.679142 + 427 H2 12.1160 16.6220 18.0480 HW 107 WAT 0.679142 + 428 EPW 11.9160 16.1010 18.5980 EP 107 WAT -1.358284 + 429 O 16.6940 0.9100 17.2630 OW 108 WAT 0.000000 + 430 H1 16.0570 0.5100 16.8210 HW 108 WAT 0.679142 + 431 H2 16.7200 0.4790 18.0210 HW 108 WAT 0.679142 + 432 EPW 16.6040 0.7880 17.3090 EP 108 WAT -1.358284 + 433 O 3.0870 9.4760 3.1090 OW 109 WAT 0.000000 + 434 H1 3.4110 8.6970 2.8870 HW 109 WAT 0.679142 + 435 H2 3.7330 9.8440 3.5640 HW 109 WAT 0.679142 + 436 EPW 3.2300 9.4150 3.1430 EP 109 WAT -1.358284 + 437 O 11.3930 10.4180 13.8760 OW 110 WAT 0.000000 + 438 H1 11.2380 11.0280 14.4800 HW 110 WAT 0.679142 + 439 H2 11.9270 9.8600 14.2820 HW 110 WAT 0.679142 + 440 EPW 11.4490 10.4260 14.0250 EP 110 WAT -1.358284 + 441 O 0.0840 1.1370 4.0770 OW 111 WAT 0.000000 + 442 H1 0.2130 0.4290 3.5850 HW 111 WAT 0.679142 + 443 H2 -0.2830 0.8190 4.8020 HW 111 WAT 0.679142 + 444 EPW 0.0490 0.9850 4.1120 EP 111 WAT -1.358284 + 445 O 9.7770 8.8180 4.5340 OW 112 WAT 0.000000 + 446 H1 9.8360 9.4680 5.1130 HW 112 WAT 0.679142 + 447 H2 9.5880 8.1220 5.0250 HW 112 WAT 0.679142 + 448 EPW 9.7580 8.8110 4.6920 EP 112 WAT -1.358284 + 449 O 15.0030 13.1470 10.4030 OW 113 WAT 0.000000 + 450 H1 14.5240 13.4450 9.7370 HW 113 WAT 0.679142 + 451 H2 14.6470 12.3710 10.5810 HW 113 WAT 0.679142 + 452 EPW 14.8800 13.0760 10.3310 EP 113 WAT -1.358284 + 453 O 4.2730 3.3350 1.0460 OW 114 WAT 0.000000 + 454 H1 3.7620 3.3880 0.3400 HW 114 WAT 0.679142 + 455 H2 5.0570 3.5750 0.7500 HW 114 WAT 0.679142 + 456 EPW 4.3130 3.3780 0.8980 EP 114 WAT -1.358284 + 457 O 9.0000 10.8650 8.9650 OW 115 WAT 0.000000 + 458 H1 8.1530 10.6710 9.0460 HW 115 WAT 0.679142 + 459 H2 9.3240 10.7000 9.7580 HW 115 WAT 0.679142 + 460 EPW 8.9220 10.8120 9.0940 EP 115 WAT -1.358284 + 461 O 5.7520 17.5950 -0.1490 OW 116 WAT 0.000000 + 462 H1 6.1910 16.8980 0.1390 HW 116 WAT 0.679142 + 463 H2 5.9590 18.2190 0.4240 HW 116 WAT 0.679142 + 464 EPW 5.8480 17.5840 -0.0220 EP 116 WAT -1.358284 + 465 O 2.8480 10.5580 11.2810 OW 117 WAT 0.000000 + 466 H1 3.5700 11.0460 11.2440 HW 117 WAT 0.679142 + 467 H2 2.5780 10.5280 10.4520 HW 117 WAT 0.679142 + 468 EPW 2.9150 10.6260 11.1530 EP 117 WAT -1.358284 + 469 O 6.0780 5.7290 8.0160 OW 118 WAT 0.000000 + 470 H1 6.9240 5.5390 8.1140 HW 118 WAT 0.679142 + 471 H2 5.7080 4.9520 7.8780 HW 118 WAT 0.679142 + 472 EPW 6.1480 5.5860 8.0100 EP 118 WAT -1.358284 + 473 O 18.6950 17.3130 2.3430 OW 119 WAT 0.000000 + 474 H1 19.3890 16.8460 2.0950 HW 119 WAT 0.679142 + 475 H2 18.1560 16.7150 2.6800 HW 119 WAT 0.679142 + 476 EPW 18.7180 17.1550 2.3560 EP 119 WAT -1.358284 + 477 O 0.8990 7.0670 4.6710 OW 120 WAT 0.000000 + 478 H1 1.3880 6.7750 5.3320 HW 120 WAT 0.679142 + 479 H2 1.0280 6.4740 4.0440 HW 120 WAT 0.679142 + 480 EPW 0.9900 6.9360 4.6760 EP 120 WAT -1.358284 + 481 O 15.9340 10.0890 11.5220 OW 121 WAT 0.000000 + 482 H1 15.9270 9.3130 11.9200 HW 121 WAT 0.679142 + 483 H2 15.0930 10.3230 11.5150 HW 121 WAT 0.679142 + 484 EPW 15.8090 10.0090 11.5800 EP 121 WAT -1.358284 + 485 O 5.4240 8.5010 0.1570 OW 122 WAT 0.000000 + 486 H1 4.8140 8.0960 0.6310 HW 122 WAT 0.679142 + 487 H2 5.0380 8.6190 -0.6160 HW 122 WAT 0.679142 + 488 EPW 5.2770 8.4580 0.1130 EP 122 WAT -1.358284 + 489 O 2.2430 11.6100 15.5590 OW 123 WAT 0.000000 + 490 H1 1.8220 11.0920 14.9980 HW 123 WAT 0.679142 + 491 H2 1.8910 12.3960 15.4160 HW 123 WAT 0.679142 + 492 EPW 2.1290 11.6500 15.4550 EP 123 WAT -1.358284 + 493 O 17.1900 10.1600 8.9590 OW 124 WAT 0.000000 + 494 H1 16.9040 10.5610 9.6790 HW 124 WAT 0.679142 + 495 H2 18.0500 10.0980 9.0860 HW 124 WAT 0.679142 + 496 EPW 17.2750 10.2100 9.0840 EP 124 WAT -1.358284 + 497 O 6.8790 6.9620 2.8670 OW 125 WAT 0.000000 + 498 H1 7.1510 7.7880 2.9340 HW 125 WAT 0.679142 + 499 H2 6.0160 7.0370 2.7710 HW 125 WAT 0.679142 + 500 EPW 6.7920 7.0950 2.8620 EP 125 WAT -1.358284 + 501 O 14.8520 4.0840 17.4990 OW 126 WAT 0.000000 + 502 H1 14.3270 4.5430 18.0230 HW 126 WAT 0.679142 + 503 H2 14.4910 3.2890 17.4930 HW 126 WAT 0.679142 + 504 EPW 14.7210 4.0340 17.5750 EP 126 WAT -1.358284 + 505 O 0.3590 2.9320 9.4030 OW 127 WAT 0.000000 + 506 H1 0.4030 3.2760 8.6020 HW 127 WAT 0.679142 + 507 H2 1.1140 3.1690 9.7700 HW 127 WAT 0.679142 + 508 EPW 0.4770 3.0180 9.3390 EP 127 WAT -1.358284 + 509 O 18.3210 15.7930 9.4880 OW 128 WAT 0.000000 + 510 H1 18.6110 16.0500 8.7070 HW 128 WAT 0.679142 + 511 H2 19.0160 15.8890 10.0070 HW 128 WAT 0.679142 + 512 EPW 18.4670 15.8450 9.4490 EP 128 WAT -1.358284 + 513 O 13.3440 7.6530 17.5750 OW 129 WAT 0.000000 + 514 H1 13.4170 7.7570 18.4380 HW 129 WAT 0.679142 + 515 H2 12.7100 8.2110 17.3540 HW 129 WAT 0.679142 + 516 EPW 13.2610 7.7510 17.6700 EP 129 WAT -1.358284 + 517 O 15.6120 7.9720 15.9400 OW 130 WAT 0.000000 + 518 H1 15.9310 8.7580 16.1430 HW 130 WAT 0.679142 + 519 H2 15.2420 7.7020 16.6830 HW 130 WAT 0.679142 + 520 EPW 15.6050 8.0480 16.0800 EP 130 WAT -1.358284 + 521 O 14.9260 14.3960 1.4700 OW 131 WAT 0.000000 + 522 H1 15.2600 13.5900 1.5050 HW 131 WAT 0.679142 + 523 H2 14.1710 14.3240 1.9000 HW 131 WAT 0.679142 + 524 EPW 14.8640 14.2660 1.5390 EP 131 WAT -1.358284 + 525 O 15.4080 6.2300 7.1290 OW 132 WAT 0.000000 + 526 H1 14.6630 5.9070 7.4470 HW 132 WAT 0.679142 + 527 H2 15.4100 7.0560 7.4090 HW 132 WAT 0.679142 + 528 EPW 15.2980 6.3040 7.2170 EP 132 WAT -1.358284 + 529 O 18.3100 8.5140 18.6750 OW 133 WAT 0.000000 + 530 H1 18.2580 8.1730 17.8740 HW 133 WAT 0.679142 + 531 H2 19.0470 8.9810 18.6530 HW 133 WAT 0.679142 + 532 EPW 18.4110 8.5330 18.5530 EP 133 WAT -1.358284 + 533 O 17.8480 12.1900 14.8810 OW 134 WAT 0.000000 + 534 H1 18.4760 11.6410 14.6250 HW 134 WAT 0.679142 + 535 H2 17.7870 12.7550 14.2190 HW 134 WAT 0.679142 + 536 EPW 17.9320 12.1930 14.7450 EP 134 WAT -1.358284 + 537 O 12.3000 12.2710 0.8730 OW 135 WAT 0.000000 + 538 H1 12.9840 11.7570 0.7040 HW 135 WAT 0.679142 + 539 H2 11.8830 12.3170 0.1080 HW 135 WAT 0.679142 + 540 EPW 12.3390 12.2020 0.7350 EP 135 WAT -1.358284 + 541 O 6.9820 13.4210 12.1770 OW 136 WAT 0.000000 + 542 H1 6.6840 14.0130 12.7440 HW 136 WAT 0.679142 + 543 H2 7.0370 13.8630 11.4280 HW 136 WAT 0.679142 + 544 EPW 6.9460 13.5740 12.1500 EP 136 WAT -1.358284 + 545 O 4.9610 12.3710 15.5750 OW 137 WAT 0.000000 + 546 H1 4.1550 12.0810 15.7420 HW 137 WAT 0.679142 + 547 H2 4.8720 13.2390 15.5810 HW 137 WAT 0.679142 + 548 EPW 4.8290 12.4560 15.6000 EP 137 WAT -1.358284 + 549 O 14.3200 2.5600 14.5900 OW 138 WAT 0.000000 + 550 H1 15.0640 3.0120 14.5270 HW 138 WAT 0.679142 + 551 H2 13.7540 3.0300 14.1210 HW 138 WAT 0.679142 + 552 EPW 14.3470 2.6970 14.5120 EP 138 WAT -1.358284 + 553 O 9.4980 9.8440 11.6680 OW 139 WAT 0.000000 + 554 H1 9.9740 10.2180 12.2960 HW 139 WAT 0.679142 + 555 H2 8.6750 9.9780 11.9270 HW 139 WAT 0.679142 + 556 EPW 9.4470 9.9190 11.7990 EP 139 WAT -1.358284 + 557 O 6.2080 5.4470 14.4090 OW 140 WAT 0.000000 + 558 H1 6.3690 4.7030 14.8360 HW 140 WAT 0.679142 + 559 H2 6.1630 5.1980 13.5740 HW 140 WAT 0.679142 + 560 EPW 6.2250 5.3000 14.3490 EP 140 WAT -1.358284 + 561 O 8.7620 17.2370 6.8960 OW 141 WAT 0.000000 + 562 H1 9.3080 17.9160 6.9500 HW 141 WAT 0.679142 + 563 H2 8.4120 17.3190 6.1010 HW 141 WAT 0.679142 + 564 EPW 8.7910 17.3500 6.7860 EP 141 WAT -1.358284 + 565 O 15.6050 0.5400 12.2600 OW 142 WAT 0.000000 + 566 H1 15.3250 1.3650 12.2160 HW 142 WAT 0.679142 + 567 H2 16.3210 0.5930 12.7560 HW 142 WAT 0.679142 + 568 EPW 15.6700 0.6700 12.3270 EP 142 WAT -1.358284 + 569 O 7.9600 1.2550 14.2890 OW 143 WAT 0.000000 + 570 H1 8.6650 1.5750 13.8870 HW 143 WAT 0.679142 + 571 H2 8.2010 0.4480 14.5160 HW 143 WAT 0.679142 + 572 EPW 8.0990 1.1830 14.2630 EP 143 WAT -1.358284 + 573 O 6.9450 15.4650 10.2850 OW 144 WAT 0.000000 + 574 H1 6.3210 16.0470 10.1030 HW 144 WAT 0.679142 + 575 H2 7.1930 15.1790 9.4990 HW 144 WAT 0.679142 + 576 EPW 6.8890 15.5090 10.1420 EP 144 WAT -1.358284 + 577 O 11.2540 12.0990 17.2740 OW 145 WAT 0.000000 + 578 H1 12.0110 12.3850 16.9480 HW 145 WAT 0.679142 + 579 H2 10.7070 12.1510 16.5960 HW 145 WAT 0.679142 + 580 EPW 11.2850 12.1490 17.1250 EP 145 WAT -1.358284 + 581 O 15.1630 14.6490 15.7780 OW 146 WAT 0.000000 + 582 H1 15.5090 14.9190 16.5320 HW 146 WAT 0.679142 + 583 H2 15.4570 15.2310 15.1980 HW 146 WAT 0.679142 + 584 EPW 15.2580 14.7750 15.8040 EP 146 WAT -1.358284 + 585 O 17.0260 6.7950 1.1170 OW 147 WAT 0.000000 + 586 H1 17.4040 7.4720 0.7170 HW 147 WAT 0.679142 + 587 H2 16.1840 7.0190 1.1480 HW 147 WAT 0.679142 + 588 EPW 16.9570 6.9280 1.0620 EP 147 WAT -1.358284 + 589 O 8.5390 10.2410 0.2000 OW 148 WAT 0.000000 + 590 H1 7.7340 10.0640 -0.0850 HW 148 WAT 0.679142 + 591 H2 8.5060 11.0920 0.3920 HW 148 WAT 0.679142 + 592 EPW 8.4150 10.3400 0.1870 EP 148 WAT -1.358284 + 593 O 4.4690 6.3080 10.3500 OW 149 WAT 0.000000 + 594 H1 4.9090 6.2050 9.6040 HW 149 WAT 0.679142 + 595 H2 5.0140 5.9950 10.9550 HW 149 WAT 0.679142 + 596 EPW 4.6140 6.2470 10.3290 EP 149 WAT -1.358284 + 597 O 12.4850 5.4100 15.9420 OW 150 WAT 0.000000 + 598 H1 11.8370 5.8800 16.2900 HW 150 WAT 0.679142 + 599 H2 13.0500 5.3210 16.6010 HW 150 WAT 0.679142 + 600 EPW 12.4730 5.4660 16.0910 EP 150 WAT -1.358284 + 601 O 12.1730 6.9470 12.2400 OW 151 WAT 0.000000 + 602 H1 12.4750 7.3670 12.9430 HW 151 WAT 0.679142 + 603 H2 12.2090 6.1070 12.4720 HW 151 WAT 0.679142 + 604 EPW 12.2230 6.8850 12.3780 EP 151 WAT -1.358284 + 605 O 9.5980 17.1140 16.1650 OW 152 WAT 0.000000 + 606 H1 10.0760 16.5140 15.7490 HW 152 WAT 0.679142 + 607 H2 9.2470 16.6710 16.8300 HW 152 WAT 0.679142 + 608 EPW 9.6170 16.9600 16.2020 EP 152 WAT -1.358284 + 609 O 14.7210 6.3940 4.4920 OW 153 WAT 0.000000 + 610 H1 14.9280 6.1930 5.3160 HW 153 WAT 0.679142 + 611 H2 15.4770 6.6620 4.1500 HW 153 WAT 0.679142 + 612 EPW 14.8630 6.4040 4.5630 EP 153 WAT -1.358284 + 613 O 8.0160 1.2930 10.3970 OW 154 WAT 0.000000 + 614 H1 7.1900 1.1440 10.6340 HW 154 WAT 0.679142 + 615 H2 7.9760 1.3280 9.5260 HW 154 WAT 0.679142 + 616 EPW 7.8880 1.2760 10.3030 EP 154 WAT -1.358284 + 617 O 15.7430 2.4770 5.9660 OW 155 WAT 0.000000 + 618 H1 15.0290 2.0060 6.1370 HW 155 WAT 0.679142 + 619 H2 15.5810 2.8180 5.1800 HW 155 WAT 0.679142 + 620 EPW 15.6140 2.4580 5.8750 EP 155 WAT -1.358284 + 621 O 16.1860 10.4210 4.3460 OW 156 WAT 0.000000 + 622 H1 16.6620 9.6920 4.2980 HW 156 WAT 0.679142 + 623 H2 15.3650 10.1350 4.2700 HW 156 WAT 0.679142 + 624 EPW 16.1350 10.2710 4.3270 EP 156 WAT -1.358284 + 625 O 9.6570 12.3330 15.1850 OW 157 WAT 0.000000 + 626 H1 8.8620 12.2690 15.5360 HW 157 WAT 0.679142 + 627 H2 9.7280 13.1800 14.9900 HW 157 WAT 0.679142 + 628 EPW 9.5500 12.4480 15.2080 EP 157 WAT -1.358284 + 629 O 0.5810 1.6910 16.4320 OW 158 WAT 0.000000 + 630 H1 0.4410 2.4860 16.1010 HW 158 WAT 0.679142 + 631 H2 -0.2050 1.4480 16.7210 HW 158 WAT 0.679142 + 632 EPW 0.4440 1.7730 16.4260 EP 158 WAT -1.358284 + 633 O 5.4870 18.5400 10.5020 OW 159 WAT 0.000000 + 634 H1 5.4980 18.5990 11.3720 HW 159 WAT 0.679142 + 635 H2 5.0620 17.7930 10.3520 HW 159 WAT 0.679142 + 636 EPW 5.4260 18.4380 10.6080 EP 159 WAT -1.358284 + 637 O 3.6450 4.4350 3.6570 OW 160 WAT 0.000000 + 638 H1 3.7710 4.1060 2.8590 HW 160 WAT 0.679142 + 639 H2 2.8330 4.1860 3.8560 HW 160 WAT 0.679142 + 640 EPW 3.5440 4.3500 3.5690 EP 160 WAT -1.358284 + 641 O 12.4020 11.5880 6.7010 OW 161 WAT 0.000000 + 642 H1 12.4780 11.9290 7.5000 HW 161 WAT 0.679142 + 643 H2 12.5710 10.7410 6.8220 HW 161 WAT 0.679142 + 644 EPW 12.4380 11.5130 6.8370 EP 161 WAT -1.358284 + 645 O 9.9240 10.8620 6.2660 OW 162 WAT 0.000000 + 646 H1 9.6260 10.5470 7.0230 HW 162 WAT 0.679142 + 647 H2 10.6190 11.3350 6.5010 HW 162 WAT 0.679142 + 648 EPW 9.9830 10.8850 6.4130 EP 162 WAT -1.358284 + 649 O 10.1460 14.9800 14.2930 OW 163 WAT 0.000000 + 650 H1 10.8330 14.8660 14.8180 HW 163 WAT 0.679142 + 651 H2 10.2800 15.7710 13.9490 HW 163 WAT 0.679142 + 652 EPW 10.2670 15.0800 14.3200 EP 163 WAT -1.358284 + 653 O 18.3220 7.5890 16.1040 OW 164 WAT 0.000000 + 654 H1 17.4670 7.4670 16.2300 HW 164 WAT 0.679142 + 655 H2 18.4750 7.1940 15.3410 HW 164 WAT 0.679142 + 656 EPW 18.2180 7.5120 16.0100 EP 164 WAT -1.358284 + 657 O 12.8350 8.2540 14.6800 OW 165 WAT 0.000000 + 658 H1 12.5800 7.5350 15.1020 HW 165 WAT 0.679142 + 659 H2 13.6560 8.3700 14.9500 HW 165 WAT 0.679142 + 660 EPW 12.9190 8.1650 14.7820 EP 165 WAT -1.358284 + 661 O 2.2510 18.0380 15.9440 OW 166 WAT 0.000000 + 662 H1 1.5970 17.4690 16.0420 HW 166 WAT 0.679142 + 663 H2 1.8760 18.8110 16.0950 HW 166 WAT 0.679142 + 664 EPW 2.0990 18.0680 15.9810 EP 166 WAT -1.358284 + 665 O 10.7690 9.4440 17.8670 OW 167 WAT 0.000000 + 666 H1 11.0920 10.1300 17.4350 HW 167 WAT 0.679142 + 667 H2 10.0650 9.7670 18.2690 HW 167 WAT 0.679142 + 668 EPW 10.7120 9.5930 17.8620 EP 167 WAT -1.358284 + 669 O 13.8530 17.8180 8.7960 OW 168 WAT 0.000000 + 670 H1 13.4020 18.4610 9.1750 HW 168 WAT 0.679142 + 671 H2 14.5610 17.7390 9.3010 HW 168 WAT 0.679142 + 672 EPW 13.8910 17.9010 8.9270 EP 168 WAT -1.358284 + 673 O 10.5540 12.9080 11.7260 OW 169 WAT 0.000000 + 674 H1 9.8600 13.3100 12.0690 HW 169 WAT 0.679142 + 675 H2 11.2310 13.3410 12.0650 HW 169 WAT 0.679142 + 676 EPW 10.5510 13.0310 11.8270 EP 169 WAT -1.358284 + 677 O 15.9310 15.5010 18.3060 OW 170 WAT 0.000000 + 678 H1 16.7070 15.1110 18.3890 HW 170 WAT 0.679142 + 679 H2 15.4620 15.1650 18.9610 HW 170 WAT 0.679142 + 680 EPW 15.9760 15.3940 18.4150 EP 170 WAT -1.358284 + 681 O 3.6220 6.4460 14.0730 OW 171 WAT 0.000000 + 682 H1 3.9970 7.0650 13.5860 HW 171 WAT 0.679142 + 683 H2 4.2960 5.9720 14.3580 HW 171 WAT 0.679142 + 684 EPW 3.7770 6.4680 14.0430 EP 171 WAT -1.358284 + 685 O 1.3970 4.8940 13.3480 OW 172 WAT 0.000000 + 686 H1 1.4740 4.7250 12.4950 HW 172 WAT 0.679142 + 687 H2 2.1430 5.3000 13.5450 HW 172 WAT 0.679142 + 688 EPW 1.5180 4.9290 13.2510 EP 172 WAT -1.358284 + 689 O 16.9560 7.5340 3.7880 OW 173 WAT 0.000000 + 690 H1 17.0590 7.4760 2.9240 HW 173 WAT 0.679142 + 691 H2 17.6970 7.2020 4.1060 HW 173 WAT 0.679142 + 692 EPW 17.0810 7.4770 3.7070 EP 173 WAT -1.358284 + 693 O 3.9510 2.3040 15.7590 OW 174 WAT 0.000000 + 694 H1 3.8700 1.4600 15.9650 HW 174 WAT 0.679142 + 695 H2 3.6370 2.3480 14.9460 HW 174 WAT 0.679142 + 696 EPW 3.8930 2.1860 15.6690 EP 174 WAT -1.358284 + 697 O 10.8760 14.4990 4.8950 OW 175 WAT 0.000000 + 698 H1 10.6710 15.3320 4.7360 HW 175 WAT 0.679142 + 699 H2 10.1010 14.1170 5.0170 HW 175 WAT 0.679142 + 700 EPW 10.7310 14.5660 4.8900 EP 175 WAT -1.358284 + 701 O 16.0580 7.6800 13.1440 OW 176 WAT 0.000000 + 702 H1 16.0560 6.8170 13.2680 HW 176 WAT 0.679142 + 703 H2 16.1250 8.0040 13.9510 HW 176 WAT 0.679142 + 704 EPW 16.0680 7.6000 13.2810 EP 176 WAT -1.358284 + 705 O 0.7940 10.1200 13.5720 OW 177 WAT 0.000000 + 706 H1 1.1140 10.3390 12.7910 HW 177 WAT 0.679142 + 707 H2 0.6940 9.2550 13.5170 HW 177 WAT 0.679142 + 708 EPW 0.8260 10.0250 13.4490 EP 177 WAT -1.358284 + 709 O 2.2500 6.0560 0.1900 OW 178 WAT 0.000000 + 710 H1 1.5780 6.0700 0.7460 HW 178 WAT 0.679142 + 711 H2 2.3450 5.2080 0.0060 HW 178 WAT 0.679142 + 712 EPW 2.1650 5.9330 0.2450 EP 178 WAT -1.358284 + 713 O 11.9370 2.4800 16.9260 OW 179 WAT 0.000000 + 714 H1 12.0290 3.1920 17.4200 HW 179 WAT 0.679142 + 715 H2 11.3000 2.0350 17.3230 HW 179 WAT 0.679142 + 716 EPW 11.8560 2.5190 17.0580 EP 179 WAT -1.358284 + 717 O 10.9310 2.6700 7.7800 OW 180 WAT 0.000000 + 718 H1 10.2310 3.1880 7.7240 HW 180 WAT 0.679142 + 719 H2 10.9690 2.2900 6.9960 HW 180 WAT 0.679142 + 720 EPW 10.8330 2.6910 7.6560 EP 180 WAT -1.358284 + 721 O 6.2380 14.7610 1.3040 OW 181 WAT 0.000000 + 722 H1 6.6790 14.8410 2.0520 HW 181 WAT 0.679142 + 723 H2 5.4330 14.5450 1.5620 HW 181 WAT 0.679142 + 724 EPW 6.1840 14.7410 1.4530 EP 181 WAT -1.358284 + 725 O 14.5290 3.1860 10.5800 OW 182 WAT 0.000000 + 726 H1 15.3840 3.2850 10.7250 HW 182 WAT 0.679142 + 727 H2 14.1600 3.7390 11.1450 HW 182 WAT 0.679142 + 728 EPW 14.6010 3.2830 10.6850 EP 182 WAT -1.358284 + 729 O 5.5570 9.4120 14.9570 OW 183 WAT 0.000000 + 730 H1 5.1610 10.1860 15.0320 HW 183 WAT 0.679142 + 731 H2 5.1510 9.0390 14.2810 HW 183 WAT 0.679142 + 732 EPW 5.4390 9.4710 14.8680 EP 183 WAT -1.358284 + 733 O 14.8330 8.4660 9.0710 OW 184 WAT 0.000000 + 734 H1 15.4990 9.0070 9.2310 HW 184 WAT 0.679142 + 735 H2 14.4880 8.7770 8.3320 HW 184 WAT 0.679142 + 736 EPW 14.8800 8.5920 8.9860 EP 184 WAT -1.358284 + 737 O 15.1460 16.5320 4.8780 OW 185 WAT 0.000000 + 738 H1 14.9720 15.8780 5.4280 HW 185 WAT 0.679142 + 739 H2 15.8590 16.2610 4.4550 HW 185 WAT 0.679142 + 740 EPW 15.2260 16.3950 4.8970 EP 185 WAT -1.358284 + 741 O 3.5670 13.8310 1.9050 OW 186 WAT 0.000000 + 742 H1 3.3230 13.5240 2.6850 HW 186 WAT 0.679142 + 743 H2 3.5340 13.1280 1.3890 HW 186 WAT 0.679142 + 744 EPW 3.5260 13.6820 1.9440 EP 186 WAT -1.358284 + 745 O 6.3860 12.0760 0.6480 OW 187 WAT 0.000000 + 746 H1 5.5680 11.8080 0.7880 HW 187 WAT 0.679142 + 747 H2 6.3580 12.9280 0.8330 HW 187 WAT 0.679142 + 748 EPW 6.2610 12.1630 0.6960 EP 187 WAT -1.358284 + 749 O 5.9860 2.3890 12.4070 OW 188 WAT 0.000000 + 750 H1 5.1220 2.4730 12.4870 HW 188 WAT 0.679142 + 751 H2 6.2060 1.8750 13.0760 HW 188 WAT 0.679142 + 752 EPW 5.8910 2.3260 12.5180 EP 188 WAT -1.358284 + 753 O 18.0040 1.0240 13.7360 OW 189 WAT 0.000000 + 754 H1 17.9520 0.9800 14.6060 HW 189 WAT 0.679142 + 755 H2 18.6910 0.5210 13.5460 HW 189 WAT 0.679142 + 756 EPW 18.0980 0.9440 13.8360 EP 189 WAT -1.358284 + 757 O 10.0890 3.1370 10.7810 OW 190 WAT 0.000000 + 758 H1 9.3520 2.6830 10.8940 HW 190 WAT 0.679142 + 759 H2 10.6600 2.7350 11.3040 HW 190 WAT 0.679142 + 760 EPW 10.0640 3.0100 10.8750 EP 190 WAT -1.358284 + 761 O 12.8210 13.9850 12.5690 OW 191 WAT 0.000000 + 762 H1 13.0270 14.2860 13.3610 HW 191 WAT 0.679142 + 763 H2 12.7600 14.7070 12.0840 HW 191 WAT 0.679142 + 764 EPW 12.8420 14.1360 12.6140 EP 191 WAT -1.358284 + 765 O 12.3550 18.1990 16.8150 OW 192 WAT 0.000000 + 766 H1 11.6020 18.1810 16.3740 HW 192 WAT 0.679142 + 767 H2 12.5230 19.0510 16.8990 HW 192 WAT 0.679142 + 768 EPW 12.2690 18.3220 16.7620 EP 192 WAT -1.358284 + 769 O 7.5920 7.4660 15.9850 OW 193 WAT 0.000000 + 770 H1 7.2700 6.8900 15.4150 HW 193 WAT 0.679142 + 771 H2 7.2330 8.2210 15.7390 HW 193 WAT 0.679142 + 772 EPW 7.4920 7.4920 15.8650 EP 193 WAT -1.358284 + 773 O 8.3880 0.7180 0.6120 OW 194 WAT 0.000000 + 774 H1 8.4660 0.9650 -0.2210 HW 194 WAT 0.679142 + 775 H2 7.6450 1.0950 0.8700 HW 194 WAT 0.679142 + 776 EPW 8.2900 0.8100 0.5270 EP 194 WAT -1.358284 + 777 O 17.6330 12.6240 12.0270 OW 195 WAT 0.000000 + 778 H1 17.6010 11.7620 11.8920 HW 195 WAT 0.679142 + 779 H2 16.9400 12.9260 11.5930 HW 195 WAT 0.679142 + 780 EPW 17.5260 12.5410 11.9430 EP 195 WAT -1.358284 + 781 O 6.0270 17.8220 16.2330 OW 196 WAT 0.000000 + 782 H1 6.0680 17.9480 17.0960 HW 196 WAT 0.679142 + 783 H2 6.6780 17.2620 16.0770 HW 196 WAT 0.679142 + 784 EPW 6.1290 17.7580 16.3380 EP 196 WAT -1.358284 + 785 O 15.7380 15.8840 10.8240 OW 197 WAT 0.000000 + 786 H1 16.2650 15.8010 10.1330 HW 197 WAT 0.679142 + 787 H2 15.3470 15.1060 10.8780 HW 197 WAT 0.679142 + 788 EPW 15.7580 15.7570 10.7300 EP 197 WAT -1.358284 + 789 O 3.2060 2.4720 13.0550 OW 198 WAT 0.000000 + 790 H1 2.8630 1.7050 12.8210 HW 198 WAT 0.679142 + 791 H2 2.5110 2.9960 13.1190 HW 198 WAT 0.679142 + 792 EPW 3.0530 2.4360 13.0300 EP 198 WAT -1.358284 + 793 O 12.2520 1.3280 10.0320 OW 199 WAT 0.000000 + 794 H1 12.9220 1.8720 10.1590 HW 199 WAT 0.679142 + 795 H2 11.7490 1.7520 9.4590 HW 199 WAT 0.679142 + 796 EPW 12.2770 1.4710 9.9660 EP 199 WAT -1.358284 + 797 O 3.6200 16.2050 17.5930 OW 200 WAT 0.000000 + 798 H1 4.2150 16.6360 18.0650 HW 200 WAT 0.679142 + 799 H2 3.2560 16.8290 17.1040 HW 200 WAT 0.679142 + 800 EPW 3.6540 16.3610 17.5900 EP 200 WAT -1.358284 + 801 O 11.6110 7.1360 7.5250 OW 201 WAT 0.000000 + 802 H1 12.1620 6.5290 7.8250 HW 201 WAT 0.679142 + 803 H2 11.1860 7.3990 8.2400 HW 201 WAT 0.679142 + 804 EPW 11.6300 7.0850 7.6740 EP 201 WAT -1.358284 + 805 O 1.8590 5.7860 7.0110 OW 202 WAT 0.000000 + 806 H1 1.4910 6.0880 7.7420 HW 202 WAT 0.679142 + 807 H2 2.3930 5.1570 7.2950 HW 202 WAT 0.679142 + 808 EPW 1.8830 5.7380 7.1610 EP 202 WAT -1.358284 + 809 O 1.5470 14.1940 14.5220 OW 203 WAT 0.000000 + 810 H1 0.9730 14.6100 15.0310 HW 203 WAT 0.679142 + 811 H2 2.2800 14.6590 14.6170 HW 203 WAT 0.679142 + 812 EPW 1.5710 14.3240 14.6110 EP 203 WAT -1.358284 + 813 O 13.5810 8.9670 4.0870 OW 204 WAT 0.000000 + 814 H1 13.6490 8.1170 4.2680 HW 204 WAT 0.679142 + 815 H2 12.7580 9.0530 3.8090 HW 204 WAT 0.679142 + 816 EPW 13.4690 8.8540 4.0730 EP 204 WAT -1.358284 + 817 O 3.3330 17.4610 3.2970 OW 205 WAT 0.000000 + 818 H1 3.1880 17.6170 2.4510 HW 205 WAT 0.679142 + 819 H2 4.1990 17.5400 3.3750 HW 205 WAT 0.679142 + 820 EPW 3.4400 17.4960 3.1840 EP 205 WAT -1.358284 + 821 O 7.5000 9.8580 3.0250 OW 206 WAT 0.000000 + 822 H1 7.6000 9.9970 2.1700 HW 206 WAT 0.679142 + 823 H2 8.3180 9.7980 3.3210 HW 206 WAT 0.679142 + 824 EPW 7.6350 9.8690 2.9420 EP 206 WAT -1.358284 + 825 O 16.6600 17.9220 0.5050 OW 207 WAT 0.000000 + 826 H1 17.2970 17.7880 1.0860 HW 207 WAT 0.679142 + 827 H2 16.3190 17.1280 0.3880 HW 207 WAT 0.679142 + 828 EPW 16.7040 17.7850 0.5730 EP 207 WAT -1.358284 + 829 O 16.8550 10.3400 17.2380 OW 208 WAT 0.000000 + 830 H1 17.4890 10.1700 17.8120 HW 208 WAT 0.679142 + 831 H2 17.2720 10.7430 16.5860 HW 208 WAT 0.679142 + 832 EPW 17.0100 10.3750 17.2270 EP 208 WAT -1.358284 + 833 O 12.7350 14.1870 2.8270 OW 209 WAT 0.000000 + 834 H1 12.4840 14.0590 3.6530 HW 209 WAT 0.679142 + 835 H2 12.4180 13.4920 2.4060 HW 209 WAT 0.679142 + 836 EPW 12.6510 14.0660 2.8870 EP 209 WAT -1.358284 + 837 O 17.4800 4.9040 17.9760 OW 210 WAT 0.000000 + 838 H1 17.2840 5.5480 18.5310 HW 210 WAT 0.679142 + 839 H2 16.7580 4.4140 17.9680 HW 210 WAT 0.679142 + 840 EPW 17.3450 4.9270 18.0570 EP 210 WAT -1.358284 + 841 O 17.3790 5.8450 10.9470 OW 211 WAT 0.000000 + 842 H1 16.5460 6.0950 10.8750 HW 211 WAT 0.679142 + 843 H2 17.3230 5.0050 11.1760 HW 211 WAT 0.679142 + 844 EPW 17.2480 5.7580 10.9700 EP 211 WAT -1.358284 + 845 O 6.6390 2.8330 16.1410 OW 212 WAT 0.000000 + 846 H1 6.8730 2.2570 15.5280 HW 212 WAT 0.679142 + 847 H2 5.7970 2.6520 16.2820 HW 212 WAT 0.679142 + 848 EPW 6.5490 2.7210 16.0710 EP 212 WAT -1.358284 + 849 O 14.2660 10.4510 18.5930 OW 213 WAT 0.000000 + 850 H1 15.1370 10.4150 18.5570 HW 213 WAT 0.679142 + 851 H2 14.0470 10.8710 17.8610 HW 213 WAT 0.679142 + 852 EPW 14.3630 10.5070 18.4800 EP 213 WAT -1.358284 + 853 O 4.0200 16.2760 9.7740 OW 214 WAT 0.000000 + 854 H1 3.9410 15.4660 9.4580 HW 214 WAT 0.679142 + 855 H2 3.5760 16.7630 9.2020 HW 214 WAT 0.679142 + 856 EPW 3.9430 16.2280 9.6430 EP 214 WAT -1.358284 + 857 O 9.6210 12.3950 2.2570 OW 215 WAT 0.000000 + 858 H1 10.3380 12.0480 1.9010 HW 215 WAT 0.679142 + 859 H2 9.5870 13.1950 1.9090 HW 215 WAT 0.679142 + 860 EPW 9.7220 12.4620 2.1530 EP 215 WAT -1.358284 + 861 O 1.5920 18.5200 13.3550 OW 216 WAT 0.000000 + 862 H1 2.0850 18.4640 14.0730 HW 216 WAT 0.679142 + 863 H2 1.7800 17.7870 12.9200 HW 216 WAT 0.679142 + 864 EPW 1.6930 18.4030 13.3970 EP 216 WAT -1.358284 +@<TRIPOS>BOND + 1 861 864 1 + 2 857 860 1 + 3 853 856 1 + 4 849 852 1 + 5 845 848 1 + 6 841 844 1 + 7 837 840 1 + 8 833 836 1 + 9 829 832 1 + 10 825 828 1 + 11 821 824 1 + 12 817 820 1 + 13 813 816 1 + 14 809 812 1 + 15 805 808 1 + 16 801 804 1 + 17 797 800 1 + 18 793 796 1 + 19 789 792 1 + 20 785 788 1 + 21 781 784 1 + 22 777 780 1 + 23 773 776 1 + 24 769 772 1 + 25 765 768 1 + 26 761 764 1 + 27 757 760 1 + 28 753 756 1 + 29 749 752 1 + 30 745 748 1 + 31 741 744 1 + 32 737 740 1 + 33 733 736 1 + 34 729 732 1 + 35 725 728 1 + 36 721 724 1 + 37 717 720 1 + 38 713 716 1 + 39 709 712 1 + 40 705 708 1 + 41 701 704 1 + 42 697 700 1 + 43 693 696 1 + 44 689 692 1 + 45 685 688 1 + 46 681 684 1 + 47 677 680 1 + 48 673 676 1 + 49 669 672 1 + 50 665 668 1 + 51 661 664 1 + 52 657 660 1 + 53 653 656 1 + 54 649 652 1 + 55 645 648 1 + 56 641 644 1 + 57 637 640 1 + 58 633 636 1 + 59 629 632 1 + 60 625 628 1 + 61 621 624 1 + 62 617 620 1 + 63 613 616 1 + 64 609 612 1 + 65 605 608 1 + 66 601 604 1 + 67 597 600 1 + 68 593 596 1 + 69 589 592 1 + 70 585 588 1 + 71 581 584 1 + 72 577 580 1 + 73 573 576 1 + 74 569 572 1 + 75 565 568 1 + 76 561 564 1 + 77 557 560 1 + 78 553 556 1 + 79 549 552 1 + 80 545 548 1 + 81 541 544 1 + 82 537 540 1 + 83 533 536 1 + 84 529 532 1 + 85 525 528 1 + 86 521 524 1 + 87 517 520 1 + 88 513 516 1 + 89 509 512 1 + 90 505 508 1 + 91 501 504 1 + 92 497 500 1 + 93 493 496 1 + 94 489 492 1 + 95 485 488 1 + 96 481 484 1 + 97 477 480 1 + 98 473 476 1 + 99 469 472 1 + 100 465 468 1 + 101 461 464 1 + 102 457 460 1 + 103 453 456 1 + 104 449 452 1 + 105 445 448 1 + 106 441 444 1 + 107 437 440 1 + 108 433 436 1 + 109 429 432 1 + 110 425 428 1 + 111 421 424 1 + 112 417 420 1 + 113 413 416 1 + 114 409 412 1 + 115 405 408 1 + 116 401 404 1 + 117 397 400 1 + 118 393 396 1 + 119 389 392 1 + 120 385 388 1 + 121 381 384 1 + 122 377 380 1 + 123 373 376 1 + 124 369 372 1 + 125 365 368 1 + 126 361 364 1 + 127 357 360 1 + 128 353 356 1 + 129 349 352 1 + 130 345 348 1 + 131 341 344 1 + 132 337 340 1 + 133 333 336 1 + 134 329 332 1 + 135 325 328 1 + 136 321 324 1 + 137 317 320 1 + 138 313 316 1 + 139 309 312 1 + 140 305 308 1 + 141 301 304 1 + 142 297 300 1 + 143 293 296 1 + 144 289 292 1 + 145 285 288 1 + 146 281 284 1 + 147 277 280 1 + 148 273 276 1 + 149 269 272 1 + 150 265 268 1 + 151 261 264 1 + 152 257 260 1 + 153 253 256 1 + 154 249 252 1 + 155 245 248 1 + 156 241 244 1 + 157 237 240 1 + 158 233 236 1 + 159 229 232 1 + 160 225 228 1 + 161 221 224 1 + 162 217 220 1 + 163 213 216 1 + 164 209 212 1 + 165 205 208 1 + 166 201 204 1 + 167 197 200 1 + 168 193 196 1 + 169 189 192 1 + 170 185 188 1 + 171 181 184 1 + 172 177 180 1 + 173 173 176 1 + 174 169 172 1 + 175 165 168 1 + 176 161 164 1 + 177 157 160 1 + 178 153 156 1 + 179 149 152 1 + 180 145 148 1 + 181 141 144 1 + 182 137 140 1 + 183 133 136 1 + 184 129 132 1 + 185 125 128 1 + 186 121 124 1 + 187 117 120 1 + 188 113 116 1 + 189 109 112 1 + 190 105 108 1 + 191 101 104 1 + 192 97 100 1 + 193 93 96 1 + 194 89 92 1 + 195 85 88 1 + 196 81 84 1 + 197 77 80 1 + 198 73 76 1 + 199 69 72 1 + 200 65 68 1 + 201 61 64 1 + 202 57 60 1 + 203 53 56 1 + 204 49 52 1 + 205 45 48 1 + 206 41 44 1 + 207 37 40 1 + 208 33 36 1 + 209 29 32 1 + 210 25 28 1 + 211 21 24 1 + 212 17 20 1 + 213 13 16 1 + 214 9 12 1 + 215 5 8 1 + 216 1 4 1 + 217 861 862 1 + 218 861 863 1 + 219 863 862 1 + 220 857 858 1 + 221 857 859 1 + 222 859 858 1 + 223 853 854 1 + 224 853 855 1 + 225 855 854 1 + 226 849 850 1 + 227 849 851 1 + 228 851 850 1 + 229 845 846 1 + 230 845 847 1 + 231 847 846 1 + 232 841 842 1 + 233 841 843 1 + 234 843 842 1 + 235 837 838 1 + 236 837 839 1 + 237 839 838 1 + 238 833 834 1 + 239 833 835 1 + 240 835 834 1 + 241 829 830 1 + 242 829 831 1 + 243 831 830 1 + 244 825 826 1 + 245 825 827 1 + 246 827 826 1 + 247 821 822 1 + 248 821 823 1 + 249 823 822 1 + 250 817 818 1 + 251 817 819 1 + 252 819 818 1 + 253 813 814 1 + 254 813 815 1 + 255 815 814 1 + 256 809 810 1 + 257 809 811 1 + 258 811 810 1 + 259 805 806 1 + 260 805 807 1 + 261 807 806 1 + 262 801 802 1 + 263 801 803 1 + 264 803 802 1 + 265 797 798 1 + 266 797 799 1 + 267 799 798 1 + 268 793 794 1 + 269 793 795 1 + 270 795 794 1 + 271 789 790 1 + 272 789 791 1 + 273 791 790 1 + 274 785 786 1 + 275 785 787 1 + 276 787 786 1 + 277 781 782 1 + 278 781 783 1 + 279 783 782 1 + 280 777 778 1 + 281 777 779 1 + 282 779 778 1 + 283 773 774 1 + 284 773 775 1 + 285 775 774 1 + 286 769 770 1 + 287 769 771 1 + 288 771 770 1 + 289 765 766 1 + 290 765 767 1 + 291 767 766 1 + 292 761 762 1 + 293 761 763 1 + 294 763 762 1 + 295 757 758 1 + 296 757 759 1 + 297 759 758 1 + 298 753 754 1 + 299 753 755 1 + 300 755 754 1 + 301 749 750 1 + 302 749 751 1 + 303 751 750 1 + 304 745 746 1 + 305 745 747 1 + 306 747 746 1 + 307 741 742 1 + 308 741 743 1 + 309 743 742 1 + 310 737 738 1 + 311 737 739 1 + 312 739 738 1 + 313 733 734 1 + 314 733 735 1 + 315 735 734 1 + 316 729 730 1 + 317 729 731 1 + 318 731 730 1 + 319 725 726 1 + 320 725 727 1 + 321 727 726 1 + 322 721 722 1 + 323 721 723 1 + 324 723 722 1 + 325 717 718 1 + 326 717 719 1 + 327 719 718 1 + 328 713 714 1 + 329 713 715 1 + 330 715 714 1 + 331 709 710 1 + 332 709 711 1 + 333 711 710 1 + 334 705 706 1 + 335 705 707 1 + 336 707 706 1 + 337 701 702 1 + 338 701 703 1 + 339 703 702 1 + 340 697 698 1 + 341 697 699 1 + 342 699 698 1 + 343 693 694 1 + 344 693 695 1 + 345 695 694 1 + 346 689 690 1 + 347 689 691 1 + 348 691 690 1 + 349 685 686 1 + 350 685 687 1 + 351 687 686 1 + 352 681 682 1 + 353 681 683 1 + 354 683 682 1 + 355 677 678 1 + 356 677 679 1 + 357 679 678 1 + 358 673 674 1 + 359 673 675 1 + 360 675 674 1 + 361 669 670 1 + 362 669 671 1 + 363 671 670 1 + 364 665 666 1 + 365 665 667 1 + 366 667 666 1 + 367 661 662 1 + 368 661 663 1 + 369 663 662 1 + 370 657 658 1 + 371 657 659 1 + 372 659 658 1 + 373 653 654 1 + 374 653 655 1 + 375 655 654 1 + 376 649 650 1 + 377 649 651 1 + 378 651 650 1 + 379 645 646 1 + 380 645 647 1 + 381 647 646 1 + 382 641 642 1 + 383 641 643 1 + 384 643 642 1 + 385 637 638 1 + 386 637 639 1 + 387 639 638 1 + 388 633 634 1 + 389 633 635 1 + 390 635 634 1 + 391 629 630 1 + 392 629 631 1 + 393 631 630 1 + 394 625 626 1 + 395 625 627 1 + 396 627 626 1 + 397 621 622 1 + 398 621 623 1 + 399 623 622 1 + 400 617 618 1 + 401 617 619 1 + 402 619 618 1 + 403 613 614 1 + 404 613 615 1 + 405 615 614 1 + 406 609 610 1 + 407 609 611 1 + 408 611 610 1 + 409 605 606 1 + 410 605 607 1 + 411 607 606 1 + 412 601 602 1 + 413 601 603 1 + 414 603 602 1 + 415 597 598 1 + 416 597 599 1 + 417 599 598 1 + 418 593 594 1 + 419 593 595 1 + 420 595 594 1 + 421 589 590 1 + 422 589 591 1 + 423 591 590 1 + 424 585 586 1 + 425 585 587 1 + 426 587 586 1 + 427 581 582 1 + 428 581 583 1 + 429 583 582 1 + 430 577 578 1 + 431 577 579 1 + 432 579 578 1 + 433 573 574 1 + 434 573 575 1 + 435 575 574 1 + 436 569 570 1 + 437 569 571 1 + 438 571 570 1 + 439 565 566 1 + 440 565 567 1 + 441 567 566 1 + 442 561 562 1 + 443 561 563 1 + 444 563 562 1 + 445 557 558 1 + 446 557 559 1 + 447 559 558 1 + 448 553 554 1 + 449 553 555 1 + 450 555 554 1 + 451 549 550 1 + 452 549 551 1 + 453 551 550 1 + 454 545 546 1 + 455 545 547 1 + 456 547 546 1 + 457 541 542 1 + 458 541 543 1 + 459 543 542 1 + 460 537 538 1 + 461 537 539 1 + 462 539 538 1 + 463 533 534 1 + 464 533 535 1 + 465 535 534 1 + 466 529 530 1 + 467 529 531 1 + 468 531 530 1 + 469 525 526 1 + 470 525 527 1 + 471 527 526 1 + 472 521 522 1 + 473 521 523 1 + 474 523 522 1 + 475 517 518 1 + 476 517 519 1 + 477 519 518 1 + 478 513 514 1 + 479 513 515 1 + 480 515 514 1 + 481 509 510 1 + 482 509 511 1 + 483 511 510 1 + 484 505 506 1 + 485 505 507 1 + 486 507 506 1 + 487 501 502 1 + 488 501 503 1 + 489 503 502 1 + 490 497 498 1 + 491 497 499 1 + 492 499 498 1 + 493 493 494 1 + 494 493 495 1 + 495 495 494 1 + 496 489 490 1 + 497 489 491 1 + 498 491 490 1 + 499 485 486 1 + 500 485 487 1 + 501 487 486 1 + 502 481 482 1 + 503 481 483 1 + 504 483 482 1 + 505 477 478 1 + 506 477 479 1 + 507 479 478 1 + 508 473 474 1 + 509 473 475 1 + 510 475 474 1 + 511 469 470 1 + 512 469 471 1 + 513 471 470 1 + 514 465 466 1 + 515 465 467 1 + 516 467 466 1 + 517 461 462 1 + 518 461 463 1 + 519 463 462 1 + 520 457 458 1 + 521 457 459 1 + 522 459 458 1 + 523 453 454 1 + 524 453 455 1 + 525 455 454 1 + 526 449 450 1 + 527 449 451 1 + 528 451 450 1 + 529 445 446 1 + 530 445 447 1 + 531 447 446 1 + 532 441 442 1 + 533 441 443 1 + 534 443 442 1 + 535 437 438 1 + 536 437 439 1 + 537 439 438 1 + 538 433 434 1 + 539 433 435 1 + 540 435 434 1 + 541 429 430 1 + 542 429 431 1 + 543 431 430 1 + 544 425 426 1 + 545 425 427 1 + 546 427 426 1 + 547 421 422 1 + 548 421 423 1 + 549 423 422 1 + 550 417 418 1 + 551 417 419 1 + 552 419 418 1 + 553 413 414 1 + 554 413 415 1 + 555 415 414 1 + 556 409 410 1 + 557 409 411 1 + 558 411 410 1 + 559 405 406 1 + 560 405 407 1 + 561 407 406 1 + 562 401 402 1 + 563 401 403 1 + 564 403 402 1 + 565 397 398 1 + 566 397 399 1 + 567 399 398 1 + 568 393 394 1 + 569 393 395 1 + 570 395 394 1 + 571 389 390 1 + 572 389 391 1 + 573 391 390 1 + 574 385 386 1 + 575 385 387 1 + 576 387 386 1 + 577 381 382 1 + 578 381 383 1 + 579 383 382 1 + 580 377 378 1 + 581 377 379 1 + 582 379 378 1 + 583 373 374 1 + 584 373 375 1 + 585 375 374 1 + 586 369 370 1 + 587 369 371 1 + 588 371 370 1 + 589 365 366 1 + 590 365 367 1 + 591 367 366 1 + 592 361 362 1 + 593 361 363 1 + 594 363 362 1 + 595 357 358 1 + 596 357 359 1 + 597 359 358 1 + 598 353 354 1 + 599 353 355 1 + 600 355 354 1 + 601 349 350 1 + 602 349 351 1 + 603 351 350 1 + 604 345 346 1 + 605 345 347 1 + 606 347 346 1 + 607 341 342 1 + 608 341 343 1 + 609 343 342 1 + 610 337 338 1 + 611 337 339 1 + 612 339 338 1 + 613 333 334 1 + 614 333 335 1 + 615 335 334 1 + 616 329 330 1 + 617 329 331 1 + 618 331 330 1 + 619 325 326 1 + 620 325 327 1 + 621 327 326 1 + 622 321 322 1 + 623 321 323 1 + 624 323 322 1 + 625 317 318 1 + 626 317 319 1 + 627 319 318 1 + 628 313 314 1 + 629 313 315 1 + 630 315 314 1 + 631 309 310 1 + 632 309 311 1 + 633 311 310 1 + 634 305 306 1 + 635 305 307 1 + 636 307 306 1 + 637 301 302 1 + 638 301 303 1 + 639 303 302 1 + 640 297 298 1 + 641 297 299 1 + 642 299 298 1 + 643 293 294 1 + 644 293 295 1 + 645 295 294 1 + 646 289 290 1 + 647 289 291 1 + 648 291 290 1 + 649 285 286 1 + 650 285 287 1 + 651 287 286 1 + 652 281 282 1 + 653 281 283 1 + 654 283 282 1 + 655 277 278 1 + 656 277 279 1 + 657 279 278 1 + 658 273 274 1 + 659 273 275 1 + 660 275 274 1 + 661 269 270 1 + 662 269 271 1 + 663 271 270 1 + 664 265 266 1 + 665 265 267 1 + 666 267 266 1 + 667 261 262 1 + 668 261 263 1 + 669 263 262 1 + 670 257 258 1 + 671 257 259 1 + 672 259 258 1 + 673 253 254 1 + 674 253 255 1 + 675 255 254 1 + 676 249 250 1 + 677 249 251 1 + 678 251 250 1 + 679 245 246 1 + 680 245 247 1 + 681 247 246 1 + 682 241 242 1 + 683 241 243 1 + 684 243 242 1 + 685 237 238 1 + 686 237 239 1 + 687 239 238 1 + 688 233 234 1 + 689 233 235 1 + 690 235 234 1 + 691 229 230 1 + 692 229 231 1 + 693 231 230 1 + 694 225 226 1 + 695 225 227 1 + 696 227 226 1 + 697 221 222 1 + 698 221 223 1 + 699 223 222 1 + 700 217 218 1 + 701 217 219 1 + 702 219 218 1 + 703 213 214 1 + 704 213 215 1 + 705 215 214 1 + 706 209 210 1 + 707 209 211 1 + 708 211 210 1 + 709 205 206 1 + 710 205 207 1 + 711 207 206 1 + 712 201 202 1 + 713 201 203 1 + 714 203 202 1 + 715 197 198 1 + 716 197 199 1 + 717 199 198 1 + 718 193 194 1 + 719 193 195 1 + 720 195 194 1 + 721 189 190 1 + 722 189 191 1 + 723 191 190 1 + 724 185 186 1 + 725 185 187 1 + 726 187 186 1 + 727 181 182 1 + 728 181 183 1 + 729 183 182 1 + 730 177 178 1 + 731 177 179 1 + 732 179 178 1 + 733 173 174 1 + 734 173 175 1 + 735 175 174 1 + 736 169 170 1 + 737 169 171 1 + 738 171 170 1 + 739 165 166 1 + 740 165 167 1 + 741 167 166 1 + 742 161 162 1 + 743 161 163 1 + 744 163 162 1 + 745 157 158 1 + 746 157 159 1 + 747 159 158 1 + 748 153 154 1 + 749 153 155 1 + 750 155 154 1 + 751 149 150 1 + 752 149 151 1 + 753 151 150 1 + 754 145 146 1 + 755 145 147 1 + 756 147 146 1 + 757 141 142 1 + 758 141 143 1 + 759 143 142 1 + 760 137 138 1 + 761 137 139 1 + 762 139 138 1 + 763 133 134 1 + 764 133 135 1 + 765 135 134 1 + 766 129 130 1 + 767 129 131 1 + 768 131 130 1 + 769 125 126 1 + 770 125 127 1 + 771 127 126 1 + 772 121 122 1 + 773 121 123 1 + 774 123 122 1 + 775 117 118 1 + 776 117 119 1 + 777 119 118 1 + 778 113 114 1 + 779 113 115 1 + 780 115 114 1 + 781 109 110 1 + 782 109 111 1 + 783 111 110 1 + 784 105 106 1 + 785 105 107 1 + 786 107 106 1 + 787 101 102 1 + 788 101 103 1 + 789 103 102 1 + 790 97 98 1 + 791 97 99 1 + 792 99 98 1 + 793 93 94 1 + 794 93 95 1 + 795 95 94 1 + 796 89 90 1 + 797 89 91 1 + 798 91 90 1 + 799 85 86 1 + 800 85 87 1 + 801 87 86 1 + 802 81 82 1 + 803 81 83 1 + 804 83 82 1 + 805 77 78 1 + 806 77 79 1 + 807 79 78 1 + 808 73 74 1 + 809 73 75 1 + 810 75 74 1 + 811 69 70 1 + 812 69 71 1 + 813 71 70 1 + 814 65 66 1 + 815 65 67 1 + 816 67 66 1 + 817 61 62 1 + 818 61 63 1 + 819 63 62 1 + 820 57 58 1 + 821 57 59 1 + 822 59 58 1 + 823 53 54 1 + 824 53 55 1 + 825 55 54 1 + 826 49 50 1 + 827 49 51 1 + 828 51 50 1 + 829 45 46 1 + 830 45 47 1 + 831 47 46 1 + 832 41 42 1 + 833 41 43 1 + 834 43 42 1 + 835 37 38 1 + 836 37 39 1 + 837 39 38 1 + 838 33 34 1 + 839 33 35 1 + 840 35 34 1 + 841 29 30 1 + 842 29 31 1 + 843 31 30 1 + 844 25 26 1 + 845 25 27 1 + 846 27 26 1 + 847 21 22 1 + 848 21 23 1 + 849 23 22 1 + 850 17 18 1 + 851 17 19 1 + 852 19 18 1 + 853 13 14 1 + 854 13 15 1 + 855 15 14 1 + 856 9 10 1 + 857 9 11 1 + 858 11 10 1 + 859 5 6 1 + 860 5 7 1 + 861 7 6 1 + 862 1 2 1 + 863 1 3 1 + 864 3 2 1 +@<TRIPOS>SUBSTRUCTURE + 1 WAT 1 **** 0 **** **** + 2 WAT 5 **** 0 **** **** + 3 WAT 9 **** 0 **** **** + 4 WAT 13 **** 0 **** **** + 5 WAT 17 **** 0 **** **** + 6 WAT 21 **** 0 **** **** + 7 WAT 25 **** 0 **** **** + 8 WAT 29 **** 0 **** **** + 9 WAT 33 **** 0 **** **** + 10 WAT 37 **** 0 **** **** + 11 WAT 41 **** 0 **** **** + 12 WAT 45 **** 0 **** **** + 13 WAT 49 **** 0 **** **** + 14 WAT 53 **** 0 **** **** + 15 WAT 57 **** 0 **** **** + 16 WAT 61 **** 0 **** **** + 17 WAT 65 **** 0 **** **** + 18 WAT 69 **** 0 **** **** + 19 WAT 73 **** 0 **** **** + 20 WAT 77 **** 0 **** **** + 21 WAT 81 **** 0 **** **** + 22 WAT 85 **** 0 **** **** + 23 WAT 89 **** 0 **** **** + 24 WAT 93 **** 0 **** **** + 25 WAT 97 **** 0 **** **** + 26 WAT 101 **** 0 **** **** + 27 WAT 105 **** 0 **** **** + 28 WAT 109 **** 0 **** **** + 29 WAT 113 **** 0 **** **** + 30 WAT 117 **** 0 **** **** + 31 WAT 121 **** 0 **** **** + 32 WAT 125 **** 0 **** **** + 33 WAT 129 **** 0 **** **** + 34 WAT 133 **** 0 **** **** + 35 WAT 137 **** 0 **** **** + 36 WAT 141 **** 0 **** **** + 37 WAT 145 **** 0 **** **** + 38 WAT 149 **** 0 **** **** + 39 WAT 153 **** 0 **** **** + 40 WAT 157 **** 0 **** **** + 41 WAT 161 **** 0 **** **** + 42 WAT 165 **** 0 **** **** + 43 WAT 169 **** 0 **** **** + 44 WAT 173 **** 0 **** **** + 45 WAT 177 **** 0 **** **** + 46 WAT 181 **** 0 **** **** + 47 WAT 185 **** 0 **** **** + 48 WAT 189 **** 0 **** **** + 49 WAT 193 **** 0 **** **** + 50 WAT 197 **** 0 **** **** + 51 WAT 201 **** 0 **** **** + 52 WAT 205 **** 0 **** **** + 53 WAT 209 **** 0 **** **** + 54 WAT 213 **** 0 **** **** + 55 WAT 217 **** 0 **** **** + 56 WAT 221 **** 0 **** **** + 57 WAT 225 **** 0 **** **** + 58 WAT 229 **** 0 **** **** + 59 WAT 233 **** 0 **** **** + 60 WAT 237 **** 0 **** **** + 61 WAT 241 **** 0 **** **** + 62 WAT 245 **** 0 **** **** + 63 WAT 249 **** 0 **** **** + 64 WAT 253 **** 0 **** **** + 65 WAT 257 **** 0 **** **** + 66 WAT 261 **** 0 **** **** + 67 WAT 265 **** 0 **** **** + 68 WAT 269 **** 0 **** **** + 69 WAT 273 **** 0 **** **** + 70 WAT 277 **** 0 **** **** + 71 WAT 281 **** 0 **** **** + 72 WAT 285 **** 0 **** **** + 73 WAT 289 **** 0 **** **** + 74 WAT 293 **** 0 **** **** + 75 WAT 297 **** 0 **** **** + 76 WAT 301 **** 0 **** **** + 77 WAT 305 **** 0 **** **** + 78 WAT 309 **** 0 **** **** + 79 WAT 313 **** 0 **** **** + 80 WAT 317 **** 0 **** **** + 81 WAT 321 **** 0 **** **** + 82 WAT 325 **** 0 **** **** + 83 WAT 329 **** 0 **** **** + 84 WAT 333 **** 0 **** **** + 85 WAT 337 **** 0 **** **** + 86 WAT 341 **** 0 **** **** + 87 WAT 345 **** 0 **** **** + 88 WAT 349 **** 0 **** **** + 89 WAT 353 **** 0 **** **** + 90 WAT 357 **** 0 **** **** + 91 WAT 361 **** 0 **** **** + 92 WAT 365 **** 0 **** **** + 93 WAT 369 **** 0 **** **** + 94 WAT 373 **** 0 **** **** + 95 WAT 377 **** 0 **** **** + 96 WAT 381 **** 0 **** **** + 97 WAT 385 **** 0 **** **** + 98 WAT 389 **** 0 **** **** + 99 WAT 393 **** 0 **** **** + 100 WAT 397 **** 0 **** **** + 101 WAT 401 **** 0 **** **** + 102 WAT 405 **** 0 **** **** + 103 WAT 409 **** 0 **** **** + 104 WAT 413 **** 0 **** **** + 105 WAT 417 **** 0 **** **** + 106 WAT 421 **** 0 **** **** + 107 WAT 425 **** 0 **** **** + 108 WAT 429 **** 0 **** **** + 109 WAT 433 **** 0 **** **** + 110 WAT 437 **** 0 **** **** + 111 WAT 441 **** 0 **** **** + 112 WAT 445 **** 0 **** **** + 113 WAT 449 **** 0 **** **** + 114 WAT 453 **** 0 **** **** + 115 WAT 457 **** 0 **** **** + 116 WAT 461 **** 0 **** **** + 117 WAT 465 **** 0 **** **** + 118 WAT 469 **** 0 **** **** + 119 WAT 473 **** 0 **** **** + 120 WAT 477 **** 0 **** **** + 121 WAT 481 **** 0 **** **** + 122 WAT 485 **** 0 **** **** + 123 WAT 489 **** 0 **** **** + 124 WAT 493 **** 0 **** **** + 125 WAT 497 **** 0 **** **** + 126 WAT 501 **** 0 **** **** + 127 WAT 505 **** 0 **** **** + 128 WAT 509 **** 0 **** **** + 129 WAT 513 **** 0 **** **** + 130 WAT 517 **** 0 **** **** + 131 WAT 521 **** 0 **** **** + 132 WAT 525 **** 0 **** **** + 133 WAT 529 **** 0 **** **** + 134 WAT 533 **** 0 **** **** + 135 WAT 537 **** 0 **** **** + 136 WAT 541 **** 0 **** **** + 137 WAT 545 **** 0 **** **** + 138 WAT 549 **** 0 **** **** + 139 WAT 553 **** 0 **** **** + 140 WAT 557 **** 0 **** **** + 141 WAT 561 **** 0 **** **** + 142 WAT 565 **** 0 **** **** + 143 WAT 569 **** 0 **** **** + 144 WAT 573 **** 0 **** **** + 145 WAT 577 **** 0 **** **** + 146 WAT 581 **** 0 **** **** + 147 WAT 585 **** 0 **** **** + 148 WAT 589 **** 0 **** **** + 149 WAT 593 **** 0 **** **** + 150 WAT 597 **** 0 **** **** + 151 WAT 601 **** 0 **** **** + 152 WAT 605 **** 0 **** **** + 153 WAT 609 **** 0 **** **** + 154 WAT 613 **** 0 **** **** + 155 WAT 617 **** 0 **** **** + 156 WAT 621 **** 0 **** **** + 157 WAT 625 **** 0 **** **** + 158 WAT 629 **** 0 **** **** + 159 WAT 633 **** 0 **** **** + 160 WAT 637 **** 0 **** **** + 161 WAT 641 **** 0 **** **** + 162 WAT 645 **** 0 **** **** + 163 WAT 649 **** 0 **** **** + 164 WAT 653 **** 0 **** **** + 165 WAT 657 **** 0 **** **** + 166 WAT 661 **** 0 **** **** + 167 WAT 665 **** 0 **** **** + 168 WAT 669 **** 0 **** **** + 169 WAT 673 **** 0 **** **** + 170 WAT 677 **** 0 **** **** + 171 WAT 681 **** 0 **** **** + 172 WAT 685 **** 0 **** **** + 173 WAT 689 **** 0 **** **** + 174 WAT 693 **** 0 **** **** + 175 WAT 697 **** 0 **** **** + 176 WAT 701 **** 0 **** **** + 177 WAT 705 **** 0 **** **** + 178 WAT 709 **** 0 **** **** + 179 WAT 713 **** 0 **** **** + 180 WAT 717 **** 0 **** **** + 181 WAT 721 **** 0 **** **** + 182 WAT 725 **** 0 **** **** + 183 WAT 729 **** 0 **** **** + 184 WAT 733 **** 0 **** **** + 185 WAT 737 **** 0 **** **** + 186 WAT 741 **** 0 **** **** + 187 WAT 745 **** 0 **** **** + 188 WAT 749 **** 0 **** **** + 189 WAT 753 **** 0 **** **** + 190 WAT 757 **** 0 **** **** + 191 WAT 761 **** 0 **** **** + 192 WAT 765 **** 0 **** **** + 193 WAT 769 **** 0 **** **** + 194 WAT 773 **** 0 **** **** + 195 WAT 777 **** 0 **** **** + 196 WAT 781 **** 0 **** **** + 197 WAT 785 **** 0 **** **** + 198 WAT 789 **** 0 **** **** + 199 WAT 793 **** 0 **** **** + 200 WAT 797 **** 0 **** **** + 201 WAT 801 **** 0 **** **** + 202 WAT 805 **** 0 **** **** + 203 WAT 809 **** 0 **** **** + 204 WAT 813 **** 0 **** **** + 205 WAT 817 **** 0 **** **** + 206 WAT 821 **** 0 **** **** + 207 WAT 825 **** 0 **** **** + 208 WAT 829 **** 0 **** **** + 209 WAT 833 **** 0 **** **** + 210 WAT 837 **** 0 **** **** + 211 WAT 841 **** 0 **** **** + 212 WAT 845 **** 0 **** **** + 213 WAT 849 **** 0 **** **** + 214 WAT 853 **** 0 **** **** + 215 WAT 857 **** 0 **** **** + 216 WAT 861 **** 0 **** **** diff --git a/test/Test_CheckStructure/report.opcbox.dat.save b/test/Test_CheckStructure/report.opcbox.dat.save new file mode 100644 index 0000000000..d5e82244bf --- /dev/null +++ b/test/Test_CheckStructure/report.opcbox.dat.save @@ -0,0 +1,432 @@ +1 Warning: Atoms 2:WAT_1@H1 and 4:WAT_1@EPW are close (0.78) +1 Warning: Atoms 3:WAT_1@H2 and 4:WAT_1@EPW are close (0.78) +1 Warning: Atoms 6:WAT_2@H1 and 8:WAT_2@EPW are close (0.78) +1 Warning: Atoms 7:WAT_2@H2 and 8:WAT_2@EPW are close (0.78) +1 Warning: Atoms 10:WAT_3@H1 and 12:WAT_3@EPW are close (0.78) +1 Warning: Atoms 11:WAT_3@H2 and 12:WAT_3@EPW are close (0.78) +1 Warning: Atoms 14:WAT_4@H1 and 16:WAT_4@EPW are close (0.78) +1 Warning: Atoms 15:WAT_4@H2 and 16:WAT_4@EPW are close (0.78) +1 Warning: Atoms 18:WAT_5@H1 and 20:WAT_5@EPW are close (0.78) +1 Warning: Atoms 19:WAT_5@H2 and 20:WAT_5@EPW are close (0.78) +1 Warning: Atoms 22:WAT_6@H1 and 24:WAT_6@EPW are close (0.78) +1 Warning: Atoms 23:WAT_6@H2 and 24:WAT_6@EPW are close (0.78) +1 Warning: Atoms 26:WAT_7@H1 and 28:WAT_7@EPW are close (0.78) +1 Warning: Atoms 27:WAT_7@H2 and 28:WAT_7@EPW are close (0.78) +1 Warning: Atoms 30:WAT_8@H1 and 32:WAT_8@EPW are close (0.78) +1 Warning: Atoms 31:WAT_8@H2 and 32:WAT_8@EPW are close (0.78) +1 Warning: Atoms 34:WAT_9@H1 and 36:WAT_9@EPW are close (0.78) +1 Warning: Atoms 35:WAT_9@H2 and 36:WAT_9@EPW are close (0.78) +1 Warning: Atoms 38:WAT_10@H1 and 40:WAT_10@EPW are close (0.78) +1 Warning: Atoms 39:WAT_10@H2 and 40:WAT_10@EPW are close (0.78) +1 Warning: Atoms 42:WAT_11@H1 and 44:WAT_11@EPW are close (0.78) +1 Warning: Atoms 43:WAT_11@H2 and 44:WAT_11@EPW are close (0.78) +1 Warning: Atoms 46:WAT_12@H1 and 48:WAT_12@EPW are close (0.78) +1 Warning: Atoms 47:WAT_12@H2 and 48:WAT_12@EPW are close (0.78) +1 Warning: Atoms 50:WAT_13@H1 and 52:WAT_13@EPW are close (0.78) +1 Warning: Atoms 51:WAT_13@H2 and 52:WAT_13@EPW are close (0.78) +1 Warning: Atoms 54:WAT_14@H1 and 56:WAT_14@EPW are close (0.78) +1 Warning: Atoms 55:WAT_14@H2 and 56:WAT_14@EPW are close (0.78) +1 Warning: Atoms 58:WAT_15@H1 and 60:WAT_15@EPW are close (0.78) +1 Warning: Atoms 59:WAT_15@H2 and 60:WAT_15@EPW are close (0.78) +1 Warning: Atoms 62:WAT_16@H1 and 64:WAT_16@EPW are close (0.78) +1 Warning: Atoms 63:WAT_16@H2 and 64:WAT_16@EPW are close (0.78) +1 Warning: Atoms 66:WAT_17@H1 and 68:WAT_17@EPW are close (0.78) +1 Warning: Atoms 67:WAT_17@H2 and 68:WAT_17@EPW are close (0.78) +1 Warning: Atoms 70:WAT_18@H1 and 72:WAT_18@EPW are close (0.78) +1 Warning: Atoms 71:WAT_18@H2 and 72:WAT_18@EPW are close (0.78) +1 Warning: Atoms 74:WAT_19@H1 and 76:WAT_19@EPW are close (0.78) +1 Warning: Atoms 75:WAT_19@H2 and 76:WAT_19@EPW are close (0.78) +1 Warning: Atoms 78:WAT_20@H1 and 80:WAT_20@EPW are close (0.78) +1 Warning: Atoms 79:WAT_20@H2 and 80:WAT_20@EPW are close (0.78) +1 Warning: Atoms 82:WAT_21@H1 and 84:WAT_21@EPW are close (0.78) +1 Warning: Atoms 83:WAT_21@H2 and 84:WAT_21@EPW are close (0.78) +1 Warning: Atoms 86:WAT_22@H1 and 88:WAT_22@EPW are close (0.78) +1 Warning: Atoms 87:WAT_22@H2 and 88:WAT_22@EPW are close (0.78) +1 Warning: Atoms 90:WAT_23@H1 and 92:WAT_23@EPW are close (0.78) +1 Warning: Atoms 91:WAT_23@H2 and 92:WAT_23@EPW are close (0.78) +1 Warning: Atoms 94:WAT_24@H1 and 96:WAT_24@EPW are close (0.78) +1 Warning: Atoms 95:WAT_24@H2 and 96:WAT_24@EPW are close (0.78) +1 Warning: Atoms 98:WAT_25@H1 and 100:WAT_25@EPW are close (0.78) +1 Warning: Atoms 99:WAT_25@H2 and 100:WAT_25@EPW are close (0.78) +1 Warning: Atoms 102:WAT_26@H1 and 104:WAT_26@EPW are close (0.78) +1 Warning: Atoms 103:WAT_26@H2 and 104:WAT_26@EPW are close (0.78) +1 Warning: Atoms 106:WAT_27@H1 and 108:WAT_27@EPW are close (0.78) +1 Warning: Atoms 107:WAT_27@H2 and 108:WAT_27@EPW are close (0.78) +1 Warning: Atoms 110:WAT_28@H1 and 112:WAT_28@EPW are close (0.78) +1 Warning: Atoms 111:WAT_28@H2 and 112:WAT_28@EPW are close (0.78) +1 Warning: Atoms 114:WAT_29@H1 and 116:WAT_29@EPW are close (0.78) +1 Warning: Atoms 115:WAT_29@H2 and 116:WAT_29@EPW are close (0.78) +1 Warning: Atoms 118:WAT_30@H1 and 120:WAT_30@EPW are close (0.78) +1 Warning: Atoms 119:WAT_30@H2 and 120:WAT_30@EPW are close (0.78) +1 Warning: Atoms 122:WAT_31@H1 and 124:WAT_31@EPW are close (0.78) +1 Warning: Atoms 123:WAT_31@H2 and 124:WAT_31@EPW are close (0.78) +1 Warning: Atoms 126:WAT_32@H1 and 128:WAT_32@EPW are close (0.78) +1 Warning: Atoms 127:WAT_32@H2 and 128:WAT_32@EPW are close (0.78) +1 Warning: Atoms 130:WAT_33@H1 and 132:WAT_33@EPW are close (0.78) +1 Warning: Atoms 131:WAT_33@H2 and 132:WAT_33@EPW are close (0.78) +1 Warning: Atoms 134:WAT_34@H1 and 136:WAT_34@EPW are close (0.78) +1 Warning: Atoms 135:WAT_34@H2 and 136:WAT_34@EPW are close (0.78) +1 Warning: Atoms 138:WAT_35@H1 and 140:WAT_35@EPW are close (0.78) +1 Warning: Atoms 139:WAT_35@H2 and 140:WAT_35@EPW are close (0.78) +1 Warning: Atoms 142:WAT_36@H1 and 144:WAT_36@EPW are close (0.78) +1 Warning: Atoms 143:WAT_36@H2 and 144:WAT_36@EPW are close (0.78) +1 Warning: Atoms 146:WAT_37@H1 and 148:WAT_37@EPW are close (0.78) +1 Warning: Atoms 147:WAT_37@H2 and 148:WAT_37@EPW are close (0.78) +1 Warning: Atoms 150:WAT_38@H1 and 152:WAT_38@EPW are close (0.78) +1 Warning: Atoms 151:WAT_38@H2 and 152:WAT_38@EPW are close (0.78) +1 Warning: Atoms 154:WAT_39@H1 and 156:WAT_39@EPW are close (0.78) +1 Warning: Atoms 155:WAT_39@H2 and 156:WAT_39@EPW are close (0.78) +1 Warning: Atoms 158:WAT_40@H1 and 160:WAT_40@EPW are close (0.78) +1 Warning: Atoms 159:WAT_40@H2 and 160:WAT_40@EPW are close (0.78) +1 Warning: Atoms 162:WAT_41@H1 and 164:WAT_41@EPW are close (0.78) +1 Warning: Atoms 163:WAT_41@H2 and 164:WAT_41@EPW are close (0.78) +1 Warning: Atoms 166:WAT_42@H1 and 168:WAT_42@EPW are close (0.78) +1 Warning: Atoms 167:WAT_42@H2 and 168:WAT_42@EPW are close (0.78) +1 Warning: Atoms 170:WAT_43@H1 and 172:WAT_43@EPW are close (0.78) +1 Warning: Atoms 171:WAT_43@H2 and 172:WAT_43@EPW are close (0.78) +1 Warning: Atoms 174:WAT_44@H1 and 176:WAT_44@EPW are close (0.78) +1 Warning: Atoms 175:WAT_44@H2 and 176:WAT_44@EPW are close (0.78) +1 Warning: Atoms 178:WAT_45@H1 and 180:WAT_45@EPW are close (0.78) +1 Warning: Atoms 179:WAT_45@H2 and 180:WAT_45@EPW are close (0.78) +1 Warning: Atoms 182:WAT_46@H1 and 184:WAT_46@EPW are close (0.78) +1 Warning: Atoms 183:WAT_46@H2 and 184:WAT_46@EPW are close (0.78) +1 Warning: Atoms 186:WAT_47@H1 and 188:WAT_47@EPW are close (0.78) +1 Warning: Atoms 187:WAT_47@H2 and 188:WAT_47@EPW are close (0.78) +1 Warning: Atoms 190:WAT_48@H1 and 192:WAT_48@EPW are close (0.78) +1 Warning: Atoms 191:WAT_48@H2 and 192:WAT_48@EPW are close (0.78) +1 Warning: Atoms 194:WAT_49@H1 and 196:WAT_49@EPW are close (0.78) +1 Warning: Atoms 195:WAT_49@H2 and 196:WAT_49@EPW are close (0.78) +1 Warning: Atoms 198:WAT_50@H1 and 200:WAT_50@EPW are close (0.78) +1 Warning: Atoms 199:WAT_50@H2 and 200:WAT_50@EPW are close (0.78) +1 Warning: Atoms 202:WAT_51@H1 and 204:WAT_51@EPW are close (0.78) +1 Warning: Atoms 203:WAT_51@H2 and 204:WAT_51@EPW are close (0.78) +1 Warning: Atoms 206:WAT_52@H1 and 208:WAT_52@EPW are close (0.78) +1 Warning: Atoms 207:WAT_52@H2 and 208:WAT_52@EPW are close (0.78) +1 Warning: Atoms 210:WAT_53@H1 and 212:WAT_53@EPW are close (0.78) +1 Warning: Atoms 211:WAT_53@H2 and 212:WAT_53@EPW are close (0.78) +1 Warning: Atoms 214:WAT_54@H1 and 216:WAT_54@EPW are close (0.78) +1 Warning: Atoms 215:WAT_54@H2 and 216:WAT_54@EPW are close (0.78) +1 Warning: Atoms 218:WAT_55@H1 and 220:WAT_55@EPW are close (0.78) +1 Warning: Atoms 219:WAT_55@H2 and 220:WAT_55@EPW are close (0.78) +1 Warning: Atoms 222:WAT_56@H1 and 224:WAT_56@EPW are close (0.78) +1 Warning: Atoms 223:WAT_56@H2 and 224:WAT_56@EPW are close (0.78) +1 Warning: Atoms 226:WAT_57@H1 and 228:WAT_57@EPW are close (0.78) +1 Warning: Atoms 227:WAT_57@H2 and 228:WAT_57@EPW are close (0.78) +1 Warning: Atoms 230:WAT_58@H1 and 232:WAT_58@EPW are close (0.78) +1 Warning: Atoms 231:WAT_58@H2 and 232:WAT_58@EPW are close (0.78) +1 Warning: Atoms 234:WAT_59@H1 and 236:WAT_59@EPW are close (0.78) +1 Warning: Atoms 235:WAT_59@H2 and 236:WAT_59@EPW are close (0.78) +1 Warning: Atoms 238:WAT_60@H1 and 240:WAT_60@EPW are close (0.78) +1 Warning: Atoms 239:WAT_60@H2 and 240:WAT_60@EPW are close (0.78) +1 Warning: Atoms 242:WAT_61@H1 and 244:WAT_61@EPW are close (0.78) +1 Warning: Atoms 243:WAT_61@H2 and 244:WAT_61@EPW are close (0.78) +1 Warning: Atoms 246:WAT_62@H1 and 248:WAT_62@EPW are close (0.78) +1 Warning: Atoms 247:WAT_62@H2 and 248:WAT_62@EPW are close (0.78) +1 Warning: Atoms 250:WAT_63@H1 and 252:WAT_63@EPW are close (0.78) +1 Warning: Atoms 251:WAT_63@H2 and 252:WAT_63@EPW are close (0.78) +1 Warning: Atoms 254:WAT_64@H1 and 256:WAT_64@EPW are close (0.78) +1 Warning: Atoms 255:WAT_64@H2 and 256:WAT_64@EPW are close (0.78) +1 Warning: Atoms 258:WAT_65@H1 and 260:WAT_65@EPW are close (0.78) +1 Warning: Atoms 259:WAT_65@H2 and 260:WAT_65@EPW are close (0.78) +1 Warning: Atoms 262:WAT_66@H1 and 264:WAT_66@EPW are close (0.78) +1 Warning: Atoms 263:WAT_66@H2 and 264:WAT_66@EPW are close (0.78) +1 Warning: Atoms 266:WAT_67@H1 and 268:WAT_67@EPW are close (0.78) +1 Warning: Atoms 267:WAT_67@H2 and 268:WAT_67@EPW are close (0.78) +1 Warning: Atoms 270:WAT_68@H1 and 272:WAT_68@EPW are close (0.78) +1 Warning: Atoms 271:WAT_68@H2 and 272:WAT_68@EPW are close (0.78) +1 Warning: Atoms 274:WAT_69@H1 and 276:WAT_69@EPW are close (0.78) +1 Warning: Atoms 275:WAT_69@H2 and 276:WAT_69@EPW are close (0.78) +1 Warning: Atoms 278:WAT_70@H1 and 280:WAT_70@EPW are close (0.78) +1 Warning: Atoms 279:WAT_70@H2 and 280:WAT_70@EPW are close (0.78) +1 Warning: Atoms 282:WAT_71@H1 and 284:WAT_71@EPW are close (0.78) +1 Warning: Atoms 283:WAT_71@H2 and 284:WAT_71@EPW are close (0.78) +1 Warning: Atoms 286:WAT_72@H1 and 288:WAT_72@EPW are close (0.78) +1 Warning: Atoms 287:WAT_72@H2 and 288:WAT_72@EPW are close (0.78) +1 Warning: Atoms 290:WAT_73@H1 and 292:WAT_73@EPW are close (0.78) +1 Warning: Atoms 291:WAT_73@H2 and 292:WAT_73@EPW are close (0.78) +1 Warning: Atoms 294:WAT_74@H1 and 296:WAT_74@EPW are close (0.78) +1 Warning: Atoms 295:WAT_74@H2 and 296:WAT_74@EPW are close (0.78) +1 Warning: Atoms 298:WAT_75@H1 and 300:WAT_75@EPW are close (0.78) +1 Warning: Atoms 299:WAT_75@H2 and 300:WAT_75@EPW are close (0.78) +1 Warning: Atoms 302:WAT_76@H1 and 304:WAT_76@EPW are close (0.78) +1 Warning: Atoms 303:WAT_76@H2 and 304:WAT_76@EPW are close (0.78) +1 Warning: Atoms 306:WAT_77@H1 and 308:WAT_77@EPW are close (0.78) +1 Warning: Atoms 307:WAT_77@H2 and 308:WAT_77@EPW are close (0.78) +1 Warning: Atoms 310:WAT_78@H1 and 312:WAT_78@EPW are close (0.78) +1 Warning: Atoms 311:WAT_78@H2 and 312:WAT_78@EPW are close (0.78) +1 Warning: Atoms 314:WAT_79@H1 and 316:WAT_79@EPW are close (0.78) +1 Warning: Atoms 315:WAT_79@H2 and 316:WAT_79@EPW are close (0.78) +1 Warning: Atoms 318:WAT_80@H1 and 320:WAT_80@EPW are close (0.78) +1 Warning: Atoms 319:WAT_80@H2 and 320:WAT_80@EPW are close (0.78) +1 Warning: Atoms 322:WAT_81@H1 and 324:WAT_81@EPW are close (0.78) +1 Warning: Atoms 323:WAT_81@H2 and 324:WAT_81@EPW are close (0.78) +1 Warning: Atoms 326:WAT_82@H1 and 328:WAT_82@EPW are close (0.78) +1 Warning: Atoms 327:WAT_82@H2 and 328:WAT_82@EPW are close (0.78) +1 Warning: Atoms 330:WAT_83@H1 and 332:WAT_83@EPW are close (0.78) +1 Warning: Atoms 331:WAT_83@H2 and 332:WAT_83@EPW are close (0.78) +1 Warning: Atoms 334:WAT_84@H1 and 336:WAT_84@EPW are close (0.78) +1 Warning: Atoms 335:WAT_84@H2 and 336:WAT_84@EPW are close (0.78) +1 Warning: Atoms 338:WAT_85@H1 and 340:WAT_85@EPW are close (0.78) +1 Warning: Atoms 339:WAT_85@H2 and 340:WAT_85@EPW are close (0.78) +1 Warning: Atoms 342:WAT_86@H1 and 344:WAT_86@EPW are close (0.78) +1 Warning: Atoms 343:WAT_86@H2 and 344:WAT_86@EPW are close (0.78) +1 Warning: Atoms 346:WAT_87@H1 and 348:WAT_87@EPW are close (0.78) +1 Warning: Atoms 347:WAT_87@H2 and 348:WAT_87@EPW are close (0.78) +1 Warning: Atoms 350:WAT_88@H1 and 352:WAT_88@EPW are close (0.78) +1 Warning: Atoms 351:WAT_88@H2 and 352:WAT_88@EPW are close (0.78) +1 Warning: Atoms 354:WAT_89@H1 and 356:WAT_89@EPW are close (0.78) +1 Warning: Atoms 355:WAT_89@H2 and 356:WAT_89@EPW are close (0.78) +1 Warning: Atoms 358:WAT_90@H1 and 360:WAT_90@EPW are close (0.78) +1 Warning: Atoms 359:WAT_90@H2 and 360:WAT_90@EPW are close (0.78) +1 Warning: Atoms 362:WAT_91@H1 and 364:WAT_91@EPW are close (0.78) +1 Warning: Atoms 363:WAT_91@H2 and 364:WAT_91@EPW are close (0.78) +1 Warning: Atoms 366:WAT_92@H1 and 368:WAT_92@EPW are close (0.78) +1 Warning: Atoms 367:WAT_92@H2 and 368:WAT_92@EPW are close (0.78) +1 Warning: Atoms 370:WAT_93@H1 and 372:WAT_93@EPW are close (0.78) +1 Warning: Atoms 371:WAT_93@H2 and 372:WAT_93@EPW are close (0.78) +1 Warning: Atoms 374:WAT_94@H1 and 376:WAT_94@EPW are close (0.78) +1 Warning: Atoms 375:WAT_94@H2 and 376:WAT_94@EPW are close (0.78) +1 Warning: Atoms 378:WAT_95@H1 and 380:WAT_95@EPW are close (0.78) +1 Warning: Atoms 379:WAT_95@H2 and 380:WAT_95@EPW are close (0.78) +1 Warning: Atoms 382:WAT_96@H1 and 384:WAT_96@EPW are close (0.78) +1 Warning: Atoms 383:WAT_96@H2 and 384:WAT_96@EPW are close (0.78) +1 Warning: Atoms 386:WAT_97@H1 and 388:WAT_97@EPW are close (0.78) +1 Warning: Atoms 387:WAT_97@H2 and 388:WAT_97@EPW are close (0.78) +1 Warning: Atoms 390:WAT_98@H1 and 392:WAT_98@EPW are close (0.78) +1 Warning: Atoms 391:WAT_98@H2 and 392:WAT_98@EPW are close (0.78) +1 Warning: Atoms 394:WAT_99@H1 and 396:WAT_99@EPW are close (0.78) +1 Warning: Atoms 395:WAT_99@H2 and 396:WAT_99@EPW are close (0.78) +1 Warning: Atoms 398:WAT_100@H1 and 400:WAT_100@EPW are close (0.78) +1 Warning: Atoms 399:WAT_100@H2 and 400:WAT_100@EPW are close (0.78) +1 Warning: Atoms 402:WAT_101@H1 and 404:WAT_101@EPW are close (0.78) +1 Warning: Atoms 403:WAT_101@H2 and 404:WAT_101@EPW are close (0.78) +1 Warning: Atoms 406:WAT_102@H1 and 408:WAT_102@EPW are close (0.78) +1 Warning: Atoms 407:WAT_102@H2 and 408:WAT_102@EPW are close (0.78) +1 Warning: Atoms 410:WAT_103@H1 and 412:WAT_103@EPW are close (0.78) +1 Warning: Atoms 411:WAT_103@H2 and 412:WAT_103@EPW are close (0.78) +1 Warning: Atoms 414:WAT_104@H1 and 416:WAT_104@EPW are close (0.78) +1 Warning: Atoms 415:WAT_104@H2 and 416:WAT_104@EPW are close (0.78) +1 Warning: Atoms 418:WAT_105@H1 and 420:WAT_105@EPW are close (0.78) +1 Warning: Atoms 419:WAT_105@H2 and 420:WAT_105@EPW are close (0.78) +1 Warning: Atoms 422:WAT_106@H1 and 424:WAT_106@EPW are close (0.78) +1 Warning: Atoms 423:WAT_106@H2 and 424:WAT_106@EPW are close (0.78) +1 Warning: Atoms 426:WAT_107@H1 and 428:WAT_107@EPW are close (0.78) +1 Warning: Atoms 427:WAT_107@H2 and 428:WAT_107@EPW are close (0.78) +1 Warning: Atoms 430:WAT_108@H1 and 432:WAT_108@EPW are close (0.78) +1 Warning: Atoms 431:WAT_108@H2 and 432:WAT_108@EPW are close (0.78) +1 Warning: Atoms 434:WAT_109@H1 and 436:WAT_109@EPW are close (0.78) +1 Warning: Atoms 435:WAT_109@H2 and 436:WAT_109@EPW are close (0.78) +1 Warning: Atoms 438:WAT_110@H1 and 440:WAT_110@EPW are close (0.78) +1 Warning: Atoms 439:WAT_110@H2 and 440:WAT_110@EPW are close (0.78) +1 Warning: Atoms 442:WAT_111@H1 and 444:WAT_111@EPW are close (0.78) +1 Warning: Atoms 443:WAT_111@H2 and 444:WAT_111@EPW are close (0.78) +1 Warning: Atoms 446:WAT_112@H1 and 448:WAT_112@EPW are close (0.78) +1 Warning: Atoms 447:WAT_112@H2 and 448:WAT_112@EPW are close (0.78) +1 Warning: Atoms 450:WAT_113@H1 and 452:WAT_113@EPW are close (0.78) +1 Warning: Atoms 451:WAT_113@H2 and 452:WAT_113@EPW are close (0.78) +1 Warning: Atoms 454:WAT_114@H1 and 456:WAT_114@EPW are close (0.78) +1 Warning: Atoms 455:WAT_114@H2 and 456:WAT_114@EPW are close (0.78) +1 Warning: Atoms 458:WAT_115@H1 and 460:WAT_115@EPW are close (0.78) +1 Warning: Atoms 459:WAT_115@H2 and 460:WAT_115@EPW are close (0.78) +1 Warning: Atoms 462:WAT_116@H1 and 464:WAT_116@EPW are close (0.78) +1 Warning: Atoms 463:WAT_116@H2 and 464:WAT_116@EPW are close (0.78) +1 Warning: Atoms 466:WAT_117@H1 and 468:WAT_117@EPW are close (0.78) +1 Warning: Atoms 467:WAT_117@H2 and 468:WAT_117@EPW are close (0.78) +1 Warning: Atoms 470:WAT_118@H1 and 472:WAT_118@EPW are close (0.78) +1 Warning: Atoms 471:WAT_118@H2 and 472:WAT_118@EPW are close (0.78) +1 Warning: Atoms 474:WAT_119@H1 and 476:WAT_119@EPW are close (0.78) +1 Warning: Atoms 475:WAT_119@H2 and 476:WAT_119@EPW are close (0.78) +1 Warning: Atoms 478:WAT_120@H1 and 480:WAT_120@EPW are close (0.78) +1 Warning: Atoms 479:WAT_120@H2 and 480:WAT_120@EPW are close (0.78) +1 Warning: Atoms 482:WAT_121@H1 and 484:WAT_121@EPW are close (0.78) +1 Warning: Atoms 483:WAT_121@H2 and 484:WAT_121@EPW are close (0.78) +1 Warning: Atoms 486:WAT_122@H1 and 488:WAT_122@EPW are close (0.78) +1 Warning: Atoms 487:WAT_122@H2 and 488:WAT_122@EPW are close (0.78) +1 Warning: Atoms 490:WAT_123@H1 and 492:WAT_123@EPW are close (0.78) +1 Warning: Atoms 491:WAT_123@H2 and 492:WAT_123@EPW are close (0.78) +1 Warning: Atoms 494:WAT_124@H1 and 496:WAT_124@EPW are close (0.78) +1 Warning: Atoms 495:WAT_124@H2 and 496:WAT_124@EPW are close (0.78) +1 Warning: Atoms 498:WAT_125@H1 and 500:WAT_125@EPW are close (0.78) +1 Warning: Atoms 499:WAT_125@H2 and 500:WAT_125@EPW are close (0.78) +1 Warning: Atoms 502:WAT_126@H1 and 504:WAT_126@EPW are close (0.78) +1 Warning: Atoms 503:WAT_126@H2 and 504:WAT_126@EPW are close (0.78) +1 Warning: Atoms 506:WAT_127@H1 and 508:WAT_127@EPW are close (0.78) +1 Warning: Atoms 507:WAT_127@H2 and 508:WAT_127@EPW are close (0.78) +1 Warning: Atoms 510:WAT_128@H1 and 512:WAT_128@EPW are close (0.78) +1 Warning: Atoms 511:WAT_128@H2 and 512:WAT_128@EPW are close (0.78) +1 Warning: Atoms 514:WAT_129@H1 and 516:WAT_129@EPW are close (0.78) +1 Warning: Atoms 515:WAT_129@H2 and 516:WAT_129@EPW are close (0.78) +1 Warning: Atoms 518:WAT_130@H1 and 520:WAT_130@EPW are close (0.78) +1 Warning: Atoms 519:WAT_130@H2 and 520:WAT_130@EPW are close (0.78) +1 Warning: Atoms 522:WAT_131@H1 and 524:WAT_131@EPW are close (0.78) +1 Warning: Atoms 523:WAT_131@H2 and 524:WAT_131@EPW are close (0.78) +1 Warning: Atoms 526:WAT_132@H1 and 528:WAT_132@EPW are close (0.78) +1 Warning: Atoms 527:WAT_132@H2 and 528:WAT_132@EPW are close (0.78) +1 Warning: Atoms 530:WAT_133@H1 and 532:WAT_133@EPW are close (0.78) +1 Warning: Atoms 531:WAT_133@H2 and 532:WAT_133@EPW are close (0.78) +1 Warning: Atoms 534:WAT_134@H1 and 536:WAT_134@EPW are close (0.78) +1 Warning: Atoms 535:WAT_134@H2 and 536:WAT_134@EPW are close (0.78) +1 Warning: Atoms 538:WAT_135@H1 and 540:WAT_135@EPW are close (0.78) +1 Warning: Atoms 539:WAT_135@H2 and 540:WAT_135@EPW are close (0.78) +1 Warning: Atoms 542:WAT_136@H1 and 544:WAT_136@EPW are close (0.78) +1 Warning: Atoms 543:WAT_136@H2 and 544:WAT_136@EPW are close (0.78) +1 Warning: Atoms 546:WAT_137@H1 and 548:WAT_137@EPW are close (0.78) +1 Warning: Atoms 547:WAT_137@H2 and 548:WAT_137@EPW are close (0.78) +1 Warning: Atoms 550:WAT_138@H1 and 552:WAT_138@EPW are close (0.78) +1 Warning: Atoms 551:WAT_138@H2 and 552:WAT_138@EPW are close (0.78) +1 Warning: Atoms 554:WAT_139@H1 and 556:WAT_139@EPW are close (0.78) +1 Warning: Atoms 555:WAT_139@H2 and 556:WAT_139@EPW are close (0.78) +1 Warning: Atoms 558:WAT_140@H1 and 560:WAT_140@EPW are close (0.78) +1 Warning: Atoms 559:WAT_140@H2 and 560:WAT_140@EPW are close (0.78) +1 Warning: Atoms 562:WAT_141@H1 and 564:WAT_141@EPW are close (0.78) +1 Warning: Atoms 563:WAT_141@H2 and 564:WAT_141@EPW are close (0.78) +1 Warning: Atoms 566:WAT_142@H1 and 568:WAT_142@EPW are close (0.78) +1 Warning: Atoms 567:WAT_142@H2 and 568:WAT_142@EPW are close (0.78) +1 Warning: Atoms 570:WAT_143@H1 and 572:WAT_143@EPW are close (0.78) +1 Warning: Atoms 571:WAT_143@H2 and 572:WAT_143@EPW are close (0.78) +1 Warning: Atoms 574:WAT_144@H1 and 576:WAT_144@EPW are close (0.78) +1 Warning: Atoms 575:WAT_144@H2 and 576:WAT_144@EPW are close (0.78) +1 Warning: Atoms 578:WAT_145@H1 and 580:WAT_145@EPW are close (0.78) +1 Warning: Atoms 579:WAT_145@H2 and 580:WAT_145@EPW are close (0.78) +1 Warning: Atoms 582:WAT_146@H1 and 584:WAT_146@EPW are close (0.78) +1 Warning: Atoms 583:WAT_146@H2 and 584:WAT_146@EPW are close (0.78) +1 Warning: Atoms 586:WAT_147@H1 and 588:WAT_147@EPW are close (0.78) +1 Warning: Atoms 587:WAT_147@H2 and 588:WAT_147@EPW are close (0.78) +1 Warning: Atoms 590:WAT_148@H1 and 592:WAT_148@EPW are close (0.78) +1 Warning: Atoms 591:WAT_148@H2 and 592:WAT_148@EPW are close (0.78) +1 Warning: Atoms 594:WAT_149@H1 and 596:WAT_149@EPW are close (0.78) +1 Warning: Atoms 595:WAT_149@H2 and 596:WAT_149@EPW are close (0.78) +1 Warning: Atoms 598:WAT_150@H1 and 600:WAT_150@EPW are close (0.78) +1 Warning: Atoms 599:WAT_150@H2 and 600:WAT_150@EPW are close (0.78) +1 Warning: Atoms 602:WAT_151@H1 and 604:WAT_151@EPW are close (0.78) +1 Warning: Atoms 603:WAT_151@H2 and 604:WAT_151@EPW are close (0.78) +1 Warning: Atoms 606:WAT_152@H1 and 608:WAT_152@EPW are close (0.78) +1 Warning: Atoms 607:WAT_152@H2 and 608:WAT_152@EPW are close (0.78) +1 Warning: Atoms 610:WAT_153@H1 and 612:WAT_153@EPW are close (0.78) +1 Warning: Atoms 611:WAT_153@H2 and 612:WAT_153@EPW are close (0.78) +1 Warning: Atoms 614:WAT_154@H1 and 616:WAT_154@EPW are close (0.78) +1 Warning: Atoms 615:WAT_154@H2 and 616:WAT_154@EPW are close (0.78) +1 Warning: Atoms 618:WAT_155@H1 and 620:WAT_155@EPW are close (0.78) +1 Warning: Atoms 619:WAT_155@H2 and 620:WAT_155@EPW are close (0.78) +1 Warning: Atoms 622:WAT_156@H1 and 624:WAT_156@EPW are close (0.78) +1 Warning: Atoms 623:WAT_156@H2 and 624:WAT_156@EPW are close (0.78) +1 Warning: Atoms 626:WAT_157@H1 and 628:WAT_157@EPW are close (0.78) +1 Warning: Atoms 627:WAT_157@H2 and 628:WAT_157@EPW are close (0.78) +1 Warning: Atoms 630:WAT_158@H1 and 632:WAT_158@EPW are close (0.78) +1 Warning: Atoms 631:WAT_158@H2 and 632:WAT_158@EPW are close (0.78) +1 Warning: Atoms 634:WAT_159@H1 and 636:WAT_159@EPW are close (0.78) +1 Warning: Atoms 635:WAT_159@H2 and 636:WAT_159@EPW are close (0.78) +1 Warning: Atoms 638:WAT_160@H1 and 640:WAT_160@EPW are close (0.78) +1 Warning: Atoms 639:WAT_160@H2 and 640:WAT_160@EPW are close (0.78) +1 Warning: Atoms 642:WAT_161@H1 and 644:WAT_161@EPW are close (0.78) +1 Warning: Atoms 643:WAT_161@H2 and 644:WAT_161@EPW are close (0.78) +1 Warning: Atoms 646:WAT_162@H1 and 648:WAT_162@EPW are close (0.78) +1 Warning: Atoms 647:WAT_162@H2 and 648:WAT_162@EPW are close (0.78) +1 Warning: Atoms 650:WAT_163@H1 and 652:WAT_163@EPW are close (0.78) +1 Warning: Atoms 651:WAT_163@H2 and 652:WAT_163@EPW are close (0.78) +1 Warning: Atoms 654:WAT_164@H1 and 656:WAT_164@EPW are close (0.78) +1 Warning: Atoms 655:WAT_164@H2 and 656:WAT_164@EPW are close (0.78) +1 Warning: Atoms 658:WAT_165@H1 and 660:WAT_165@EPW are close (0.78) +1 Warning: Atoms 659:WAT_165@H2 and 660:WAT_165@EPW are close (0.78) +1 Warning: Atoms 662:WAT_166@H1 and 664:WAT_166@EPW are close (0.78) +1 Warning: Atoms 663:WAT_166@H2 and 664:WAT_166@EPW are close (0.78) +1 Warning: Atoms 666:WAT_167@H1 and 668:WAT_167@EPW are close (0.78) +1 Warning: Atoms 667:WAT_167@H2 and 668:WAT_167@EPW are close (0.78) +1 Warning: Atoms 670:WAT_168@H1 and 672:WAT_168@EPW are close (0.78) +1 Warning: Atoms 671:WAT_168@H2 and 672:WAT_168@EPW are close (0.78) +1 Warning: Atoms 674:WAT_169@H1 and 676:WAT_169@EPW are close (0.78) +1 Warning: Atoms 675:WAT_169@H2 and 676:WAT_169@EPW are close (0.78) +1 Warning: Atoms 678:WAT_170@H1 and 680:WAT_170@EPW are close (0.78) +1 Warning: Atoms 679:WAT_170@H2 and 680:WAT_170@EPW are close (0.78) +1 Warning: Atoms 682:WAT_171@H1 and 684:WAT_171@EPW are close (0.78) +1 Warning: Atoms 683:WAT_171@H2 and 684:WAT_171@EPW are close (0.78) +1 Warning: Atoms 686:WAT_172@H1 and 688:WAT_172@EPW are close (0.78) +1 Warning: Atoms 687:WAT_172@H2 and 688:WAT_172@EPW are close (0.78) +1 Warning: Atoms 690:WAT_173@H1 and 692:WAT_173@EPW are close (0.78) +1 Warning: Atoms 691:WAT_173@H2 and 692:WAT_173@EPW are close (0.78) +1 Warning: Atoms 694:WAT_174@H1 and 696:WAT_174@EPW are close (0.78) +1 Warning: Atoms 695:WAT_174@H2 and 696:WAT_174@EPW are close (0.78) +1 Warning: Atoms 698:WAT_175@H1 and 700:WAT_175@EPW are close (0.78) +1 Warning: Atoms 699:WAT_175@H2 and 700:WAT_175@EPW are close (0.78) +1 Warning: Atoms 702:WAT_176@H1 and 704:WAT_176@EPW are close (0.78) +1 Warning: Atoms 703:WAT_176@H2 and 704:WAT_176@EPW are close (0.78) +1 Warning: Atoms 706:WAT_177@H1 and 708:WAT_177@EPW are close (0.78) +1 Warning: Atoms 707:WAT_177@H2 and 708:WAT_177@EPW are close (0.78) +1 Warning: Atoms 710:WAT_178@H1 and 712:WAT_178@EPW are close (0.78) +1 Warning: Atoms 711:WAT_178@H2 and 712:WAT_178@EPW are close (0.78) +1 Warning: Atoms 714:WAT_179@H1 and 716:WAT_179@EPW are close (0.78) +1 Warning: Atoms 715:WAT_179@H2 and 716:WAT_179@EPW are close (0.78) +1 Warning: Atoms 718:WAT_180@H1 and 720:WAT_180@EPW are close (0.78) +1 Warning: Atoms 719:WAT_180@H2 and 720:WAT_180@EPW are close (0.78) +1 Warning: Atoms 722:WAT_181@H1 and 724:WAT_181@EPW are close (0.78) +1 Warning: Atoms 723:WAT_181@H2 and 724:WAT_181@EPW are close (0.78) +1 Warning: Atoms 726:WAT_182@H1 and 728:WAT_182@EPW are close (0.78) +1 Warning: Atoms 727:WAT_182@H2 and 728:WAT_182@EPW are close (0.78) +1 Warning: Atoms 730:WAT_183@H1 and 732:WAT_183@EPW are close (0.78) +1 Warning: Atoms 731:WAT_183@H2 and 732:WAT_183@EPW are close (0.78) +1 Warning: Atoms 734:WAT_184@H1 and 736:WAT_184@EPW are close (0.78) +1 Warning: Atoms 735:WAT_184@H2 and 736:WAT_184@EPW are close (0.78) +1 Warning: Atoms 738:WAT_185@H1 and 740:WAT_185@EPW are close (0.78) +1 Warning: Atoms 739:WAT_185@H2 and 740:WAT_185@EPW are close (0.78) +1 Warning: Atoms 742:WAT_186@H1 and 744:WAT_186@EPW are close (0.78) +1 Warning: Atoms 743:WAT_186@H2 and 744:WAT_186@EPW are close (0.78) +1 Warning: Atoms 746:WAT_187@H1 and 748:WAT_187@EPW are close (0.78) +1 Warning: Atoms 747:WAT_187@H2 and 748:WAT_187@EPW are close (0.78) +1 Warning: Atoms 750:WAT_188@H1 and 752:WAT_188@EPW are close (0.78) +1 Warning: Atoms 751:WAT_188@H2 and 752:WAT_188@EPW are close (0.78) +1 Warning: Atoms 754:WAT_189@H1 and 756:WAT_189@EPW are close (0.78) +1 Warning: Atoms 755:WAT_189@H2 and 756:WAT_189@EPW are close (0.78) +1 Warning: Atoms 758:WAT_190@H1 and 760:WAT_190@EPW are close (0.78) +1 Warning: Atoms 759:WAT_190@H2 and 760:WAT_190@EPW are close (0.78) +1 Warning: Atoms 762:WAT_191@H1 and 764:WAT_191@EPW are close (0.78) +1 Warning: Atoms 763:WAT_191@H2 and 764:WAT_191@EPW are close (0.78) +1 Warning: Atoms 766:WAT_192@H1 and 768:WAT_192@EPW are close (0.78) +1 Warning: Atoms 767:WAT_192@H2 and 768:WAT_192@EPW are close (0.78) +1 Warning: Atoms 770:WAT_193@H1 and 772:WAT_193@EPW are close (0.78) +1 Warning: Atoms 771:WAT_193@H2 and 772:WAT_193@EPW are close (0.78) +1 Warning: Atoms 774:WAT_194@H1 and 776:WAT_194@EPW are close (0.78) +1 Warning: Atoms 775:WAT_194@H2 and 776:WAT_194@EPW are close (0.78) +1 Warning: Atoms 778:WAT_195@H1 and 780:WAT_195@EPW are close (0.78) +1 Warning: Atoms 779:WAT_195@H2 and 780:WAT_195@EPW are close (0.78) +1 Warning: Atoms 782:WAT_196@H1 and 784:WAT_196@EPW are close (0.78) +1 Warning: Atoms 783:WAT_196@H2 and 784:WAT_196@EPW are close (0.78) +1 Warning: Atoms 786:WAT_197@H1 and 788:WAT_197@EPW are close (0.78) +1 Warning: Atoms 787:WAT_197@H2 and 788:WAT_197@EPW are close (0.78) +1 Warning: Atoms 790:WAT_198@H1 and 792:WAT_198@EPW are close (0.78) +1 Warning: Atoms 791:WAT_198@H2 and 792:WAT_198@EPW are close (0.78) +1 Warning: Atoms 794:WAT_199@H1 and 796:WAT_199@EPW are close (0.78) +1 Warning: Atoms 795:WAT_199@H2 and 796:WAT_199@EPW are close (0.78) +1 Warning: Atoms 798:WAT_200@H1 and 800:WAT_200@EPW are close (0.78) +1 Warning: Atoms 799:WAT_200@H2 and 800:WAT_200@EPW are close (0.78) +1 Warning: Atoms 802:WAT_201@H1 and 804:WAT_201@EPW are close (0.78) +1 Warning: Atoms 803:WAT_201@H2 and 804:WAT_201@EPW are close (0.78) +1 Warning: Atoms 806:WAT_202@H1 and 808:WAT_202@EPW are close (0.78) +1 Warning: Atoms 807:WAT_202@H2 and 808:WAT_202@EPW are close (0.78) +1 Warning: Atoms 810:WAT_203@H1 and 812:WAT_203@EPW are close (0.78) +1 Warning: Atoms 811:WAT_203@H2 and 812:WAT_203@EPW are close (0.78) +1 Warning: Atoms 814:WAT_204@H1 and 816:WAT_204@EPW are close (0.78) +1 Warning: Atoms 815:WAT_204@H2 and 816:WAT_204@EPW are close (0.78) +1 Warning: Atoms 818:WAT_205@H1 and 820:WAT_205@EPW are close (0.78) +1 Warning: Atoms 819:WAT_205@H2 and 820:WAT_205@EPW are close (0.78) +1 Warning: Atoms 822:WAT_206@H1 and 824:WAT_206@EPW are close (0.78) +1 Warning: Atoms 823:WAT_206@H2 and 824:WAT_206@EPW are close (0.78) +1 Warning: Atoms 826:WAT_207@H1 and 828:WAT_207@EPW are close (0.78) +1 Warning: Atoms 827:WAT_207@H2 and 828:WAT_207@EPW are close (0.78) +1 Warning: Atoms 830:WAT_208@H1 and 832:WAT_208@EPW are close (0.78) +1 Warning: Atoms 831:WAT_208@H2 and 832:WAT_208@EPW are close (0.78) +1 Warning: Atoms 834:WAT_209@H1 and 836:WAT_209@EPW are close (0.78) +1 Warning: Atoms 835:WAT_209@H2 and 836:WAT_209@EPW are close (0.78) +1 Warning: Atoms 838:WAT_210@H1 and 840:WAT_210@EPW are close (0.78) +1 Warning: Atoms 839:WAT_210@H2 and 840:WAT_210@EPW are close (0.78) +1 Warning: Atoms 842:WAT_211@H1 and 844:WAT_211@EPW are close (0.78) +1 Warning: Atoms 843:WAT_211@H2 and 844:WAT_211@EPW are close (0.78) +1 Warning: Atoms 846:WAT_212@H1 and 848:WAT_212@EPW are close (0.78) +1 Warning: Atoms 847:WAT_212@H2 and 848:WAT_212@EPW are close (0.78) +1 Warning: Atoms 850:WAT_213@H1 and 852:WAT_213@EPW are close (0.78) +1 Warning: Atoms 851:WAT_213@H2 and 852:WAT_213@EPW are close (0.78) +1 Warning: Atoms 854:WAT_214@H1 and 856:WAT_214@EPW are close (0.78) +1 Warning: Atoms 855:WAT_214@H2 and 856:WAT_214@EPW are close (0.78) +1 Warning: Atoms 858:WAT_215@H1 and 860:WAT_215@EPW are close (0.78) +1 Warning: Atoms 859:WAT_215@H2 and 860:WAT_215@EPW are close (0.78) +1 Warning: Atoms 862:WAT_216@H1 and 864:WAT_216@EPW are close (0.78) +1 Warning: Atoms 863:WAT_216@H2 and 864:WAT_216@EPW are close (0.78) diff --git a/test/Test_Closest/closest.tz2.truncoct.parm7.save b/test/Test_Closest/closest.tz2.truncoct.parm7.save index 11e260e59a..3f20f4e3c0 100644 --- a/test/Test_Closest/closest.tz2.truncoct.parm7.save +++ b/test/Test_Closest/closest.tz2.truncoct.parm7.save @@ -1,4 +1,4 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 02/04/15 10:24:01 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:40:13 %FLAG TITLE %FORMAT(20a4) @@ -1404,3 +1404,6 @@ modified Bondi radii (mbondi) 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_CombineCrd/FabI.NDP.TCS.parm7.save b/test/Test_CombineCrd/FabI.NDP.TCS.parm7.save new file mode 100644 index 0000000000..1db5bced0c --- /dev/null +++ b/test/Test_CombineCrd/FabI.NDP.TCS.parm7.save @@ -0,0 +1,20967 @@ +%VERSION VERSION_STAMP = V0001.000 DATE = 07/01/24 13:42:35 +%FLAG TITLE +%FORMAT(20a4) +combinedParm +%FLAG POINTERS +%FORMAT(10I8) + 4143 18 2060 2125 4682 2878 8776 7180 0 0 + 22768 270 2125 2878 7180 73 149 66 50 0 + 0 0 0 0 0 0 0 2 70 0 + 0 +%FLAG ATOM_NAME +%FORMAT(20a4) +N H1 H2 H3 CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C O N +H CA HA2 HA3 C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ HZ +CE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 +HD21HD22HD23C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA2 HA3 +C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 +HZ2 HZ3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 +NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 +HD11HD12HD13C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21 +HD22HD23C O N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12 +HD13C O N H CA HA CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA +HA2 HA3 C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22 +HD23C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23 +C O N H CA HA CB HB2 HB3 OG HG C O N H CA HA CB HB2 HB3 +CG OD1 ND2 HD21HD22C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 +CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB2 HB3 OG HG C O +N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13C O N +H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 +HE1 CZ OH HH CE2 HE2 CD2 HD2 C O N H CA HA2 HA3 C O N H CA +HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13C O N H CA HA +CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE +HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB1 HB2 HB3 C O N H +CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C O N H CA HA CB +HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 CG +HG2 HG3 CD HD2 HD3 NE HE CZ NH1 HH11HH12NH2 HH21HH22C O N H CA HA +CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA2 HA3 C O N H +CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 +OE2 C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23 +C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG +CD1 HD1 CE1 HE1 CZ HZ CE2 HE2 CD2 HD2 C O N H CA HA CB HB CG2 HG21 +HG22HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ OH +HH CE2 HE2 CD2 HD2 C O N H CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22 +HG23C O N H CA HA2 HA3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 +CD OE1 NE2 HE21HE22C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ +HZ CE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 +CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB2 HB3 CG OD1 OD2 C +O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 NE HE CZ NH1 HH11HH12 +NH2 HH21HH22C O N H CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C +O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA +CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H +CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA +HA CB HB2 HB3 SG HG C O N H CA HA CB HB1 HB2 HB3 C O N H +CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA CB HB2 HB3 +CG CD1 HD1 CE1 HE1 CZ HZ CE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 +CG OD1 ND2 HD21HD22C O N CD HD2 HD3 CG HG2 HG3 CB HB2 HB3 CA HA C +O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB1 HB2 HB3 C +O N H CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA +HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N CD HD2 HD3 +CG HG2 HG3 CB HB2 HB3 CA HA C O N H CA HA CB HB2 HB3 SG HG C +O N H CA HA CB HB2 HB3 CG OD1 OD2 C O N H CA HA CB HB CG1 +HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB CG2 HG21HG22HG23CG1 +HG12HG13CD1 HD11HD12HD13C O N H CA HA CB HB2 HB3 OG HG C O N +H CA HA CB HB2 HB3 CG OD1 OD2 C O N H CA HA CB HB2 HB3 CG HG2 +HG3 CD OE1 NE2 HE21HE22C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 +OE2 C O N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13 +C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 +HZ2 HZ3 C O N H CA HA CB HB2 HB3 CG OD1 OD2 C O N H CA HA +CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA CB +HB2 HB3 CG CD1 HD1 CE1 HE1 CZ HZ CE2 HE2 CD2 HD2 C O N H CA HA CB +HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 CG HG2 +HG3 CD OE1 OE2 C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 +HD21HD22HD23C O N H CA HA2 HA3 C O N H CA HA CB HB2 HB3 CG +HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB +CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 CG CD1 HD1 +NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA HA CB HB2 +HB3 CG OD1 OD2 C O N H CA HA2 HA3 C O N H CA HA CB HB2 HB3 +CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA CB HB2 HB3 CG +OD1 OD2 C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB +CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13C O N H CA HA CB HB CG1 +HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 CG ND1 CE1 HE1 +NE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 OG HG C O N H CA +HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13C O N H CA HA +CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ HZ +CE2 HE2 CD2 HD2 C O N H CA HA CB HB1 HB2 HB3 C O N CD HD2 HD3 +CG HG2 HG3 CB HB2 HB3 CA HA C O N H CA HA CB HB2 HB3 CG HG2 HG3 +CD HD2 HD3 NE HE CZ NH1 HH11HH12NH2 HH21HH22C O N H CA HA CB HB2 +HB3 CG OD1 OD2 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 NE2 HE21 +HE22C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23 +C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA +HA2 HA3 C O N H CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H +CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ HZ CE2 HE2 CD2 HD2 C O N H +CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13C O N H CA +HA CB HB2 HB3 CG OD1 OD2 C O N H CA HA CB HB2 HB3 SG HG C O +N H CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA +CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG HG2 HG3 +CD HD2 HD3 NE HE CZ NH1 HH11HH12NH2 HH21HH22C O N H CA HA CB HB2 +HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA2 HA3 C O N H CA HA +CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ HZ CE2 HE2 CD2 HD2 C O N H CA HA +CB HB2 HB3 OG HG C O N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13 +CD1 HD11HD12HD13C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA +CB HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 +CG OD1 OD2 C O N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11 +HD12HD13C O N H CA HA CB HB2 HB3 OG HG C O N H CA HA CB +HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ OH HH +CE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 OG HG C O N H CA +HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ HZ CE2 HE2 CD2 HD2 C O N H CA +HA CB HB1 HB2 HB3 C O N H CA HA CB HB1 HB2 HB3 C O N H CA +HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA +CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE +HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 +OE2 C O N H CA HA2 HA3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 +CD HD2 HD3 NE HE CZ NH1 HH11HH12NH2 HH21HH22C O N H CA HA CB HB2 +HB3 OG HG C O N H CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 +C O N H CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C O N +H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C +O N H CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H CA HA CB +HB2 HB3 CG HG2 HG3 CD HD2 HD3 NE HE CZ NH1 HH11HH12NH2 HH21HH22C O N +H CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H CA HA CB HB1 HB2 +HB3 C O N H CA HA CB HB2 HB3 OG HG C O N H CA HA CB HB2 +HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C O N H CA HA CB HB CG1 HG11HG12 +HG13CG2 HG21HG22HG23C O N H CA HA CB HB1 HB2 HB3 C O N H CA +HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA +CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG CD1 HD1 +CE1 HE1 CZ OH HH CE2 HE2 CD2 HD2 C O N H CA HA CB HB CG2 HG21HG22 +HG23CG1 HG12HG13CD1 HD11HD12HD13C O N H CA HA2 HA3 C O N H CA +HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 +C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 +HZ2 HZ3 C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 +HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C O N CD HD2 HD3 CG HG2 HG3 CB HB2 +HB3 CA HA C O N H CA HA CB HB2 HB3 OG HG C O N H CA HA +CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ OH HH CE2 HE2 CD2 HD2 C O N H CA +HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H CA HA CB HB CG2 HG21HG22 +HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 +C O N H CA HA2 HA3 C O N H CA HA CB HB CG1 HG11HG12HG13CG2 +HG21HG22HG23C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB +HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA +HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 OG HG C O N H +CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA +HA CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA CB HB1 HB2 HB3 +C O N H CA HA CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA +CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 CG +HG2 HG3 CD HD2 HD3 NE HE CZ NH1 HH11HH12NH2 HH21HH22C O N H CA HA +CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ OH HH CE2 HE2 CD2 HD2 C O N H CA +HA CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA CB HB1 HB2 HB3 C +O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O +N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 CG HG CD1 +HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA2 HA3 C O N H CA HA +CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA CB HB2 HB3 CG OD1 +OD2 C O N H CA HA2 HA3 C O N H CA HA CB HB CG2 HG21HG22HG23 +CG1 HG12HG13CD1 HD11HD12HD13C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD +HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB CG1 HG11HG12 +HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C +O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB CG1 HG11HG12 +HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 OG HG C O N H +CA HA CB HB1 HB2 HB3 C O N H CA HA2 HA3 C O N CD HD2 HD3 CG +HG2 HG3 CB HB2 HB3 CA HA C O N H CA HA CB HB CG2 HG21HG22HG23CG1 +HG12HG13CD1 HD11HD12HD13C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 +HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB CG2 HG21HG22HG23 +OG1 HG1 C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22 +HD23C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB1 HB2 +HB3 C O N H CA HA CB HB2 HB3 OG HG C O N H CA HA2 HA3 C +O N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13C O +N H CA HA CB HB2 HB3 OG HG C O N H CA HA CB HB2 HB3 CG OD1 +ND2 HD21HD22C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ HZ CE2 +HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 +HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 +CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB2 HB3 CG HG2 HG3 SD +CE HE1 HE2 HE3 C O N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 +HD21HD22HD23C O N H CA HA CB HB2 HB3 CG OD1 OD2 C O N H CA +HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ OH HH CE2 HE2 CD2 HD2 C O N H +CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H CA HA CB HB1 HB2 HB3 +C O N H CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C O N +H CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB +HB2 HB3 OG HG C O N CD HD2 HD3 CG HG2 HG3 CB HB2 HB3 CA HA C O +N H CA HA CB HB2 HB3 CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N +H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C +O N H CA HA CB HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 +HZ3 C O N H CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H CA +HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 +CG OD1 OD2 C O N H CA HA CB HB CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11 +HD12HD13C O N H CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C +O N H CA HA CB HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA +CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA2 HA3 C O N +H CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H CA HA CB HB CG2 +HG21HG22HG23OG1 HG1 C O N H CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22 +HG23C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB2 HB3 +CG CD1 HD1 CE1 HE1 CZ HZ CE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 +CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA CB HB2 HB3 SG +HG C O N H CA HA CB HB2 HB3 OG HG C O N H CA HA CB HB2 +HB3 CG OD1 OD2 C O N H CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 +HE3 C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA CB HB CG2 +HG21HG22HG23OG1 HG1 C O N H CA HA2 HA3 C O N H CA HA CB HB +CG2 HG21HG22HG23CG1 HG12HG13CD1 HD11HD12HD13C O N H CA HA CB HB CG2 +HG21HG22HG23OG1 HG1 C O N H CA HA2 HA3 C O N H CA HA CB HB2 +HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA CB HB CG1 HG11HG12HG13CG2 +HG21HG22HG23C O N H CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C +O N H CA HA CB HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C O N H +CA HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 +HB3 CG OD1 OD2 C O N H CA HA CB HB1 HB2 HB3 C O N H CA HA2 +HA3 C O N H CA HA CB HB2 HB3 CG CD1 HD1 CE1 HE1 CZ OH HH CE2 HE2 +CD2 HD2 C O N H CA HA CB HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C +O N H CA HA CB HB2 HB3 SG HG C O N H CA HA CB HB CG1 HG11 +HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 OG HG C O N +H CA HA CB HB2 HB3 CG HG2 HG3 SD CE HE1 HE2 HE3 C O N H CA HA2 +HA3 C O N H CA HA CB HB2 HB3 CG OD1 ND2 HD21HD22C O N H CA +HA CB HB CG1 HG11HG12HG13CG2 HG21HG22HG23C O N H CA HA CB HB2 HB3 +CG HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA CB HB2 HB3 CG +HG CD1 HD11HD12HD13CD2 HD21HD22HD23C O N H CA HA CB HB2 HB3 CG HG2 +HG3 CD OE1 OE2 C O N H CA HA CB HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 +HD2 C O N H CA HA CB HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C O +N H CA HA CB HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C O N H CA +HA CB HB2 HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C O N H CA HA CB HB2 +HB3 CG ND1 CE1 HE1 NE2 HE2 CD2 HD2 C O N H CA HA CB HB2 HB3 CG ND1 +CE1 HE1 NE2 HE2 CD2 HD2 C O OXT P1 O1 O2 O3 C1 C2 O4 C3 O5 C4 O6 +C5 N1 C6 N2 C7 C8 N3 N4 C9 N5 C10 O7 P2 O8 O9 O10 C11 C12 O11 C13 +O12 C14 O13 C15 N6 C16 C17 C18 O14 N7 C19 C20 C21 H51 H52 H53 H54 H55 H56 H57 +H58 H60 H64 H65 H67 H73 H74 H75 H76 H77 H78 H79 H80 H92 H86 H87 H90 H89 H81 C1 +C2 C3 C4 C5 C6 O1 O2 C7 C8 C9 C10 C11 C12 CL2 CL3 CL1 H18 H19 H20 H21 +H22 H23 H24 +%FLAG CHARGE +%FORMAT(5E16.8) + 2.90099016E+00 3.61530432E+00 3.61530432E+00 3.61530432E+00 4.02712830E-01 + 2.03360868E+00 1.57622895E+00 2.27778750E-01 2.27778750E-01 6.08624820E-01 + 5.32091160E-01 5.32091160E-01 -5.05486602E+00 -6.21380430E-01 1.08787131E+00 + 1.08787131E+00 1.08787131E+00 1.11575143E+01 -1.04104000E+01 -7.57501011E+00 + 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.37335200E-02 1.78214094E+00 + -6.25024890E-01 5.37557850E-01 5.37557850E-01 2.15023140E-01 -2.28872088E+00 + 2.42356590E+00 -3.10507992E+00 2.60578890E+00 -1.95343056E+00 2.36343231E+00 + -3.10507992E+00 2.60578890E+00 -2.28872088E+00 2.42356590E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 + -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 -3.32556975E+00 + 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 + 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 + 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 + 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 + -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 + 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -6.33953817E+00 + 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 6.59647260E-01 + 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 -8.72848170E-01 + 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 2.06823105E+00 + -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 1.33769904E+01 + -1.07402236E+01 -7.57501011E+00 4.95464337E+00 -1.08787131E+00 1.58351787E+00 + 2.37436569E+00 3.40757010E-01 -5.83842492E+00 1.60720686E+00 1.60720686E+00 + 1.60720686E+00 -7.83558900E-01 4.30046280E-01 4.30046280E-01 -1.20267180E+00 + 3.38934780E-01 3.38934780E-01 3.38934780E-01 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 -2.00809746E+00 + 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 1.82223000E+00 + 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 3.40757010E-01 + -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 -7.83558900E-01 + 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 3.38934780E-01 + 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -7.08847470E-01 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 + 1.16987166E+00 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 + 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 + 8.32759110E-01 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 + 1.82223000E+00 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.53735270E-01 + 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 -1.19283176E+01 + 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 1.45231731E+00 + 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 7.64607708E+00 + 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 + 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 + 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 + -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 + 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 + 4.95464337E+00 -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 + 6.41424960E-01 -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 + 3.40757010E-01 -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 + -7.83558900E-01 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 + 3.38934780E-01 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 + 1.09880469E+00 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -2.55112200E-02 1.59627348E+00 -2.76978960E-01 5.37557850E-01 + 5.37557850E-01 -2.00445300E-02 -3.47317038E+00 3.09596877E+00 -4.26584043E+00 + 3.01761288E+00 5.87851398E+00 -1.01662212E+01 7.27434216E+00 -4.26584043E+00 + 3.01761288E+00 -3.47317038E+00 3.09596877E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.08787131E+00 + 1.58351787E+00 2.37436569E+00 3.40757010E-01 -5.83842492E+00 1.60720686E+00 + 1.60720686E+00 1.60720686E+00 -7.83558900E-01 4.30046280E-01 4.30046280E-01 + -1.20267180E+00 3.38934780E-01 3.38934780E-01 3.38934780E-01 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 + -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 + 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 + 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 + 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.31868510E-01 1.60356240E+00 6.23202660E-01 4.39157430E-01 4.39157430E-01 + 3.28001400E-02 8.01781200E-01 8.01781200E-01 -4.98744351E+00 -9.76715280E-01 + 1.24640532E+00 1.24640532E+00 1.24640532E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -1.05871563E+00 2.47823280E+00 -1.34845020E-01 + 6.68758410E-01 6.68758410E-01 3.40392564E+00 -9.89835336E+00 2.97934605E+00 + 2.61490005E+00 -5.09313285E+00 6.08442597E+00 -4.02166161E+00 3.39299226E+00 + 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.80522051E+00 + 2.84267880E+00 -1.27556100E-02 5.95869210E-01 5.95869210E-01 7.10669700E-01 + 5.19335550E-01 5.19335550E-01 8.85603780E-01 1.25187201E+00 1.25187201E+00 + -9.64870785E+00 6.29762688E+00 1.47163295E+01 -1.57203782E+01 8.15994594E+00 + 8.15994594E+00 -1.57203782E+01 8.15994594E+00 8.15994594E+00 1.33769904E+01 + -1.07402236E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 + 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 + -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 + 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 + 7.23425310E-01 2.01356415E+00 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 + 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 1.46762404E+01 -1.49204192E+01 + -1.49204192E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.37335200E-02 + 1.78214094E+00 -6.25024890E-01 5.37557850E-01 5.37557850E-01 2.15023140E-01 + -2.28872088E+00 2.42356590E+00 -3.10507992E+00 2.60578890E+00 -1.95343056E+00 + 2.36343231E+00 -3.10507992E+00 2.60578890E+00 -2.28872088E+00 2.42356590E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 + 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 + 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -2.55112200E-02 1.59627348E+00 + -2.76978960E-01 5.37557850E-01 5.37557850E-01 -2.00445300E-02 -3.47317038E+00 + 3.09596877E+00 -4.26584043E+00 3.01761288E+00 5.87851398E+00 -1.01662212E+01 + 7.27434216E+00 -4.26584043E+00 3.01761288E+00 -3.47317038E+00 3.09596877E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 + 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -5.64891300E-02 1.54889550E+00 -6.56002800E-02 + 3.11601330E-01 3.11601330E-01 -1.17533835E+00 6.41424960E-01 6.41424960E-01 + 1.26663207E+01 -1.10900918E+01 -1.71417176E+01 7.74629973E+00 7.74629973E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.37335200E-02 + 1.78214094E+00 -6.25024890E-01 5.37557850E-01 5.37557850E-01 2.15023140E-01 + -2.28872088E+00 2.42356590E+00 -3.10507992E+00 2.60578890E+00 -1.95343056E+00 + 2.36343231E+00 -3.10507992E+00 2.60578890E+00 -2.28872088E+00 2.42356590E+00 + 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 + 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 + 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 + -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 + 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -9.40817349E+00 + 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 + -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 + -1.06035564E+01 -6.33953817E+00 5.00566581E+00 -4.80522051E+00 2.84267880E+00 + -1.27556100E-02 5.95869210E-01 5.95869210E-01 7.10669700E-01 5.19335550E-01 + 5.19335550E-01 8.85603780E-01 1.25187201E+00 1.25187201E+00 -9.64870785E+00 + 6.29762688E+00 1.47163295E+01 -1.57203782E+01 8.15994594E+00 8.15994594E+00 + -1.57203782E+01 8.15994594E+00 8.15994594E+00 1.33769904E+01 -1.07402236E+01 + -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 + -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 + -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 + 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 + -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 + -1.06035564E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 + -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 + 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 + 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 + 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 3.88134990E-01 + 2.04818652E+00 -2.24316513E+00 2.02631976E+00 2.02631976E+00 -5.68353537E+00 + 3.52237059E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 + 7.23425310E-01 2.01356415E+00 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 + 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 1.46762404E+01 -1.49204192E+01 + -1.49204192E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 + -4.37335200E-02 1.78214094E+00 -6.25024890E-01 5.37557850E-01 5.37557850E-01 + 2.15023140E-01 -2.28872088E+00 2.42356590E+00 -3.10507992E+00 2.60578890E+00 + -1.95343056E+00 2.36343231E+00 -3.10507992E+00 2.60578890E+00 -2.28872088E+00 + 2.42356590E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 1.45231731E+00 + 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 7.64607708E+00 + 1.08841798E+01 -1.03484442E+01 -4.64304204E+00 3.49868160E-01 7.12491930E-01 + 7.12491930E-01 3.44401470E-01 3.88134990E-01 3.88134990E-01 -1.27556100E-01 + 4.61024190E-01 4.61024190E-01 -4.84713180E-01 1.16804943E+00 1.07438681E+01 + -1.04741780E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 + 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 + 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 + -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 + -1.03484442E+01 -4.64304204E+00 3.49868160E-01 7.12491930E-01 7.12491930E-01 + 3.44401470E-01 3.88134990E-01 3.88134990E-01 -1.27556100E-01 4.61024190E-01 + 4.61024190E-01 -4.84713180E-01 1.16804943E+00 1.07438681E+01 -1.04741780E+01 + -7.57501011E+00 4.95464337E+00 3.88134990E-01 2.04818652E+00 -2.24316513E+00 + 2.02631976E+00 2.02631976E+00 -5.68353537E+00 3.52237059E+00 1.08841798E+01 + -1.03484442E+01 -9.40817349E+00 5.35006728E+00 6.94269630E-01 1.60356240E+00 + -5.52135690E-01 -2.22312060E-01 -2.22312060E-01 1.45669066E+01 -1.46033512E+01 + -1.46033512E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 + -1.59445125E+00 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 + 1.44138393E+00 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 3.40757010E-01 + -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 -7.83558900E-01 + 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 3.38934780E-01 + 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 + -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 + 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 + -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -5.64891300E-02 1.54889550E+00 + -6.56002800E-02 3.11601330E-01 3.11601330E-01 -1.17533835E+00 6.41424960E-01 + 6.41424960E-01 1.26663207E+01 -1.10900918E+01 -1.71417176E+01 7.74629973E+00 + 7.74629973E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 + 7.23425310E-01 2.01356415E+00 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 + 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 1.46762404E+01 -1.49204192E+01 + -1.49204192E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 + -1.08787131E+00 1.58351787E+00 2.37436569E+00 3.40757010E-01 -5.83842492E+00 + 1.60720686E+00 1.60720686E+00 1.60720686E+00 -7.83558900E-01 4.30046280E-01 + 4.30046280E-01 -1.20267180E+00 3.38934780E-01 3.38934780E-01 3.38934780E-01 + 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 + 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 + 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 + -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 + 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -9.40817349E+00 + 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 + -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 + -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.37335200E-02 1.78214094E+00 -6.25024890E-01 + 5.37557850E-01 5.37557850E-01 2.15023140E-01 -2.28872088E+00 2.42356590E+00 + -3.10507992E+00 2.60578890E+00 -1.95343056E+00 2.36343231E+00 -3.10507992E+00 + 2.60578890E+00 -2.28872088E+00 2.42356590E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 + -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 + -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 + 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 + -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 + -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 + 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 + 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 + 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 + -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 + 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 + 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 -5.41202310E-01 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 -5.81655816E+00 + 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -5.01113250E-01 2.04636429E+00 -9.11115000E-02 + 6.17735970E-01 6.17735970E-01 -2.57845545E+00 -2.98481274E+00 3.75743826E+00 + -6.22838214E+00 6.21744876E+00 2.51467740E+00 -4.73962023E+00 2.86454556E+00 + -2.06640882E+00 2.58209991E+00 -3.59343756E+00 2.63676681E+00 -4.34966301E+00 + 3.09779100E+00 2.26503189E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 + 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 + -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 + 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 6.94269630E-01 + 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 -2.22312060E-01 1.45669066E+01 + -1.46033512E+01 -1.46033512E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 + 4.95464337E+00 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 + 1.09880469E+00 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 3.40757010E-01 + -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 -7.83558900E-01 + 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 3.38934780E-01 + 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -1.59445125E+00 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 + 1.44138393E+00 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.05871563E+00 2.47823280E+00 -1.34845020E-01 6.68758410E-01 + 6.68758410E-01 3.40392564E+00 -9.89835336E+00 2.97934605E+00 2.61490005E+00 + -5.09313285E+00 6.08442597E+00 -4.02166161E+00 3.39299226E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.53735270E-01 1.53613989E+00 + 3.85766091E+00 6.41424960E-01 6.41424960E-01 -1.19283176E+01 7.79003325E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.08787131E+00 + 1.58351787E+00 2.37436569E+00 3.40757010E-01 -5.83842492E+00 1.60720686E+00 + 1.60720686E+00 1.60720686E+00 -7.83558900E-01 4.30046280E-01 4.30046280E-01 + -1.20267180E+00 3.38934780E-01 3.38934780E-01 3.38934780E-01 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.37335200E-02 1.78214094E+00 + -6.25024890E-01 5.37557850E-01 5.37557850E-01 2.15023140E-01 -2.28872088E+00 + 2.42356590E+00 -3.10507992E+00 2.60578890E+00 -1.95343056E+00 2.36343231E+00 + -3.10507992E+00 2.60578890E+00 -2.28872088E+00 2.42356590E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -4.64304204E+00 3.49868160E-01 7.12491930E-01 7.12491930E-01 + 3.44401470E-01 3.88134990E-01 3.88134990E-01 -1.27556100E-01 4.61024190E-01 + 4.61024190E-01 -4.84713180E-01 1.16804943E+00 1.07438681E+01 -1.04741780E+01 + -6.33953817E+00 5.00566581E+00 -4.80522051E+00 2.84267880E+00 -1.27556100E-02 + 5.95869210E-01 5.95869210E-01 7.10669700E-01 5.19335550E-01 5.19335550E-01 + 8.85603780E-01 1.25187201E+00 1.25187201E+00 -9.64870785E+00 6.29762688E+00 + 1.47163295E+01 -1.57203782E+01 8.15994594E+00 8.15994594E+00 -1.57203782E+01 + 8.15994594E+00 8.15994594E+00 1.33769904E+01 -1.07402236E+01 -9.40817349E+00 + 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 + -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -5.64891300E-02 1.54889550E+00 + -6.56002800E-02 3.11601330E-01 3.11601330E-01 -1.17533835E+00 6.41424960E-01 + 6.41424960E-01 1.26663207E+01 -1.10900918E+01 -1.71417176E+01 7.74629973E+00 + 7.74629973E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 + 2.01356415E+00 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 + -7.74447750E-01 -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 + 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 + 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 + 1.45231731E+00 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 + 7.64607708E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.37335200E-02 1.78214094E+00 -6.25024890E-01 5.37557850E-01 5.37557850E-01 + 2.15023140E-01 -2.28872088E+00 2.42356590E+00 -3.10507992E+00 2.60578890E+00 + -1.95343056E+00 2.36343231E+00 -3.10507992E+00 2.60578890E+00 -2.28872088E+00 + 2.42356590E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -1.08787131E+00 1.58351787E+00 2.37436569E+00 3.40757010E-01 -5.83842492E+00 + 1.60720686E+00 1.60720686E+00 1.60720686E+00 -7.83558900E-01 4.30046280E-01 + 4.30046280E-01 -1.20267180E+00 3.38934780E-01 3.38934780E-01 3.38934780E-01 + 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 6.94269630E-01 + 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 -2.22312060E-01 1.45669066E+01 + -1.46033512E+01 -1.46033512E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 + 4.95464337E+00 3.88134990E-01 2.04818652E+00 -2.24316513E+00 2.02631976E+00 + 2.02631976E+00 -5.68353537E+00 3.52237059E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 + -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 1.83498561E+00 + 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 1.16987166E+00 + 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 -1.03484442E+01 + -6.33953817E+00 5.00566581E+00 -4.80522051E+00 2.84267880E+00 -1.27556100E-02 + 5.95869210E-01 5.95869210E-01 7.10669700E-01 5.19335550E-01 5.19335550E-01 + 8.85603780E-01 1.25187201E+00 1.25187201E+00 -9.64870785E+00 6.29762688E+00 + 1.47163295E+01 -1.57203782E+01 8.15994594E+00 8.15994594E+00 -1.57203782E+01 + 8.15994594E+00 8.15994594E+00 1.33769904E+01 -1.07402236E+01 -9.40817349E+00 + 5.35006728E+00 7.23425310E-01 2.01356415E+00 1.02044880E+00 -3.15245790E-01 + -3.15245790E-01 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 1.46762404E+01 + -1.49204192E+01 -1.49204192E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 + 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.37335200E-02 1.78214094E+00 + -6.25024890E-01 5.37557850E-01 5.37557850E-01 2.15023140E-01 -2.28872088E+00 + 2.42356590E+00 -3.10507992E+00 2.60578890E+00 -1.95343056E+00 2.36343231E+00 + -3.10507992E+00 2.60578890E+00 -2.28872088E+00 2.42356590E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.53735270E-01 1.53613989E+00 + 3.85766091E+00 6.41424960E-01 6.41424960E-01 -1.19283176E+01 7.79003325E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.08787131E+00 + 1.58351787E+00 2.37436569E+00 3.40757010E-01 -5.83842492E+00 1.60720686E+00 + 1.60720686E+00 1.60720686E+00 -7.83558900E-01 4.30046280E-01 4.30046280E-01 + -1.20267180E+00 3.38934780E-01 3.38934780E-01 3.38934780E-01 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.05871563E+00 2.47823280E+00 + -1.34845020E-01 6.68758410E-01 6.68758410E-01 3.40392564E+00 -9.89835336E+00 + 2.97934605E+00 2.61490005E+00 -5.09313285E+00 6.08442597E+00 -4.02166161E+00 + 3.39299226E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 + 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 -2.22312060E-01 + 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 -1.06035564E+01 + -7.57501011E+00 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 + 3.40757010E-01 -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 + -7.83558900E-01 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 + 3.38934780E-01 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 + 6.41424960E-01 -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 -3.32556975E+00 + 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -2.55112200E-02 1.59627348E+00 -2.76978960E-01 + 5.37557850E-01 5.37557850E-01 -2.00445300E-02 -3.47317038E+00 3.09596877E+00 + -4.26584043E+00 3.01761288E+00 5.87851398E+00 -1.01662212E+01 7.27434216E+00 + -4.26584043E+00 3.01761288E+00 -3.47317038E+00 3.09596877E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.53735270E-01 1.53613989E+00 + 3.85766091E+00 6.41424960E-01 6.41424960E-01 -1.19283176E+01 7.79003325E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.37335200E-02 + 1.78214094E+00 -6.25024890E-01 5.37557850E-01 5.37557850E-01 2.15023140E-01 + -2.28872088E+00 2.42356590E+00 -3.10507992E+00 2.60578890E+00 -1.95343056E+00 + 2.36343231E+00 -3.10507992E+00 2.60578890E+00 -2.28872088E+00 2.42356590E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 + 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 + -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 + -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 + 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 + 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 + 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -9.40817349E+00 5.35006728E+00 + 7.23425310E-01 2.01356415E+00 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 + 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 1.46762404E+01 -1.49204192E+01 + -1.49204192E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 + -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 + -6.33953817E+00 5.00566581E+00 -4.80522051E+00 2.84267880E+00 -1.27556100E-02 + 5.95869210E-01 5.95869210E-01 7.10669700E-01 5.19335550E-01 5.19335550E-01 + 8.85603780E-01 1.25187201E+00 1.25187201E+00 -9.64870785E+00 6.29762688E+00 + 1.47163295E+01 -1.57203782E+01 8.15994594E+00 8.15994594E+00 -1.57203782E+01 + 8.15994594E+00 8.15994594E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 + 4.95464337E+00 -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 + 6.41424960E-01 -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.31868510E-01 1.60356240E+00 6.23202660E-01 + 4.39157430E-01 4.39157430E-01 3.28001400E-02 8.01781200E-01 8.01781200E-01 + -4.98744351E+00 -9.76715280E-01 1.24640532E+00 1.24640532E+00 1.24640532E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.31868510E-01 + 1.60356240E+00 6.23202660E-01 4.39157430E-01 4.39157430E-01 3.28001400E-02 + 8.01781200E-01 8.01781200E-01 -4.98744351E+00 -9.76715280E-01 1.24640532E+00 + 1.24640532E+00 1.24640532E+00 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 + 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 6.59647260E-01 + 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 -8.72848170E-01 + 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 2.06823105E+00 + -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 1.33769904E+01 + -1.07402236E+01 -7.57501011E+00 4.95464337E+00 2.60578890E-01 1.90969704E+00 + -3.71917143E+00 1.45231731E+00 1.45231731E+00 1.29924999E+01 -1.08076461E+01 + -1.67481159E+01 7.64607708E+00 7.64607708E+00 1.08841798E+01 -1.03484442E+01 + -6.33953817E+00 5.00566581E+00 -4.80522051E+00 2.84267880E+00 -1.27556100E-02 + 5.95869210E-01 5.95869210E-01 7.10669700E-01 5.19335550E-01 5.19335550E-01 + 8.85603780E-01 1.25187201E+00 1.25187201E+00 -9.64870785E+00 6.29762688E+00 + 1.47163295E+01 -1.57203782E+01 8.15994594E+00 8.15994594E+00 -1.57203782E+01 + 8.15994594E+00 8.15994594E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 + 4.95464337E+00 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 + 1.45231731E+00 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 + 7.64607708E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 + -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.31868510E-01 1.60356240E+00 6.23202660E-01 4.39157430E-01 + 4.39157430E-01 3.28001400E-02 8.01781200E-01 8.01781200E-01 -4.98744351E+00 + -9.76715280E-01 1.24640532E+00 1.24640532E+00 1.24640532E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 + 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 + 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 + -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 1.83498561E+00 + 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 1.16987166E+00 + 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -2.55112200E-02 1.59627348E+00 -2.76978960E-01 + 5.37557850E-01 5.37557850E-01 -2.00445300E-02 -3.47317038E+00 3.09596877E+00 + -4.26584043E+00 3.01761288E+00 5.87851398E+00 -1.01662212E+01 7.27434216E+00 + -4.26584043E+00 3.01761288E+00 -3.47317038E+00 3.09596877E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.08787131E+00 1.58351787E+00 + 2.37436569E+00 3.40757010E-01 -5.83842492E+00 1.60720686E+00 1.60720686E+00 + 1.60720686E+00 -7.83558900E-01 4.30046280E-01 4.30046280E-01 -1.20267180E+00 + 3.38934780E-01 3.38934780E-01 3.38934780E-01 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 + 2.01356415E+00 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 + -7.74447750E-01 -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 + 9.77808618E+00 -1.06035564E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 + 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 + 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 + -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 + 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 + 4.95464337E+00 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 + 1.09880469E+00 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.31868510E-01 1.60356240E+00 6.23202660E-01 4.39157430E-01 + 4.39157430E-01 3.28001400E-02 8.01781200E-01 8.01781200E-01 -4.98744351E+00 + -9.76715280E-01 1.24640532E+00 1.24640532E+00 1.24640532E+00 1.08841798E+01 + -1.03484442E+01 -4.64304204E+00 3.49868160E-01 7.12491930E-01 7.12491930E-01 + 3.44401470E-01 3.88134990E-01 3.88134990E-01 -1.27556100E-01 4.61024190E-01 + 4.61024190E-01 -4.84713180E-01 1.16804943E+00 1.07438681E+01 -1.04741780E+01 + -7.57501011E+00 4.95464337E+00 -4.53735270E-01 1.53613989E+00 3.85766091E+00 + 6.41424960E-01 6.41424960E-01 -1.19283176E+01 7.79003325E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -2.55112200E-02 1.59627348E+00 + -2.76978960E-01 5.37557850E-01 5.37557850E-01 -2.00445300E-02 -3.47317038E+00 + 3.09596877E+00 -4.26584043E+00 3.01761288E+00 5.87851398E+00 -1.01662212E+01 + 7.27434216E+00 -4.26584043E+00 3.01761288E+00 -3.47317038E+00 3.09596877E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 2.60578890E-01 + 1.90969704E+00 -3.71917143E+00 1.45231731E+00 1.45231731E+00 1.29924999E+01 + -1.08076461E+01 -1.67481159E+01 7.64607708E+00 7.64607708E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 1.83498561E+00 + 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 1.16987166E+00 + 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.31868510E-01 1.60356240E+00 6.23202660E-01 + 4.39157430E-01 4.39157430E-01 3.28001400E-02 8.01781200E-01 8.01781200E-01 + -4.98744351E+00 -9.76715280E-01 1.24640532E+00 1.24640532E+00 1.24640532E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 + 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 -5.41202310E-01 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 -5.81655816E+00 + 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 -3.32556975E+00 + 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 -1.03484442E+01 + -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 + 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 + -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 + 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 + 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.53735270E-01 + 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 -1.19283176E+01 + 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 + 2.01356415E+00 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 + -7.74447750E-01 -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 + 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 + 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 + 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 + 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.80522051E+00 + 2.84267880E+00 -1.27556100E-02 5.95869210E-01 5.95869210E-01 7.10669700E-01 + 5.19335550E-01 5.19335550E-01 8.85603780E-01 1.25187201E+00 1.25187201E+00 + -9.64870785E+00 6.29762688E+00 1.47163295E+01 -1.57203782E+01 8.15994594E+00 + 8.15994594E+00 -1.57203782E+01 8.15994594E+00 8.15994594E+00 1.33769904E+01 + -1.07402236E+01 -7.57501011E+00 4.95464337E+00 -2.55112200E-02 1.59627348E+00 + -2.76978960E-01 5.37557850E-01 5.37557850E-01 -2.00445300E-02 -3.47317038E+00 + 3.09596877E+00 -4.26584043E+00 3.01761288E+00 5.87851398E+00 -1.01662212E+01 + 7.27434216E+00 -4.26584043E+00 3.01761288E+00 -3.47317038E+00 3.09596877E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 + 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 + 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 + -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 -3.32556975E+00 + 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 -2.00809746E+00 + 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 1.82223000E+00 + 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 + -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 + 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 + -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 + -1.06035564E+01 -9.40817349E+00 5.35006728E+00 6.94269630E-01 1.60356240E+00 + -5.52135690E-01 -2.22312060E-01 -2.22312060E-01 1.45669066E+01 -1.46033512E+01 + -1.46033512E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 + -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 + 3.40757010E-01 -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 + -7.83558900E-01 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 + 3.38934780E-01 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 + 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 6.59647260E-01 + 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 -8.72848170E-01 + 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 2.06823105E+00 + -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 1.33769904E+01 + -1.07402236E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 + 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 2.60578890E-01 + 1.90969704E+00 -3.71917143E+00 1.45231731E+00 1.45231731E+00 1.29924999E+01 + -1.08076461E+01 -1.67481159E+01 7.64607708E+00 7.64607708E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 + 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.53735270E-01 + 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 -1.19283176E+01 + 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 + -4.64304204E+00 3.49868160E-01 7.12491930E-01 7.12491930E-01 3.44401470E-01 + 3.88134990E-01 3.88134990E-01 -1.27556100E-01 4.61024190E-01 4.61024190E-01 + -4.84713180E-01 1.16804943E+00 1.07438681E+01 -1.04741780E+01 -7.57501011E+00 + 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 3.40757010E-01 + -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 -7.83558900E-01 + 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 3.38934780E-01 + 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 5.00566581E+00 + -4.37335200E+00 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 + 3.40757010E-01 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 + 1.13160483E+00 -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 + 6.19558200E+00 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 + -7.57501011E+00 4.95464337E+00 -7.08847470E-01 1.83498561E+00 6.65842842E+00 + 7.83558900E-02 -4.44259674E+00 1.16987166E+00 1.16987166E+00 1.16987166E+00 + -1.23200970E+01 7.47478746E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 + 8.32759110E-01 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 + 1.82223000E+00 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 + -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.08787131E+00 1.58351787E+00 + 2.37436569E+00 3.40757010E-01 -5.83842492E+00 1.60720686E+00 1.60720686E+00 + 1.60720686E+00 -7.83558900E-01 4.30046280E-01 4.30046280E-01 -1.20267180E+00 + 3.38934780E-01 3.38934780E-01 3.38934780E-01 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.53735270E-01 1.53613989E+00 3.85766091E+00 + 6.41424960E-01 6.41424960E-01 -1.19283176E+01 7.79003325E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 2.60578890E-01 1.90969704E+00 + -3.71917143E+00 1.45231731E+00 1.45231731E+00 1.29924999E+01 -1.08076461E+01 + -1.67481159E+01 7.64607708E+00 7.64607708E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.37335200E-02 1.78214094E+00 -6.25024890E-01 + 5.37557850E-01 5.37557850E-01 2.15023140E-01 -2.28872088E+00 2.42356590E+00 + -3.10507992E+00 2.60578890E+00 -1.95343056E+00 2.36343231E+00 -3.10507992E+00 + 2.60578890E+00 -2.28872088E+00 2.42356590E+00 1.08841798E+01 -1.03484442E+01 + -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 + 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 + -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 + 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 + 1.33769904E+01 -1.07402236E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 + 2.59849998E+00 -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 + 1.87689690E-01 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 + -2.60578890E-01 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 + 6.19558200E+00 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 + 4.95464337E+00 -4.31868510E-01 1.60356240E+00 6.23202660E-01 4.39157430E-01 + 4.39157430E-01 3.28001400E-02 8.01781200E-01 8.01781200E-01 -4.98744351E+00 + -9.76715280E-01 1.24640532E+00 1.24640532E+00 1.24640532E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 + -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 + -9.40817349E+00 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 + -2.22312060E-01 -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 + 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -2.55112200E-02 + 1.59627348E+00 -2.76978960E-01 5.37557850E-01 5.37557850E-01 -2.00445300E-02 + -3.47317038E+00 3.09596877E+00 -4.26584043E+00 3.01761288E+00 5.87851398E+00 + -1.01662212E+01 7.27434216E+00 -4.26584043E+00 3.01761288E+00 -3.47317038E+00 + 3.09596877E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 1.45231731E+00 + 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 7.64607708E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 + 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.31868510E-01 + 1.60356240E+00 6.23202660E-01 4.39157430E-01 4.39157430E-01 3.28001400E-02 + 8.01781200E-01 8.01781200E-01 -4.98744351E+00 -9.76715280E-01 1.24640532E+00 + 1.24640532E+00 1.24640532E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 -5.41202310E-01 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 -5.81655816E+00 + 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -4.53735270E-01 1.53613989E+00 3.85766091E+00 + 6.41424960E-01 6.41424960E-01 -1.19283176E+01 7.79003325E+00 1.08841798E+01 + -1.03484442E+01 -4.64304204E+00 3.49868160E-01 7.12491930E-01 7.12491930E-01 + 3.44401470E-01 3.88134990E-01 3.88134990E-01 -1.27556100E-01 4.61024190E-01 + 4.61024190E-01 -4.84713180E-01 1.16804943E+00 1.07438681E+01 -1.04741780E+01 + -7.57501011E+00 4.95464337E+00 -9.43915140E-01 1.68009606E+00 -2.00809746E+00 + 8.32759110E-01 8.32759110E-01 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 + 1.82223000E+00 1.82223000E+00 1.82223000E+00 -7.50940983E+00 1.82223000E+00 + 1.82223000E+00 1.82223000E+00 1.08841798E+01 -1.03484442E+01 -6.33953817E+00 + 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 6.59647260E-01 + 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 -8.72848170E-01 + 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 2.06823105E+00 + -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 1.33769904E+01 + -1.07402236E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 + -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 + 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 + 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 + 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 + 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 1.45231731E+00 + 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 7.64607708E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 + 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 5.35006728E+00 + 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 -2.22312060E-01 + 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 -1.06035564E+01 + -7.57501011E+00 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 + 3.40757010E-01 -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 + -7.83558900E-01 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 + 3.38934780E-01 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.31868510E-01 1.60356240E+00 6.23202660E-01 4.39157430E-01 + 4.39157430E-01 3.28001400E-02 8.01781200E-01 8.01781200E-01 -4.98744351E+00 + -9.76715280E-01 1.24640532E+00 1.24640532E+00 1.24640532E+00 1.08841798E+01 + -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 + 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 + -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 + 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 + 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 + 1.45231731E+00 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 + 7.64607708E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -7.08847470E-01 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 + 1.16987166E+00 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 + 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.37335200E-02 1.78214094E+00 -6.25024890E-01 5.37557850E-01 5.37557850E-01 + 2.15023140E-01 -2.28872088E+00 2.42356590E+00 -3.10507992E+00 2.60578890E+00 + -1.95343056E+00 2.36343231E+00 -3.10507992E+00 2.60578890E+00 -2.28872088E+00 + 2.42356590E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 3.88134990E-01 + 2.04818652E+00 -2.24316513E+00 2.02631976E+00 2.02631976E+00 -5.68353537E+00 + 3.52237059E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 + -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 + 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 + -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -4.31868510E-01 1.60356240E+00 + 6.23202660E-01 4.39157430E-01 4.39157430E-01 3.28001400E-02 8.01781200E-01 + 8.01781200E-01 -4.98744351E+00 -9.76715280E-01 1.24640532E+00 1.24640532E+00 + 1.24640532E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 6.14091510E-01 1.49969529E+00 -3.32556975E+00 1.09880469E+00 1.09880469E+00 + 1.09880469E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -7.08847470E-01 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 + 1.16987166E+00 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 + 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.08787131E+00 1.58351787E+00 2.37436569E+00 3.40757010E-01 + -5.83842492E+00 1.60720686E+00 1.60720686E+00 1.60720686E+00 -7.83558900E-01 + 4.30046280E-01 4.30046280E-01 -1.20267180E+00 3.38934780E-01 3.38934780E-01 + 3.38934780E-01 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -7.08847470E-01 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 + 1.16987166E+00 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 + 1.27191654E+00 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 + 5.35006728E+00 7.23425310E-01 2.01356415E+00 1.02044880E+00 -3.15245790E-01 + -3.15245790E-01 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 1.46762404E+01 + -1.49204192E+01 -1.49204192E+01 9.77808618E+00 -1.06035564E+01 -7.57501011E+00 + 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 -5.41202310E-01 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 -5.81655816E+00 + 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -1.59445125E+00 1.76574087E+00 5.43935655E+00 + -5.41202310E-01 -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 + -5.81655816E+00 1.44138393E+00 1.44138393E+00 1.44138393E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.05871563E+00 2.47823280E+00 + -1.34845020E-01 6.68758410E-01 6.68758410E-01 3.40392564E+00 -9.89835336E+00 + 2.97934605E+00 2.61490005E+00 -5.09313285E+00 6.08442597E+00 -4.02166161E+00 + 3.39299226E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -1.59445125E+00 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 + 1.44138393E+00 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -9.40817349E+00 + 5.35006728E+00 6.94269630E-01 1.60356240E+00 -5.52135690E-01 -2.22312060E-01 + -2.22312060E-01 1.45669066E+01 -1.46033512E+01 -1.46033512E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00 + -3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 + 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -2.55112200E-02 1.59627348E+00 -2.76978960E-01 5.37557850E-01 5.37557850E-01 + -2.00445300E-02 -3.47317038E+00 3.09596877E+00 -4.26584043E+00 3.01761288E+00 + 5.87851398E+00 -1.01662212E+01 7.27434216E+00 -4.26584043E+00 3.01761288E+00 + -3.47317038E+00 3.09596877E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.05871563E+00 2.47823280E+00 -1.34845020E-01 6.68758410E-01 + 6.68758410E-01 3.40392564E+00 -9.89835336E+00 2.97934605E+00 2.61490005E+00 + -5.09313285E+00 6.08442597E+00 -4.02166161E+00 3.39299226E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 3.88134990E-01 2.04818652E+00 + -2.24316513E+00 2.02631976E+00 2.02631976E+00 -5.68353537E+00 3.52237059E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 + 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -4.53735270E-01 1.53613989E+00 3.85766091E+00 6.41424960E-01 6.41424960E-01 + -1.19283176E+01 7.79003325E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.31868510E-01 1.60356240E+00 6.23202660E-01 4.39157430E-01 + 4.39157430E-01 3.28001400E-02 8.01781200E-01 8.01781200E-01 -4.98744351E+00 + -9.76715280E-01 1.24640532E+00 1.24640532E+00 1.24640532E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -4.59201960E-01 1.27191654E+00 + 1.27191654E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + 2.60578890E-01 1.90969704E+00 -3.71917143E+00 1.45231731E+00 1.45231731E+00 + 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 7.64607708E+00 7.64607708E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.59445125E+00 + 1.76574087E+00 5.43935655E+00 -5.41202310E-01 -5.81655816E+00 1.44138393E+00 + 1.44138393E+00 1.44138393E+00 -5.81655816E+00 1.44138393E+00 1.44138393E+00 + 1.44138393E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -9.43915140E-01 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 + 6.43429413E+00 -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 + 1.82223000E+00 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -9.43915140E-01 + 1.68009606E+00 -2.00809746E+00 8.32759110E-01 8.32759110E-01 6.43429413E+00 + -6.57825030E-01 -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 + -7.50940983E+00 1.82223000E+00 1.82223000E+00 1.82223000E+00 1.08841798E+01 + -1.03484442E+01 -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 + 1.02044880E+00 -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 + -7.74447750E-01 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 + -1.06035564E+01 -7.57501011E+00 4.95464337E+00 -1.05871563E+00 2.47823280E+00 + -1.34845020E-01 6.68758410E-01 6.68758410E-01 3.40392564E+00 -9.89835336E+00 + 2.97934605E+00 2.61490005E+00 -5.09313285E+00 6.08442597E+00 -4.02166161E+00 + 3.39299226E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 + -1.05871563E+00 2.47823280E+00 -1.34845020E-01 6.68758410E-01 6.68758410E-01 + 3.40392564E+00 -9.89835336E+00 2.97934605E+00 2.61490005E+00 -5.09313285E+00 + 6.08442597E+00 -4.02166161E+00 3.39299226E+00 1.08841798E+01 -1.03484442E+01 + -7.57501011E+00 4.95464337E+00 -1.05871563E+00 2.47823280E+00 -1.34845020E-01 + 6.68758410E-01 6.68758410E-01 3.40392564E+00 -9.89835336E+00 2.97934605E+00 + 2.61490005E+00 -5.09313285E+00 6.08442597E+00 -4.02166161E+00 3.39299226E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -1.05871563E+00 + 2.47823280E+00 -1.34845020E-01 6.68758410E-01 6.68758410E-01 3.40392564E+00 + -9.89835336E+00 2.97934605E+00 2.61490005E+00 -5.09313285E+00 6.08442597E+00 + -4.02166161E+00 3.39299226E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -1.05871563E+00 2.47823280E+00 -1.34845020E-01 6.68758410E-01 + 6.68758410E-01 3.40392564E+00 -9.89835336E+00 2.97934605E+00 2.61490005E+00 + -5.09313285E+00 6.08442597E+00 -4.02166161E+00 3.39299226E+00 1.08841798E+01 + -1.03484442E+01 -6.96274083E+00 4.88539863E+00 -4.91819877E+00 3.00667950E+00 + -1.94614164E+00 1.12978260E+00 1.12978260E+00 4.96375452E+00 -1.00532429E+01 + 2.83903434E+00 2.63858904E+00 -4.86535410E+00 6.04798137E+00 -4.71593124E+00 + 3.56610411E+00 1.44247727E+01 -1.46962850E+01 -1.46962850E+01 1.71771964E+01 + -1.33087844E+01 -1.33087844E+01 -6.50120642E+00 -1.22016521E-01 1.44710573E+00 + -7.15799277E+00 2.13253755E+00 -1.17149344E+01 1.87662357E+00 -1.15203932E+01 + 1.11651677E+00 3.24703164E-01 1.13637907E+00 -1.15916970E+01 2.65666556E+00 + 1.17945112E+01 -1.58192524E+01 -1.38306528E+01 9.69357115E+00 -1.37259839E+01 + 7.47564391E+00 -7.61695784E+00 2.32850563E+01 -1.47146348E+01 -1.47146348E+01 + -1.07613797E+01 5.63069070E-01 1.80765216E+00 -6.72767316E+00 2.51832186E+00 + -1.24385420E+01 2.26685412E+00 -1.16932499E+01 5.12046630E-01 1.77496135E+00 + -2.90244794E-01 -8.37952466E-01 1.17635880E+01 -1.00322690E+01 -1.43580244E+01 + -6.60193929E-01 -2.37688037E+00 1.57129071E+00 1.05057026E+00 1.05057026E+00 + 2.98701764E+00 2.67922477E+00 8.12805692E+00 1.06279743E+00 7.46002740E+00 + 3.07978737E+00 4.06251601E+00 7.12209484E+00 7.12209484E+00 1.42758965E+00 + 2.01048458E+00 2.01048458E+00 1.44626751E+00 2.25555629E+00 8.14755478E+00 + 3.06460819E+00 7.84355215E+00 3.26388726E+00 2.69646306E+00 6.91802331E+00 + 6.91802331E+00 3.41894082E+00 3.34060315E+00 4.13908611E+00 -7.10669700E-02 + 2.60761113E+00 -2.71512270E+00 8.45514720E-01 -2.73334500E+00 -1.80400770E+00 + -4.46810796E+00 -8.83963773E+00 2.02449753E+00 8.01781200E-02 -1.84045230E+00 + 2.55112200E-02 -1.74934080E+00 -2.97023490E+00 -1.04596002E+00 -1.44685062E+00 + -1.46507292E+00 3.11601330E+00 2.82445650E+00 2.84267880E+00 8.03603430E+00 + 3.02490180E+00 2.84267880E+00 2.89734570E+00 +%FLAG ATOMIC_NUMBER +%FORMAT(10I8) + 7 1 1 1 6 1 6 1 1 6 + 1 1 16 6 1 1 1 6 8 7 + 1 6 1 1 6 8 7 1 6 1 + 6 1 1 6 6 1 6 1 6 1 + 6 1 6 1 6 8 7 1 6 1 + 6 1 1 6 1 6 1 1 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 1 6 8 7 1 6 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 6 1 1 6 1 1 7 1 + 1 1 6 8 7 1 6 1 6 1 + 1 6 1 1 6 1 1 6 1 1 + 7 1 1 1 6 8 7 1 6 1 + 6 1 6 1 1 1 6 1 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 6 1 6 1 1 1 6 1 + 1 1 6 8 7 1 6 1 6 1 + 6 1 1 1 6 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 6 + 1 1 1 8 1 6 8 7 1 6 + 1 1 6 8 7 1 6 1 6 1 + 1 6 1 6 1 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 8 + 1 6 8 7 1 6 1 6 1 1 + 6 8 7 1 1 6 8 7 1 6 + 1 6 1 1 6 1 1 6 1 1 + 6 1 1 7 1 1 1 6 8 7 + 1 6 1 6 1 1 8 1 6 8 + 7 1 6 1 6 1 6 1 1 1 + 6 1 1 6 1 1 1 6 8 7 + 1 6 1 6 1 1 1 6 8 7 + 1 6 1 6 1 1 6 6 1 6 + 1 6 8 1 6 1 6 1 6 8 + 7 1 6 1 1 6 8 7 1 6 + 1 6 1 6 1 1 1 6 1 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 6 1 1 6 1 1 6 + 1 1 7 1 1 1 6 8 7 1 + 6 1 6 1 1 1 6 8 7 1 + 6 1 6 1 1 6 1 1 16 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 6 7 6 1 7 1 6 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 6 1 1 7 1 6 7 1 + 1 7 1 1 6 8 7 1 6 1 + 6 1 1 6 1 1 6 8 8 6 + 8 7 1 6 1 1 6 8 7 1 + 6 1 6 1 1 1 6 8 7 1 + 6 1 6 1 1 6 1 1 6 8 + 8 6 8 7 1 6 1 6 1 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 6 1 6 1 6 1 6 1 6 1 + 6 8 7 1 6 1 6 1 6 1 + 1 1 8 1 6 8 7 1 6 1 + 6 1 1 6 6 1 6 1 6 8 + 1 6 1 6 1 6 8 7 1 6 + 1 6 1 6 1 1 1 6 1 1 + 1 6 8 7 1 6 1 1 6 8 + 7 1 6 1 6 1 1 6 1 1 + 6 8 7 1 1 6 8 7 1 6 + 1 6 1 1 6 6 1 6 1 6 + 1 6 1 6 1 6 8 7 1 6 + 1 6 1 1 6 1 1 6 1 1 + 6 1 1 7 1 1 1 6 8 7 + 1 6 1 6 1 1 6 8 8 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 1 1 7 1 6 7 1 1 + 7 1 1 6 8 7 1 6 1 6 + 1 6 1 1 1 6 1 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 1 6 1 1 6 1 1 6 + 1 1 7 1 1 1 6 8 7 1 + 6 1 6 1 1 6 1 6 1 1 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 16 1 6 8 7 1 + 6 1 6 1 1 1 6 8 7 1 + 6 1 6 1 1 6 1 1 6 8 + 8 6 8 7 1 6 1 6 1 1 + 6 6 1 6 1 6 1 6 1 6 + 1 6 8 7 1 6 1 6 1 1 + 6 8 7 1 1 6 8 7 6 1 + 1 6 1 1 6 1 1 6 1 6 + 8 7 1 6 1 6 1 1 1 6 + 8 7 1 6 1 6 1 1 1 6 + 8 7 1 6 1 6 1 6 1 1 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 6 1 6 1 1 1 + 6 1 1 1 6 8 7 6 1 1 + 6 1 1 6 1 1 6 1 6 8 + 7 1 6 1 6 1 1 16 1 6 + 8 7 1 6 1 6 1 1 6 8 + 8 6 8 7 1 6 1 6 1 6 + 1 1 1 6 1 1 1 6 8 7 + 1 6 1 6 1 6 1 1 1 6 + 1 1 6 1 1 1 6 8 7 1 + 6 1 6 1 1 8 1 6 8 7 + 1 6 1 6 1 1 6 8 8 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 8 7 1 1 6 8 7 1 + 6 1 6 1 1 6 1 1 6 8 + 8 6 8 7 1 6 1 6 1 6 + 1 1 1 6 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 6 1 1 6 1 1 7 1 + 1 1 6 8 7 1 6 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 1 6 1 6 1 1 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 6 6 1 6 1 6 1 6 + 1 6 1 6 8 7 1 6 1 6 + 1 6 1 1 1 6 1 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 1 6 1 6 1 1 1 6 + 1 1 1 6 8 7 1 6 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 6 1 1 6 1 1 7 1 + 1 1 6 8 7 1 6 1 6 1 + 6 1 1 1 6 1 1 1 6 8 + 7 1 6 1 6 1 1 6 6 1 + 7 1 6 6 1 6 1 6 1 6 + 1 6 6 8 7 1 6 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 1 6 8 7 1 6 1 6 1 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 8 8 6 8 7 1 6 1 6 1 + 1 1 6 8 7 1 6 1 6 1 + 6 1 1 1 6 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 6 + 1 1 1 6 1 1 1 6 8 7 + 1 6 1 6 1 1 6 7 6 1 + 7 1 6 1 6 8 7 1 6 1 + 6 1 1 8 1 6 8 7 1 6 + 1 6 1 6 1 1 1 6 1 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 6 6 1 6 1 6 1 + 6 1 6 1 6 8 7 1 6 1 + 6 1 1 1 6 8 7 6 1 1 + 6 1 1 6 1 1 6 1 6 8 + 7 1 6 1 6 1 1 6 1 1 + 6 1 1 7 1 6 7 1 1 7 + 1 1 6 8 7 1 6 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 1 6 1 1 6 8 7 1 + 1 6 8 7 1 6 1 6 1 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 6 8 8 6 8 7 1 6 + 1 1 6 8 7 1 6 1 6 1 + 1 6 8 7 1 1 6 8 7 1 + 6 1 6 1 1 6 6 1 6 1 + 6 1 6 1 6 1 6 8 7 1 + 6 1 6 1 6 1 1 1 6 1 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 6 8 8 6 8 7 + 1 6 1 6 1 1 16 1 6 8 + 7 1 6 1 6 1 6 1 1 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 6 1 1 1 8 1 6 8 + 7 1 6 1 6 1 1 6 1 1 + 6 1 1 7 1 6 7 1 1 7 + 1 1 6 8 7 1 6 1 6 1 + 1 6 1 1 6 8 8 6 8 7 + 1 6 1 1 6 8 7 1 6 1 + 6 1 1 6 6 1 6 1 6 1 + 6 1 6 1 6 8 7 1 6 1 + 6 1 1 8 1 6 8 7 1 6 + 1 6 1 6 1 1 1 6 1 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 6 7 6 1 7 1 6 + 1 6 8 7 1 6 1 6 1 1 + 6 8 8 6 8 7 1 6 1 6 + 1 6 1 1 1 6 1 1 6 1 + 1 1 6 8 7 1 6 1 6 1 + 1 8 1 6 8 7 1 6 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 6 6 1 6 1 6 8 1 + 6 1 6 1 6 8 7 1 6 1 + 6 1 1 8 1 6 8 7 1 6 + 1 6 1 1 6 6 1 6 1 6 + 1 6 1 6 1 6 8 7 1 6 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 6 1 6 1 1 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 6 1 1 6 1 1 6 + 1 1 7 1 1 1 6 8 7 1 + 6 1 6 1 1 6 1 1 6 8 + 8 6 8 7 1 6 1 1 6 8 + 7 1 6 1 6 1 1 6 1 1 + 6 1 1 7 1 6 7 1 1 7 + 1 1 6 8 7 1 6 1 6 1 + 1 8 1 6 8 7 1 6 1 6 + 1 1 6 1 1 16 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 16 6 1 1 1 6 8 7 + 1 6 1 6 1 1 6 1 1 6 + 1 1 6 1 1 7 1 1 1 6 + 8 7 1 6 1 6 1 1 6 8 + 7 1 1 6 8 7 1 6 1 6 + 1 1 6 1 1 6 1 1 7 1 + 6 7 1 1 7 1 1 6 8 7 + 1 6 1 6 1 1 6 8 7 1 + 1 6 8 7 1 6 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 8 1 6 8 7 1 6 1 6 1 + 1 6 1 1 16 6 1 1 1 6 + 8 7 1 6 1 6 1 6 1 1 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 6 1 6 1 1 1 + 6 1 1 1 6 8 7 1 6 1 + 6 1 6 1 1 1 8 1 6 8 + 7 1 6 1 6 1 1 6 6 1 + 6 1 6 8 1 6 1 6 1 6 + 8 7 1 6 1 6 1 6 1 1 + 1 6 1 1 6 1 1 1 6 8 + 7 1 6 1 1 6 8 7 1 6 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 6 1 1 6 8 8 + 6 8 7 1 6 1 6 1 1 6 + 1 1 6 1 1 6 1 1 7 1 + 1 1 6 8 7 1 6 1 6 1 + 1 1 6 8 7 1 6 1 6 1 + 1 6 1 1 16 6 1 1 1 6 + 8 7 6 1 1 6 1 1 6 1 + 1 6 1 6 8 7 1 6 1 6 + 1 1 8 1 6 8 7 1 6 1 + 6 1 1 6 6 1 6 1 6 8 + 1 6 1 6 1 6 8 7 1 6 + 1 6 1 1 6 8 7 1 1 6 + 8 7 1 6 1 6 1 6 1 1 + 1 8 1 6 8 7 1 6 1 6 + 1 1 6 1 1 16 6 1 1 1 + 6 8 7 1 6 1 1 6 8 7 + 1 6 1 6 1 6 1 1 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 6 1 1 6 1 1 6 1 + 1 7 1 1 1 6 8 7 1 6 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 8 1 6 8 7 1 + 6 1 6 1 1 6 1 6 1 1 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 6 1 1 6 8 8 + 6 8 7 1 6 1 6 1 1 1 + 6 8 7 1 6 1 6 1 6 1 + 1 1 8 1 6 8 7 1 6 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 6 1 1 7 1 6 7 1 + 1 7 1 1 6 8 7 1 6 1 + 6 1 1 6 6 1 6 1 6 8 + 1 6 1 6 1 6 8 7 1 6 + 1 6 1 6 1 1 1 8 1 6 + 8 7 1 6 1 6 1 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 6 1 1 1 6 1 1 1 6 8 + 7 1 6 1 6 1 1 1 6 8 + 7 1 6 1 6 1 1 6 1 6 + 1 1 1 6 1 1 1 6 8 7 + 1 6 1 1 6 8 7 1 6 1 + 6 1 1 6 1 1 6 8 8 6 + 8 7 1 6 1 6 1 1 6 8 + 8 6 8 7 1 6 1 1 6 8 + 7 1 6 1 6 1 6 1 1 1 + 6 1 1 6 1 1 1 6 8 7 + 1 6 1 6 1 1 6 1 1 6 + 1 1 6 1 1 7 1 1 1 6 + 8 7 1 6 1 6 1 6 1 1 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 6 8 7 1 1 6 + 8 7 1 6 1 6 1 1 1 6 + 8 7 1 6 1 6 1 6 1 1 + 1 6 1 1 1 6 8 7 1 6 + 1 6 1 1 8 1 6 8 7 1 + 6 1 6 1 1 1 6 8 7 1 + 6 1 1 6 8 7 6 1 1 6 + 1 1 6 1 1 6 1 6 8 7 + 1 6 1 6 1 6 1 1 1 6 + 1 1 6 1 1 1 6 8 7 1 + 6 1 6 1 1 6 1 1 6 1 + 1 6 1 1 7 1 1 1 6 8 + 7 1 6 1 6 1 6 1 1 1 + 8 1 6 8 7 1 6 1 6 1 + 1 6 1 6 1 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 8 1 6 8 7 1 6 1 1 6 + 8 7 1 6 1 6 1 6 1 1 + 1 6 1 1 6 1 1 1 6 8 + 7 1 6 1 6 1 1 8 1 6 + 8 7 1 6 1 6 1 1 6 8 + 7 1 1 6 8 7 1 6 1 6 + 1 1 6 6 1 6 1 6 1 6 + 1 6 1 6 8 7 1 6 1 6 + 1 1 6 1 1 6 1 1 6 1 + 1 7 1 1 1 6 8 7 1 6 + 1 6 1 1 6 1 1 6 1 1 + 6 1 1 7 1 1 1 6 8 7 + 1 6 1 6 1 1 6 1 1 16 + 6 1 1 1 6 8 7 1 6 1 + 6 1 1 6 1 6 1 1 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 6 8 8 6 8 7 1 6 + 1 6 1 1 6 6 1 6 1 6 + 8 1 6 1 6 1 6 8 7 1 + 6 1 6 1 1 6 8 7 1 1 + 6 8 7 1 6 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 1 16 6 1 1 1 6 8 7 + 1 6 1 6 1 6 1 1 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 1 8 1 6 8 7 6 1 1 + 6 1 1 6 1 1 6 1 6 8 + 7 1 6 1 6 1 1 6 1 6 + 1 1 1 6 1 1 1 6 8 7 + 1 6 1 6 1 1 6 1 1 6 + 1 1 6 1 1 7 1 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 1 1 6 1 1 7 1 1 + 1 6 8 7 1 6 1 6 1 1 + 6 8 7 1 1 6 8 7 1 6 + 1 6 1 6 1 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 6 8 8 6 8 7 1 6 1 6 + 1 6 1 1 1 6 1 1 6 1 + 1 1 6 8 7 1 6 1 6 1 + 1 6 1 1 16 6 1 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 1 6 8 7 + 1 6 1 6 1 1 6 8 7 1 + 1 6 8 7 1 6 1 6 1 6 + 1 1 1 8 1 6 8 7 1 6 + 1 6 1 6 1 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 6 6 1 6 1 6 1 6 1 6 + 1 6 8 7 1 6 1 6 1 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 16 + 1 6 8 7 1 6 1 6 1 1 + 8 1 6 8 7 1 6 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 1 6 1 1 16 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 1 6 8 7 1 6 1 6 1 6 + 1 1 1 8 1 6 8 7 1 6 + 1 1 6 8 7 1 6 1 6 1 + 6 1 1 1 6 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 6 + 1 1 1 8 1 6 8 7 1 6 + 1 1 6 8 7 1 6 1 6 1 + 1 6 1 1 6 8 8 6 8 7 + 1 6 1 6 1 6 1 1 1 6 + 1 1 1 6 8 7 1 6 1 6 + 1 6 1 1 1 6 1 1 1 6 + 8 7 1 6 1 6 1 1 6 7 + 6 1 7 1 6 1 6 8 7 1 + 6 1 6 1 6 1 1 1 6 1 + 1 1 6 8 7 1 6 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 1 1 6 8 7 1 6 1 + 1 6 8 7 1 6 1 6 1 1 + 6 6 1 6 1 6 8 1 6 1 + 6 1 6 8 7 1 6 1 6 1 + 1 6 7 6 1 7 1 6 1 6 + 8 7 1 6 1 6 1 1 16 1 + 6 8 7 1 6 1 6 1 6 1 + 1 1 6 1 1 1 6 8 7 1 + 6 1 6 1 1 8 1 6 8 7 + 1 6 1 6 1 1 6 1 1 16 + 6 1 1 1 6 8 7 1 6 1 + 1 6 8 7 1 6 1 6 1 1 + 6 8 7 1 1 6 8 7 1 6 + 1 6 1 6 1 1 1 6 1 1 + 1 6 8 7 1 6 1 6 1 1 + 6 1 6 1 1 1 6 1 1 1 + 6 8 7 1 6 1 6 1 1 6 + 1 6 1 1 1 6 1 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 8 8 6 8 7 1 6 1 + 6 1 1 6 7 6 1 7 1 6 + 1 6 8 7 1 6 1 6 1 1 + 6 7 6 1 7 1 6 1 6 8 + 7 1 6 1 6 1 1 6 7 6 + 1 7 1 6 1 6 8 7 1 6 + 1 6 1 1 6 7 6 1 7 1 + 6 1 6 8 7 1 6 1 6 1 + 1 6 7 6 1 7 1 6 1 6 + 8 7 1 6 1 6 1 1 6 7 + 6 1 7 1 6 1 6 8 8 15 + 8 8 8 6 6 8 6 8 6 8 + 6 7 6 7 6 6 7 7 6 7 + 6 8 15 8 8 8 6 6 8 6 + 8 6 8 6 7 6 6 6 8 7 + 6 6 6 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 6 + 6 6 6 6 6 8 8 6 6 6 + 6 6 6 17 17 17 1 1 1 1 + 1 1 1 +%FLAG MASS +%FORMAT(5E16.8) + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 3.20600000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 3.20600000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 3.20600000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 3.20600000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 3.20600000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 3.20600000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 3.20600000E+01 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 3.20600000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.60000000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 3.20600000E+01 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.40100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.40100000E+01 1.20100000E+01 1.00800000E+00 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.40100000E+01 + 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.60000000E+01 3.09700000E+01 + 1.60000000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.20100000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 + 1.20100000E+01 1.40100000E+01 1.20100000E+01 1.40100000E+01 1.20100000E+01 + 1.20100000E+01 1.40100000E+01 1.40100000E+01 1.20100000E+01 1.40100000E+01 + 1.20100000E+01 1.60000000E+01 3.09700000E+01 1.60000000E+01 1.60000000E+01 + 1.60000000E+01 1.20100000E+01 1.20100000E+01 1.60000000E+01 1.20100000E+01 + 1.60000000E+01 1.20100000E+01 1.60000000E+01 1.20100000E+01 1.40100000E+01 + 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01 + 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01 + 1.20100000E+01 1.20100000E+01 1.20100000E+01 3.54500000E+01 3.54500000E+01 + 3.54500000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 +%FLAG ATOM_TYPE_INDEX +%FORMAT(10I8) + 1 2 2 2 3 4 3 5 5 3 + 6 6 7 3 6 6 6 8 9 1 + 2 3 6 6 8 9 1 2 3 6 + 3 5 5 8 8 10 8 10 8 10 + 8 10 8 10 8 9 1 2 3 6 + 3 5 5 3 5 3 5 5 5 3 + 5 5 5 8 9 1 2 3 6 3 + 5 5 5 8 9 1 2 3 6 6 + 8 9 1 2 3 6 3 5 5 3 + 5 5 3 5 5 3 4 4 1 2 + 2 2 8 9 1 2 3 6 3 5 + 5 3 5 5 3 5 5 3 4 4 + 1 2 2 2 8 9 1 2 3 6 + 3 5 3 5 5 5 3 5 5 3 + 5 5 5 8 9 1 2 3 6 3 + 5 5 3 5 3 5 5 5 3 5 + 5 5 8 9 1 2 3 6 3 5 + 3 5 5 5 3 5 5 3 5 5 + 5 8 9 1 2 3 6 3 6 3 + 5 5 5 11 12 8 9 1 2 3 + 6 6 8 9 1 2 3 6 3 5 + 5 3 5 3 5 5 5 3 5 5 + 5 8 9 1 2 3 6 3 5 5 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 3 6 6 11 + 12 8 9 1 2 3 6 3 5 5 + 8 9 1 2 2 8 9 1 2 3 + 6 3 5 5 3 5 5 3 5 5 + 3 4 4 1 2 2 2 8 9 1 + 2 3 6 3 6 6 11 12 8 9 + 1 2 3 6 3 5 3 5 5 5 + 3 5 5 3 5 5 5 8 9 1 + 2 3 6 3 5 5 5 8 9 1 + 2 3 6 3 5 5 8 8 10 8 + 10 8 11 12 8 10 8 10 8 9 + 1 2 3 6 6 8 9 1 2 3 + 6 3 5 3 5 5 5 3 5 5 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 3 5 5 3 5 5 3 + 4 4 1 2 2 2 8 9 1 2 + 3 6 3 5 5 5 8 9 1 2 + 3 6 3 5 5 3 6 6 7 3 + 6 6 6 8 9 1 2 3 6 3 + 5 5 8 1 8 13 1 2 8 14 + 8 9 1 2 3 6 3 5 5 3 + 5 5 3 6 6 1 2 8 1 2 + 2 1 2 2 8 9 1 2 3 6 + 3 5 5 3 5 5 8 9 9 8 + 9 1 2 3 6 6 8 9 1 2 + 3 6 3 5 5 5 8 9 1 2 + 3 6 3 5 5 3 5 5 8 9 + 9 8 9 1 2 3 6 3 5 5 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 3 5 5 5 + 8 9 1 2 3 6 3 5 5 8 + 8 10 8 10 8 10 8 10 8 10 + 8 9 1 2 3 6 3 6 3 5 + 5 5 11 12 8 9 1 2 3 6 + 3 5 5 8 8 10 8 10 8 11 + 12 8 10 8 10 8 9 1 2 3 + 6 3 5 3 5 5 5 3 5 5 + 5 8 9 1 2 3 6 6 8 9 + 1 2 3 6 3 5 5 3 5 5 + 8 9 1 2 2 8 9 1 2 3 + 6 3 5 5 8 8 10 8 10 8 + 10 8 10 8 10 8 9 1 2 3 + 6 3 5 5 3 5 5 3 5 5 + 3 4 4 1 2 2 2 8 9 1 + 2 3 6 3 5 5 8 9 9 8 + 9 1 2 3 6 3 5 5 3 5 + 5 3 6 6 1 2 8 1 2 2 + 1 2 2 8 9 1 2 3 6 3 + 5 3 5 5 5 3 5 5 5 8 + 9 1 2 3 6 3 5 5 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 5 3 5 5 3 5 5 3 + 4 4 1 2 2 2 8 9 1 2 + 3 6 3 5 5 3 5 3 5 5 + 5 3 5 5 5 8 9 1 2 3 + 6 3 6 6 7 2 8 9 1 2 + 3 6 3 5 5 5 8 9 1 2 + 3 6 3 5 5 3 5 5 8 9 + 9 8 9 1 2 3 6 3 5 5 + 8 8 10 8 10 8 10 8 10 8 + 10 8 9 1 2 3 6 3 5 5 + 8 9 1 2 2 8 9 1 3 6 + 6 3 5 5 3 5 5 3 6 8 + 9 1 2 3 6 3 5 5 5 8 + 9 1 2 3 6 3 5 5 5 8 + 9 1 2 3 6 3 5 3 5 5 + 5 3 5 5 5 8 9 1 2 3 + 6 3 5 5 3 5 3 5 5 5 + 3 5 5 5 8 9 1 3 6 6 + 3 5 5 3 5 5 3 6 8 9 + 1 2 3 6 3 6 6 7 2 8 + 9 1 2 3 6 3 5 5 8 9 + 9 8 9 1 2 3 6 3 5 3 + 5 5 5 3 5 5 5 8 9 1 + 2 3 6 3 5 3 5 5 5 3 + 5 5 3 5 5 5 8 9 1 2 + 3 6 3 6 6 11 12 8 9 1 + 2 3 6 3 5 5 8 9 9 8 + 9 1 2 3 6 3 5 5 3 5 + 5 8 9 1 2 2 8 9 1 2 + 3 6 3 5 5 3 5 5 8 9 + 9 8 9 1 2 3 6 3 5 3 + 5 5 5 3 5 5 3 5 5 5 + 8 9 1 2 3 6 3 5 5 3 + 5 5 3 5 5 3 4 4 1 2 + 2 2 8 9 1 2 3 6 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 5 3 5 3 5 5 5 3 + 5 5 5 8 9 1 2 3 6 3 + 5 5 8 8 10 8 10 8 10 8 + 10 8 10 8 9 1 2 3 6 3 + 5 3 5 5 5 3 5 5 5 8 + 9 1 2 3 6 3 5 5 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 5 3 5 3 5 5 5 3 + 5 5 5 8 9 1 2 3 6 6 + 8 9 1 2 3 6 3 5 5 3 + 5 5 3 5 5 3 4 4 1 2 + 2 2 8 9 1 2 3 6 3 5 + 3 5 5 5 3 5 5 5 8 9 + 1 2 3 6 3 5 5 8 8 14 + 1 2 8 8 10 8 10 8 10 8 + 10 8 8 9 1 2 3 6 3 5 + 5 8 9 9 8 9 1 2 3 6 + 6 8 9 1 2 3 6 3 5 5 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 3 5 5 8 + 9 9 8 9 1 2 3 6 3 5 + 5 5 8 9 1 2 3 6 3 5 + 3 5 5 5 3 5 5 3 5 5 + 5 8 9 1 2 3 6 3 5 3 + 5 5 5 3 5 5 5 8 9 1 + 2 3 6 3 5 5 8 1 8 13 + 1 2 8 14 8 9 1 2 3 6 + 3 6 6 11 12 8 9 1 2 3 + 6 3 5 3 5 5 5 3 5 5 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 8 8 10 8 10 8 10 + 8 10 8 10 8 9 1 2 3 6 + 3 5 5 5 8 9 1 3 6 6 + 3 5 5 3 5 5 3 6 8 9 + 1 2 3 6 3 5 5 3 5 5 + 3 6 6 1 2 8 1 2 2 1 + 2 2 8 9 1 2 3 6 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 5 3 5 5 8 9 1 2 + 2 8 9 1 2 3 6 3 5 5 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 3 5 5 3 + 5 5 8 9 9 8 9 1 2 3 + 6 6 8 9 1 2 3 6 3 5 + 5 8 9 1 2 2 8 9 1 2 + 3 6 3 5 5 8 8 10 8 10 + 8 10 8 10 8 10 8 9 1 2 + 3 6 3 5 3 5 5 5 3 5 + 5 3 5 5 5 8 9 1 2 3 + 6 3 5 5 8 9 9 8 9 1 + 2 3 6 3 6 6 7 2 8 9 + 1 2 3 6 3 5 3 5 5 5 + 3 5 5 5 8 9 1 2 3 6 + 3 6 3 5 5 5 11 12 8 9 + 1 2 3 6 3 5 5 3 5 5 + 3 6 6 1 2 8 1 2 2 1 + 2 2 8 9 1 2 3 6 3 5 + 5 3 5 5 8 9 9 8 9 1 + 2 3 6 6 8 9 1 2 3 6 + 3 5 5 8 8 10 8 10 8 10 + 8 10 8 10 8 9 1 2 3 6 + 3 6 6 11 12 8 9 1 2 3 + 6 3 5 3 5 5 5 3 5 5 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 8 1 8 13 1 2 8 + 14 8 9 1 2 3 6 3 5 5 + 8 9 9 8 9 1 2 3 6 3 + 5 3 5 5 5 3 5 5 3 5 + 5 5 8 9 1 2 3 6 3 6 + 6 11 12 8 9 1 2 3 6 3 + 5 5 5 8 9 1 2 3 6 3 + 5 5 8 8 10 8 10 8 11 12 + 8 10 8 10 8 9 1 2 3 6 + 3 6 6 11 12 8 9 1 2 3 + 6 3 5 5 8 8 10 8 10 8 + 10 8 10 8 10 8 9 1 2 3 + 6 3 5 5 5 8 9 1 2 3 + 6 3 5 5 5 8 9 1 2 3 + 6 3 5 5 3 5 3 5 5 5 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 5 8 9 1 2 3 6 + 3 5 5 3 5 5 3 5 5 3 + 4 4 1 2 2 2 8 9 1 2 + 3 6 3 5 5 3 5 5 8 9 + 9 8 9 1 2 3 6 6 8 9 + 1 2 3 6 3 5 5 3 5 5 + 3 6 6 1 2 8 1 2 2 1 + 2 2 8 9 1 2 3 6 3 6 + 6 11 12 8 9 1 2 3 6 3 + 5 5 3 6 6 7 3 6 6 6 + 8 9 1 2 3 6 3 5 5 3 + 6 6 7 3 6 6 6 8 9 1 + 2 3 6 3 5 5 3 5 5 3 + 5 5 3 4 4 1 2 2 2 8 + 9 1 2 3 6 3 5 5 8 9 + 1 2 2 8 9 1 2 3 6 3 + 5 5 3 5 5 3 6 6 1 2 + 8 1 2 2 1 2 2 8 9 1 + 2 3 6 3 5 5 8 9 1 2 + 2 8 9 1 2 3 6 3 5 5 + 5 8 9 1 2 3 6 3 6 6 + 11 12 8 9 1 2 3 6 3 5 + 5 3 6 6 7 3 6 6 6 8 + 9 1 2 3 6 3 5 3 5 5 + 5 3 5 5 5 8 9 1 2 3 + 6 3 5 5 5 8 9 1 2 3 + 6 3 5 5 3 5 3 5 5 5 + 3 5 5 5 8 9 1 2 3 6 + 3 6 3 5 5 5 11 12 8 9 + 1 2 3 6 3 5 5 8 8 10 + 8 10 8 11 12 8 10 8 10 8 + 9 1 2 3 6 3 5 3 5 5 + 5 3 5 5 3 5 5 5 8 9 + 1 2 3 6 6 8 9 1 2 3 + 6 3 5 5 5 8 9 1 2 3 + 6 3 5 5 3 5 5 8 9 9 + 8 9 1 2 3 6 3 5 5 3 + 5 5 3 5 5 3 4 4 1 2 + 2 2 8 9 1 2 3 6 3 5 + 5 5 8 9 1 2 3 6 3 5 + 5 3 6 6 7 3 6 6 6 8 + 9 1 3 6 6 3 5 5 3 5 + 5 3 6 8 9 1 2 3 6 3 + 6 6 11 12 8 9 1 2 3 6 + 3 5 5 8 8 10 8 10 8 11 + 12 8 10 8 10 8 9 1 2 3 + 6 3 5 5 8 9 1 2 2 8 + 9 1 2 3 6 3 6 3 5 5 + 5 11 12 8 9 1 2 3 6 3 + 5 5 3 6 6 7 3 6 6 6 + 8 9 1 2 3 6 6 8 9 1 + 2 3 6 3 5 3 5 5 5 3 + 5 5 5 8 9 1 2 3 6 3 + 5 5 5 8 9 1 2 3 6 3 + 5 5 3 5 5 3 5 5 3 4 + 4 1 2 2 2 8 9 1 2 3 + 6 3 5 5 5 8 9 1 2 3 + 6 3 6 6 11 12 8 9 1 2 + 3 6 3 5 5 3 5 3 5 5 + 5 3 5 5 5 8 9 1 2 3 + 6 3 5 5 3 5 5 8 9 9 + 8 9 1 2 3 6 3 5 5 5 + 8 9 1 2 3 6 3 6 3 5 + 5 5 11 12 8 9 1 2 3 6 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 3 5 5 3 + 5 5 3 6 6 1 2 8 1 2 + 2 1 2 2 8 9 1 2 3 6 + 3 5 5 8 8 10 8 10 8 11 + 12 8 10 8 10 8 9 1 2 3 + 6 3 6 3 5 5 5 11 12 8 + 9 1 2 3 6 3 5 5 5 8 + 9 1 2 3 6 3 5 5 3 5 + 3 5 5 5 3 5 5 5 8 9 + 1 2 3 6 3 5 5 5 8 9 + 1 2 3 6 3 5 5 3 5 3 + 5 5 5 3 5 5 5 8 9 1 + 2 3 6 6 8 9 1 2 3 6 + 3 5 5 3 5 5 8 9 9 8 + 9 1 2 3 6 3 5 5 8 9 + 9 8 9 1 2 3 6 6 8 9 + 1 2 3 6 3 5 3 5 5 5 + 3 5 5 3 5 5 5 8 9 1 + 2 3 6 3 5 5 3 5 5 3 + 5 5 3 4 4 1 2 2 2 8 + 9 1 2 3 6 3 5 3 5 5 + 5 3 5 5 5 8 9 1 2 3 + 6 3 5 5 8 9 1 2 2 8 + 9 1 2 3 6 3 5 5 5 8 + 9 1 2 3 6 3 5 3 5 5 + 5 3 5 5 5 8 9 1 2 3 + 6 3 6 6 11 12 8 9 1 2 + 3 6 3 5 5 5 8 9 1 2 + 3 6 6 8 9 1 3 6 6 3 + 5 5 3 5 5 3 6 8 9 1 + 2 3 6 3 5 3 5 5 5 3 + 5 5 3 5 5 5 8 9 1 2 + 3 6 3 5 5 3 5 5 3 5 + 5 3 4 4 1 2 2 2 8 9 + 1 2 3 6 3 6 3 5 5 5 + 11 12 8 9 1 2 3 6 3 5 + 5 3 5 3 5 5 5 3 5 5 + 5 8 9 1 2 3 6 3 5 5 + 5 8 9 1 2 3 6 3 5 5 + 5 8 9 1 2 3 6 3 6 6 + 11 12 8 9 1 2 3 6 6 8 + 9 1 2 3 6 3 5 3 5 5 + 5 3 5 5 3 5 5 5 8 9 + 1 2 3 6 3 6 6 11 12 8 + 9 1 2 3 6 3 5 5 8 9 + 1 2 2 8 9 1 2 3 6 3 + 5 5 8 8 10 8 10 8 10 8 + 10 8 10 8 9 1 2 3 6 3 + 5 5 3 5 5 3 5 5 3 4 + 4 1 2 2 2 8 9 1 2 3 + 6 3 5 5 3 5 5 3 5 5 + 3 4 4 1 2 2 2 8 9 1 + 2 3 6 3 5 5 3 6 6 7 + 3 6 6 6 8 9 1 2 3 6 + 3 5 5 3 5 3 5 5 5 3 + 5 5 5 8 9 1 2 3 6 3 + 5 5 8 9 9 8 9 1 2 3 + 6 3 5 5 8 8 10 8 10 8 + 11 12 8 10 8 10 8 9 1 2 + 3 6 3 5 5 8 9 1 2 2 + 8 9 1 2 3 6 3 5 5 5 + 8 9 1 2 3 6 3 5 5 3 + 6 6 7 3 6 6 6 8 9 1 + 2 3 6 3 5 3 5 5 5 3 + 5 5 5 8 9 1 2 3 6 3 + 6 6 11 12 8 9 1 3 6 6 + 3 5 5 3 5 5 3 6 8 9 + 1 2 3 6 3 5 5 3 5 3 + 5 5 5 3 5 5 5 8 9 1 + 2 3 6 3 5 5 3 5 5 3 + 5 5 3 4 4 1 2 2 2 8 + 9 1 2 3 6 3 5 5 3 5 + 5 3 5 5 3 4 4 1 2 2 + 2 8 9 1 2 3 6 3 5 5 + 8 9 1 2 2 8 9 1 2 3 + 6 3 5 3 5 5 5 3 5 5 + 5 8 9 1 2 3 6 3 5 5 + 8 9 9 8 9 1 2 3 6 3 + 5 3 5 5 5 3 5 5 3 5 + 5 5 8 9 1 2 3 6 3 5 + 5 3 6 6 7 3 6 6 6 8 + 9 1 2 3 6 3 5 5 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 6 8 9 1 + 2 3 6 3 5 5 8 9 1 2 + 2 8 9 1 2 3 6 3 6 3 + 5 5 5 11 12 8 9 1 2 3 + 6 3 5 3 5 5 5 3 5 5 + 5 8 9 1 2 3 6 3 5 5 + 5 8 9 1 2 3 6 3 5 5 + 8 8 10 8 10 8 10 8 10 8 + 10 8 9 1 2 3 6 3 5 5 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 3 6 6 7 + 2 8 9 1 2 3 6 3 6 6 + 11 12 8 9 1 2 3 6 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 5 3 6 6 7 3 6 6 + 6 8 9 1 2 3 6 3 5 5 + 5 8 9 1 2 3 6 3 6 3 + 5 5 5 11 12 8 9 1 2 3 + 6 6 8 9 1 2 3 6 3 5 + 3 5 5 5 3 5 5 3 5 5 + 5 8 9 1 2 3 6 3 6 3 + 5 5 5 11 12 8 9 1 2 3 + 6 6 8 9 1 2 3 6 3 5 + 5 3 5 5 8 9 9 8 9 1 + 2 3 6 3 5 3 5 5 5 3 + 5 5 5 8 9 1 2 3 6 3 + 5 3 5 5 5 3 5 5 5 8 + 9 1 2 3 6 3 5 5 8 1 + 8 13 1 2 8 14 8 9 1 2 + 3 6 3 5 3 5 5 5 3 5 + 5 5 8 9 1 2 3 6 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 5 5 8 9 1 2 3 6 + 6 8 9 1 2 3 6 3 5 5 + 8 8 10 8 10 8 11 12 8 10 + 8 10 8 9 1 2 3 6 3 5 + 5 8 1 8 13 1 2 8 14 8 + 9 1 2 3 6 3 6 6 7 2 + 8 9 1 2 3 6 3 5 3 5 + 5 5 3 5 5 5 8 9 1 2 + 3 6 3 6 6 11 12 8 9 1 + 2 3 6 3 5 5 3 6 6 7 + 3 6 6 6 8 9 1 2 3 6 + 6 8 9 1 2 3 6 3 5 5 + 8 9 1 2 2 8 9 1 2 3 + 6 3 5 3 5 5 5 3 5 5 + 5 8 9 1 2 3 6 3 5 5 + 3 5 3 5 5 5 3 5 5 5 + 8 9 1 2 3 6 3 5 5 3 + 5 3 5 5 5 3 5 5 5 8 + 9 1 2 3 6 3 5 5 3 5 + 5 8 9 9 8 9 1 2 3 6 + 3 5 5 8 1 8 13 1 2 8 + 14 8 9 1 2 3 6 3 5 5 + 8 1 8 13 1 2 8 14 8 9 + 1 2 3 6 3 5 5 8 1 8 + 13 1 2 8 14 8 9 1 2 3 + 6 3 5 5 8 1 8 13 1 2 + 8 14 8 9 1 2 3 6 3 5 + 5 8 1 8 13 1 2 8 14 8 + 9 1 2 3 6 3 5 5 8 1 + 8 13 1 2 8 14 8 9 9 15 + 9 9 16 3 3 16 3 11 3 11 + 3 1 8 1 8 8 1 1 8 1 + 8 16 15 9 9 16 3 3 16 3 + 11 3 11 3 1 8 8 8 9 1 + 8 8 8 6 6 6 6 12 6 12 + 17 13 2 2 13 6 6 6 6 12 + 6 12 17 10 2 2 10 10 10 8 + 8 8 8 8 8 16 11 8 8 8 + 8 8 8 18 18 18 10 10 10 12 + 10 10 10 +%FLAG NUMBER_EXCLUDED_ATOMS +%FORMAT(10I8) + 12 6 5 4 13 7 10 6 5 8 + 3 2 4 3 2 1 1 7 3 7 + 4 7 4 3 7 3 10 4 12 7 + 12 5 4 10 8 4 6 3 5 3 + 3 2 1 1 7 3 10 4 13 7 + 15 6 5 10 8 7 3 2 1 3 + 2 1 1 7 3 10 4 10 7 6 + 3 2 1 7 3 7 4 7 4 3 + 7 3 10 4 13 7 12 6 5 10 + 5 4 9 5 4 6 5 4 3 2 + 1 1 7 3 10 4 13 7 12 6 + 5 10 5 4 9 5 4 6 5 4 + 3 2 1 1 7 3 10 4 16 7 + 15 9 8 3 2 1 7 5 4 3 + 2 1 1 7 3 10 4 13 7 15 + 6 5 10 8 7 3 2 1 3 2 + 1 1 7 3 10 4 16 7 15 9 + 8 3 2 1 7 5 4 3 2 1 + 1 7 3 10 4 14 7 10 7 6 + 3 2 1 2 1 7 3 7 4 7 + 4 3 7 3 10 4 13 7 15 6 + 5 10 8 7 3 2 1 3 2 1 + 1 7 3 10 4 13 7 15 6 5 + 10 8 7 3 2 1 3 2 1 1 + 7 3 10 4 11 7 7 4 3 2 + 1 7 3 10 4 12 7 10 5 4 + 5 3 2 1 1 7 3 10 4 13 + 7 12 6 5 10 5 4 9 5 4 + 6 5 4 3 2 1 1 7 3 10 + 4 11 7 7 4 3 2 1 7 3 + 10 4 16 7 15 9 8 3 2 1 + 7 5 4 3 2 1 1 7 3 10 + 4 10 7 6 3 2 1 7 3 10 + 4 12 7 12 5 4 10 8 4 7 + 3 6 4 1 3 2 1 1 7 3 + 7 4 7 4 3 7 3 10 4 16 + 7 15 9 8 3 2 1 7 5 4 + 3 2 1 1 7 3 10 4 10 7 + 6 3 2 1 7 3 10 4 13 7 + 12 6 5 10 5 4 9 5 4 6 + 5 4 3 2 1 1 7 3 10 4 + 10 7 6 3 2 1 7 3 10 4 + 13 7 10 6 5 8 3 2 4 3 + 2 1 1 7 3 10 4 12 7 11 + 5 4 8 6 5 3 3 2 1 1 + 7 3 10 4 13 7 12 6 5 9 + 5 4 7 4 3 8 3 6 5 2 + 1 2 1 1 7 3 10 4 13 7 + 11 6 5 6 4 3 2 1 1 7 + 3 7 4 7 4 3 7 3 10 4 + 10 7 6 3 2 1 7 3 10 4 + 13 7 11 6 5 6 4 3 2 1 + 1 7 3 10 4 13 7 15 6 5 + 10 8 7 3 2 1 3 2 1 1 + 7 3 10 4 10 7 6 3 2 1 + 7 3 10 4 12 7 12 5 4 10 + 8 4 6 3 5 3 3 2 1 1 + 7 3 10 4 14 7 10 7 6 3 + 2 1 2 1 7 3 10 4 12 7 + 12 5 4 10 8 4 7 3 6 4 + 1 3 2 1 1 7 3 10 4 16 + 7 12 9 8 3 2 1 4 2 1 + 1 7 3 7 4 7 4 3 7 3 + 10 4 13 7 11 6 5 8 4 3 + 4 3 2 1 1 7 3 10 4 12 + 7 12 5 4 10 8 4 6 3 5 + 3 3 2 1 1 7 3 10 4 13 + 7 12 6 5 10 5 4 9 5 4 + 6 5 4 3 2 1 1 7 3 10 + 4 12 7 8 5 4 3 1 1 7 + 3 10 4 13 7 12 6 5 9 5 + 4 7 4 3 8 3 6 5 2 1 + 2 1 1 7 3 10 4 16 7 12 + 9 8 3 2 1 4 2 1 1 7 + 3 10 4 13 7 11 6 5 6 4 + 3 2 1 1 7 3 10 4 13 7 + 12 6 5 10 5 4 9 5 4 6 + 5 4 3 2 1 1 7 3 10 4 + 13 7 15 6 5 10 8 7 3 2 + 1 3 2 1 1 7 3 10 4 11 + 7 7 4 3 2 1 7 3 10 4 + 10 7 6 3 2 1 7 3 10 4 + 13 7 11 6 5 6 4 3 2 1 + 1 7 3 10 4 12 7 12 5 4 + 10 8 4 6 3 5 3 3 2 1 + 1 7 3 10 4 12 7 10 5 4 + 5 3 2 1 1 10 3 14 11 6 + 5 8 5 4 7 4 3 6 3 7 + 3 10 4 10 7 6 3 2 1 7 + 3 10 4 10 7 6 3 2 1 7 + 3 10 4 16 7 12 9 8 3 2 + 1 4 2 1 1 7 3 10 4 13 + 7 15 6 5 10 8 7 3 2 1 + 3 2 1 1 10 3 14 11 6 5 + 8 5 4 7 4 3 6 3 7 3 + 10 4 11 7 7 4 3 2 1 7 + 3 10 4 12 7 8 5 4 3 1 + 1 7 3 10 4 16 7 12 9 8 + 3 2 1 4 2 1 1 7 3 10 + 4 16 7 15 9 8 3 2 1 7 + 5 4 3 2 1 1 7 3 10 4 + 11 7 7 4 3 2 1 7 3 10 + 4 12 7 8 5 4 3 1 1 7 + 3 10 4 13 7 11 6 5 8 4 + 3 4 3 2 1 1 7 3 10 4 + 13 7 11 6 5 6 4 3 2 1 + 1 7 3 10 4 16 7 15 9 8 + 3 2 1 7 5 4 3 2 1 1 + 7 3 10 4 13 7 12 6 5 10 + 5 4 9 5 4 6 5 4 3 2 + 1 1 7 3 10 4 12 7 8 5 + 4 3 1 1 7 3 10 4 13 7 + 15 6 5 10 8 7 3 2 1 3 + 2 1 1 7 3 10 4 12 7 12 + 5 4 10 8 4 6 3 5 3 3 + 2 1 1 7 3 10 4 16 7 12 + 9 8 3 2 1 4 2 1 1 7 + 3 10 4 13 7 11 6 5 6 4 + 3 2 1 1 7 3 10 4 13 7 + 15 6 5 10 8 7 3 2 1 3 + 2 1 1 7 3 7 4 7 4 3 + 7 3 10 4 13 7 12 6 5 10 + 5 4 9 5 4 6 5 4 3 2 + 1 1 7 3 10 4 16 7 12 9 + 8 3 2 1 4 2 1 1 7 3 + 10 4 12 7 12 5 4 11 7 4 + 7 3 8 7 4 6 3 4 3 2 + 1 1 7 3 10 4 12 7 8 5 + 4 3 1 1 7 3 7 4 7 4 + 3 7 3 10 4 13 7 15 6 5 + 10 8 7 3 2 1 3 2 1 1 + 7 3 10 4 12 7 8 5 4 3 + 1 1 7 3 10 4 10 7 6 3 + 2 1 7 3 10 4 16 7 15 9 + 8 3 2 1 7 5 4 3 2 1 + 1 7 3 10 4 16 7 12 9 8 + 3 2 1 4 2 1 1 7 3 10 + 4 12 7 11 5 4 8 6 5 3 + 3 2 1 1 7 3 10 4 11 7 + 7 4 3 2 1 7 3 10 4 16 + 7 15 9 8 3 2 1 7 5 4 + 3 2 1 1 7 3 10 4 10 7 + 6 3 2 1 7 3 10 4 12 7 + 12 5 4 10 8 4 6 3 5 3 + 3 2 1 1 7 3 10 4 10 7 + 6 3 2 1 10 3 14 11 6 5 + 8 5 4 7 4 3 6 3 7 3 + 10 4 13 7 12 6 5 9 5 4 + 7 4 3 8 3 6 5 2 1 2 + 1 1 7 3 10 4 12 7 8 5 + 4 3 1 1 7 3 10 4 13 7 + 11 6 5 8 4 3 4 3 2 1 + 1 7 3 10 4 13 7 15 6 5 + 10 8 7 3 2 1 3 2 1 1 + 7 3 10 4 13 7 11 6 5 6 + 4 3 2 1 1 7 3 7 4 7 + 4 3 7 3 10 4 12 7 10 5 + 4 5 3 2 1 1 7 3 10 4 + 12 7 12 5 4 10 8 4 6 3 + 5 3 3 2 1 1 7 3 10 4 + 16 7 15 9 8 3 2 1 7 5 + 4 3 2 1 1 7 3 10 4 12 + 7 8 5 4 3 1 1 7 3 10 + 4 11 7 7 4 3 2 1 7 3 + 10 4 16 7 12 9 8 3 2 1 + 4 2 1 1 7 3 10 4 14 7 + 10 7 6 3 2 1 2 1 7 3 + 10 4 13 7 12 6 5 9 5 4 + 7 4 3 8 3 6 5 2 1 2 + 1 1 7 3 10 4 13 7 11 6 + 5 6 4 3 2 1 1 7 3 7 + 4 7 4 3 7 3 10 4 12 7 + 12 5 4 10 8 4 6 3 5 3 + 3 2 1 1 7 3 10 4 11 7 + 7 4 3 2 1 7 3 10 4 16 + 7 15 9 8 3 2 1 7 5 4 + 3 2 1 1 7 3 10 4 10 7 + 6 3 2 1 7 3 10 4 12 7 + 11 5 4 8 6 5 3 3 2 1 + 1 7 3 10 4 12 7 8 5 4 + 3 1 1 7 3 10 4 16 7 15 + 9 8 3 2 1 7 5 4 3 2 + 1 1 7 3 10 4 11 7 7 4 + 3 2 1 7 3 10 4 10 7 6 + 3 2 1 7 3 10 4 12 7 12 + 5 4 10 8 4 7 3 6 4 1 + 3 2 1 1 7 3 10 4 11 7 + 7 4 3 2 1 7 3 10 4 12 + 7 12 5 4 10 8 4 6 3 5 + 3 3 2 1 1 7 3 10 4 10 + 7 6 3 2 1 7 3 10 4 10 + 7 6 3 2 1 7 3 10 4 13 + 7 15 6 5 10 8 7 3 2 1 + 3 2 1 1 7 3 10 4 10 7 + 6 3 2 1 7 3 10 4 13 7 + 12 6 5 10 5 4 9 5 4 6 + 5 4 3 2 1 1 7 3 10 4 + 13 7 11 6 5 6 4 3 2 1 + 1 7 3 7 4 7 4 3 7 3 + 10 4 13 7 12 6 5 9 5 4 + 7 4 3 8 3 6 5 2 1 2 + 1 1 7 3 10 4 11 7 7 4 + 3 2 1 7 3 10 4 13 7 10 + 6 5 8 3 2 4 3 2 1 1 + 7 3 10 4 13 7 10 6 5 8 + 3 2 4 3 2 1 1 7 3 10 + 4 13 7 12 6 5 10 5 4 9 + 5 4 6 5 4 3 2 1 1 7 + 3 10 4 12 7 10 5 4 5 3 + 2 1 1 7 3 10 4 13 7 12 + 6 5 9 5 4 7 4 3 8 3 + 6 5 2 1 2 1 1 7 3 10 + 4 12 7 10 5 4 5 3 2 1 + 1 7 3 10 4 10 7 6 3 2 + 1 7 3 10 4 11 7 7 4 3 + 2 1 7 3 10 4 13 7 10 6 + 5 8 3 2 4 3 2 1 1 7 + 3 10 4 16 7 12 9 8 3 2 + 1 4 2 1 1 7 3 10 4 10 + 7 6 3 2 1 7 3 10 4 13 + 7 15 6 5 10 8 7 3 2 1 + 3 2 1 1 7 3 10 4 14 7 + 10 7 6 3 2 1 2 1 7 3 + 10 4 12 7 12 5 4 10 8 4 + 7 3 6 4 1 3 2 1 1 7 + 3 10 4 16 7 15 9 8 3 2 + 1 7 5 4 3 2 1 1 7 3 + 7 4 7 4 3 7 3 10 4 10 + 7 6 3 2 1 7 3 10 4 13 + 7 11 6 5 6 4 3 2 1 1 + 7 3 10 4 13 7 12 6 5 10 + 5 4 9 5 4 6 5 4 3 2 + 1 1 7 3 10 4 10 7 6 3 + 2 1 7 3 10 4 13 7 10 6 + 5 8 3 2 4 3 2 1 1 10 + 3 14 11 6 5 8 5 4 7 4 + 3 6 3 7 3 10 4 11 7 7 + 4 3 2 1 7 3 10 4 12 7 + 12 5 4 10 8 4 7 3 6 4 + 1 3 2 1 1 7 3 10 4 12 + 7 10 5 4 5 3 2 1 1 7 + 3 10 4 14 7 10 7 6 3 2 + 1 2 1 7 3 10 4 13 7 10 + 6 5 8 3 2 4 3 2 1 1 + 7 3 7 4 7 4 3 7 3 10 + 4 16 7 12 9 8 3 2 1 4 + 2 1 1 7 3 10 4 10 7 6 + 3 2 1 7 3 10 4 13 7 12 + 6 5 10 5 4 9 5 4 6 5 + 4 3 2 1 1 7 3 10 4 10 + 7 6 3 2 1 7 3 10 4 11 + 7 7 4 3 2 1 7 3 10 4 + 13 7 15 6 5 10 8 7 3 2 + 1 3 2 1 1 7 3 10 4 13 + 7 11 6 5 6 4 3 2 1 1 + 7 3 10 4 10 7 6 3 2 1 + 7 3 10 4 14 7 10 7 6 3 + 2 1 2 1 7 3 10 4 16 7 + 12 9 8 3 2 1 4 2 1 1 + 7 3 10 4 13 7 12 6 5 9 + 5 4 7 4 3 8 3 6 5 2 + 1 2 1 1 7 3 10 4 12 7 + 12 5 4 10 8 4 7 3 6 4 + 1 3 2 1 1 7 3 10 4 14 + 7 10 7 6 3 2 1 2 1 7 + 3 10 4 10 7 6 3 2 1 7 + 3 10 4 13 7 15 6 5 10 8 + 7 3 2 1 3 2 1 1 7 3 + 10 4 10 7 6 3 2 1 7 3 + 10 4 13 7 15 6 5 10 8 7 + 3 2 1 3 2 1 1 7 3 7 + 4 7 4 3 7 3 10 4 13 7 + 11 6 5 6 4 3 2 1 1 7 + 3 10 4 12 7 8 5 4 3 1 + 1 7 3 7 4 7 4 3 7 3 + 10 4 16 7 15 9 8 3 2 1 + 7 5 4 3 2 1 1 7 3 10 + 4 13 7 12 6 5 10 5 4 9 + 5 4 6 5 4 3 2 1 1 7 + 3 10 4 16 7 12 9 8 3 2 + 1 4 2 1 1 7 3 10 4 12 + 7 10 5 4 5 3 2 1 1 7 + 3 10 4 10 7 6 3 2 1 7 + 3 10 4 16 7 12 9 8 3 2 + 1 4 2 1 1 7 3 10 4 11 + 7 7 4 3 2 1 7 3 10 4 + 10 7 6 3 2 1 7 3 7 4 + 7 4 3 10 3 14 11 6 5 8 + 5 4 7 4 3 6 3 7 3 10 + 4 16 7 15 9 8 3 2 1 7 + 5 4 3 2 1 1 7 3 10 4 + 13 7 12 6 5 10 5 4 9 5 + 4 6 5 4 3 2 1 1 7 3 + 10 4 14 7 10 7 6 3 2 1 + 2 1 7 3 10 4 13 7 15 6 + 5 10 8 7 3 2 1 3 2 1 + 1 7 3 10 4 10 7 6 3 2 + 1 7 3 10 4 10 7 6 3 2 + 1 7 3 10 4 11 7 7 4 3 + 2 1 7 3 7 4 7 4 3 7 + 3 10 4 16 7 15 9 8 3 2 + 1 7 5 4 3 2 1 1 7 3 + 10 4 11 7 7 4 3 2 1 7 + 3 10 4 12 7 10 5 4 5 3 + 2 1 1 7 3 10 4 12 7 12 + 5 4 10 8 4 6 3 5 3 3 + 2 1 1 7 3 10 4 13 7 12 + 6 5 10 5 4 9 5 4 6 5 + 4 3 2 1 1 7 3 10 4 13 + 7 12 6 5 10 5 4 9 5 4 + 6 5 4 3 2 1 1 7 3 10 + 4 13 7 10 6 5 8 3 2 4 + 3 2 1 1 7 3 10 4 13 7 + 15 6 5 10 8 7 3 2 1 3 + 2 1 1 7 3 10 4 12 7 8 + 5 4 3 1 1 7 3 10 4 12 + 7 12 5 4 10 8 4 7 3 6 + 4 1 3 2 1 1 7 3 10 4 + 12 7 10 5 4 5 3 2 1 1 + 7 3 10 4 10 7 6 3 2 1 + 7 3 10 4 13 7 10 6 5 8 + 3 2 4 3 2 1 1 7 3 10 + 4 16 7 12 9 8 3 2 1 4 + 2 1 1 7 3 10 4 11 7 7 + 4 3 2 1 10 3 14 11 6 5 + 8 5 4 7 4 3 6 3 7 3 + 10 4 13 7 15 6 5 10 8 7 + 3 2 1 3 2 1 1 7 3 10 + 4 13 7 12 6 5 10 5 4 9 + 5 4 6 5 4 3 2 1 1 7 + 3 10 4 13 7 12 6 5 10 5 + 4 9 5 4 6 5 4 3 2 1 + 1 7 3 10 4 12 7 10 5 4 + 5 3 2 1 1 7 3 10 4 16 + 7 12 9 8 3 2 1 4 2 1 + 1 7 3 10 4 12 7 8 5 4 + 3 1 1 7 3 10 4 16 7 15 + 9 8 3 2 1 7 5 4 3 2 + 1 1 7 3 10 4 13 7 10 6 + 5 8 3 2 4 3 2 1 1 7 + 3 10 4 13 7 11 6 5 6 4 + 3 2 1 1 7 3 10 4 16 7 + 12 9 8 3 2 1 4 2 1 1 + 7 3 7 4 7 4 3 7 3 10 + 4 12 7 10 5 4 5 3 2 1 + 1 7 3 10 4 14 7 10 7 6 + 3 2 1 2 1 7 3 10 4 16 + 7 12 9 8 3 2 1 4 2 1 + 1 7 3 10 4 10 7 6 3 2 + 1 7 3 10 4 12 7 12 5 4 + 10 8 4 6 3 5 3 3 2 1 + 1 7 3 10 4 13 7 15 6 5 + 10 8 7 3 2 1 3 2 1 1 + 7 3 10 4 11 7 7 4 3 2 + 1 7 3 10 4 11 7 7 4 3 + 2 1 7 3 10 4 12 7 8 5 + 4 3 1 1 7 3 10 4 13 7 + 10 6 5 8 3 2 4 3 2 1 + 1 7 3 10 4 10 7 6 3 2 + 1 7 3 10 4 14 7 10 7 6 + 3 2 1 2 1 7 3 7 4 7 + 4 3 7 3 10 4 16 7 15 9 + 8 3 2 1 7 5 4 3 2 1 + 1 7 3 10 4 14 7 10 7 6 + 3 2 1 2 1 7 3 7 4 7 + 4 3 7 3 10 4 13 7 11 6 + 5 6 4 3 2 1 1 7 3 10 + 4 16 7 12 9 8 3 2 1 4 + 2 1 1 7 3 10 4 16 7 12 + 9 8 3 2 1 4 2 1 1 7 + 3 10 4 12 7 11 5 4 8 6 + 5 3 3 2 1 1 7 3 10 4 + 16 7 12 9 8 3 2 1 4 2 + 1 1 7 3 10 4 12 7 8 5 + 4 3 1 1 7 3 10 4 10 7 + 6 3 2 1 7 3 7 4 7 4 + 3 7 3 10 4 12 7 12 5 4 + 10 8 4 7 3 6 4 1 3 2 + 1 1 7 3 10 4 12 7 11 5 + 4 8 6 5 3 3 2 1 1 7 + 3 10 4 11 7 7 4 3 2 1 + 7 3 10 4 16 7 12 9 8 3 + 2 1 4 2 1 1 7 3 10 4 + 11 7 7 4 3 2 1 7 3 10 + 4 13 7 10 6 5 8 3 2 4 + 3 2 1 1 7 3 7 4 7 4 + 3 7 3 10 4 12 7 10 5 4 + 5 3 2 1 1 7 3 10 4 16 + 7 12 9 8 3 2 1 4 2 1 + 1 7 3 10 4 13 7 15 6 5 + 10 8 7 3 2 1 3 2 1 1 + 7 3 10 4 13 7 15 6 5 10 + 8 7 3 2 1 3 2 1 1 7 + 3 10 4 13 7 11 6 5 6 4 + 3 2 1 1 7 3 10 4 12 7 + 11 5 4 8 6 5 3 3 2 1 + 1 7 3 10 4 12 7 11 5 4 + 8 6 5 3 3 2 1 1 7 3 + 10 4 12 7 11 5 4 8 6 5 + 3 3 2 1 1 7 3 10 4 12 + 7 11 5 4 8 6 5 3 3 2 + 1 1 7 3 10 4 12 7 11 5 + 4 8 6 5 3 3 2 1 1 7 + 3 10 4 10 7 11 5 4 8 6 + 5 3 3 2 1 1 2 1 1 12 + 5 4 9 11 14 14 13 7 11 6 + 12 10 7 7 9 8 5 6 3 2 + 3 5 7 3 2 7 10 14 14 13 + 7 11 6 12 11 11 11 8 4 3 + 6 4 5 2 1 1 2 1 2 1 + 1 1 1 1 1 2 1 1 2 1 + 2 1 1 1 1 1 1 1 1 14 + 11 9 7 6 6 9 2 9 8 7 + 7 5 4 1 2 2 1 1 1 1 + 1 1 1 +%FLAG NONBONDED_PARM_INDEX +%FORMAT(10I8) + 1 2 4 7 11 16 22 29 37 46 + 56 67 79 92 106 121 137 154 2 3 + 5 8 12 17 23 30 38 47 57 68 + 80 93 107 122 138 155 4 5 6 9 + 13 18 24 31 39 48 58 69 81 94 + 108 123 139 156 7 8 9 10 14 19 + 25 32 40 49 59 70 82 95 109 124 + 140 157 11 12 13 14 15 20 26 33 + 41 50 60 71 83 96 110 125 141 158 + 16 17 18 19 20 21 27 34 42 51 + 61 72 84 97 111 126 142 159 22 23 + 24 25 26 27 28 35 43 52 62 73 + 85 98 112 127 143 160 29 30 31 32 + 33 34 35 36 44 53 63 74 86 99 + 113 128 144 161 37 38 39 40 41 42 + 43 44 45 54 64 75 87 100 114 129 + 145 162 46 47 48 49 50 51 52 53 + 54 55 65 76 88 101 115 130 146 163 + 56 57 58 59 60 61 62 63 64 65 + 66 77 89 102 116 131 147 164 67 68 + 69 70 71 72 73 74 75 76 77 78 + 90 103 117 132 148 165 79 80 81 82 + 83 84 85 86 87 88 89 90 91 104 + 118 133 149 166 92 93 94 95 96 97 + 98 99 100 101 102 103 104 105 119 134 + 150 167 106 107 108 109 110 111 112 113 + 114 115 116 117 118 119 120 135 151 168 + 121 122 123 124 125 126 127 128 129 130 + 131 132 133 134 135 136 152 169 137 138 + 139 140 141 142 143 144 145 146 147 148 + 149 150 151 152 153 170 154 155 156 157 + 158 159 160 161 162 163 164 165 166 167 + 168 169 170 171 +%FLAG RESIDUE_LABEL +%FORMAT(20a4) +MET GLY PHE LEU ALA GLY LYS LYS ILE LEU ILE THR GLY LEU LEU SER ASN LYS SER ILE +ALA TYR GLY ILE ALA LYS ALA MET HIE ARG GLU GLY ALA GLU LEU ALA PHE THR TYR VAL +GLY GLN PHE LYS ASP ARG VAL GLU LYS LEU CYS ALA GLU PHE ASN PRO ALA ALA VAL LEU +PRO CYS ASP VAL ILE SER ASP GLN GLU ILE LYS ASP LEU PHE VAL GLU LEU GLY LYS VAL +TRP ASP GLY LEU ASP ALA ILE VAL HIE SER ILE ALA PHE ALA PRO ARG ASP GLN LEU GLU +GLY ASN PHE ILE ASP CYS VAL THR ARG GLU GLY PHE SER ILE ALA HIE ASP ILE SER ALA +TYR SER PHE ALA ALA LEU ALA LYS GLU GLY ARG SER MET MET LYS ASN ARG ASN ALA SER +MET VAL ALA LEU THR TYR ILE GLY ALA GLU LYS ALA MET PRO SER TYR ASN THR MET GLY +VAL ALA LYS ALA SER LEU GLU ALA THR VAL ARG TYR THR ALA LEU ALA LEU GLY GLU ASP +GLY ILE LYS VAL ASN ALA VAL SER ALA GLY PRO ILE LYS THR LEU ALA ALA SER GLY ILE +SER ASN PHE LYS LYS MET LEU ASP TYR ASN ALA MET VAL SER PRO LEU LYS LYS ASN VAL +ASP ILE MET GLU VAL GLY ASN THR VAL ALA PHE LEU CYS SER ASP MET ALA THR GLY ILE +THR GLY GLU VAL VAL HIE VAL ASP ALA GLY TYR HIE CYS VAL SER MET GLY ASN VAL LEU +LEU GLU HIE HIE HIE HIE HIE HIE NDP TCS +%FLAG RESIDUE_POINTER +%FORMAT(10I8) + 1 20 27 47 66 76 83 105 127 146 + 165 184 198 205 224 243 254 268 290 301 + 320 330 351 358 377 387 409 419 436 453 + 477 492 499 509 524 543 553 573 587 608 + 624 631 648 668 690 702 726 742 757 779 + 798 809 819 834 854 868 882 892 902 918 + 937 951 962 974 990 1009 1020 1032 1049 1064 + 1083 1105 1117 1136 1156 1172 1187 1206 1213 1235 + 1251 1275 1287 1294 1313 1325 1335 1354 1370 1387 + 1398 1417 1427 1447 1457 1471 1495 1507 1524 1543 + 1558 1565 1579 1599 1618 1630 1641 1657 1671 1695 + 1710 1717 1737 1748 1767 1777 1794 1806 1825 1836 + 1846 1867 1878 1898 1908 1918 1937 1947 1969 1984 + 1991 2015 2026 2043 2060 2082 2096 2120 2134 2144 + 2155 2172 2188 2198 2217 2231 2252 2271 2278 2288 + 2303 2325 2335 2352 2366 2377 2398 2412 2426 2443 + 2450 2466 2476 2498 2508 2519 2538 2553 2563 2577 + 2593 2617 2638 2652 2662 2681 2691 2710 2717 2732 + 2744 2751 2770 2792 2808 2822 2832 2848 2859 2869 + 2876 2890 2909 2931 2945 2964 2974 2984 2995 3002 + 3021 3032 3046 3066 3088 3110 3127 3146 3158 3179 + 3193 3203 3220 3236 3247 3261 3280 3302 3324 3338 + 3354 3366 3385 3402 3417 3433 3440 3454 3468 3484 + 3494 3514 3533 3544 3555 3567 3584 3594 3608 3615 + 3634 3648 3655 3670 3686 3702 3719 3735 3747 3757 + 3764 3785 3802 3813 3829 3840 3857 3864 3878 3894 + 3913 3932 3947 3964 3981 3998 4015 4032 4050 4120 +%FLAG BOND_FORCE_CONSTANT +%FORMAT(5E16.8) + 5.70000000E+02 4.90000000E+02 3.40000000E+02 2.27000000E+02 3.40000000E+02 + 3.10000000E+02 3.40000000E+02 3.17000000E+02 4.34000000E+02 3.67000000E+02 + 4.34000000E+02 3.37000000E+02 3.67000000E+02 4.69000000E+02 3.17000000E+02 + 5.53000000E+02 3.20000000E+02 4.50000000E+02 4.69000000E+02 3.67000000E+02 + 4.34000000E+02 4.27000000E+02 3.67000000E+02 4.77000000E+02 4.88000000E+02 + 4.10000000E+02 5.18000000E+02 3.17000000E+02 4.34000000E+02 4.81000000E+02 + 3.37000000E+02 6.56000000E+02 2.74000000E+02 2.37000000E+02 4.69000000E+02 + 4.69000000E+02 4.47000000E+02 4.28000000E+02 5.46000000E+02 3.88000000E+02 + 3.17000000E+02 3.50000000E+02 4.20000000E+02 3.50000000E+02 4.50000000E+02 + 3.50000000E+02 4.34000000E+02 3.02000000E+02 8.60000000E+02 3.02000000E+02 + 4.20000000E+02 3.37000000E+02 3.40000000E+02 3.20000000E+02 2.30000000E+02 + 5.25000000E+02 4.61000000E+02 5.02000000E+02 3.67000000E+02 4.83000000E+02 + 5.20000000E+02 4.14000000E+02 5.29000000E+02 3.67000000E+02 4.40000000E+02 + 4.36000000E+02 3.37000000E+02 3.44300000E+02 4.78400000E+02 3.22800000E+02 + 3.69600000E+02 3.72400000E+02 3.86100000E+02 +%FLAG BOND_EQUIL_VALUE +%FORMAT(5E16.8) + 1.22900000E+00 1.33500000E+00 1.09000000E+00 1.81000000E+00 1.09000000E+00 + 1.52600000E+00 1.09000000E+00 1.52200000E+00 1.01000000E+00 1.47100000E+00 + 1.01000000E+00 1.44900000E+00 1.08000000E+00 1.40000000E+00 1.51000000E+00 + 9.60000000E-01 1.41000000E+00 1.36400000E+00 1.40900000E+00 1.08000000E+00 + 1.01000000E+00 1.38100000E+00 1.08000000E+00 1.34300000E+00 1.33500000E+00 + 1.39400000E+00 1.37100000E+00 1.50400000E+00 1.01000000E+00 1.34000000E+00 + 1.46300000E+00 1.25000000E+00 1.33600000E+00 1.81000000E+00 1.40400000E+00 + 1.40000000E+00 1.41900000E+00 1.38000000E+00 1.35200000E+00 1.45900000E+00 + 1.49500000E+00 1.09000000E+00 1.35000000E+00 1.09000000E+00 1.36000000E+00 + 1.09000000E+00 1.01000000E+00 1.48000000E+00 1.23000000E+00 1.48000000E+00 + 1.31500000E+00 1.47500000E+00 1.09000000E+00 1.41000000E+00 1.61000000E+00 + 1.48000000E+00 1.35400000E+00 1.32400000E+00 1.08000000E+00 1.33900000E+00 + 1.37000000E+00 1.39100000E+00 1.30400000E+00 1.08000000E+00 1.37100000E+00 + 1.37400000E+00 1.47500000E+00 1.08700000E+00 1.38700000E+00 1.72900000E+00 + 9.74000000E-01 1.37300000E+00 1.36200000E+00 +%FLAG ANGLE_FORCE_CONSTANT +%FORMAT(5E16.8) + 8.00000000E+01 5.00000000E+01 5.00000000E+01 3.50000000E+01 5.00000000E+01 + 6.20000000E+01 5.00000000E+01 3.50000000E+01 6.30000000E+01 5.00000000E+01 + 5.00000000E+01 5.00000000E+01 5.00000000E+01 4.00000000E+01 8.00000000E+01 + 7.00000000E+01 5.00000000E+01 3.50000000E+01 5.00000000E+01 8.00000000E+01 + 8.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 6.30000000E+01 + 5.00000000E+01 6.30000000E+01 5.00000000E+01 7.00000000E+01 6.30000000E+01 + 8.00000000E+01 3.50000000E+01 5.00000000E+01 5.00000000E+01 5.50000000E+01 + 3.50000000E+01 5.00000000E+01 7.00000000E+01 5.00000000E+01 5.00000000E+01 + 6.30000000E+01 6.30000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 + 7.00000000E+01 7.00000000E+01 5.00000000E+01 5.00000000E+01 7.00000000E+01 + 7.00000000E+01 6.30000000E+01 3.50000000E+01 7.00000000E+01 5.00000000E+01 + 5.00000000E+01 5.00000000E+01 5.00000000E+01 8.00000000E+01 8.00000000E+01 + 7.00000000E+01 5.00000000E+01 4.30000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 6.30000000E+01 6.30000000E+01 5.00000000E+01 6.30000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 6.30000000E+01 + 7.00000000E+01 5.00000000E+01 7.00000000E+01 6.30000000E+01 6.30000000E+01 + 5.00000000E+01 7.00000000E+01 7.00000000E+01 6.30000000E+01 3.50000000E+01 + 3.00000000E+01 8.00000000E+01 8.00000000E+01 4.00000000E+01 3.00000000E+01 + 8.50000000E+01 4.00000000E+01 3.50000000E+01 8.50000000E+01 8.50000000E+01 + 5.00000000E+01 3.00000000E+01 1.00000000E+01 5.00000000E+01 1.20000000E+02 + 8.00000000E+01 7.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 5.00000000E+01 5.00000000E+01 6.00000000E+01 1.00000000E+02 + 1.40000000E+02 1.00000000E+02 4.50000000E+01 5.00000000E+01 7.00000000E+01 + 7.00000000E+01 7.00000000E+01 6.30000000E+01 7.00000000E+01 7.00000000E+01 + 7.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 + 7.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 5.00000000E+01 + 7.00000000E+01 7.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 + 5.00000000E+01 1.00000000E+02 4.84600000E+01 6.29200000E+01 6.71800000E+01 + 6.97900000E+01 6.98500000E+01 4.88500000E+01 6.33100000E+01 +%FLAG ANGLE_EQUIL_VALUE +%FORMAT(5E16.8) + 2.14501057E+00 2.09439600E+00 2.12755727E+00 1.91113635E+00 1.91113635E+00 + 1.72613137E+00 1.91113635E+00 1.91113635E+00 1.93906163E+00 1.91113635E+00 + 2.00189351E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 2.10137732E+00 + 2.03505478E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.94080696E+00 + 1.94080696E+00 1.91113635E+00 2.06018753E+00 1.91113635E+00 1.92160833E+00 + 2.09439600E+00 2.09439600E+00 1.91113635E+00 2.09439600E+00 1.98967620E+00 + 1.91462701E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.89368305E+00 + 2.09439600E+00 1.91113635E+00 2.09439600E+00 1.97222290E+00 2.09439600E+00 + 2.09439600E+00 2.09439600E+00 2.09439600E+00 2.09439600E+00 2.09439600E+00 + 2.09439600E+00 2.09439600E+00 2.09439600E+00 2.09439600E+00 2.09439600E+00 + 2.04203610E+00 2.09439600E+00 2.09439600E+00 1.91113635E+00 2.09439600E+00 + 2.09439600E+00 1.97396823E+00 2.09439600E+00 2.09439600E+00 2.09439600E+00 + 1.91113635E+00 2.06647072E+00 2.15024656E+00 1.94080696E+00 2.19911580E+00 + 2.04203610E+00 1.91113635E+00 1.67551680E+00 1.89542838E+00 2.05948940E+00 + 2.09439600E+00 2.09439600E+00 2.14151991E+00 2.09439600E+00 2.09439600E+00 + 2.02807346E+00 2.14850123E+00 2.31779824E+00 1.82212452E+00 1.85703112E+00 + 1.94778828E+00 2.09439600E+00 1.89717371E+00 1.89891904E+00 2.35445017E+00 + 1.91113635E+00 2.18166250E+00 2.24449438E+00 2.01760148E+00 2.09439600E+00 + 2.12930260E+00 2.11184930E+00 2.10312265E+00 2.05948940E+00 2.07694270E+00 + 2.24274905E+00 1.92335366E+00 2.09439600E+00 1.97222290E+00 2.06821605E+00 + 2.05948940E+00 2.09439600E+00 2.30034494E+00 1.91113635E+00 2.12930260E+00 + 2.05076275E+00 2.12406661E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.88897066E+00 + 2.09265067E+00 2.10312265E+00 1.79070858E+00 2.01498349E+00 1.93731630E+00 + 2.25322103E+00 2.08217869E+00 2.04727209E+00 2.06996138E+00 2.22878641E+00 + 2.04727209E+00 2.15548255E+00 2.14762857E+00 1.92684432E+00 2.31081692E+00 + 1.83957782E+00 1.81165254E+00 1.91113635E+00 1.98793087E+00 2.14762857E+00 + 1.85354046E+00 2.20260646E+00 2.24798504E+00 2.19562514E+00 1.91113635E+00 + 1.91113635E+00 2.10312265E+00 2.09457053E+00 2.08392402E+00 2.09387240E+00 + 2.08043336E+00 2.09334880E+00 1.91061275E+00 2.09352334E+00 +%FLAG DIHEDRAL_FORCE_CONSTANT +%FORMAT(5E16.8) + 2.00000000E+00 2.50000000E+00 0.00000000E+00 0.00000000E+00 2.70000000E-01 + 4.20000000E-01 0.00000000E+00 3.33333333E-01 1.55555556E-01 2.00000000E-01 + 2.00000000E-01 4.00000000E-01 2.00000000E+00 8.00000000E-01 8.00000000E-02 + 4.50000000E-01 1.58000000E+00 5.50000000E-01 3.62500000E+00 1.60000000E-01 + 1.50000000E-01 2.00000000E-01 2.50000000E-01 1.80000000E-01 2.50000000E-01 + 0.00000000E+00 1.66666667E-01 2.30000000E+00 1.50000000E+00 2.32500000E+00 + 2.40000000E+00 5.37500000E+00 5.00000000E+00 2.50000000E-01 3.00000000E+00 + 3.50000000E+00 1.52500000E+00 6.52500000E+00 1.67500000E+00 1.10000000E+00 + 1.05000000E+01 1.00000000E+00 2.00000000E+00 6.20000000E-01 2.38000000E+00 + 4.00000000E+00 6.00000000E+00 7.00000000E+00 3.50000000E-01 3.83333333E-01 + 1.17500000E+00 1.44000000E-01 1.00000000E-01 3.83000000E-01 1.20000000E+00 + 1.70000000E+00 6.80000000E+00 4.80000000E+00 5.45000000E+00 1.00000000E+01 + 4.15000000E+00 1.65000000E+00 2.55000000E+00 2.50000000E+00 6.50000000E-01 + 9.00000000E-01 +%FLAG DIHEDRAL_PERIODICITY +%FORMAT(5E16.8) + 1.00000000E+00 2.00000000E+00 2.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 4.00000000E+00 3.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 2.00000000E+00 1.00000000E+00 3.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 2.00000000E+00 3.00000000E+00 + 3.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 + 3.00000000E+00 3.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 3.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 1.00000000E+00 3.00000000E+00 + 2.00000000E+00 3.00000000E+00 2.00000000E+00 3.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 1.00000000E+00 2.00000000E+00 + 2.00000000E+00 +%FLAG DIHEDRAL_PHASE +%FORMAT(5E16.8) + 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 + 0.00000000E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 3.14159400E+00 +%FLAG SCEE_SCALE_FACTOR +%FORMAT(5E16.8) + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 +%FLAG SCNB_SCALE_FACTOR +%FORMAT(5E16.8) + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 +%FLAG SOLTY +%FORMAT(5E16.8) + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 +%FLAG LENNARD_JONES_ACOEF +%FORMAT(5E16.8) + 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03 + 1.04308023E+06 2.01791425E+04 9.14716911E+00 2.27401052E+04 2.01823541E+02 + 8.96776989E+04 1.07193645E+02 9.71708117E+04 1.41077189E+03 7.51607703E+03 + 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 4.98586848E+03 + 3.25969625E+03 2.01562190E+06 5.97860700E+03 2.09861767E+06 4.93469320E+04 + 2.02461849E+05 1.42791446E+05 4.19430400E+06 8.82619071E+05 2.27577560E+03 + 9.24822269E+05 2.01619733E+04 8.61541883E+04 6.01816484E+04 1.86068943E+06 + 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04 + 5.44261042E+04 3.69471530E+04 1.32911052E+06 5.74393458E+05 3.79876399E+05 + 7.91627155E+04 8.90987508E+01 8.59947003E+04 1.21014911E+03 6.55825601E+03 + 4.33325458E+03 1.79647997E+05 7.62451550E+04 4.77908184E+04 5.71629601E+03 + 7.44975864E+05 1.40467023E+03 7.91544156E+05 1.45985502E+04 6.82786631E+04 + 4.66922514E+04 1.61587928E+06 7.01803794E+05 4.71003287E+05 6.00750218E+04 + 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 5.46147253E+04 4.90239937E+01 + 5.98885646E+04 7.50063100E+02 4.33325458E+03 2.82099197E+03 1.26338489E+05 + 5.30987710E+04 3.23283631E+04 3.76169106E+03 4.09427581E+04 0.00000000E+00 + 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02 + 5.34045360E+03 3.50301067E+03 1.50848032E+05 6.37148277E+04 3.93690817E+04 + 4.64559155E+03 4.96707305E+04 0.00000000E+00 3.03448006E+03 3.76169105E+03 + 2.45746558E+06 8.41065839E+03 2.54188684E+06 6.46047669E+04 2.54238516E+05 + 1.81087383E+05 5.04534981E+06 2.25370349E+06 1.64263766E+06 2.26202023E+05 + 1.98683736E+06 0.00000000E+00 1.60682053E+05 1.90880272E+05 6.02589390E+06 + 5.89818288E+05 1.03954408E+03 6.28541239E+05 1.11851919E+04 5.33379252E+04 + 3.63097246E+04 1.28707992E+06 5.57281136E+05 3.70622491E+05 4.68711055E+04 + 4.58874091E+05 0.00000000E+00 3.17965283E+04 3.86654992E+04 1.58759528E+06 + 3.61397723E+05 4.24594555E+04 3.20009193E+01 4.68930885E+04 5.37190941E+02 + 3.25969625E+03 2.09814978E+03 9.96589436E+04 4.15766412E+04 2.47595516E+04 + 2.82099197E+03 3.15360051E+04 0.00000000E+00 1.80748014E+03 2.26273716E+03 + 1.27716552E+05 2.44050578E+04 1.32801250E+03 1.76079018E+06 4.83020817E+03 + 1.83982239E+06 4.14717456E+04 1.74057868E+05 1.22102013E+05 3.69078434E+06 + 1.63123475E+06 1.15256113E+06 1.54217681E+05 1.40513595E+06 0.00000000E+00 + 1.07864592E+05 1.29147101E+05 4.45680858E+06 1.11729277E+06 8.47352634E+04 + 3.24095688E+06 +%FLAG LENNARD_JONES_BCOEF +%FORMAT(5E16.8) + 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01 + 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00 + 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 2.17257828E+01 + 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.76949863E+01 + 1.43076527E+01 1.28923404E+03 3.87070358E+01 1.17824605E+03 1.11203892E+02 + 2.25248294E+02 1.89165096E+02 2.04800000E+03 6.53361429E+02 1.82891803E+01 + 5.99015525E+02 5.44372327E+01 1.12529845E+02 9.40505981E+01 1.04466382E+03 + 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951804E+01 + 1.11805549E+02 9.21192136E+01 1.10369829E+03 5.55666449E+02 5.64885984E+02 + 1.26451907E+02 2.33864085E+00 1.18043747E+02 8.61880723E+00 2.00642027E+01 + 1.63092814E+01 2.09772716E+02 1.04660679E+02 1.03580945E+02 1.85196588E+01 + 7.50714426E+02 1.79702257E+01 6.93079947E+02 5.79323582E+01 1.25287819E+02 + 1.03606917E+02 1.21753341E+03 6.14502845E+02 6.29300711E+02 1.16187983E+02 + 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.05031585E+02 1.73473071E+00 + 9.85097219E+01 6.78541827E+00 1.63092814E+01 1.31591746E+01 1.75916126E+02 + 8.73413013E+01 8.51921330E+01 1.50233639E+01 9.59185914E+01 0.00000000E+00 + 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00 + 1.81057616E+01 1.46638650E+01 1.92224012E+02 9.56748257E+01 9.40124296E+01 + 1.66953734E+01 1.05648788E+02 0.00000000E+00 1.34932874E+01 1.50233639E+01 + 1.34630496E+03 4.34187588E+01 1.22636552E+03 1.20335756E+02 2.38716853E+02 + 2.01468199E+02 2.12431120E+03 1.08732781E+03 1.16041466E+03 2.22617116E+02 + 1.27682121E+03 0.00000000E+00 1.87626421E+02 2.04498832E+02 2.19561270E+03 + 6.33305958E+02 1.46567808E+01 5.85549272E+02 4.80771660E+01 1.04986921E+02 + 8.66220818E+01 1.03022002E+03 5.19163331E+02 5.29252520E+02 9.73010751E+01 + 5.89183300E+02 0.00000000E+00 8.01410251E+01 8.83744760E+01 1.08210555E+03 + 4.95732238E+02 9.36708259E+01 1.41762397E+00 8.81685417E+01 5.80823477E+00 + 1.43076527E+01 1.14788417E+01 1.58033097E+02 7.81725399E+01 7.54103785E+01 + 1.31591746E+01 8.51470648E+01 0.00000000E+00 1.05333009E+01 1.17854122E+01 + 1.69194406E+02 7.10161395E+01 9.13231543E+00 1.22266505E+03 3.53019992E+01 + 1.11939598E+03 1.03440958E+02 2.11915736E+02 1.77491594E+02 1.94933195E+03 + 9.92485818E+02 1.04286543E+03 1.97211104E+02 1.15202544E+03 0.00000000E+00 + 1.64931547E+02 1.80470661E+02 2.02586711E+03 9.73951183E+02 1.47859240E+02 + 1.85348706E+03 +%FLAG BONDS_INC_HYDROGEN +%FORMAT(10I8) + 39 42 3 39 45 3 39 48 3 27 + 30 3 27 33 3 18 21 5 18 24 + 5 12 15 7 0 3 9 0 6 9 + 0 9 9 63 66 3 63 69 3 57 + 60 11 126 129 13 120 123 13 114 117 + 13 108 111 13 102 105 13 90 93 5 + 90 96 5 84 87 3 78 81 11 177 + 180 5 177 183 5 177 186 5 165 168 + 5 165 171 5 165 174 5 159 162 5 + 150 153 5 150 156 5 144 147 3 138 + 141 11 207 210 5 207 213 5 207 216 + 5 201 204 3 195 198 11 231 234 3 + 231 237 3 225 228 11 294 297 9 294 + 300 9 294 303 9 285 288 7 285 291 + 7 276 279 5 276 282 5 267 270 5 + 267 273 5 258 261 5 258 264 5 252 + 255 3 246 249 11 360 363 9 360 366 + 9 360 369 9 351 354 7 351 357 7 + 342 345 5 342 348 5 333 336 5 333 + 339 5 324 327 5 324 330 5 318 321 + 3 312 315 11 417 420 5 417 423 5 + 417 426 5 408 411 5 408 414 5 396 + 399 5 396 402 5 396 405 5 390 393 + 5 384 387 3 378 381 11 474 477 5 + 474 480 5 474 483 5 462 465 5 462 + 468 5 462 471 5 456 459 5 447 450 + 5 447 453 5 441 444 3 435 438 11 + 531 534 5 531 537 5 531 540 5 522 + 525 5 522 528 5 510 513 5 510 516 + 5 510 519 5 504 507 5 498 501 3 + 492 495 11 579 582 16 567 570 5 567 + 573 5 567 576 5 561 564 3 555 558 + 3 549 552 11 597 600 3 597 603 3 + 591 594 11 651 654 5 651 657 5 651 + 660 5 639 642 5 639 645 5 639 648 + 5 633 636 5 624 627 5 624 630 5 + 618 621 3 612 615 11 708 711 5 708 + 714 5 708 717 5 696 699 5 696 702 + 5 696 705 5 690 693 5 681 684 5 + 681 687 5 675 678 3 669 672 11 747 + 750 16 738 741 3 738 744 3 732 735 + 3 726 729 11 786 789 11 786 792 11 + 771 774 5 771 777 5 765 768 3 759 + 762 11 849 852 9 849 855 9 849 858 + 9 840 843 7 840 846 7 831 834 5 + 831 837 5 822 825 5 822 828 5 813 + 816 5 813 819 5 807 810 3 801 804 + 11 888 891 16 879 882 3 879 885 3 + 873 876 3 867 870 11 939 942 5 939 + 945 5 939 948 5 930 933 5 930 936 + 5 918 921 5 918 924 5 918 927 5 + 912 915 5 906 909 3 900 903 11 969 + 972 5 969 975 5 969 978 5 963 966 + 3 957 960 11 1038 1041 13 1032 1035 13 + 1026 1029 16 1017 1020 13 1011 1014 13 999 + 1002 5 999 1005 5 993 996 3 987 990 + 11 1056 1059 3 1056 1062 3 1050 1053 11 + 1110 1113 5 1110 1116 5 1110 1119 5 1101 + 1104 5 1101 1107 5 1089 1092 5 1089 1095 + 5 1089 1098 5 1083 1086 5 1077 1080 3 + 1071 1074 11 1140 1143 5 1140 1146 5 1140 + 1149 5 1134 1137 3 1128 1131 11 1206 1209 + 9 1206 1212 9 1206 1215 9 1197 1200 7 + 1197 1203 7 1188 1191 5 1188 1194 5 1179 + 1182 5 1179 1185 5 1170 1173 5 1170 1176 + 5 1164 1167 3 1158 1161 11 1236 1239 5 + 1236 1242 5 1236 1245 5 1230 1233 3 1224 + 1227 11 1287 1290 3 1287 1293 3 1287 1296 + 3 1275 1278 3 1275 1281 3 1266 1269 5 + 1266 1272 5 1260 1263 3 1254 1257 11 1344 + 1347 20 1338 1341 21 1332 1335 23 1317 1320 + 5 1317 1323 5 1311 1314 3 1305 1308 11 + 1413 1416 29 1413 1419 29 1404 1407 29 1404 + 1410 29 1395 1398 29 1386 1389 3 1386 1392 + 3 1377 1380 5 1377 1383 5 1368 1371 5 + 1368 1374 5 1362 1365 3 1356 1359 11 1449 + 1452 5 1449 1455 5 1440 1443 5 1440 1446 + 5 1434 1437 3 1428 1431 11 1479 1482 3 + 1479 1485 3 1473 1476 11 1506 1509 5 1506 + 1512 5 1506 1515 5 1500 1503 3 1494 1497 + 11 1545 1548 5 1545 1551 5 1536 1539 5 + 1536 1542 5 1530 1533 3 1524 1527 11 1608 + 1611 5 1608 1614 5 1608 1617 5 1596 1599 + 5 1596 1602 5 1596 1605 5 1590 1593 5 + 1581 1584 5 1581 1587 5 1575 1578 3 1569 + 1572 11 1638 1641 5 1638 1644 5 1638 1647 + 5 1632 1635 3 1626 1629 11 1704 1707 13 + 1698 1701 13 1692 1695 13 1686 1689 13 1680 + 1683 13 1668 1671 5 1668 1674 5 1662 1665 + 3 1656 1659 11 1746 1749 16 1734 1737 5 + 1734 1740 5 1734 1743 5 1728 1731 3 1722 + 1725 3 1716 1719 11 1809 1812 13 1803 1806 + 13 1797 1800 16 1788 1791 13 1782 1785 13 + 1770 1773 5 1770 1776 5 1764 1767 3 1758 + 1761 11 1851 1854 5 1851 1857 5 1851 1860 + 5 1839 1842 5 1839 1845 5 1839 1848 5 + 1833 1836 5 1827 1830 3 1821 1824 11 1875 + 1878 3 1875 1881 3 1869 1872 11 1926 1929 + 11 1926 1932 11 1911 1914 5 1911 1917 5 + 1902 1905 5 1902 1908 5 1896 1899 3 1890 + 1893 11 1989 1992 13 1983 1986 13 1977 1980 + 13 1971 1974 13 1965 1968 13 1953 1956 5 + 1953 1959 5 1947 1950 3 1941 1944 11 2049 + 2052 9 2049 2055 9 2049 2058 9 2040 2043 + 7 2040 2046 7 2031 2034 5 2031 2037 5 + 2022 2025 5 2022 2028 5 2013 2016 5 2013 + 2019 5 2007 2010 3 2001 2004 11 2079 2082 + 5 2079 2085 5 2073 2076 3 2067 2070 11 + 2160 2163 29 2160 2166 29 2151 2154 29 2151 + 2157 29 2142 2145 29 2133 2136 3 2133 2139 + 3 2124 2127 5 2124 2130 5 2115 2118 5 + 2115 2121 5 2109 2112 3 2103 2106 11 2205 + 2208 5 2205 2211 5 2205 2214 5 2193 2196 + 5 2193 2199 5 2193 2202 5 2187 2190 5 + 2181 2184 3 2175 2178 11 2244 2247 5 2244 + 2250 5 2235 2238 5 2235 2241 5 2229 2232 + 3 2223 2226 11 2316 2319 9 2316 2322 9 + 2316 2325 9 2307 2310 7 2307 2313 7 2298 + 2301 5 2298 2304 5 2289 2292 5 2289 2295 + 5 2280 2283 5 2280 2286 5 2274 2277 3 + 2268 2271 11 2373 2376 5 2373 2379 5 2373 + 2382 5 2361 2364 5 2361 2367 5 2361 2370 + 5 2355 2358 5 2346 2349 5 2346 2352 5 + 2340 2343 3 2334 2337 11 2412 2415 33 2403 + 2406 3 2403 2409 3 2397 2400 3 2391 2394 + 11 2436 2439 5 2436 2442 5 2436 2445 5 + 2430 2433 3 2424 2427 11 2475 2478 5 2475 + 2481 5 2466 2469 5 2466 2472 5 2460 2463 + 3 2454 2457 11 2547 2550 13 2541 2544 13 + 2535 2538 13 2529 2532 13 2523 2526 13 2511 + 2514 5 2511 2517 5 2505 2508 3 2499 2502 + 11 2586 2589 11 2586 2592 11 2571 2574 5 + 2571 2577 5 2565 2568 3 2559 2562 11 2631 + 2634 3 2622 2625 5 2622 2628 5 2613 2616 + 5 2613 2619 5 2604 2607 3 2604 2610 3 + 2655 2658 5 2655 2661 5 2655 2664 5 2649 + 2652 3 2643 2646 11 2685 2688 5 2685 2691 + 5 2685 2694 5 2679 2682 3 2673 2676 11 + 2733 2736 5 2733 2739 5 2733 2742 5 2721 + 2724 5 2721 2727 5 2721 2730 5 2715 2718 + 5 2709 2712 3 2703 2706 11 2790 2793 5 + 2790 2796 5 2790 2799 5 2778 2781 5 2778 + 2784 5 2778 2787 5 2772 2775 5 2763 2766 + 5 2763 2769 5 2757 2760 3 2751 2754 11 + 2838 2841 3 2829 2832 5 2829 2835 5 2820 + 2823 5 2820 2826 5 2811 2814 3 2811 2817 + 3 2871 2874 33 2862 2865 3 2862 2868 3 + 2856 2859 3 2850 2853 11 2895 2898 5 2895 + 2901 5 2889 2892 3 2883 2886 11 2949 2952 + 5 2949 2955 5 2949 2958 5 2937 2940 5 + 2937 2943 5 2937 2946 5 2931 2934 5 2925 + 2928 3 2919 2922 11 3006 3009 5 3006 3012 + 5 3006 3015 5 2997 3000 5 2997 3003 5 + 2985 2988 5 2985 2991 5 2985 2994 5 2979 + 2982 5 2973 2976 3 2967 2970 11 3045 3048 + 16 3036 3039 3 3036 3042 3 3030 3033 3 + 3024 3027 11 3069 3072 5 3069 3075 5 3063 + 3066 3 3057 3060 11 3129 3132 11 3129 3135 + 11 3114 3117 5 3114 3120 5 3105 3108 5 + 3105 3111 5 3099 3102 3 3093 3096 11 3165 + 3168 5 3165 3171 5 3156 3159 5 3156 3162 + 5 3150 3153 3 3144 3147 11 3228 3231 5 + 3228 3234 5 3228 3237 5 3219 3222 5 3219 + 3225 5 3207 3210 5 3207 3213 5 3207 3216 + 5 3201 3204 5 3195 3198 3 3189 3192 11 + 3294 3297 9 3294 3300 9 3294 3303 9 3285 + 3288 7 3285 3291 7 3276 3279 5 3276 3282 + 5 3267 3270 5 3267 3273 5 3258 3261 5 + 3258 3264 5 3252 3255 3 3246 3249 11 3324 + 3327 5 3324 3330 5 3318 3321 3 3312 3315 + 11 3387 3390 5 3387 3393 5 3387 3396 5 + 3375 3378 5 3375 3381 5 3375 3384 5 3369 + 3372 5 3360 3363 5 3360 3366 5 3354 3357 + 3 3348 3351 11 3453 3456 13 3447 3450 13 + 3441 3444 13 3435 3438 13 3429 3432 13 3417 + 3420 5 3417 3423 5 3411 3414 3 3405 3408 + 11 3495 3498 5 3495 3501 5 3495 3504 5 + 3483 3486 5 3483 3489 5 3483 3492 5 3477 + 3480 5 3471 3474 3 3465 3468 11 3534 3537 + 5 3534 3540 5 3525 3528 5 3525 3531 5 + 3519 3522 3 3513 3516 11 3597 3600 5 3597 + 3603 5 3597 3606 5 3585 3588 5 3585 3591 + 5 3585 3594 5 3579 3582 5 3570 3573 5 + 3570 3576 5 3564 3567 3 3558 3561 11 3621 + 3624 3 3621 3627 3 3615 3618 11 3684 3687 + 9 3684 3690 9 3684 3693 9 3675 3678 7 + 3675 3681 7 3666 3669 5 3666 3672 5 3657 + 3660 5 3657 3663 5 3648 3651 5 3648 3654 + 5 3642 3645 3 3636 3639 11 3732 3735 5 + 3732 3738 5 3732 3741 5 3720 3723 5 3720 + 3726 5 3720 3729 5 3714 3717 5 3708 3711 + 3 3702 3705 11 3807 3810 13 3801 3804 13 + 3795 3798 13 3789 3792 13 3780 3783 21 3774 + 3777 20 3762 3765 5 3762 3768 5 3756 3759 + 3 3750 3753 11 3834 3837 5 3834 3840 5 + 3828 3831 3 3822 3825 11 3864 3867 3 3864 + 3870 3 3858 3861 11 3918 3921 5 3918 3924 + 5 3918 3927 5 3906 3909 5 3906 3912 5 + 3906 3915 5 3900 3903 5 3891 3894 5 3891 + 3897 5 3885 3888 3 3879 3882 11 3948 3951 + 5 3948 3954 5 3942 3945 3 3936 3939 11 + 3984 3987 5 3984 3990 5 3984 3993 5 3978 + 3981 3 3972 3975 11 4041 4044 5 4041 4047 + 5 4041 4050 5 4032 4035 5 4032 4038 5 + 4020 4023 5 4020 4026 5 4020 4029 5 4014 + 4017 5 4008 4011 3 4002 4005 11 4089 4092 + 5 4089 4095 5 4089 4098 5 4077 4080 5 + 4077 4083 5 4077 4086 5 4071 4074 5 4065 + 4068 3 4059 4062 11 4146 4149 20 4140 4143 + 21 4134 4137 23 4119 4122 5 4119 4125 5 + 4113 4116 3 4107 4110 11 4179 4182 16 4170 + 4173 3 4170 4176 3 4164 4167 3 4158 4161 + 11 4230 4233 5 4230 4236 5 4230 4239 5 + 4221 4224 5 4221 4227 5 4209 4212 5 4209 + 4215 5 4209 4218 5 4203 4206 5 4197 4200 + 3 4191 4194 11 4260 4263 5 4260 4266 5 + 4260 4269 5 4254 4257 3 4248 4251 11 4326 + 4329 13 4320 4323 13 4314 4317 13 4308 4311 + 13 4302 4305 13 4290 4293 5 4290 4296 5 + 4284 4287 3 4278 4281 11 4350 4353 5 4350 + 4356 5 4350 4359 5 4344 4347 3 4338 4341 + 11 4398 4401 3 4389 4392 5 4389 4395 5 + 4380 4383 5 4380 4386 5 4371 4374 3 4371 + 4377 3 4467 4470 29 4467 4473 29 4458 4461 + 29 4458 4464 29 4449 4452 29 4440 4443 3 + 4440 4446 3 4431 4434 5 4431 4437 5 4422 + 4425 5 4422 4428 5 4416 4419 3 4410 4413 + 11 4494 4497 5 4494 4500 5 4488 4491 3 + 4482 4485 11 4554 4557 11 4554 4560 11 4539 + 4542 5 4539 4545 5 4530 4533 5 4530 4536 + 5 4524 4527 3 4518 4521 11 4608 4611 5 + 4608 4614 5 4608 4617 5 4596 4599 5 4596 + 4602 5 4596 4605 5 4590 4593 5 4581 4584 + 5 4581 4587 5 4575 4578 3 4569 4572 11 + 4647 4650 5 4647 4653 5 4638 4641 5 4638 + 4644 5 4632 4635 3 4626 4629 11 4677 4680 + 3 4677 4683 3 4671 4674 11 4719 4722 11 + 4719 4725 11 4704 4707 5 4704 4710 5 4698 + 4701 3 4692 4695 11 4782 4785 13 4776 4779 + 13 4770 4773 13 4764 4767 13 4758 4761 13 + 4746 4749 5 4746 4752 5 4740 4743 3 4734 + 4737 11 4833 4836 5 4833 4839 5 4833 4842 + 5 4824 4827 5 4824 4830 5 4812 4815 5 + 4812 4818 5 4812 4821 5 4806 4809 5 4800 + 4803 3 4794 4797 11 4863 4866 5 4863 4869 + 5 4857 4860 3 4851 4854 11 4908 4911 33 + 4899 4902 3 4899 4905 3 4893 4896 3 4887 + 4890 11 4950 4953 5 4950 4956 5 4950 4959 + 5 4938 4941 5 4938 4944 5 4938 4947 5 + 4932 4935 5 4926 4929 3 4920 4923 11 4998 + 5001 16 4986 4989 5 4986 4992 5 4986 4995 + 5 4980 4983 3 4974 4977 3 4968 4971 11 + 5067 5070 29 5067 5073 29 5058 5061 29 5058 + 5064 29 5049 5052 29 5040 5043 3 5040 5046 + 3 5031 5034 5 5031 5037 5 5022 5025 5 + 5022 5028 5 5016 5019 3 5010 5013 11 5103 + 5106 5 5103 5109 5 5094 5097 5 5094 5100 + 5 5088 5091 3 5082 5085 11 5133 5136 3 + 5133 5139 3 5127 5130 11 5196 5199 13 5190 + 5193 13 5184 5187 13 5178 5181 13 5172 5175 + 13 5160 5163 5 5160 5166 5 5154 5157 3 + 5148 5151 11 5229 5232 16 5220 5223 3 5220 + 5226 3 5214 5217 3 5208 5211 11 5280 5283 + 5 5280 5286 5 5280 5289 5 5271 5274 5 + 5271 5277 5 5259 5262 5 5259 5265 5 5259 + 5268 5 5253 5256 5 5247 5250 3 5241 5244 + 11 5310 5313 5 5310 5316 5 5310 5319 5 + 5304 5307 3 5298 5301 11 5367 5370 20 5361 + 5364 21 5355 5358 23 5340 5343 5 5340 5346 + 5 5334 5337 3 5328 5331 11 5391 5394 5 + 5391 5397 5 5385 5388 3 5379 5382 11 5454 + 5457 5 5454 5460 5 5454 5463 5 5445 5448 + 5 5445 5451 5 5433 5436 5 5433 5439 5 + 5433 5442 5 5427 5430 5 5421 5424 3 5415 + 5418 11 5493 5496 16 5484 5487 3 5484 5490 + 3 5478 5481 3 5472 5475 11 5517 5520 5 + 5517 5523 5 5517 5526 5 5511 5514 3 5505 + 5508 11 5586 5589 13 5580 5583 13 5574 5577 + 16 5565 5568 13 5559 5562 13 5547 5550 5 + 5547 5553 5 5541 5544 3 5535 5538 11 5619 + 5622 16 5610 5613 3 5610 5616 3 5604 5607 + 3 5598 5601 11 5679 5682 13 5673 5676 13 + 5667 5670 13 5661 5664 13 5655 5658 13 5643 + 5646 5 5643 5649 5 5637 5640 3 5631 5634 + 11 5703 5706 5 5703 5709 5 5703 5712 5 + 5697 5700 3 5691 5694 11 5733 5736 5 5733 + 5739 5 5733 5742 5 5727 5730 3 5721 5724 + 11 5790 5793 5 5790 5796 5 5790 5799 5 + 5778 5781 5 5778 5784 5 5778 5787 5 5772 + 5775 5 5763 5766 5 5763 5769 5 5757 5760 + 3 5751 5754 11 5820 5823 5 5820 5826 5 + 5820 5829 5 5814 5817 3 5808 5811 11 5886 + 5889 9 5886 5892 9 5886 5895 9 5877 5880 + 7 5877 5883 7 5868 5871 5 5868 5874 5 + 5859 5862 5 5859 5865 5 5850 5853 5 5850 + 5856 5 5844 5847 3 5838 5841 11 5925 5928 + 5 5925 5931 5 5916 5919 5 5916 5922 5 + 5910 5913 3 5904 5907 11 5955 5958 3 5955 + 5961 3 5949 5952 11 6027 6030 29 6027 6033 + 29 6018 6021 29 6018 6024 29 6009 6012 29 + 6000 6003 3 6000 6006 3 5991 5994 5 5991 + 5997 5 5982 5985 5 5982 5988 5 5976 5979 + 3 5970 5973 11 6063 6066 16 6054 6057 3 + 6054 6060 3 6048 6051 3 6042 6045 11 6108 + 6111 3 6108 6114 3 6108 6117 3 6096 6099 + 3 6096 6102 3 6087 6090 5 6087 6093 5 + 6081 6084 3 6075 6078 11 6159 6162 3 6159 + 6165 3 6159 6168 3 6147 6150 3 6147 6153 + 3 6138 6141 5 6138 6144 5 6132 6135 3 + 6126 6129 11 6225 6228 9 6225 6231 9 6225 + 6234 9 6216 6219 7 6216 6222 7 6207 6210 + 5 6207 6213 5 6198 6201 5 6198 6204 5 + 6189 6192 5 6189 6195 5 6183 6186 3 6177 + 6180 11 6270 6273 11 6270 6276 11 6255 6258 + 5 6255 6261 5 6249 6252 3 6243 6246 11 + 6342 6345 29 6342 6348 29 6333 6336 29 6333 + 6339 29 6324 6327 29 6315 6318 3 6315 6321 + 3 6306 6309 5 6306 6312 5 6297 6300 5 + 6297 6303 5 6291 6294 3 6285 6288 11 6384 + 6387 11 6384 6390 11 6369 6372 5 6369 6375 + 5 6363 6366 3 6357 6360 11 6411 6414 5 + 6411 6417 5 6411 6420 5 6405 6408 3 6399 + 6402 11 6450 6453 16 6441 6444 3 6441 6447 + 3 6435 6438 3 6429 6432 11 6495 6498 3 + 6495 6501 3 6495 6504 3 6483 6486 3 6483 + 6489 3 6474 6477 5 6474 6480 5 6468 6471 + 3 6462 6465 11 6543 6546 5 6543 6549 5 + 6543 6552 5 6531 6534 5 6531 6537 5 6531 + 6540 5 6525 6528 5 6519 6522 3 6513 6516 + 11 6573 6576 5 6573 6579 5 6573 6582 5 + 6567 6570 3 6561 6564 11 6630 6633 5 6630 + 6636 5 6630 6639 5 6618 6621 5 6618 6624 + 5 6618 6627 5 6612 6615 5 6603 6606 5 + 6603 6609 5 6597 6600 3 6591 6594 11 6678 + 6681 16 6666 6669 5 6666 6672 5 6666 6675 + 5 6660 6663 3 6654 6657 3 6648 6651 11 + 6741 6744 13 6735 6738 13 6729 6732 16 6720 + 6723 13 6714 6717 13 6702 6705 5 6702 6708 + 5 6696 6699 3 6690 6693 11 6792 6795 5 + 6792 6798 5 6792 6801 5 6783 6786 5 6783 + 6789 5 6771 6774 5 6771 6777 5 6771 6780 + 5 6765 6768 5 6759 6762 3 6753 6756 11 + 6816 6819 3 6816 6822 3 6810 6813 11 6843 + 6846 5 6843 6849 5 6843 6852 5 6837 6840 + 3 6831 6834 11 6882 6885 5 6882 6888 5 + 6873 6876 5 6873 6879 5 6867 6870 3 6861 + 6864 11 6954 6957 9 6954 6960 9 6954 6963 + 9 6945 6948 7 6945 6951 7 6936 6939 5 + 6936 6942 5 6927 6930 5 6927 6933 5 6918 + 6921 5 6918 6924 5 6912 6915 3 6906 6909 + 11 6984 6987 5 6984 6990 5 6984 6993 5 + 6978 6981 3 6972 6975 11 7035 7038 3 7035 + 7041 3 7035 7044 3 7023 7026 3 7023 7029 + 3 7014 7017 5 7014 7020 5 7008 7011 3 + 7002 7005 11 7083 7086 3 7074 7077 5 7074 + 7080 5 7065 7068 5 7065 7071 5 7056 7059 + 3 7056 7062 3 7116 7119 16 7107 7110 3 + 7107 7113 3 7101 7104 3 7095 7098 11 7179 + 7182 13 7173 7176 13 7167 7170 16 7158 7161 + 13 7152 7155 13 7140 7143 5 7140 7146 5 + 7134 7137 3 7128 7131 11 7218 7221 11 7218 + 7224 11 7203 7206 5 7203 7209 5 7197 7200 + 3 7191 7194 11 7263 7266 16 7251 7254 5 + 7251 7257 5 7251 7260 5 7245 7248 3 7239 + 7242 3 7233 7236 11 7308 7311 3 7308 7314 + 3 7308 7317 3 7296 7299 3 7296 7302 3 + 7287 7290 5 7287 7293 5 7281 7284 3 7275 + 7278 11 7332 7335 3 7332 7338 3 7326 7329 + 11 7377 7380 5 7377 7383 5 7377 7386 5 + 7365 7368 5 7365 7371 5 7365 7374 5 7359 + 7362 5 7353 7356 3 7347 7350 11 7407 7410 + 5 7407 7413 5 7407 7416 5 7401 7404 3 + 7395 7398 11 7473 7476 9 7473 7479 9 7473 + 7482 9 7464 7467 7 7464 7470 7 7455 7458 + 5 7455 7461 5 7446 7449 5 7446 7452 5 + 7437 7440 5 7437 7443 5 7431 7434 3 7425 + 7428 11 7503 7506 5 7503 7509 5 7503 7512 + 5 7497 7500 3 7491 7494 11 7542 7545 16 + 7533 7536 3 7533 7539 3 7527 7530 3 7521 + 7524 11 7593 7596 5 7593 7599 5 7593 7602 + 5 7581 7584 5 7581 7587 5 7581 7590 5 + 7575 7578 5 7566 7569 5 7566 7572 5 7560 + 7563 3 7554 7557 11 7632 7635 5 7632 7638 + 5 7623 7626 5 7623 7629 5 7617 7620 3 + 7611 7614 11 7668 7671 5 7668 7674 5 7668 + 7677 5 7662 7665 3 7656 7659 11 7716 7719 + 16 7704 7707 5 7704 7710 5 7704 7713 5 + 7698 7701 3 7692 7695 3 7686 7689 11 7758 + 7761 5 7758 7764 5 7758 7767 5 7746 7749 + 5 7746 7752 5 7746 7755 5 7740 7743 5 + 7734 7737 3 7728 7731 11 7833 7836 29 7833 + 7839 29 7824 7827 29 7824 7830 29 7815 7818 + 29 7806 7809 3 7806 7812 3 7797 7800 5 + 7797 7803 5 7788 7791 5 7788 7794 5 7782 + 7785 3 7776 7779 11 7899 7902 13 7893 7896 + 13 7887 7890 16 7878 7881 13 7872 7875 13 + 7860 7863 5 7860 7866 5 7854 7857 3 7848 + 7851 11 7941 7944 16 7929 7932 5 7929 7935 + 5 7929 7938 5 7923 7926 3 7917 7920 3 + 7911 7914 11 7965 7968 5 7965 7971 5 7965 + 7974 5 7959 7962 3 7953 7956 11 8022 8025 + 5 8022 8028 5 8022 8031 5 8010 8013 5 + 8010 8016 5 8010 8019 5 8004 8007 5 7995 + 7998 5 7995 8001 5 7989 7992 3 7983 7986 + 11 8052 8055 5 8052 8058 5 8052 8061 5 + 8046 8049 3 8040 8043 11 8109 8112 5 8109 + 8115 5 8109 8118 5 8097 8100 5 8097 8103 + 5 8097 8106 5 8091 8094 5 8082 8085 5 + 8082 8088 5 8076 8079 3 8070 8073 11 8133 + 8136 3 8133 8139 3 8127 8130 11 8169 8172 + 5 8169 8175 5 8160 8163 5 8160 8166 5 + 8154 8157 3 8148 8151 11 8205 8208 5 8205 + 8211 5 8199 8202 3 8193 8196 11 8235 8238 + 3 8235 8241 3 8229 8232 11 8289 8292 5 + 8289 8295 5 8289 8298 5 8280 8283 5 8280 + 8286 5 8268 8271 5 8268 8274 5 8268 8277 + 5 8262 8265 5 8256 8259 3 8250 8253 11 + 8355 8358 9 8355 8361 9 8355 8364 9 8346 + 8349 7 8346 8352 7 8337 8340 5 8337 8343 + 5 8328 8331 5 8328 8334 5 8319 8322 5 + 8319 8325 5 8313 8316 3 8307 8310 11 8403 + 8406 5 8403 8409 5 8403 8412 5 8391 8394 + 5 8391 8397 5 8391 8400 5 8385 8388 5 + 8379 8382 3 8373 8376 11 8448 8451 11 8448 + 8454 11 8433 8436 5 8433 8439 5 8427 8430 + 3 8421 8424 11 8475 8478 5 8475 8481 5 + 8475 8484 5 8469 8472 3 8463 8466 11 8523 + 8526 5 8523 8529 5 8523 8532 5 8511 8514 + 5 8511 8517 5 8511 8520 5 8505 8508 5 + 8499 8502 3 8493 8496 11 8562 8565 16 8553 + 8556 3 8553 8559 3 8547 8550 3 8541 8544 + 11 8586 8589 5 8586 8592 5 8586 8595 5 + 8580 8583 3 8574 8577 11 8610 8613 3 8610 + 8616 3 8604 8607 11 8655 8658 3 8646 8649 + 5 8646 8652 5 8637 8640 5 8637 8643 5 + 8628 8631 3 8628 8634 3 8706 8709 5 8706 + 8712 5 8706 8715 5 8697 8700 5 8697 8703 + 5 8685 8688 5 8685 8691 5 8685 8694 5 + 8679 8682 5 8673 8676 3 8667 8670 11 8772 + 8775 9 8772 8778 9 8772 8781 9 8763 8766 + 7 8763 8769 7 8754 8757 5 8754 8760 5 + 8745 8748 5 8745 8751 5 8736 8739 5 8736 + 8742 5 8730 8733 3 8724 8727 11 8820 8823 + 16 8808 8811 5 8808 8814 5 8808 8817 5 + 8802 8805 3 8796 8799 3 8790 8793 11 8871 + 8874 5 8871 8877 5 8871 8880 5 8859 8862 + 5 8859 8865 5 8859 8868 5 8853 8856 5 + 8844 8847 5 8844 8850 5 8838 8841 3 8832 + 8835 11 8901 8904 5 8901 8907 5 8901 8910 + 5 8895 8898 3 8889 8892 11 8931 8934 5 + 8931 8937 5 8931 8940 5 8925 8928 3 8919 + 8922 11 8970 8973 16 8961 8964 3 8961 8967 + 3 8955 8958 3 8949 8952 11 8988 8991 3 + 8988 8994 3 8982 8985 11 9042 9045 5 9042 + 9048 5 9042 9051 5 9033 9036 5 9033 9039 + 5 9021 9024 5 9021 9027 5 9021 9030 5 + 9015 9018 5 9009 9012 3 9003 9006 11 9081 + 9084 16 9072 9075 3 9072 9078 3 9066 9069 + 3 9060 9063 11 9120 9123 11 9120 9126 11 + 9105 9108 5 9105 9111 5 9099 9102 3 9093 + 9096 11 9183 9186 13 9177 9180 13 9171 9174 + 13 9165 9168 13 9159 9162 13 9147 9150 5 + 9147 9153 5 9141 9144 3 9135 9138 11 9243 + 9246 9 9243 9249 9 9243 9252 9 9234 9237 + 7 9234 9240 7 9225 9228 5 9225 9231 5 + 9216 9219 5 9216 9222 5 9207 9210 5 9207 + 9213 5 9201 9204 3 9195 9198 11 9309 9312 + 9 9309 9315 9 9309 9318 9 9300 9303 7 + 9300 9306 7 9291 9294 5 9291 9297 5 9282 + 9285 5 9282 9288 5 9273 9276 5 9273 9279 + 5 9267 9270 3 9261 9264 11 9360 9363 3 + 9360 9366 3 9360 9369 3 9348 9351 3 9348 + 9354 3 9339 9342 5 9339 9345 5 9333 9336 + 3 9327 9330 11 9417 9420 5 9417 9423 5 + 9417 9426 5 9405 9408 5 9405 9411 5 9405 + 9414 5 9399 9402 5 9390 9393 5 9390 9396 + 5 9384 9387 3 9378 9381 11 9447 9450 5 + 9447 9453 5 9441 9444 3 9435 9438 11 9522 + 9525 13 9516 9519 13 9510 9513 16 9501 9504 + 13 9495 9498 13 9483 9486 5 9483 9489 5 + 9477 9480 3 9471 9474 11 9561 9564 11 9561 + 9567 11 9546 9549 5 9546 9552 5 9540 9543 + 3 9534 9537 11 9588 9591 5 9588 9594 5 + 9588 9597 5 9582 9585 3 9576 9579 11 9639 + 9642 3 9639 9645 3 9639 9648 3 9627 9630 + 3 9627 9633 3 9618 9621 5 9618 9624 5 + 9612 9615 3 9606 9609 11 9687 9690 5 9687 + 9693 5 9687 9696 5 9675 9678 5 9675 9681 + 5 9675 9684 5 9669 9672 5 9663 9666 3 + 9657 9660 11 9726 9729 16 9717 9720 3 9717 + 9723 3 9711 9714 3 9705 9708 11 9768 9771 + 3 9759 9762 5 9759 9765 5 9750 9753 5 + 9750 9756 5 9741 9744 3 9741 9747 3 9819 + 9822 5 9819 9825 5 9819 9828 5 9807 9810 + 5 9807 9813 5 9807 9816 5 9801 9804 5 + 9792 9795 5 9792 9798 5 9786 9789 3 9780 + 9783 11 9885 9888 9 9885 9891 9 9885 9894 + 9 9876 9879 7 9876 9882 7 9867 9870 5 + 9867 9873 5 9858 9861 5 9858 9864 5 9849 + 9852 5 9849 9855 5 9843 9846 3 9837 9840 + 11 9951 9954 9 9951 9957 9 9951 9960 9 + 9942 9945 7 9942 9948 7 9933 9936 5 9933 + 9939 5 9924 9927 5 9924 9930 5 9915 9918 + 5 9915 9921 5 9909 9912 3 9903 9906 11 + 9996 9999 11 9996 10002 11 9981 9984 5 9981 + 9987 5 9975 9978 3 9969 9972 11 10041 10044 + 5 10041 10047 5 10041 10050 5 10029 10032 5 + 10029 10035 5 10029 10038 5 10023 10026 5 10017 + 10020 3 10011 10014 11 10071 10074 5 10071 10077 + 5 10065 10068 3 10059 10062 11 10134 10137 5 + 10134 10140 5 10134 10143 5 10125 10128 5 10125 + 10131 5 10113 10116 5 10113 10119 5 10113 10122 + 5 10107 10110 5 10101 10104 3 10095 10098 11 + 10185 10188 3 10185 10191 3 10185 10194 3 10173 + 10176 3 10173 10179 3 10164 10167 5 10164 10170 + 5 10158 10161 3 10152 10155 11 10224 10227 5 + 10224 10230 5 10215 10218 5 10215 10221 5 10209 + 10212 3 10203 10206 11 10278 10281 5 10278 10284 + 5 10278 10287 5 10266 10269 5 10266 10272 5 + 10266 10275 5 10260 10263 5 10254 10257 3 10248 + 10251 11 10302 10305 3 10302 10308 3 10296 10299 + 11 10344 10347 11 10344 10350 11 10329 10332 5 + 10329 10335 5 10323 10326 3 10317 10320 11 10389 + 10392 16 10377 10380 5 10377 10383 5 10377 10386 + 5 10371 10374 3 10365 10368 3 10359 10362 11 + 10431 10434 5 10431 10437 5 10431 10440 5 10419 + 10422 5 10419 10425 5 10419 10428 5 10413 10416 + 5 10407 10410 3 10401 10404 11 10461 10464 5 + 10461 10467 5 10461 10470 5 10455 10458 3 10449 + 10452 11 10527 10530 13 10521 10524 13 10515 10518 + 13 10509 10512 13 10503 10506 13 10491 10494 5 + 10491 10497 5 10485 10488 3 10479 10482 11 10578 + 10581 5 10578 10584 5 10578 10587 5 10566 10569 + 5 10566 10572 5 10566 10575 5 10560 10563 5 + 10551 10554 5 10551 10557 5 10545 10548 3 10539 + 10542 11 10617 10620 33 10608 10611 3 10608 10614 + 3 10602 10605 3 10596 10599 11 10650 10653 16 + 10641 10644 3 10641 10647 3 10635 10638 3 10629 + 10632 11 10674 10677 5 10674 10680 5 10668 10671 + 3 10662 10665 11 10731 10734 3 10731 10737 3 + 10731 10740 3 10719 10722 3 10719 10725 3 10710 + 10713 5 10710 10716 5 10704 10707 3 10698 10701 + 11 10761 10764 5 10761 10767 5 10761 10770 5 + 10755 10758 3 10749 10752 11 10809 10812 16 10797 + 10800 5 10797 10803 5 10797 10806 5 10791 10794 + 3 10785 10788 3 10779 10782 11 10827 10830 3 + 10827 10833 3 10821 10824 11 10881 10884 5 10881 + 10887 5 10881 10890 5 10872 10875 5 10872 10878 + 5 10860 10863 5 10860 10866 5 10860 10869 5 + 10854 10857 5 10848 10851 3 10842 10845 11 10929 + 10932 16 10917 10920 5 10917 10923 5 10917 10926 + 5 10911 10914 3 10905 10908 3 10899 10902 11 + 10947 10950 3 10947 10953 3 10941 10944 11 10983 + 10986 5 10983 10989 5 10974 10977 5 10974 10980 + 5 10968 10971 3 10962 10965 11 11037 11040 5 + 11037 11043 5 11037 11046 5 11025 11028 5 11025 + 11031 5 11025 11034 5 11019 11022 5 11013 11016 + 3 11007 11010 11 11085 11088 5 11085 11091 5 + 11085 11094 5 11073 11076 5 11073 11079 5 11073 + 11082 5 11067 11070 5 11061 11064 3 11055 11058 + 11 11142 11145 20 11136 11139 21 11130 11133 23 + 11115 11118 5 11115 11121 5 11109 11112 3 11103 + 11106 11 11184 11187 5 11184 11190 5 11184 11193 + 5 11172 11175 5 11172 11178 5 11172 11181 5 + 11166 11169 5 11160 11163 3 11154 11157 11 11214 + 11217 5 11214 11220 5 11208 11211 3 11202 11205 + 11 11250 11253 5 11250 11256 5 11250 11259 5 + 11244 11247 3 11238 11241 11 11274 11277 3 11274 + 11280 3 11268 11271 11 11340 11343 13 11334 11337 + 13 11328 11331 16 11319 11322 13 11313 11316 13 + 11301 11304 5 11301 11307 5 11295 11298 3 11289 + 11292 11 11391 11394 20 11385 11388 21 11379 11382 + 23 11364 11367 5 11364 11370 5 11358 11361 3 + 11352 11355 11 11424 11427 33 11415 11418 3 11415 + 11421 3 11409 11412 3 11403 11406 11 11466 11469 + 5 11466 11472 5 11466 11475 5 11454 11457 5 + 11454 11460 5 11454 11463 5 11448 11451 5 11442 + 11445 3 11436 11439 11 11505 11508 16 11496 11499 + 3 11496 11502 3 11490 11493 3 11484 11487 11 + 11550 11553 3 11550 11556 3 11550 11559 3 11538 + 11541 3 11538 11544 3 11529 11532 5 11529 11535 + 5 11523 11526 3 11517 11520 11 11574 11577 3 + 11574 11580 3 11568 11571 11 11616 11619 11 11616 + 11622 11 11601 11604 5 11601 11607 5 11595 11598 + 3 11589 11592 11 11661 11664 5 11661 11667 5 + 11661 11670 5 11649 11652 5 11649 11655 5 11649 + 11658 5 11643 11646 5 11637 11640 3 11631 11634 + 11 11718 11721 5 11718 11724 5 11718 11727 5 + 11706 11709 5 11706 11712 5 11706 11715 5 11700 + 11703 5 11691 11694 5 11691 11697 5 11685 11688 + 3 11679 11682 11 11775 11778 5 11775 11781 5 + 11775 11784 5 11763 11766 5 11763 11769 5 11763 + 11772 5 11757 11760 5 11748 11751 5 11748 11754 + 5 11742 11745 3 11736 11739 11 11814 11817 5 + 11814 11820 5 11805 11808 5 11805 11811 5 11799 + 11802 3 11793 11796 11 11877 11880 20 11871 11874 + 21 11865 11868 23 11850 11853 5 11850 11856 5 + 11844 11847 3 11838 11841 11 11928 11931 20 11922 + 11925 21 11916 11919 23 11901 11904 5 11901 11907 + 5 11895 11898 3 11889 11892 11 11979 11982 20 + 11973 11976 21 11967 11970 23 11952 11955 5 11952 + 11958 5 11946 11949 3 11940 11943 11 12030 12033 + 20 12024 12027 21 12018 12021 23 12003 12006 5 + 12003 12009 5 11997 12000 3 11991 11994 11 12081 + 12084 20 12075 12078 21 12069 12072 23 12054 12057 + 5 12054 12060 5 12048 12051 3 12042 12045 11 + 12132 12135 20 12126 12129 21 12120 12123 23 12105 + 12108 5 12105 12111 5 12099 12102 3 12093 12096 + 11 12276 12354 42 12273 12351 44 12270 12348 46 + 12267 12342 47 12267 12345 47 12255 12339 42 12249 + 12336 53 12246 12333 16 12243 12330 3 12240 12327 + 16 12237 12324 3 12231 12321 3 12228 12318 3 + 12228 12315 3 12204 12312 59 12198 12306 29 12198 + 12309 29 12186 12303 64 12180 12300 53 12177 12297 + 16 12174 12294 3 12171 12291 16 12168 12288 3 + 12162 12285 3 12159 12279 3 12159 12282 3 12396 + 12426 68 12393 12423 68 12387 12420 68 12378 12417 + 71 12372 12414 68 12369 12411 68 12363 12408 68 +%FLAG BONDS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 51 54 1 51 57 2 36 39 4 27 + 36 4 18 27 6 12 18 6 12 51 + 8 0 12 10 72 75 1 72 78 2 + 63 72 8 57 63 12 132 135 1 132 + 138 2 120 126 14 114 120 14 108 114 + 14 102 108 14 99 102 14 99 126 14 + 90 99 15 84 90 6 84 132 8 78 + 84 12 189 192 1 189 195 2 159 165 + 6 159 177 6 150 159 6 144 150 6 + 144 189 8 138 144 12 219 222 1 219 + 225 2 201 207 6 201 219 8 195 201 + 12 240 243 1 240 246 2 231 240 8 + 225 231 12 306 309 1 306 312 2 285 + 294 10 276 285 6 267 276 6 258 267 + 6 252 258 6 252 306 8 246 252 12 + 372 375 1 372 378 2 351 360 10 342 + 351 6 333 342 6 324 333 6 318 324 + 6 318 372 8 312 318 12 429 432 1 + 429 435 2 408 417 6 390 396 6 390 + 408 6 384 390 6 384 429 8 378 384 + 12 486 489 1 486 492 2 456 462 6 + 456 474 6 447 456 6 441 447 6 441 + 486 8 435 441 12 543 546 1 543 549 + 2 522 531 6 504 510 6 504 522 6 + 498 504 6 498 543 8 492 498 12 585 + 588 1 585 591 2 561 567 6 561 579 + 17 555 561 6 555 585 8 549 555 12 + 606 609 1 606 612 2 597 606 8 591 + 597 12 663 666 1 663 669 2 633 639 + 6 633 651 6 624 633 6 618 624 6 + 618 663 8 612 618 12 720 723 1 720 + 726 2 690 696 6 690 708 6 681 690 + 6 675 681 6 675 720 8 669 675 12 + 753 756 1 753 759 2 738 747 17 732 + 738 6 732 753 8 726 732 12 795 798 + 1 795 801 2 780 783 1 780 786 2 + 771 780 8 765 771 6 765 795 8 759 + 765 12 861 864 1 861 867 2 840 849 + 10 831 840 6 822 831 6 813 822 6 + 807 813 6 807 861 8 801 807 12 894 + 897 1 894 900 2 879 888 17 873 879 + 6 873 894 8 867 873 12 951 954 1 + 951 957 2 930 939 6 912 918 6 912 + 930 6 906 912 6 906 951 8 900 906 + 12 981 984 1 981 987 2 963 969 6 + 963 981 8 957 963 12 1044 1047 1 1044 + 1050 2 1032 1038 14 1023 1026 18 1023 1032 + 19 1017 1023 19 1011 1017 14 1008 1011 14 + 1008 1038 14 999 1008 15 993 999 6 993 + 1044 8 987 993 12 1065 1068 1 1065 1071 + 2 1056 1065 8 1050 1056 12 1122 1125 1 + 1122 1128 2 1101 1110 6 1083 1089 6 1083 + 1101 6 1077 1083 6 1077 1122 8 1071 1077 + 12 1152 1155 1 1152 1158 2 1134 1140 6 + 1134 1152 8 1128 1134 12 1218 1221 1 1218 + 1224 2 1197 1206 10 1188 1197 6 1179 1188 + 6 1170 1179 6 1164 1170 6 1164 1218 8 + 1158 1164 12 1248 1251 1 1248 1254 2 1230 + 1236 6 1230 1248 8 1224 1230 12 1299 1302 + 1 1299 1305 2 1284 1287 4 1275 1284 4 + 1266 1275 6 1260 1266 6 1260 1299 8 1254 + 1260 12 1350 1353 1 1350 1356 2 1338 1344 + 22 1332 1338 24 1329 1332 25 1326 1329 26 + 1326 1344 27 1317 1326 28 1311 1317 6 1311 + 1350 8 1305 1311 12 1422 1425 1 1422 1428 + 2 1401 1404 30 1401 1413 30 1395 1401 30 + 1386 1395 31 1377 1386 6 1368 1377 6 1362 + 1368 6 1362 1422 8 1356 1362 12 1467 1470 + 1 1467 1473 2 1458 1461 32 1458 1464 32 + 1449 1458 8 1440 1449 6 1434 1440 6 1434 + 1467 8 1428 1434 12 1488 1491 1 1488 1494 + 2 1479 1488 8 1473 1479 12 1518 1521 1 + 1518 1524 2 1500 1506 6 1500 1518 8 1494 + 1500 12 1563 1566 1 1563 1569 2 1554 1557 + 32 1554 1560 32 1545 1554 8 1536 1545 6 + 1530 1536 6 1530 1563 8 1524 1530 12 1620 + 1623 1 1620 1626 2 1590 1596 6 1590 1608 + 6 1581 1590 6 1575 1581 6 1575 1620 8 + 1569 1575 12 1650 1653 1 1650 1656 2 1632 + 1638 6 1632 1650 8 1626 1632 12 1710 1713 + 1 1710 1716 2 1698 1704 14 1692 1698 14 + 1686 1692 14 1680 1686 14 1677 1680 14 1677 + 1704 14 1668 1677 15 1662 1668 6 1662 1710 + 8 1656 1662 12 1752 1755 1 1752 1758 2 + 1728 1734 6 1728 1746 17 1722 1728 6 1722 + 1752 8 1716 1722 12 1815 1818 1 1815 1821 + 2 1803 1809 14 1794 1797 18 1794 1803 19 + 1788 1794 19 1782 1788 14 1779 1782 14 1779 + 1809 14 1770 1779 15 1764 1770 6 1764 1815 + 8 1758 1764 12 1863 1866 1 1863 1869 2 + 1833 1839 6 1833 1851 6 1827 1833 6 1827 + 1863 8 1821 1827 12 1884 1887 1 1884 1890 + 2 1875 1884 8 1869 1875 12 1935 1938 1 + 1935 1941 2 1920 1923 1 1920 1926 2 1911 + 1920 8 1902 1911 6 1896 1902 6 1896 1935 + 8 1890 1896 12 1995 1998 1 1995 2001 2 + 1983 1989 14 1977 1983 14 1971 1977 14 1965 + 1971 14 1962 1965 14 1962 1989 14 1953 1962 + 15 1947 1953 6 1947 1995 8 1941 1947 12 + 2061 2064 1 2061 2067 2 2040 2049 10 2031 + 2040 6 2022 2031 6 2013 2022 6 2007 2013 + 6 2007 2061 8 2001 2007 12 2097 2100 1 + 2097 2103 2 2088 2091 32 2088 2094 32 2079 + 2088 8 2073 2079 6 2073 2097 8 2067 2073 + 12 2169 2172 1 2169 2175 2 2148 2151 30 + 2148 2160 30 2142 2148 30 2133 2142 31 2124 + 2133 6 2115 2124 6 2109 2115 6 2109 2169 + 8 2103 2109 12 2217 2220 1 2217 2223 2 + 2187 2193 6 2187 2205 6 2181 2187 6 2181 + 2217 8 2175 2181 12 2262 2265 1 2262 2268 + 2 2253 2256 32 2253 2259 32 2244 2253 8 + 2235 2244 6 2229 2235 6 2229 2262 8 2223 + 2229 12 2328 2331 1 2328 2334 2 2307 2316 + 10 2298 2307 6 2289 2298 6 2280 2289 6 + 2274 2280 6 2274 2328 8 2268 2274 12 2385 + 2388 1 2385 2391 2 2355 2361 6 2355 2373 + 6 2346 2355 6 2340 2346 6 2340 2385 8 + 2334 2340 12 2418 2421 1 2418 2424 2 2403 + 2412 34 2397 2403 6 2397 2418 8 2391 2397 + 12 2448 2451 1 2448 2454 2 2430 2436 6 + 2430 2448 8 2424 2430 12 2493 2496 1 2493 + 2499 2 2484 2487 32 2484 2490 32 2475 2484 + 8 2466 2475 6 2460 2466 6 2460 2493 8 + 2454 2460 12 2553 2556 1 2553 2559 2 2541 + 2547 14 2535 2541 14 2529 2535 14 2523 2529 + 14 2520 2523 14 2520 2547 14 2511 2520 15 + 2505 2511 6 2505 2553 8 2499 2505 12 2595 + 2598 1 2595 2601 2 2580 2583 1 2580 2586 + 2 2571 2580 8 2565 2571 6 2565 2595 8 + 2559 2565 12 2637 2640 1 2637 2643 2 2631 + 2637 8 2622 2631 6 2613 2622 6 2604 2613 + 6 2601 2604 12 2601 2631 12 2667 2670 1 + 2667 2673 2 2649 2655 6 2649 2667 8 2643 + 2649 12 2697 2700 1 2697 2703 2 2679 2685 + 6 2679 2697 8 2673 2679 12 2745 2748 1 + 2745 2751 2 2715 2721 6 2715 2733 6 2709 + 2715 6 2709 2745 8 2703 2709 12 2802 2805 + 1 2802 2808 2 2772 2778 6 2772 2790 6 + 2763 2772 6 2757 2763 6 2757 2802 8 2751 + 2757 12 2844 2847 1 2844 2850 2 2838 2844 + 8 2829 2838 6 2820 2829 6 2811 2820 6 + 2808 2811 12 2808 2838 12 2877 2880 1 2877 + 2883 2 2862 2871 34 2856 2862 6 2856 2877 + 8 2850 2856 12 2913 2916 1 2913 2919 2 + 2904 2907 32 2904 2910 32 2895 2904 8 2889 + 2895 6 2889 2913 8 2883 2889 12 2961 2964 + 1 2961 2967 2 2931 2937 6 2931 2949 6 + 2925 2931 6 2925 2961 8 2919 2925 12 3018 + 3021 1 3018 3024 2 2997 3006 6 2979 2985 + 6 2979 2997 6 2973 2979 6 2973 3018 8 + 2967 2973 12 3051 3054 1 3051 3057 2 3036 + 3045 17 3030 3036 6 3030 3051 8 3024 3030 + 12 3087 3090 1 3087 3093 2 3078 3081 32 + 3078 3084 32 3069 3078 8 3063 3069 6 3063 + 3087 8 3057 3063 12 3138 3141 1 3138 3144 + 2 3123 3126 1 3123 3129 2 3114 3123 8 + 3105 3114 6 3099 3105 6 3099 3138 8 3093 + 3099 12 3183 3186 1 3183 3189 2 3174 3177 + 32 3174 3180 32 3165 3174 8 3156 3165 6 + 3150 3156 6 3150 3183 8 3144 3150 12 3240 + 3243 1 3240 3246 2 3219 3228 6 3201 3207 + 6 3201 3219 6 3195 3201 6 3195 3240 8 + 3189 3195 12 3306 3309 1 3306 3312 2 3285 + 3294 10 3276 3285 6 3267 3276 6 3258 3267 + 6 3252 3258 6 3252 3306 8 3246 3252 12 + 3342 3345 1 3342 3348 2 3333 3336 32 3333 + 3339 32 3324 3333 8 3318 3324 6 3318 3342 + 8 3312 3318 12 3399 3402 1 3399 3405 2 + 3369 3375 6 3369 3387 6 3360 3369 6 3354 + 3360 6 3354 3399 8 3348 3354 12 3459 3462 + 1 3459 3465 2 3447 3453 14 3441 3447 14 + 3435 3441 14 3429 3435 14 3426 3429 14 3426 + 3453 14 3417 3426 15 3411 3417 6 3411 3459 + 8 3405 3411 12 3507 3510 1 3507 3513 2 + 3477 3483 6 3477 3495 6 3471 3477 6 3471 + 3507 8 3465 3471 12 3552 3555 1 3552 3558 + 2 3543 3546 32 3543 3549 32 3534 3543 8 + 3525 3534 6 3519 3525 6 3519 3552 8 3513 + 3519 12 3609 3612 1 3609 3615 2 3579 3585 + 6 3579 3597 6 3570 3579 6 3564 3570 6 + 3564 3609 8 3558 3564 12 3630 3633 1 3630 + 3636 2 3621 3630 8 3615 3621 12 3696 3699 + 1 3696 3702 2 3675 3684 10 3666 3675 6 + 3657 3666 6 3648 3657 6 3642 3648 6 3642 + 3696 8 3636 3642 12 3744 3747 1 3744 3750 + 2 3714 3720 6 3714 3732 6 3708 3714 6 + 3708 3744 8 3702 3708 12 3816 3819 1 3816 + 3822 2 3807 3813 35 3801 3807 14 3795 3801 + 14 3789 3795 14 3786 3789 36 3786 3813 37 + 3780 3786 38 3774 3780 22 3771 3774 39 3771 + 3813 40 3762 3771 41 3756 3762 6 3756 3816 + 8 3750 3756 12 3852 3855 1 3852 3858 2 + 3843 3846 32 3843 3849 32 3834 3843 8 3828 + 3834 6 3828 3852 8 3822 3828 12 3873 3876 + 1 3873 3879 2 3864 3873 8 3858 3864 12 + 3930 3933 1 3930 3936 2 3900 3906 6 3900 + 3918 6 3891 3900 6 3885 3891 6 3885 3930 + 8 3879 3885 12 3966 3969 1 3966 3972 2 + 3957 3960 32 3957 3963 32 3948 3957 8 3942 + 3948 6 3942 3966 8 3936 3942 12 3996 3999 + 1 3996 4002 2 3978 3984 6 3978 3996 8 + 3972 3978 12 4053 4056 1 4053 4059 2 4032 + 4041 6 4014 4020 6 4014 4032 6 4008 4014 + 6 4008 4053 8 4002 4008 12 4101 4104 1 + 4101 4107 2 4071 4077 6 4071 4089 6 4065 + 4071 6 4065 4101 8 4059 4065 12 4152 4155 + 1 4152 4158 2 4140 4146 22 4134 4140 24 + 4131 4134 25 4128 4131 26 4128 4146 27 4119 + 4128 28 4113 4119 6 4113 4152 8 4107 4113 + 12 4185 4188 1 4185 4191 2 4170 4179 17 + 4164 4170 6 4164 4185 8 4158 4164 12 4242 + 4245 1 4242 4248 2 4221 4230 6 4203 4209 + 6 4203 4221 6 4197 4203 6 4197 4242 8 + 4191 4197 12 4272 4275 1 4272 4278 2 4254 + 4260 6 4254 4272 8 4248 4254 12 4332 4335 + 1 4332 4338 2 4320 4326 14 4314 4320 14 + 4308 4314 14 4302 4308 14 4299 4302 14 4299 + 4326 14 4290 4299 15 4284 4290 6 4284 4332 + 8 4278 4284 12 4362 4365 1 4362 4368 2 + 4344 4350 6 4344 4362 8 4338 4344 12 4404 + 4407 1 4404 4410 2 4398 4404 8 4389 4398 + 6 4380 4389 6 4371 4380 6 4368 4371 12 + 4368 4398 12 4476 4479 1 4476 4482 2 4455 + 4458 30 4455 4467 30 4449 4455 30 4440 4449 + 31 4431 4440 6 4422 4431 6 4416 4422 6 + 4416 4476 8 4410 4416 12 4512 4515 1 4512 + 4518 2 4503 4506 32 4503 4509 32 4494 4503 + 8 4488 4494 6 4488 4512 8 4482 4488 12 + 4563 4566 1 4563 4569 2 4548 4551 1 4548 + 4554 2 4539 4548 8 4530 4539 6 4524 4530 + 6 4524 4563 8 4518 4524 12 4620 4623 1 + 4620 4626 2 4590 4596 6 4590 4608 6 4581 + 4590 6 4575 4581 6 4575 4620 8 4569 4575 + 12 4665 4668 1 4665 4671 2 4656 4659 32 + 4656 4662 32 4647 4656 8 4638 4647 6 4632 + 4638 6 4632 4665 8 4626 4632 12 4686 4689 + 1 4686 4692 2 4677 4686 8 4671 4677 12 + 4728 4731 1 4728 4734 2 4713 4716 1 4713 + 4719 2 4704 4713 8 4698 4704 6 4698 4728 + 8 4692 4698 12 4788 4791 1 4788 4794 2 + 4776 4782 14 4770 4776 14 4764 4770 14 4758 + 4764 14 4755 4758 14 4755 4782 14 4746 4755 + 15 4740 4746 6 4740 4788 8 4734 4740 12 + 4845 4848 1 4845 4851 2 4824 4833 6 4806 + 4812 6 4806 4824 6 4800 4806 6 4800 4845 + 8 4794 4800 12 4881 4884 1 4881 4887 2 + 4872 4875 32 4872 4878 32 4863 4872 8 4857 + 4863 6 4857 4881 8 4851 4857 12 4914 4917 + 1 4914 4920 2 4899 4908 34 4893 4899 6 + 4893 4914 8 4887 4893 12 4962 4965 1 4962 + 4968 2 4932 4938 6 4932 4950 6 4926 4932 + 6 4926 4962 8 4920 4926 12 5004 5007 1 + 5004 5010 2 4980 4986 6 4980 4998 17 4974 + 4980 6 4974 5004 8 4968 4974 12 5076 5079 + 1 5076 5082 2 5055 5058 30 5055 5067 30 + 5049 5055 30 5040 5049 31 5031 5040 6 5022 + 5031 6 5016 5022 6 5016 5076 8 5010 5016 + 12 5121 5124 1 5121 5127 2 5112 5115 32 + 5112 5118 32 5103 5112 8 5094 5103 6 5088 + 5094 6 5088 5121 8 5082 5088 12 5142 5145 + 1 5142 5148 2 5133 5142 8 5127 5133 12 + 5202 5205 1 5202 5208 2 5190 5196 14 5184 + 5190 14 5178 5184 14 5172 5178 14 5169 5172 + 14 5169 5196 14 5160 5169 15 5154 5160 6 + 5154 5202 8 5148 5154 12 5235 5238 1 5235 + 5241 2 5220 5229 17 5214 5220 6 5214 5235 + 8 5208 5214 12 5292 5295 1 5292 5298 2 + 5271 5280 6 5253 5259 6 5253 5271 6 5247 + 5253 6 5247 5292 8 5241 5247 12 5322 5325 + 1 5322 5328 2 5304 5310 6 5304 5322 8 + 5298 5304 12 5373 5376 1 5373 5379 2 5361 + 5367 22 5355 5361 24 5352 5355 25 5349 5352 + 26 5349 5367 27 5340 5349 28 5334 5340 6 + 5334 5373 8 5328 5334 12 5409 5412 1 5409 + 5415 2 5400 5403 32 5400 5406 32 5391 5400 + 8 5385 5391 6 5385 5409 8 5379 5385 12 + 5466 5469 1 5466 5472 2 5445 5454 6 5427 + 5433 6 5427 5445 6 5421 5427 6 5421 5466 + 8 5415 5421 12 5499 5502 1 5499 5505 2 + 5484 5493 17 5478 5484 6 5478 5499 8 5472 + 5478 12 5529 5532 1 5529 5535 2 5511 5517 + 6 5511 5529 8 5505 5511 12 5592 5595 1 + 5592 5598 2 5580 5586 14 5571 5574 18 5571 + 5580 19 5565 5571 19 5559 5565 14 5556 5559 + 14 5556 5586 14 5547 5556 15 5541 5547 6 + 5541 5592 8 5535 5541 12 5625 5628 1 5625 + 5631 2 5610 5619 17 5604 5610 6 5604 5625 + 8 5598 5604 12 5685 5688 1 5685 5691 2 + 5673 5679 14 5667 5673 14 5661 5667 14 5655 + 5661 14 5652 5655 14 5652 5679 14 5643 5652 + 15 5637 5643 6 5637 5685 8 5631 5637 12 + 5715 5718 1 5715 5721 2 5697 5703 6 5697 + 5715 8 5691 5697 12 5745 5748 1 5745 5751 + 2 5727 5733 6 5727 5745 8 5721 5727 12 + 5802 5805 1 5802 5808 2 5772 5778 6 5772 + 5790 6 5763 5772 6 5757 5763 6 5757 5802 + 8 5751 5757 12 5832 5835 1 5832 5838 2 + 5814 5820 6 5814 5832 8 5808 5814 12 5898 + 5901 1 5898 5904 2 5877 5886 10 5868 5877 + 6 5859 5868 6 5850 5859 6 5844 5850 6 + 5844 5898 8 5838 5844 12 5943 5946 1 5943 + 5949 2 5934 5937 32 5934 5940 32 5925 5934 + 8 5916 5925 6 5910 5916 6 5910 5943 8 + 5904 5910 12 5964 5967 1 5964 5970 2 5955 + 5964 8 5949 5955 12 6036 6039 1 6036 6042 + 2 6015 6018 30 6015 6027 30 6009 6015 30 + 6000 6009 31 5991 6000 6 5982 5991 6 5976 + 5982 6 5976 6036 8 5970 5976 12 6069 6072 + 1 6069 6075 2 6054 6063 17 6048 6054 6 + 6048 6069 8 6042 6048 12 6120 6123 1 6120 + 6126 2 6105 6108 4 6096 6105 4 6087 6096 + 6 6081 6087 6 6081 6120 8 6075 6081 12 + 6171 6174 1 6171 6177 2 6156 6159 4 6147 + 6156 4 6138 6147 6 6132 6138 6 6132 6171 + 8 6126 6132 12 6237 6240 1 6237 6243 2 + 6216 6225 10 6207 6216 6 6198 6207 6 6189 + 6198 6 6183 6189 6 6183 6237 8 6177 6183 + 12 6279 6282 1 6279 6285 2 6264 6267 1 + 6264 6270 2 6255 6264 8 6249 6255 6 6249 + 6279 8 6243 6249 12 6351 6354 1 6351 6357 + 2 6330 6333 30 6330 6342 30 6324 6330 30 + 6315 6324 31 6306 6315 6 6297 6306 6 6291 + 6297 6 6291 6351 8 6285 6291 12 6393 6396 + 1 6393 6399 2 6378 6381 1 6378 6384 2 + 6369 6378 8 6363 6369 6 6363 6393 8 6357 + 6363 12 6423 6426 1 6423 6429 2 6405 6411 + 6 6405 6423 8 6399 6405 12 6456 6459 1 + 6456 6462 2 6441 6450 17 6435 6441 6 6435 + 6456 8 6429 6435 12 6507 6510 1 6507 6513 + 2 6492 6495 4 6483 6492 4 6474 6483 6 + 6468 6474 6 6468 6507 8 6462 6468 12 6555 + 6558 1 6555 6561 2 6525 6531 6 6525 6543 + 6 6519 6525 6 6519 6555 8 6513 6519 12 + 6585 6588 1 6585 6591 2 6567 6573 6 6567 + 6585 8 6561 6567 12 6642 6645 1 6642 6648 + 2 6612 6618 6 6612 6630 6 6603 6612 6 + 6597 6603 6 6597 6642 8 6591 6597 12 6684 + 6687 1 6684 6690 2 6660 6666 6 6660 6678 + 17 6654 6660 6 6654 6684 8 6648 6654 12 + 6747 6750 1 6747 6753 2 6735 6741 14 6726 + 6729 18 6726 6735 19 6720 6726 19 6714 6720 + 14 6711 6714 14 6711 6741 14 6702 6711 15 + 6696 6702 6 6696 6747 8 6690 6696 12 6804 + 6807 1 6804 6810 2 6783 6792 6 6765 6771 + 6 6765 6783 6 6759 6765 6 6759 6804 8 + 6753 6759 12 6825 6828 1 6825 6831 2 6816 + 6825 8 6810 6816 12 6855 6858 1 6855 6861 + 2 6837 6843 6 6837 6855 8 6831 6837 12 + 6900 6903 1 6900 6906 2 6891 6894 32 6891 + 6897 32 6882 6891 8 6873 6882 6 6867 6873 + 6 6867 6900 8 6861 6867 12 6966 6969 1 + 6966 6972 2 6945 6954 10 6936 6945 6 6927 + 6936 6 6918 6927 6 6912 6918 6 6912 6966 + 8 6906 6912 12 6996 6999 1 6996 7002 2 + 6978 6984 6 6978 6996 8 6972 6978 12 7047 + 7050 1 7047 7053 2 7032 7035 4 7023 7032 + 4 7014 7023 6 7008 7014 6 7008 7047 8 + 7002 7008 12 7089 7092 1 7089 7095 2 7083 + 7089 8 7074 7083 6 7065 7074 6 7056 7065 + 6 7053 7056 12 7053 7083 12 7122 7125 1 + 7122 7128 2 7107 7116 17 7101 7107 6 7101 + 7122 8 7095 7101 12 7185 7188 1 7185 7191 + 2 7173 7179 14 7164 7167 18 7164 7173 19 + 7158 7164 19 7152 7158 14 7149 7152 14 7149 + 7179 14 7140 7149 15 7134 7140 6 7134 7185 + 8 7128 7134 12 7227 7230 1 7227 7233 2 + 7212 7215 1 7212 7218 2 7203 7212 8 7197 + 7203 6 7197 7227 8 7191 7197 12 7269 7272 + 1 7269 7275 2 7245 7251 6 7245 7263 17 + 7239 7245 6 7239 7269 8 7233 7239 12 7320 + 7323 1 7320 7326 2 7305 7308 4 7296 7305 + 4 7287 7296 6 7281 7287 6 7281 7320 8 + 7275 7281 12 7341 7344 1 7341 7347 2 7332 + 7341 8 7326 7332 12 7389 7392 1 7389 7395 + 2 7359 7365 6 7359 7377 6 7353 7359 6 + 7353 7389 8 7347 7353 12 7419 7422 1 7419 + 7425 2 7401 7407 6 7401 7419 8 7395 7401 + 12 7485 7488 1 7485 7491 2 7464 7473 10 + 7455 7464 6 7446 7455 6 7437 7446 6 7431 + 7437 6 7431 7485 8 7425 7431 12 7515 7518 + 1 7515 7521 2 7497 7503 6 7497 7515 8 + 7491 7497 12 7548 7551 1 7548 7554 2 7533 + 7542 17 7527 7533 6 7527 7548 8 7521 7527 + 12 7605 7608 1 7605 7611 2 7575 7581 6 + 7575 7593 6 7566 7575 6 7560 7566 6 7560 + 7605 8 7554 7560 12 7650 7653 1 7650 7656 + 2 7641 7644 32 7641 7647 32 7632 7641 8 + 7623 7632 6 7617 7623 6 7617 7650 8 7611 + 7617 12 7680 7683 1 7680 7686 2 7662 7668 + 6 7662 7680 8 7656 7662 12 7722 7725 1 + 7722 7728 2 7698 7704 6 7698 7716 17 7692 + 7698 6 7692 7722 8 7686 7692 12 7770 7773 + 1 7770 7776 2 7740 7746 6 7740 7758 6 + 7734 7740 6 7734 7770 8 7728 7734 12 7842 + 7845 1 7842 7848 2 7821 7824 30 7821 7833 + 30 7815 7821 30 7806 7815 31 7797 7806 6 + 7788 7797 6 7782 7788 6 7782 7842 8 7776 + 7782 12 7905 7908 1 7905 7911 2 7893 7899 + 14 7884 7887 18 7884 7893 19 7878 7884 19 + 7872 7878 14 7869 7872 14 7869 7899 14 7860 + 7869 15 7854 7860 6 7854 7905 8 7848 7854 + 12 7947 7950 1 7947 7953 2 7923 7929 6 + 7923 7941 17 7917 7923 6 7917 7947 8 7911 + 7917 12 7977 7980 1 7977 7983 2 7959 7965 + 6 7959 7977 8 7953 7959 12 8034 8037 1 + 8034 8040 2 8004 8010 6 8004 8022 6 7995 + 8004 6 7989 7995 6 7989 8034 8 7983 7989 + 12 8064 8067 1 8064 8070 2 8046 8052 6 + 8046 8064 8 8040 8046 12 8121 8124 1 8121 + 8127 2 8091 8097 6 8091 8109 6 8082 8091 + 6 8076 8082 6 8076 8121 8 8070 8076 12 + 8142 8145 1 8142 8148 2 8133 8142 8 8127 + 8133 12 8187 8190 1 8187 8193 2 8178 8181 + 32 8178 8184 32 8169 8178 8 8160 8169 6 + 8154 8160 6 8154 8187 8 8148 8154 12 8223 + 8226 1 8223 8229 2 8214 8217 32 8214 8220 + 32 8205 8214 8 8199 8205 6 8199 8223 8 + 8193 8199 12 8244 8247 1 8244 8250 2 8235 + 8244 8 8229 8235 12 8301 8304 1 8301 8307 + 2 8280 8289 6 8262 8268 6 8262 8280 6 + 8256 8262 6 8256 8301 8 8250 8256 12 8367 + 8370 1 8367 8373 2 8346 8355 10 8337 8346 + 6 8328 8337 6 8319 8328 6 8313 8319 6 + 8313 8367 8 8307 8313 12 8415 8418 1 8415 + 8421 2 8385 8391 6 8385 8403 6 8379 8385 + 6 8379 8415 8 8373 8379 12 8457 8460 1 + 8457 8463 2 8442 8445 1 8442 8448 2 8433 + 8442 8 8427 8433 6 8427 8457 8 8421 8427 + 12 8487 8490 1 8487 8493 2 8469 8475 6 + 8469 8487 8 8463 8469 12 8535 8538 1 8535 + 8541 2 8505 8511 6 8505 8523 6 8499 8505 + 6 8499 8535 8 8493 8499 12 8568 8571 1 + 8568 8574 2 8553 8562 17 8547 8553 6 8547 + 8568 8 8541 8547 12 8598 8601 1 8598 8604 + 2 8580 8586 6 8580 8598 8 8574 8580 12 + 8619 8622 1 8619 8625 2 8610 8619 8 8604 + 8610 12 8661 8664 1 8661 8667 2 8655 8661 + 8 8646 8655 6 8637 8646 6 8628 8637 6 + 8625 8628 12 8625 8655 12 8718 8721 1 8718 + 8724 2 8697 8706 6 8679 8685 6 8679 8697 + 6 8673 8679 6 8673 8718 8 8667 8673 12 + 8784 8787 1 8784 8790 2 8763 8772 10 8754 + 8763 6 8745 8754 6 8736 8745 6 8730 8736 + 6 8730 8784 8 8724 8730 12 8826 8829 1 + 8826 8832 2 8802 8808 6 8802 8820 17 8796 + 8802 6 8796 8826 8 8790 8796 12 8883 8886 + 1 8883 8889 2 8853 8859 6 8853 8871 6 + 8844 8853 6 8838 8844 6 8838 8883 8 8832 + 8838 12 8913 8916 1 8913 8919 2 8895 8901 + 6 8895 8913 8 8889 8895 12 8943 8946 1 + 8943 8949 2 8925 8931 6 8925 8943 8 8919 + 8925 12 8976 8979 1 8976 8982 2 8961 8970 + 17 8955 8961 6 8955 8976 8 8949 8955 12 + 8997 9000 1 8997 9003 2 8988 8997 8 8982 + 8988 12 9054 9057 1 9054 9060 2 9033 9042 + 6 9015 9021 6 9015 9033 6 9009 9015 6 + 9009 9054 8 9003 9009 12 9087 9090 1 9087 + 9093 2 9072 9081 17 9066 9072 6 9066 9087 + 8 9060 9066 12 9129 9132 1 9129 9135 2 + 9114 9117 1 9114 9120 2 9105 9114 8 9099 + 9105 6 9099 9129 8 9093 9099 12 9189 9192 + 1 9189 9195 2 9177 9183 14 9171 9177 14 + 9165 9171 14 9159 9165 14 9156 9159 14 9156 + 9183 14 9147 9156 15 9141 9147 6 9141 9189 + 8 9135 9141 12 9255 9258 1 9255 9261 2 + 9234 9243 10 9225 9234 6 9216 9225 6 9207 + 9216 6 9201 9207 6 9201 9255 8 9195 9201 + 12 9321 9324 1 9321 9327 2 9300 9309 10 + 9291 9300 6 9282 9291 6 9273 9282 6 9267 + 9273 6 9267 9321 8 9261 9267 12 9372 9375 + 1 9372 9378 2 9357 9360 4 9348 9357 4 + 9339 9348 6 9333 9339 6 9333 9372 8 9327 + 9333 12 9429 9432 1 9429 9435 2 9399 9405 + 6 9399 9417 6 9390 9399 6 9384 9390 6 + 9384 9429 8 9378 9384 12 9465 9468 1 9465 + 9471 2 9456 9459 32 9456 9462 32 9447 9456 + 8 9441 9447 6 9441 9465 8 9435 9441 12 + 9528 9531 1 9528 9534 2 9516 9522 14 9507 + 9510 18 9507 9516 19 9501 9507 19 9495 9501 + 14 9492 9495 14 9492 9522 14 9483 9492 15 + 9477 9483 6 9477 9528 8 9471 9477 12 9570 + 9573 1 9570 9576 2 9555 9558 1 9555 9561 + 2 9546 9555 8 9540 9546 6 9540 9570 8 + 9534 9540 12 9600 9603 1 9600 9606 2 9582 + 9588 6 9582 9600 8 9576 9582 12 9651 9654 + 1 9651 9657 2 9636 9639 4 9627 9636 4 + 9618 9627 6 9612 9618 6 9612 9651 8 9606 + 9612 12 9699 9702 1 9699 9705 2 9669 9675 + 6 9669 9687 6 9663 9669 6 9663 9699 8 + 9657 9663 12 9732 9735 1 9732 9738 2 9717 + 9726 17 9711 9717 6 9711 9732 8 9705 9711 + 12 9774 9777 1 9774 9780 2 9768 9774 8 + 9759 9768 6 9750 9759 6 9741 9750 6 9738 + 9741 12 9738 9768 12 9831 9834 1 9831 9837 + 2 9801 9807 6 9801 9819 6 9792 9801 6 + 9786 9792 6 9786 9831 8 9780 9786 12 9897 + 9900 1 9897 9903 2 9876 9885 10 9867 9876 + 6 9858 9867 6 9849 9858 6 9843 9849 6 + 9843 9897 8 9837 9843 12 9963 9966 1 9963 + 9969 2 9942 9951 10 9933 9942 6 9924 9933 + 6 9915 9924 6 9909 9915 6 9909 9963 8 + 9903 9909 12 10005 10008 1 10005 10011 2 9990 + 9993 1 9990 9996 2 9981 9990 8 9975 9981 + 6 9975 10005 8 9969 9975 12 10053 10056 1 + 10053 10059 2 10023 10029 6 10023 10041 6 10017 + 10023 6 10017 10053 8 10011 10017 12 10089 10092 + 1 10089 10095 2 10080 10083 32 10080 10086 32 + 10071 10080 8 10065 10071 6 10065 10089 8 10059 + 10065 12 10146 10149 1 10146 10152 2 10125 10134 + 6 10107 10113 6 10107 10125 6 10101 10107 6 + 10101 10146 8 10095 10101 12 10197 10200 1 10197 + 10203 2 10182 10185 4 10173 10182 4 10164 10173 + 6 10158 10164 6 10158 10197 8 10152 10158 12 + 10242 10245 1 10242 10248 2 10233 10236 32 10233 + 10239 32 10224 10233 8 10215 10224 6 10209 10215 + 6 10209 10242 8 10203 10209 12 10290 10293 1 + 10290 10296 2 10260 10266 6 10260 10278 6 10254 + 10260 6 10254 10290 8 10248 10254 12 10311 10314 + 1 10311 10317 2 10302 10311 8 10296 10302 12 + 10353 10356 1 10353 10359 2 10338 10341 1 10338 + 10344 2 10329 10338 8 10323 10329 6 10323 10353 + 8 10317 10323 12 10395 10398 1 10395 10401 2 + 10371 10377 6 10371 10389 17 10365 10371 6 10365 + 10395 8 10359 10365 12 10443 10446 1 10443 10449 + 2 10413 10419 6 10413 10431 6 10407 10413 6 + 10407 10443 8 10401 10407 12 10473 10476 1 10473 + 10479 2 10455 10461 6 10455 10473 8 10449 10455 + 12 10533 10536 1 10533 10539 2 10521 10527 14 + 10515 10521 14 10509 10515 14 10503 10509 14 10500 + 10503 14 10500 10527 14 10491 10500 15 10485 10491 + 6 10485 10533 8 10479 10485 12 10590 10593 1 + 10590 10596 2 10560 10566 6 10560 10578 6 10551 + 10560 6 10545 10551 6 10545 10590 8 10539 10545 + 12 10623 10626 1 10623 10629 2 10608 10617 34 + 10602 10608 6 10602 10623 8 10596 10602 12 10656 + 10659 1 10656 10662 2 10641 10650 17 10635 10641 + 6 10635 10656 8 10629 10635 12 10692 10695 1 + 10692 10698 2 10683 10686 32 10683 10689 32 10674 + 10683 8 10668 10674 6 10668 10692 8 10662 10668 + 12 10743 10746 1 10743 10749 2 10728 10731 4 + 10719 10728 4 10710 10719 6 10704 10710 6 10704 + 10743 8 10698 10704 12 10773 10776 1 10773 10779 + 2 10755 10761 6 10755 10773 8 10749 10755 12 + 10815 10818 1 10815 10821 2 10791 10797 6 10791 + 10809 17 10785 10791 6 10785 10815 8 10779 10785 + 12 10836 10839 1 10836 10842 2 10827 10836 8 + 10821 10827 12 10893 10896 1 10893 10899 2 10872 + 10881 6 10854 10860 6 10854 10872 6 10848 10854 + 6 10848 10893 8 10842 10848 12 10935 10938 1 + 10935 10941 2 10911 10917 6 10911 10929 17 10905 + 10911 6 10905 10935 8 10899 10905 12 10956 10959 + 1 10956 10962 2 10947 10956 8 10941 10947 12 + 11001 11004 1 11001 11007 2 10992 10995 32 10992 + 10998 32 10983 10992 8 10974 10983 6 10968 10974 + 6 10968 11001 8 10962 10968 12 11049 11052 1 + 11049 11055 2 11019 11025 6 11019 11037 6 11013 + 11019 6 11013 11049 8 11007 11013 12 11097 11100 + 1 11097 11103 2 11067 11073 6 11067 11085 6 + 11061 11067 6 11061 11097 8 11055 11061 12 11148 + 11151 1 11148 11154 2 11136 11142 22 11130 11136 + 24 11127 11130 25 11124 11127 26 11124 11142 27 + 11115 11124 28 11109 11115 6 11109 11148 8 11103 + 11109 12 11196 11199 1 11196 11202 2 11166 11172 + 6 11166 11184 6 11160 11166 6 11160 11196 8 + 11154 11160 12 11232 11235 1 11232 11238 2 11223 + 11226 32 11223 11229 32 11214 11223 8 11208 11214 + 6 11208 11232 8 11202 11208 12 11262 11265 1 + 11262 11268 2 11244 11250 6 11244 11262 8 11238 + 11244 12 11283 11286 1 11283 11289 2 11274 11283 + 8 11268 11274 12 11346 11349 1 11346 11352 2 + 11334 11340 14 11325 11328 18 11325 11334 19 11319 + 11325 19 11313 11319 14 11310 11313 14 11310 11340 + 14 11301 11310 15 11295 11301 6 11295 11346 8 + 11289 11295 12 11397 11400 1 11397 11403 2 11385 + 11391 22 11379 11385 24 11376 11379 25 11373 11376 + 26 11373 11391 27 11364 11373 28 11358 11364 6 + 11358 11397 8 11352 11358 12 11430 11433 1 11430 + 11436 2 11415 11424 34 11409 11415 6 11409 11430 + 8 11403 11409 12 11478 11481 1 11478 11484 2 + 11448 11454 6 11448 11466 6 11442 11448 6 11442 + 11478 8 11436 11442 12 11511 11514 1 11511 11517 + 2 11496 11505 17 11490 11496 6 11490 11511 8 + 11484 11490 12 11562 11565 1 11562 11568 2 11547 + 11550 4 11538 11547 4 11529 11538 6 11523 11529 + 6 11523 11562 8 11517 11523 12 11583 11586 1 + 11583 11589 2 11574 11583 8 11568 11574 12 11625 + 11628 1 11625 11631 2 11610 11613 1 11610 11616 + 2 11601 11610 8 11595 11601 6 11595 11625 8 + 11589 11595 12 11673 11676 1 11673 11679 2 11643 + 11649 6 11643 11661 6 11637 11643 6 11637 11673 + 8 11631 11637 12 11730 11733 1 11730 11736 2 + 11700 11706 6 11700 11718 6 11691 11700 6 11685 + 11691 6 11685 11730 8 11679 11685 12 11787 11790 + 1 11787 11793 2 11757 11763 6 11757 11775 6 + 11748 11757 6 11742 11748 6 11742 11787 8 11736 + 11742 12 11832 11835 1 11832 11838 2 11823 11826 + 32 11823 11829 32 11814 11823 8 11805 11814 6 + 11799 11805 6 11799 11832 8 11793 11799 12 11883 + 11886 1 11883 11889 2 11871 11877 22 11865 11871 + 24 11862 11865 25 11859 11862 26 11859 11877 27 + 11850 11859 28 11844 11850 6 11844 11883 8 11838 + 11844 12 11934 11937 1 11934 11940 2 11922 11928 + 22 11916 11922 24 11913 11916 25 11910 11913 26 + 11910 11928 27 11901 11910 28 11895 11901 6 11895 + 11934 8 11889 11895 12 11985 11988 1 11985 11991 + 2 11973 11979 22 11967 11973 24 11964 11967 25 + 11961 11964 26 11961 11979 27 11952 11961 28 11946 + 11952 6 11946 11985 8 11940 11946 12 12036 12039 + 1 12036 12042 2 12024 12030 22 12018 12024 24 + 12015 12018 25 12012 12015 26 12012 12030 27 12003 + 12012 28 11997 12003 6 11997 12036 8 11991 11997 + 12 12087 12090 1 12087 12093 2 12075 12081 22 + 12069 12075 24 12066 12069 25 12063 12066 26 12063 + 12081 27 12054 12063 28 12048 12054 6 12048 12087 + 8 12042 12048 12 12138 12141 32 12138 12144 32 + 12126 12132 22 12120 12126 24 12117 12120 25 12114 + 12117 26 12114 12132 27 12105 12114 28 12099 12105 + 6 12099 12138 8 12093 12099 12 12273 12276 43 + 12270 12273 45 12261 12267 48 12261 12264 49 12258 + 12261 50 12258 12270 45 12255 12258 43 12252 12276 + 51 12252 12255 51 12249 12252 52 12243 12249 6 + 12243 12246 17 12237 12243 6 12237 12240 17 12234 + 12249 54 12231 12234 54 12231 12237 6 12228 12231 + 6 12225 12228 54 12216 12225 55 12216 12219 56 + 12216 12222 56 12213 12216 55 12207 12210 57 12204 + 12207 58 12201 12204 58 12195 12201 60 12195 12198 + 30 12192 12210 61 12192 12195 35 12189 12192 62 + 12186 12189 63 12183 12186 65 12183 12210 66 12180 + 12183 67 12174 12180 6 12174 12177 17 12168 12174 + 6 12168 12171 17 12165 12180 54 12162 12168 6 + 12162 12165 54 12159 12162 6 12156 12159 54 12147 + 12213 55 12147 12150 56 12147 12153 56 12147 12156 + 55 12393 12396 69 12390 12393 69 12390 12402 70 + 12387 12390 69 12384 12387 69 12384 12399 70 12381 + 12384 69 12381 12396 69 12375 12381 72 12369 12372 + 69 12366 12369 69 12366 12405 70 12363 12366 69 + 12360 12363 69 12360 12378 73 12357 12360 69 12357 + 12372 69 12357 12375 72 +%FLAG ANGLES_INC_HYDROGEN +%FORMAT(10I8) + 51 57 60 2 45 39 48 4 42 39 + 45 4 42 39 48 4 36 39 42 5 + 36 39 45 5 36 39 48 5 33 27 + 36 5 30 27 33 4 30 27 36 5 + 24 18 27 7 21 18 24 8 21 18 + 27 7 18 27 30 10 18 27 33 10 + 15 12 18 12 15 12 51 13 12 18 + 21 7 12 18 24 7 9 0 12 17 + 6 0 9 18 6 0 12 17 3 0 + 6 18 3 0 9 18 3 0 12 17 + 0 12 15 19 72 78 81 2 69 63 + 72 22 66 63 69 4 66 63 72 22 + 60 57 63 23 57 63 66 24 57 63 + 69 24 132 138 141 2 123 120 126 26 + 120 126 129 26 117 114 120 26 114 120 + 123 26 111 108 114 26 108 114 117 26 + 105 102 108 26 102 108 111 26 99 102 + 105 26 99 126 129 26 96 90 99 28 + 93 90 96 8 93 90 99 28 87 84 + 90 10 87 84 132 22 84 90 93 7 + 84 90 96 7 81 78 84 23 78 84 + 87 24 189 195 198 2 183 177 186 8 + 180 177 183 8 180 177 186 8 171 165 + 174 8 168 165 171 8 168 165 174 8 + 162 159 165 7 162 159 177 7 159 165 + 168 7 159 165 171 7 159 165 174 7 + 159 177 180 7 159 177 183 7 159 177 + 186 7 156 150 159 7 153 150 156 8 + 153 150 159 7 150 159 162 7 147 144 + 150 10 147 144 189 22 144 150 153 7 + 144 150 156 7 141 138 144 23 138 144 + 147 24 219 225 228 2 213 207 216 8 + 210 207 213 8 210 207 216 8 204 201 + 207 10 204 201 219 22 201 207 210 7 + 201 207 213 7 201 207 216 7 198 195 + 201 23 195 201 204 24 240 246 249 2 + 237 231 240 22 234 231 237 4 234 231 + 240 22 228 225 231 23 225 231 234 24 + 225 231 237 24 306 312 315 2 300 294 + 303 18 297 294 300 18 297 294 303 18 + 291 285 294 19 288 285 291 32 288 285 + 294 19 285 294 297 17 285 294 300 17 + 285 294 303 17 282 276 285 7 279 276 + 282 8 279 276 285 7 276 285 288 12 + 276 285 291 12 273 267 276 7 270 267 + 273 8 270 267 276 7 267 276 279 7 + 267 276 282 7 264 258 267 7 261 258 + 264 8 261 258 267 7 258 267 270 7 + 258 267 273 7 255 252 258 10 255 252 + 306 22 252 258 261 7 252 258 264 7 + 249 246 252 23 246 252 255 24 372 378 + 381 2 366 360 369 18 363 360 366 18 + 363 360 369 18 357 351 360 19 354 351 + 357 32 354 351 360 19 351 360 363 17 + 351 360 366 17 351 360 369 17 348 342 + 351 7 345 342 348 8 345 342 351 7 + 342 351 354 12 342 351 357 12 339 333 + 342 7 336 333 339 8 336 333 342 7 + 333 342 345 7 333 342 348 7 330 324 + 333 7 327 324 330 8 327 324 333 7 + 324 333 336 7 324 333 339 7 321 318 + 324 10 321 318 372 22 318 324 327 7 + 318 324 330 7 315 312 318 23 312 318 + 321 24 429 435 438 2 423 417 426 8 + 420 417 423 8 420 417 426 8 414 408 + 417 7 411 408 414 8 411 408 417 7 + 408 417 420 7 408 417 423 7 408 417 + 426 7 402 396 405 8 399 396 402 8 + 399 396 405 8 393 390 396 7 393 390 + 408 7 390 396 399 7 390 396 402 7 + 390 396 405 7 390 408 411 7 390 408 + 414 7 387 384 390 10 387 384 429 22 + 384 390 393 7 381 378 384 23 378 384 + 387 24 486 492 495 2 480 474 483 8 + 477 474 480 8 477 474 483 8 468 462 + 471 8 465 462 468 8 465 462 471 8 + 459 456 462 7 459 456 474 7 456 462 + 465 7 456 462 468 7 456 462 471 7 + 456 474 477 7 456 474 480 7 456 474 + 483 7 453 447 456 7 450 447 453 8 + 450 447 456 7 447 456 459 7 444 441 + 447 10 444 441 486 22 441 447 450 7 + 441 447 453 7 438 435 441 23 435 441 + 444 24 543 549 552 2 537 531 540 8 + 534 531 537 8 534 531 540 8 528 522 + 531 7 525 522 528 8 525 522 531 7 + 522 531 534 7 522 531 537 7 522 531 + 540 7 516 510 519 8 513 510 516 8 + 513 510 519 8 507 504 510 7 507 504 + 522 7 504 510 513 7 504 510 516 7 + 504 510 519 7 504 522 525 7 504 522 + 528 7 501 498 504 10 501 498 543 22 + 498 504 507 7 495 492 498 23 492 498 + 501 24 585 591 594 2 573 567 576 8 + 570 567 573 8 570 567 576 8 564 561 + 567 10 564 561 579 34 561 567 570 7 + 561 567 573 7 561 567 576 7 561 579 + 582 35 558 555 561 10 558 555 585 22 + 555 561 564 10 552 549 555 23 549 555 + 558 24 606 612 615 2 603 597 606 22 + 600 597 603 4 600 597 606 22 594 591 + 597 23 591 597 600 24 591 597 603 24 + 663 669 672 2 657 651 660 8 654 651 + 657 8 654 651 660 8 645 639 648 8 + 642 639 645 8 642 639 648 8 636 633 + 639 7 636 633 651 7 633 639 642 7 + 633 639 645 7 633 639 648 7 633 651 + 654 7 633 651 657 7 633 651 660 7 + 630 624 633 7 627 624 630 8 627 624 + 633 7 624 633 636 7 621 618 624 10 + 621 618 663 22 618 624 627 7 618 624 + 630 7 615 612 618 23 612 618 621 24 + 720 726 729 2 714 708 717 8 711 708 + 714 8 711 708 717 8 702 696 705 8 + 699 696 702 8 699 696 705 8 693 690 + 696 7 693 690 708 7 690 696 699 7 + 690 696 702 7 690 696 705 7 690 708 + 711 7 690 708 714 7 690 708 717 7 + 687 681 690 7 684 681 687 8 684 681 + 690 7 681 690 693 7 678 675 681 10 + 678 675 720 22 675 681 684 7 675 681 + 687 7 672 669 675 23 669 675 678 24 + 753 759 762 2 744 738 747 34 741 738 + 744 4 741 738 747 34 738 747 750 35 + 735 732 738 10 735 732 753 22 732 738 + 741 10 732 738 744 10 729 726 732 23 + 726 732 735 24 795 801 804 2 789 786 + 792 36 780 786 789 2 780 786 792 2 + 777 771 780 37 774 771 777 8 774 771 + 780 37 768 765 771 10 768 765 795 22 + 765 771 774 7 765 771 777 7 762 759 + 765 23 759 765 768 24 861 867 870 2 + 855 849 858 18 852 849 855 18 852 849 + 858 18 846 840 849 19 843 840 846 32 + 843 840 849 19 840 849 852 17 840 849 + 855 17 840 849 858 17 837 831 840 7 + 834 831 837 8 834 831 840 7 831 840 + 843 12 831 840 846 12 828 822 831 7 + 825 822 828 8 825 822 831 7 822 831 + 834 7 822 831 837 7 819 813 822 7 + 816 813 819 8 816 813 822 7 813 822 + 825 7 813 822 828 7 810 807 813 10 + 810 807 861 22 807 813 816 7 807 813 + 819 7 804 801 807 23 801 807 810 24 + 894 900 903 2 885 879 888 34 882 879 + 885 4 882 879 888 34 879 888 891 35 + 876 873 879 10 876 873 894 22 873 879 + 882 10 873 879 885 10 870 867 873 23 + 867 873 876 24 951 957 960 2 945 939 + 948 8 942 939 945 8 942 939 948 8 + 936 930 939 7 933 930 936 8 933 930 + 939 7 930 939 942 7 930 939 945 7 + 930 939 948 7 924 918 927 8 921 918 + 924 8 921 918 927 8 915 912 918 7 + 915 912 930 7 912 918 921 7 912 918 + 924 7 912 918 927 7 912 930 933 7 + 912 930 936 7 909 906 912 10 909 906 + 951 22 906 912 915 7 903 900 906 23 + 900 906 909 24 981 987 990 2 975 969 + 978 8 972 969 975 8 972 969 978 8 + 966 963 969 10 966 963 981 22 963 969 + 972 7 963 969 975 7 963 969 978 7 + 960 957 963 23 957 963 966 24 1044 1050 + 1053 2 1035 1032 1038 26 1032 1038 1041 26 + 1023 1026 1029 39 1023 1032 1035 40 1020 1017 + 1023 40 1014 1011 1017 26 1011 1017 1020 26 + 1008 1011 1014 26 1008 1038 1041 26 1005 999 + 1008 28 1002 999 1005 8 1002 999 1008 28 + 996 993 999 10 996 993 1044 22 993 999 + 1002 7 993 999 1005 7 990 987 993 23 + 987 993 996 24 1065 1071 1074 2 1062 1056 + 1065 22 1059 1056 1062 4 1059 1056 1065 22 + 1053 1050 1056 23 1050 1056 1059 24 1050 1056 + 1062 24 1122 1128 1131 2 1116 1110 1119 8 + 1113 1110 1116 8 1113 1110 1119 8 1107 1101 + 1110 7 1104 1101 1107 8 1104 1101 1110 7 + 1101 1110 1113 7 1101 1110 1116 7 1101 1110 + 1119 7 1095 1089 1098 8 1092 1089 1095 8 + 1092 1089 1098 8 1086 1083 1089 7 1086 1083 + 1101 7 1083 1089 1092 7 1083 1089 1095 7 + 1083 1089 1098 7 1083 1101 1104 7 1083 1101 + 1107 7 1080 1077 1083 10 1080 1077 1122 22 + 1077 1083 1086 7 1074 1071 1077 23 1071 1077 + 1080 24 1152 1158 1161 2 1146 1140 1149 8 + 1143 1140 1146 8 1143 1140 1149 8 1137 1134 + 1140 10 1137 1134 1152 22 1134 1140 1143 7 + 1134 1140 1146 7 1134 1140 1149 7 1131 1128 + 1134 23 1128 1134 1137 24 1218 1224 1227 2 + 1212 1206 1215 18 1209 1206 1212 18 1209 1206 + 1215 18 1203 1197 1206 19 1200 1197 1203 32 + 1200 1197 1206 19 1197 1206 1209 17 1197 1206 + 1212 17 1197 1206 1215 17 1194 1188 1197 7 + 1191 1188 1194 8 1191 1188 1197 7 1188 1197 + 1200 12 1188 1197 1203 12 1185 1179 1188 7 + 1182 1179 1185 8 1182 1179 1188 7 1179 1188 + 1191 7 1179 1188 1194 7 1176 1170 1179 7 + 1173 1170 1176 8 1173 1170 1179 7 1170 1179 + 1182 7 1170 1179 1185 7 1167 1164 1170 10 + 1167 1164 1218 22 1164 1170 1173 7 1164 1170 + 1176 7 1161 1158 1164 23 1158 1164 1167 24 + 1248 1254 1257 2 1242 1236 1245 8 1239 1236 + 1242 8 1239 1236 1245 8 1233 1230 1236 10 + 1233 1230 1248 22 1230 1236 1239 7 1230 1236 + 1242 7 1230 1236 1245 7 1227 1224 1230 23 + 1224 1230 1233 24 1299 1305 1308 2 1293 1287 + 1296 4 1290 1287 1293 4 1290 1287 1296 4 + 1284 1287 1290 5 1284 1287 1293 5 1284 1287 + 1296 5 1281 1275 1284 5 1278 1275 1281 4 + 1278 1275 1284 5 1272 1266 1275 7 1269 1266 + 1272 8 1269 1266 1275 7 1266 1275 1278 10 + 1266 1275 1281 10 1263 1260 1266 10 1263 1260 + 1299 22 1260 1266 1269 7 1260 1266 1272 7 + 1257 1254 1260 23 1254 1260 1263 24 1350 1356 + 1359 2 1341 1338 1344 43 1338 1344 1347 44 + 1335 1332 1338 45 1332 1338 1341 46 1329 1332 + 1335 49 1326 1344 1347 53 1323 1317 1326 54 + 1320 1317 1323 8 1320 1317 1326 54 1314 1311 + 1317 10 1314 1311 1350 22 1311 1317 1320 7 + 1311 1317 1323 7 1308 1305 1311 23 1305 1311 + 1314 24 1422 1428 1431 2 1416 1413 1419 58 + 1407 1404 1410 58 1401 1404 1407 60 1401 1404 + 1410 60 1401 1413 1416 60 1401 1413 1419 60 + 1398 1395 1401 60 1392 1386 1395 61 1389 1386 + 1392 4 1389 1386 1395 61 1386 1395 1398 62 + 1383 1377 1386 7 1380 1377 1383 8 1380 1377 + 1386 7 1377 1386 1389 10 1377 1386 1392 10 + 1374 1368 1377 7 1371 1368 1374 8 1371 1368 + 1377 7 1368 1377 1380 7 1368 1377 1383 7 + 1365 1362 1368 10 1365 1362 1422 22 1362 1368 + 1371 7 1362 1368 1374 7 1359 1356 1362 23 + 1356 1362 1365 24 1467 1473 1476 2 1455 1449 + 1458 37 1452 1449 1455 8 1452 1449 1458 37 + 1446 1440 1449 7 1443 1440 1446 8 1443 1440 + 1449 7 1440 1449 1452 7 1440 1449 1455 7 + 1437 1434 1440 10 1437 1434 1467 22 1434 1440 + 1443 7 1434 1440 1446 7 1431 1428 1434 23 + 1428 1434 1437 24 1488 1494 1497 2 1485 1479 + 1488 22 1482 1479 1485 4 1482 1479 1488 22 + 1476 1473 1479 23 1473 1479 1482 24 1473 1479 + 1485 24 1518 1524 1527 2 1512 1506 1515 8 + 1509 1506 1512 8 1509 1506 1515 8 1503 1500 + 1506 10 1503 1500 1518 22 1500 1506 1509 7 + 1500 1506 1512 7 1500 1506 1515 7 1497 1494 + 1500 23 1494 1500 1503 24 1563 1569 1572 2 + 1551 1545 1554 37 1548 1545 1551 8 1548 1545 + 1554 37 1542 1536 1545 7 1539 1536 1542 8 + 1539 1536 1545 7 1536 1545 1548 7 1536 1545 + 1551 7 1533 1530 1536 10 1533 1530 1563 22 + 1530 1536 1539 7 1530 1536 1542 7 1527 1524 + 1530 23 1524 1530 1533 24 1620 1626 1629 2 + 1614 1608 1617 8 1611 1608 1614 8 1611 1608 + 1617 8 1602 1596 1605 8 1599 1596 1602 8 + 1599 1596 1605 8 1593 1590 1596 7 1593 1590 + 1608 7 1590 1596 1599 7 1590 1596 1602 7 + 1590 1596 1605 7 1590 1608 1611 7 1590 1608 + 1614 7 1590 1608 1617 7 1587 1581 1590 7 + 1584 1581 1587 8 1584 1581 1590 7 1581 1590 + 1593 7 1578 1575 1581 10 1578 1575 1620 22 + 1575 1581 1584 7 1575 1581 1587 7 1572 1569 + 1575 23 1569 1575 1578 24 1650 1656 1659 2 + 1644 1638 1647 8 1641 1638 1644 8 1641 1638 + 1647 8 1635 1632 1638 10 1635 1632 1650 22 + 1632 1638 1641 7 1632 1638 1644 7 1632 1638 + 1647 7 1629 1626 1632 23 1626 1632 1635 24 + 1710 1716 1719 2 1701 1698 1704 26 1698 1704 + 1707 26 1695 1692 1698 26 1692 1698 1701 26 + 1689 1686 1692 26 1686 1692 1695 26 1683 1680 + 1686 26 1680 1686 1689 26 1677 1680 1683 26 + 1677 1704 1707 26 1674 1668 1677 28 1671 1668 + 1674 8 1671 1668 1677 28 1665 1662 1668 10 + 1665 1662 1710 22 1662 1668 1671 7 1662 1668 + 1674 7 1659 1656 1662 23 1656 1662 1665 24 + 1752 1758 1761 2 1740 1734 1743 8 1737 1734 + 1740 8 1737 1734 1743 8 1731 1728 1734 10 + 1731 1728 1746 34 1728 1734 1737 7 1728 1734 + 1740 7 1728 1734 1743 7 1728 1746 1749 35 + 1725 1722 1728 10 1725 1722 1752 22 1722 1728 + 1731 10 1719 1716 1722 23 1716 1722 1725 24 + 1815 1821 1824 2 1806 1803 1809 26 1803 1809 + 1812 26 1794 1797 1800 39 1794 1803 1806 40 + 1791 1788 1794 40 1785 1782 1788 26 1782 1788 + 1791 26 1779 1782 1785 26 1779 1809 1812 26 + 1776 1770 1779 28 1773 1770 1776 8 1773 1770 + 1779 28 1767 1764 1770 10 1767 1764 1815 22 + 1764 1770 1773 7 1764 1770 1776 7 1761 1758 + 1764 23 1758 1764 1767 24 1863 1869 1872 2 + 1857 1851 1860 8 1854 1851 1857 8 1854 1851 + 1860 8 1845 1839 1848 8 1842 1839 1845 8 + 1842 1839 1848 8 1836 1833 1839 7 1836 1833 + 1851 7 1833 1839 1842 7 1833 1839 1845 7 + 1833 1839 1848 7 1833 1851 1854 7 1833 1851 + 1857 7 1833 1851 1860 7 1830 1827 1833 10 + 1830 1827 1863 22 1827 1833 1836 7 1824 1821 + 1827 23 1821 1827 1830 24 1884 1890 1893 2 + 1881 1875 1884 22 1878 1875 1881 4 1878 1875 + 1884 22 1872 1869 1875 23 1869 1875 1878 24 + 1869 1875 1881 24 1935 1941 1944 2 1929 1926 + 1932 36 1920 1926 1929 2 1920 1926 1932 2 + 1917 1911 1920 37 1914 1911 1917 8 1914 1911 + 1920 37 1908 1902 1911 7 1905 1902 1908 8 + 1905 1902 1911 7 1902 1911 1914 7 1902 1911 + 1917 7 1899 1896 1902 10 1899 1896 1935 22 + 1896 1902 1905 7 1896 1902 1908 7 1893 1890 + 1896 23 1890 1896 1899 24 1995 2001 2004 2 + 1986 1983 1989 26 1983 1989 1992 26 1980 1977 + 1983 26 1977 1983 1986 26 1974 1971 1977 26 + 1971 1977 1980 26 1968 1965 1971 26 1965 1971 + 1974 26 1962 1965 1968 26 1962 1989 1992 26 + 1959 1953 1962 28 1956 1953 1959 8 1956 1953 + 1962 28 1950 1947 1953 10 1950 1947 1995 22 + 1947 1953 1956 7 1947 1953 1959 7 1944 1941 + 1947 23 1941 1947 1950 24 2061 2067 2070 2 + 2055 2049 2058 18 2052 2049 2055 18 2052 2049 + 2058 18 2046 2040 2049 19 2043 2040 2046 32 + 2043 2040 2049 19 2040 2049 2052 17 2040 2049 + 2055 17 2040 2049 2058 17 2037 2031 2040 7 + 2034 2031 2037 8 2034 2031 2040 7 2031 2040 + 2043 12 2031 2040 2046 12 2028 2022 2031 7 + 2025 2022 2028 8 2025 2022 2031 7 2022 2031 + 2034 7 2022 2031 2037 7 2019 2013 2022 7 + 2016 2013 2019 8 2016 2013 2022 7 2013 2022 + 2025 7 2013 2022 2028 7 2010 2007 2013 10 + 2010 2007 2061 22 2007 2013 2016 7 2007 2013 + 2019 7 2004 2001 2007 23 2001 2007 2010 24 + 2097 2103 2106 2 2085 2079 2088 37 2082 2079 + 2085 8 2082 2079 2088 37 2076 2073 2079 10 + 2076 2073 2097 22 2073 2079 2082 7 2073 2079 + 2085 7 2070 2067 2073 23 2067 2073 2076 24 + 2169 2175 2178 2 2163 2160 2166 58 2154 2151 + 2157 58 2148 2151 2154 60 2148 2151 2157 60 + 2148 2160 2163 60 2148 2160 2166 60 2145 2142 + 2148 60 2139 2133 2142 61 2136 2133 2139 4 + 2136 2133 2142 61 2133 2142 2145 62 2130 2124 + 2133 7 2127 2124 2130 8 2127 2124 2133 7 + 2124 2133 2136 10 2124 2133 2139 10 2121 2115 + 2124 7 2118 2115 2121 8 2118 2115 2124 7 + 2115 2124 2127 7 2115 2124 2130 7 2112 2109 + 2115 10 2112 2109 2169 22 2109 2115 2118 7 + 2109 2115 2121 7 2106 2103 2109 23 2103 2109 + 2112 24 2217 2223 2226 2 2211 2205 2214 8 + 2208 2205 2211 8 2208 2205 2214 8 2199 2193 + 2202 8 2196 2193 2199 8 2196 2193 2202 8 + 2190 2187 2193 7 2190 2187 2205 7 2187 2193 + 2196 7 2187 2193 2199 7 2187 2193 2202 7 + 2187 2205 2208 7 2187 2205 2211 7 2187 2205 + 2214 7 2184 2181 2187 10 2184 2181 2217 22 + 2181 2187 2190 7 2178 2175 2181 23 2175 2181 + 2184 24 2262 2268 2271 2 2250 2244 2253 37 + 2247 2244 2250 8 2247 2244 2253 37 2241 2235 + 2244 7 2238 2235 2241 8 2238 2235 2244 7 + 2235 2244 2247 7 2235 2244 2250 7 2232 2229 + 2235 10 2232 2229 2262 22 2229 2235 2238 7 + 2229 2235 2241 7 2226 2223 2229 23 2223 2229 + 2232 24 2328 2334 2337 2 2322 2316 2325 18 + 2319 2316 2322 18 2319 2316 2325 18 2313 2307 + 2316 19 2310 2307 2313 32 2310 2307 2316 19 + 2307 2316 2319 17 2307 2316 2322 17 2307 2316 + 2325 17 2304 2298 2307 7 2301 2298 2304 8 + 2301 2298 2307 7 2298 2307 2310 12 2298 2307 + 2313 12 2295 2289 2298 7 2292 2289 2295 8 + 2292 2289 2298 7 2289 2298 2301 7 2289 2298 + 2304 7 2286 2280 2289 7 2283 2280 2286 8 + 2283 2280 2289 7 2280 2289 2292 7 2280 2289 + 2295 7 2277 2274 2280 10 2277 2274 2328 22 + 2274 2280 2283 7 2274 2280 2286 7 2271 2268 + 2274 23 2268 2274 2277 24 2385 2391 2394 2 + 2379 2373 2382 8 2376 2373 2379 8 2376 2373 + 2382 8 2367 2361 2370 8 2364 2361 2367 8 + 2364 2361 2370 8 2358 2355 2361 7 2358 2355 + 2373 7 2355 2361 2364 7 2355 2361 2367 7 + 2355 2361 2370 7 2355 2373 2376 7 2355 2373 + 2379 7 2355 2373 2382 7 2352 2346 2355 7 + 2349 2346 2352 8 2349 2346 2355 7 2346 2355 + 2358 7 2343 2340 2346 10 2343 2340 2385 22 + 2340 2346 2349 7 2340 2346 2352 7 2337 2334 + 2340 23 2334 2340 2343 24 2418 2424 2427 2 + 2409 2403 2412 67 2406 2403 2409 4 2406 2403 + 2412 67 2403 2412 2415 68 2400 2397 2403 10 + 2400 2397 2418 22 2397 2403 2406 10 2397 2403 + 2409 10 2394 2391 2397 23 2391 2397 2400 24 + 2448 2454 2457 2 2442 2436 2445 8 2439 2436 + 2442 8 2439 2436 2445 8 2433 2430 2436 10 + 2433 2430 2448 22 2430 2436 2439 7 2430 2436 + 2442 7 2430 2436 2445 7 2427 2424 2430 23 + 2424 2430 2433 24 2493 2499 2502 2 2481 2475 + 2484 37 2478 2475 2481 8 2478 2475 2484 37 + 2472 2466 2475 7 2469 2466 2472 8 2469 2466 + 2475 7 2466 2475 2478 7 2466 2475 2481 7 + 2463 2460 2466 10 2463 2460 2493 22 2460 2466 + 2469 7 2460 2466 2472 7 2457 2454 2460 23 + 2454 2460 2463 24 2553 2559 2562 2 2544 2541 + 2547 26 2541 2547 2550 26 2538 2535 2541 26 + 2535 2541 2544 26 2532 2529 2535 26 2529 2535 + 2538 26 2526 2523 2529 26 2523 2529 2532 26 + 2520 2523 2526 26 2520 2547 2550 26 2517 2511 + 2520 28 2514 2511 2517 8 2514 2511 2520 28 + 2508 2505 2511 10 2508 2505 2553 22 2505 2511 + 2514 7 2505 2511 2517 7 2502 2499 2505 23 + 2499 2505 2508 24 2589 2586 2592 36 2580 2586 + 2589 2 2580 2586 2592 2 2577 2571 2580 37 + 2574 2571 2577 8 2574 2571 2580 37 2568 2565 + 2571 10 2568 2565 2595 22 2565 2571 2574 7 + 2565 2571 2577 7 2562 2559 2565 23 2559 2565 + 2568 24 2637 2643 2646 2 2634 2631 2637 22 + 2628 2622 2631 7 2625 2622 2628 8 2625 2622 + 2631 7 2622 2631 2634 10 2619 2613 2622 7 + 2616 2613 2619 8 2616 2613 2622 7 2613 2622 + 2625 7 2613 2622 2628 7 2610 2604 2613 10 + 2607 2604 2610 4 2607 2604 2613 10 2604 2613 + 2616 7 2604 2613 2619 7 2601 2604 2607 24 + 2601 2604 2610 24 2601 2631 2634 24 2667 2673 + 2676 2 2661 2655 2664 8 2658 2655 2661 8 + 2658 2655 2664 8 2652 2649 2655 10 2652 2649 + 2667 22 2649 2655 2658 7 2649 2655 2661 7 + 2649 2655 2664 7 2646 2643 2649 23 2643 2649 + 2652 24 2697 2703 2706 2 2691 2685 2694 8 + 2688 2685 2691 8 2688 2685 2694 8 2682 2679 + 2685 10 2682 2679 2697 22 2679 2685 2688 7 + 2679 2685 2691 7 2679 2685 2694 7 2676 2673 + 2679 23 2673 2679 2682 24 2745 2751 2754 2 + 2739 2733 2742 8 2736 2733 2739 8 2736 2733 + 2742 8 2727 2721 2730 8 2724 2721 2727 8 + 2724 2721 2730 8 2718 2715 2721 7 2718 2715 + 2733 7 2715 2721 2724 7 2715 2721 2727 7 + 2715 2721 2730 7 2715 2733 2736 7 2715 2733 + 2739 7 2715 2733 2742 7 2712 2709 2715 10 + 2712 2709 2745 22 2709 2715 2718 7 2706 2703 + 2709 23 2703 2709 2712 24 2796 2790 2799 8 + 2793 2790 2796 8 2793 2790 2799 8 2784 2778 + 2787 8 2781 2778 2784 8 2781 2778 2787 8 + 2775 2772 2778 7 2775 2772 2790 7 2772 2778 + 2781 7 2772 2778 2784 7 2772 2778 2787 7 + 2772 2790 2793 7 2772 2790 2796 7 2772 2790 + 2799 7 2769 2763 2772 7 2766 2763 2769 8 + 2766 2763 2772 7 2763 2772 2775 7 2760 2757 + 2763 10 2760 2757 2802 22 2757 2763 2766 7 + 2757 2763 2769 7 2754 2751 2757 23 2751 2757 + 2760 24 2844 2850 2853 2 2841 2838 2844 22 + 2835 2829 2838 7 2832 2829 2835 8 2832 2829 + 2838 7 2829 2838 2841 10 2826 2820 2829 7 + 2823 2820 2826 8 2823 2820 2829 7 2820 2829 + 2832 7 2820 2829 2835 7 2817 2811 2820 10 + 2814 2811 2817 4 2814 2811 2820 10 2811 2820 + 2823 7 2811 2820 2826 7 2808 2811 2814 24 + 2808 2811 2817 24 2808 2838 2841 24 2877 2883 + 2886 2 2868 2862 2871 67 2865 2862 2868 4 + 2865 2862 2871 67 2862 2871 2874 68 2859 2856 + 2862 10 2859 2856 2877 22 2856 2862 2865 10 + 2856 2862 2868 10 2853 2850 2856 23 2850 2856 + 2859 24 2913 2919 2922 2 2901 2895 2904 37 + 2898 2895 2901 8 2898 2895 2904 37 2892 2889 + 2895 10 2892 2889 2913 22 2889 2895 2898 7 + 2889 2895 2901 7 2886 2883 2889 23 2883 2889 + 2892 24 2961 2967 2970 2 2955 2949 2958 8 + 2952 2949 2955 8 2952 2949 2958 8 2943 2937 + 2946 8 2940 2937 2943 8 2940 2937 2946 8 + 2934 2931 2937 7 2934 2931 2949 7 2931 2937 + 2940 7 2931 2937 2943 7 2931 2937 2946 7 + 2931 2949 2952 7 2931 2949 2955 7 2931 2949 + 2958 7 2928 2925 2931 10 2928 2925 2961 22 + 2925 2931 2934 7 2922 2919 2925 23 2919 2925 + 2928 24 3018 3024 3027 2 3012 3006 3015 8 + 3009 3006 3012 8 3009 3006 3015 8 3003 2997 + 3006 7 3000 2997 3003 8 3000 2997 3006 7 + 2997 3006 3009 7 2997 3006 3012 7 2997 3006 + 3015 7 2991 2985 2994 8 2988 2985 2991 8 + 2988 2985 2994 8 2982 2979 2985 7 2982 2979 + 2997 7 2979 2985 2988 7 2979 2985 2991 7 + 2979 2985 2994 7 2979 2997 3000 7 2979 2997 + 3003 7 2976 2973 2979 10 2976 2973 3018 22 + 2973 2979 2982 7 2970 2967 2973 23 2967 2973 + 2976 24 3051 3057 3060 2 3042 3036 3045 34 + 3039 3036 3042 4 3039 3036 3045 34 3036 3045 + 3048 35 3033 3030 3036 10 3033 3030 3051 22 + 3030 3036 3039 10 3030 3036 3042 10 3027 3024 + 3030 23 3024 3030 3033 24 3087 3093 3096 2 + 3075 3069 3078 37 3072 3069 3075 8 3072 3069 + 3078 37 3066 3063 3069 10 3066 3063 3087 22 + 3063 3069 3072 7 3063 3069 3075 7 3060 3057 + 3063 23 3057 3063 3066 24 3138 3144 3147 2 + 3132 3129 3135 36 3123 3129 3132 2 3123 3129 + 3135 2 3120 3114 3123 37 3117 3114 3120 8 + 3117 3114 3123 37 3111 3105 3114 7 3108 3105 + 3111 8 3108 3105 3114 7 3105 3114 3117 7 + 3105 3114 3120 7 3102 3099 3105 10 3102 3099 + 3138 22 3099 3105 3108 7 3099 3105 3111 7 + 3096 3093 3099 23 3093 3099 3102 24 3183 3189 + 3192 2 3171 3165 3174 37 3168 3165 3171 8 + 3168 3165 3174 37 3162 3156 3165 7 3159 3156 + 3162 8 3159 3156 3165 7 3156 3165 3168 7 + 3156 3165 3171 7 3153 3150 3156 10 3153 3150 + 3183 22 3150 3156 3159 7 3150 3156 3162 7 + 3147 3144 3150 23 3144 3150 3153 24 3240 3246 + 3249 2 3234 3228 3237 8 3231 3228 3234 8 + 3231 3228 3237 8 3225 3219 3228 7 3222 3219 + 3225 8 3222 3219 3228 7 3219 3228 3231 7 + 3219 3228 3234 7 3219 3228 3237 7 3213 3207 + 3216 8 3210 3207 3213 8 3210 3207 3216 8 + 3204 3201 3207 7 3204 3201 3219 7 3201 3207 + 3210 7 3201 3207 3213 7 3201 3207 3216 7 + 3201 3219 3222 7 3201 3219 3225 7 3198 3195 + 3201 10 3198 3195 3240 22 3195 3201 3204 7 + 3192 3189 3195 23 3189 3195 3198 24 3306 3312 + 3315 2 3300 3294 3303 18 3297 3294 3300 18 + 3297 3294 3303 18 3291 3285 3294 19 3288 3285 + 3291 32 3288 3285 3294 19 3285 3294 3297 17 + 3285 3294 3300 17 3285 3294 3303 17 3282 3276 + 3285 7 3279 3276 3282 8 3279 3276 3285 7 + 3276 3285 3288 12 3276 3285 3291 12 3273 3267 + 3276 7 3270 3267 3273 8 3270 3267 3276 7 + 3267 3276 3279 7 3267 3276 3282 7 3264 3258 + 3267 7 3261 3258 3264 8 3261 3258 3267 7 + 3258 3267 3270 7 3258 3267 3273 7 3255 3252 + 3258 10 3255 3252 3306 22 3252 3258 3261 7 + 3252 3258 3264 7 3249 3246 3252 23 3246 3252 + 3255 24 3342 3348 3351 2 3330 3324 3333 37 + 3327 3324 3330 8 3327 3324 3333 37 3321 3318 + 3324 10 3321 3318 3342 22 3318 3324 3327 7 + 3318 3324 3330 7 3315 3312 3318 23 3312 3318 + 3321 24 3399 3405 3408 2 3393 3387 3396 8 + 3390 3387 3393 8 3390 3387 3396 8 3381 3375 + 3384 8 3378 3375 3381 8 3378 3375 3384 8 + 3372 3369 3375 7 3372 3369 3387 7 3369 3375 + 3378 7 3369 3375 3381 7 3369 3375 3384 7 + 3369 3387 3390 7 3369 3387 3393 7 3369 3387 + 3396 7 3366 3360 3369 7 3363 3360 3366 8 + 3363 3360 3369 7 3360 3369 3372 7 3357 3354 + 3360 10 3357 3354 3399 22 3354 3360 3363 7 + 3354 3360 3366 7 3351 3348 3354 23 3348 3354 + 3357 24 3459 3465 3468 2 3450 3447 3453 26 + 3447 3453 3456 26 3444 3441 3447 26 3441 3447 + 3450 26 3438 3435 3441 26 3435 3441 3444 26 + 3432 3429 3435 26 3429 3435 3438 26 3426 3429 + 3432 26 3426 3453 3456 26 3423 3417 3426 28 + 3420 3417 3423 8 3420 3417 3426 28 3414 3411 + 3417 10 3414 3411 3459 22 3411 3417 3420 7 + 3411 3417 3423 7 3408 3405 3411 23 3405 3411 + 3414 24 3507 3513 3516 2 3501 3495 3504 8 + 3498 3495 3501 8 3498 3495 3504 8 3489 3483 + 3492 8 3486 3483 3489 8 3486 3483 3492 8 + 3480 3477 3483 7 3480 3477 3495 7 3477 3483 + 3486 7 3477 3483 3489 7 3477 3483 3492 7 + 3477 3495 3498 7 3477 3495 3501 7 3477 3495 + 3504 7 3474 3471 3477 10 3474 3471 3507 22 + 3471 3477 3480 7 3468 3465 3471 23 3465 3471 + 3474 24 3552 3558 3561 2 3540 3534 3543 37 + 3537 3534 3540 8 3537 3534 3543 37 3531 3525 + 3534 7 3528 3525 3531 8 3528 3525 3534 7 + 3525 3534 3537 7 3525 3534 3540 7 3522 3519 + 3525 10 3522 3519 3552 22 3519 3525 3528 7 + 3519 3525 3531 7 3516 3513 3519 23 3513 3519 + 3522 24 3609 3615 3618 2 3603 3597 3606 8 + 3600 3597 3603 8 3600 3597 3606 8 3591 3585 + 3594 8 3588 3585 3591 8 3588 3585 3594 8 + 3582 3579 3585 7 3582 3579 3597 7 3579 3585 + 3588 7 3579 3585 3591 7 3579 3585 3594 7 + 3579 3597 3600 7 3579 3597 3603 7 3579 3597 + 3606 7 3576 3570 3579 7 3573 3570 3576 8 + 3573 3570 3579 7 3570 3579 3582 7 3567 3564 + 3570 10 3567 3564 3609 22 3564 3570 3573 7 + 3564 3570 3576 7 3561 3558 3564 23 3558 3564 + 3567 24 3630 3636 3639 2 3627 3621 3630 22 + 3624 3621 3627 4 3624 3621 3630 22 3618 3615 + 3621 23 3615 3621 3624 24 3615 3621 3627 24 + 3696 3702 3705 2 3690 3684 3693 18 3687 3684 + 3690 18 3687 3684 3693 18 3681 3675 3684 19 + 3678 3675 3681 32 3678 3675 3684 19 3675 3684 + 3687 17 3675 3684 3690 17 3675 3684 3693 17 + 3672 3666 3675 7 3669 3666 3672 8 3669 3666 + 3675 7 3666 3675 3678 12 3666 3675 3681 12 + 3663 3657 3666 7 3660 3657 3663 8 3660 3657 + 3666 7 3657 3666 3669 7 3657 3666 3672 7 + 3654 3648 3657 7 3651 3648 3654 8 3651 3648 + 3657 7 3648 3657 3660 7 3648 3657 3663 7 + 3645 3642 3648 10 3645 3642 3696 22 3642 3648 + 3651 7 3642 3648 3654 7 3639 3636 3642 23 + 3636 3642 3645 24 3744 3750 3753 2 3738 3732 + 3741 8 3735 3732 3738 8 3735 3732 3741 8 + 3726 3720 3729 8 3723 3720 3726 8 3723 3720 + 3729 8 3717 3714 3720 7 3717 3714 3732 7 + 3714 3720 3723 7 3714 3720 3726 7 3714 3720 + 3729 7 3714 3732 3735 7 3714 3732 3738 7 + 3714 3732 3741 7 3711 3708 3714 10 3711 3708 + 3744 22 3708 3714 3717 7 3705 3702 3708 23 + 3702 3708 3711 24 3816 3822 3825 2 3810 3807 + 3813 71 3804 3801 3807 26 3801 3807 3810 26 + 3798 3795 3801 26 3795 3801 3804 26 3792 3789 + 3795 26 3789 3795 3798 26 3786 3789 3792 74 + 3783 3780 3786 77 3777 3774 3780 44 3774 3780 + 3783 43 3771 3774 3777 82 3768 3762 3771 86 + 3765 3762 3768 8 3765 3762 3771 86 3759 3756 + 3762 10 3759 3756 3816 22 3756 3762 3765 7 + 3756 3762 3768 7 3753 3750 3756 23 3750 3756 + 3759 24 3852 3858 3861 2 3840 3834 3843 37 + 3837 3834 3840 8 3837 3834 3843 37 3831 3828 + 3834 10 3831 3828 3852 22 3828 3834 3837 7 + 3828 3834 3840 7 3825 3822 3828 23 3822 3828 + 3831 24 3873 3879 3882 2 3870 3864 3873 22 + 3867 3864 3870 4 3867 3864 3873 22 3861 3858 + 3864 23 3858 3864 3867 24 3858 3864 3870 24 + 3930 3936 3939 2 3924 3918 3927 8 3921 3918 + 3924 8 3921 3918 3927 8 3912 3906 3915 8 + 3909 3906 3912 8 3909 3906 3915 8 3903 3900 + 3906 7 3903 3900 3918 7 3900 3906 3909 7 + 3900 3906 3912 7 3900 3906 3915 7 3900 3918 + 3921 7 3900 3918 3924 7 3900 3918 3927 7 + 3897 3891 3900 7 3894 3891 3897 8 3894 3891 + 3900 7 3891 3900 3903 7 3888 3885 3891 10 + 3888 3885 3930 22 3885 3891 3894 7 3885 3891 + 3897 7 3882 3879 3885 23 3879 3885 3888 24 + 3966 3972 3975 2 3954 3948 3957 37 3951 3948 + 3954 8 3951 3948 3957 37 3945 3942 3948 10 + 3945 3942 3966 22 3942 3948 3951 7 3942 3948 + 3954 7 3939 3936 3942 23 3936 3942 3945 24 + 3996 4002 4005 2 3990 3984 3993 8 3987 3984 + 3990 8 3987 3984 3993 8 3981 3978 3984 10 + 3981 3978 3996 22 3978 3984 3987 7 3978 3984 + 3990 7 3978 3984 3993 7 3975 3972 3978 23 + 3972 3978 3981 24 4053 4059 4062 2 4047 4041 + 4050 8 4044 4041 4047 8 4044 4041 4050 8 + 4038 4032 4041 7 4035 4032 4038 8 4035 4032 + 4041 7 4032 4041 4044 7 4032 4041 4047 7 + 4032 4041 4050 7 4026 4020 4029 8 4023 4020 + 4026 8 4023 4020 4029 8 4017 4014 4020 7 + 4017 4014 4032 7 4014 4020 4023 7 4014 4020 + 4026 7 4014 4020 4029 7 4014 4032 4035 7 + 4014 4032 4038 7 4011 4008 4014 10 4011 4008 + 4053 22 4008 4014 4017 7 4005 4002 4008 23 + 4002 4008 4011 24 4101 4107 4110 2 4095 4089 + 4098 8 4092 4089 4095 8 4092 4089 4098 8 + 4083 4077 4086 8 4080 4077 4083 8 4080 4077 + 4086 8 4074 4071 4077 7 4074 4071 4089 7 + 4071 4077 4080 7 4071 4077 4083 7 4071 4077 + 4086 7 4071 4089 4092 7 4071 4089 4095 7 + 4071 4089 4098 7 4068 4065 4071 10 4068 4065 + 4101 22 4065 4071 4074 7 4062 4059 4065 23 + 4059 4065 4068 24 4152 4158 4161 2 4143 4140 + 4146 43 4140 4146 4149 44 4137 4134 4140 45 + 4134 4140 4143 46 4131 4134 4137 49 4128 4146 + 4149 53 4125 4119 4128 54 4122 4119 4125 8 + 4122 4119 4128 54 4116 4113 4119 10 4116 4113 + 4152 22 4113 4119 4122 7 4113 4119 4125 7 + 4110 4107 4113 23 4107 4113 4116 24 4185 4191 + 4194 2 4176 4170 4179 34 4173 4170 4176 4 + 4173 4170 4179 34 4170 4179 4182 35 4167 4164 + 4170 10 4167 4164 4185 22 4164 4170 4173 10 + 4164 4170 4176 10 4161 4158 4164 23 4158 4164 + 4167 24 4242 4248 4251 2 4236 4230 4239 8 + 4233 4230 4236 8 4233 4230 4239 8 4227 4221 + 4230 7 4224 4221 4227 8 4224 4221 4230 7 + 4221 4230 4233 7 4221 4230 4236 7 4221 4230 + 4239 7 4215 4209 4218 8 4212 4209 4215 8 + 4212 4209 4218 8 4206 4203 4209 7 4206 4203 + 4221 7 4203 4209 4212 7 4203 4209 4215 7 + 4203 4209 4218 7 4203 4221 4224 7 4203 4221 + 4227 7 4200 4197 4203 10 4200 4197 4242 22 + 4197 4203 4206 7 4194 4191 4197 23 4191 4197 + 4200 24 4272 4278 4281 2 4266 4260 4269 8 + 4263 4260 4266 8 4263 4260 4269 8 4257 4254 + 4260 10 4257 4254 4272 22 4254 4260 4263 7 + 4254 4260 4266 7 4254 4260 4269 7 4251 4248 + 4254 23 4248 4254 4257 24 4332 4338 4341 2 + 4323 4320 4326 26 4320 4326 4329 26 4317 4314 + 4320 26 4314 4320 4323 26 4311 4308 4314 26 + 4308 4314 4317 26 4305 4302 4308 26 4302 4308 + 4311 26 4299 4302 4305 26 4299 4326 4329 26 + 4296 4290 4299 28 4293 4290 4296 8 4293 4290 + 4299 28 4287 4284 4290 10 4287 4284 4332 22 + 4284 4290 4293 7 4284 4290 4296 7 4281 4278 + 4284 23 4278 4284 4287 24 4356 4350 4359 8 + 4353 4350 4356 8 4353 4350 4359 8 4347 4344 + 4350 10 4347 4344 4362 22 4344 4350 4353 7 + 4344 4350 4356 7 4344 4350 4359 7 4341 4338 + 4344 23 4338 4344 4347 24 4404 4410 4413 2 + 4401 4398 4404 22 4395 4389 4398 7 4392 4389 + 4395 8 4392 4389 4398 7 4389 4398 4401 10 + 4386 4380 4389 7 4383 4380 4386 8 4383 4380 + 4389 7 4380 4389 4392 7 4380 4389 4395 7 + 4377 4371 4380 10 4374 4371 4377 4 4374 4371 + 4380 10 4371 4380 4383 7 4371 4380 4386 7 + 4368 4371 4374 24 4368 4371 4377 24 4368 4398 + 4401 24 4476 4482 4485 2 4470 4467 4473 58 + 4461 4458 4464 58 4455 4458 4461 60 4455 4458 + 4464 60 4455 4467 4470 60 4455 4467 4473 60 + 4452 4449 4455 60 4446 4440 4449 61 4443 4440 + 4446 4 4443 4440 4449 61 4440 4449 4452 62 + 4437 4431 4440 7 4434 4431 4437 8 4434 4431 + 4440 7 4431 4440 4443 10 4431 4440 4446 10 + 4428 4422 4431 7 4425 4422 4428 8 4425 4422 + 4431 7 4422 4431 4434 7 4422 4431 4437 7 + 4419 4416 4422 10 4419 4416 4476 22 4416 4422 + 4425 7 4416 4422 4428 7 4413 4410 4416 23 + 4410 4416 4419 24 4512 4518 4521 2 4500 4494 + 4503 37 4497 4494 4500 8 4497 4494 4503 37 + 4491 4488 4494 10 4491 4488 4512 22 4488 4494 + 4497 7 4488 4494 4500 7 4485 4482 4488 23 + 4482 4488 4491 24 4563 4569 4572 2 4557 4554 + 4560 36 4548 4554 4557 2 4548 4554 4560 2 + 4545 4539 4548 37 4542 4539 4545 8 4542 4539 + 4548 37 4536 4530 4539 7 4533 4530 4536 8 + 4533 4530 4539 7 4530 4539 4542 7 4530 4539 + 4545 7 4527 4524 4530 10 4527 4524 4563 22 + 4524 4530 4533 7 4524 4530 4536 7 4521 4518 + 4524 23 4518 4524 4527 24 4620 4626 4629 2 + 4614 4608 4617 8 4611 4608 4614 8 4611 4608 + 4617 8 4602 4596 4605 8 4599 4596 4602 8 + 4599 4596 4605 8 4593 4590 4596 7 4593 4590 + 4608 7 4590 4596 4599 7 4590 4596 4602 7 + 4590 4596 4605 7 4590 4608 4611 7 4590 4608 + 4614 7 4590 4608 4617 7 4587 4581 4590 7 + 4584 4581 4587 8 4584 4581 4590 7 4581 4590 + 4593 7 4578 4575 4581 10 4578 4575 4620 22 + 4575 4581 4584 7 4575 4581 4587 7 4572 4569 + 4575 23 4569 4575 4578 24 4665 4671 4674 2 + 4653 4647 4656 37 4650 4647 4653 8 4650 4647 + 4656 37 4644 4638 4647 7 4641 4638 4644 8 + 4641 4638 4647 7 4638 4647 4650 7 4638 4647 + 4653 7 4635 4632 4638 10 4635 4632 4665 22 + 4632 4638 4641 7 4632 4638 4644 7 4629 4626 + 4632 23 4626 4632 4635 24 4686 4692 4695 2 + 4683 4677 4686 22 4680 4677 4683 4 4680 4677 + 4686 22 4674 4671 4677 23 4671 4677 4680 24 + 4671 4677 4683 24 4728 4734 4737 2 4722 4719 + 4725 36 4713 4719 4722 2 4713 4719 4725 2 + 4710 4704 4713 37 4707 4704 4710 8 4707 4704 + 4713 37 4701 4698 4704 10 4701 4698 4728 22 + 4698 4704 4707 7 4698 4704 4710 7 4695 4692 + 4698 23 4692 4698 4701 24 4788 4794 4797 2 + 4779 4776 4782 26 4776 4782 4785 26 4773 4770 + 4776 26 4770 4776 4779 26 4767 4764 4770 26 + 4764 4770 4773 26 4761 4758 4764 26 4758 4764 + 4767 26 4755 4758 4761 26 4755 4782 4785 26 + 4752 4746 4755 28 4749 4746 4752 8 4749 4746 + 4755 28 4743 4740 4746 10 4743 4740 4788 22 + 4740 4746 4749 7 4740 4746 4752 7 4737 4734 + 4740 23 4734 4740 4743 24 4845 4851 4854 2 + 4839 4833 4842 8 4836 4833 4839 8 4836 4833 + 4842 8 4830 4824 4833 7 4827 4824 4830 8 + 4827 4824 4833 7 4824 4833 4836 7 4824 4833 + 4839 7 4824 4833 4842 7 4818 4812 4821 8 + 4815 4812 4818 8 4815 4812 4821 8 4809 4806 + 4812 7 4809 4806 4824 7 4806 4812 4815 7 + 4806 4812 4818 7 4806 4812 4821 7 4806 4824 + 4827 7 4806 4824 4830 7 4803 4800 4806 10 + 4803 4800 4845 22 4800 4806 4809 7 4797 4794 + 4800 23 4794 4800 4803 24 4881 4887 4890 2 + 4869 4863 4872 37 4866 4863 4869 8 4866 4863 + 4872 37 4860 4857 4863 10 4860 4857 4881 22 + 4857 4863 4866 7 4857 4863 4869 7 4854 4851 + 4857 23 4851 4857 4860 24 4914 4920 4923 2 + 4905 4899 4908 67 4902 4899 4905 4 4902 4899 + 4908 67 4899 4908 4911 68 4896 4893 4899 10 + 4896 4893 4914 22 4893 4899 4902 10 4893 4899 + 4905 10 4890 4887 4893 23 4887 4893 4896 24 + 4962 4968 4971 2 4956 4950 4959 8 4953 4950 + 4956 8 4953 4950 4959 8 4944 4938 4947 8 + 4941 4938 4944 8 4941 4938 4947 8 4935 4932 + 4938 7 4935 4932 4950 7 4932 4938 4941 7 + 4932 4938 4944 7 4932 4938 4947 7 4932 4950 + 4953 7 4932 4950 4956 7 4932 4950 4959 7 + 4929 4926 4932 10 4929 4926 4962 22 4926 4932 + 4935 7 4923 4920 4926 23 4920 4926 4929 24 + 5004 5010 5013 2 4992 4986 4995 8 4989 4986 + 4992 8 4989 4986 4995 8 4983 4980 4986 10 + 4983 4980 4998 34 4980 4986 4989 7 4980 4986 + 4992 7 4980 4986 4995 7 4980 4998 5001 35 + 4977 4974 4980 10 4977 4974 5004 22 4974 4980 + 4983 10 4971 4968 4974 23 4968 4974 4977 24 + 5076 5082 5085 2 5070 5067 5073 58 5061 5058 + 5064 58 5055 5058 5061 60 5055 5058 5064 60 + 5055 5067 5070 60 5055 5067 5073 60 5052 5049 + 5055 60 5046 5040 5049 61 5043 5040 5046 4 + 5043 5040 5049 61 5040 5049 5052 62 5037 5031 + 5040 7 5034 5031 5037 8 5034 5031 5040 7 + 5031 5040 5043 10 5031 5040 5046 10 5028 5022 + 5031 7 5025 5022 5028 8 5025 5022 5031 7 + 5022 5031 5034 7 5022 5031 5037 7 5019 5016 + 5022 10 5019 5016 5076 22 5016 5022 5025 7 + 5016 5022 5028 7 5013 5010 5016 23 5010 5016 + 5019 24 5121 5127 5130 2 5109 5103 5112 37 + 5106 5103 5109 8 5106 5103 5112 37 5100 5094 + 5103 7 5097 5094 5100 8 5097 5094 5103 7 + 5094 5103 5106 7 5094 5103 5109 7 5091 5088 + 5094 10 5091 5088 5121 22 5088 5094 5097 7 + 5088 5094 5100 7 5085 5082 5088 23 5082 5088 + 5091 24 5142 5148 5151 2 5139 5133 5142 22 + 5136 5133 5139 4 5136 5133 5142 22 5130 5127 + 5133 23 5127 5133 5136 24 5127 5133 5139 24 + 5202 5208 5211 2 5193 5190 5196 26 5190 5196 + 5199 26 5187 5184 5190 26 5184 5190 5193 26 + 5181 5178 5184 26 5178 5184 5187 26 5175 5172 + 5178 26 5172 5178 5181 26 5169 5172 5175 26 + 5169 5196 5199 26 5166 5160 5169 28 5163 5160 + 5166 8 5163 5160 5169 28 5157 5154 5160 10 + 5157 5154 5202 22 5154 5160 5163 7 5154 5160 + 5166 7 5151 5148 5154 23 5148 5154 5157 24 + 5235 5241 5244 2 5226 5220 5229 34 5223 5220 + 5226 4 5223 5220 5229 34 5220 5229 5232 35 + 5217 5214 5220 10 5217 5214 5235 22 5214 5220 + 5223 10 5214 5220 5226 10 5211 5208 5214 23 + 5208 5214 5217 24 5292 5298 5301 2 5286 5280 + 5289 8 5283 5280 5286 8 5283 5280 5289 8 + 5277 5271 5280 7 5274 5271 5277 8 5274 5271 + 5280 7 5271 5280 5283 7 5271 5280 5286 7 + 5271 5280 5289 7 5265 5259 5268 8 5262 5259 + 5265 8 5262 5259 5268 8 5256 5253 5259 7 + 5256 5253 5271 7 5253 5259 5262 7 5253 5259 + 5265 7 5253 5259 5268 7 5253 5271 5274 7 + 5253 5271 5277 7 5250 5247 5253 10 5250 5247 + 5292 22 5247 5253 5256 7 5244 5241 5247 23 + 5241 5247 5250 24 5322 5328 5331 2 5316 5310 + 5319 8 5313 5310 5316 8 5313 5310 5319 8 + 5307 5304 5310 10 5307 5304 5322 22 5304 5310 + 5313 7 5304 5310 5316 7 5304 5310 5319 7 + 5301 5298 5304 23 5298 5304 5307 24 5373 5379 + 5382 2 5364 5361 5367 43 5361 5367 5370 44 + 5358 5355 5361 45 5355 5361 5364 46 5352 5355 + 5358 49 5349 5367 5370 53 5346 5340 5349 54 + 5343 5340 5346 8 5343 5340 5349 54 5337 5334 + 5340 10 5337 5334 5373 22 5334 5340 5343 7 + 5334 5340 5346 7 5331 5328 5334 23 5328 5334 + 5337 24 5409 5415 5418 2 5397 5391 5400 37 + 5394 5391 5397 8 5394 5391 5400 37 5388 5385 + 5391 10 5388 5385 5409 22 5385 5391 5394 7 + 5385 5391 5397 7 5382 5379 5385 23 5379 5385 + 5388 24 5466 5472 5475 2 5460 5454 5463 8 + 5457 5454 5460 8 5457 5454 5463 8 5451 5445 + 5454 7 5448 5445 5451 8 5448 5445 5454 7 + 5445 5454 5457 7 5445 5454 5460 7 5445 5454 + 5463 7 5439 5433 5442 8 5436 5433 5439 8 + 5436 5433 5442 8 5430 5427 5433 7 5430 5427 + 5445 7 5427 5433 5436 7 5427 5433 5439 7 + 5427 5433 5442 7 5427 5445 5448 7 5427 5445 + 5451 7 5424 5421 5427 10 5424 5421 5466 22 + 5421 5427 5430 7 5418 5415 5421 23 5415 5421 + 5424 24 5499 5505 5508 2 5490 5484 5493 34 + 5487 5484 5490 4 5487 5484 5493 34 5484 5493 + 5496 35 5481 5478 5484 10 5481 5478 5499 22 + 5478 5484 5487 10 5478 5484 5490 10 5475 5472 + 5478 23 5472 5478 5481 24 5529 5535 5538 2 + 5523 5517 5526 8 5520 5517 5523 8 5520 5517 + 5526 8 5514 5511 5517 10 5514 5511 5529 22 + 5511 5517 5520 7 5511 5517 5523 7 5511 5517 + 5526 7 5508 5505 5511 23 5505 5511 5514 24 + 5592 5598 5601 2 5583 5580 5586 26 5580 5586 + 5589 26 5571 5574 5577 39 5571 5580 5583 40 + 5568 5565 5571 40 5562 5559 5565 26 5559 5565 + 5568 26 5556 5559 5562 26 5556 5586 5589 26 + 5553 5547 5556 28 5550 5547 5553 8 5550 5547 + 5556 28 5544 5541 5547 10 5544 5541 5592 22 + 5541 5547 5550 7 5541 5547 5553 7 5538 5535 + 5541 23 5535 5541 5544 24 5625 5631 5634 2 + 5616 5610 5619 34 5613 5610 5616 4 5613 5610 + 5619 34 5610 5619 5622 35 5607 5604 5610 10 + 5607 5604 5625 22 5604 5610 5613 10 5604 5610 + 5616 10 5601 5598 5604 23 5598 5604 5607 24 + 5685 5691 5694 2 5676 5673 5679 26 5673 5679 + 5682 26 5670 5667 5673 26 5667 5673 5676 26 + 5664 5661 5667 26 5661 5667 5670 26 5658 5655 + 5661 26 5655 5661 5664 26 5652 5655 5658 26 + 5652 5679 5682 26 5649 5643 5652 28 5646 5643 + 5649 8 5646 5643 5652 28 5640 5637 5643 10 + 5640 5637 5685 22 5637 5643 5646 7 5637 5643 + 5649 7 5634 5631 5637 23 5631 5637 5640 24 + 5715 5721 5724 2 5709 5703 5712 8 5706 5703 + 5709 8 5706 5703 5712 8 5700 5697 5703 10 + 5700 5697 5715 22 5697 5703 5706 7 5697 5703 + 5709 7 5697 5703 5712 7 5694 5691 5697 23 + 5691 5697 5700 24 5745 5751 5754 2 5739 5733 + 5742 8 5736 5733 5739 8 5736 5733 5742 8 + 5730 5727 5733 10 5730 5727 5745 22 5727 5733 + 5736 7 5727 5733 5739 7 5727 5733 5742 7 + 5724 5721 5727 23 5721 5727 5730 24 5802 5808 + 5811 2 5796 5790 5799 8 5793 5790 5796 8 + 5793 5790 5799 8 5784 5778 5787 8 5781 5778 + 5784 8 5781 5778 5787 8 5775 5772 5778 7 + 5775 5772 5790 7 5772 5778 5781 7 5772 5778 + 5784 7 5772 5778 5787 7 5772 5790 5793 7 + 5772 5790 5796 7 5772 5790 5799 7 5769 5763 + 5772 7 5766 5763 5769 8 5766 5763 5772 7 + 5763 5772 5775 7 5760 5757 5763 10 5760 5757 + 5802 22 5757 5763 5766 7 5757 5763 5769 7 + 5754 5751 5757 23 5751 5757 5760 24 5832 5838 + 5841 2 5826 5820 5829 8 5823 5820 5826 8 + 5823 5820 5829 8 5817 5814 5820 10 5817 5814 + 5832 22 5814 5820 5823 7 5814 5820 5826 7 + 5814 5820 5829 7 5811 5808 5814 23 5808 5814 + 5817 24 5898 5904 5907 2 5892 5886 5895 18 + 5889 5886 5892 18 5889 5886 5895 18 5883 5877 + 5886 19 5880 5877 5883 32 5880 5877 5886 19 + 5877 5886 5889 17 5877 5886 5892 17 5877 5886 + 5895 17 5874 5868 5877 7 5871 5868 5874 8 + 5871 5868 5877 7 5868 5877 5880 12 5868 5877 + 5883 12 5865 5859 5868 7 5862 5859 5865 8 + 5862 5859 5868 7 5859 5868 5871 7 5859 5868 + 5874 7 5856 5850 5859 7 5853 5850 5856 8 + 5853 5850 5859 7 5850 5859 5862 7 5850 5859 + 5865 7 5847 5844 5850 10 5847 5844 5898 22 + 5844 5850 5853 7 5844 5850 5856 7 5841 5838 + 5844 23 5838 5844 5847 24 5943 5949 5952 2 + 5931 5925 5934 37 5928 5925 5931 8 5928 5925 + 5934 37 5922 5916 5925 7 5919 5916 5922 8 + 5919 5916 5925 7 5916 5925 5928 7 5916 5925 + 5931 7 5913 5910 5916 10 5913 5910 5943 22 + 5910 5916 5919 7 5910 5916 5922 7 5907 5904 + 5910 23 5904 5910 5913 24 5964 5970 5973 2 + 5961 5955 5964 22 5958 5955 5961 4 5958 5955 + 5964 22 5952 5949 5955 23 5949 5955 5958 24 + 5949 5955 5961 24 6036 6042 6045 2 6030 6027 + 6033 58 6021 6018 6024 58 6015 6018 6021 60 + 6015 6018 6024 60 6015 6027 6030 60 6015 6027 + 6033 60 6012 6009 6015 60 6006 6000 6009 61 + 6003 6000 6006 4 6003 6000 6009 61 6000 6009 + 6012 62 5997 5991 6000 7 5994 5991 5997 8 + 5994 5991 6000 7 5991 6000 6003 10 5991 6000 + 6006 10 5988 5982 5991 7 5985 5982 5988 8 + 5985 5982 5991 7 5982 5991 5994 7 5982 5991 + 5997 7 5979 5976 5982 10 5979 5976 6036 22 + 5976 5982 5985 7 5976 5982 5988 7 5973 5970 + 5976 23 5970 5976 5979 24 6069 6075 6078 2 + 6060 6054 6063 34 6057 6054 6060 4 6057 6054 + 6063 34 6054 6063 6066 35 6051 6048 6054 10 + 6051 6048 6069 22 6048 6054 6057 10 6048 6054 + 6060 10 6045 6042 6048 23 6042 6048 6051 24 + 6120 6126 6129 2 6114 6108 6117 4 6111 6108 + 6114 4 6111 6108 6117 4 6105 6108 6111 5 + 6105 6108 6114 5 6105 6108 6117 5 6102 6096 + 6105 5 6099 6096 6102 4 6099 6096 6105 5 + 6093 6087 6096 7 6090 6087 6093 8 6090 6087 + 6096 7 6087 6096 6099 10 6087 6096 6102 10 + 6084 6081 6087 10 6084 6081 6120 22 6081 6087 + 6090 7 6081 6087 6093 7 6078 6075 6081 23 + 6075 6081 6084 24 6171 6177 6180 2 6165 6159 + 6168 4 6162 6159 6165 4 6162 6159 6168 4 + 6156 6159 6162 5 6156 6159 6165 5 6156 6159 + 6168 5 6153 6147 6156 5 6150 6147 6153 4 + 6150 6147 6156 5 6144 6138 6147 7 6141 6138 + 6144 8 6141 6138 6147 7 6138 6147 6150 10 + 6138 6147 6153 10 6135 6132 6138 10 6135 6132 + 6171 22 6132 6138 6141 7 6132 6138 6144 7 + 6129 6126 6132 23 6126 6132 6135 24 6237 6243 + 6246 2 6231 6225 6234 18 6228 6225 6231 18 + 6228 6225 6234 18 6222 6216 6225 19 6219 6216 + 6222 32 6219 6216 6225 19 6216 6225 6228 17 + 6216 6225 6231 17 6216 6225 6234 17 6213 6207 + 6216 7 6210 6207 6213 8 6210 6207 6216 7 + 6207 6216 6219 12 6207 6216 6222 12 6204 6198 + 6207 7 6201 6198 6204 8 6201 6198 6207 7 + 6198 6207 6210 7 6198 6207 6213 7 6195 6189 + 6198 7 6192 6189 6195 8 6192 6189 6198 7 + 6189 6198 6201 7 6189 6198 6204 7 6186 6183 + 6189 10 6186 6183 6237 22 6183 6189 6192 7 + 6183 6189 6195 7 6180 6177 6183 23 6177 6183 + 6186 24 6279 6285 6288 2 6273 6270 6276 36 + 6264 6270 6273 2 6264 6270 6276 2 6261 6255 + 6264 37 6258 6255 6261 8 6258 6255 6264 37 + 6252 6249 6255 10 6252 6249 6279 22 6249 6255 + 6258 7 6249 6255 6261 7 6246 6243 6249 23 + 6243 6249 6252 24 6351 6357 6360 2 6345 6342 + 6348 58 6336 6333 6339 58 6330 6333 6336 60 + 6330 6333 6339 60 6330 6342 6345 60 6330 6342 + 6348 60 6327 6324 6330 60 6321 6315 6324 61 + 6318 6315 6321 4 6318 6315 6324 61 6315 6324 + 6327 62 6312 6306 6315 7 6309 6306 6312 8 + 6309 6306 6315 7 6306 6315 6318 10 6306 6315 + 6321 10 6303 6297 6306 7 6300 6297 6303 8 + 6300 6297 6306 7 6297 6306 6309 7 6297 6306 + 6312 7 6294 6291 6297 10 6294 6291 6351 22 + 6291 6297 6300 7 6291 6297 6303 7 6288 6285 + 6291 23 6285 6291 6294 24 6393 6399 6402 2 + 6387 6384 6390 36 6378 6384 6387 2 6378 6384 + 6390 2 6375 6369 6378 37 6372 6369 6375 8 + 6372 6369 6378 37 6366 6363 6369 10 6366 6363 + 6393 22 6363 6369 6372 7 6363 6369 6375 7 + 6360 6357 6363 23 6357 6363 6366 24 6423 6429 + 6432 2 6417 6411 6420 8 6414 6411 6417 8 + 6414 6411 6420 8 6408 6405 6411 10 6408 6405 + 6423 22 6405 6411 6414 7 6405 6411 6417 7 + 6405 6411 6420 7 6402 6399 6405 23 6399 6405 + 6408 24 6456 6462 6465 2 6447 6441 6450 34 + 6444 6441 6447 4 6444 6441 6450 34 6441 6450 + 6453 35 6438 6435 6441 10 6438 6435 6456 22 + 6435 6441 6444 10 6435 6441 6447 10 6432 6429 + 6435 23 6429 6435 6438 24 6507 6513 6516 2 + 6501 6495 6504 4 6498 6495 6501 4 6498 6495 + 6504 4 6492 6495 6498 5 6492 6495 6501 5 + 6492 6495 6504 5 6489 6483 6492 5 6486 6483 + 6489 4 6486 6483 6492 5 6480 6474 6483 7 + 6477 6474 6480 8 6477 6474 6483 7 6474 6483 + 6486 10 6474 6483 6489 10 6471 6468 6474 10 + 6471 6468 6507 22 6468 6474 6477 7 6468 6474 + 6480 7 6465 6462 6468 23 6462 6468 6471 24 + 6555 6561 6564 2 6549 6543 6552 8 6546 6543 + 6549 8 6546 6543 6552 8 6537 6531 6540 8 + 6534 6531 6537 8 6534 6531 6540 8 6528 6525 + 6531 7 6528 6525 6543 7 6525 6531 6534 7 + 6525 6531 6537 7 6525 6531 6540 7 6525 6543 + 6546 7 6525 6543 6549 7 6525 6543 6552 7 + 6522 6519 6525 10 6522 6519 6555 22 6519 6525 + 6528 7 6516 6513 6519 23 6513 6519 6522 24 + 6585 6591 6594 2 6579 6573 6582 8 6576 6573 + 6579 8 6576 6573 6582 8 6570 6567 6573 10 + 6570 6567 6585 22 6567 6573 6576 7 6567 6573 + 6579 7 6567 6573 6582 7 6564 6561 6567 23 + 6561 6567 6570 24 6642 6648 6651 2 6636 6630 + 6639 8 6633 6630 6636 8 6633 6630 6639 8 + 6624 6618 6627 8 6621 6618 6624 8 6621 6618 + 6627 8 6615 6612 6618 7 6615 6612 6630 7 + 6612 6618 6621 7 6612 6618 6624 7 6612 6618 + 6627 7 6612 6630 6633 7 6612 6630 6636 7 + 6612 6630 6639 7 6609 6603 6612 7 6606 6603 + 6609 8 6606 6603 6612 7 6603 6612 6615 7 + 6600 6597 6603 10 6600 6597 6642 22 6597 6603 + 6606 7 6597 6603 6609 7 6594 6591 6597 23 + 6591 6597 6600 24 6684 6690 6693 2 6672 6666 + 6675 8 6669 6666 6672 8 6669 6666 6675 8 + 6663 6660 6666 10 6663 6660 6678 34 6660 6666 + 6669 7 6660 6666 6672 7 6660 6666 6675 7 + 6660 6678 6681 35 6657 6654 6660 10 6657 6654 + 6684 22 6654 6660 6663 10 6651 6648 6654 23 + 6648 6654 6657 24 6747 6753 6756 2 6738 6735 + 6741 26 6735 6741 6744 26 6726 6729 6732 39 + 6726 6735 6738 40 6723 6720 6726 40 6717 6714 + 6720 26 6714 6720 6723 26 6711 6714 6717 26 + 6711 6741 6744 26 6708 6702 6711 28 6705 6702 + 6708 8 6705 6702 6711 28 6699 6696 6702 10 + 6699 6696 6747 22 6696 6702 6705 7 6696 6702 + 6708 7 6693 6690 6696 23 6690 6696 6699 24 + 6804 6810 6813 2 6798 6792 6801 8 6795 6792 + 6798 8 6795 6792 6801 8 6789 6783 6792 7 + 6786 6783 6789 8 6786 6783 6792 7 6783 6792 + 6795 7 6783 6792 6798 7 6783 6792 6801 7 + 6777 6771 6780 8 6774 6771 6777 8 6774 6771 + 6780 8 6768 6765 6771 7 6768 6765 6783 7 + 6765 6771 6774 7 6765 6771 6777 7 6765 6771 + 6780 7 6765 6783 6786 7 6765 6783 6789 7 + 6762 6759 6765 10 6762 6759 6804 22 6759 6765 + 6768 7 6756 6753 6759 23 6753 6759 6762 24 + 6825 6831 6834 2 6822 6816 6825 22 6819 6816 + 6822 4 6819 6816 6825 22 6813 6810 6816 23 + 6810 6816 6819 24 6810 6816 6822 24 6855 6861 + 6864 2 6849 6843 6852 8 6846 6843 6849 8 + 6846 6843 6852 8 6840 6837 6843 10 6840 6837 + 6855 22 6837 6843 6846 7 6837 6843 6849 7 + 6837 6843 6852 7 6834 6831 6837 23 6831 6837 + 6840 24 6900 6906 6909 2 6888 6882 6891 37 + 6885 6882 6888 8 6885 6882 6891 37 6879 6873 + 6882 7 6876 6873 6879 8 6876 6873 6882 7 + 6873 6882 6885 7 6873 6882 6888 7 6870 6867 + 6873 10 6870 6867 6900 22 6867 6873 6876 7 + 6867 6873 6879 7 6864 6861 6867 23 6861 6867 + 6870 24 6966 6972 6975 2 6960 6954 6963 18 + 6957 6954 6960 18 6957 6954 6963 18 6951 6945 + 6954 19 6948 6945 6951 32 6948 6945 6954 19 + 6945 6954 6957 17 6945 6954 6960 17 6945 6954 + 6963 17 6942 6936 6945 7 6939 6936 6942 8 + 6939 6936 6945 7 6936 6945 6948 12 6936 6945 + 6951 12 6933 6927 6936 7 6930 6927 6933 8 + 6930 6927 6936 7 6927 6936 6939 7 6927 6936 + 6942 7 6924 6918 6927 7 6921 6918 6924 8 + 6921 6918 6927 7 6918 6927 6930 7 6918 6927 + 6933 7 6915 6912 6918 10 6915 6912 6966 22 + 6912 6918 6921 7 6912 6918 6924 7 6909 6906 + 6912 23 6906 6912 6915 24 6996 7002 7005 2 + 6990 6984 6993 8 6987 6984 6990 8 6987 6984 + 6993 8 6981 6978 6984 10 6981 6978 6996 22 + 6978 6984 6987 7 6978 6984 6990 7 6978 6984 + 6993 7 6975 6972 6978 23 6972 6978 6981 24 + 7041 7035 7044 4 7038 7035 7041 4 7038 7035 + 7044 4 7032 7035 7038 5 7032 7035 7041 5 + 7032 7035 7044 5 7029 7023 7032 5 7026 7023 + 7029 4 7026 7023 7032 5 7020 7014 7023 7 + 7017 7014 7020 8 7017 7014 7023 7 7014 7023 + 7026 10 7014 7023 7029 10 7011 7008 7014 10 + 7011 7008 7047 22 7008 7014 7017 7 7008 7014 + 7020 7 7005 7002 7008 23 7002 7008 7011 24 + 7089 7095 7098 2 7086 7083 7089 22 7080 7074 + 7083 7 7077 7074 7080 8 7077 7074 7083 7 + 7074 7083 7086 10 7071 7065 7074 7 7068 7065 + 7071 8 7068 7065 7074 7 7065 7074 7077 7 + 7065 7074 7080 7 7062 7056 7065 10 7059 7056 + 7062 4 7059 7056 7065 10 7056 7065 7068 7 + 7056 7065 7071 7 7053 7056 7059 24 7053 7056 + 7062 24 7053 7083 7086 24 7122 7128 7131 2 + 7113 7107 7116 34 7110 7107 7113 4 7110 7107 + 7116 34 7107 7116 7119 35 7104 7101 7107 10 + 7104 7101 7122 22 7101 7107 7110 10 7101 7107 + 7113 10 7098 7095 7101 23 7095 7101 7104 24 + 7185 7191 7194 2 7176 7173 7179 26 7173 7179 + 7182 26 7164 7167 7170 39 7164 7173 7176 40 + 7161 7158 7164 40 7155 7152 7158 26 7152 7158 + 7161 26 7149 7152 7155 26 7149 7179 7182 26 + 7146 7140 7149 28 7143 7140 7146 8 7143 7140 + 7149 28 7137 7134 7140 10 7137 7134 7185 22 + 7134 7140 7143 7 7134 7140 7146 7 7131 7128 + 7134 23 7128 7134 7137 24 7227 7233 7236 2 + 7221 7218 7224 36 7212 7218 7221 2 7212 7218 + 7224 2 7209 7203 7212 37 7206 7203 7209 8 + 7206 7203 7212 37 7200 7197 7203 10 7200 7197 + 7227 22 7197 7203 7206 7 7197 7203 7209 7 + 7194 7191 7197 23 7191 7197 7200 24 7269 7275 + 7278 2 7257 7251 7260 8 7254 7251 7257 8 + 7254 7251 7260 8 7248 7245 7251 10 7248 7245 + 7263 34 7245 7251 7254 7 7245 7251 7257 7 + 7245 7251 7260 7 7245 7263 7266 35 7242 7239 + 7245 10 7242 7239 7269 22 7239 7245 7248 10 + 7236 7233 7239 23 7233 7239 7242 24 7320 7326 + 7329 2 7314 7308 7317 4 7311 7308 7314 4 + 7311 7308 7317 4 7305 7308 7311 5 7305 7308 + 7314 5 7305 7308 7317 5 7302 7296 7305 5 + 7299 7296 7302 4 7299 7296 7305 5 7293 7287 + 7296 7 7290 7287 7293 8 7290 7287 7296 7 + 7287 7296 7299 10 7287 7296 7302 10 7284 7281 + 7287 10 7284 7281 7320 22 7281 7287 7290 7 + 7281 7287 7293 7 7278 7275 7281 23 7275 7281 + 7284 24 7341 7347 7350 2 7338 7332 7341 22 + 7335 7332 7338 4 7335 7332 7341 22 7329 7326 + 7332 23 7326 7332 7335 24 7326 7332 7338 24 + 7389 7395 7398 2 7383 7377 7386 8 7380 7377 + 7383 8 7380 7377 7386 8 7371 7365 7374 8 + 7368 7365 7371 8 7368 7365 7374 8 7362 7359 + 7365 7 7362 7359 7377 7 7359 7365 7368 7 + 7359 7365 7371 7 7359 7365 7374 7 7359 7377 + 7380 7 7359 7377 7383 7 7359 7377 7386 7 + 7356 7353 7359 10 7356 7353 7389 22 7353 7359 + 7362 7 7350 7347 7353 23 7347 7353 7356 24 + 7419 7425 7428 2 7413 7407 7416 8 7410 7407 + 7413 8 7410 7407 7416 8 7404 7401 7407 10 + 7404 7401 7419 22 7401 7407 7410 7 7401 7407 + 7413 7 7401 7407 7416 7 7398 7395 7401 23 + 7395 7401 7404 24 7485 7491 7494 2 7479 7473 + 7482 18 7476 7473 7479 18 7476 7473 7482 18 + 7470 7464 7473 19 7467 7464 7470 32 7467 7464 + 7473 19 7464 7473 7476 17 7464 7473 7479 17 + 7464 7473 7482 17 7461 7455 7464 7 7458 7455 + 7461 8 7458 7455 7464 7 7455 7464 7467 12 + 7455 7464 7470 12 7452 7446 7455 7 7449 7446 + 7452 8 7449 7446 7455 7 7446 7455 7458 7 + 7446 7455 7461 7 7443 7437 7446 7 7440 7437 + 7443 8 7440 7437 7446 7 7437 7446 7449 7 + 7437 7446 7452 7 7434 7431 7437 10 7434 7431 + 7485 22 7431 7437 7440 7 7431 7437 7443 7 + 7428 7425 7431 23 7425 7431 7434 24 7515 7521 + 7524 2 7509 7503 7512 8 7506 7503 7509 8 + 7506 7503 7512 8 7500 7497 7503 10 7500 7497 + 7515 22 7497 7503 7506 7 7497 7503 7509 7 + 7497 7503 7512 7 7494 7491 7497 23 7491 7497 + 7500 24 7548 7554 7557 2 7539 7533 7542 34 + 7536 7533 7539 4 7536 7533 7542 34 7533 7542 + 7545 35 7530 7527 7533 10 7530 7527 7548 22 + 7527 7533 7536 10 7527 7533 7539 10 7524 7521 + 7527 23 7521 7527 7530 24 7605 7611 7614 2 + 7599 7593 7602 8 7596 7593 7599 8 7596 7593 + 7602 8 7587 7581 7590 8 7584 7581 7587 8 + 7584 7581 7590 8 7578 7575 7581 7 7578 7575 + 7593 7 7575 7581 7584 7 7575 7581 7587 7 + 7575 7581 7590 7 7575 7593 7596 7 7575 7593 + 7599 7 7575 7593 7602 7 7572 7566 7575 7 + 7569 7566 7572 8 7569 7566 7575 7 7566 7575 + 7578 7 7563 7560 7566 10 7563 7560 7605 22 + 7560 7566 7569 7 7560 7566 7572 7 7557 7554 + 7560 23 7554 7560 7563 24 7650 7656 7659 2 + 7638 7632 7641 37 7635 7632 7638 8 7635 7632 + 7641 37 7629 7623 7632 7 7626 7623 7629 8 + 7626 7623 7632 7 7623 7632 7635 7 7623 7632 + 7638 7 7620 7617 7623 10 7620 7617 7650 22 + 7617 7623 7626 7 7617 7623 7629 7 7614 7611 + 7617 23 7611 7617 7620 24 7680 7686 7689 2 + 7674 7668 7677 8 7671 7668 7674 8 7671 7668 + 7677 8 7665 7662 7668 10 7665 7662 7680 22 + 7662 7668 7671 7 7662 7668 7674 7 7662 7668 + 7677 7 7659 7656 7662 23 7656 7662 7665 24 + 7722 7728 7731 2 7710 7704 7713 8 7707 7704 + 7710 8 7707 7704 7713 8 7701 7698 7704 10 + 7701 7698 7716 34 7698 7704 7707 7 7698 7704 + 7710 7 7698 7704 7713 7 7698 7716 7719 35 + 7695 7692 7698 10 7695 7692 7722 22 7692 7698 + 7701 10 7689 7686 7692 23 7686 7692 7695 24 + 7770 7776 7779 2 7764 7758 7767 8 7761 7758 + 7764 8 7761 7758 7767 8 7752 7746 7755 8 + 7749 7746 7752 8 7749 7746 7755 8 7743 7740 + 7746 7 7743 7740 7758 7 7740 7746 7749 7 + 7740 7746 7752 7 7740 7746 7755 7 7740 7758 + 7761 7 7740 7758 7764 7 7740 7758 7767 7 + 7737 7734 7740 10 7737 7734 7770 22 7734 7740 + 7743 7 7731 7728 7734 23 7728 7734 7737 24 + 7842 7848 7851 2 7836 7833 7839 58 7827 7824 + 7830 58 7821 7824 7827 60 7821 7824 7830 60 + 7821 7833 7836 60 7821 7833 7839 60 7818 7815 + 7821 60 7812 7806 7815 61 7809 7806 7812 4 + 7809 7806 7815 61 7806 7815 7818 62 7803 7797 + 7806 7 7800 7797 7803 8 7800 7797 7806 7 + 7797 7806 7809 10 7797 7806 7812 10 7794 7788 + 7797 7 7791 7788 7794 8 7791 7788 7797 7 + 7788 7797 7800 7 7788 7797 7803 7 7785 7782 + 7788 10 7785 7782 7842 22 7782 7788 7791 7 + 7782 7788 7794 7 7779 7776 7782 23 7776 7782 + 7785 24 7905 7911 7914 2 7896 7893 7899 26 + 7893 7899 7902 26 7884 7887 7890 39 7884 7893 + 7896 40 7881 7878 7884 40 7875 7872 7878 26 + 7872 7878 7881 26 7869 7872 7875 26 7869 7899 + 7902 26 7866 7860 7869 28 7863 7860 7866 8 + 7863 7860 7869 28 7857 7854 7860 10 7857 7854 + 7905 22 7854 7860 7863 7 7854 7860 7866 7 + 7851 7848 7854 23 7848 7854 7857 24 7947 7953 + 7956 2 7935 7929 7938 8 7932 7929 7935 8 + 7932 7929 7938 8 7926 7923 7929 10 7926 7923 + 7941 34 7923 7929 7932 7 7923 7929 7935 7 + 7923 7929 7938 7 7923 7941 7944 35 7920 7917 + 7923 10 7920 7917 7947 22 7917 7923 7926 10 + 7914 7911 7917 23 7911 7917 7920 24 7977 7983 + 7986 2 7971 7965 7974 8 7968 7965 7971 8 + 7968 7965 7974 8 7962 7959 7965 10 7962 7959 + 7977 22 7959 7965 7968 7 7959 7965 7971 7 + 7959 7965 7974 7 7956 7953 7959 23 7953 7959 + 7962 24 8034 8040 8043 2 8028 8022 8031 8 + 8025 8022 8028 8 8025 8022 8031 8 8016 8010 + 8019 8 8013 8010 8016 8 8013 8010 8019 8 + 8007 8004 8010 7 8007 8004 8022 7 8004 8010 + 8013 7 8004 8010 8016 7 8004 8010 8019 7 + 8004 8022 8025 7 8004 8022 8028 7 8004 8022 + 8031 7 8001 7995 8004 7 7998 7995 8001 8 + 7998 7995 8004 7 7995 8004 8007 7 7992 7989 + 7995 10 7992 7989 8034 22 7989 7995 7998 7 + 7989 7995 8001 7 7986 7983 7989 23 7983 7989 + 7992 24 8064 8070 8073 2 8058 8052 8061 8 + 8055 8052 8058 8 8055 8052 8061 8 8049 8046 + 8052 10 8049 8046 8064 22 8046 8052 8055 7 + 8046 8052 8058 7 8046 8052 8061 7 8043 8040 + 8046 23 8040 8046 8049 24 8121 8127 8130 2 + 8115 8109 8118 8 8112 8109 8115 8 8112 8109 + 8118 8 8103 8097 8106 8 8100 8097 8103 8 + 8100 8097 8106 8 8094 8091 8097 7 8094 8091 + 8109 7 8091 8097 8100 7 8091 8097 8103 7 + 8091 8097 8106 7 8091 8109 8112 7 8091 8109 + 8115 7 8091 8109 8118 7 8088 8082 8091 7 + 8085 8082 8088 8 8085 8082 8091 7 8082 8091 + 8094 7 8079 8076 8082 10 8079 8076 8121 22 + 8076 8082 8085 7 8076 8082 8088 7 8073 8070 + 8076 23 8070 8076 8079 24 8142 8148 8151 2 + 8139 8133 8142 22 8136 8133 8139 4 8136 8133 + 8142 22 8130 8127 8133 23 8127 8133 8136 24 + 8127 8133 8139 24 8187 8193 8196 2 8175 8169 + 8178 37 8172 8169 8175 8 8172 8169 8178 37 + 8166 8160 8169 7 8163 8160 8166 8 8163 8160 + 8169 7 8160 8169 8172 7 8160 8169 8175 7 + 8157 8154 8160 10 8157 8154 8187 22 8154 8160 + 8163 7 8154 8160 8166 7 8151 8148 8154 23 + 8148 8154 8157 24 8223 8229 8232 2 8211 8205 + 8214 37 8208 8205 8211 8 8208 8205 8214 37 + 8202 8199 8205 10 8202 8199 8223 22 8199 8205 + 8208 7 8199 8205 8211 7 8196 8193 8199 23 + 8193 8199 8202 24 8244 8250 8253 2 8241 8235 + 8244 22 8238 8235 8241 4 8238 8235 8244 22 + 8232 8229 8235 23 8229 8235 8238 24 8229 8235 + 8241 24 8301 8307 8310 2 8295 8289 8298 8 + 8292 8289 8295 8 8292 8289 8298 8 8286 8280 + 8289 7 8283 8280 8286 8 8283 8280 8289 7 + 8280 8289 8292 7 8280 8289 8295 7 8280 8289 + 8298 7 8274 8268 8277 8 8271 8268 8274 8 + 8271 8268 8277 8 8265 8262 8268 7 8265 8262 + 8280 7 8262 8268 8271 7 8262 8268 8274 7 + 8262 8268 8277 7 8262 8280 8283 7 8262 8280 + 8286 7 8259 8256 8262 10 8259 8256 8301 22 + 8256 8262 8265 7 8253 8250 8256 23 8250 8256 + 8259 24 8367 8373 8376 2 8361 8355 8364 18 + 8358 8355 8361 18 8358 8355 8364 18 8352 8346 + 8355 19 8349 8346 8352 32 8349 8346 8355 19 + 8346 8355 8358 17 8346 8355 8361 17 8346 8355 + 8364 17 8343 8337 8346 7 8340 8337 8343 8 + 8340 8337 8346 7 8337 8346 8349 12 8337 8346 + 8352 12 8334 8328 8337 7 8331 8328 8334 8 + 8331 8328 8337 7 8328 8337 8340 7 8328 8337 + 8343 7 8325 8319 8328 7 8322 8319 8325 8 + 8322 8319 8328 7 8319 8328 8331 7 8319 8328 + 8334 7 8316 8313 8319 10 8316 8313 8367 22 + 8313 8319 8322 7 8313 8319 8325 7 8310 8307 + 8313 23 8307 8313 8316 24 8415 8421 8424 2 + 8409 8403 8412 8 8406 8403 8409 8 8406 8403 + 8412 8 8397 8391 8400 8 8394 8391 8397 8 + 8394 8391 8400 8 8388 8385 8391 7 8388 8385 + 8403 7 8385 8391 8394 7 8385 8391 8397 7 + 8385 8391 8400 7 8385 8403 8406 7 8385 8403 + 8409 7 8385 8403 8412 7 8382 8379 8385 10 + 8382 8379 8415 22 8379 8385 8388 7 8376 8373 + 8379 23 8373 8379 8382 24 8457 8463 8466 2 + 8451 8448 8454 36 8442 8448 8451 2 8442 8448 + 8454 2 8439 8433 8442 37 8436 8433 8439 8 + 8436 8433 8442 37 8430 8427 8433 10 8430 8427 + 8457 22 8427 8433 8436 7 8427 8433 8439 7 + 8424 8421 8427 23 8421 8427 8430 24 8487 8493 + 8496 2 8481 8475 8484 8 8478 8475 8481 8 + 8478 8475 8484 8 8472 8469 8475 10 8472 8469 + 8487 22 8469 8475 8478 7 8469 8475 8481 7 + 8469 8475 8484 7 8466 8463 8469 23 8463 8469 + 8472 24 8535 8541 8544 2 8529 8523 8532 8 + 8526 8523 8529 8 8526 8523 8532 8 8517 8511 + 8520 8 8514 8511 8517 8 8514 8511 8520 8 + 8508 8505 8511 7 8508 8505 8523 7 8505 8511 + 8514 7 8505 8511 8517 7 8505 8511 8520 7 + 8505 8523 8526 7 8505 8523 8529 7 8505 8523 + 8532 7 8502 8499 8505 10 8502 8499 8535 22 + 8499 8505 8508 7 8496 8493 8499 23 8493 8499 + 8502 24 8568 8574 8577 2 8559 8553 8562 34 + 8556 8553 8559 4 8556 8553 8562 34 8553 8562 + 8565 35 8550 8547 8553 10 8550 8547 8568 22 + 8547 8553 8556 10 8547 8553 8559 10 8544 8541 + 8547 23 8541 8547 8550 24 8598 8604 8607 2 + 8592 8586 8595 8 8589 8586 8592 8 8589 8586 + 8595 8 8583 8580 8586 10 8583 8580 8598 22 + 8580 8586 8589 7 8580 8586 8592 7 8580 8586 + 8595 7 8577 8574 8580 23 8574 8580 8583 24 + 8616 8610 8619 22 8613 8610 8616 4 8613 8610 + 8619 22 8607 8604 8610 23 8604 8610 8613 24 + 8604 8610 8616 24 8661 8667 8670 2 8658 8655 + 8661 22 8652 8646 8655 7 8649 8646 8652 8 + 8649 8646 8655 7 8646 8655 8658 10 8643 8637 + 8646 7 8640 8637 8643 8 8640 8637 8646 7 + 8637 8646 8649 7 8637 8646 8652 7 8634 8628 + 8637 10 8631 8628 8634 4 8631 8628 8637 10 + 8628 8637 8640 7 8628 8637 8643 7 8625 8628 + 8631 24 8625 8628 8634 24 8625 8655 8658 24 + 8718 8724 8727 2 8712 8706 8715 8 8709 8706 + 8712 8 8709 8706 8715 8 8703 8697 8706 7 + 8700 8697 8703 8 8700 8697 8706 7 8697 8706 + 8709 7 8697 8706 8712 7 8697 8706 8715 7 + 8691 8685 8694 8 8688 8685 8691 8 8688 8685 + 8694 8 8682 8679 8685 7 8682 8679 8697 7 + 8679 8685 8688 7 8679 8685 8691 7 8679 8685 + 8694 7 8679 8697 8700 7 8679 8697 8703 7 + 8676 8673 8679 10 8676 8673 8718 22 8673 8679 + 8682 7 8670 8667 8673 23 8667 8673 8676 24 + 8784 8790 8793 2 8778 8772 8781 18 8775 8772 + 8778 18 8775 8772 8781 18 8769 8763 8772 19 + 8766 8763 8769 32 8766 8763 8772 19 8763 8772 + 8775 17 8763 8772 8778 17 8763 8772 8781 17 + 8760 8754 8763 7 8757 8754 8760 8 8757 8754 + 8763 7 8754 8763 8766 12 8754 8763 8769 12 + 8751 8745 8754 7 8748 8745 8751 8 8748 8745 + 8754 7 8745 8754 8757 7 8745 8754 8760 7 + 8742 8736 8745 7 8739 8736 8742 8 8739 8736 + 8745 7 8736 8745 8748 7 8736 8745 8751 7 + 8733 8730 8736 10 8733 8730 8784 22 8730 8736 + 8739 7 8730 8736 8742 7 8727 8724 8730 23 + 8724 8730 8733 24 8826 8832 8835 2 8814 8808 + 8817 8 8811 8808 8814 8 8811 8808 8817 8 + 8805 8802 8808 10 8805 8802 8820 34 8802 8808 + 8811 7 8802 8808 8814 7 8802 8808 8817 7 + 8802 8820 8823 35 8799 8796 8802 10 8799 8796 + 8826 22 8796 8802 8805 10 8793 8790 8796 23 + 8790 8796 8799 24 8883 8889 8892 2 8877 8871 + 8880 8 8874 8871 8877 8 8874 8871 8880 8 + 8865 8859 8868 8 8862 8859 8865 8 8862 8859 + 8868 8 8856 8853 8859 7 8856 8853 8871 7 + 8853 8859 8862 7 8853 8859 8865 7 8853 8859 + 8868 7 8853 8871 8874 7 8853 8871 8877 7 + 8853 8871 8880 7 8850 8844 8853 7 8847 8844 + 8850 8 8847 8844 8853 7 8844 8853 8856 7 + 8841 8838 8844 10 8841 8838 8883 22 8838 8844 + 8847 7 8838 8844 8850 7 8835 8832 8838 23 + 8832 8838 8841 24 8913 8919 8922 2 8907 8901 + 8910 8 8904 8901 8907 8 8904 8901 8910 8 + 8898 8895 8901 10 8898 8895 8913 22 8895 8901 + 8904 7 8895 8901 8907 7 8895 8901 8910 7 + 8892 8889 8895 23 8889 8895 8898 24 8943 8949 + 8952 2 8937 8931 8940 8 8934 8931 8937 8 + 8934 8931 8940 8 8928 8925 8931 10 8928 8925 + 8943 22 8925 8931 8934 7 8925 8931 8937 7 + 8925 8931 8940 7 8922 8919 8925 23 8919 8925 + 8928 24 8976 8982 8985 2 8967 8961 8970 34 + 8964 8961 8967 4 8964 8961 8970 34 8961 8970 + 8973 35 8958 8955 8961 10 8958 8955 8976 22 + 8955 8961 8964 10 8955 8961 8967 10 8952 8949 + 8955 23 8949 8955 8958 24 8997 9003 9006 2 + 8994 8988 8997 22 8991 8988 8994 4 8991 8988 + 8997 22 8985 8982 8988 23 8982 8988 8991 24 + 8982 8988 8994 24 9054 9060 9063 2 9048 9042 + 9051 8 9045 9042 9048 8 9045 9042 9051 8 + 9039 9033 9042 7 9036 9033 9039 8 9036 9033 + 9042 7 9033 9042 9045 7 9033 9042 9048 7 + 9033 9042 9051 7 9027 9021 9030 8 9024 9021 + 9027 8 9024 9021 9030 8 9018 9015 9021 7 + 9018 9015 9033 7 9015 9021 9024 7 9015 9021 + 9027 7 9015 9021 9030 7 9015 9033 9036 7 + 9015 9033 9039 7 9012 9009 9015 10 9012 9009 + 9054 22 9009 9015 9018 7 9006 9003 9009 23 + 9003 9009 9012 24 9087 9093 9096 2 9078 9072 + 9081 34 9075 9072 9078 4 9075 9072 9081 34 + 9072 9081 9084 35 9069 9066 9072 10 9069 9066 + 9087 22 9066 9072 9075 10 9066 9072 9078 10 + 9063 9060 9066 23 9060 9066 9069 24 9129 9135 + 9138 2 9123 9120 9126 36 9114 9120 9123 2 + 9114 9120 9126 2 9111 9105 9114 37 9108 9105 + 9111 8 9108 9105 9114 37 9102 9099 9105 10 + 9102 9099 9129 22 9099 9105 9108 7 9099 9105 + 9111 7 9096 9093 9099 23 9093 9099 9102 24 + 9189 9195 9198 2 9180 9177 9183 26 9177 9183 + 9186 26 9174 9171 9177 26 9171 9177 9180 26 + 9168 9165 9171 26 9165 9171 9174 26 9162 9159 + 9165 26 9159 9165 9168 26 9156 9159 9162 26 + 9156 9183 9186 26 9153 9147 9156 28 9150 9147 + 9153 8 9150 9147 9156 28 9144 9141 9147 10 + 9144 9141 9189 22 9141 9147 9150 7 9141 9147 + 9153 7 9138 9135 9141 23 9135 9141 9144 24 + 9255 9261 9264 2 9249 9243 9252 18 9246 9243 + 9249 18 9246 9243 9252 18 9240 9234 9243 19 + 9237 9234 9240 32 9237 9234 9243 19 9234 9243 + 9246 17 9234 9243 9249 17 9234 9243 9252 17 + 9231 9225 9234 7 9228 9225 9231 8 9228 9225 + 9234 7 9225 9234 9237 12 9225 9234 9240 12 + 9222 9216 9225 7 9219 9216 9222 8 9219 9216 + 9225 7 9216 9225 9228 7 9216 9225 9231 7 + 9213 9207 9216 7 9210 9207 9213 8 9210 9207 + 9216 7 9207 9216 9219 7 9207 9216 9222 7 + 9204 9201 9207 10 9204 9201 9255 22 9201 9207 + 9210 7 9201 9207 9213 7 9198 9195 9201 23 + 9195 9201 9204 24 9321 9327 9330 2 9315 9309 + 9318 18 9312 9309 9315 18 9312 9309 9318 18 + 9306 9300 9309 19 9303 9300 9306 32 9303 9300 + 9309 19 9300 9309 9312 17 9300 9309 9315 17 + 9300 9309 9318 17 9297 9291 9300 7 9294 9291 + 9297 8 9294 9291 9300 7 9291 9300 9303 12 + 9291 9300 9306 12 9288 9282 9291 7 9285 9282 + 9288 8 9285 9282 9291 7 9282 9291 9294 7 + 9282 9291 9297 7 9279 9273 9282 7 9276 9273 + 9279 8 9276 9273 9282 7 9273 9282 9285 7 + 9273 9282 9288 7 9270 9267 9273 10 9270 9267 + 9321 22 9267 9273 9276 7 9267 9273 9279 7 + 9264 9261 9267 23 9261 9267 9270 24 9372 9378 + 9381 2 9366 9360 9369 4 9363 9360 9366 4 + 9363 9360 9369 4 9357 9360 9363 5 9357 9360 + 9366 5 9357 9360 9369 5 9354 9348 9357 5 + 9351 9348 9354 4 9351 9348 9357 5 9345 9339 + 9348 7 9342 9339 9345 8 9342 9339 9348 7 + 9339 9348 9351 10 9339 9348 9354 10 9336 9333 + 9339 10 9336 9333 9372 22 9333 9339 9342 7 + 9333 9339 9345 7 9330 9327 9333 23 9327 9333 + 9336 24 9429 9435 9438 2 9423 9417 9426 8 + 9420 9417 9423 8 9420 9417 9426 8 9411 9405 + 9414 8 9408 9405 9411 8 9408 9405 9414 8 + 9402 9399 9405 7 9402 9399 9417 7 9399 9405 + 9408 7 9399 9405 9411 7 9399 9405 9414 7 + 9399 9417 9420 7 9399 9417 9423 7 9399 9417 + 9426 7 9396 9390 9399 7 9393 9390 9396 8 + 9393 9390 9399 7 9390 9399 9402 7 9387 9384 + 9390 10 9387 9384 9429 22 9384 9390 9393 7 + 9384 9390 9396 7 9381 9378 9384 23 9378 9384 + 9387 24 9465 9471 9474 2 9453 9447 9456 37 + 9450 9447 9453 8 9450 9447 9456 37 9444 9441 + 9447 10 9444 9441 9465 22 9441 9447 9450 7 + 9441 9447 9453 7 9438 9435 9441 23 9435 9441 + 9444 24 9528 9534 9537 2 9519 9516 9522 26 + 9516 9522 9525 26 9507 9510 9513 39 9507 9516 + 9519 40 9504 9501 9507 40 9498 9495 9501 26 + 9495 9501 9504 26 9492 9495 9498 26 9492 9522 + 9525 26 9489 9483 9492 28 9486 9483 9489 8 + 9486 9483 9492 28 9480 9477 9483 10 9480 9477 + 9528 22 9477 9483 9486 7 9477 9483 9489 7 + 9474 9471 9477 23 9471 9477 9480 24 9570 9576 + 9579 2 9564 9561 9567 36 9555 9561 9564 2 + 9555 9561 9567 2 9552 9546 9555 37 9549 9546 + 9552 8 9549 9546 9555 37 9543 9540 9546 10 + 9543 9540 9570 22 9540 9546 9549 7 9540 9546 + 9552 7 9537 9534 9540 23 9534 9540 9543 24 + 9600 9606 9609 2 9594 9588 9597 8 9591 9588 + 9594 8 9591 9588 9597 8 9585 9582 9588 10 + 9585 9582 9600 22 9582 9588 9591 7 9582 9588 + 9594 7 9582 9588 9597 7 9579 9576 9582 23 + 9576 9582 9585 24 9651 9657 9660 2 9645 9639 + 9648 4 9642 9639 9645 4 9642 9639 9648 4 + 9636 9639 9642 5 9636 9639 9645 5 9636 9639 + 9648 5 9633 9627 9636 5 9630 9627 9633 4 + 9630 9627 9636 5 9624 9618 9627 7 9621 9618 + 9624 8 9621 9618 9627 7 9618 9627 9630 10 + 9618 9627 9633 10 9615 9612 9618 10 9615 9612 + 9651 22 9612 9618 9621 7 9612 9618 9624 7 + 9609 9606 9612 23 9606 9612 9615 24 9699 9705 + 9708 2 9693 9687 9696 8 9690 9687 9693 8 + 9690 9687 9696 8 9681 9675 9684 8 9678 9675 + 9681 8 9678 9675 9684 8 9672 9669 9675 7 + 9672 9669 9687 7 9669 9675 9678 7 9669 9675 + 9681 7 9669 9675 9684 7 9669 9687 9690 7 + 9669 9687 9693 7 9669 9687 9696 7 9666 9663 + 9669 10 9666 9663 9699 22 9663 9669 9672 7 + 9660 9657 9663 23 9657 9663 9666 24 9723 9717 + 9726 34 9720 9717 9723 4 9720 9717 9726 34 + 9717 9726 9729 35 9714 9711 9717 10 9714 9711 + 9732 22 9711 9717 9720 10 9711 9717 9723 10 + 9708 9705 9711 23 9705 9711 9714 24 9774 9780 + 9783 2 9771 9768 9774 22 9765 9759 9768 7 + 9762 9759 9765 8 9762 9759 9768 7 9759 9768 + 9771 10 9756 9750 9759 7 9753 9750 9756 8 + 9753 9750 9759 7 9750 9759 9762 7 9750 9759 + 9765 7 9747 9741 9750 10 9744 9741 9747 4 + 9744 9741 9750 10 9741 9750 9753 7 9741 9750 + 9756 7 9738 9741 9744 24 9738 9741 9747 24 + 9738 9768 9771 24 9831 9837 9840 2 9825 9819 + 9828 8 9822 9819 9825 8 9822 9819 9828 8 + 9813 9807 9816 8 9810 9807 9813 8 9810 9807 + 9816 8 9804 9801 9807 7 9804 9801 9819 7 + 9801 9807 9810 7 9801 9807 9813 7 9801 9807 + 9816 7 9801 9819 9822 7 9801 9819 9825 7 + 9801 9819 9828 7 9798 9792 9801 7 9795 9792 + 9798 8 9795 9792 9801 7 9792 9801 9804 7 + 9789 9786 9792 10 9789 9786 9831 22 9786 9792 + 9795 7 9786 9792 9798 7 9783 9780 9786 23 + 9780 9786 9789 24 9897 9903 9906 2 9891 9885 + 9894 18 9888 9885 9891 18 9888 9885 9894 18 + 9882 9876 9885 19 9879 9876 9882 32 9879 9876 + 9885 19 9876 9885 9888 17 9876 9885 9891 17 + 9876 9885 9894 17 9873 9867 9876 7 9870 9867 + 9873 8 9870 9867 9876 7 9867 9876 9879 12 + 9867 9876 9882 12 9864 9858 9867 7 9861 9858 + 9864 8 9861 9858 9867 7 9858 9867 9870 7 + 9858 9867 9873 7 9855 9849 9858 7 9852 9849 + 9855 8 9852 9849 9858 7 9849 9858 9861 7 + 9849 9858 9864 7 9846 9843 9849 10 9846 9843 + 9897 22 9843 9849 9852 7 9843 9849 9855 7 + 9840 9837 9843 23 9837 9843 9846 24 9963 9969 + 9972 2 9957 9951 9960 18 9954 9951 9957 18 + 9954 9951 9960 18 9948 9942 9951 19 9945 9942 + 9948 32 9945 9942 9951 19 9942 9951 9954 17 + 9942 9951 9957 17 9942 9951 9960 17 9939 9933 + 9942 7 9936 9933 9939 8 9936 9933 9942 7 + 9933 9942 9945 12 9933 9942 9948 12 9930 9924 + 9933 7 9927 9924 9930 8 9927 9924 9933 7 + 9924 9933 9936 7 9924 9933 9939 7 9921 9915 + 9924 7 9918 9915 9921 8 9918 9915 9924 7 + 9915 9924 9927 7 9915 9924 9930 7 9912 9909 + 9915 10 9912 9909 9963 22 9909 9915 9918 7 + 9909 9915 9921 7 9906 9903 9909 23 9903 9909 + 9912 24 10005 10011 10014 2 9999 9996 10002 36 + 9990 9996 9999 2 9990 9996 10002 2 9987 9981 + 9990 37 9984 9981 9987 8 9984 9981 9990 37 + 9978 9975 9981 10 9978 9975 10005 22 9975 9981 + 9984 7 9975 9981 9987 7 9972 9969 9975 23 + 9969 9975 9978 24 10053 10059 10062 2 10047 10041 + 10050 8 10044 10041 10047 8 10044 10041 10050 8 + 10035 10029 10038 8 10032 10029 10035 8 10032 10029 + 10038 8 10026 10023 10029 7 10026 10023 10041 7 + 10023 10029 10032 7 10023 10029 10035 7 10023 10029 + 10038 7 10023 10041 10044 7 10023 10041 10047 7 + 10023 10041 10050 7 10020 10017 10023 10 10020 10017 + 10053 22 10017 10023 10026 7 10014 10011 10017 23 + 10011 10017 10020 24 10089 10095 10098 2 10077 10071 + 10080 37 10074 10071 10077 8 10074 10071 10080 37 + 10068 10065 10071 10 10068 10065 10089 22 10065 10071 + 10074 7 10065 10071 10077 7 10062 10059 10065 23 + 10059 10065 10068 24 10146 10152 10155 2 10140 10134 + 10143 8 10137 10134 10140 8 10137 10134 10143 8 + 10131 10125 10134 7 10128 10125 10131 8 10128 10125 + 10134 7 10125 10134 10137 7 10125 10134 10140 7 + 10125 10134 10143 7 10119 10113 10122 8 10116 10113 + 10119 8 10116 10113 10122 8 10110 10107 10113 7 + 10110 10107 10125 7 10107 10113 10116 7 10107 10113 + 10119 7 10107 10113 10122 7 10107 10125 10128 7 + 10107 10125 10131 7 10104 10101 10107 10 10104 10101 + 10146 22 10101 10107 10110 7 10098 10095 10101 23 + 10095 10101 10104 24 10197 10203 10206 2 10191 10185 + 10194 4 10188 10185 10191 4 10188 10185 10194 4 + 10182 10185 10188 5 10182 10185 10191 5 10182 10185 + 10194 5 10179 10173 10182 5 10176 10173 10179 4 + 10176 10173 10182 5 10170 10164 10173 7 10167 10164 + 10170 8 10167 10164 10173 7 10164 10173 10176 10 + 10164 10173 10179 10 10161 10158 10164 10 10161 10158 + 10197 22 10158 10164 10167 7 10158 10164 10170 7 + 10155 10152 10158 23 10152 10158 10161 24 10242 10248 + 10251 2 10230 10224 10233 37 10227 10224 10230 8 + 10227 10224 10233 37 10221 10215 10224 7 10218 10215 + 10221 8 10218 10215 10224 7 10215 10224 10227 7 + 10215 10224 10230 7 10212 10209 10215 10 10212 10209 + 10242 22 10209 10215 10218 7 10209 10215 10221 7 + 10206 10203 10209 23 10203 10209 10212 24 10290 10296 + 10299 2 10284 10278 10287 8 10281 10278 10284 8 + 10281 10278 10287 8 10272 10266 10275 8 10269 10266 + 10272 8 10269 10266 10275 8 10263 10260 10266 7 + 10263 10260 10278 7 10260 10266 10269 7 10260 10266 + 10272 7 10260 10266 10275 7 10260 10278 10281 7 + 10260 10278 10284 7 10260 10278 10287 7 10257 10254 + 10260 10 10257 10254 10290 22 10254 10260 10263 7 + 10251 10248 10254 23 10248 10254 10257 24 10311 10317 + 10320 2 10308 10302 10311 22 10305 10302 10308 4 + 10305 10302 10311 22 10299 10296 10302 23 10296 10302 + 10305 24 10296 10302 10308 24 10353 10359 10362 2 + 10347 10344 10350 36 10338 10344 10347 2 10338 10344 + 10350 2 10335 10329 10338 37 10332 10329 10335 8 + 10332 10329 10338 37 10326 10323 10329 10 10326 10323 + 10353 22 10323 10329 10332 7 10323 10329 10335 7 + 10320 10317 10323 23 10317 10323 10326 24 10395 10401 + 10404 2 10383 10377 10386 8 10380 10377 10383 8 + 10380 10377 10386 8 10374 10371 10377 10 10374 10371 + 10389 34 10371 10377 10380 7 10371 10377 10383 7 + 10371 10377 10386 7 10371 10389 10392 35 10368 10365 + 10371 10 10368 10365 10395 22 10365 10371 10374 10 + 10362 10359 10365 23 10359 10365 10368 24 10443 10449 + 10452 2 10437 10431 10440 8 10434 10431 10437 8 + 10434 10431 10440 8 10425 10419 10428 8 10422 10419 + 10425 8 10422 10419 10428 8 10416 10413 10419 7 + 10416 10413 10431 7 10413 10419 10422 7 10413 10419 + 10425 7 10413 10419 10428 7 10413 10431 10434 7 + 10413 10431 10437 7 10413 10431 10440 7 10410 10407 + 10413 10 10410 10407 10443 22 10407 10413 10416 7 + 10404 10401 10407 23 10401 10407 10410 24 10473 10479 + 10482 2 10467 10461 10470 8 10464 10461 10467 8 + 10464 10461 10470 8 10458 10455 10461 10 10458 10455 + 10473 22 10455 10461 10464 7 10455 10461 10467 7 + 10455 10461 10470 7 10452 10449 10455 23 10449 10455 + 10458 24 10533 10539 10542 2 10524 10521 10527 26 + 10521 10527 10530 26 10518 10515 10521 26 10515 10521 + 10524 26 10512 10509 10515 26 10509 10515 10518 26 + 10506 10503 10509 26 10503 10509 10512 26 10500 10503 + 10506 26 10500 10527 10530 26 10497 10491 10500 28 + 10494 10491 10497 8 10494 10491 10500 28 10488 10485 + 10491 10 10488 10485 10533 22 10485 10491 10494 7 + 10485 10491 10497 7 10482 10479 10485 23 10479 10485 + 10488 24 10590 10596 10599 2 10584 10578 10587 8 + 10581 10578 10584 8 10581 10578 10587 8 10572 10566 + 10575 8 10569 10566 10572 8 10569 10566 10575 8 + 10563 10560 10566 7 10563 10560 10578 7 10560 10566 + 10569 7 10560 10566 10572 7 10560 10566 10575 7 + 10560 10578 10581 7 10560 10578 10584 7 10560 10578 + 10587 7 10557 10551 10560 7 10554 10551 10557 8 + 10554 10551 10560 7 10551 10560 10563 7 10548 10545 + 10551 10 10548 10545 10590 22 10545 10551 10554 7 + 10545 10551 10557 7 10542 10539 10545 23 10539 10545 + 10548 24 10623 10629 10632 2 10614 10608 10617 67 + 10611 10608 10614 4 10611 10608 10617 67 10608 10617 + 10620 68 10605 10602 10608 10 10605 10602 10623 22 + 10602 10608 10611 10 10602 10608 10614 10 10599 10596 + 10602 23 10596 10602 10605 24 10656 10662 10665 2 + 10647 10641 10650 34 10644 10641 10647 4 10644 10641 + 10650 34 10641 10650 10653 35 10638 10635 10641 10 + 10638 10635 10656 22 10635 10641 10644 10 10635 10641 + 10647 10 10632 10629 10635 23 10629 10635 10638 24 + 10692 10698 10701 2 10680 10674 10683 37 10677 10674 + 10680 8 10677 10674 10683 37 10671 10668 10674 10 + 10671 10668 10692 22 10668 10674 10677 7 10668 10674 + 10680 7 10665 10662 10668 23 10662 10668 10671 24 + 10743 10749 10752 2 10737 10731 10740 4 10734 10731 + 10737 4 10734 10731 10740 4 10728 10731 10734 5 + 10728 10731 10737 5 10728 10731 10740 5 10725 10719 + 10728 5 10722 10719 10725 4 10722 10719 10728 5 + 10716 10710 10719 7 10713 10710 10716 8 10713 10710 + 10719 7 10710 10719 10722 10 10710 10719 10725 10 + 10707 10704 10710 10 10707 10704 10743 22 10704 10710 + 10713 7 10704 10710 10716 7 10701 10698 10704 23 + 10698 10704 10707 24 10773 10779 10782 2 10767 10761 + 10770 8 10764 10761 10767 8 10764 10761 10770 8 + 10758 10755 10761 10 10758 10755 10773 22 10755 10761 + 10764 7 10755 10761 10767 7 10755 10761 10770 7 + 10752 10749 10755 23 10749 10755 10758 24 10815 10821 + 10824 2 10803 10797 10806 8 10800 10797 10803 8 + 10800 10797 10806 8 10794 10791 10797 10 10794 10791 + 10809 34 10791 10797 10800 7 10791 10797 10803 7 + 10791 10797 10806 7 10791 10809 10812 35 10788 10785 + 10791 10 10788 10785 10815 22 10785 10791 10794 10 + 10782 10779 10785 23 10779 10785 10788 24 10836 10842 + 10845 2 10833 10827 10836 22 10830 10827 10833 4 + 10830 10827 10836 22 10824 10821 10827 23 10821 10827 + 10830 24 10821 10827 10833 24 10893 10899 10902 2 + 10887 10881 10890 8 10884 10881 10887 8 10884 10881 + 10890 8 10878 10872 10881 7 10875 10872 10878 8 + 10875 10872 10881 7 10872 10881 10884 7 10872 10881 + 10887 7 10872 10881 10890 7 10866 10860 10869 8 + 10863 10860 10866 8 10863 10860 10869 8 10857 10854 + 10860 7 10857 10854 10872 7 10854 10860 10863 7 + 10854 10860 10866 7 10854 10860 10869 7 10854 10872 + 10875 7 10854 10872 10878 7 10851 10848 10854 10 + 10851 10848 10893 22 10848 10854 10857 7 10845 10842 + 10848 23 10842 10848 10851 24 10935 10941 10944 2 + 10923 10917 10926 8 10920 10917 10923 8 10920 10917 + 10926 8 10914 10911 10917 10 10914 10911 10929 34 + 10911 10917 10920 7 10911 10917 10923 7 10911 10917 + 10926 7 10911 10929 10932 35 10908 10905 10911 10 + 10908 10905 10935 22 10905 10911 10914 10 10902 10899 + 10905 23 10899 10905 10908 24 10956 10962 10965 2 + 10953 10947 10956 22 10950 10947 10953 4 10950 10947 + 10956 22 10944 10941 10947 23 10941 10947 10950 24 + 10941 10947 10953 24 11001 11007 11010 2 10989 10983 + 10992 37 10986 10983 10989 8 10986 10983 10992 37 + 10980 10974 10983 7 10977 10974 10980 8 10977 10974 + 10983 7 10974 10983 10986 7 10974 10983 10989 7 + 10971 10968 10974 10 10971 10968 11001 22 10968 10974 + 10977 7 10968 10974 10980 7 10965 10962 10968 23 + 10962 10968 10971 24 11049 11055 11058 2 11043 11037 + 11046 8 11040 11037 11043 8 11040 11037 11046 8 + 11031 11025 11034 8 11028 11025 11031 8 11028 11025 + 11034 8 11022 11019 11025 7 11022 11019 11037 7 + 11019 11025 11028 7 11019 11025 11031 7 11019 11025 + 11034 7 11019 11037 11040 7 11019 11037 11043 7 + 11019 11037 11046 7 11016 11013 11019 10 11016 11013 + 11049 22 11013 11019 11022 7 11010 11007 11013 23 + 11007 11013 11016 24 11097 11103 11106 2 11091 11085 + 11094 8 11088 11085 11091 8 11088 11085 11094 8 + 11079 11073 11082 8 11076 11073 11079 8 11076 11073 + 11082 8 11070 11067 11073 7 11070 11067 11085 7 + 11067 11073 11076 7 11067 11073 11079 7 11067 11073 + 11082 7 11067 11085 11088 7 11067 11085 11091 7 + 11067 11085 11094 7 11064 11061 11067 10 11064 11061 + 11097 22 11061 11067 11070 7 11058 11055 11061 23 + 11055 11061 11064 24 11148 11154 11157 2 11139 11136 + 11142 43 11136 11142 11145 44 11133 11130 11136 45 + 11130 11136 11139 46 11127 11130 11133 49 11124 11142 + 11145 53 11121 11115 11124 54 11118 11115 11121 8 + 11118 11115 11124 54 11112 11109 11115 10 11112 11109 + 11148 22 11109 11115 11118 7 11109 11115 11121 7 + 11106 11103 11109 23 11103 11109 11112 24 11196 11202 + 11205 2 11190 11184 11193 8 11187 11184 11190 8 + 11187 11184 11193 8 11178 11172 11181 8 11175 11172 + 11178 8 11175 11172 11181 8 11169 11166 11172 7 + 11169 11166 11184 7 11166 11172 11175 7 11166 11172 + 11178 7 11166 11172 11181 7 11166 11184 11187 7 + 11166 11184 11190 7 11166 11184 11193 7 11163 11160 + 11166 10 11163 11160 11196 22 11160 11166 11169 7 + 11157 11154 11160 23 11154 11160 11163 24 11232 11238 + 11241 2 11220 11214 11223 37 11217 11214 11220 8 + 11217 11214 11223 37 11211 11208 11214 10 11211 11208 + 11232 22 11208 11214 11217 7 11208 11214 11220 7 + 11205 11202 11208 23 11202 11208 11211 24 11262 11268 + 11271 2 11256 11250 11259 8 11253 11250 11256 8 + 11253 11250 11259 8 11247 11244 11250 10 11247 11244 + 11262 22 11244 11250 11253 7 11244 11250 11256 7 + 11244 11250 11259 7 11241 11238 11244 23 11238 11244 + 11247 24 11283 11289 11292 2 11280 11274 11283 22 + 11277 11274 11280 4 11277 11274 11283 22 11271 11268 + 11274 23 11268 11274 11277 24 11268 11274 11280 24 + 11346 11352 11355 2 11337 11334 11340 26 11334 11340 + 11343 26 11325 11328 11331 39 11325 11334 11337 40 + 11322 11319 11325 40 11316 11313 11319 26 11313 11319 + 11322 26 11310 11313 11316 26 11310 11340 11343 26 + 11307 11301 11310 28 11304 11301 11307 8 11304 11301 + 11310 28 11298 11295 11301 10 11298 11295 11346 22 + 11295 11301 11304 7 11295 11301 11307 7 11292 11289 + 11295 23 11289 11295 11298 24 11397 11403 11406 2 + 11388 11385 11391 43 11385 11391 11394 44 11382 11379 + 11385 45 11379 11385 11388 46 11376 11379 11382 49 + 11373 11391 11394 53 11370 11364 11373 54 11367 11364 + 11370 8 11367 11364 11373 54 11361 11358 11364 10 + 11361 11358 11397 22 11358 11364 11367 7 11358 11364 + 11370 7 11355 11352 11358 23 11352 11358 11361 24 + 11430 11436 11439 2 11421 11415 11424 67 11418 11415 + 11421 4 11418 11415 11424 67 11415 11424 11427 68 + 11412 11409 11415 10 11412 11409 11430 22 11409 11415 + 11418 10 11409 11415 11421 10 11406 11403 11409 23 + 11403 11409 11412 24 11478 11484 11487 2 11472 11466 + 11475 8 11469 11466 11472 8 11469 11466 11475 8 + 11460 11454 11463 8 11457 11454 11460 8 11457 11454 + 11463 8 11451 11448 11454 7 11451 11448 11466 7 + 11448 11454 11457 7 11448 11454 11460 7 11448 11454 + 11463 7 11448 11466 11469 7 11448 11466 11472 7 + 11448 11466 11475 7 11445 11442 11448 10 11445 11442 + 11478 22 11442 11448 11451 7 11439 11436 11442 23 + 11436 11442 11445 24 11511 11517 11520 2 11502 11496 + 11505 34 11499 11496 11502 4 11499 11496 11505 34 + 11496 11505 11508 35 11493 11490 11496 10 11493 11490 + 11511 22 11490 11496 11499 10 11490 11496 11502 10 + 11487 11484 11490 23 11484 11490 11493 24 11562 11568 + 11571 2 11556 11550 11559 4 11553 11550 11556 4 + 11553 11550 11559 4 11547 11550 11553 5 11547 11550 + 11556 5 11547 11550 11559 5 11544 11538 11547 5 + 11541 11538 11544 4 11541 11538 11547 5 11535 11529 + 11538 7 11532 11529 11535 8 11532 11529 11538 7 + 11529 11538 11541 10 11529 11538 11544 10 11526 11523 + 11529 10 11526 11523 11562 22 11523 11529 11532 7 + 11523 11529 11535 7 11520 11517 11523 23 11517 11523 + 11526 24 11583 11589 11592 2 11580 11574 11583 22 + 11577 11574 11580 4 11577 11574 11583 22 11571 11568 + 11574 23 11568 11574 11577 24 11568 11574 11580 24 + 11625 11631 11634 2 11619 11616 11622 36 11610 11616 + 11619 2 11610 11616 11622 2 11607 11601 11610 37 + 11604 11601 11607 8 11604 11601 11610 37 11598 11595 + 11601 10 11598 11595 11625 22 11595 11601 11604 7 + 11595 11601 11607 7 11592 11589 11595 23 11589 11595 + 11598 24 11673 11679 11682 2 11667 11661 11670 8 + 11664 11661 11667 8 11664 11661 11670 8 11655 11649 + 11658 8 11652 11649 11655 8 11652 11649 11658 8 + 11646 11643 11649 7 11646 11643 11661 7 11643 11649 + 11652 7 11643 11649 11655 7 11643 11649 11658 7 + 11643 11661 11664 7 11643 11661 11667 7 11643 11661 + 11670 7 11640 11637 11643 10 11640 11637 11673 22 + 11637 11643 11646 7 11634 11631 11637 23 11631 11637 + 11640 24 11730 11736 11739 2 11724 11718 11727 8 + 11721 11718 11724 8 11721 11718 11727 8 11712 11706 + 11715 8 11709 11706 11712 8 11709 11706 11715 8 + 11703 11700 11706 7 11703 11700 11718 7 11700 11706 + 11709 7 11700 11706 11712 7 11700 11706 11715 7 + 11700 11718 11721 7 11700 11718 11724 7 11700 11718 + 11727 7 11697 11691 11700 7 11694 11691 11697 8 + 11694 11691 11700 7 11691 11700 11703 7 11688 11685 + 11691 10 11688 11685 11730 22 11685 11691 11694 7 + 11685 11691 11697 7 11682 11679 11685 23 11679 11685 + 11688 24 11787 11793 11796 2 11781 11775 11784 8 + 11778 11775 11781 8 11778 11775 11784 8 11769 11763 + 11772 8 11766 11763 11769 8 11766 11763 11772 8 + 11760 11757 11763 7 11760 11757 11775 7 11757 11763 + 11766 7 11757 11763 11769 7 11757 11763 11772 7 + 11757 11775 11778 7 11757 11775 11781 7 11757 11775 + 11784 7 11754 11748 11757 7 11751 11748 11754 8 + 11751 11748 11757 7 11748 11757 11760 7 11745 11742 + 11748 10 11745 11742 11787 22 11742 11748 11751 7 + 11742 11748 11754 7 11739 11736 11742 23 11736 11742 + 11745 24 11832 11838 11841 2 11820 11814 11823 37 + 11817 11814 11820 8 11817 11814 11823 37 11811 11805 + 11814 7 11808 11805 11811 8 11808 11805 11814 7 + 11805 11814 11817 7 11805 11814 11820 7 11802 11799 + 11805 10 11802 11799 11832 22 11799 11805 11808 7 + 11799 11805 11811 7 11796 11793 11799 23 11793 11799 + 11802 24 11883 11889 11892 2 11874 11871 11877 43 + 11871 11877 11880 44 11868 11865 11871 45 11865 11871 + 11874 46 11862 11865 11868 49 11859 11877 11880 53 + 11856 11850 11859 54 11853 11850 11856 8 11853 11850 + 11859 54 11847 11844 11850 10 11847 11844 11883 22 + 11844 11850 11853 7 11844 11850 11856 7 11841 11838 + 11844 23 11838 11844 11847 24 11934 11940 11943 2 + 11925 11922 11928 43 11922 11928 11931 44 11919 11916 + 11922 45 11916 11922 11925 46 11913 11916 11919 49 + 11910 11928 11931 53 11907 11901 11910 54 11904 11901 + 11907 8 11904 11901 11910 54 11898 11895 11901 10 + 11898 11895 11934 22 11895 11901 11904 7 11895 11901 + 11907 7 11892 11889 11895 23 11889 11895 11898 24 + 11985 11991 11994 2 11976 11973 11979 43 11973 11979 + 11982 44 11970 11967 11973 45 11967 11973 11976 46 + 11964 11967 11970 49 11961 11979 11982 53 11958 11952 + 11961 54 11955 11952 11958 8 11955 11952 11961 54 + 11949 11946 11952 10 11949 11946 11985 22 11946 11952 + 11955 7 11946 11952 11958 7 11943 11940 11946 23 + 11940 11946 11949 24 12036 12042 12045 2 12027 12024 + 12030 43 12024 12030 12033 44 12021 12018 12024 45 + 12018 12024 12027 46 12015 12018 12021 49 12012 12030 + 12033 53 12009 12003 12012 54 12006 12003 12009 8 + 12006 12003 12012 54 12000 11997 12003 10 12000 11997 + 12036 22 11997 12003 12006 7 11997 12003 12009 7 + 11994 11991 11997 23 11991 11997 12000 24 12087 12093 + 12096 2 12078 12075 12081 43 12075 12081 12084 44 + 12072 12069 12075 45 12069 12075 12078 46 12066 12069 + 12072 49 12063 12081 12084 53 12060 12054 12063 54 + 12057 12054 12060 8 12057 12054 12063 54 12051 12048 + 12054 10 12051 12048 12087 22 12048 12054 12057 7 + 12048 12054 12060 7 12045 12042 12048 23 12042 12048 + 12051 24 12129 12126 12132 43 12126 12132 12135 44 + 12123 12120 12126 45 12120 12126 12129 46 12117 12120 + 12123 49 12114 12132 12135 53 12111 12105 12114 54 + 12108 12105 12111 8 12108 12105 12114 54 12102 12099 + 12105 10 12102 12099 12138 22 12099 12105 12108 7 + 12099 12105 12111 7 12096 12093 12099 23 12093 12099 + 12102 24 12342 12267 12345 90 12315 12228 12318 4 + 12306 12198 12309 58 12279 12159 12282 4 12276 12273 + 12351 91 12273 12270 12348 92 12273 12276 12354 93 + 12270 12273 12351 95 12261 12267 12342 98 12261 12267 + 12345 98 12258 12255 12339 93 12258 12270 12348 92 + 12252 12249 12336 104 12252 12276 12354 106 12252 12255 + 12339 106 12249 12243 12330 10 12246 12243 12330 34 + 12243 12237 12324 10 12243 12249 12336 109 12243 12246 + 12333 35 12240 12237 12324 34 12237 12231 12321 10 + 12237 12243 12330 10 12237 12240 12327 35 12234 12231 + 12321 111 12234 12249 12336 113 12231 12228 12318 10 + 12231 12228 12315 10 12231 12237 12324 10 12228 12231 + 12321 10 12225 12228 12318 111 12225 12228 12315 111 + 12207 12204 12312 119 12201 12204 12312 119 12195 12198 + 12306 60 12195 12198 12309 60 12189 12186 12303 128 + 12183 12180 12300 133 12183 12186 12303 135 12180 12174 + 12294 10 12177 12174 12294 34 12174 12168 12288 10 + 12174 12180 12300 109 12174 12177 12297 35 12171 12168 + 12288 34 12168 12162 12285 10 12168 12174 12294 10 + 12168 12171 12291 35 12165 12162 12285 111 12165 12180 + 12300 113 12162 12159 12279 10 12162 12159 12282 10 + 12162 12168 12288 10 12159 12162 12285 10 12156 12159 + 12279 111 12156 12159 12282 111 12396 12393 12423 143 + 12393 12396 12426 143 12390 12387 12420 143 12390 12393 + 12423 143 12384 12387 12420 143 12381 12396 12426 143 + 12372 12369 12411 143 12369 12372 12414 143 12366 12363 + 12408 143 12366 12369 12411 143 12360 12363 12408 143 + 12360 12378 12417 148 12357 12372 12414 143 +%FLAG ANGLES_WITHOUT_HYDROGEN +%FORMAT(10I8) + 54 51 57 1 51 57 63 3 27 36 + 39 6 18 12 51 9 18 27 36 11 + 12 18 27 14 12 51 54 15 12 51 + 57 16 0 12 18 20 0 12 51 21 + 75 72 78 1 72 78 84 3 63 72 + 75 15 63 72 78 16 57 63 72 25 + 135 132 138 1 132 138 144 3 114 120 + 126 27 108 114 120 27 102 99 126 27 + 102 108 114 27 99 102 108 27 99 126 + 120 27 90 84 132 9 90 99 102 29 + 90 99 126 29 84 90 99 30 84 132 + 135 15 84 132 138 16 78 84 90 31 + 78 84 132 25 192 189 195 1 189 195 + 201 3 165 159 177 14 150 144 189 9 + 150 159 165 14 150 159 177 14 144 150 + 159 14 144 189 192 15 144 189 195 16 + 138 144 150 31 138 144 189 25 222 219 + 225 1 219 225 231 3 207 201 219 9 + 201 219 222 15 201 219 225 16 195 201 + 207 31 195 201 219 25 243 240 246 1 + 240 246 252 3 231 240 243 15 231 240 + 246 16 225 231 240 25 309 306 312 1 + 306 312 318 3 276 285 294 20 267 276 + 285 14 258 252 306 9 258 267 276 14 + 252 258 267 14 252 306 309 15 252 306 + 312 16 246 252 258 31 246 252 306 25 + 375 372 378 1 372 378 384 3 342 351 + 360 20 333 342 351 14 324 318 372 9 + 324 333 342 14 318 324 333 14 318 372 + 375 15 318 372 378 16 312 318 324 31 + 312 318 372 25 432 429 435 1 429 435 + 441 3 396 390 408 14 390 384 429 9 + 390 408 417 14 384 390 396 14 384 390 + 408 14 384 429 432 15 384 429 435 16 + 378 384 390 31 378 384 429 25 489 486 + 492 1 486 492 498 3 462 456 474 14 + 447 441 486 9 447 456 462 14 447 456 + 474 14 441 447 456 14 441 486 489 15 + 441 486 492 16 435 441 447 31 435 441 + 486 25 546 543 549 1 543 549 555 3 + 510 504 522 14 504 498 543 9 504 522 + 531 14 498 504 510 14 498 504 522 14 + 498 543 546 15 498 543 549 16 492 498 + 504 31 492 498 543 25 588 585 591 1 + 585 591 597 3 567 561 579 33 561 555 + 585 9 555 561 567 14 555 561 579 33 + 555 585 588 15 555 585 591 16 549 555 + 561 31 549 555 585 25 609 606 612 1 + 606 612 618 3 597 606 609 15 597 606 + 612 16 591 597 606 25 666 663 669 1 + 663 669 675 3 639 633 651 14 624 618 + 663 9 624 633 639 14 624 633 651 14 + 618 624 633 14 618 663 666 15 618 663 + 669 16 612 618 624 31 612 618 663 25 + 723 720 726 1 720 726 732 3 696 690 + 708 14 681 675 720 9 681 690 696 14 + 681 690 708 14 675 681 690 14 675 720 + 723 15 675 720 726 16 669 675 681 31 + 669 675 720 25 756 753 759 1 753 759 + 765 3 738 732 753 9 732 738 747 33 + 732 753 756 15 732 753 759 16 726 732 + 738 31 726 732 753 25 798 795 801 1 + 795 801 807 3 783 780 786 1 771 765 + 795 9 771 780 783 15 771 780 786 16 + 765 771 780 9 765 795 798 15 765 795 + 801 16 759 765 771 31 759 765 795 25 + 864 861 867 1 861 867 873 3 831 840 + 849 20 822 831 840 14 813 807 861 9 + 813 822 831 14 807 813 822 14 807 861 + 864 15 807 861 867 16 801 807 813 31 + 801 807 861 25 897 894 900 1 894 900 + 906 3 879 873 894 9 873 879 888 33 + 873 894 897 15 873 894 900 16 867 873 + 879 31 867 873 894 25 954 951 957 1 + 951 957 963 3 918 912 930 14 912 906 + 951 9 912 930 939 14 906 912 918 14 + 906 912 930 14 906 951 954 15 906 951 + 957 16 900 906 912 31 900 906 951 25 + 984 981 987 1 981 987 993 3 969 963 + 981 9 963 981 984 15 963 981 987 16 + 957 963 969 31 957 963 981 25 1047 1044 + 1050 1 1044 1050 1056 3 1026 1023 1032 38 + 1023 1032 1038 41 1017 1023 1026 38 1017 1023 + 1032 42 1011 1008 1038 27 1011 1017 1023 41 + 1008 1011 1017 27 1008 1038 1032 27 999 993 + 1044 9 999 1008 1011 29 999 1008 1038 29 + 993 999 1008 30 993 1044 1047 15 993 1044 + 1050 16 987 993 999 31 987 993 1044 25 + 1068 1065 1071 1 1065 1071 1077 3 1056 1065 + 1068 15 1056 1065 1071 16 1050 1056 1065 25 + 1125 1122 1128 1 1122 1128 1134 3 1089 1083 + 1101 14 1083 1077 1122 9 1083 1101 1110 14 + 1077 1083 1089 14 1077 1083 1101 14 1077 1122 + 1125 15 1077 1122 1128 16 1071 1077 1083 31 + 1071 1077 1122 25 1155 1152 1158 1 1152 1158 + 1164 3 1140 1134 1152 9 1134 1152 1155 15 + 1134 1152 1158 16 1128 1134 1140 31 1128 1134 + 1152 25 1221 1218 1224 1 1218 1224 1230 3 + 1188 1197 1206 20 1179 1188 1197 14 1170 1164 + 1218 9 1170 1179 1188 14 1164 1170 1179 14 + 1164 1218 1221 15 1164 1218 1224 16 1158 1164 + 1170 31 1158 1164 1218 25 1251 1248 1254 1 + 1248 1254 1260 3 1236 1230 1248 9 1230 1248 + 1251 15 1230 1248 1254 16 1224 1230 1236 31 + 1224 1230 1248 25 1302 1299 1305 1 1299 1305 + 1311 3 1275 1284 1287 6 1266 1260 1299 9 + 1266 1275 1284 11 1260 1266 1275 14 1260 1299 + 1302 15 1260 1299 1305 16 1254 1260 1266 31 + 1254 1260 1299 25 1353 1350 1356 1 1350 1356 + 1362 3 1332 1338 1344 47 1329 1326 1344 48 + 1329 1332 1338 50 1326 1329 1332 51 1326 1344 + 1338 52 1317 1311 1350 9 1317 1326 1329 55 + 1317 1326 1344 56 1311 1317 1326 57 1311 1350 + 1353 15 1311 1350 1356 16 1305 1311 1317 31 + 1305 1311 1350 25 1425 1422 1428 1 1422 1428 + 1434 3 1404 1401 1413 59 1395 1401 1404 59 + 1395 1401 1413 59 1386 1395 1401 63 1377 1386 + 1395 64 1368 1362 1422 9 1368 1377 1386 14 + 1362 1368 1377 14 1362 1422 1425 15 1362 1422 + 1428 16 1356 1362 1368 31 1356 1362 1422 25 + 1470 1467 1473 1 1467 1473 1479 3 1461 1458 + 1464 65 1449 1458 1461 66 1449 1458 1464 66 + 1440 1434 1467 9 1440 1449 1458 9 1434 1440 + 1449 14 1434 1467 1470 15 1434 1467 1473 16 + 1428 1434 1440 31 1428 1434 1467 25 1491 1488 + 1494 1 1488 1494 1500 3 1479 1488 1491 15 + 1479 1488 1494 16 1473 1479 1488 25 1521 1518 + 1524 1 1518 1524 1530 3 1506 1500 1518 9 + 1500 1518 1521 15 1500 1518 1524 16 1494 1500 + 1506 31 1494 1500 1518 25 1566 1563 1569 1 + 1563 1569 1575 3 1557 1554 1560 65 1545 1554 + 1557 66 1545 1554 1560 66 1536 1530 1563 9 + 1536 1545 1554 9 1530 1536 1545 14 1530 1563 + 1566 15 1530 1563 1569 16 1524 1530 1536 31 + 1524 1530 1563 25 1623 1620 1626 1 1620 1626 + 1632 3 1596 1590 1608 14 1581 1575 1620 9 + 1581 1590 1596 14 1581 1590 1608 14 1575 1581 + 1590 14 1575 1620 1623 15 1575 1620 1626 16 + 1569 1575 1581 31 1569 1575 1620 25 1653 1650 + 1656 1 1650 1656 1662 3 1638 1632 1650 9 + 1632 1650 1653 15 1632 1650 1656 16 1626 1632 + 1638 31 1626 1632 1650 25 1713 1710 1716 1 + 1710 1716 1722 3 1692 1698 1704 27 1686 1692 + 1698 27 1680 1677 1704 27 1680 1686 1692 27 + 1677 1680 1686 27 1677 1704 1698 27 1668 1662 + 1710 9 1668 1677 1680 29 1668 1677 1704 29 + 1662 1668 1677 30 1662 1710 1713 15 1662 1710 + 1716 16 1656 1662 1668 31 1656 1662 1710 25 + 1755 1752 1758 1 1752 1758 1764 3 1734 1728 + 1746 33 1728 1722 1752 9 1722 1728 1734 14 + 1722 1728 1746 33 1722 1752 1755 15 1722 1752 + 1758 16 1716 1722 1728 31 1716 1722 1752 25 + 1818 1815 1821 1 1815 1821 1827 3 1797 1794 + 1803 38 1794 1803 1809 41 1788 1794 1797 38 + 1788 1794 1803 42 1782 1779 1809 27 1782 1788 + 1794 41 1779 1782 1788 27 1779 1809 1803 27 + 1770 1764 1815 9 1770 1779 1782 29 1770 1779 + 1809 29 1764 1770 1779 30 1764 1815 1818 15 + 1764 1815 1821 16 1758 1764 1770 31 1758 1764 + 1815 25 1866 1863 1869 1 1863 1869 1875 3 + 1839 1833 1851 14 1833 1827 1863 9 1827 1833 + 1839 14 1827 1833 1851 14 1827 1863 1866 15 + 1827 1863 1869 16 1821 1827 1833 31 1821 1827 + 1863 25 1887 1884 1890 1 1884 1890 1896 3 + 1875 1884 1887 15 1875 1884 1890 16 1869 1875 + 1884 25 1938 1935 1941 1 1935 1941 1947 3 + 1923 1920 1926 1 1911 1920 1923 15 1911 1920 + 1926 16 1902 1896 1935 9 1902 1911 1920 9 + 1896 1902 1911 14 1896 1935 1938 15 1896 1935 + 1941 16 1890 1896 1902 31 1890 1896 1935 25 + 1998 1995 2001 1 1995 2001 2007 3 1977 1983 + 1989 27 1971 1977 1983 27 1965 1962 1989 27 + 1965 1971 1977 27 1962 1965 1971 27 1962 1989 + 1983 27 1953 1947 1995 9 1953 1962 1965 29 + 1953 1962 1989 29 1947 1953 1962 30 1947 1995 + 1998 15 1947 1995 2001 16 1941 1947 1953 31 + 1941 1947 1995 25 2064 2061 2067 1 2061 2067 + 2073 3 2031 2040 2049 20 2022 2031 2040 14 + 2013 2007 2061 9 2013 2022 2031 14 2007 2013 + 2022 14 2007 2061 2064 15 2007 2061 2067 16 + 2001 2007 2013 31 2001 2007 2061 25 2100 2097 + 2103 1 2097 2103 2109 3 2091 2088 2094 65 + 2079 2073 2097 9 2079 2088 2091 66 2079 2088 + 2094 66 2073 2079 2088 9 2073 2097 2100 15 + 2073 2097 2103 16 2067 2073 2079 31 2067 2073 + 2097 25 2172 2169 2175 1 2169 2175 2181 3 + 2151 2148 2160 59 2142 2148 2151 59 2142 2148 + 2160 59 2133 2142 2148 63 2124 2133 2142 64 + 2115 2109 2169 9 2115 2124 2133 14 2109 2115 + 2124 14 2109 2169 2172 15 2109 2169 2175 16 + 2103 2109 2115 31 2103 2109 2169 25 2220 2217 + 2223 1 2217 2223 2229 3 2193 2187 2205 14 + 2187 2181 2217 9 2181 2187 2193 14 2181 2187 + 2205 14 2181 2217 2220 15 2181 2217 2223 16 + 2175 2181 2187 31 2175 2181 2217 25 2265 2262 + 2268 1 2262 2268 2274 3 2256 2253 2259 65 + 2244 2253 2256 66 2244 2253 2259 66 2235 2229 + 2262 9 2235 2244 2253 9 2229 2235 2244 14 + 2229 2262 2265 15 2229 2262 2268 16 2223 2229 + 2235 31 2223 2229 2262 25 2331 2328 2334 1 + 2328 2334 2340 3 2298 2307 2316 20 2289 2298 + 2307 14 2280 2274 2328 9 2280 2289 2298 14 + 2274 2280 2289 14 2274 2328 2331 15 2274 2328 + 2334 16 2268 2274 2280 31 2268 2274 2328 25 + 2388 2385 2391 1 2385 2391 2397 3 2361 2355 + 2373 14 2346 2340 2385 9 2346 2355 2361 14 + 2346 2355 2373 14 2340 2346 2355 14 2340 2385 + 2388 15 2340 2385 2391 16 2334 2340 2346 31 + 2334 2340 2385 25 2421 2418 2424 1 2418 2424 + 2430 3 2403 2397 2418 9 2397 2403 2412 69 + 2397 2418 2421 15 2397 2418 2424 16 2391 2397 + 2403 31 2391 2397 2418 25 2451 2448 2454 1 + 2448 2454 2460 3 2436 2430 2448 9 2430 2448 + 2451 15 2430 2448 2454 16 2424 2430 2436 31 + 2424 2430 2448 25 2496 2493 2499 1 2493 2499 + 2505 3 2487 2484 2490 65 2475 2484 2487 66 + 2475 2484 2490 66 2466 2460 2493 9 2466 2475 + 2484 9 2460 2466 2475 14 2460 2493 2496 15 + 2460 2493 2499 16 2454 2460 2466 31 2454 2460 + 2493 25 2556 2553 2559 1 2553 2559 2565 3 + 2535 2541 2547 27 2529 2535 2541 27 2523 2520 + 2547 27 2523 2529 2535 27 2520 2523 2529 27 + 2520 2547 2541 27 2511 2505 2553 9 2511 2520 + 2523 29 2511 2520 2547 29 2505 2511 2520 30 + 2505 2553 2556 15 2505 2553 2559 16 2499 2505 + 2511 31 2499 2505 2553 25 2598 2595 2601 1 + 2595 2601 2604 3 2595 2601 2631 3 2583 2580 + 2586 1 2571 2565 2595 9 2571 2580 2583 15 + 2571 2580 2586 16 2565 2571 2580 9 2565 2595 + 2598 15 2565 2595 2601 16 2559 2565 2571 31 + 2559 2565 2595 25 2640 2637 2643 1 2637 2643 + 2649 3 2631 2637 2640 15 2631 2637 2643 16 + 2622 2631 2637 9 2613 2622 2631 14 2604 2601 + 2631 70 2604 2613 2622 14 2601 2604 2613 31 + 2601 2631 2622 31 2601 2631 2637 25 2670 2667 + 2673 1 2667 2673 2679 3 2655 2649 2667 9 + 2649 2667 2670 15 2649 2667 2673 16 2643 2649 + 2655 31 2643 2649 2667 25 2700 2697 2703 1 + 2697 2703 2709 3 2685 2679 2697 9 2679 2697 + 2700 15 2679 2697 2703 16 2673 2679 2685 31 + 2673 2679 2697 25 2748 2745 2751 1 2745 2751 + 2757 3 2721 2715 2733 14 2715 2709 2745 9 + 2709 2715 2721 14 2709 2715 2733 14 2709 2745 + 2748 15 2709 2745 2751 16 2703 2709 2715 31 + 2703 2709 2745 25 2805 2802 2808 1 2802 2808 + 2811 3 2802 2808 2838 3 2778 2772 2790 14 + 2763 2757 2802 9 2763 2772 2778 14 2763 2772 + 2790 14 2757 2763 2772 14 2757 2802 2805 15 + 2757 2802 2808 16 2751 2757 2763 31 2751 2757 + 2802 25 2847 2844 2850 1 2844 2850 2856 3 + 2838 2844 2847 15 2838 2844 2850 16 2829 2838 + 2844 9 2820 2829 2838 14 2811 2808 2838 70 + 2811 2820 2829 14 2808 2811 2820 31 2808 2838 + 2829 31 2808 2838 2844 25 2880 2877 2883 1 + 2877 2883 2889 3 2862 2856 2877 9 2856 2862 + 2871 69 2856 2877 2880 15 2856 2877 2883 16 + 2850 2856 2862 31 2850 2856 2877 25 2916 2913 + 2919 1 2913 2919 2925 3 2907 2904 2910 65 + 2895 2889 2913 9 2895 2904 2907 66 2895 2904 + 2910 66 2889 2895 2904 9 2889 2913 2916 15 + 2889 2913 2919 16 2883 2889 2895 31 2883 2889 + 2913 25 2964 2961 2967 1 2961 2967 2973 3 + 2937 2931 2949 14 2931 2925 2961 9 2925 2931 + 2937 14 2925 2931 2949 14 2925 2961 2964 15 + 2925 2961 2967 16 2919 2925 2931 31 2919 2925 + 2961 25 3021 3018 3024 1 3018 3024 3030 3 + 2985 2979 2997 14 2979 2973 3018 9 2979 2997 + 3006 14 2973 2979 2985 14 2973 2979 2997 14 + 2973 3018 3021 15 2973 3018 3024 16 2967 2973 + 2979 31 2967 2973 3018 25 3054 3051 3057 1 + 3051 3057 3063 3 3036 3030 3051 9 3030 3036 + 3045 33 3030 3051 3054 15 3030 3051 3057 16 + 3024 3030 3036 31 3024 3030 3051 25 3090 3087 + 3093 1 3087 3093 3099 3 3081 3078 3084 65 + 3069 3063 3087 9 3069 3078 3081 66 3069 3078 + 3084 66 3063 3069 3078 9 3063 3087 3090 15 + 3063 3087 3093 16 3057 3063 3069 31 3057 3063 + 3087 25 3141 3138 3144 1 3138 3144 3150 3 + 3126 3123 3129 1 3114 3123 3126 15 3114 3123 + 3129 16 3105 3099 3138 9 3105 3114 3123 9 + 3099 3105 3114 14 3099 3138 3141 15 3099 3138 + 3144 16 3093 3099 3105 31 3093 3099 3138 25 + 3186 3183 3189 1 3183 3189 3195 3 3177 3174 + 3180 65 3165 3174 3177 66 3165 3174 3180 66 + 3156 3150 3183 9 3156 3165 3174 9 3150 3156 + 3165 14 3150 3183 3186 15 3150 3183 3189 16 + 3144 3150 3156 31 3144 3150 3183 25 3243 3240 + 3246 1 3240 3246 3252 3 3207 3201 3219 14 + 3201 3195 3240 9 3201 3219 3228 14 3195 3201 + 3207 14 3195 3201 3219 14 3195 3240 3243 15 + 3195 3240 3246 16 3189 3195 3201 31 3189 3195 + 3240 25 3309 3306 3312 1 3306 3312 3318 3 + 3276 3285 3294 20 3267 3276 3285 14 3258 3252 + 3306 9 3258 3267 3276 14 3252 3258 3267 14 + 3252 3306 3309 15 3252 3306 3312 16 3246 3252 + 3258 31 3246 3252 3306 25 3345 3342 3348 1 + 3342 3348 3354 3 3336 3333 3339 65 3324 3318 + 3342 9 3324 3333 3336 66 3324 3333 3339 66 + 3318 3324 3333 9 3318 3342 3345 15 3318 3342 + 3348 16 3312 3318 3324 31 3312 3318 3342 25 + 3402 3399 3405 1 3399 3405 3411 3 3375 3369 + 3387 14 3360 3354 3399 9 3360 3369 3375 14 + 3360 3369 3387 14 3354 3360 3369 14 3354 3399 + 3402 15 3354 3399 3405 16 3348 3354 3360 31 + 3348 3354 3399 25 3462 3459 3465 1 3459 3465 + 3471 3 3441 3447 3453 27 3435 3441 3447 27 + 3429 3426 3453 27 3429 3435 3441 27 3426 3429 + 3435 27 3426 3453 3447 27 3417 3411 3459 9 + 3417 3426 3429 29 3417 3426 3453 29 3411 3417 + 3426 30 3411 3459 3462 15 3411 3459 3465 16 + 3405 3411 3417 31 3405 3411 3459 25 3510 3507 + 3513 1 3507 3513 3519 3 3483 3477 3495 14 + 3477 3471 3507 9 3471 3477 3483 14 3471 3477 + 3495 14 3471 3507 3510 15 3471 3507 3513 16 + 3465 3471 3477 31 3465 3471 3507 25 3555 3552 + 3558 1 3552 3558 3564 3 3546 3543 3549 65 + 3534 3543 3546 66 3534 3543 3549 66 3525 3519 + 3552 9 3525 3534 3543 9 3519 3525 3534 14 + 3519 3552 3555 15 3519 3552 3558 16 3513 3519 + 3525 31 3513 3519 3552 25 3612 3609 3615 1 + 3609 3615 3621 3 3585 3579 3597 14 3570 3564 + 3609 9 3570 3579 3585 14 3570 3579 3597 14 + 3564 3570 3579 14 3564 3609 3612 15 3564 3609 + 3615 16 3558 3564 3570 31 3558 3564 3609 25 + 3633 3630 3636 1 3630 3636 3642 3 3621 3630 + 3633 15 3621 3630 3636 16 3615 3621 3630 25 + 3699 3696 3702 1 3696 3702 3708 3 3666 3675 + 3684 20 3657 3666 3675 14 3648 3642 3696 9 + 3648 3657 3666 14 3642 3648 3657 14 3642 3696 + 3699 15 3642 3696 3702 16 3636 3642 3648 31 + 3636 3642 3696 25 3747 3744 3750 1 3744 3750 + 3756 3 3720 3714 3732 14 3714 3708 3744 9 + 3708 3714 3720 14 3708 3714 3732 14 3708 3744 + 3747 15 3708 3744 3750 16 3702 3708 3714 31 + 3702 3708 3744 25 3819 3816 3822 1 3816 3822 + 3828 3 3801 3807 3813 72 3795 3801 3807 27 + 3789 3786 3813 73 3789 3795 3801 27 3786 3789 + 3795 75 3786 3813 3807 76 3780 3786 3789 78 + 3780 3786 3813 79 3774 3771 3813 80 3774 3780 + 3786 81 3771 3774 3780 83 3771 3813 3786 84 + 3771 3813 3807 85 3762 3756 3816 9 3762 3771 + 3774 87 3762 3771 3813 88 3756 3762 3771 89 + 3756 3816 3819 15 3756 3816 3822 16 3750 3756 + 3762 31 3750 3756 3816 25 3855 3852 3858 1 + 3852 3858 3864 3 3846 3843 3849 65 3834 3828 + 3852 9 3834 3843 3846 66 3834 3843 3849 66 + 3828 3834 3843 9 3828 3852 3855 15 3828 3852 + 3858 16 3822 3828 3834 31 3822 3828 3852 25 + 3876 3873 3879 1 3873 3879 3885 3 3864 3873 + 3876 15 3864 3873 3879 16 3858 3864 3873 25 + 3933 3930 3936 1 3930 3936 3942 3 3906 3900 + 3918 14 3891 3885 3930 9 3891 3900 3906 14 + 3891 3900 3918 14 3885 3891 3900 14 3885 3930 + 3933 15 3885 3930 3936 16 3879 3885 3891 31 + 3879 3885 3930 25 3969 3966 3972 1 3966 3972 + 3978 3 3960 3957 3963 65 3948 3942 3966 9 + 3948 3957 3960 66 3948 3957 3963 66 3942 3948 + 3957 9 3942 3966 3969 15 3942 3966 3972 16 + 3936 3942 3948 31 3936 3942 3966 25 3999 3996 + 4002 1 3996 4002 4008 3 3984 3978 3996 9 + 3978 3996 3999 15 3978 3996 4002 16 3972 3978 + 3984 31 3972 3978 3996 25 4056 4053 4059 1 + 4053 4059 4065 3 4020 4014 4032 14 4014 4008 + 4053 9 4014 4032 4041 14 4008 4014 4020 14 + 4008 4014 4032 14 4008 4053 4056 15 4008 4053 + 4059 16 4002 4008 4014 31 4002 4008 4053 25 + 4104 4101 4107 1 4101 4107 4113 3 4077 4071 + 4089 14 4071 4065 4101 9 4065 4071 4077 14 + 4065 4071 4089 14 4065 4101 4104 15 4065 4101 + 4107 16 4059 4065 4071 31 4059 4065 4101 25 + 4155 4152 4158 1 4152 4158 4164 3 4134 4140 + 4146 47 4131 4128 4146 48 4131 4134 4140 50 + 4128 4131 4134 51 4128 4146 4140 52 4119 4113 + 4152 9 4119 4128 4131 55 4119 4128 4146 56 + 4113 4119 4128 57 4113 4152 4155 15 4113 4152 + 4158 16 4107 4113 4119 31 4107 4113 4152 25 + 4188 4185 4191 1 4185 4191 4197 3 4170 4164 + 4185 9 4164 4170 4179 33 4164 4185 4188 15 + 4164 4185 4191 16 4158 4164 4170 31 4158 4164 + 4185 25 4245 4242 4248 1 4242 4248 4254 3 + 4209 4203 4221 14 4203 4197 4242 9 4203 4221 + 4230 14 4197 4203 4209 14 4197 4203 4221 14 + 4197 4242 4245 15 4197 4242 4248 16 4191 4197 + 4203 31 4191 4197 4242 25 4275 4272 4278 1 + 4272 4278 4284 3 4260 4254 4272 9 4254 4272 + 4275 15 4254 4272 4278 16 4248 4254 4260 31 + 4248 4254 4272 25 4335 4332 4338 1 4332 4338 + 4344 3 4314 4320 4326 27 4308 4314 4320 27 + 4302 4299 4326 27 4302 4308 4314 27 4299 4302 + 4308 27 4299 4326 4320 27 4290 4284 4332 9 + 4290 4299 4302 29 4290 4299 4326 29 4284 4290 + 4299 30 4284 4332 4335 15 4284 4332 4338 16 + 4278 4284 4290 31 4278 4284 4332 25 4365 4362 + 4368 1 4362 4368 4371 3 4362 4368 4398 3 + 4350 4344 4362 9 4344 4362 4365 15 4344 4362 + 4368 16 4338 4344 4350 31 4338 4344 4362 25 + 4407 4404 4410 1 4404 4410 4416 3 4398 4404 + 4407 15 4398 4404 4410 16 4389 4398 4404 9 + 4380 4389 4398 14 4371 4368 4398 70 4371 4380 + 4389 14 4368 4371 4380 31 4368 4398 4389 31 + 4368 4398 4404 25 4479 4476 4482 1 4476 4482 + 4488 3 4458 4455 4467 59 4449 4455 4458 59 + 4449 4455 4467 59 4440 4449 4455 63 4431 4440 + 4449 64 4422 4416 4476 9 4422 4431 4440 14 + 4416 4422 4431 14 4416 4476 4479 15 4416 4476 + 4482 16 4410 4416 4422 31 4410 4416 4476 25 + 4515 4512 4518 1 4512 4518 4524 3 4506 4503 + 4509 65 4494 4488 4512 9 4494 4503 4506 66 + 4494 4503 4509 66 4488 4494 4503 9 4488 4512 + 4515 15 4488 4512 4518 16 4482 4488 4494 31 + 4482 4488 4512 25 4566 4563 4569 1 4563 4569 + 4575 3 4551 4548 4554 1 4539 4548 4551 15 + 4539 4548 4554 16 4530 4524 4563 9 4530 4539 + 4548 9 4524 4530 4539 14 4524 4563 4566 15 + 4524 4563 4569 16 4518 4524 4530 31 4518 4524 + 4563 25 4623 4620 4626 1 4620 4626 4632 3 + 4596 4590 4608 14 4581 4575 4620 9 4581 4590 + 4596 14 4581 4590 4608 14 4575 4581 4590 14 + 4575 4620 4623 15 4575 4620 4626 16 4569 4575 + 4581 31 4569 4575 4620 25 4668 4665 4671 1 + 4665 4671 4677 3 4659 4656 4662 65 4647 4656 + 4659 66 4647 4656 4662 66 4638 4632 4665 9 + 4638 4647 4656 9 4632 4638 4647 14 4632 4665 + 4668 15 4632 4665 4671 16 4626 4632 4638 31 + 4626 4632 4665 25 4689 4686 4692 1 4686 4692 + 4698 3 4677 4686 4689 15 4677 4686 4692 16 + 4671 4677 4686 25 4731 4728 4734 1 4728 4734 + 4740 3 4716 4713 4719 1 4704 4698 4728 9 + 4704 4713 4716 15 4704 4713 4719 16 4698 4704 + 4713 9 4698 4728 4731 15 4698 4728 4734 16 + 4692 4698 4704 31 4692 4698 4728 25 4791 4788 + 4794 1 4788 4794 4800 3 4770 4776 4782 27 + 4764 4770 4776 27 4758 4755 4782 27 4758 4764 + 4770 27 4755 4758 4764 27 4755 4782 4776 27 + 4746 4740 4788 9 4746 4755 4758 29 4746 4755 + 4782 29 4740 4746 4755 30 4740 4788 4791 15 + 4740 4788 4794 16 4734 4740 4746 31 4734 4740 + 4788 25 4848 4845 4851 1 4845 4851 4857 3 + 4812 4806 4824 14 4806 4800 4845 9 4806 4824 + 4833 14 4800 4806 4812 14 4800 4806 4824 14 + 4800 4845 4848 15 4800 4845 4851 16 4794 4800 + 4806 31 4794 4800 4845 25 4884 4881 4887 1 + 4881 4887 4893 3 4875 4872 4878 65 4863 4857 + 4881 9 4863 4872 4875 66 4863 4872 4878 66 + 4857 4863 4872 9 4857 4881 4884 15 4857 4881 + 4887 16 4851 4857 4863 31 4851 4857 4881 25 + 4917 4914 4920 1 4914 4920 4926 3 4899 4893 + 4914 9 4893 4899 4908 69 4893 4914 4917 15 + 4893 4914 4920 16 4887 4893 4899 31 4887 4893 + 4914 25 4965 4962 4968 1 4962 4968 4974 3 + 4938 4932 4950 14 4932 4926 4962 9 4926 4932 + 4938 14 4926 4932 4950 14 4926 4962 4965 15 + 4926 4962 4968 16 4920 4926 4932 31 4920 4926 + 4962 25 5007 5004 5010 1 5004 5010 5016 3 + 4986 4980 4998 33 4980 4974 5004 9 4974 4980 + 4986 14 4974 4980 4998 33 4974 5004 5007 15 + 4974 5004 5010 16 4968 4974 4980 31 4968 4974 + 5004 25 5079 5076 5082 1 5076 5082 5088 3 + 5058 5055 5067 59 5049 5055 5058 59 5049 5055 + 5067 59 5040 5049 5055 63 5031 5040 5049 64 + 5022 5016 5076 9 5022 5031 5040 14 5016 5022 + 5031 14 5016 5076 5079 15 5016 5076 5082 16 + 5010 5016 5022 31 5010 5016 5076 25 5124 5121 + 5127 1 5121 5127 5133 3 5115 5112 5118 65 + 5103 5112 5115 66 5103 5112 5118 66 5094 5088 + 5121 9 5094 5103 5112 9 5088 5094 5103 14 + 5088 5121 5124 15 5088 5121 5127 16 5082 5088 + 5094 31 5082 5088 5121 25 5145 5142 5148 1 + 5142 5148 5154 3 5133 5142 5145 15 5133 5142 + 5148 16 5127 5133 5142 25 5205 5202 5208 1 + 5202 5208 5214 3 5184 5190 5196 27 5178 5184 + 5190 27 5172 5169 5196 27 5172 5178 5184 27 + 5169 5172 5178 27 5169 5196 5190 27 5160 5154 + 5202 9 5160 5169 5172 29 5160 5169 5196 29 + 5154 5160 5169 30 5154 5202 5205 15 5154 5202 + 5208 16 5148 5154 5160 31 5148 5154 5202 25 + 5238 5235 5241 1 5235 5241 5247 3 5220 5214 + 5235 9 5214 5220 5229 33 5214 5235 5238 15 + 5214 5235 5241 16 5208 5214 5220 31 5208 5214 + 5235 25 5295 5292 5298 1 5292 5298 5304 3 + 5259 5253 5271 14 5253 5247 5292 9 5253 5271 + 5280 14 5247 5253 5259 14 5247 5253 5271 14 + 5247 5292 5295 15 5247 5292 5298 16 5241 5247 + 5253 31 5241 5247 5292 25 5325 5322 5328 1 + 5322 5328 5334 3 5310 5304 5322 9 5304 5322 + 5325 15 5304 5322 5328 16 5298 5304 5310 31 + 5298 5304 5322 25 5376 5373 5379 1 5373 5379 + 5385 3 5355 5361 5367 47 5352 5349 5367 48 + 5352 5355 5361 50 5349 5352 5355 51 5349 5367 + 5361 52 5340 5334 5373 9 5340 5349 5352 55 + 5340 5349 5367 56 5334 5340 5349 57 5334 5373 + 5376 15 5334 5373 5379 16 5328 5334 5340 31 + 5328 5334 5373 25 5412 5409 5415 1 5409 5415 + 5421 3 5403 5400 5406 65 5391 5385 5409 9 + 5391 5400 5403 66 5391 5400 5406 66 5385 5391 + 5400 9 5385 5409 5412 15 5385 5409 5415 16 + 5379 5385 5391 31 5379 5385 5409 25 5469 5466 + 5472 1 5466 5472 5478 3 5433 5427 5445 14 + 5427 5421 5466 9 5427 5445 5454 14 5421 5427 + 5433 14 5421 5427 5445 14 5421 5466 5469 15 + 5421 5466 5472 16 5415 5421 5427 31 5415 5421 + 5466 25 5502 5499 5505 1 5499 5505 5511 3 + 5484 5478 5499 9 5478 5484 5493 33 5478 5499 + 5502 15 5478 5499 5505 16 5472 5478 5484 31 + 5472 5478 5499 25 5532 5529 5535 1 5529 5535 + 5541 3 5517 5511 5529 9 5511 5529 5532 15 + 5511 5529 5535 16 5505 5511 5517 31 5505 5511 + 5529 25 5595 5592 5598 1 5592 5598 5604 3 + 5574 5571 5580 38 5571 5580 5586 41 5565 5571 + 5574 38 5565 5571 5580 42 5559 5556 5586 27 + 5559 5565 5571 41 5556 5559 5565 27 5556 5586 + 5580 27 5547 5541 5592 9 5547 5556 5559 29 + 5547 5556 5586 29 5541 5547 5556 30 5541 5592 + 5595 15 5541 5592 5598 16 5535 5541 5547 31 + 5535 5541 5592 25 5628 5625 5631 1 5625 5631 + 5637 3 5610 5604 5625 9 5604 5610 5619 33 + 5604 5625 5628 15 5604 5625 5631 16 5598 5604 + 5610 31 5598 5604 5625 25 5688 5685 5691 1 + 5685 5691 5697 3 5667 5673 5679 27 5661 5667 + 5673 27 5655 5652 5679 27 5655 5661 5667 27 + 5652 5655 5661 27 5652 5679 5673 27 5643 5637 + 5685 9 5643 5652 5655 29 5643 5652 5679 29 + 5637 5643 5652 30 5637 5685 5688 15 5637 5685 + 5691 16 5631 5637 5643 31 5631 5637 5685 25 + 5718 5715 5721 1 5715 5721 5727 3 5703 5697 + 5715 9 5697 5715 5718 15 5697 5715 5721 16 + 5691 5697 5703 31 5691 5697 5715 25 5748 5745 + 5751 1 5745 5751 5757 3 5733 5727 5745 9 + 5727 5745 5748 15 5727 5745 5751 16 5721 5727 + 5733 31 5721 5727 5745 25 5805 5802 5808 1 + 5802 5808 5814 3 5778 5772 5790 14 5763 5757 + 5802 9 5763 5772 5778 14 5763 5772 5790 14 + 5757 5763 5772 14 5757 5802 5805 15 5757 5802 + 5808 16 5751 5757 5763 31 5751 5757 5802 25 + 5835 5832 5838 1 5832 5838 5844 3 5820 5814 + 5832 9 5814 5832 5835 15 5814 5832 5838 16 + 5808 5814 5820 31 5808 5814 5832 25 5901 5898 + 5904 1 5898 5904 5910 3 5868 5877 5886 20 + 5859 5868 5877 14 5850 5844 5898 9 5850 5859 + 5868 14 5844 5850 5859 14 5844 5898 5901 15 + 5844 5898 5904 16 5838 5844 5850 31 5838 5844 + 5898 25 5946 5943 5949 1 5943 5949 5955 3 + 5937 5934 5940 65 5925 5934 5937 66 5925 5934 + 5940 66 5916 5910 5943 9 5916 5925 5934 9 + 5910 5916 5925 14 5910 5943 5946 15 5910 5943 + 5949 16 5904 5910 5916 31 5904 5910 5943 25 + 5967 5964 5970 1 5964 5970 5976 3 5955 5964 + 5967 15 5955 5964 5970 16 5949 5955 5964 25 + 6039 6036 6042 1 6036 6042 6048 3 6018 6015 + 6027 59 6009 6015 6018 59 6009 6015 6027 59 + 6000 6009 6015 63 5991 6000 6009 64 5982 5976 + 6036 9 5982 5991 6000 14 5976 5982 5991 14 + 5976 6036 6039 15 5976 6036 6042 16 5970 5976 + 5982 31 5970 5976 6036 25 6072 6069 6075 1 + 6069 6075 6081 3 6054 6048 6069 9 6048 6054 + 6063 33 6048 6069 6072 15 6048 6069 6075 16 + 6042 6048 6054 31 6042 6048 6069 25 6123 6120 + 6126 1 6120 6126 6132 3 6096 6105 6108 6 + 6087 6081 6120 9 6087 6096 6105 11 6081 6087 + 6096 14 6081 6120 6123 15 6081 6120 6126 16 + 6075 6081 6087 31 6075 6081 6120 25 6174 6171 + 6177 1 6171 6177 6183 3 6147 6156 6159 6 + 6138 6132 6171 9 6138 6147 6156 11 6132 6138 + 6147 14 6132 6171 6174 15 6132 6171 6177 16 + 6126 6132 6138 31 6126 6132 6171 25 6240 6237 + 6243 1 6237 6243 6249 3 6207 6216 6225 20 + 6198 6207 6216 14 6189 6183 6237 9 6189 6198 + 6207 14 6183 6189 6198 14 6183 6237 6240 15 + 6183 6237 6243 16 6177 6183 6189 31 6177 6183 + 6237 25 6282 6279 6285 1 6279 6285 6291 3 + 6267 6264 6270 1 6255 6249 6279 9 6255 6264 + 6267 15 6255 6264 6270 16 6249 6255 6264 9 + 6249 6279 6282 15 6249 6279 6285 16 6243 6249 + 6255 31 6243 6249 6279 25 6354 6351 6357 1 + 6351 6357 6363 3 6333 6330 6342 59 6324 6330 + 6333 59 6324 6330 6342 59 6315 6324 6330 63 + 6306 6315 6324 64 6297 6291 6351 9 6297 6306 + 6315 14 6291 6297 6306 14 6291 6351 6354 15 + 6291 6351 6357 16 6285 6291 6297 31 6285 6291 + 6351 25 6396 6393 6399 1 6393 6399 6405 3 + 6381 6378 6384 1 6369 6363 6393 9 6369 6378 + 6381 15 6369 6378 6384 16 6363 6369 6378 9 + 6363 6393 6396 15 6363 6393 6399 16 6357 6363 + 6369 31 6357 6363 6393 25 6426 6423 6429 1 + 6423 6429 6435 3 6411 6405 6423 9 6405 6423 + 6426 15 6405 6423 6429 16 6399 6405 6411 31 + 6399 6405 6423 25 6459 6456 6462 1 6456 6462 + 6468 3 6441 6435 6456 9 6435 6441 6450 33 + 6435 6456 6459 15 6435 6456 6462 16 6429 6435 + 6441 31 6429 6435 6456 25 6510 6507 6513 1 + 6507 6513 6519 3 6483 6492 6495 6 6474 6468 + 6507 9 6474 6483 6492 11 6468 6474 6483 14 + 6468 6507 6510 15 6468 6507 6513 16 6462 6468 + 6474 31 6462 6468 6507 25 6558 6555 6561 1 + 6555 6561 6567 3 6531 6525 6543 14 6525 6519 + 6555 9 6519 6525 6531 14 6519 6525 6543 14 + 6519 6555 6558 15 6519 6555 6561 16 6513 6519 + 6525 31 6513 6519 6555 25 6588 6585 6591 1 + 6585 6591 6597 3 6573 6567 6585 9 6567 6585 + 6588 15 6567 6585 6591 16 6561 6567 6573 31 + 6561 6567 6585 25 6645 6642 6648 1 6642 6648 + 6654 3 6618 6612 6630 14 6603 6597 6642 9 + 6603 6612 6618 14 6603 6612 6630 14 6597 6603 + 6612 14 6597 6642 6645 15 6597 6642 6648 16 + 6591 6597 6603 31 6591 6597 6642 25 6687 6684 + 6690 1 6684 6690 6696 3 6666 6660 6678 33 + 6660 6654 6684 9 6654 6660 6666 14 6654 6660 + 6678 33 6654 6684 6687 15 6654 6684 6690 16 + 6648 6654 6660 31 6648 6654 6684 25 6750 6747 + 6753 1 6747 6753 6759 3 6729 6726 6735 38 + 6726 6735 6741 41 6720 6726 6729 38 6720 6726 + 6735 42 6714 6711 6741 27 6714 6720 6726 41 + 6711 6714 6720 27 6711 6741 6735 27 6702 6696 + 6747 9 6702 6711 6714 29 6702 6711 6741 29 + 6696 6702 6711 30 6696 6747 6750 15 6696 6747 + 6753 16 6690 6696 6702 31 6690 6696 6747 25 + 6807 6804 6810 1 6804 6810 6816 3 6771 6765 + 6783 14 6765 6759 6804 9 6765 6783 6792 14 + 6759 6765 6771 14 6759 6765 6783 14 6759 6804 + 6807 15 6759 6804 6810 16 6753 6759 6765 31 + 6753 6759 6804 25 6828 6825 6831 1 6825 6831 + 6837 3 6816 6825 6828 15 6816 6825 6831 16 + 6810 6816 6825 25 6858 6855 6861 1 6855 6861 + 6867 3 6843 6837 6855 9 6837 6855 6858 15 + 6837 6855 6861 16 6831 6837 6843 31 6831 6837 + 6855 25 6903 6900 6906 1 6900 6906 6912 3 + 6894 6891 6897 65 6882 6891 6894 66 6882 6891 + 6897 66 6873 6867 6900 9 6873 6882 6891 9 + 6867 6873 6882 14 6867 6900 6903 15 6867 6900 + 6906 16 6861 6867 6873 31 6861 6867 6900 25 + 6969 6966 6972 1 6966 6972 6978 3 6936 6945 + 6954 20 6927 6936 6945 14 6918 6912 6966 9 + 6918 6927 6936 14 6912 6918 6927 14 6912 6966 + 6969 15 6912 6966 6972 16 6906 6912 6918 31 + 6906 6912 6966 25 6999 6996 7002 1 6996 7002 + 7008 3 6984 6978 6996 9 6978 6996 6999 15 + 6978 6996 7002 16 6972 6978 6984 31 6972 6978 + 6996 25 7050 7047 7053 1 7047 7053 7056 3 + 7047 7053 7083 3 7023 7032 7035 6 7014 7008 + 7047 9 7014 7023 7032 11 7008 7014 7023 14 + 7008 7047 7050 15 7008 7047 7053 16 7002 7008 + 7014 31 7002 7008 7047 25 7092 7089 7095 1 + 7089 7095 7101 3 7083 7089 7092 15 7083 7089 + 7095 16 7074 7083 7089 9 7065 7074 7083 14 + 7056 7053 7083 70 7056 7065 7074 14 7053 7056 + 7065 31 7053 7083 7074 31 7053 7083 7089 25 + 7125 7122 7128 1 7122 7128 7134 3 7107 7101 + 7122 9 7101 7107 7116 33 7101 7122 7125 15 + 7101 7122 7128 16 7095 7101 7107 31 7095 7101 + 7122 25 7188 7185 7191 1 7185 7191 7197 3 + 7167 7164 7173 38 7164 7173 7179 41 7158 7164 + 7167 38 7158 7164 7173 42 7152 7149 7179 27 + 7152 7158 7164 41 7149 7152 7158 27 7149 7179 + 7173 27 7140 7134 7185 9 7140 7149 7152 29 + 7140 7149 7179 29 7134 7140 7149 30 7134 7185 + 7188 15 7134 7185 7191 16 7128 7134 7140 31 + 7128 7134 7185 25 7230 7227 7233 1 7227 7233 + 7239 3 7215 7212 7218 1 7203 7197 7227 9 + 7203 7212 7215 15 7203 7212 7218 16 7197 7203 + 7212 9 7197 7227 7230 15 7197 7227 7233 16 + 7191 7197 7203 31 7191 7197 7227 25 7272 7269 + 7275 1 7269 7275 7281 3 7251 7245 7263 33 + 7245 7239 7269 9 7239 7245 7251 14 7239 7245 + 7263 33 7239 7269 7272 15 7239 7269 7275 16 + 7233 7239 7245 31 7233 7239 7269 25 7323 7320 + 7326 1 7320 7326 7332 3 7296 7305 7308 6 + 7287 7281 7320 9 7287 7296 7305 11 7281 7287 + 7296 14 7281 7320 7323 15 7281 7320 7326 16 + 7275 7281 7287 31 7275 7281 7320 25 7344 7341 + 7347 1 7341 7347 7353 3 7332 7341 7344 15 + 7332 7341 7347 16 7326 7332 7341 25 7392 7389 + 7395 1 7389 7395 7401 3 7365 7359 7377 14 + 7359 7353 7389 9 7353 7359 7365 14 7353 7359 + 7377 14 7353 7389 7392 15 7353 7389 7395 16 + 7347 7353 7359 31 7347 7353 7389 25 7422 7419 + 7425 1 7419 7425 7431 3 7407 7401 7419 9 + 7401 7419 7422 15 7401 7419 7425 16 7395 7401 + 7407 31 7395 7401 7419 25 7488 7485 7491 1 + 7485 7491 7497 3 7455 7464 7473 20 7446 7455 + 7464 14 7437 7431 7485 9 7437 7446 7455 14 + 7431 7437 7446 14 7431 7485 7488 15 7431 7485 + 7491 16 7425 7431 7437 31 7425 7431 7485 25 + 7518 7515 7521 1 7515 7521 7527 3 7503 7497 + 7515 9 7497 7515 7518 15 7497 7515 7521 16 + 7491 7497 7503 31 7491 7497 7515 25 7551 7548 + 7554 1 7548 7554 7560 3 7533 7527 7548 9 + 7527 7533 7542 33 7527 7548 7551 15 7527 7548 + 7554 16 7521 7527 7533 31 7521 7527 7548 25 + 7608 7605 7611 1 7605 7611 7617 3 7581 7575 + 7593 14 7566 7560 7605 9 7566 7575 7581 14 + 7566 7575 7593 14 7560 7566 7575 14 7560 7605 + 7608 15 7560 7605 7611 16 7554 7560 7566 31 + 7554 7560 7605 25 7653 7650 7656 1 7650 7656 + 7662 3 7644 7641 7647 65 7632 7641 7644 66 + 7632 7641 7647 66 7623 7617 7650 9 7623 7632 + 7641 9 7617 7623 7632 14 7617 7650 7653 15 + 7617 7650 7656 16 7611 7617 7623 31 7611 7617 + 7650 25 7683 7680 7686 1 7680 7686 7692 3 + 7668 7662 7680 9 7662 7680 7683 15 7662 7680 + 7686 16 7656 7662 7668 31 7656 7662 7680 25 + 7725 7722 7728 1 7722 7728 7734 3 7704 7698 + 7716 33 7698 7692 7722 9 7692 7698 7704 14 + 7692 7698 7716 33 7692 7722 7725 15 7692 7722 + 7728 16 7686 7692 7698 31 7686 7692 7722 25 + 7773 7770 7776 1 7770 7776 7782 3 7746 7740 + 7758 14 7740 7734 7770 9 7734 7740 7746 14 + 7734 7740 7758 14 7734 7770 7773 15 7734 7770 + 7776 16 7728 7734 7740 31 7728 7734 7770 25 + 7845 7842 7848 1 7842 7848 7854 3 7824 7821 + 7833 59 7815 7821 7824 59 7815 7821 7833 59 + 7806 7815 7821 63 7797 7806 7815 64 7788 7782 + 7842 9 7788 7797 7806 14 7782 7788 7797 14 + 7782 7842 7845 15 7782 7842 7848 16 7776 7782 + 7788 31 7776 7782 7842 25 7908 7905 7911 1 + 7905 7911 7917 3 7887 7884 7893 38 7884 7893 + 7899 41 7878 7884 7887 38 7878 7884 7893 42 + 7872 7869 7899 27 7872 7878 7884 41 7869 7872 + 7878 27 7869 7899 7893 27 7860 7854 7905 9 + 7860 7869 7872 29 7860 7869 7899 29 7854 7860 + 7869 30 7854 7905 7908 15 7854 7905 7911 16 + 7848 7854 7860 31 7848 7854 7905 25 7950 7947 + 7953 1 7947 7953 7959 3 7929 7923 7941 33 + 7923 7917 7947 9 7917 7923 7929 14 7917 7923 + 7941 33 7917 7947 7950 15 7917 7947 7953 16 + 7911 7917 7923 31 7911 7917 7947 25 7980 7977 + 7983 1 7977 7983 7989 3 7965 7959 7977 9 + 7959 7977 7980 15 7959 7977 7983 16 7953 7959 + 7965 31 7953 7959 7977 25 8037 8034 8040 1 + 8034 8040 8046 3 8010 8004 8022 14 7995 7989 + 8034 9 7995 8004 8010 14 7995 8004 8022 14 + 7989 7995 8004 14 7989 8034 8037 15 7989 8034 + 8040 16 7983 7989 7995 31 7983 7989 8034 25 + 8067 8064 8070 1 8064 8070 8076 3 8052 8046 + 8064 9 8046 8064 8067 15 8046 8064 8070 16 + 8040 8046 8052 31 8040 8046 8064 25 8124 8121 + 8127 1 8121 8127 8133 3 8097 8091 8109 14 + 8082 8076 8121 9 8082 8091 8097 14 8082 8091 + 8109 14 8076 8082 8091 14 8076 8121 8124 15 + 8076 8121 8127 16 8070 8076 8082 31 8070 8076 + 8121 25 8145 8142 8148 1 8142 8148 8154 3 + 8133 8142 8145 15 8133 8142 8148 16 8127 8133 + 8142 25 8190 8187 8193 1 8187 8193 8199 3 + 8181 8178 8184 65 8169 8178 8181 66 8169 8178 + 8184 66 8160 8154 8187 9 8160 8169 8178 9 + 8154 8160 8169 14 8154 8187 8190 15 8154 8187 + 8193 16 8148 8154 8160 31 8148 8154 8187 25 + 8226 8223 8229 1 8223 8229 8235 3 8217 8214 + 8220 65 8205 8199 8223 9 8205 8214 8217 66 + 8205 8214 8220 66 8199 8205 8214 9 8199 8223 + 8226 15 8199 8223 8229 16 8193 8199 8205 31 + 8193 8199 8223 25 8247 8244 8250 1 8244 8250 + 8256 3 8235 8244 8247 15 8235 8244 8250 16 + 8229 8235 8244 25 8304 8301 8307 1 8301 8307 + 8313 3 8268 8262 8280 14 8262 8256 8301 9 + 8262 8280 8289 14 8256 8262 8268 14 8256 8262 + 8280 14 8256 8301 8304 15 8256 8301 8307 16 + 8250 8256 8262 31 8250 8256 8301 25 8370 8367 + 8373 1 8367 8373 8379 3 8337 8346 8355 20 + 8328 8337 8346 14 8319 8313 8367 9 8319 8328 + 8337 14 8313 8319 8328 14 8313 8367 8370 15 + 8313 8367 8373 16 8307 8313 8319 31 8307 8313 + 8367 25 8418 8415 8421 1 8415 8421 8427 3 + 8391 8385 8403 14 8385 8379 8415 9 8379 8385 + 8391 14 8379 8385 8403 14 8379 8415 8418 15 + 8379 8415 8421 16 8373 8379 8385 31 8373 8379 + 8415 25 8460 8457 8463 1 8457 8463 8469 3 + 8445 8442 8448 1 8433 8427 8457 9 8433 8442 + 8445 15 8433 8442 8448 16 8427 8433 8442 9 + 8427 8457 8460 15 8427 8457 8463 16 8421 8427 + 8433 31 8421 8427 8457 25 8490 8487 8493 1 + 8487 8493 8499 3 8475 8469 8487 9 8469 8487 + 8490 15 8469 8487 8493 16 8463 8469 8475 31 + 8463 8469 8487 25 8538 8535 8541 1 8535 8541 + 8547 3 8511 8505 8523 14 8505 8499 8535 9 + 8499 8505 8511 14 8499 8505 8523 14 8499 8535 + 8538 15 8499 8535 8541 16 8493 8499 8505 31 + 8493 8499 8535 25 8571 8568 8574 1 8568 8574 + 8580 3 8553 8547 8568 9 8547 8553 8562 33 + 8547 8568 8571 15 8547 8568 8574 16 8541 8547 + 8553 31 8541 8547 8568 25 8601 8598 8604 1 + 8598 8604 8610 3 8586 8580 8598 9 8580 8598 + 8601 15 8580 8598 8604 16 8574 8580 8586 31 + 8574 8580 8598 25 8622 8619 8625 1 8619 8625 + 8628 3 8619 8625 8655 3 8610 8619 8622 15 + 8610 8619 8625 16 8604 8610 8619 25 8664 8661 + 8667 1 8661 8667 8673 3 8655 8661 8664 15 + 8655 8661 8667 16 8646 8655 8661 9 8637 8646 + 8655 14 8628 8625 8655 70 8628 8637 8646 14 + 8625 8628 8637 31 8625 8655 8646 31 8625 8655 + 8661 25 8721 8718 8724 1 8718 8724 8730 3 + 8685 8679 8697 14 8679 8673 8718 9 8679 8697 + 8706 14 8673 8679 8685 14 8673 8679 8697 14 + 8673 8718 8721 15 8673 8718 8724 16 8667 8673 + 8679 31 8667 8673 8718 25 8787 8784 8790 1 + 8784 8790 8796 3 8754 8763 8772 20 8745 8754 + 8763 14 8736 8730 8784 9 8736 8745 8754 14 + 8730 8736 8745 14 8730 8784 8787 15 8730 8784 + 8790 16 8724 8730 8736 31 8724 8730 8784 25 + 8829 8826 8832 1 8826 8832 8838 3 8808 8802 + 8820 33 8802 8796 8826 9 8796 8802 8808 14 + 8796 8802 8820 33 8796 8826 8829 15 8796 8826 + 8832 16 8790 8796 8802 31 8790 8796 8826 25 + 8886 8883 8889 1 8883 8889 8895 3 8859 8853 + 8871 14 8844 8838 8883 9 8844 8853 8859 14 + 8844 8853 8871 14 8838 8844 8853 14 8838 8883 + 8886 15 8838 8883 8889 16 8832 8838 8844 31 + 8832 8838 8883 25 8916 8913 8919 1 8913 8919 + 8925 3 8901 8895 8913 9 8895 8913 8916 15 + 8895 8913 8919 16 8889 8895 8901 31 8889 8895 + 8913 25 8946 8943 8949 1 8943 8949 8955 3 + 8931 8925 8943 9 8925 8943 8946 15 8925 8943 + 8949 16 8919 8925 8931 31 8919 8925 8943 25 + 8979 8976 8982 1 8976 8982 8988 3 8961 8955 + 8976 9 8955 8961 8970 33 8955 8976 8979 15 + 8955 8976 8982 16 8949 8955 8961 31 8949 8955 + 8976 25 9000 8997 9003 1 8997 9003 9009 3 + 8988 8997 9000 15 8988 8997 9003 16 8982 8988 + 8997 25 9057 9054 9060 1 9054 9060 9066 3 + 9021 9015 9033 14 9015 9009 9054 9 9015 9033 + 9042 14 9009 9015 9021 14 9009 9015 9033 14 + 9009 9054 9057 15 9009 9054 9060 16 9003 9009 + 9015 31 9003 9009 9054 25 9090 9087 9093 1 + 9087 9093 9099 3 9072 9066 9087 9 9066 9072 + 9081 33 9066 9087 9090 15 9066 9087 9093 16 + 9060 9066 9072 31 9060 9066 9087 25 9132 9129 + 9135 1 9129 9135 9141 3 9117 9114 9120 1 + 9105 9099 9129 9 9105 9114 9117 15 9105 9114 + 9120 16 9099 9105 9114 9 9099 9129 9132 15 + 9099 9129 9135 16 9093 9099 9105 31 9093 9099 + 9129 25 9192 9189 9195 1 9189 9195 9201 3 + 9171 9177 9183 27 9165 9171 9177 27 9159 9156 + 9183 27 9159 9165 9171 27 9156 9159 9165 27 + 9156 9183 9177 27 9147 9141 9189 9 9147 9156 + 9159 29 9147 9156 9183 29 9141 9147 9156 30 + 9141 9189 9192 15 9141 9189 9195 16 9135 9141 + 9147 31 9135 9141 9189 25 9258 9255 9261 1 + 9255 9261 9267 3 9225 9234 9243 20 9216 9225 + 9234 14 9207 9201 9255 9 9207 9216 9225 14 + 9201 9207 9216 14 9201 9255 9258 15 9201 9255 + 9261 16 9195 9201 9207 31 9195 9201 9255 25 + 9324 9321 9327 1 9321 9327 9333 3 9291 9300 + 9309 20 9282 9291 9300 14 9273 9267 9321 9 + 9273 9282 9291 14 9267 9273 9282 14 9267 9321 + 9324 15 9267 9321 9327 16 9261 9267 9273 31 + 9261 9267 9321 25 9375 9372 9378 1 9372 9378 + 9384 3 9348 9357 9360 6 9339 9333 9372 9 + 9339 9348 9357 11 9333 9339 9348 14 9333 9372 + 9375 15 9333 9372 9378 16 9327 9333 9339 31 + 9327 9333 9372 25 9432 9429 9435 1 9429 9435 + 9441 3 9405 9399 9417 14 9390 9384 9429 9 + 9390 9399 9405 14 9390 9399 9417 14 9384 9390 + 9399 14 9384 9429 9432 15 9384 9429 9435 16 + 9378 9384 9390 31 9378 9384 9429 25 9468 9465 + 9471 1 9465 9471 9477 3 9459 9456 9462 65 + 9447 9441 9465 9 9447 9456 9459 66 9447 9456 + 9462 66 9441 9447 9456 9 9441 9465 9468 15 + 9441 9465 9471 16 9435 9441 9447 31 9435 9441 + 9465 25 9531 9528 9534 1 9528 9534 9540 3 + 9510 9507 9516 38 9507 9516 9522 41 9501 9507 + 9510 38 9501 9507 9516 42 9495 9492 9522 27 + 9495 9501 9507 41 9492 9495 9501 27 9492 9522 + 9516 27 9483 9477 9528 9 9483 9492 9495 29 + 9483 9492 9522 29 9477 9483 9492 30 9477 9528 + 9531 15 9477 9528 9534 16 9471 9477 9483 31 + 9471 9477 9528 25 9573 9570 9576 1 9570 9576 + 9582 3 9558 9555 9561 1 9546 9540 9570 9 + 9546 9555 9558 15 9546 9555 9561 16 9540 9546 + 9555 9 9540 9570 9573 15 9540 9570 9576 16 + 9534 9540 9546 31 9534 9540 9570 25 9603 9600 + 9606 1 9600 9606 9612 3 9588 9582 9600 9 + 9582 9600 9603 15 9582 9600 9606 16 9576 9582 + 9588 31 9576 9582 9600 25 9654 9651 9657 1 + 9651 9657 9663 3 9627 9636 9639 6 9618 9612 + 9651 9 9618 9627 9636 11 9612 9618 9627 14 + 9612 9651 9654 15 9612 9651 9657 16 9606 9612 + 9618 31 9606 9612 9651 25 9702 9699 9705 1 + 9699 9705 9711 3 9675 9669 9687 14 9669 9663 + 9699 9 9663 9669 9675 14 9663 9669 9687 14 + 9663 9699 9702 15 9663 9699 9705 16 9657 9663 + 9669 31 9657 9663 9699 25 9735 9732 9738 1 + 9732 9738 9741 3 9732 9738 9768 3 9717 9711 + 9732 9 9711 9717 9726 33 9711 9732 9735 15 + 9711 9732 9738 16 9705 9711 9717 31 9705 9711 + 9732 25 9777 9774 9780 1 9774 9780 9786 3 + 9768 9774 9777 15 9768 9774 9780 16 9759 9768 + 9774 9 9750 9759 9768 14 9741 9738 9768 70 + 9741 9750 9759 14 9738 9741 9750 31 9738 9768 + 9759 31 9738 9768 9774 25 9834 9831 9837 1 + 9831 9837 9843 3 9807 9801 9819 14 9792 9786 + 9831 9 9792 9801 9807 14 9792 9801 9819 14 + 9786 9792 9801 14 9786 9831 9834 15 9786 9831 + 9837 16 9780 9786 9792 31 9780 9786 9831 25 + 9900 9897 9903 1 9897 9903 9909 3 9867 9876 + 9885 20 9858 9867 9876 14 9849 9843 9897 9 + 9849 9858 9867 14 9843 9849 9858 14 9843 9897 + 9900 15 9843 9897 9903 16 9837 9843 9849 31 + 9837 9843 9897 25 9966 9963 9969 1 9963 9969 + 9975 3 9933 9942 9951 20 9924 9933 9942 14 + 9915 9909 9963 9 9915 9924 9933 14 9909 9915 + 9924 14 9909 9963 9966 15 9909 9963 9969 16 + 9903 9909 9915 31 9903 9909 9963 25 10008 10005 + 10011 1 10005 10011 10017 3 9993 9990 9996 1 + 9981 9975 10005 9 9981 9990 9993 15 9981 9990 + 9996 16 9975 9981 9990 9 9975 10005 10008 15 + 9975 10005 10011 16 9969 9975 9981 31 9969 9975 + 10005 25 10056 10053 10059 1 10053 10059 10065 3 + 10029 10023 10041 14 10023 10017 10053 9 10017 10023 + 10029 14 10017 10023 10041 14 10017 10053 10056 15 + 10017 10053 10059 16 10011 10017 10023 31 10011 10017 + 10053 25 10092 10089 10095 1 10089 10095 10101 3 + 10083 10080 10086 65 10071 10065 10089 9 10071 10080 + 10083 66 10071 10080 10086 66 10065 10071 10080 9 + 10065 10089 10092 15 10065 10089 10095 16 10059 10065 + 10071 31 10059 10065 10089 25 10149 10146 10152 1 + 10146 10152 10158 3 10113 10107 10125 14 10107 10101 + 10146 9 10107 10125 10134 14 10101 10107 10113 14 + 10101 10107 10125 14 10101 10146 10149 15 10101 10146 + 10152 16 10095 10101 10107 31 10095 10101 10146 25 + 10200 10197 10203 1 10197 10203 10209 3 10173 10182 + 10185 6 10164 10158 10197 9 10164 10173 10182 11 + 10158 10164 10173 14 10158 10197 10200 15 10158 10197 + 10203 16 10152 10158 10164 31 10152 10158 10197 25 + 10245 10242 10248 1 10242 10248 10254 3 10236 10233 + 10239 65 10224 10233 10236 66 10224 10233 10239 66 + 10215 10209 10242 9 10215 10224 10233 9 10209 10215 + 10224 14 10209 10242 10245 15 10209 10242 10248 16 + 10203 10209 10215 31 10203 10209 10242 25 10293 10290 + 10296 1 10290 10296 10302 3 10266 10260 10278 14 + 10260 10254 10290 9 10254 10260 10266 14 10254 10260 + 10278 14 10254 10290 10293 15 10254 10290 10296 16 + 10248 10254 10260 31 10248 10254 10290 25 10314 10311 + 10317 1 10311 10317 10323 3 10302 10311 10314 15 + 10302 10311 10317 16 10296 10302 10311 25 10356 10353 + 10359 1 10353 10359 10365 3 10341 10338 10344 1 + 10329 10323 10353 9 10329 10338 10341 15 10329 10338 + 10344 16 10323 10329 10338 9 10323 10353 10356 15 + 10323 10353 10359 16 10317 10323 10329 31 10317 10323 + 10353 25 10398 10395 10401 1 10395 10401 10407 3 + 10377 10371 10389 33 10371 10365 10395 9 10365 10371 + 10377 14 10365 10371 10389 33 10365 10395 10398 15 + 10365 10395 10401 16 10359 10365 10371 31 10359 10365 + 10395 25 10446 10443 10449 1 10443 10449 10455 3 + 10419 10413 10431 14 10413 10407 10443 9 10407 10413 + 10419 14 10407 10413 10431 14 10407 10443 10446 15 + 10407 10443 10449 16 10401 10407 10413 31 10401 10407 + 10443 25 10476 10473 10479 1 10473 10479 10485 3 + 10461 10455 10473 9 10455 10473 10476 15 10455 10473 + 10479 16 10449 10455 10461 31 10449 10455 10473 25 + 10536 10533 10539 1 10533 10539 10545 3 10515 10521 + 10527 27 10509 10515 10521 27 10503 10500 10527 27 + 10503 10509 10515 27 10500 10503 10509 27 10500 10527 + 10521 27 10491 10485 10533 9 10491 10500 10503 29 + 10491 10500 10527 29 10485 10491 10500 30 10485 10533 + 10536 15 10485 10533 10539 16 10479 10485 10491 31 + 10479 10485 10533 25 10593 10590 10596 1 10590 10596 + 10602 3 10566 10560 10578 14 10551 10545 10590 9 + 10551 10560 10566 14 10551 10560 10578 14 10545 10551 + 10560 14 10545 10590 10593 15 10545 10590 10596 16 + 10539 10545 10551 31 10539 10545 10590 25 10626 10623 + 10629 1 10623 10629 10635 3 10608 10602 10623 9 + 10602 10608 10617 69 10602 10623 10626 15 10602 10623 + 10629 16 10596 10602 10608 31 10596 10602 10623 25 + 10659 10656 10662 1 10656 10662 10668 3 10641 10635 + 10656 9 10635 10641 10650 33 10635 10656 10659 15 + 10635 10656 10662 16 10629 10635 10641 31 10629 10635 + 10656 25 10695 10692 10698 1 10692 10698 10704 3 + 10686 10683 10689 65 10674 10668 10692 9 10674 10683 + 10686 66 10674 10683 10689 66 10668 10674 10683 9 + 10668 10692 10695 15 10668 10692 10698 16 10662 10668 + 10674 31 10662 10668 10692 25 10746 10743 10749 1 + 10743 10749 10755 3 10719 10728 10731 6 10710 10704 + 10743 9 10710 10719 10728 11 10704 10710 10719 14 + 10704 10743 10746 15 10704 10743 10749 16 10698 10704 + 10710 31 10698 10704 10743 25 10776 10773 10779 1 + 10773 10779 10785 3 10761 10755 10773 9 10755 10773 + 10776 15 10755 10773 10779 16 10749 10755 10761 31 + 10749 10755 10773 25 10818 10815 10821 1 10815 10821 + 10827 3 10797 10791 10809 33 10791 10785 10815 9 + 10785 10791 10797 14 10785 10791 10809 33 10785 10815 + 10818 15 10785 10815 10821 16 10779 10785 10791 31 + 10779 10785 10815 25 10839 10836 10842 1 10836 10842 + 10848 3 10827 10836 10839 15 10827 10836 10842 16 + 10821 10827 10836 25 10896 10893 10899 1 10893 10899 + 10905 3 10860 10854 10872 14 10854 10848 10893 9 + 10854 10872 10881 14 10848 10854 10860 14 10848 10854 + 10872 14 10848 10893 10896 15 10848 10893 10899 16 + 10842 10848 10854 31 10842 10848 10893 25 10938 10935 + 10941 1 10935 10941 10947 3 10917 10911 10929 33 + 10911 10905 10935 9 10905 10911 10917 14 10905 10911 + 10929 33 10905 10935 10938 15 10905 10935 10941 16 + 10899 10905 10911 31 10899 10905 10935 25 10959 10956 + 10962 1 10956 10962 10968 3 10947 10956 10959 15 + 10947 10956 10962 16 10941 10947 10956 25 11004 11001 + 11007 1 11001 11007 11013 3 10995 10992 10998 65 + 10983 10992 10995 66 10983 10992 10998 66 10974 10968 + 11001 9 10974 10983 10992 9 10968 10974 10983 14 + 10968 11001 11004 15 10968 11001 11007 16 10962 10968 + 10974 31 10962 10968 11001 25 11052 11049 11055 1 + 11049 11055 11061 3 11025 11019 11037 14 11019 11013 + 11049 9 11013 11019 11025 14 11013 11019 11037 14 + 11013 11049 11052 15 11013 11049 11055 16 11007 11013 + 11019 31 11007 11013 11049 25 11100 11097 11103 1 + 11097 11103 11109 3 11073 11067 11085 14 11067 11061 + 11097 9 11061 11067 11073 14 11061 11067 11085 14 + 11061 11097 11100 15 11061 11097 11103 16 11055 11061 + 11067 31 11055 11061 11097 25 11151 11148 11154 1 + 11148 11154 11160 3 11130 11136 11142 47 11127 11124 + 11142 48 11127 11130 11136 50 11124 11127 11130 51 + 11124 11142 11136 52 11115 11109 11148 9 11115 11124 + 11127 55 11115 11124 11142 56 11109 11115 11124 57 + 11109 11148 11151 15 11109 11148 11154 16 11103 11109 + 11115 31 11103 11109 11148 25 11199 11196 11202 1 + 11196 11202 11208 3 11172 11166 11184 14 11166 11160 + 11196 9 11160 11166 11172 14 11160 11166 11184 14 + 11160 11196 11199 15 11160 11196 11202 16 11154 11160 + 11166 31 11154 11160 11196 25 11235 11232 11238 1 + 11232 11238 11244 3 11226 11223 11229 65 11214 11208 + 11232 9 11214 11223 11226 66 11214 11223 11229 66 + 11208 11214 11223 9 11208 11232 11235 15 11208 11232 + 11238 16 11202 11208 11214 31 11202 11208 11232 25 + 11265 11262 11268 1 11262 11268 11274 3 11250 11244 + 11262 9 11244 11262 11265 15 11244 11262 11268 16 + 11238 11244 11250 31 11238 11244 11262 25 11286 11283 + 11289 1 11283 11289 11295 3 11274 11283 11286 15 + 11274 11283 11289 16 11268 11274 11283 25 11349 11346 + 11352 1 11346 11352 11358 3 11328 11325 11334 38 + 11325 11334 11340 41 11319 11325 11328 38 11319 11325 + 11334 42 11313 11310 11340 27 11313 11319 11325 41 + 11310 11313 11319 27 11310 11340 11334 27 11301 11295 + 11346 9 11301 11310 11313 29 11301 11310 11340 29 + 11295 11301 11310 30 11295 11346 11349 15 11295 11346 + 11352 16 11289 11295 11301 31 11289 11295 11346 25 + 11400 11397 11403 1 11397 11403 11409 3 11379 11385 + 11391 47 11376 11373 11391 48 11376 11379 11385 50 + 11373 11376 11379 51 11373 11391 11385 52 11364 11358 + 11397 9 11364 11373 11376 55 11364 11373 11391 56 + 11358 11364 11373 57 11358 11397 11400 15 11358 11397 + 11403 16 11352 11358 11364 31 11352 11358 11397 25 + 11433 11430 11436 1 11430 11436 11442 3 11415 11409 + 11430 9 11409 11415 11424 69 11409 11430 11433 15 + 11409 11430 11436 16 11403 11409 11415 31 11403 11409 + 11430 25 11481 11478 11484 1 11478 11484 11490 3 + 11454 11448 11466 14 11448 11442 11478 9 11442 11448 + 11454 14 11442 11448 11466 14 11442 11478 11481 15 + 11442 11478 11484 16 11436 11442 11448 31 11436 11442 + 11478 25 11514 11511 11517 1 11511 11517 11523 3 + 11496 11490 11511 9 11490 11496 11505 33 11490 11511 + 11514 15 11490 11511 11517 16 11484 11490 11496 31 + 11484 11490 11511 25 11565 11562 11568 1 11562 11568 + 11574 3 11538 11547 11550 6 11529 11523 11562 9 + 11529 11538 11547 11 11523 11529 11538 14 11523 11562 + 11565 15 11523 11562 11568 16 11517 11523 11529 31 + 11517 11523 11562 25 11586 11583 11589 1 11583 11589 + 11595 3 11574 11583 11586 15 11574 11583 11589 16 + 11568 11574 11583 25 11628 11625 11631 1 11625 11631 + 11637 3 11613 11610 11616 1 11601 11595 11625 9 + 11601 11610 11613 15 11601 11610 11616 16 11595 11601 + 11610 9 11595 11625 11628 15 11595 11625 11631 16 + 11589 11595 11601 31 11589 11595 11625 25 11676 11673 + 11679 1 11673 11679 11685 3 11649 11643 11661 14 + 11643 11637 11673 9 11637 11643 11649 14 11637 11643 + 11661 14 11637 11673 11676 15 11637 11673 11679 16 + 11631 11637 11643 31 11631 11637 11673 25 11733 11730 + 11736 1 11730 11736 11742 3 11706 11700 11718 14 + 11691 11685 11730 9 11691 11700 11706 14 11691 11700 + 11718 14 11685 11691 11700 14 11685 11730 11733 15 + 11685 11730 11736 16 11679 11685 11691 31 11679 11685 + 11730 25 11790 11787 11793 1 11787 11793 11799 3 + 11763 11757 11775 14 11748 11742 11787 9 11748 11757 + 11763 14 11748 11757 11775 14 11742 11748 11757 14 + 11742 11787 11790 15 11742 11787 11793 16 11736 11742 + 11748 31 11736 11742 11787 25 11835 11832 11838 1 + 11832 11838 11844 3 11826 11823 11829 65 11814 11823 + 11826 66 11814 11823 11829 66 11805 11799 11832 9 + 11805 11814 11823 9 11799 11805 11814 14 11799 11832 + 11835 15 11799 11832 11838 16 11793 11799 11805 31 + 11793 11799 11832 25 11886 11883 11889 1 11883 11889 + 11895 3 11865 11871 11877 47 11862 11859 11877 48 + 11862 11865 11871 50 11859 11862 11865 51 11859 11877 + 11871 52 11850 11844 11883 9 11850 11859 11862 55 + 11850 11859 11877 56 11844 11850 11859 57 11844 11883 + 11886 15 11844 11883 11889 16 11838 11844 11850 31 + 11838 11844 11883 25 11937 11934 11940 1 11934 11940 + 11946 3 11916 11922 11928 47 11913 11910 11928 48 + 11913 11916 11922 50 11910 11913 11916 51 11910 11928 + 11922 52 11901 11895 11934 9 11901 11910 11913 55 + 11901 11910 11928 56 11895 11901 11910 57 11895 11934 + 11937 15 11895 11934 11940 16 11889 11895 11901 31 + 11889 11895 11934 25 11988 11985 11991 1 11985 11991 + 11997 3 11967 11973 11979 47 11964 11961 11979 48 + 11964 11967 11973 50 11961 11964 11967 51 11961 11979 + 11973 52 11952 11946 11985 9 11952 11961 11964 55 + 11952 11961 11979 56 11946 11952 11961 57 11946 11985 + 11988 15 11946 11985 11991 16 11940 11946 11952 31 + 11940 11946 11985 25 12039 12036 12042 1 12036 12042 + 12048 3 12018 12024 12030 47 12015 12012 12030 48 + 12015 12018 12024 50 12012 12015 12018 51 12012 12030 + 12024 52 12003 11997 12036 9 12003 12012 12015 55 + 12003 12012 12030 56 11997 12003 12012 57 11997 12036 + 12039 15 11997 12036 12042 16 11991 11997 12003 31 + 11991 11997 12036 25 12090 12087 12093 1 12087 12093 + 12099 3 12069 12075 12081 47 12066 12063 12081 48 + 12066 12069 12075 50 12063 12066 12069 51 12063 12081 + 12075 52 12054 12048 12087 9 12054 12063 12066 55 + 12054 12063 12081 56 12048 12054 12063 57 12048 12087 + 12090 15 12048 12087 12093 16 12042 12048 12054 31 + 12042 12048 12087 25 12141 12138 12144 65 12120 12126 + 12132 47 12117 12114 12132 48 12117 12120 12126 50 + 12114 12117 12120 51 12114 12132 12126 52 12105 12099 + 12138 9 12105 12114 12117 55 12105 12114 12132 56 + 12099 12105 12114 57 12099 12138 12141 66 12099 12138 + 12144 66 12093 12099 12105 31 12093 12099 12138 25 + 12270 12273 12276 94 12264 12261 12267 96 12261 12258 + 12270 97 12258 12261 12267 99 12258 12261 12264 100 + 12258 12270 12273 101 12255 12252 12276 102 12255 12258 + 12261 103 12255 12258 12270 94 12252 12276 12273 105 + 12252 12255 12258 105 12249 12252 12276 107 12249 12252 + 12255 107 12246 12243 12249 33 12243 12249 12252 108 + 12240 12237 12243 33 12237 12243 12249 14 12237 12243 + 12246 33 12234 12231 12237 110 12234 12249 12243 110 + 12234 12249 12252 112 12231 12234 12249 114 12231 12237 + 12243 14 12231 12237 12240 33 12228 12231 12234 110 + 12228 12231 12237 14 12225 12228 12231 110 12222 12216 + 12225 115 12219 12216 12225 115 12219 12216 12222 116 + 12216 12225 12228 117 12213 12216 12225 118 12213 12216 + 12219 115 12213 12216 12222 115 12204 12207 12210 120 + 12201 12204 12207 121 12198 12195 12201 122 12195 12192 + 12210 123 12195 12201 12204 124 12192 12210 12207 125 + 12192 12195 12201 126 12192 12195 12198 127 12189 12192 + 12210 129 12189 12192 12195 130 12186 12183 12210 131 + 12186 12189 12192 132 12183 12186 12189 134 12183 12210 + 12192 136 12183 12210 12207 137 12180 12183 12186 138 + 12180 12183 12210 139 12177 12174 12180 33 12174 12180 + 12183 140 12171 12168 12174 33 12168 12174 12180 14 + 12168 12174 12177 33 12165 12162 12168 110 12165 12180 + 12174 110 12165 12180 12183 141 12162 12168 12174 14 + 12162 12168 12171 33 12162 12165 12180 114 12159 12162 + 12168 14 12159 12162 12165 110 12156 12147 12213 118 + 12156 12159 12162 110 12153 12147 12213 115 12153 12147 + 12156 115 12150 12147 12213 115 12150 12147 12153 116 + 12150 12147 12156 115 12147 12213 12216 142 12147 12156 + 12159 117 12393 12390 12402 144 12390 12393 12396 145 + 12387 12384 12399 144 12387 12390 12393 145 12387 12390 + 12402 144 12384 12381 12396 145 12384 12387 12390 145 + 12381 12384 12387 145 12381 12384 12399 144 12381 12396 + 12393 145 12375 12381 12384 146 12375 12381 12396 146 + 12372 12357 12375 146 12369 12366 12405 144 12366 12369 + 12372 145 12363 12360 12378 147 12363 12366 12369 145 + 12363 12366 12405 144 12360 12357 12372 145 12360 12357 + 12375 146 12360 12363 12366 145 12357 12360 12363 145 + 12357 12360 12378 147 12357 12372 12369 145 12357 12375 + 12381 149 +%FLAG DIHEDRALS_INC_HYDROGEN +%FORMAT(10I8) + 54 51 57 60 1 54 51 -57 60 2 + 51 57 63 66 3 51 57 63 69 3 + 33 27 36 39 8 30 27 36 39 8 + 27 36 39 42 8 27 36 39 45 8 + 27 36 39 48 8 24 18 12 51 9 + 24 18 27 30 9 24 18 27 33 9 + 24 18 27 36 9 21 18 12 51 9 + 21 18 27 30 9 21 18 27 33 9 + 21 18 27 36 9 15 12 18 21 9 + 15 12 18 24 9 15 12 18 27 9 + 15 12 51 54 3 15 12 51 57 3 + 12 18 27 30 9 12 18 27 33 9 + 12 51 57 60 2 9 0 12 15 9 + 9 0 12 18 9 9 0 12 51 9 + 6 0 12 15 9 6 0 12 18 9 + 6 0 12 51 9 3 0 12 15 9 + 3 0 12 18 9 3 0 12 51 9 + 0 12 18 21 9 0 12 18 24 9 + 75 72 78 81 1 75 72 -78 81 2 + 72 78 84 87 3 69 63 72 75 14 + 69 63 -72 75 15 69 63 72 78 3 + 66 63 72 75 14 66 63 -72 75 15 + 66 63 72 78 3 63 72 78 81 2 + 60 57 63 66 3 60 57 63 69 3 + 60 57 63 72 3 135 132 138 141 1 + 135 132 -138 141 2 132 138 144 147 3 + 123 120 126 129 19 117 114 120 123 19 + 117 114 120 126 19 114 120 126 129 19 + 111 108 114 117 19 111 108 114 120 19 + 108 114 120 123 19 105 102 99 126 19 + 105 102 108 111 19 105 102 108 114 19 + 102 99 126 129 19 102 108 114 117 19 + 99 102 108 111 19 99 126 120 123 19 + 96 90 84 132 9 96 90 99 102 3 + 96 90 99 126 3 93 90 84 132 9 + 93 90 99 102 3 93 90 99 126 3 + 90 99 102 105 19 90 99 126 129 19 + 87 84 90 93 9 87 84 90 96 9 + 87 84 90 99 9 87 84 132 135 14 + 87 84 -132 135 15 87 84 132 138 3 + 84 132 138 141 2 81 78 84 87 3 + 81 78 84 90 3 81 78 84 132 3 + 78 84 90 93 9 78 84 90 96 9 + 192 189 195 198 1 192 189 -195 198 2 + 189 195 201 204 3 174 165 159 177 20 + 171 165 159 177 20 168 165 159 177 20 + 165 159 177 180 20 165 159 177 183 20 + 165 159 177 186 20 162 159 165 168 21 + 162 159 165 171 21 162 159 165 174 21 + 162 159 177 180 21 162 159 177 183 21 + 162 159 177 186 21 156 150 144 189 9 + 156 150 159 162 21 156 150 159 165 20 + 156 150 159 177 20 153 150 144 189 9 + 153 150 159 162 21 153 150 159 165 20 + 153 150 159 177 20 150 159 165 168 20 + 150 159 165 171 20 150 159 165 174 20 + 150 159 177 180 20 150 159 177 183 20 + 150 159 177 186 20 147 144 150 153 9 + 147 144 150 156 9 147 144 150 159 9 + 147 144 189 192 14 147 144 -189 192 15 + 147 144 189 195 3 144 150 159 162 20 + 144 189 195 198 2 141 138 144 147 3 + 141 138 144 150 3 141 138 144 189 3 + 138 144 150 153 9 138 144 150 156 9 + 222 219 225 228 1 222 219 -225 228 2 + 219 225 231 234 3 219 225 231 237 3 + 216 207 201 219 9 213 207 201 219 9 + 210 207 201 219 9 204 201 207 210 9 + 204 201 207 213 9 204 201 207 216 9 + 204 201 219 222 14 204 201 -219 222 15 + 204 201 219 225 3 201 219 225 228 2 + 198 195 201 204 3 198 195 201 207 3 + 198 195 201 219 3 195 201 207 210 9 + 195 201 207 213 9 195 201 207 216 9 + 243 240 246 249 1 243 240 -246 249 2 + 240 246 252 255 3 237 231 240 243 14 + 237 231 -240 243 15 237 231 240 246 3 + 234 231 240 243 14 234 231 -240 243 15 + 234 231 240 246 3 231 240 246 249 2 + 228 225 231 234 3 228 225 231 237 3 + 228 225 231 240 3 309 306 312 315 1 + 309 306 -312 315 2 306 312 318 321 3 + 291 285 294 297 9 291 285 294 300 9 + 291 285 294 303 9 288 285 294 297 9 + 288 285 294 300 9 288 285 294 303 9 + 282 276 285 288 9 282 276 285 291 9 + 282 276 285 294 9 279 276 285 288 9 + 279 276 285 291 9 279 276 285 294 9 + 276 285 294 297 9 276 285 294 300 9 + 276 285 294 303 9 273 267 276 279 21 + 273 267 276 282 21 273 267 276 285 20 + 270 267 276 279 21 270 267 276 282 21 + 270 267 276 285 20 267 276 285 288 9 + 267 276 285 291 9 264 258 252 306 9 + 264 258 267 270 21 264 258 267 273 21 + 264 258 267 276 20 261 258 252 306 9 + 261 258 267 270 21 261 258 267 273 21 + 261 258 267 276 20 258 267 276 279 20 + 258 267 276 282 20 255 252 258 261 9 + 255 252 258 264 9 255 252 258 267 9 + 255 252 306 309 14 255 252 -306 309 15 + 255 252 306 312 3 252 258 267 270 20 + 252 258 267 273 20 252 306 312 315 2 + 249 246 252 255 3 249 246 252 258 3 + 249 246 252 306 3 246 252 258 261 9 + 246 252 258 264 9 375 372 378 381 1 + 375 372 -378 381 2 372 378 384 387 3 + 357 351 360 363 9 357 351 360 366 9 + 357 351 360 369 9 354 351 360 363 9 + 354 351 360 366 9 354 351 360 369 9 + 348 342 351 354 9 348 342 351 357 9 + 348 342 351 360 9 345 342 351 354 9 + 345 342 351 357 9 345 342 351 360 9 + 342 351 360 363 9 342 351 360 366 9 + 342 351 360 369 9 339 333 342 345 21 + 339 333 342 348 21 339 333 342 351 20 + 336 333 342 345 21 336 333 342 348 21 + 336 333 342 351 20 333 342 351 354 9 + 333 342 351 357 9 330 324 318 372 9 + 330 324 333 336 21 330 324 333 339 21 + 330 324 333 342 20 327 324 318 372 9 + 327 324 333 336 21 327 324 333 339 21 + 327 324 333 342 20 324 333 342 345 20 + 324 333 342 348 20 321 318 324 327 9 + 321 318 324 330 9 321 318 324 333 9 + 321 318 372 375 14 321 318 -372 375 15 + 321 318 372 378 3 318 324 333 336 20 + 318 324 333 339 20 318 372 378 381 2 + 315 312 318 321 3 315 312 318 324 3 + 315 312 318 372 3 312 318 324 327 9 + 312 318 324 330 9 432 429 435 438 1 + 432 429 -435 438 2 429 435 441 444 3 + 414 408 417 420 21 414 408 417 423 21 + 414 408 417 426 21 411 408 417 420 21 + 411 408 417 423 21 411 408 417 426 21 + 405 396 390 408 20 402 396 390 408 20 + 399 396 390 408 20 396 390 408 411 20 + 396 390 408 414 20 393 390 384 429 9 + 393 390 396 399 21 393 390 396 402 21 + 393 390 396 405 21 393 390 408 411 21 + 393 390 408 414 21 393 390 408 417 20 + 390 408 417 420 20 390 408 417 423 20 + 390 408 417 426 20 387 384 390 393 9 + 387 384 390 396 9 387 384 390 408 9 + 387 384 429 432 14 387 384 -429 432 15 + 387 384 429 435 3 384 390 396 399 20 + 384 390 396 402 20 384 390 396 405 20 + 384 390 408 411 20 384 390 408 414 20 + 384 429 435 438 2 381 378 384 387 3 + 381 378 384 390 3 381 378 384 429 3 + 378 384 390 393 9 489 486 492 495 1 + 489 486 -492 495 2 486 492 498 501 3 + 471 462 456 474 20 468 462 456 474 20 + 465 462 456 474 20 462 456 474 477 20 + 462 456 474 480 20 462 456 474 483 20 + 459 456 462 465 21 459 456 462 468 21 + 459 456 462 471 21 459 456 474 477 21 + 459 456 474 480 21 459 456 474 483 21 + 453 447 441 486 9 453 447 456 459 21 + 453 447 456 462 20 453 447 456 474 20 + 450 447 441 486 9 450 447 456 459 21 + 450 447 456 462 20 450 447 456 474 20 + 447 456 462 465 20 447 456 462 468 20 + 447 456 462 471 20 447 456 474 477 20 + 447 456 474 480 20 447 456 474 483 20 + 444 441 447 450 9 444 441 447 453 9 + 444 441 447 456 9 444 441 486 489 14 + 444 441 -486 489 15 444 441 486 492 3 + 441 447 456 459 20 441 486 492 495 2 + 438 435 441 444 3 438 435 441 447 3 + 438 435 441 486 3 435 441 447 450 9 + 435 441 447 453 9 546 543 549 552 1 + 546 543 -549 552 2 543 549 555 558 3 + 528 522 531 534 21 528 522 531 537 21 + 528 522 531 540 21 525 522 531 534 21 + 525 522 531 537 21 525 522 531 540 21 + 519 510 504 522 20 516 510 504 522 20 + 513 510 504 522 20 510 504 522 525 20 + 510 504 522 528 20 507 504 498 543 9 + 507 504 510 513 21 507 504 510 516 21 + 507 504 510 519 21 507 504 522 525 21 + 507 504 522 528 21 507 504 522 531 20 + 504 522 531 534 20 504 522 531 537 20 + 504 522 531 540 20 501 498 504 507 9 + 501 498 504 510 9 501 498 504 522 9 + 501 498 543 546 14 501 498 -543 546 15 + 501 498 543 549 3 498 504 510 513 20 + 498 504 510 516 20 498 504 510 519 20 + 498 504 522 525 20 498 504 522 528 20 + 498 543 549 552 2 495 492 498 501 3 + 495 492 498 504 3 495 492 498 543 3 + 492 498 504 507 9 588 585 591 594 1 + 588 585 -591 594 2 585 591 597 600 3 + 585 591 597 603 3 576 567 561 579 25 + 576 567 -561 579 26 573 567 561 579 25 + 573 567 -561 579 26 570 567 561 579 25 + 570 567 -561 579 26 567 561 579 582 25 + 567 561 -579 582 20 564 561 555 585 9 + 564 561 567 570 9 564 561 567 573 9 + 564 561 567 576 9 564 561 579 582 27 + 558 555 561 564 9 558 555 561 567 9 + 558 555 561 579 25 558 555 -561 579 26 + 558 555 585 588 14 558 555 -585 588 15 + 558 555 585 591 3 555 561 567 570 20 + 555 561 567 573 20 555 561 567 576 20 + 555 561 579 582 25 555 561 -579 582 20 + 555 585 591 594 2 552 549 555 558 3 + 552 549 555 561 3 552 549 555 585 3 + 549 555 561 564 9 609 606 612 615 1 + 609 606 -612 615 2 606 612 618 621 3 + 603 597 606 609 14 603 597 -606 609 15 + 603 597 606 612 3 600 597 606 609 14 + 600 597 -606 609 15 600 597 606 612 3 + 597 606 612 615 2 594 591 597 600 3 + 594 591 597 603 3 594 591 597 606 3 + 666 663 669 672 1 666 663 -669 672 2 + 663 669 675 678 3 648 639 633 651 20 + 645 639 633 651 20 642 639 633 651 20 + 639 633 651 654 20 639 633 651 657 20 + 639 633 651 660 20 636 633 639 642 21 + 636 633 639 645 21 636 633 639 648 21 + 636 633 651 654 21 636 633 651 657 21 + 636 633 651 660 21 630 624 618 663 9 + 630 624 633 636 21 630 624 633 639 20 + 630 624 633 651 20 627 624 618 663 9 + 627 624 633 636 21 627 624 633 639 20 + 627 624 633 651 20 624 633 639 642 20 + 624 633 639 645 20 624 633 639 648 20 + 624 633 651 654 20 624 633 651 657 20 + 624 633 651 660 20 621 618 624 627 9 + 621 618 624 630 9 621 618 624 633 9 + 621 618 663 666 14 621 618 -663 666 15 + 621 618 663 669 3 618 624 633 636 20 + 618 663 669 672 2 615 612 618 621 3 + 615 612 618 624 3 615 612 618 663 3 + 612 618 624 627 9 612 618 624 630 9 + 723 720 726 729 1 723 720 -726 729 2 + 720 726 732 735 3 705 696 690 708 20 + 702 696 690 708 20 699 696 690 708 20 + 696 690 708 711 20 696 690 708 714 20 + 696 690 708 717 20 693 690 696 699 21 + 693 690 696 702 21 693 690 696 705 21 + 693 690 708 711 21 693 690 708 714 21 + 693 690 708 717 21 687 681 675 720 9 + 687 681 690 693 21 687 681 690 696 20 + 687 681 690 708 20 684 681 675 720 9 + 684 681 690 693 21 684 681 690 696 20 + 684 681 690 708 20 681 690 696 699 20 + 681 690 696 702 20 681 690 696 705 20 + 681 690 708 711 20 681 690 708 714 20 + 681 690 708 717 20 678 675 681 684 9 + 678 675 681 687 9 678 675 681 690 9 + 678 675 720 723 14 678 675 -720 723 15 + 678 675 720 726 3 675 681 690 693 20 + 675 720 726 729 2 672 669 675 678 3 + 672 669 675 681 3 672 669 675 720 3 + 669 675 681 684 9 669 675 681 687 9 + 756 753 759 762 1 756 753 -759 762 2 + 753 759 765 768 3 744 738 732 753 9 + 744 738 747 750 27 741 738 732 753 9 + 741 738 747 750 27 735 732 738 741 9 + 735 732 738 744 9 735 732 738 747 25 + 735 732 -738 747 26 735 732 753 756 14 + 735 732 -753 756 15 735 732 753 759 3 + 732 738 747 750 25 732 738 -747 750 20 + 732 753 759 762 2 729 726 732 735 3 + 729 726 732 738 3 729 726 732 753 3 + 726 732 738 741 9 726 732 738 744 9 + 798 795 801 804 1 798 795 -801 804 2 + 795 801 807 810 3 783 780 786 789 1 + 783 780 -786 789 2 783 780 786 792 1 + 783 780 -786 792 2 777 771 765 795 9 + 777 771 780 783 14 777 771 -780 783 3 + 777 771 -780 783 15 777 771 780 786 3 + 774 771 765 795 9 774 771 780 783 14 + 774 771 -780 783 3 774 771 -780 783 15 + 774 771 780 786 3 771 780 786 789 2 + 771 780 786 792 2 768 765 771 774 9 + 768 765 771 777 9 768 765 771 780 9 + 768 765 795 798 14 768 765 -795 798 15 + 768 765 795 801 3 765 795 801 804 2 + 762 759 765 768 3 762 759 765 771 3 + 762 759 765 795 3 759 765 771 774 9 + 759 765 771 777 9 864 861 867 870 1 + 864 861 -867 870 2 861 867 873 876 3 + 846 840 849 852 9 846 840 849 855 9 + 846 840 849 858 9 843 840 849 852 9 + 843 840 849 855 9 843 840 849 858 9 + 837 831 840 843 9 837 831 840 846 9 + 837 831 840 849 9 834 831 840 843 9 + 834 831 840 846 9 834 831 840 849 9 + 831 840 849 852 9 831 840 849 855 9 + 831 840 849 858 9 828 822 831 834 21 + 828 822 831 837 21 828 822 831 840 20 + 825 822 831 834 21 825 822 831 837 21 + 825 822 831 840 20 822 831 840 843 9 + 822 831 840 846 9 819 813 807 861 9 + 819 813 822 825 21 819 813 822 828 21 + 819 813 822 831 20 816 813 807 861 9 + 816 813 822 825 21 816 813 822 828 21 + 816 813 822 831 20 813 822 831 834 20 + 813 822 831 837 20 810 807 813 816 9 + 810 807 813 819 9 810 807 813 822 9 + 810 807 861 864 14 810 807 -861 864 15 + 810 807 861 867 3 807 813 822 825 20 + 807 813 822 828 20 807 861 867 870 2 + 804 801 807 810 3 804 801 807 813 3 + 804 801 807 861 3 801 807 813 816 9 + 801 807 813 819 9 897 894 900 903 1 + 897 894 -900 903 2 894 900 906 909 3 + 885 879 873 894 9 885 879 888 891 27 + 882 879 873 894 9 882 879 888 891 27 + 876 873 879 882 9 876 873 879 885 9 + 876 873 879 888 25 876 873 -879 888 26 + 876 873 894 897 14 876 873 -894 897 15 + 876 873 894 900 3 873 879 888 891 25 + 873 879 -888 891 20 873 894 900 903 2 + 870 867 873 876 3 870 867 873 879 3 + 870 867 873 894 3 867 873 879 882 9 + 867 873 879 885 9 954 951 957 960 1 + 954 951 -957 960 2 951 957 963 966 3 + 936 930 939 942 21 936 930 939 945 21 + 936 930 939 948 21 933 930 939 942 21 + 933 930 939 945 21 933 930 939 948 21 + 927 918 912 930 20 924 918 912 930 20 + 921 918 912 930 20 918 912 930 933 20 + 918 912 930 936 20 915 912 906 951 9 + 915 912 918 921 21 915 912 918 924 21 + 915 912 918 927 21 915 912 930 933 21 + 915 912 930 936 21 915 912 930 939 20 + 912 930 939 942 20 912 930 939 945 20 + 912 930 939 948 20 909 906 912 915 9 + 909 906 912 918 9 909 906 912 930 9 + 909 906 951 954 14 909 906 -951 954 15 + 909 906 951 957 3 906 912 918 921 20 + 906 912 918 924 20 906 912 918 927 20 + 906 912 930 933 20 906 912 930 936 20 + 906 951 957 960 2 903 900 906 909 3 + 903 900 906 912 3 903 900 906 951 3 + 900 906 912 915 9 984 981 987 990 1 + 984 981 -987 990 2 981 987 993 996 3 + 978 969 963 981 9 975 969 963 981 9 + 972 969 963 981 9 966 963 969 972 9 + 966 963 969 975 9 966 963 969 978 9 + 966 963 981 984 14 966 963 -981 984 15 + 966 963 981 987 3 963 981 987 990 2 + 960 957 963 966 3 960 957 963 969 3 + 960 957 963 981 3 957 963 969 972 9 + 957 963 969 975 9 957 963 969 978 9 + 1047 1044 1050 1053 1 1047 1044 -1050 1053 2 + 1044 1050 1056 1059 3 1044 1050 1056 1062 3 + 1035 1032 1038 1041 19 1029 1026 1023 1032 28 + 1026 1023 1032 1035 19 1023 1032 1038 1041 19 + 1020 1017 1023 1026 19 1020 1017 1023 1032 19 + 1017 1023 1026 1029 28 1017 1023 1032 1035 19 + 1014 1011 1008 1038 19 1014 1011 1017 1020 19 + 1014 1011 1017 1023 19 1011 1008 1038 1041 19 + 1008 1011 1017 1020 19 1008 1038 1032 1035 19 + 1005 999 993 1044 9 1005 999 1008 1011 3 + 1005 999 1008 1038 3 1002 999 993 1044 9 + 1002 999 1008 1011 3 1002 999 1008 1038 3 + 999 1008 1011 1014 19 999 1008 1038 1041 19 + 996 993 999 1002 9 996 993 999 1005 9 + 996 993 999 1008 9 996 993 1044 1047 14 + 996 993 -1044 1047 15 996 993 1044 1050 3 + 993 1044 1050 1053 2 990 987 993 996 3 + 990 987 993 999 3 990 987 993 1044 3 + 987 993 999 1002 9 987 993 999 1005 9 + 1068 1065 1071 1074 1 1068 1065 -1071 1074 2 + 1065 1071 1077 1080 3 1062 1056 1065 1068 14 + 1062 1056 -1065 1068 15 1062 1056 1065 1071 3 + 1059 1056 1065 1068 14 1059 1056 -1065 1068 15 + 1059 1056 1065 1071 3 1056 1065 1071 1074 2 + 1053 1050 1056 1059 3 1053 1050 1056 1062 3 + 1053 1050 1056 1065 3 1125 1122 1128 1131 1 + 1125 1122 -1128 1131 2 1122 1128 1134 1137 3 + 1107 1101 1110 1113 21 1107 1101 1110 1116 21 + 1107 1101 1110 1119 21 1104 1101 1110 1113 21 + 1104 1101 1110 1116 21 1104 1101 1110 1119 21 + 1098 1089 1083 1101 20 1095 1089 1083 1101 20 + 1092 1089 1083 1101 20 1089 1083 1101 1104 20 + 1089 1083 1101 1107 20 1086 1083 1077 1122 9 + 1086 1083 1089 1092 21 1086 1083 1089 1095 21 + 1086 1083 1089 1098 21 1086 1083 1101 1104 21 + 1086 1083 1101 1107 21 1086 1083 1101 1110 20 + 1083 1101 1110 1113 20 1083 1101 1110 1116 20 + 1083 1101 1110 1119 20 1080 1077 1083 1086 9 + 1080 1077 1083 1089 9 1080 1077 1083 1101 9 + 1080 1077 1122 1125 14 1080 1077 -1122 1125 15 + 1080 1077 1122 1128 3 1077 1083 1089 1092 20 + 1077 1083 1089 1095 20 1077 1083 1089 1098 20 + 1077 1083 1101 1104 20 1077 1083 1101 1107 20 + 1077 1122 1128 1131 2 1074 1071 1077 1080 3 + 1074 1071 1077 1083 3 1074 1071 1077 1122 3 + 1071 1077 1083 1086 9 1155 1152 1158 1161 1 + 1155 1152 -1158 1161 2 1152 1158 1164 1167 3 + 1149 1140 1134 1152 9 1146 1140 1134 1152 9 + 1143 1140 1134 1152 9 1137 1134 1140 1143 9 + 1137 1134 1140 1146 9 1137 1134 1140 1149 9 + 1137 1134 1152 1155 14 1137 1134 -1152 1155 15 + 1137 1134 1152 1158 3 1134 1152 1158 1161 2 + 1131 1128 1134 1137 3 1131 1128 1134 1140 3 + 1131 1128 1134 1152 3 1128 1134 1140 1143 9 + 1128 1134 1140 1146 9 1128 1134 1140 1149 9 + 1221 1218 1224 1227 1 1221 1218 -1224 1227 2 + 1218 1224 1230 1233 3 1203 1197 1206 1209 9 + 1203 1197 1206 1212 9 1203 1197 1206 1215 9 + 1200 1197 1206 1209 9 1200 1197 1206 1212 9 + 1200 1197 1206 1215 9 1194 1188 1197 1200 9 + 1194 1188 1197 1203 9 1194 1188 1197 1206 9 + 1191 1188 1197 1200 9 1191 1188 1197 1203 9 + 1191 1188 1197 1206 9 1188 1197 1206 1209 9 + 1188 1197 1206 1212 9 1188 1197 1206 1215 9 + 1185 1179 1188 1191 21 1185 1179 1188 1194 21 + 1185 1179 1188 1197 20 1182 1179 1188 1191 21 + 1182 1179 1188 1194 21 1182 1179 1188 1197 20 + 1179 1188 1197 1200 9 1179 1188 1197 1203 9 + 1176 1170 1164 1218 9 1176 1170 1179 1182 21 + 1176 1170 1179 1185 21 1176 1170 1179 1188 20 + 1173 1170 1164 1218 9 1173 1170 1179 1182 21 + 1173 1170 1179 1185 21 1173 1170 1179 1188 20 + 1170 1179 1188 1191 20 1170 1179 1188 1194 20 + 1167 1164 1170 1173 9 1167 1164 1170 1176 9 + 1167 1164 1170 1179 9 1167 1164 1218 1221 14 + 1167 1164 -1218 1221 15 1167 1164 1218 1224 3 + 1164 1170 1179 1182 20 1164 1170 1179 1185 20 + 1164 1218 1224 1227 2 1161 1158 1164 1167 3 + 1161 1158 1164 1170 3 1161 1158 1164 1218 3 + 1158 1164 1170 1173 9 1158 1164 1170 1176 9 + 1251 1248 1254 1257 1 1251 1248 -1254 1257 2 + 1248 1254 1260 1263 3 1245 1236 1230 1248 9 + 1242 1236 1230 1248 9 1239 1236 1230 1248 9 + 1233 1230 1236 1239 9 1233 1230 1236 1242 9 + 1233 1230 1236 1245 9 1233 1230 1248 1251 14 + 1233 1230 -1248 1251 15 1233 1230 1248 1254 3 + 1230 1248 1254 1257 2 1227 1224 1230 1233 3 + 1227 1224 1230 1236 3 1227 1224 1230 1248 3 + 1224 1230 1236 1239 9 1224 1230 1236 1242 9 + 1224 1230 1236 1245 9 1302 1299 1305 1308 1 + 1302 1299 -1305 1308 2 1299 1305 1311 1314 3 + 1281 1275 1284 1287 8 1278 1275 1284 1287 8 + 1275 1284 1287 1290 8 1275 1284 1287 1293 8 + 1275 1284 1287 1296 8 1272 1266 1260 1299 9 + 1272 1266 1275 1278 9 1272 1266 1275 1281 9 + 1272 1266 1275 1284 9 1269 1266 1260 1299 9 + 1269 1266 1275 1278 9 1269 1266 1275 1281 9 + 1269 1266 1275 1284 9 1263 1260 1266 1269 9 + 1263 1260 1266 1272 9 1263 1260 1266 1275 9 + 1263 1260 1299 1302 14 1263 1260 -1299 1302 15 + 1263 1260 1299 1305 3 1260 1266 1275 1278 9 + 1260 1266 1275 1281 9 1260 1299 1305 1308 2 + 1257 1254 1260 1263 3 1257 1254 1260 1266 3 + 1257 1254 1260 1299 3 1254 1260 1266 1269 9 + 1254 1260 1266 1272 9 1353 1350 1356 1359 1 + 1353 1350 -1356 1359 2 1350 1356 1362 1365 3 + 1341 1338 1344 1347 29 1335 1332 1338 1341 30 + 1335 1332 1338 1344 30 1332 1338 1344 1347 29 + 1329 1326 1344 1347 32 1329 1332 1338 1341 30 + 1326 1329 1332 1335 33 1326 1344 1338 1341 29 + 1323 1317 1311 1350 9 1323 1317 1326 1329 3 + 1323 1317 1326 1344 3 1320 1317 1311 1350 9 + 1320 1317 1326 1329 3 1320 1317 1326 1344 3 + 1317 1326 1344 1347 32 1314 1311 1317 1320 9 + 1314 1311 1317 1323 9 1314 1311 1317 1326 9 + 1314 1311 1350 1353 14 1314 1311 -1350 1353 15 + 1314 1311 1350 1356 3 1311 1350 1356 1359 2 + 1308 1305 1311 1314 3 1308 1305 1311 1317 3 + 1308 1305 1311 1350 3 1305 1311 1317 1320 9 + 1305 1311 1317 1323 9 1425 1422 1428 1431 1 + 1425 1422 -1428 1431 2 1422 1428 1434 1437 3 + 1410 1404 1401 1413 31 1407 1404 1401 1413 31 + 1404 1401 1413 1416 31 1404 1401 1413 1419 31 + 1398 1395 1401 1404 31 1398 1395 1401 1413 31 + 1395 1401 1404 1407 31 1395 1401 1404 1410 31 + 1395 1401 1413 1416 31 1395 1401 1413 1419 31 + 1392 1386 1395 1398 26 1392 1386 1395 1401 26 + 1389 1386 1395 1398 26 1389 1386 1395 1401 26 + 1383 1377 1386 1389 9 1383 1377 1386 1392 9 + 1383 1377 1386 1395 9 1380 1377 1386 1389 9 + 1380 1377 1386 1392 9 1380 1377 1386 1395 9 + 1377 1386 1395 1398 26 1374 1368 1362 1422 9 + 1374 1368 1377 1380 21 1374 1368 1377 1383 21 + 1374 1368 1377 1386 20 1371 1368 1362 1422 9 + 1371 1368 1377 1380 21 1371 1368 1377 1383 21 + 1371 1368 1377 1386 20 1368 1377 1386 1389 9 + 1368 1377 1386 1392 9 1365 1362 1368 1371 9 + 1365 1362 1368 1374 9 1365 1362 1368 1377 9 + 1365 1362 1422 1425 14 1365 1362 -1422 1425 15 + 1365 1362 1422 1428 3 1362 1368 1377 1380 20 + 1362 1368 1377 1383 20 1362 1422 1428 1431 2 + 1359 1356 1362 1365 3 1359 1356 1362 1368 3 + 1359 1356 1362 1422 3 1356 1362 1368 1371 9 + 1356 1362 1368 1374 9 1470 1467 1473 1476 1 + 1470 1467 -1473 1476 2 1467 1473 1479 1482 3 + 1467 1473 1479 1485 3 1455 1449 1458 1461 3 + 1455 1449 1458 1464 3 1452 1449 1458 1461 3 + 1452 1449 1458 1464 3 1446 1440 1434 1467 9 + 1446 1440 1449 1452 21 1446 1440 1449 1455 21 + 1446 1440 1449 1458 9 1443 1440 1434 1467 9 + 1443 1440 1449 1452 21 1443 1440 1449 1455 21 + 1443 1440 1449 1458 9 1437 1434 1440 1443 9 + 1437 1434 1440 1446 9 1437 1434 1440 1449 9 + 1437 1434 1467 1470 14 1437 1434 -1467 1470 15 + 1437 1434 1467 1473 3 1434 1440 1449 1452 20 + 1434 1440 1449 1455 20 1434 1467 1473 1476 2 + 1431 1428 1434 1437 3 1431 1428 1434 1440 3 + 1431 1428 1434 1467 3 1428 1434 1440 1443 9 + 1428 1434 1440 1446 9 1491 1488 1494 1497 1 + 1491 1488 -1494 1497 2 1488 1494 1500 1503 3 + 1485 1479 1488 1491 14 1485 1479 -1488 1491 15 + 1485 1479 1488 1494 3 1482 1479 1488 1491 14 + 1482 1479 -1488 1491 15 1482 1479 1488 1494 3 + 1479 1488 1494 1497 2 1476 1473 1479 1482 3 + 1476 1473 1479 1485 3 1476 1473 1479 1488 3 + 1521 1518 1524 1527 1 1521 1518 -1524 1527 2 + 1518 1524 1530 1533 3 1515 1506 1500 1518 9 + 1512 1506 1500 1518 9 1509 1506 1500 1518 9 + 1503 1500 1506 1509 9 1503 1500 1506 1512 9 + 1503 1500 1506 1515 9 1503 1500 1518 1521 14 + 1503 1500 -1518 1521 15 1503 1500 1518 1524 3 + 1500 1518 1524 1527 2 1497 1494 1500 1503 3 + 1497 1494 1500 1506 3 1497 1494 1500 1518 3 + 1494 1500 1506 1509 9 1494 1500 1506 1512 9 + 1494 1500 1506 1515 9 1566 1563 1569 1572 1 + 1566 1563 -1569 1572 2 1563 1569 1575 1578 3 + 1551 1545 1554 1557 3 1551 1545 1554 1560 3 + 1548 1545 1554 1557 3 1548 1545 1554 1560 3 + 1542 1536 1530 1563 9 1542 1536 1545 1548 21 + 1542 1536 1545 1551 21 1542 1536 1545 1554 9 + 1539 1536 1530 1563 9 1539 1536 1545 1548 21 + 1539 1536 1545 1551 21 1539 1536 1545 1554 9 + 1533 1530 1536 1539 9 1533 1530 1536 1542 9 + 1533 1530 1536 1545 9 1533 1530 1563 1566 14 + 1533 1530 -1563 1566 15 1533 1530 1563 1569 3 + 1530 1536 1545 1548 20 1530 1536 1545 1551 20 + 1530 1563 1569 1572 2 1527 1524 1530 1533 3 + 1527 1524 1530 1536 3 1527 1524 1530 1563 3 + 1524 1530 1536 1539 9 1524 1530 1536 1542 9 + 1623 1620 1626 1629 1 1623 1620 -1626 1629 2 + 1620 1626 1632 1635 3 1605 1596 1590 1608 20 + 1602 1596 1590 1608 20 1599 1596 1590 1608 20 + 1596 1590 1608 1611 20 1596 1590 1608 1614 20 + 1596 1590 1608 1617 20 1593 1590 1596 1599 21 + 1593 1590 1596 1602 21 1593 1590 1596 1605 21 + 1593 1590 1608 1611 21 1593 1590 1608 1614 21 + 1593 1590 1608 1617 21 1587 1581 1575 1620 9 + 1587 1581 1590 1593 21 1587 1581 1590 1596 20 + 1587 1581 1590 1608 20 1584 1581 1575 1620 9 + 1584 1581 1590 1593 21 1584 1581 1590 1596 20 + 1584 1581 1590 1608 20 1581 1590 1596 1599 20 + 1581 1590 1596 1602 20 1581 1590 1596 1605 20 + 1581 1590 1608 1611 20 1581 1590 1608 1614 20 + 1581 1590 1608 1617 20 1578 1575 1581 1584 9 + 1578 1575 1581 1587 9 1578 1575 1581 1590 9 + 1578 1575 1620 1623 14 1578 1575 -1620 1623 15 + 1578 1575 1620 1626 3 1575 1581 1590 1593 20 + 1575 1620 1626 1629 2 1572 1569 1575 1578 3 + 1572 1569 1575 1581 3 1572 1569 1575 1620 3 + 1569 1575 1581 1584 9 1569 1575 1581 1587 9 + 1653 1650 1656 1659 1 1653 1650 -1656 1659 2 + 1650 1656 1662 1665 3 1647 1638 1632 1650 9 + 1644 1638 1632 1650 9 1641 1638 1632 1650 9 + 1635 1632 1638 1641 9 1635 1632 1638 1644 9 + 1635 1632 1638 1647 9 1635 1632 1650 1653 14 + 1635 1632 -1650 1653 15 1635 1632 1650 1656 3 + 1632 1650 1656 1659 2 1629 1626 1632 1635 3 + 1629 1626 1632 1638 3 1629 1626 1632 1650 3 + 1626 1632 1638 1641 9 1626 1632 1638 1644 9 + 1626 1632 1638 1647 9 1713 1710 1716 1719 1 + 1713 1710 -1716 1719 2 1710 1716 1722 1725 3 + 1701 1698 1704 1707 19 1695 1692 1698 1701 19 + 1695 1692 1698 1704 19 1692 1698 1704 1707 19 + 1689 1686 1692 1695 19 1689 1686 1692 1698 19 + 1686 1692 1698 1701 19 1683 1680 1677 1704 19 + 1683 1680 1686 1689 19 1683 1680 1686 1692 19 + 1680 1677 1704 1707 19 1680 1686 1692 1695 19 + 1677 1680 1686 1689 19 1677 1704 1698 1701 19 + 1674 1668 1662 1710 9 1674 1668 1677 1680 3 + 1674 1668 1677 1704 3 1671 1668 1662 1710 9 + 1671 1668 1677 1680 3 1671 1668 1677 1704 3 + 1668 1677 1680 1683 19 1668 1677 1704 1707 19 + 1665 1662 1668 1671 9 1665 1662 1668 1674 9 + 1665 1662 1668 1677 9 1665 1662 1710 1713 14 + 1665 1662 -1710 1713 15 1665 1662 1710 1716 3 + 1662 1710 1716 1719 2 1659 1656 1662 1665 3 + 1659 1656 1662 1668 3 1659 1656 1662 1710 3 + 1656 1662 1668 1671 9 1656 1662 1668 1674 9 + 1755 1752 1758 1761 1 1755 1752 -1758 1761 2 + 1752 1758 1764 1767 3 1743 1734 1728 1746 25 + 1743 1734 -1728 1746 26 1740 1734 1728 1746 25 + 1740 1734 -1728 1746 26 1737 1734 1728 1746 25 + 1737 1734 -1728 1746 26 1734 1728 1746 1749 25 + 1734 1728 -1746 1749 20 1731 1728 1722 1752 9 + 1731 1728 1734 1737 9 1731 1728 1734 1740 9 + 1731 1728 1734 1743 9 1731 1728 1746 1749 27 + 1725 1722 1728 1731 9 1725 1722 1728 1734 9 + 1725 1722 1728 1746 25 1725 1722 -1728 1746 26 + 1725 1722 1752 1755 14 1725 1722 -1752 1755 15 + 1725 1722 1752 1758 3 1722 1728 1734 1737 20 + 1722 1728 1734 1740 20 1722 1728 1734 1743 20 + 1722 1728 1746 1749 25 1722 1728 -1746 1749 20 + 1722 1752 1758 1761 2 1719 1716 1722 1725 3 + 1719 1716 1722 1728 3 1719 1716 1722 1752 3 + 1716 1722 1728 1731 9 1818 1815 1821 1824 1 + 1818 1815 -1821 1824 2 1815 1821 1827 1830 3 + 1806 1803 1809 1812 19 1800 1797 1794 1803 28 + 1797 1794 1803 1806 19 1794 1803 1809 1812 19 + 1791 1788 1794 1797 19 1791 1788 1794 1803 19 + 1788 1794 1797 1800 28 1788 1794 1803 1806 19 + 1785 1782 1779 1809 19 1785 1782 1788 1791 19 + 1785 1782 1788 1794 19 1782 1779 1809 1812 19 + 1779 1782 1788 1791 19 1779 1809 1803 1806 19 + 1776 1770 1764 1815 9 1776 1770 1779 1782 3 + 1776 1770 1779 1809 3 1773 1770 1764 1815 9 + 1773 1770 1779 1782 3 1773 1770 1779 1809 3 + 1770 1779 1782 1785 19 1770 1779 1809 1812 19 + 1767 1764 1770 1773 9 1767 1764 1770 1776 9 + 1767 1764 1770 1779 9 1767 1764 1815 1818 14 + 1767 1764 -1815 1818 15 1767 1764 1815 1821 3 + 1764 1815 1821 1824 2 1761 1758 1764 1767 3 + 1761 1758 1764 1770 3 1761 1758 1764 1815 3 + 1758 1764 1770 1773 9 1758 1764 1770 1776 9 + 1866 1863 1869 1872 1 1866 1863 -1869 1872 2 + 1863 1869 1875 1878 3 1863 1869 1875 1881 3 + 1848 1839 1833 1851 20 1845 1839 1833 1851 20 + 1842 1839 1833 1851 20 1839 1833 1851 1854 20 + 1839 1833 1851 1857 20 1839 1833 1851 1860 20 + 1836 1833 1827 1863 9 1836 1833 1839 1842 21 + 1836 1833 1839 1845 21 1836 1833 1839 1848 21 + 1836 1833 1851 1854 21 1836 1833 1851 1857 21 + 1836 1833 1851 1860 21 1830 1827 1833 1836 9 + 1830 1827 1833 1839 9 1830 1827 1833 1851 9 + 1830 1827 1863 1866 14 1830 1827 -1863 1866 15 + 1830 1827 1863 1869 3 1827 1833 1839 1842 20 + 1827 1833 1839 1845 20 1827 1833 1839 1848 20 + 1827 1833 1851 1854 20 1827 1833 1851 1857 20 + 1827 1833 1851 1860 20 1827 1863 1869 1872 2 + 1824 1821 1827 1830 3 1824 1821 1827 1833 3 + 1824 1821 1827 1863 3 1821 1827 1833 1836 9 + 1887 1884 1890 1893 1 1887 1884 -1890 1893 2 + 1884 1890 1896 1899 3 1881 1875 1884 1887 14 + 1881 1875 -1884 1887 15 1881 1875 1884 1890 3 + 1878 1875 1884 1887 14 1878 1875 -1884 1887 15 + 1878 1875 1884 1890 3 1875 1884 1890 1893 2 + 1872 1869 1875 1878 3 1872 1869 1875 1881 3 + 1872 1869 1875 1884 3 1938 1935 1941 1944 1 + 1938 1935 -1941 1944 2 1935 1941 1947 1950 3 + 1923 1920 1926 1929 1 1923 1920 -1926 1929 2 + 1923 1920 1926 1932 1 1923 1920 -1926 1932 2 + 1917 1911 1920 1923 14 1917 1911 -1920 1923 3 + 1917 1911 -1920 1923 15 1917 1911 1920 1926 3 + 1914 1911 1920 1923 14 1914 1911 -1920 1923 3 + 1914 1911 -1920 1923 15 1914 1911 1920 1926 3 + 1911 1920 1926 1929 2 1911 1920 1926 1932 2 + 1908 1902 1896 1935 9 1908 1902 1911 1914 21 + 1908 1902 1911 1917 21 1908 1902 1911 1920 9 + 1905 1902 1896 1935 9 1905 1902 1911 1914 21 + 1905 1902 1911 1917 21 1905 1902 1911 1920 9 + 1899 1896 1902 1905 9 1899 1896 1902 1908 9 + 1899 1896 1902 1911 9 1899 1896 1935 1938 14 + 1899 1896 -1935 1938 15 1899 1896 1935 1941 3 + 1896 1902 1911 1914 20 1896 1902 1911 1917 20 + 1896 1935 1941 1944 2 1893 1890 1896 1899 3 + 1893 1890 1896 1902 3 1893 1890 1896 1935 3 + 1890 1896 1902 1905 9 1890 1896 1902 1908 9 + 1998 1995 2001 2004 1 1998 1995 -2001 2004 2 + 1995 2001 2007 2010 3 1986 1983 1989 1992 19 + 1980 1977 1983 1986 19 1980 1977 1983 1989 19 + 1977 1983 1989 1992 19 1974 1971 1977 1980 19 + 1974 1971 1977 1983 19 1971 1977 1983 1986 19 + 1968 1965 1962 1989 19 1968 1965 1971 1974 19 + 1968 1965 1971 1977 19 1965 1962 1989 1992 19 + 1965 1971 1977 1980 19 1962 1965 1971 1974 19 + 1962 1989 1983 1986 19 1959 1953 1947 1995 9 + 1959 1953 1962 1965 3 1959 1953 1962 1989 3 + 1956 1953 1947 1995 9 1956 1953 1962 1965 3 + 1956 1953 1962 1989 3 1953 1962 1965 1968 19 + 1953 1962 1989 1992 19 1950 1947 1953 1956 9 + 1950 1947 1953 1959 9 1950 1947 1953 1962 9 + 1950 1947 1995 1998 14 1950 1947 -1995 1998 15 + 1950 1947 1995 2001 3 1947 1995 2001 2004 2 + 1944 1941 1947 1950 3 1944 1941 1947 1953 3 + 1944 1941 1947 1995 3 1941 1947 1953 1956 9 + 1941 1947 1953 1959 9 2064 2061 2067 2070 1 + 2064 2061 -2067 2070 2 2061 2067 2073 2076 3 + 2046 2040 2049 2052 9 2046 2040 2049 2055 9 + 2046 2040 2049 2058 9 2043 2040 2049 2052 9 + 2043 2040 2049 2055 9 2043 2040 2049 2058 9 + 2037 2031 2040 2043 9 2037 2031 2040 2046 9 + 2037 2031 2040 2049 9 2034 2031 2040 2043 9 + 2034 2031 2040 2046 9 2034 2031 2040 2049 9 + 2031 2040 2049 2052 9 2031 2040 2049 2055 9 + 2031 2040 2049 2058 9 2028 2022 2031 2034 21 + 2028 2022 2031 2037 21 2028 2022 2031 2040 20 + 2025 2022 2031 2034 21 2025 2022 2031 2037 21 + 2025 2022 2031 2040 20 2022 2031 2040 2043 9 + 2022 2031 2040 2046 9 2019 2013 2007 2061 9 + 2019 2013 2022 2025 21 2019 2013 2022 2028 21 + 2019 2013 2022 2031 20 2016 2013 2007 2061 9 + 2016 2013 2022 2025 21 2016 2013 2022 2028 21 + 2016 2013 2022 2031 20 2013 2022 2031 2034 20 + 2013 2022 2031 2037 20 2010 2007 2013 2016 9 + 2010 2007 2013 2019 9 2010 2007 2013 2022 9 + 2010 2007 2061 2064 14 2010 2007 -2061 2064 15 + 2010 2007 2061 2067 3 2007 2013 2022 2025 20 + 2007 2013 2022 2028 20 2007 2061 2067 2070 2 + 2004 2001 2007 2010 3 2004 2001 2007 2013 3 + 2004 2001 2007 2061 3 2001 2007 2013 2016 9 + 2001 2007 2013 2019 9 2100 2097 2103 2106 1 + 2100 2097 -2103 2106 2 2097 2103 2109 2112 3 + 2085 2079 2073 2097 9 2085 2079 2088 2091 3 + 2085 2079 2088 2094 3 2082 2079 2073 2097 9 + 2082 2079 2088 2091 3 2082 2079 2088 2094 3 + 2076 2073 2079 2082 9 2076 2073 2079 2085 9 + 2076 2073 2079 2088 9 2076 2073 2097 2100 14 + 2076 2073 -2097 2100 15 2076 2073 2097 2103 3 + 2073 2097 2103 2106 2 2070 2067 2073 2076 3 + 2070 2067 2073 2079 3 2070 2067 2073 2097 3 + 2067 2073 2079 2082 9 2067 2073 2079 2085 9 + 2172 2169 2175 2178 1 2172 2169 -2175 2178 2 + 2169 2175 2181 2184 3 2157 2151 2148 2160 31 + 2154 2151 2148 2160 31 2151 2148 2160 2163 31 + 2151 2148 2160 2166 31 2145 2142 2148 2151 31 + 2145 2142 2148 2160 31 2142 2148 2151 2154 31 + 2142 2148 2151 2157 31 2142 2148 2160 2163 31 + 2142 2148 2160 2166 31 2139 2133 2142 2145 26 + 2139 2133 2142 2148 26 2136 2133 2142 2145 26 + 2136 2133 2142 2148 26 2130 2124 2133 2136 9 + 2130 2124 2133 2139 9 2130 2124 2133 2142 9 + 2127 2124 2133 2136 9 2127 2124 2133 2139 9 + 2127 2124 2133 2142 9 2124 2133 2142 2145 26 + 2121 2115 2109 2169 9 2121 2115 2124 2127 21 + 2121 2115 2124 2130 21 2121 2115 2124 2133 20 + 2118 2115 2109 2169 9 2118 2115 2124 2127 21 + 2118 2115 2124 2130 21 2118 2115 2124 2133 20 + 2115 2124 2133 2136 9 2115 2124 2133 2139 9 + 2112 2109 2115 2118 9 2112 2109 2115 2121 9 + 2112 2109 2115 2124 9 2112 2109 2169 2172 14 + 2112 2109 -2169 2172 15 2112 2109 2169 2175 3 + 2109 2115 2124 2127 20 2109 2115 2124 2130 20 + 2109 2169 2175 2178 2 2106 2103 2109 2112 3 + 2106 2103 2109 2115 3 2106 2103 2109 2169 3 + 2103 2109 2115 2118 9 2103 2109 2115 2121 9 + 2220 2217 2223 2226 1 2220 2217 -2223 2226 2 + 2217 2223 2229 2232 3 2202 2193 2187 2205 20 + 2199 2193 2187 2205 20 2196 2193 2187 2205 20 + 2193 2187 2205 2208 20 2193 2187 2205 2211 20 + 2193 2187 2205 2214 20 2190 2187 2181 2217 9 + 2190 2187 2193 2196 21 2190 2187 2193 2199 21 + 2190 2187 2193 2202 21 2190 2187 2205 2208 21 + 2190 2187 2205 2211 21 2190 2187 2205 2214 21 + 2184 2181 2187 2190 9 2184 2181 2187 2193 9 + 2184 2181 2187 2205 9 2184 2181 2217 2220 14 + 2184 2181 -2217 2220 15 2184 2181 2217 2223 3 + 2181 2187 2193 2196 20 2181 2187 2193 2199 20 + 2181 2187 2193 2202 20 2181 2187 2205 2208 20 + 2181 2187 2205 2211 20 2181 2187 2205 2214 20 + 2181 2217 2223 2226 2 2178 2175 2181 2184 3 + 2178 2175 2181 2187 3 2178 2175 2181 2217 3 + 2175 2181 2187 2190 9 2265 2262 2268 2271 1 + 2265 2262 -2268 2271 2 2262 2268 2274 2277 3 + 2250 2244 2253 2256 3 2250 2244 2253 2259 3 + 2247 2244 2253 2256 3 2247 2244 2253 2259 3 + 2241 2235 2229 2262 9 2241 2235 2244 2247 21 + 2241 2235 2244 2250 21 2241 2235 2244 2253 9 + 2238 2235 2229 2262 9 2238 2235 2244 2247 21 + 2238 2235 2244 2250 21 2238 2235 2244 2253 9 + 2232 2229 2235 2238 9 2232 2229 2235 2241 9 + 2232 2229 2235 2244 9 2232 2229 2262 2265 14 + 2232 2229 -2262 2265 15 2232 2229 2262 2268 3 + 2229 2235 2244 2247 20 2229 2235 2244 2250 20 + 2229 2262 2268 2271 2 2226 2223 2229 2232 3 + 2226 2223 2229 2235 3 2226 2223 2229 2262 3 + 2223 2229 2235 2238 9 2223 2229 2235 2241 9 + 2331 2328 2334 2337 1 2331 2328 -2334 2337 2 + 2328 2334 2340 2343 3 2313 2307 2316 2319 9 + 2313 2307 2316 2322 9 2313 2307 2316 2325 9 + 2310 2307 2316 2319 9 2310 2307 2316 2322 9 + 2310 2307 2316 2325 9 2304 2298 2307 2310 9 + 2304 2298 2307 2313 9 2304 2298 2307 2316 9 + 2301 2298 2307 2310 9 2301 2298 2307 2313 9 + 2301 2298 2307 2316 9 2298 2307 2316 2319 9 + 2298 2307 2316 2322 9 2298 2307 2316 2325 9 + 2295 2289 2298 2301 21 2295 2289 2298 2304 21 + 2295 2289 2298 2307 20 2292 2289 2298 2301 21 + 2292 2289 2298 2304 21 2292 2289 2298 2307 20 + 2289 2298 2307 2310 9 2289 2298 2307 2313 9 + 2286 2280 2274 2328 9 2286 2280 2289 2292 21 + 2286 2280 2289 2295 21 2286 2280 2289 2298 20 + 2283 2280 2274 2328 9 2283 2280 2289 2292 21 + 2283 2280 2289 2295 21 2283 2280 2289 2298 20 + 2280 2289 2298 2301 20 2280 2289 2298 2304 20 + 2277 2274 2280 2283 9 2277 2274 2280 2286 9 + 2277 2274 2280 2289 9 2277 2274 2328 2331 14 + 2277 2274 -2328 2331 15 2277 2274 2328 2334 3 + 2274 2280 2289 2292 20 2274 2280 2289 2295 20 + 2274 2328 2334 2337 2 2271 2268 2274 2277 3 + 2271 2268 2274 2280 3 2271 2268 2274 2328 3 + 2268 2274 2280 2283 9 2268 2274 2280 2286 9 + 2388 2385 2391 2394 1 2388 2385 -2391 2394 2 + 2385 2391 2397 2400 3 2370 2361 2355 2373 20 + 2367 2361 2355 2373 20 2364 2361 2355 2373 20 + 2361 2355 2373 2376 20 2361 2355 2373 2379 20 + 2361 2355 2373 2382 20 2358 2355 2361 2364 21 + 2358 2355 2361 2367 21 2358 2355 2361 2370 21 + 2358 2355 2373 2376 21 2358 2355 2373 2379 21 + 2358 2355 2373 2382 21 2352 2346 2340 2385 9 + 2352 2346 2355 2358 21 2352 2346 2355 2361 20 + 2352 2346 2355 2373 20 2349 2346 2340 2385 9 + 2349 2346 2355 2358 21 2349 2346 2355 2361 20 + 2349 2346 2355 2373 20 2346 2355 2361 2364 20 + 2346 2355 2361 2367 20 2346 2355 2361 2370 20 + 2346 2355 2373 2376 20 2346 2355 2373 2379 20 + 2346 2355 2373 2382 20 2343 2340 2346 2349 9 + 2343 2340 2346 2352 9 2343 2340 2346 2355 9 + 2343 2340 2385 2388 14 2343 2340 -2385 2388 15 + 2343 2340 2385 2391 3 2340 2346 2355 2358 20 + 2340 2385 2391 2394 2 2337 2334 2340 2343 3 + 2337 2334 2340 2346 3 2337 2334 2340 2385 3 + 2334 2340 2346 2349 9 2334 2340 2346 2352 9 + 2421 2418 2424 2427 1 2421 2418 -2424 2427 2 + 2418 2424 2430 2433 3 2409 2403 2397 2418 9 + 2409 2403 2412 2415 34 2406 2403 2397 2418 9 + 2406 2403 2412 2415 34 2400 2397 2403 2406 9 + 2400 2397 2403 2409 9 2400 2397 2403 2412 9 + 2400 2397 2418 2421 14 2400 2397 -2418 2421 15 + 2400 2397 2418 2424 3 2397 2403 2412 2415 34 + 2397 2418 2424 2427 2 2394 2391 2397 2400 3 + 2394 2391 2397 2403 3 2394 2391 2397 2418 3 + 2391 2397 2403 2406 9 2391 2397 2403 2409 9 + 2451 2448 2454 2457 1 2451 2448 -2454 2457 2 + 2448 2454 2460 2463 3 2445 2436 2430 2448 9 + 2442 2436 2430 2448 9 2439 2436 2430 2448 9 + 2433 2430 2436 2439 9 2433 2430 2436 2442 9 + 2433 2430 2436 2445 9 2433 2430 2448 2451 14 + 2433 2430 -2448 2451 15 2433 2430 2448 2454 3 + 2430 2448 2454 2457 2 2427 2424 2430 2433 3 + 2427 2424 2430 2436 3 2427 2424 2430 2448 3 + 2424 2430 2436 2439 9 2424 2430 2436 2442 9 + 2424 2430 2436 2445 9 2496 2493 2499 2502 1 + 2496 2493 -2499 2502 2 2493 2499 2505 2508 3 + 2481 2475 2484 2487 3 2481 2475 2484 2490 3 + 2478 2475 2484 2487 3 2478 2475 2484 2490 3 + 2472 2466 2460 2493 9 2472 2466 2475 2478 21 + 2472 2466 2475 2481 21 2472 2466 2475 2484 9 + 2469 2466 2460 2493 9 2469 2466 2475 2478 21 + 2469 2466 2475 2481 21 2469 2466 2475 2484 9 + 2463 2460 2466 2469 9 2463 2460 2466 2472 9 + 2463 2460 2466 2475 9 2463 2460 2493 2496 14 + 2463 2460 -2493 2496 15 2463 2460 2493 2499 3 + 2460 2466 2475 2478 20 2460 2466 2475 2481 20 + 2460 2493 2499 2502 2 2457 2454 2460 2463 3 + 2457 2454 2460 2466 3 2457 2454 2460 2493 3 + 2454 2460 2466 2469 9 2454 2460 2466 2472 9 + 2556 2553 2559 2562 1 2556 2553 -2559 2562 2 + 2553 2559 2565 2568 3 2544 2541 2547 2550 19 + 2538 2535 2541 2544 19 2538 2535 2541 2547 19 + 2535 2541 2547 2550 19 2532 2529 2535 2538 19 + 2532 2529 2535 2541 19 2529 2535 2541 2544 19 + 2526 2523 2520 2547 19 2526 2523 2529 2532 19 + 2526 2523 2529 2535 19 2523 2520 2547 2550 19 + 2523 2529 2535 2538 19 2520 2523 2529 2532 19 + 2520 2547 2541 2544 19 2517 2511 2505 2553 9 + 2517 2511 2520 2523 3 2517 2511 2520 2547 3 + 2514 2511 2505 2553 9 2514 2511 2520 2523 3 + 2514 2511 2520 2547 3 2511 2520 2523 2526 19 + 2511 2520 2547 2550 19 2508 2505 2511 2514 9 + 2508 2505 2511 2517 9 2508 2505 2511 2520 9 + 2508 2505 2553 2556 14 2508 2505 -2553 2556 15 + 2508 2505 2553 2559 3 2505 2553 2559 2562 2 + 2502 2499 2505 2508 3 2502 2499 2505 2511 3 + 2502 2499 2505 2553 3 2499 2505 2511 2514 9 + 2499 2505 2511 2517 9 2595 2601 2604 2607 3 + 2595 2601 2604 2610 3 2595 2601 2631 2634 3 + 2583 2580 2586 2589 1 2583 2580 -2586 2589 2 + 2583 2580 2586 2592 1 2583 2580 -2586 2592 2 + 2577 2571 2565 2595 9 2577 2571 2580 2583 14 + 2577 2571 -2580 2583 3 2577 2571 -2580 2583 15 + 2577 2571 2580 2586 3 2574 2571 2565 2595 9 + 2574 2571 2580 2583 14 2574 2571 -2580 2583 3 + 2574 2571 -2580 2583 15 2574 2571 2580 2586 3 + 2571 2580 2586 2589 2 2571 2580 2586 2592 2 + 2568 2565 2571 2574 9 2568 2565 2571 2577 9 + 2568 2565 2571 2580 9 2568 2565 2595 2598 14 + 2568 2565 -2595 2598 15 2568 2565 2595 2601 3 + 2562 2559 2565 2568 3 2562 2559 2565 2571 3 + 2562 2559 2565 2595 3 2559 2565 2571 2574 9 + 2559 2565 2571 2577 9 2640 2637 2643 2646 1 + 2640 2637 -2643 2646 2 2637 2643 2649 2652 3 + 2634 2631 2637 2640 14 2634 2631 -2637 2640 15 + 2634 2631 2637 2643 3 2631 2637 2643 2646 2 + 2628 2622 2631 2634 9 2628 2622 2631 2637 9 + 2625 2622 2631 2634 9 2625 2622 2631 2637 9 + 2619 2613 2622 2625 21 2619 2613 2622 2628 21 + 2619 2613 2622 2631 20 2616 2613 2622 2625 21 + 2616 2613 2622 2628 21 2616 2613 2622 2631 20 + 2613 2622 2631 2634 9 2610 2604 2601 2631 3 + 2610 2604 2613 2616 9 2610 2604 2613 2619 9 + 2610 2604 2613 2622 9 2607 2604 2601 2631 3 + 2607 2604 2613 2616 9 2607 2604 2613 2619 9 + 2607 2604 2613 2622 9 2604 2601 2631 2634 3 + 2604 2613 2622 2625 20 2604 2613 2622 2628 20 + 2601 2604 2613 2616 9 2601 2604 2613 2619 9 + 2601 2631 2622 2625 9 2601 2631 2622 2628 9 + 2670 2667 2673 2676 1 2670 2667 -2673 2676 2 + 2667 2673 2679 2682 3 2664 2655 2649 2667 9 + 2661 2655 2649 2667 9 2658 2655 2649 2667 9 + 2652 2649 2655 2658 9 2652 2649 2655 2661 9 + 2652 2649 2655 2664 9 2652 2649 2667 2670 14 + 2652 2649 -2667 2670 15 2652 2649 2667 2673 3 + 2649 2667 2673 2676 2 2646 2643 2649 2652 3 + 2646 2643 2649 2655 3 2646 2643 2649 2667 3 + 2643 2649 2655 2658 9 2643 2649 2655 2661 9 + 2643 2649 2655 2664 9 2700 2697 2703 2706 1 + 2700 2697 -2703 2706 2 2697 2703 2709 2712 3 + 2694 2685 2679 2697 9 2691 2685 2679 2697 9 + 2688 2685 2679 2697 9 2682 2679 2685 2688 9 + 2682 2679 2685 2691 9 2682 2679 2685 2694 9 + 2682 2679 2697 2700 14 2682 2679 -2697 2700 15 + 2682 2679 2697 2703 3 2679 2697 2703 2706 2 + 2676 2673 2679 2682 3 2676 2673 2679 2685 3 + 2676 2673 2679 2697 3 2673 2679 2685 2688 9 + 2673 2679 2685 2691 9 2673 2679 2685 2694 9 + 2748 2745 2751 2754 1 2748 2745 -2751 2754 2 + 2745 2751 2757 2760 3 2730 2721 2715 2733 20 + 2727 2721 2715 2733 20 2724 2721 2715 2733 20 + 2721 2715 2733 2736 20 2721 2715 2733 2739 20 + 2721 2715 2733 2742 20 2718 2715 2709 2745 9 + 2718 2715 2721 2724 21 2718 2715 2721 2727 21 + 2718 2715 2721 2730 21 2718 2715 2733 2736 21 + 2718 2715 2733 2739 21 2718 2715 2733 2742 21 + 2712 2709 2715 2718 9 2712 2709 2715 2721 9 + 2712 2709 2715 2733 9 2712 2709 2745 2748 14 + 2712 2709 -2745 2748 15 2712 2709 2745 2751 3 + 2709 2715 2721 2724 20 2709 2715 2721 2727 20 + 2709 2715 2721 2730 20 2709 2715 2733 2736 20 + 2709 2715 2733 2739 20 2709 2715 2733 2742 20 + 2709 2745 2751 2754 2 2706 2703 2709 2712 3 + 2706 2703 2709 2715 3 2706 2703 2709 2745 3 + 2703 2709 2715 2718 9 2802 2808 2811 2814 3 + 2802 2808 2811 2817 3 2802 2808 2838 2841 3 + 2787 2778 2772 2790 20 2784 2778 2772 2790 20 + 2781 2778 2772 2790 20 2778 2772 2790 2793 20 + 2778 2772 2790 2796 20 2778 2772 2790 2799 20 + 2775 2772 2778 2781 21 2775 2772 2778 2784 21 + 2775 2772 2778 2787 21 2775 2772 2790 2793 21 + 2775 2772 2790 2796 21 2775 2772 2790 2799 21 + 2769 2763 2757 2802 9 2769 2763 2772 2775 21 + 2769 2763 2772 2778 20 2769 2763 2772 2790 20 + 2766 2763 2757 2802 9 2766 2763 2772 2775 21 + 2766 2763 2772 2778 20 2766 2763 2772 2790 20 + 2763 2772 2778 2781 20 2763 2772 2778 2784 20 + 2763 2772 2778 2787 20 2763 2772 2790 2793 20 + 2763 2772 2790 2796 20 2763 2772 2790 2799 20 + 2760 2757 2763 2766 9 2760 2757 2763 2769 9 + 2760 2757 2763 2772 9 2760 2757 2802 2805 14 + 2760 2757 -2802 2805 15 2760 2757 2802 2808 3 + 2757 2763 2772 2775 20 2754 2751 2757 2760 3 + 2754 2751 2757 2763 3 2754 2751 2757 2802 3 + 2751 2757 2763 2766 9 2751 2757 2763 2769 9 + 2847 2844 2850 2853 1 2847 2844 -2850 2853 2 + 2844 2850 2856 2859 3 2841 2838 2844 2847 14 + 2841 2838 -2844 2847 15 2841 2838 2844 2850 3 + 2838 2844 2850 2853 2 2835 2829 2838 2841 9 + 2835 2829 2838 2844 9 2832 2829 2838 2841 9 + 2832 2829 2838 2844 9 2826 2820 2829 2832 21 + 2826 2820 2829 2835 21 2826 2820 2829 2838 20 + 2823 2820 2829 2832 21 2823 2820 2829 2835 21 + 2823 2820 2829 2838 20 2820 2829 2838 2841 9 + 2817 2811 2808 2838 3 2817 2811 2820 2823 9 + 2817 2811 2820 2826 9 2817 2811 2820 2829 9 + 2814 2811 2808 2838 3 2814 2811 2820 2823 9 + 2814 2811 2820 2826 9 2814 2811 2820 2829 9 + 2811 2808 2838 2841 3 2811 2820 2829 2832 20 + 2811 2820 2829 2835 20 2808 2811 2820 2823 9 + 2808 2811 2820 2826 9 2808 2838 2829 2832 9 + 2808 2838 2829 2835 9 2880 2877 2883 2886 1 + 2880 2877 -2883 2886 2 2877 2883 2889 2892 3 + 2868 2862 2856 2877 9 2868 2862 2871 2874 34 + 2865 2862 2856 2877 9 2865 2862 2871 2874 34 + 2859 2856 2862 2865 9 2859 2856 2862 2868 9 + 2859 2856 2862 2871 9 2859 2856 2877 2880 14 + 2859 2856 -2877 2880 15 2859 2856 2877 2883 3 + 2856 2862 2871 2874 34 2856 2877 2883 2886 2 + 2853 2850 2856 2859 3 2853 2850 2856 2862 3 + 2853 2850 2856 2877 3 2850 2856 2862 2865 9 + 2850 2856 2862 2868 9 2916 2913 2919 2922 1 + 2916 2913 -2919 2922 2 2913 2919 2925 2928 3 + 2901 2895 2889 2913 9 2901 2895 2904 2907 3 + 2901 2895 2904 2910 3 2898 2895 2889 2913 9 + 2898 2895 2904 2907 3 2898 2895 2904 2910 3 + 2892 2889 2895 2898 9 2892 2889 2895 2901 9 + 2892 2889 2895 2904 9 2892 2889 2913 2916 14 + 2892 2889 -2913 2916 15 2892 2889 2913 2919 3 + 2889 2913 2919 2922 2 2886 2883 2889 2892 3 + 2886 2883 2889 2895 3 2886 2883 2889 2913 3 + 2883 2889 2895 2898 9 2883 2889 2895 2901 9 + 2964 2961 2967 2970 1 2964 2961 -2967 2970 2 + 2961 2967 2973 2976 3 2946 2937 2931 2949 20 + 2943 2937 2931 2949 20 2940 2937 2931 2949 20 + 2937 2931 2949 2952 20 2937 2931 2949 2955 20 + 2937 2931 2949 2958 20 2934 2931 2925 2961 9 + 2934 2931 2937 2940 21 2934 2931 2937 2943 21 + 2934 2931 2937 2946 21 2934 2931 2949 2952 21 + 2934 2931 2949 2955 21 2934 2931 2949 2958 21 + 2928 2925 2931 2934 9 2928 2925 2931 2937 9 + 2928 2925 2931 2949 9 2928 2925 2961 2964 14 + 2928 2925 -2961 2964 15 2928 2925 2961 2967 3 + 2925 2931 2937 2940 20 2925 2931 2937 2943 20 + 2925 2931 2937 2946 20 2925 2931 2949 2952 20 + 2925 2931 2949 2955 20 2925 2931 2949 2958 20 + 2925 2961 2967 2970 2 2922 2919 2925 2928 3 + 2922 2919 2925 2931 3 2922 2919 2925 2961 3 + 2919 2925 2931 2934 9 3021 3018 3024 3027 1 + 3021 3018 -3024 3027 2 3018 3024 3030 3033 3 + 3003 2997 3006 3009 21 3003 2997 3006 3012 21 + 3003 2997 3006 3015 21 3000 2997 3006 3009 21 + 3000 2997 3006 3012 21 3000 2997 3006 3015 21 + 2994 2985 2979 2997 20 2991 2985 2979 2997 20 + 2988 2985 2979 2997 20 2985 2979 2997 3000 20 + 2985 2979 2997 3003 20 2982 2979 2973 3018 9 + 2982 2979 2985 2988 21 2982 2979 2985 2991 21 + 2982 2979 2985 2994 21 2982 2979 2997 3000 21 + 2982 2979 2997 3003 21 2982 2979 2997 3006 20 + 2979 2997 3006 3009 20 2979 2997 3006 3012 20 + 2979 2997 3006 3015 20 2976 2973 2979 2982 9 + 2976 2973 2979 2985 9 2976 2973 2979 2997 9 + 2976 2973 3018 3021 14 2976 2973 -3018 3021 15 + 2976 2973 3018 3024 3 2973 2979 2985 2988 20 + 2973 2979 2985 2991 20 2973 2979 2985 2994 20 + 2973 2979 2997 3000 20 2973 2979 2997 3003 20 + 2973 3018 3024 3027 2 2970 2967 2973 2976 3 + 2970 2967 2973 2979 3 2970 2967 2973 3018 3 + 2967 2973 2979 2982 9 3054 3051 3057 3060 1 + 3054 3051 -3057 3060 2 3051 3057 3063 3066 3 + 3042 3036 3030 3051 9 3042 3036 3045 3048 27 + 3039 3036 3030 3051 9 3039 3036 3045 3048 27 + 3033 3030 3036 3039 9 3033 3030 3036 3042 9 + 3033 3030 3036 3045 25 3033 3030 -3036 3045 26 + 3033 3030 3051 3054 14 3033 3030 -3051 3054 15 + 3033 3030 3051 3057 3 3030 3036 3045 3048 25 + 3030 3036 -3045 3048 20 3030 3051 3057 3060 2 + 3027 3024 3030 3033 3 3027 3024 3030 3036 3 + 3027 3024 3030 3051 3 3024 3030 3036 3039 9 + 3024 3030 3036 3042 9 3090 3087 3093 3096 1 + 3090 3087 -3093 3096 2 3087 3093 3099 3102 3 + 3075 3069 3063 3087 9 3075 3069 3078 3081 3 + 3075 3069 3078 3084 3 3072 3069 3063 3087 9 + 3072 3069 3078 3081 3 3072 3069 3078 3084 3 + 3066 3063 3069 3072 9 3066 3063 3069 3075 9 + 3066 3063 3069 3078 9 3066 3063 3087 3090 14 + 3066 3063 -3087 3090 15 3066 3063 3087 3093 3 + 3063 3087 3093 3096 2 3060 3057 3063 3066 3 + 3060 3057 3063 3069 3 3060 3057 3063 3087 3 + 3057 3063 3069 3072 9 3057 3063 3069 3075 9 + 3141 3138 3144 3147 1 3141 3138 -3144 3147 2 + 3138 3144 3150 3153 3 3126 3123 3129 3132 1 + 3126 3123 -3129 3132 2 3126 3123 3129 3135 1 + 3126 3123 -3129 3135 2 3120 3114 3123 3126 14 + 3120 3114 -3123 3126 3 3120 3114 -3123 3126 15 + 3120 3114 3123 3129 3 3117 3114 3123 3126 14 + 3117 3114 -3123 3126 3 3117 3114 -3123 3126 15 + 3117 3114 3123 3129 3 3114 3123 3129 3132 2 + 3114 3123 3129 3135 2 3111 3105 3099 3138 9 + 3111 3105 3114 3117 21 3111 3105 3114 3120 21 + 3111 3105 3114 3123 9 3108 3105 3099 3138 9 + 3108 3105 3114 3117 21 3108 3105 3114 3120 21 + 3108 3105 3114 3123 9 3102 3099 3105 3108 9 + 3102 3099 3105 3111 9 3102 3099 3105 3114 9 + 3102 3099 3138 3141 14 3102 3099 -3138 3141 15 + 3102 3099 3138 3144 3 3099 3105 3114 3117 20 + 3099 3105 3114 3120 20 3099 3138 3144 3147 2 + 3096 3093 3099 3102 3 3096 3093 3099 3105 3 + 3096 3093 3099 3138 3 3093 3099 3105 3108 9 + 3093 3099 3105 3111 9 3186 3183 3189 3192 1 + 3186 3183 -3189 3192 2 3183 3189 3195 3198 3 + 3171 3165 3174 3177 3 3171 3165 3174 3180 3 + 3168 3165 3174 3177 3 3168 3165 3174 3180 3 + 3162 3156 3150 3183 9 3162 3156 3165 3168 21 + 3162 3156 3165 3171 21 3162 3156 3165 3174 9 + 3159 3156 3150 3183 9 3159 3156 3165 3168 21 + 3159 3156 3165 3171 21 3159 3156 3165 3174 9 + 3153 3150 3156 3159 9 3153 3150 3156 3162 9 + 3153 3150 3156 3165 9 3153 3150 3183 3186 14 + 3153 3150 -3183 3186 15 3153 3150 3183 3189 3 + 3150 3156 3165 3168 20 3150 3156 3165 3171 20 + 3150 3183 3189 3192 2 3147 3144 3150 3153 3 + 3147 3144 3150 3156 3 3147 3144 3150 3183 3 + 3144 3150 3156 3159 9 3144 3150 3156 3162 9 + 3243 3240 3246 3249 1 3243 3240 -3246 3249 2 + 3240 3246 3252 3255 3 3225 3219 3228 3231 21 + 3225 3219 3228 3234 21 3225 3219 3228 3237 21 + 3222 3219 3228 3231 21 3222 3219 3228 3234 21 + 3222 3219 3228 3237 21 3216 3207 3201 3219 20 + 3213 3207 3201 3219 20 3210 3207 3201 3219 20 + 3207 3201 3219 3222 20 3207 3201 3219 3225 20 + 3204 3201 3195 3240 9 3204 3201 3207 3210 21 + 3204 3201 3207 3213 21 3204 3201 3207 3216 21 + 3204 3201 3219 3222 21 3204 3201 3219 3225 21 + 3204 3201 3219 3228 20 3201 3219 3228 3231 20 + 3201 3219 3228 3234 20 3201 3219 3228 3237 20 + 3198 3195 3201 3204 9 3198 3195 3201 3207 9 + 3198 3195 3201 3219 9 3198 3195 3240 3243 14 + 3198 3195 -3240 3243 15 3198 3195 3240 3246 3 + 3195 3201 3207 3210 20 3195 3201 3207 3213 20 + 3195 3201 3207 3216 20 3195 3201 3219 3222 20 + 3195 3201 3219 3225 20 3195 3240 3246 3249 2 + 3192 3189 3195 3198 3 3192 3189 3195 3201 3 + 3192 3189 3195 3240 3 3189 3195 3201 3204 9 + 3309 3306 3312 3315 1 3309 3306 -3312 3315 2 + 3306 3312 3318 3321 3 3291 3285 3294 3297 9 + 3291 3285 3294 3300 9 3291 3285 3294 3303 9 + 3288 3285 3294 3297 9 3288 3285 3294 3300 9 + 3288 3285 3294 3303 9 3282 3276 3285 3288 9 + 3282 3276 3285 3291 9 3282 3276 3285 3294 9 + 3279 3276 3285 3288 9 3279 3276 3285 3291 9 + 3279 3276 3285 3294 9 3276 3285 3294 3297 9 + 3276 3285 3294 3300 9 3276 3285 3294 3303 9 + 3273 3267 3276 3279 21 3273 3267 3276 3282 21 + 3273 3267 3276 3285 20 3270 3267 3276 3279 21 + 3270 3267 3276 3282 21 3270 3267 3276 3285 20 + 3267 3276 3285 3288 9 3267 3276 3285 3291 9 + 3264 3258 3252 3306 9 3264 3258 3267 3270 21 + 3264 3258 3267 3273 21 3264 3258 3267 3276 20 + 3261 3258 3252 3306 9 3261 3258 3267 3270 21 + 3261 3258 3267 3273 21 3261 3258 3267 3276 20 + 3258 3267 3276 3279 20 3258 3267 3276 3282 20 + 3255 3252 3258 3261 9 3255 3252 3258 3264 9 + 3255 3252 3258 3267 9 3255 3252 3306 3309 14 + 3255 3252 -3306 3309 15 3255 3252 3306 3312 3 + 3252 3258 3267 3270 20 3252 3258 3267 3273 20 + 3252 3306 3312 3315 2 3249 3246 3252 3255 3 + 3249 3246 3252 3258 3 3249 3246 3252 3306 3 + 3246 3252 3258 3261 9 3246 3252 3258 3264 9 + 3345 3342 3348 3351 1 3345 3342 -3348 3351 2 + 3342 3348 3354 3357 3 3330 3324 3318 3342 9 + 3330 3324 3333 3336 3 3330 3324 3333 3339 3 + 3327 3324 3318 3342 9 3327 3324 3333 3336 3 + 3327 3324 3333 3339 3 3321 3318 3324 3327 9 + 3321 3318 3324 3330 9 3321 3318 3324 3333 9 + 3321 3318 3342 3345 14 3321 3318 -3342 3345 15 + 3321 3318 3342 3348 3 3318 3342 3348 3351 2 + 3315 3312 3318 3321 3 3315 3312 3318 3324 3 + 3315 3312 3318 3342 3 3312 3318 3324 3327 9 + 3312 3318 3324 3330 9 3402 3399 3405 3408 1 + 3402 3399 -3405 3408 2 3399 3405 3411 3414 3 + 3384 3375 3369 3387 20 3381 3375 3369 3387 20 + 3378 3375 3369 3387 20 3375 3369 3387 3390 20 + 3375 3369 3387 3393 20 3375 3369 3387 3396 20 + 3372 3369 3375 3378 21 3372 3369 3375 3381 21 + 3372 3369 3375 3384 21 3372 3369 3387 3390 21 + 3372 3369 3387 3393 21 3372 3369 3387 3396 21 + 3366 3360 3354 3399 9 3366 3360 3369 3372 21 + 3366 3360 3369 3375 20 3366 3360 3369 3387 20 + 3363 3360 3354 3399 9 3363 3360 3369 3372 21 + 3363 3360 3369 3375 20 3363 3360 3369 3387 20 + 3360 3369 3375 3378 20 3360 3369 3375 3381 20 + 3360 3369 3375 3384 20 3360 3369 3387 3390 20 + 3360 3369 3387 3393 20 3360 3369 3387 3396 20 + 3357 3354 3360 3363 9 3357 3354 3360 3366 9 + 3357 3354 3360 3369 9 3357 3354 3399 3402 14 + 3357 3354 -3399 3402 15 3357 3354 3399 3405 3 + 3354 3360 3369 3372 20 3354 3399 3405 3408 2 + 3351 3348 3354 3357 3 3351 3348 3354 3360 3 + 3351 3348 3354 3399 3 3348 3354 3360 3363 9 + 3348 3354 3360 3366 9 3462 3459 3465 3468 1 + 3462 3459 -3465 3468 2 3459 3465 3471 3474 3 + 3450 3447 3453 3456 19 3444 3441 3447 3450 19 + 3444 3441 3447 3453 19 3441 3447 3453 3456 19 + 3438 3435 3441 3444 19 3438 3435 3441 3447 19 + 3435 3441 3447 3450 19 3432 3429 3426 3453 19 + 3432 3429 3435 3438 19 3432 3429 3435 3441 19 + 3429 3426 3453 3456 19 3429 3435 3441 3444 19 + 3426 3429 3435 3438 19 3426 3453 3447 3450 19 + 3423 3417 3411 3459 9 3423 3417 3426 3429 3 + 3423 3417 3426 3453 3 3420 3417 3411 3459 9 + 3420 3417 3426 3429 3 3420 3417 3426 3453 3 + 3417 3426 3429 3432 19 3417 3426 3453 3456 19 + 3414 3411 3417 3420 9 3414 3411 3417 3423 9 + 3414 3411 3417 3426 9 3414 3411 3459 3462 14 + 3414 3411 -3459 3462 15 3414 3411 3459 3465 3 + 3411 3459 3465 3468 2 3408 3405 3411 3414 3 + 3408 3405 3411 3417 3 3408 3405 3411 3459 3 + 3405 3411 3417 3420 9 3405 3411 3417 3423 9 + 3510 3507 3513 3516 1 3510 3507 -3513 3516 2 + 3507 3513 3519 3522 3 3492 3483 3477 3495 20 + 3489 3483 3477 3495 20 3486 3483 3477 3495 20 + 3483 3477 3495 3498 20 3483 3477 3495 3501 20 + 3483 3477 3495 3504 20 3480 3477 3471 3507 9 + 3480 3477 3483 3486 21 3480 3477 3483 3489 21 + 3480 3477 3483 3492 21 3480 3477 3495 3498 21 + 3480 3477 3495 3501 21 3480 3477 3495 3504 21 + 3474 3471 3477 3480 9 3474 3471 3477 3483 9 + 3474 3471 3477 3495 9 3474 3471 3507 3510 14 + 3474 3471 -3507 3510 15 3474 3471 3507 3513 3 + 3471 3477 3483 3486 20 3471 3477 3483 3489 20 + 3471 3477 3483 3492 20 3471 3477 3495 3498 20 + 3471 3477 3495 3501 20 3471 3477 3495 3504 20 + 3471 3507 3513 3516 2 3468 3465 3471 3474 3 + 3468 3465 3471 3477 3 3468 3465 3471 3507 3 + 3465 3471 3477 3480 9 3555 3552 3558 3561 1 + 3555 3552 -3558 3561 2 3552 3558 3564 3567 3 + 3540 3534 3543 3546 3 3540 3534 3543 3549 3 + 3537 3534 3543 3546 3 3537 3534 3543 3549 3 + 3531 3525 3519 3552 9 3531 3525 3534 3537 21 + 3531 3525 3534 3540 21 3531 3525 3534 3543 9 + 3528 3525 3519 3552 9 3528 3525 3534 3537 21 + 3528 3525 3534 3540 21 3528 3525 3534 3543 9 + 3522 3519 3525 3528 9 3522 3519 3525 3531 9 + 3522 3519 3525 3534 9 3522 3519 3552 3555 14 + 3522 3519 -3552 3555 15 3522 3519 3552 3558 3 + 3519 3525 3534 3537 20 3519 3525 3534 3540 20 + 3519 3552 3558 3561 2 3516 3513 3519 3522 3 + 3516 3513 3519 3525 3 3516 3513 3519 3552 3 + 3513 3519 3525 3528 9 3513 3519 3525 3531 9 + 3612 3609 3615 3618 1 3612 3609 -3615 3618 2 + 3609 3615 3621 3624 3 3609 3615 3621 3627 3 + 3594 3585 3579 3597 20 3591 3585 3579 3597 20 + 3588 3585 3579 3597 20 3585 3579 3597 3600 20 + 3585 3579 3597 3603 20 3585 3579 3597 3606 20 + 3582 3579 3585 3588 21 3582 3579 3585 3591 21 + 3582 3579 3585 3594 21 3582 3579 3597 3600 21 + 3582 3579 3597 3603 21 3582 3579 3597 3606 21 + 3576 3570 3564 3609 9 3576 3570 3579 3582 21 + 3576 3570 3579 3585 20 3576 3570 3579 3597 20 + 3573 3570 3564 3609 9 3573 3570 3579 3582 21 + 3573 3570 3579 3585 20 3573 3570 3579 3597 20 + 3570 3579 3585 3588 20 3570 3579 3585 3591 20 + 3570 3579 3585 3594 20 3570 3579 3597 3600 20 + 3570 3579 3597 3603 20 3570 3579 3597 3606 20 + 3567 3564 3570 3573 9 3567 3564 3570 3576 9 + 3567 3564 3570 3579 9 3567 3564 3609 3612 14 + 3567 3564 -3609 3612 15 3567 3564 3609 3615 3 + 3564 3570 3579 3582 20 3564 3609 3615 3618 2 + 3561 3558 3564 3567 3 3561 3558 3564 3570 3 + 3561 3558 3564 3609 3 3558 3564 3570 3573 9 + 3558 3564 3570 3576 9 3633 3630 3636 3639 1 + 3633 3630 -3636 3639 2 3630 3636 3642 3645 3 + 3627 3621 3630 3633 14 3627 3621 -3630 3633 15 + 3627 3621 3630 3636 3 3624 3621 3630 3633 14 + 3624 3621 -3630 3633 15 3624 3621 3630 3636 3 + 3621 3630 3636 3639 2 3618 3615 3621 3624 3 + 3618 3615 3621 3627 3 3618 3615 3621 3630 3 + 3699 3696 3702 3705 1 3699 3696 -3702 3705 2 + 3696 3702 3708 3711 3 3681 3675 3684 3687 9 + 3681 3675 3684 3690 9 3681 3675 3684 3693 9 + 3678 3675 3684 3687 9 3678 3675 3684 3690 9 + 3678 3675 3684 3693 9 3672 3666 3675 3678 9 + 3672 3666 3675 3681 9 3672 3666 3675 3684 9 + 3669 3666 3675 3678 9 3669 3666 3675 3681 9 + 3669 3666 3675 3684 9 3666 3675 3684 3687 9 + 3666 3675 3684 3690 9 3666 3675 3684 3693 9 + 3663 3657 3666 3669 21 3663 3657 3666 3672 21 + 3663 3657 3666 3675 20 3660 3657 3666 3669 21 + 3660 3657 3666 3672 21 3660 3657 3666 3675 20 + 3657 3666 3675 3678 9 3657 3666 3675 3681 9 + 3654 3648 3642 3696 9 3654 3648 3657 3660 21 + 3654 3648 3657 3663 21 3654 3648 3657 3666 20 + 3651 3648 3642 3696 9 3651 3648 3657 3660 21 + 3651 3648 3657 3663 21 3651 3648 3657 3666 20 + 3648 3657 3666 3669 20 3648 3657 3666 3672 20 + 3645 3642 3648 3651 9 3645 3642 3648 3654 9 + 3645 3642 3648 3657 9 3645 3642 3696 3699 14 + 3645 3642 -3696 3699 15 3645 3642 3696 3702 3 + 3642 3648 3657 3660 20 3642 3648 3657 3663 20 + 3642 3696 3702 3705 2 3639 3636 3642 3645 3 + 3639 3636 3642 3648 3 3639 3636 3642 3696 3 + 3636 3642 3648 3651 9 3636 3642 3648 3654 9 + 3747 3744 3750 3753 1 3747 3744 -3750 3753 2 + 3744 3750 3756 3759 3 3729 3720 3714 3732 20 + 3726 3720 3714 3732 20 3723 3720 3714 3732 20 + 3720 3714 3732 3735 20 3720 3714 3732 3738 20 + 3720 3714 3732 3741 20 3717 3714 3708 3744 9 + 3717 3714 3720 3723 21 3717 3714 3720 3726 21 + 3717 3714 3720 3729 21 3717 3714 3732 3735 21 + 3717 3714 3732 3738 21 3717 3714 3732 3741 21 + 3711 3708 3714 3717 9 3711 3708 3714 3720 9 + 3711 3708 3714 3732 9 3711 3708 3744 3747 14 + 3711 3708 -3744 3747 15 3711 3708 3744 3750 3 + 3708 3714 3720 3723 20 3708 3714 3720 3726 20 + 3708 3714 3720 3729 20 3708 3714 3732 3735 20 + 3708 3714 3732 3738 20 3708 3714 3732 3741 20 + 3708 3744 3750 3753 2 3705 3702 3708 3711 3 + 3705 3702 3708 3714 3 3705 3702 3708 3744 3 + 3702 3708 3714 3717 9 3819 3816 3822 3825 1 + 3819 3816 -3822 3825 2 3816 3822 3828 3831 3 + 3804 3801 3807 3810 19 3804 3801 3807 3813 19 + 3798 3795 3801 3804 19 3798 3795 3801 3807 19 + 3795 3801 3807 3810 19 3792 3789 3786 3813 19 + 3792 3789 3795 3798 19 3792 3789 3795 3801 19 + 3789 3795 3801 3804 19 3786 3789 3795 3798 19 + 3786 3813 3807 3810 36 3783 3780 3786 3789 37 + 3783 3780 3786 3813 37 3780 3786 3789 3792 19 + 3777 3774 3771 3813 38 3777 3774 3780 3783 29 + 3777 3774 3780 3786 29 3771 3774 3780 3783 29 + 3771 3813 3807 3810 36 3768 3762 3756 3816 9 + 3768 3762 3771 3774 3 3768 3762 3771 3813 3 + 3765 3762 3756 3816 9 3765 3762 3771 3774 3 + 3765 3762 3771 3813 3 3762 3771 3774 3777 38 + 3759 3756 3762 3765 9 3759 3756 3762 3768 9 + 3759 3756 3762 3771 9 3759 3756 3816 3819 14 + 3759 3756 -3816 3819 15 3759 3756 3816 3822 3 + 3756 3816 3822 3825 2 3753 3750 3756 3759 3 + 3753 3750 3756 3762 3 3753 3750 3756 3816 3 + 3750 3756 3762 3765 9 3750 3756 3762 3768 9 + 3855 3852 3858 3861 1 3855 3852 -3858 3861 2 + 3852 3858 3864 3867 3 3852 3858 3864 3870 3 + 3840 3834 3828 3852 9 3840 3834 3843 3846 3 + 3840 3834 3843 3849 3 3837 3834 3828 3852 9 + 3837 3834 3843 3846 3 3837 3834 3843 3849 3 + 3831 3828 3834 3837 9 3831 3828 3834 3840 9 + 3831 3828 3834 3843 9 3831 3828 3852 3855 14 + 3831 3828 -3852 3855 15 3831 3828 3852 3858 3 + 3828 3852 3858 3861 2 3825 3822 3828 3831 3 + 3825 3822 3828 3834 3 3825 3822 3828 3852 3 + 3822 3828 3834 3837 9 3822 3828 3834 3840 9 + 3876 3873 3879 3882 1 3876 3873 -3879 3882 2 + 3873 3879 3885 3888 3 3870 3864 3873 3876 14 + 3870 3864 -3873 3876 15 3870 3864 3873 3879 3 + 3867 3864 3873 3876 14 3867 3864 -3873 3876 15 + 3867 3864 3873 3879 3 3864 3873 3879 3882 2 + 3861 3858 3864 3867 3 3861 3858 3864 3870 3 + 3861 3858 3864 3873 3 3933 3930 3936 3939 1 + 3933 3930 -3936 3939 2 3930 3936 3942 3945 3 + 3915 3906 3900 3918 20 3912 3906 3900 3918 20 + 3909 3906 3900 3918 20 3906 3900 3918 3921 20 + 3906 3900 3918 3924 20 3906 3900 3918 3927 20 + 3903 3900 3906 3909 21 3903 3900 3906 3912 21 + 3903 3900 3906 3915 21 3903 3900 3918 3921 21 + 3903 3900 3918 3924 21 3903 3900 3918 3927 21 + 3897 3891 3885 3930 9 3897 3891 3900 3903 21 + 3897 3891 3900 3906 20 3897 3891 3900 3918 20 + 3894 3891 3885 3930 9 3894 3891 3900 3903 21 + 3894 3891 3900 3906 20 3894 3891 3900 3918 20 + 3891 3900 3906 3909 20 3891 3900 3906 3912 20 + 3891 3900 3906 3915 20 3891 3900 3918 3921 20 + 3891 3900 3918 3924 20 3891 3900 3918 3927 20 + 3888 3885 3891 3894 9 3888 3885 3891 3897 9 + 3888 3885 3891 3900 9 3888 3885 3930 3933 14 + 3888 3885 -3930 3933 15 3888 3885 3930 3936 3 + 3885 3891 3900 3903 20 3885 3930 3936 3939 2 + 3882 3879 3885 3888 3 3882 3879 3885 3891 3 + 3882 3879 3885 3930 3 3879 3885 3891 3894 9 + 3879 3885 3891 3897 9 3969 3966 3972 3975 1 + 3969 3966 -3972 3975 2 3966 3972 3978 3981 3 + 3954 3948 3942 3966 9 3954 3948 3957 3960 3 + 3954 3948 3957 3963 3 3951 3948 3942 3966 9 + 3951 3948 3957 3960 3 3951 3948 3957 3963 3 + 3945 3942 3948 3951 9 3945 3942 3948 3954 9 + 3945 3942 3948 3957 9 3945 3942 3966 3969 14 + 3945 3942 -3966 3969 15 3945 3942 3966 3972 3 + 3942 3966 3972 3975 2 3939 3936 3942 3945 3 + 3939 3936 3942 3948 3 3939 3936 3942 3966 3 + 3936 3942 3948 3951 9 3936 3942 3948 3954 9 + 3999 3996 4002 4005 1 3999 3996 -4002 4005 2 + 3996 4002 4008 4011 3 3993 3984 3978 3996 9 + 3990 3984 3978 3996 9 3987 3984 3978 3996 9 + 3981 3978 3984 3987 9 3981 3978 3984 3990 9 + 3981 3978 3984 3993 9 3981 3978 3996 3999 14 + 3981 3978 -3996 3999 15 3981 3978 3996 4002 3 + 3978 3996 4002 4005 2 3975 3972 3978 3981 3 + 3975 3972 3978 3984 3 3975 3972 3978 3996 3 + 3972 3978 3984 3987 9 3972 3978 3984 3990 9 + 3972 3978 3984 3993 9 4056 4053 4059 4062 1 + 4056 4053 -4059 4062 2 4053 4059 4065 4068 3 + 4038 4032 4041 4044 21 4038 4032 4041 4047 21 + 4038 4032 4041 4050 21 4035 4032 4041 4044 21 + 4035 4032 4041 4047 21 4035 4032 4041 4050 21 + 4029 4020 4014 4032 20 4026 4020 4014 4032 20 + 4023 4020 4014 4032 20 4020 4014 4032 4035 20 + 4020 4014 4032 4038 20 4017 4014 4008 4053 9 + 4017 4014 4020 4023 21 4017 4014 4020 4026 21 + 4017 4014 4020 4029 21 4017 4014 4032 4035 21 + 4017 4014 4032 4038 21 4017 4014 4032 4041 20 + 4014 4032 4041 4044 20 4014 4032 4041 4047 20 + 4014 4032 4041 4050 20 4011 4008 4014 4017 9 + 4011 4008 4014 4020 9 4011 4008 4014 4032 9 + 4011 4008 4053 4056 14 4011 4008 -4053 4056 15 + 4011 4008 4053 4059 3 4008 4014 4020 4023 20 + 4008 4014 4020 4026 20 4008 4014 4020 4029 20 + 4008 4014 4032 4035 20 4008 4014 4032 4038 20 + 4008 4053 4059 4062 2 4005 4002 4008 4011 3 + 4005 4002 4008 4014 3 4005 4002 4008 4053 3 + 4002 4008 4014 4017 9 4104 4101 4107 4110 1 + 4104 4101 -4107 4110 2 4101 4107 4113 4116 3 + 4086 4077 4071 4089 20 4083 4077 4071 4089 20 + 4080 4077 4071 4089 20 4077 4071 4089 4092 20 + 4077 4071 4089 4095 20 4077 4071 4089 4098 20 + 4074 4071 4065 4101 9 4074 4071 4077 4080 21 + 4074 4071 4077 4083 21 4074 4071 4077 4086 21 + 4074 4071 4089 4092 21 4074 4071 4089 4095 21 + 4074 4071 4089 4098 21 4068 4065 4071 4074 9 + 4068 4065 4071 4077 9 4068 4065 4071 4089 9 + 4068 4065 4101 4104 14 4068 4065 -4101 4104 15 + 4068 4065 4101 4107 3 4065 4071 4077 4080 20 + 4065 4071 4077 4083 20 4065 4071 4077 4086 20 + 4065 4071 4089 4092 20 4065 4071 4089 4095 20 + 4065 4071 4089 4098 20 4065 4101 4107 4110 2 + 4062 4059 4065 4068 3 4062 4059 4065 4071 3 + 4062 4059 4065 4101 3 4059 4065 4071 4074 9 + 4155 4152 4158 4161 1 4155 4152 -4158 4161 2 + 4152 4158 4164 4167 3 4143 4140 4146 4149 29 + 4137 4134 4140 4143 30 4137 4134 4140 4146 30 + 4134 4140 4146 4149 29 4131 4128 4146 4149 32 + 4131 4134 4140 4143 30 4128 4131 4134 4137 33 + 4128 4146 4140 4143 29 4125 4119 4113 4152 9 + 4125 4119 4128 4131 3 4125 4119 4128 4146 3 + 4122 4119 4113 4152 9 4122 4119 4128 4131 3 + 4122 4119 4128 4146 3 4119 4128 4146 4149 32 + 4116 4113 4119 4122 9 4116 4113 4119 4125 9 + 4116 4113 4119 4128 9 4116 4113 4152 4155 14 + 4116 4113 -4152 4155 15 4116 4113 4152 4158 3 + 4113 4152 4158 4161 2 4110 4107 4113 4116 3 + 4110 4107 4113 4119 3 4110 4107 4113 4152 3 + 4107 4113 4119 4122 9 4107 4113 4119 4125 9 + 4188 4185 4191 4194 1 4188 4185 -4191 4194 2 + 4185 4191 4197 4200 3 4176 4170 4164 4185 9 + 4176 4170 4179 4182 27 4173 4170 4164 4185 9 + 4173 4170 4179 4182 27 4167 4164 4170 4173 9 + 4167 4164 4170 4176 9 4167 4164 4170 4179 25 + 4167 4164 -4170 4179 26 4167 4164 4185 4188 14 + 4167 4164 -4185 4188 15 4167 4164 4185 4191 3 + 4164 4170 4179 4182 25 4164 4170 -4179 4182 20 + 4164 4185 4191 4194 2 4161 4158 4164 4167 3 + 4161 4158 4164 4170 3 4161 4158 4164 4185 3 + 4158 4164 4170 4173 9 4158 4164 4170 4176 9 + 4245 4242 4248 4251 1 4245 4242 -4248 4251 2 + 4242 4248 4254 4257 3 4227 4221 4230 4233 21 + 4227 4221 4230 4236 21 4227 4221 4230 4239 21 + 4224 4221 4230 4233 21 4224 4221 4230 4236 21 + 4224 4221 4230 4239 21 4218 4209 4203 4221 20 + 4215 4209 4203 4221 20 4212 4209 4203 4221 20 + 4209 4203 4221 4224 20 4209 4203 4221 4227 20 + 4206 4203 4197 4242 9 4206 4203 4209 4212 21 + 4206 4203 4209 4215 21 4206 4203 4209 4218 21 + 4206 4203 4221 4224 21 4206 4203 4221 4227 21 + 4206 4203 4221 4230 20 4203 4221 4230 4233 20 + 4203 4221 4230 4236 20 4203 4221 4230 4239 20 + 4200 4197 4203 4206 9 4200 4197 4203 4209 9 + 4200 4197 4203 4221 9 4200 4197 4242 4245 14 + 4200 4197 -4242 4245 15 4200 4197 4242 4248 3 + 4197 4203 4209 4212 20 4197 4203 4209 4215 20 + 4197 4203 4209 4218 20 4197 4203 4221 4224 20 + 4197 4203 4221 4227 20 4197 4242 4248 4251 2 + 4194 4191 4197 4200 3 4194 4191 4197 4203 3 + 4194 4191 4197 4242 3 4191 4197 4203 4206 9 + 4275 4272 4278 4281 1 4275 4272 -4278 4281 2 + 4272 4278 4284 4287 3 4269 4260 4254 4272 9 + 4266 4260 4254 4272 9 4263 4260 4254 4272 9 + 4257 4254 4260 4263 9 4257 4254 4260 4266 9 + 4257 4254 4260 4269 9 4257 4254 4272 4275 14 + 4257 4254 -4272 4275 15 4257 4254 4272 4278 3 + 4254 4272 4278 4281 2 4251 4248 4254 4257 3 + 4251 4248 4254 4260 3 4251 4248 4254 4272 3 + 4248 4254 4260 4263 9 4248 4254 4260 4266 9 + 4248 4254 4260 4269 9 4335 4332 4338 4341 1 + 4335 4332 -4338 4341 2 4332 4338 4344 4347 3 + 4323 4320 4326 4329 19 4317 4314 4320 4323 19 + 4317 4314 4320 4326 19 4314 4320 4326 4329 19 + 4311 4308 4314 4317 19 4311 4308 4314 4320 19 + 4308 4314 4320 4323 19 4305 4302 4299 4326 19 + 4305 4302 4308 4311 19 4305 4302 4308 4314 19 + 4302 4299 4326 4329 19 4302 4308 4314 4317 19 + 4299 4302 4308 4311 19 4299 4326 4320 4323 19 + 4296 4290 4284 4332 9 4296 4290 4299 4302 3 + 4296 4290 4299 4326 3 4293 4290 4284 4332 9 + 4293 4290 4299 4302 3 4293 4290 4299 4326 3 + 4290 4299 4302 4305 19 4290 4299 4326 4329 19 + 4287 4284 4290 4293 9 4287 4284 4290 4296 9 + 4287 4284 4290 4299 9 4287 4284 4332 4335 14 + 4287 4284 -4332 4335 15 4287 4284 4332 4338 3 + 4284 4332 4338 4341 2 4281 4278 4284 4287 3 + 4281 4278 4284 4290 3 4281 4278 4284 4332 3 + 4278 4284 4290 4293 9 4278 4284 4290 4296 9 + 4362 4368 4371 4374 3 4362 4368 4371 4377 3 + 4362 4368 4398 4401 3 4359 4350 4344 4362 9 + 4356 4350 4344 4362 9 4353 4350 4344 4362 9 + 4347 4344 4350 4353 9 4347 4344 4350 4356 9 + 4347 4344 4350 4359 9 4347 4344 4362 4365 14 + 4347 4344 -4362 4365 15 4347 4344 4362 4368 3 + 4341 4338 4344 4347 3 4341 4338 4344 4350 3 + 4341 4338 4344 4362 3 4338 4344 4350 4353 9 + 4338 4344 4350 4356 9 4338 4344 4350 4359 9 + 4407 4404 4410 4413 1 4407 4404 -4410 4413 2 + 4404 4410 4416 4419 3 4401 4398 4404 4407 14 + 4401 4398 -4404 4407 15 4401 4398 4404 4410 3 + 4398 4404 4410 4413 2 4395 4389 4398 4401 9 + 4395 4389 4398 4404 9 4392 4389 4398 4401 9 + 4392 4389 4398 4404 9 4386 4380 4389 4392 21 + 4386 4380 4389 4395 21 4386 4380 4389 4398 20 + 4383 4380 4389 4392 21 4383 4380 4389 4395 21 + 4383 4380 4389 4398 20 4380 4389 4398 4401 9 + 4377 4371 4368 4398 3 4377 4371 4380 4383 9 + 4377 4371 4380 4386 9 4377 4371 4380 4389 9 + 4374 4371 4368 4398 3 4374 4371 4380 4383 9 + 4374 4371 4380 4386 9 4374 4371 4380 4389 9 + 4371 4368 4398 4401 3 4371 4380 4389 4392 20 + 4371 4380 4389 4395 20 4368 4371 4380 4383 9 + 4368 4371 4380 4386 9 4368 4398 4389 4392 9 + 4368 4398 4389 4395 9 4479 4476 4482 4485 1 + 4479 4476 -4482 4485 2 4476 4482 4488 4491 3 + 4464 4458 4455 4467 31 4461 4458 4455 4467 31 + 4458 4455 4467 4470 31 4458 4455 4467 4473 31 + 4452 4449 4455 4458 31 4452 4449 4455 4467 31 + 4449 4455 4458 4461 31 4449 4455 4458 4464 31 + 4449 4455 4467 4470 31 4449 4455 4467 4473 31 + 4446 4440 4449 4452 26 4446 4440 4449 4455 26 + 4443 4440 4449 4452 26 4443 4440 4449 4455 26 + 4437 4431 4440 4443 9 4437 4431 4440 4446 9 + 4437 4431 4440 4449 9 4434 4431 4440 4443 9 + 4434 4431 4440 4446 9 4434 4431 4440 4449 9 + 4431 4440 4449 4452 26 4428 4422 4416 4476 9 + 4428 4422 4431 4434 21 4428 4422 4431 4437 21 + 4428 4422 4431 4440 20 4425 4422 4416 4476 9 + 4425 4422 4431 4434 21 4425 4422 4431 4437 21 + 4425 4422 4431 4440 20 4422 4431 4440 4443 9 + 4422 4431 4440 4446 9 4419 4416 4422 4425 9 + 4419 4416 4422 4428 9 4419 4416 4422 4431 9 + 4419 4416 4476 4479 14 4419 4416 -4476 4479 15 + 4419 4416 4476 4482 3 4416 4422 4431 4434 20 + 4416 4422 4431 4437 20 4416 4476 4482 4485 2 + 4413 4410 4416 4419 3 4413 4410 4416 4422 3 + 4413 4410 4416 4476 3 4410 4416 4422 4425 9 + 4410 4416 4422 4428 9 4515 4512 4518 4521 1 + 4515 4512 -4518 4521 2 4512 4518 4524 4527 3 + 4500 4494 4488 4512 9 4500 4494 4503 4506 3 + 4500 4494 4503 4509 3 4497 4494 4488 4512 9 + 4497 4494 4503 4506 3 4497 4494 4503 4509 3 + 4491 4488 4494 4497 9 4491 4488 4494 4500 9 + 4491 4488 4494 4503 9 4491 4488 4512 4515 14 + 4491 4488 -4512 4515 15 4491 4488 4512 4518 3 + 4488 4512 4518 4521 2 4485 4482 4488 4491 3 + 4485 4482 4488 4494 3 4485 4482 4488 4512 3 + 4482 4488 4494 4497 9 4482 4488 4494 4500 9 + 4566 4563 4569 4572 1 4566 4563 -4569 4572 2 + 4563 4569 4575 4578 3 4551 4548 4554 4557 1 + 4551 4548 -4554 4557 2 4551 4548 4554 4560 1 + 4551 4548 -4554 4560 2 4545 4539 4548 4551 14 + 4545 4539 -4548 4551 3 4545 4539 -4548 4551 15 + 4545 4539 4548 4554 3 4542 4539 4548 4551 14 + 4542 4539 -4548 4551 3 4542 4539 -4548 4551 15 + 4542 4539 4548 4554 3 4539 4548 4554 4557 2 + 4539 4548 4554 4560 2 4536 4530 4524 4563 9 + 4536 4530 4539 4542 21 4536 4530 4539 4545 21 + 4536 4530 4539 4548 9 4533 4530 4524 4563 9 + 4533 4530 4539 4542 21 4533 4530 4539 4545 21 + 4533 4530 4539 4548 9 4527 4524 4530 4533 9 + 4527 4524 4530 4536 9 4527 4524 4530 4539 9 + 4527 4524 4563 4566 14 4527 4524 -4563 4566 15 + 4527 4524 4563 4569 3 4524 4530 4539 4542 20 + 4524 4530 4539 4545 20 4524 4563 4569 4572 2 + 4521 4518 4524 4527 3 4521 4518 4524 4530 3 + 4521 4518 4524 4563 3 4518 4524 4530 4533 9 + 4518 4524 4530 4536 9 4623 4620 4626 4629 1 + 4623 4620 -4626 4629 2 4620 4626 4632 4635 3 + 4605 4596 4590 4608 20 4602 4596 4590 4608 20 + 4599 4596 4590 4608 20 4596 4590 4608 4611 20 + 4596 4590 4608 4614 20 4596 4590 4608 4617 20 + 4593 4590 4596 4599 21 4593 4590 4596 4602 21 + 4593 4590 4596 4605 21 4593 4590 4608 4611 21 + 4593 4590 4608 4614 21 4593 4590 4608 4617 21 + 4587 4581 4575 4620 9 4587 4581 4590 4593 21 + 4587 4581 4590 4596 20 4587 4581 4590 4608 20 + 4584 4581 4575 4620 9 4584 4581 4590 4593 21 + 4584 4581 4590 4596 20 4584 4581 4590 4608 20 + 4581 4590 4596 4599 20 4581 4590 4596 4602 20 + 4581 4590 4596 4605 20 4581 4590 4608 4611 20 + 4581 4590 4608 4614 20 4581 4590 4608 4617 20 + 4578 4575 4581 4584 9 4578 4575 4581 4587 9 + 4578 4575 4581 4590 9 4578 4575 4620 4623 14 + 4578 4575 -4620 4623 15 4578 4575 4620 4626 3 + 4575 4581 4590 4593 20 4575 4620 4626 4629 2 + 4572 4569 4575 4578 3 4572 4569 4575 4581 3 + 4572 4569 4575 4620 3 4569 4575 4581 4584 9 + 4569 4575 4581 4587 9 4668 4665 4671 4674 1 + 4668 4665 -4671 4674 2 4665 4671 4677 4680 3 + 4665 4671 4677 4683 3 4653 4647 4656 4659 3 + 4653 4647 4656 4662 3 4650 4647 4656 4659 3 + 4650 4647 4656 4662 3 4644 4638 4632 4665 9 + 4644 4638 4647 4650 21 4644 4638 4647 4653 21 + 4644 4638 4647 4656 9 4641 4638 4632 4665 9 + 4641 4638 4647 4650 21 4641 4638 4647 4653 21 + 4641 4638 4647 4656 9 4635 4632 4638 4641 9 + 4635 4632 4638 4644 9 4635 4632 4638 4647 9 + 4635 4632 4665 4668 14 4635 4632 -4665 4668 15 + 4635 4632 4665 4671 3 4632 4638 4647 4650 20 + 4632 4638 4647 4653 20 4632 4665 4671 4674 2 + 4629 4626 4632 4635 3 4629 4626 4632 4638 3 + 4629 4626 4632 4665 3 4626 4632 4638 4641 9 + 4626 4632 4638 4644 9 4689 4686 4692 4695 1 + 4689 4686 -4692 4695 2 4686 4692 4698 4701 3 + 4683 4677 4686 4689 14 4683 4677 -4686 4689 15 + 4683 4677 4686 4692 3 4680 4677 4686 4689 14 + 4680 4677 -4686 4689 15 4680 4677 4686 4692 3 + 4677 4686 4692 4695 2 4674 4671 4677 4680 3 + 4674 4671 4677 4683 3 4674 4671 4677 4686 3 + 4731 4728 4734 4737 1 4731 4728 -4734 4737 2 + 4728 4734 4740 4743 3 4716 4713 4719 4722 1 + 4716 4713 -4719 4722 2 4716 4713 4719 4725 1 + 4716 4713 -4719 4725 2 4710 4704 4698 4728 9 + 4710 4704 4713 4716 14 4710 4704 -4713 4716 3 + 4710 4704 -4713 4716 15 4710 4704 4713 4719 3 + 4707 4704 4698 4728 9 4707 4704 4713 4716 14 + 4707 4704 -4713 4716 3 4707 4704 -4713 4716 15 + 4707 4704 4713 4719 3 4704 4713 4719 4722 2 + 4704 4713 4719 4725 2 4701 4698 4704 4707 9 + 4701 4698 4704 4710 9 4701 4698 4704 4713 9 + 4701 4698 4728 4731 14 4701 4698 -4728 4731 15 + 4701 4698 4728 4734 3 4698 4728 4734 4737 2 + 4695 4692 4698 4701 3 4695 4692 4698 4704 3 + 4695 4692 4698 4728 3 4692 4698 4704 4707 9 + 4692 4698 4704 4710 9 4791 4788 4794 4797 1 + 4791 4788 -4794 4797 2 4788 4794 4800 4803 3 + 4779 4776 4782 4785 19 4773 4770 4776 4779 19 + 4773 4770 4776 4782 19 4770 4776 4782 4785 19 + 4767 4764 4770 4773 19 4767 4764 4770 4776 19 + 4764 4770 4776 4779 19 4761 4758 4755 4782 19 + 4761 4758 4764 4767 19 4761 4758 4764 4770 19 + 4758 4755 4782 4785 19 4758 4764 4770 4773 19 + 4755 4758 4764 4767 19 4755 4782 4776 4779 19 + 4752 4746 4740 4788 9 4752 4746 4755 4758 3 + 4752 4746 4755 4782 3 4749 4746 4740 4788 9 + 4749 4746 4755 4758 3 4749 4746 4755 4782 3 + 4746 4755 4758 4761 19 4746 4755 4782 4785 19 + 4743 4740 4746 4749 9 4743 4740 4746 4752 9 + 4743 4740 4746 4755 9 4743 4740 4788 4791 14 + 4743 4740 -4788 4791 15 4743 4740 4788 4794 3 + 4740 4788 4794 4797 2 4737 4734 4740 4743 3 + 4737 4734 4740 4746 3 4737 4734 4740 4788 3 + 4734 4740 4746 4749 9 4734 4740 4746 4752 9 + 4848 4845 4851 4854 1 4848 4845 -4851 4854 2 + 4845 4851 4857 4860 3 4830 4824 4833 4836 21 + 4830 4824 4833 4839 21 4830 4824 4833 4842 21 + 4827 4824 4833 4836 21 4827 4824 4833 4839 21 + 4827 4824 4833 4842 21 4821 4812 4806 4824 20 + 4818 4812 4806 4824 20 4815 4812 4806 4824 20 + 4812 4806 4824 4827 20 4812 4806 4824 4830 20 + 4809 4806 4800 4845 9 4809 4806 4812 4815 21 + 4809 4806 4812 4818 21 4809 4806 4812 4821 21 + 4809 4806 4824 4827 21 4809 4806 4824 4830 21 + 4809 4806 4824 4833 20 4806 4824 4833 4836 20 + 4806 4824 4833 4839 20 4806 4824 4833 4842 20 + 4803 4800 4806 4809 9 4803 4800 4806 4812 9 + 4803 4800 4806 4824 9 4803 4800 4845 4848 14 + 4803 4800 -4845 4848 15 4803 4800 4845 4851 3 + 4800 4806 4812 4815 20 4800 4806 4812 4818 20 + 4800 4806 4812 4821 20 4800 4806 4824 4827 20 + 4800 4806 4824 4830 20 4800 4845 4851 4854 2 + 4797 4794 4800 4803 3 4797 4794 4800 4806 3 + 4797 4794 4800 4845 3 4794 4800 4806 4809 9 + 4884 4881 4887 4890 1 4884 4881 -4887 4890 2 + 4881 4887 4893 4896 3 4869 4863 4857 4881 9 + 4869 4863 4872 4875 3 4869 4863 4872 4878 3 + 4866 4863 4857 4881 9 4866 4863 4872 4875 3 + 4866 4863 4872 4878 3 4860 4857 4863 4866 9 + 4860 4857 4863 4869 9 4860 4857 4863 4872 9 + 4860 4857 4881 4884 14 4860 4857 -4881 4884 15 + 4860 4857 4881 4887 3 4857 4881 4887 4890 2 + 4854 4851 4857 4860 3 4854 4851 4857 4863 3 + 4854 4851 4857 4881 3 4851 4857 4863 4866 9 + 4851 4857 4863 4869 9 4917 4914 4920 4923 1 + 4917 4914 -4920 4923 2 4914 4920 4926 4929 3 + 4905 4899 4893 4914 9 4905 4899 4908 4911 34 + 4902 4899 4893 4914 9 4902 4899 4908 4911 34 + 4896 4893 4899 4902 9 4896 4893 4899 4905 9 + 4896 4893 4899 4908 9 4896 4893 4914 4917 14 + 4896 4893 -4914 4917 15 4896 4893 4914 4920 3 + 4893 4899 4908 4911 34 4893 4914 4920 4923 2 + 4890 4887 4893 4896 3 4890 4887 4893 4899 3 + 4890 4887 4893 4914 3 4887 4893 4899 4902 9 + 4887 4893 4899 4905 9 4965 4962 4968 4971 1 + 4965 4962 -4968 4971 2 4962 4968 4974 4977 3 + 4947 4938 4932 4950 20 4944 4938 4932 4950 20 + 4941 4938 4932 4950 20 4938 4932 4950 4953 20 + 4938 4932 4950 4956 20 4938 4932 4950 4959 20 + 4935 4932 4926 4962 9 4935 4932 4938 4941 21 + 4935 4932 4938 4944 21 4935 4932 4938 4947 21 + 4935 4932 4950 4953 21 4935 4932 4950 4956 21 + 4935 4932 4950 4959 21 4929 4926 4932 4935 9 + 4929 4926 4932 4938 9 4929 4926 4932 4950 9 + 4929 4926 4962 4965 14 4929 4926 -4962 4965 15 + 4929 4926 4962 4968 3 4926 4932 4938 4941 20 + 4926 4932 4938 4944 20 4926 4932 4938 4947 20 + 4926 4932 4950 4953 20 4926 4932 4950 4956 20 + 4926 4932 4950 4959 20 4926 4962 4968 4971 2 + 4923 4920 4926 4929 3 4923 4920 4926 4932 3 + 4923 4920 4926 4962 3 4920 4926 4932 4935 9 + 5007 5004 5010 5013 1 5007 5004 -5010 5013 2 + 5004 5010 5016 5019 3 4995 4986 4980 4998 25 + 4995 4986 -4980 4998 26 4992 4986 4980 4998 25 + 4992 4986 -4980 4998 26 4989 4986 4980 4998 25 + 4989 4986 -4980 4998 26 4986 4980 4998 5001 25 + 4986 4980 -4998 5001 20 4983 4980 4974 5004 9 + 4983 4980 4986 4989 9 4983 4980 4986 4992 9 + 4983 4980 4986 4995 9 4983 4980 4998 5001 27 + 4977 4974 4980 4983 9 4977 4974 4980 4986 9 + 4977 4974 4980 4998 25 4977 4974 -4980 4998 26 + 4977 4974 5004 5007 14 4977 4974 -5004 5007 15 + 4977 4974 5004 5010 3 4974 4980 4986 4989 20 + 4974 4980 4986 4992 20 4974 4980 4986 4995 20 + 4974 4980 4998 5001 25 4974 4980 -4998 5001 20 + 4974 5004 5010 5013 2 4971 4968 4974 4977 3 + 4971 4968 4974 4980 3 4971 4968 4974 5004 3 + 4968 4974 4980 4983 9 5079 5076 5082 5085 1 + 5079 5076 -5082 5085 2 5076 5082 5088 5091 3 + 5064 5058 5055 5067 31 5061 5058 5055 5067 31 + 5058 5055 5067 5070 31 5058 5055 5067 5073 31 + 5052 5049 5055 5058 31 5052 5049 5055 5067 31 + 5049 5055 5058 5061 31 5049 5055 5058 5064 31 + 5049 5055 5067 5070 31 5049 5055 5067 5073 31 + 5046 5040 5049 5052 26 5046 5040 5049 5055 26 + 5043 5040 5049 5052 26 5043 5040 5049 5055 26 + 5037 5031 5040 5043 9 5037 5031 5040 5046 9 + 5037 5031 5040 5049 9 5034 5031 5040 5043 9 + 5034 5031 5040 5046 9 5034 5031 5040 5049 9 + 5031 5040 5049 5052 26 5028 5022 5016 5076 9 + 5028 5022 5031 5034 21 5028 5022 5031 5037 21 + 5028 5022 5031 5040 20 5025 5022 5016 5076 9 + 5025 5022 5031 5034 21 5025 5022 5031 5037 21 + 5025 5022 5031 5040 20 5022 5031 5040 5043 9 + 5022 5031 5040 5046 9 5019 5016 5022 5025 9 + 5019 5016 5022 5028 9 5019 5016 5022 5031 9 + 5019 5016 5076 5079 14 5019 5016 -5076 5079 15 + 5019 5016 5076 5082 3 5016 5022 5031 5034 20 + 5016 5022 5031 5037 20 5016 5076 5082 5085 2 + 5013 5010 5016 5019 3 5013 5010 5016 5022 3 + 5013 5010 5016 5076 3 5010 5016 5022 5025 9 + 5010 5016 5022 5028 9 5124 5121 5127 5130 1 + 5124 5121 -5127 5130 2 5121 5127 5133 5136 3 + 5121 5127 5133 5139 3 5109 5103 5112 5115 3 + 5109 5103 5112 5118 3 5106 5103 5112 5115 3 + 5106 5103 5112 5118 3 5100 5094 5088 5121 9 + 5100 5094 5103 5106 21 5100 5094 5103 5109 21 + 5100 5094 5103 5112 9 5097 5094 5088 5121 9 + 5097 5094 5103 5106 21 5097 5094 5103 5109 21 + 5097 5094 5103 5112 9 5091 5088 5094 5097 9 + 5091 5088 5094 5100 9 5091 5088 5094 5103 9 + 5091 5088 5121 5124 14 5091 5088 -5121 5124 15 + 5091 5088 5121 5127 3 5088 5094 5103 5106 20 + 5088 5094 5103 5109 20 5088 5121 5127 5130 2 + 5085 5082 5088 5091 3 5085 5082 5088 5094 3 + 5085 5082 5088 5121 3 5082 5088 5094 5097 9 + 5082 5088 5094 5100 9 5145 5142 5148 5151 1 + 5145 5142 -5148 5151 2 5142 5148 5154 5157 3 + 5139 5133 5142 5145 14 5139 5133 -5142 5145 15 + 5139 5133 5142 5148 3 5136 5133 5142 5145 14 + 5136 5133 -5142 5145 15 5136 5133 5142 5148 3 + 5133 5142 5148 5151 2 5130 5127 5133 5136 3 + 5130 5127 5133 5139 3 5130 5127 5133 5142 3 + 5205 5202 5208 5211 1 5205 5202 -5208 5211 2 + 5202 5208 5214 5217 3 5193 5190 5196 5199 19 + 5187 5184 5190 5193 19 5187 5184 5190 5196 19 + 5184 5190 5196 5199 19 5181 5178 5184 5187 19 + 5181 5178 5184 5190 19 5178 5184 5190 5193 19 + 5175 5172 5169 5196 19 5175 5172 5178 5181 19 + 5175 5172 5178 5184 19 5172 5169 5196 5199 19 + 5172 5178 5184 5187 19 5169 5172 5178 5181 19 + 5169 5196 5190 5193 19 5166 5160 5154 5202 9 + 5166 5160 5169 5172 3 5166 5160 5169 5196 3 + 5163 5160 5154 5202 9 5163 5160 5169 5172 3 + 5163 5160 5169 5196 3 5160 5169 5172 5175 19 + 5160 5169 5196 5199 19 5157 5154 5160 5163 9 + 5157 5154 5160 5166 9 5157 5154 5160 5169 9 + 5157 5154 5202 5205 14 5157 5154 -5202 5205 15 + 5157 5154 5202 5208 3 5154 5202 5208 5211 2 + 5151 5148 5154 5157 3 5151 5148 5154 5160 3 + 5151 5148 5154 5202 3 5148 5154 5160 5163 9 + 5148 5154 5160 5166 9 5238 5235 5241 5244 1 + 5238 5235 -5241 5244 2 5235 5241 5247 5250 3 + 5226 5220 5214 5235 9 5226 5220 5229 5232 27 + 5223 5220 5214 5235 9 5223 5220 5229 5232 27 + 5217 5214 5220 5223 9 5217 5214 5220 5226 9 + 5217 5214 5220 5229 25 5217 5214 -5220 5229 26 + 5217 5214 5235 5238 14 5217 5214 -5235 5238 15 + 5217 5214 5235 5241 3 5214 5220 5229 5232 25 + 5214 5220 -5229 5232 20 5214 5235 5241 5244 2 + 5211 5208 5214 5217 3 5211 5208 5214 5220 3 + 5211 5208 5214 5235 3 5208 5214 5220 5223 9 + 5208 5214 5220 5226 9 5295 5292 5298 5301 1 + 5295 5292 -5298 5301 2 5292 5298 5304 5307 3 + 5277 5271 5280 5283 21 5277 5271 5280 5286 21 + 5277 5271 5280 5289 21 5274 5271 5280 5283 21 + 5274 5271 5280 5286 21 5274 5271 5280 5289 21 + 5268 5259 5253 5271 20 5265 5259 5253 5271 20 + 5262 5259 5253 5271 20 5259 5253 5271 5274 20 + 5259 5253 5271 5277 20 5256 5253 5247 5292 9 + 5256 5253 5259 5262 21 5256 5253 5259 5265 21 + 5256 5253 5259 5268 21 5256 5253 5271 5274 21 + 5256 5253 5271 5277 21 5256 5253 5271 5280 20 + 5253 5271 5280 5283 20 5253 5271 5280 5286 20 + 5253 5271 5280 5289 20 5250 5247 5253 5256 9 + 5250 5247 5253 5259 9 5250 5247 5253 5271 9 + 5250 5247 5292 5295 14 5250 5247 -5292 5295 15 + 5250 5247 5292 5298 3 5247 5253 5259 5262 20 + 5247 5253 5259 5265 20 5247 5253 5259 5268 20 + 5247 5253 5271 5274 20 5247 5253 5271 5277 20 + 5247 5292 5298 5301 2 5244 5241 5247 5250 3 + 5244 5241 5247 5253 3 5244 5241 5247 5292 3 + 5241 5247 5253 5256 9 5325 5322 5328 5331 1 + 5325 5322 -5328 5331 2 5322 5328 5334 5337 3 + 5319 5310 5304 5322 9 5316 5310 5304 5322 9 + 5313 5310 5304 5322 9 5307 5304 5310 5313 9 + 5307 5304 5310 5316 9 5307 5304 5310 5319 9 + 5307 5304 5322 5325 14 5307 5304 -5322 5325 15 + 5307 5304 5322 5328 3 5304 5322 5328 5331 2 + 5301 5298 5304 5307 3 5301 5298 5304 5310 3 + 5301 5298 5304 5322 3 5298 5304 5310 5313 9 + 5298 5304 5310 5316 9 5298 5304 5310 5319 9 + 5376 5373 5379 5382 1 5376 5373 -5379 5382 2 + 5373 5379 5385 5388 3 5364 5361 5367 5370 29 + 5358 5355 5361 5364 30 5358 5355 5361 5367 30 + 5355 5361 5367 5370 29 5352 5349 5367 5370 32 + 5352 5355 5361 5364 30 5349 5352 5355 5358 33 + 5349 5367 5361 5364 29 5346 5340 5334 5373 9 + 5346 5340 5349 5352 3 5346 5340 5349 5367 3 + 5343 5340 5334 5373 9 5343 5340 5349 5352 3 + 5343 5340 5349 5367 3 5340 5349 5367 5370 32 + 5337 5334 5340 5343 9 5337 5334 5340 5346 9 + 5337 5334 5340 5349 9 5337 5334 5373 5376 14 + 5337 5334 -5373 5376 15 5337 5334 5373 5379 3 + 5334 5373 5379 5382 2 5331 5328 5334 5337 3 + 5331 5328 5334 5340 3 5331 5328 5334 5373 3 + 5328 5334 5340 5343 9 5328 5334 5340 5346 9 + 5412 5409 5415 5418 1 5412 5409 -5415 5418 2 + 5409 5415 5421 5424 3 5397 5391 5385 5409 9 + 5397 5391 5400 5403 3 5397 5391 5400 5406 3 + 5394 5391 5385 5409 9 5394 5391 5400 5403 3 + 5394 5391 5400 5406 3 5388 5385 5391 5394 9 + 5388 5385 5391 5397 9 5388 5385 5391 5400 9 + 5388 5385 5409 5412 14 5388 5385 -5409 5412 15 + 5388 5385 5409 5415 3 5385 5409 5415 5418 2 + 5382 5379 5385 5388 3 5382 5379 5385 5391 3 + 5382 5379 5385 5409 3 5379 5385 5391 5394 9 + 5379 5385 5391 5397 9 5469 5466 5472 5475 1 + 5469 5466 -5472 5475 2 5466 5472 5478 5481 3 + 5451 5445 5454 5457 21 5451 5445 5454 5460 21 + 5451 5445 5454 5463 21 5448 5445 5454 5457 21 + 5448 5445 5454 5460 21 5448 5445 5454 5463 21 + 5442 5433 5427 5445 20 5439 5433 5427 5445 20 + 5436 5433 5427 5445 20 5433 5427 5445 5448 20 + 5433 5427 5445 5451 20 5430 5427 5421 5466 9 + 5430 5427 5433 5436 21 5430 5427 5433 5439 21 + 5430 5427 5433 5442 21 5430 5427 5445 5448 21 + 5430 5427 5445 5451 21 5430 5427 5445 5454 20 + 5427 5445 5454 5457 20 5427 5445 5454 5460 20 + 5427 5445 5454 5463 20 5424 5421 5427 5430 9 + 5424 5421 5427 5433 9 5424 5421 5427 5445 9 + 5424 5421 5466 5469 14 5424 5421 -5466 5469 15 + 5424 5421 5466 5472 3 5421 5427 5433 5436 20 + 5421 5427 5433 5439 20 5421 5427 5433 5442 20 + 5421 5427 5445 5448 20 5421 5427 5445 5451 20 + 5421 5466 5472 5475 2 5418 5415 5421 5424 3 + 5418 5415 5421 5427 3 5418 5415 5421 5466 3 + 5415 5421 5427 5430 9 5502 5499 5505 5508 1 + 5502 5499 -5505 5508 2 5499 5505 5511 5514 3 + 5490 5484 5478 5499 9 5490 5484 5493 5496 27 + 5487 5484 5478 5499 9 5487 5484 5493 5496 27 + 5481 5478 5484 5487 9 5481 5478 5484 5490 9 + 5481 5478 5484 5493 25 5481 5478 -5484 5493 26 + 5481 5478 5499 5502 14 5481 5478 -5499 5502 15 + 5481 5478 5499 5505 3 5478 5484 5493 5496 25 + 5478 5484 -5493 5496 20 5478 5499 5505 5508 2 + 5475 5472 5478 5481 3 5475 5472 5478 5484 3 + 5475 5472 5478 5499 3 5472 5478 5484 5487 9 + 5472 5478 5484 5490 9 5532 5529 5535 5538 1 + 5532 5529 -5535 5538 2 5529 5535 5541 5544 3 + 5526 5517 5511 5529 9 5523 5517 5511 5529 9 + 5520 5517 5511 5529 9 5514 5511 5517 5520 9 + 5514 5511 5517 5523 9 5514 5511 5517 5526 9 + 5514 5511 5529 5532 14 5514 5511 -5529 5532 15 + 5514 5511 5529 5535 3 5511 5529 5535 5538 2 + 5508 5505 5511 5514 3 5508 5505 5511 5517 3 + 5508 5505 5511 5529 3 5505 5511 5517 5520 9 + 5505 5511 5517 5523 9 5505 5511 5517 5526 9 + 5595 5592 5598 5601 1 5595 5592 -5598 5601 2 + 5592 5598 5604 5607 3 5583 5580 5586 5589 19 + 5577 5574 5571 5580 28 5574 5571 5580 5583 19 + 5571 5580 5586 5589 19 5568 5565 5571 5574 19 + 5568 5565 5571 5580 19 5565 5571 5574 5577 28 + 5565 5571 5580 5583 19 5562 5559 5556 5586 19 + 5562 5559 5565 5568 19 5562 5559 5565 5571 19 + 5559 5556 5586 5589 19 5556 5559 5565 5568 19 + 5556 5586 5580 5583 19 5553 5547 5541 5592 9 + 5553 5547 5556 5559 3 5553 5547 5556 5586 3 + 5550 5547 5541 5592 9 5550 5547 5556 5559 3 + 5550 5547 5556 5586 3 5547 5556 5559 5562 19 + 5547 5556 5586 5589 19 5544 5541 5547 5550 9 + 5544 5541 5547 5553 9 5544 5541 5547 5556 9 + 5544 5541 5592 5595 14 5544 5541 -5592 5595 15 + 5544 5541 5592 5598 3 5541 5592 5598 5601 2 + 5538 5535 5541 5544 3 5538 5535 5541 5547 3 + 5538 5535 5541 5592 3 5535 5541 5547 5550 9 + 5535 5541 5547 5553 9 5628 5625 5631 5634 1 + 5628 5625 -5631 5634 2 5625 5631 5637 5640 3 + 5616 5610 5604 5625 9 5616 5610 5619 5622 27 + 5613 5610 5604 5625 9 5613 5610 5619 5622 27 + 5607 5604 5610 5613 9 5607 5604 5610 5616 9 + 5607 5604 5610 5619 25 5607 5604 -5610 5619 26 + 5607 5604 5625 5628 14 5607 5604 -5625 5628 15 + 5607 5604 5625 5631 3 5604 5610 5619 5622 25 + 5604 5610 -5619 5622 20 5604 5625 5631 5634 2 + 5601 5598 5604 5607 3 5601 5598 5604 5610 3 + 5601 5598 5604 5625 3 5598 5604 5610 5613 9 + 5598 5604 5610 5616 9 5688 5685 5691 5694 1 + 5688 5685 -5691 5694 2 5685 5691 5697 5700 3 + 5676 5673 5679 5682 19 5670 5667 5673 5676 19 + 5670 5667 5673 5679 19 5667 5673 5679 5682 19 + 5664 5661 5667 5670 19 5664 5661 5667 5673 19 + 5661 5667 5673 5676 19 5658 5655 5652 5679 19 + 5658 5655 5661 5664 19 5658 5655 5661 5667 19 + 5655 5652 5679 5682 19 5655 5661 5667 5670 19 + 5652 5655 5661 5664 19 5652 5679 5673 5676 19 + 5649 5643 5637 5685 9 5649 5643 5652 5655 3 + 5649 5643 5652 5679 3 5646 5643 5637 5685 9 + 5646 5643 5652 5655 3 5646 5643 5652 5679 3 + 5643 5652 5655 5658 19 5643 5652 5679 5682 19 + 5640 5637 5643 5646 9 5640 5637 5643 5649 9 + 5640 5637 5643 5652 9 5640 5637 5685 5688 14 + 5640 5637 -5685 5688 15 5640 5637 5685 5691 3 + 5637 5685 5691 5694 2 5634 5631 5637 5640 3 + 5634 5631 5637 5643 3 5634 5631 5637 5685 3 + 5631 5637 5643 5646 9 5631 5637 5643 5649 9 + 5718 5715 5721 5724 1 5718 5715 -5721 5724 2 + 5715 5721 5727 5730 3 5712 5703 5697 5715 9 + 5709 5703 5697 5715 9 5706 5703 5697 5715 9 + 5700 5697 5703 5706 9 5700 5697 5703 5709 9 + 5700 5697 5703 5712 9 5700 5697 5715 5718 14 + 5700 5697 -5715 5718 15 5700 5697 5715 5721 3 + 5697 5715 5721 5724 2 5694 5691 5697 5700 3 + 5694 5691 5697 5703 3 5694 5691 5697 5715 3 + 5691 5697 5703 5706 9 5691 5697 5703 5709 9 + 5691 5697 5703 5712 9 5748 5745 5751 5754 1 + 5748 5745 -5751 5754 2 5745 5751 5757 5760 3 + 5742 5733 5727 5745 9 5739 5733 5727 5745 9 + 5736 5733 5727 5745 9 5730 5727 5733 5736 9 + 5730 5727 5733 5739 9 5730 5727 5733 5742 9 + 5730 5727 5745 5748 14 5730 5727 -5745 5748 15 + 5730 5727 5745 5751 3 5727 5745 5751 5754 2 + 5724 5721 5727 5730 3 5724 5721 5727 5733 3 + 5724 5721 5727 5745 3 5721 5727 5733 5736 9 + 5721 5727 5733 5739 9 5721 5727 5733 5742 9 + 5805 5802 5808 5811 1 5805 5802 -5808 5811 2 + 5802 5808 5814 5817 3 5787 5778 5772 5790 20 + 5784 5778 5772 5790 20 5781 5778 5772 5790 20 + 5778 5772 5790 5793 20 5778 5772 5790 5796 20 + 5778 5772 5790 5799 20 5775 5772 5778 5781 21 + 5775 5772 5778 5784 21 5775 5772 5778 5787 21 + 5775 5772 5790 5793 21 5775 5772 5790 5796 21 + 5775 5772 5790 5799 21 5769 5763 5757 5802 9 + 5769 5763 5772 5775 21 5769 5763 5772 5778 20 + 5769 5763 5772 5790 20 5766 5763 5757 5802 9 + 5766 5763 5772 5775 21 5766 5763 5772 5778 20 + 5766 5763 5772 5790 20 5763 5772 5778 5781 20 + 5763 5772 5778 5784 20 5763 5772 5778 5787 20 + 5763 5772 5790 5793 20 5763 5772 5790 5796 20 + 5763 5772 5790 5799 20 5760 5757 5763 5766 9 + 5760 5757 5763 5769 9 5760 5757 5763 5772 9 + 5760 5757 5802 5805 14 5760 5757 -5802 5805 15 + 5760 5757 5802 5808 3 5757 5763 5772 5775 20 + 5757 5802 5808 5811 2 5754 5751 5757 5760 3 + 5754 5751 5757 5763 3 5754 5751 5757 5802 3 + 5751 5757 5763 5766 9 5751 5757 5763 5769 9 + 5835 5832 5838 5841 1 5835 5832 -5838 5841 2 + 5832 5838 5844 5847 3 5829 5820 5814 5832 9 + 5826 5820 5814 5832 9 5823 5820 5814 5832 9 + 5817 5814 5820 5823 9 5817 5814 5820 5826 9 + 5817 5814 5820 5829 9 5817 5814 5832 5835 14 + 5817 5814 -5832 5835 15 5817 5814 5832 5838 3 + 5814 5832 5838 5841 2 5811 5808 5814 5817 3 + 5811 5808 5814 5820 3 5811 5808 5814 5832 3 + 5808 5814 5820 5823 9 5808 5814 5820 5826 9 + 5808 5814 5820 5829 9 5901 5898 5904 5907 1 + 5901 5898 -5904 5907 2 5898 5904 5910 5913 3 + 5883 5877 5886 5889 9 5883 5877 5886 5892 9 + 5883 5877 5886 5895 9 5880 5877 5886 5889 9 + 5880 5877 5886 5892 9 5880 5877 5886 5895 9 + 5874 5868 5877 5880 9 5874 5868 5877 5883 9 + 5874 5868 5877 5886 9 5871 5868 5877 5880 9 + 5871 5868 5877 5883 9 5871 5868 5877 5886 9 + 5868 5877 5886 5889 9 5868 5877 5886 5892 9 + 5868 5877 5886 5895 9 5865 5859 5868 5871 21 + 5865 5859 5868 5874 21 5865 5859 5868 5877 20 + 5862 5859 5868 5871 21 5862 5859 5868 5874 21 + 5862 5859 5868 5877 20 5859 5868 5877 5880 9 + 5859 5868 5877 5883 9 5856 5850 5844 5898 9 + 5856 5850 5859 5862 21 5856 5850 5859 5865 21 + 5856 5850 5859 5868 20 5853 5850 5844 5898 9 + 5853 5850 5859 5862 21 5853 5850 5859 5865 21 + 5853 5850 5859 5868 20 5850 5859 5868 5871 20 + 5850 5859 5868 5874 20 5847 5844 5850 5853 9 + 5847 5844 5850 5856 9 5847 5844 5850 5859 9 + 5847 5844 5898 5901 14 5847 5844 -5898 5901 15 + 5847 5844 5898 5904 3 5844 5850 5859 5862 20 + 5844 5850 5859 5865 20 5844 5898 5904 5907 2 + 5841 5838 5844 5847 3 5841 5838 5844 5850 3 + 5841 5838 5844 5898 3 5838 5844 5850 5853 9 + 5838 5844 5850 5856 9 5946 5943 5949 5952 1 + 5946 5943 -5949 5952 2 5943 5949 5955 5958 3 + 5943 5949 5955 5961 3 5931 5925 5934 5937 3 + 5931 5925 5934 5940 3 5928 5925 5934 5937 3 + 5928 5925 5934 5940 3 5922 5916 5910 5943 9 + 5922 5916 5925 5928 21 5922 5916 5925 5931 21 + 5922 5916 5925 5934 9 5919 5916 5910 5943 9 + 5919 5916 5925 5928 21 5919 5916 5925 5931 21 + 5919 5916 5925 5934 9 5913 5910 5916 5919 9 + 5913 5910 5916 5922 9 5913 5910 5916 5925 9 + 5913 5910 5943 5946 14 5913 5910 -5943 5946 15 + 5913 5910 5943 5949 3 5910 5916 5925 5928 20 + 5910 5916 5925 5931 20 5910 5943 5949 5952 2 + 5907 5904 5910 5913 3 5907 5904 5910 5916 3 + 5907 5904 5910 5943 3 5904 5910 5916 5919 9 + 5904 5910 5916 5922 9 5967 5964 5970 5973 1 + 5967 5964 -5970 5973 2 5964 5970 5976 5979 3 + 5961 5955 5964 5967 14 5961 5955 -5964 5967 15 + 5961 5955 5964 5970 3 5958 5955 5964 5967 14 + 5958 5955 -5964 5967 15 5958 5955 5964 5970 3 + 5955 5964 5970 5973 2 5952 5949 5955 5958 3 + 5952 5949 5955 5961 3 5952 5949 5955 5964 3 + 6039 6036 6042 6045 1 6039 6036 -6042 6045 2 + 6036 6042 6048 6051 3 6024 6018 6015 6027 31 + 6021 6018 6015 6027 31 6018 6015 6027 6030 31 + 6018 6015 6027 6033 31 6012 6009 6015 6018 31 + 6012 6009 6015 6027 31 6009 6015 6018 6021 31 + 6009 6015 6018 6024 31 6009 6015 6027 6030 31 + 6009 6015 6027 6033 31 6006 6000 6009 6012 26 + 6006 6000 6009 6015 26 6003 6000 6009 6012 26 + 6003 6000 6009 6015 26 5997 5991 6000 6003 9 + 5997 5991 6000 6006 9 5997 5991 6000 6009 9 + 5994 5991 6000 6003 9 5994 5991 6000 6006 9 + 5994 5991 6000 6009 9 5991 6000 6009 6012 26 + 5988 5982 5976 6036 9 5988 5982 5991 5994 21 + 5988 5982 5991 5997 21 5988 5982 5991 6000 20 + 5985 5982 5976 6036 9 5985 5982 5991 5994 21 + 5985 5982 5991 5997 21 5985 5982 5991 6000 20 + 5982 5991 6000 6003 9 5982 5991 6000 6006 9 + 5979 5976 5982 5985 9 5979 5976 5982 5988 9 + 5979 5976 5982 5991 9 5979 5976 6036 6039 14 + 5979 5976 -6036 6039 15 5979 5976 6036 6042 3 + 5976 5982 5991 5994 20 5976 5982 5991 5997 20 + 5976 6036 6042 6045 2 5973 5970 5976 5979 3 + 5973 5970 5976 5982 3 5973 5970 5976 6036 3 + 5970 5976 5982 5985 9 5970 5976 5982 5988 9 + 6072 6069 6075 6078 1 6072 6069 -6075 6078 2 + 6069 6075 6081 6084 3 6060 6054 6048 6069 9 + 6060 6054 6063 6066 27 6057 6054 6048 6069 9 + 6057 6054 6063 6066 27 6051 6048 6054 6057 9 + 6051 6048 6054 6060 9 6051 6048 6054 6063 25 + 6051 6048 -6054 6063 26 6051 6048 6069 6072 14 + 6051 6048 -6069 6072 15 6051 6048 6069 6075 3 + 6048 6054 6063 6066 25 6048 6054 -6063 6066 20 + 6048 6069 6075 6078 2 6045 6042 6048 6051 3 + 6045 6042 6048 6054 3 6045 6042 6048 6069 3 + 6042 6048 6054 6057 9 6042 6048 6054 6060 9 + 6123 6120 6126 6129 1 6123 6120 -6126 6129 2 + 6120 6126 6132 6135 3 6102 6096 6105 6108 8 + 6099 6096 6105 6108 8 6096 6105 6108 6111 8 + 6096 6105 6108 6114 8 6096 6105 6108 6117 8 + 6093 6087 6081 6120 9 6093 6087 6096 6099 9 + 6093 6087 6096 6102 9 6093 6087 6096 6105 9 + 6090 6087 6081 6120 9 6090 6087 6096 6099 9 + 6090 6087 6096 6102 9 6090 6087 6096 6105 9 + 6084 6081 6087 6090 9 6084 6081 6087 6093 9 + 6084 6081 6087 6096 9 6084 6081 6120 6123 14 + 6084 6081 -6120 6123 15 6084 6081 6120 6126 3 + 6081 6087 6096 6099 9 6081 6087 6096 6102 9 + 6081 6120 6126 6129 2 6078 6075 6081 6084 3 + 6078 6075 6081 6087 3 6078 6075 6081 6120 3 + 6075 6081 6087 6090 9 6075 6081 6087 6093 9 + 6174 6171 6177 6180 1 6174 6171 -6177 6180 2 + 6171 6177 6183 6186 3 6153 6147 6156 6159 8 + 6150 6147 6156 6159 8 6147 6156 6159 6162 8 + 6147 6156 6159 6165 8 6147 6156 6159 6168 8 + 6144 6138 6132 6171 9 6144 6138 6147 6150 9 + 6144 6138 6147 6153 9 6144 6138 6147 6156 9 + 6141 6138 6132 6171 9 6141 6138 6147 6150 9 + 6141 6138 6147 6153 9 6141 6138 6147 6156 9 + 6135 6132 6138 6141 9 6135 6132 6138 6144 9 + 6135 6132 6138 6147 9 6135 6132 6171 6174 14 + 6135 6132 -6171 6174 15 6135 6132 6171 6177 3 + 6132 6138 6147 6150 9 6132 6138 6147 6153 9 + 6132 6171 6177 6180 2 6129 6126 6132 6135 3 + 6129 6126 6132 6138 3 6129 6126 6132 6171 3 + 6126 6132 6138 6141 9 6126 6132 6138 6144 9 + 6240 6237 6243 6246 1 6240 6237 -6243 6246 2 + 6237 6243 6249 6252 3 6222 6216 6225 6228 9 + 6222 6216 6225 6231 9 6222 6216 6225 6234 9 + 6219 6216 6225 6228 9 6219 6216 6225 6231 9 + 6219 6216 6225 6234 9 6213 6207 6216 6219 9 + 6213 6207 6216 6222 9 6213 6207 6216 6225 9 + 6210 6207 6216 6219 9 6210 6207 6216 6222 9 + 6210 6207 6216 6225 9 6207 6216 6225 6228 9 + 6207 6216 6225 6231 9 6207 6216 6225 6234 9 + 6204 6198 6207 6210 21 6204 6198 6207 6213 21 + 6204 6198 6207 6216 20 6201 6198 6207 6210 21 + 6201 6198 6207 6213 21 6201 6198 6207 6216 20 + 6198 6207 6216 6219 9 6198 6207 6216 6222 9 + 6195 6189 6183 6237 9 6195 6189 6198 6201 21 + 6195 6189 6198 6204 21 6195 6189 6198 6207 20 + 6192 6189 6183 6237 9 6192 6189 6198 6201 21 + 6192 6189 6198 6204 21 6192 6189 6198 6207 20 + 6189 6198 6207 6210 20 6189 6198 6207 6213 20 + 6186 6183 6189 6192 9 6186 6183 6189 6195 9 + 6186 6183 6189 6198 9 6186 6183 6237 6240 14 + 6186 6183 -6237 6240 15 6186 6183 6237 6243 3 + 6183 6189 6198 6201 20 6183 6189 6198 6204 20 + 6183 6237 6243 6246 2 6180 6177 6183 6186 3 + 6180 6177 6183 6189 3 6180 6177 6183 6237 3 + 6177 6183 6189 6192 9 6177 6183 6189 6195 9 + 6282 6279 6285 6288 1 6282 6279 -6285 6288 2 + 6279 6285 6291 6294 3 6267 6264 6270 6273 1 + 6267 6264 -6270 6273 2 6267 6264 6270 6276 1 + 6267 6264 -6270 6276 2 6261 6255 6249 6279 9 + 6261 6255 6264 6267 14 6261 6255 -6264 6267 3 + 6261 6255 -6264 6267 15 6261 6255 6264 6270 3 + 6258 6255 6249 6279 9 6258 6255 6264 6267 14 + 6258 6255 -6264 6267 3 6258 6255 -6264 6267 15 + 6258 6255 6264 6270 3 6255 6264 6270 6273 2 + 6255 6264 6270 6276 2 6252 6249 6255 6258 9 + 6252 6249 6255 6261 9 6252 6249 6255 6264 9 + 6252 6249 6279 6282 14 6252 6249 -6279 6282 15 + 6252 6249 6279 6285 3 6249 6279 6285 6288 2 + 6246 6243 6249 6252 3 6246 6243 6249 6255 3 + 6246 6243 6249 6279 3 6243 6249 6255 6258 9 + 6243 6249 6255 6261 9 6354 6351 6357 6360 1 + 6354 6351 -6357 6360 2 6351 6357 6363 6366 3 + 6339 6333 6330 6342 31 6336 6333 6330 6342 31 + 6333 6330 6342 6345 31 6333 6330 6342 6348 31 + 6327 6324 6330 6333 31 6327 6324 6330 6342 31 + 6324 6330 6333 6336 31 6324 6330 6333 6339 31 + 6324 6330 6342 6345 31 6324 6330 6342 6348 31 + 6321 6315 6324 6327 26 6321 6315 6324 6330 26 + 6318 6315 6324 6327 26 6318 6315 6324 6330 26 + 6312 6306 6315 6318 9 6312 6306 6315 6321 9 + 6312 6306 6315 6324 9 6309 6306 6315 6318 9 + 6309 6306 6315 6321 9 6309 6306 6315 6324 9 + 6306 6315 6324 6327 26 6303 6297 6291 6351 9 + 6303 6297 6306 6309 21 6303 6297 6306 6312 21 + 6303 6297 6306 6315 20 6300 6297 6291 6351 9 + 6300 6297 6306 6309 21 6300 6297 6306 6312 21 + 6300 6297 6306 6315 20 6297 6306 6315 6318 9 + 6297 6306 6315 6321 9 6294 6291 6297 6300 9 + 6294 6291 6297 6303 9 6294 6291 6297 6306 9 + 6294 6291 6351 6354 14 6294 6291 -6351 6354 15 + 6294 6291 6351 6357 3 6291 6297 6306 6309 20 + 6291 6297 6306 6312 20 6291 6351 6357 6360 2 + 6288 6285 6291 6294 3 6288 6285 6291 6297 3 + 6288 6285 6291 6351 3 6285 6291 6297 6300 9 + 6285 6291 6297 6303 9 6396 6393 6399 6402 1 + 6396 6393 -6399 6402 2 6393 6399 6405 6408 3 + 6381 6378 6384 6387 1 6381 6378 -6384 6387 2 + 6381 6378 6384 6390 1 6381 6378 -6384 6390 2 + 6375 6369 6363 6393 9 6375 6369 6378 6381 14 + 6375 6369 -6378 6381 3 6375 6369 -6378 6381 15 + 6375 6369 6378 6384 3 6372 6369 6363 6393 9 + 6372 6369 6378 6381 14 6372 6369 -6378 6381 3 + 6372 6369 -6378 6381 15 6372 6369 6378 6384 3 + 6369 6378 6384 6387 2 6369 6378 6384 6390 2 + 6366 6363 6369 6372 9 6366 6363 6369 6375 9 + 6366 6363 6369 6378 9 6366 6363 6393 6396 14 + 6366 6363 -6393 6396 15 6366 6363 6393 6399 3 + 6363 6393 6399 6402 2 6360 6357 6363 6366 3 + 6360 6357 6363 6369 3 6360 6357 6363 6393 3 + 6357 6363 6369 6372 9 6357 6363 6369 6375 9 + 6426 6423 6429 6432 1 6426 6423 -6429 6432 2 + 6423 6429 6435 6438 3 6420 6411 6405 6423 9 + 6417 6411 6405 6423 9 6414 6411 6405 6423 9 + 6408 6405 6411 6414 9 6408 6405 6411 6417 9 + 6408 6405 6411 6420 9 6408 6405 6423 6426 14 + 6408 6405 -6423 6426 15 6408 6405 6423 6429 3 + 6405 6423 6429 6432 2 6402 6399 6405 6408 3 + 6402 6399 6405 6411 3 6402 6399 6405 6423 3 + 6399 6405 6411 6414 9 6399 6405 6411 6417 9 + 6399 6405 6411 6420 9 6459 6456 6462 6465 1 + 6459 6456 -6462 6465 2 6456 6462 6468 6471 3 + 6447 6441 6435 6456 9 6447 6441 6450 6453 27 + 6444 6441 6435 6456 9 6444 6441 6450 6453 27 + 6438 6435 6441 6444 9 6438 6435 6441 6447 9 + 6438 6435 6441 6450 25 6438 6435 -6441 6450 26 + 6438 6435 6456 6459 14 6438 6435 -6456 6459 15 + 6438 6435 6456 6462 3 6435 6441 6450 6453 25 + 6435 6441 -6450 6453 20 6435 6456 6462 6465 2 + 6432 6429 6435 6438 3 6432 6429 6435 6441 3 + 6432 6429 6435 6456 3 6429 6435 6441 6444 9 + 6429 6435 6441 6447 9 6510 6507 6513 6516 1 + 6510 6507 -6513 6516 2 6507 6513 6519 6522 3 + 6489 6483 6492 6495 8 6486 6483 6492 6495 8 + 6483 6492 6495 6498 8 6483 6492 6495 6501 8 + 6483 6492 6495 6504 8 6480 6474 6468 6507 9 + 6480 6474 6483 6486 9 6480 6474 6483 6489 9 + 6480 6474 6483 6492 9 6477 6474 6468 6507 9 + 6477 6474 6483 6486 9 6477 6474 6483 6489 9 + 6477 6474 6483 6492 9 6471 6468 6474 6477 9 + 6471 6468 6474 6480 9 6471 6468 6474 6483 9 + 6471 6468 6507 6510 14 6471 6468 -6507 6510 15 + 6471 6468 6507 6513 3 6468 6474 6483 6486 9 + 6468 6474 6483 6489 9 6468 6507 6513 6516 2 + 6465 6462 6468 6471 3 6465 6462 6468 6474 3 + 6465 6462 6468 6507 3 6462 6468 6474 6477 9 + 6462 6468 6474 6480 9 6558 6555 6561 6564 1 + 6558 6555 -6561 6564 2 6555 6561 6567 6570 3 + 6540 6531 6525 6543 20 6537 6531 6525 6543 20 + 6534 6531 6525 6543 20 6531 6525 6543 6546 20 + 6531 6525 6543 6549 20 6531 6525 6543 6552 20 + 6528 6525 6519 6555 9 6528 6525 6531 6534 21 + 6528 6525 6531 6537 21 6528 6525 6531 6540 21 + 6528 6525 6543 6546 21 6528 6525 6543 6549 21 + 6528 6525 6543 6552 21 6522 6519 6525 6528 9 + 6522 6519 6525 6531 9 6522 6519 6525 6543 9 + 6522 6519 6555 6558 14 6522 6519 -6555 6558 15 + 6522 6519 6555 6561 3 6519 6525 6531 6534 20 + 6519 6525 6531 6537 20 6519 6525 6531 6540 20 + 6519 6525 6543 6546 20 6519 6525 6543 6549 20 + 6519 6525 6543 6552 20 6519 6555 6561 6564 2 + 6516 6513 6519 6522 3 6516 6513 6519 6525 3 + 6516 6513 6519 6555 3 6513 6519 6525 6528 9 + 6588 6585 6591 6594 1 6588 6585 -6591 6594 2 + 6585 6591 6597 6600 3 6582 6573 6567 6585 9 + 6579 6573 6567 6585 9 6576 6573 6567 6585 9 + 6570 6567 6573 6576 9 6570 6567 6573 6579 9 + 6570 6567 6573 6582 9 6570 6567 6585 6588 14 + 6570 6567 -6585 6588 15 6570 6567 6585 6591 3 + 6567 6585 6591 6594 2 6564 6561 6567 6570 3 + 6564 6561 6567 6573 3 6564 6561 6567 6585 3 + 6561 6567 6573 6576 9 6561 6567 6573 6579 9 + 6561 6567 6573 6582 9 6645 6642 6648 6651 1 + 6645 6642 -6648 6651 2 6642 6648 6654 6657 3 + 6627 6618 6612 6630 20 6624 6618 6612 6630 20 + 6621 6618 6612 6630 20 6618 6612 6630 6633 20 + 6618 6612 6630 6636 20 6618 6612 6630 6639 20 + 6615 6612 6618 6621 21 6615 6612 6618 6624 21 + 6615 6612 6618 6627 21 6615 6612 6630 6633 21 + 6615 6612 6630 6636 21 6615 6612 6630 6639 21 + 6609 6603 6597 6642 9 6609 6603 6612 6615 21 + 6609 6603 6612 6618 20 6609 6603 6612 6630 20 + 6606 6603 6597 6642 9 6606 6603 6612 6615 21 + 6606 6603 6612 6618 20 6606 6603 6612 6630 20 + 6603 6612 6618 6621 20 6603 6612 6618 6624 20 + 6603 6612 6618 6627 20 6603 6612 6630 6633 20 + 6603 6612 6630 6636 20 6603 6612 6630 6639 20 + 6600 6597 6603 6606 9 6600 6597 6603 6609 9 + 6600 6597 6603 6612 9 6600 6597 6642 6645 14 + 6600 6597 -6642 6645 15 6600 6597 6642 6648 3 + 6597 6603 6612 6615 20 6597 6642 6648 6651 2 + 6594 6591 6597 6600 3 6594 6591 6597 6603 3 + 6594 6591 6597 6642 3 6591 6597 6603 6606 9 + 6591 6597 6603 6609 9 6687 6684 6690 6693 1 + 6687 6684 -6690 6693 2 6684 6690 6696 6699 3 + 6675 6666 6660 6678 25 6675 6666 -6660 6678 26 + 6672 6666 6660 6678 25 6672 6666 -6660 6678 26 + 6669 6666 6660 6678 25 6669 6666 -6660 6678 26 + 6666 6660 6678 6681 25 6666 6660 -6678 6681 20 + 6663 6660 6654 6684 9 6663 6660 6666 6669 9 + 6663 6660 6666 6672 9 6663 6660 6666 6675 9 + 6663 6660 6678 6681 27 6657 6654 6660 6663 9 + 6657 6654 6660 6666 9 6657 6654 6660 6678 25 + 6657 6654 -6660 6678 26 6657 6654 6684 6687 14 + 6657 6654 -6684 6687 15 6657 6654 6684 6690 3 + 6654 6660 6666 6669 20 6654 6660 6666 6672 20 + 6654 6660 6666 6675 20 6654 6660 6678 6681 25 + 6654 6660 -6678 6681 20 6654 6684 6690 6693 2 + 6651 6648 6654 6657 3 6651 6648 6654 6660 3 + 6651 6648 6654 6684 3 6648 6654 6660 6663 9 + 6750 6747 6753 6756 1 6750 6747 -6753 6756 2 + 6747 6753 6759 6762 3 6738 6735 6741 6744 19 + 6732 6729 6726 6735 28 6729 6726 6735 6738 19 + 6726 6735 6741 6744 19 6723 6720 6726 6729 19 + 6723 6720 6726 6735 19 6720 6726 6729 6732 28 + 6720 6726 6735 6738 19 6717 6714 6711 6741 19 + 6717 6714 6720 6723 19 6717 6714 6720 6726 19 + 6714 6711 6741 6744 19 6711 6714 6720 6723 19 + 6711 6741 6735 6738 19 6708 6702 6696 6747 9 + 6708 6702 6711 6714 3 6708 6702 6711 6741 3 + 6705 6702 6696 6747 9 6705 6702 6711 6714 3 + 6705 6702 6711 6741 3 6702 6711 6714 6717 19 + 6702 6711 6741 6744 19 6699 6696 6702 6705 9 + 6699 6696 6702 6708 9 6699 6696 6702 6711 9 + 6699 6696 6747 6750 14 6699 6696 -6747 6750 15 + 6699 6696 6747 6753 3 6696 6747 6753 6756 2 + 6693 6690 6696 6699 3 6693 6690 6696 6702 3 + 6693 6690 6696 6747 3 6690 6696 6702 6705 9 + 6690 6696 6702 6708 9 6807 6804 6810 6813 1 + 6807 6804 -6810 6813 2 6804 6810 6816 6819 3 + 6804 6810 6816 6822 3 6789 6783 6792 6795 21 + 6789 6783 6792 6798 21 6789 6783 6792 6801 21 + 6786 6783 6792 6795 21 6786 6783 6792 6798 21 + 6786 6783 6792 6801 21 6780 6771 6765 6783 20 + 6777 6771 6765 6783 20 6774 6771 6765 6783 20 + 6771 6765 6783 6786 20 6771 6765 6783 6789 20 + 6768 6765 6759 6804 9 6768 6765 6771 6774 21 + 6768 6765 6771 6777 21 6768 6765 6771 6780 21 + 6768 6765 6783 6786 21 6768 6765 6783 6789 21 + 6768 6765 6783 6792 20 6765 6783 6792 6795 20 + 6765 6783 6792 6798 20 6765 6783 6792 6801 20 + 6762 6759 6765 6768 9 6762 6759 6765 6771 9 + 6762 6759 6765 6783 9 6762 6759 6804 6807 14 + 6762 6759 -6804 6807 15 6762 6759 6804 6810 3 + 6759 6765 6771 6774 20 6759 6765 6771 6777 20 + 6759 6765 6771 6780 20 6759 6765 6783 6786 20 + 6759 6765 6783 6789 20 6759 6804 6810 6813 2 + 6756 6753 6759 6762 3 6756 6753 6759 6765 3 + 6756 6753 6759 6804 3 6753 6759 6765 6768 9 + 6828 6825 6831 6834 1 6828 6825 -6831 6834 2 + 6825 6831 6837 6840 3 6822 6816 6825 6828 14 + 6822 6816 -6825 6828 15 6822 6816 6825 6831 3 + 6819 6816 6825 6828 14 6819 6816 -6825 6828 15 + 6819 6816 6825 6831 3 6816 6825 6831 6834 2 + 6813 6810 6816 6819 3 6813 6810 6816 6822 3 + 6813 6810 6816 6825 3 6858 6855 6861 6864 1 + 6858 6855 -6861 6864 2 6855 6861 6867 6870 3 + 6852 6843 6837 6855 9 6849 6843 6837 6855 9 + 6846 6843 6837 6855 9 6840 6837 6843 6846 9 + 6840 6837 6843 6849 9 6840 6837 6843 6852 9 + 6840 6837 6855 6858 14 6840 6837 -6855 6858 15 + 6840 6837 6855 6861 3 6837 6855 6861 6864 2 + 6834 6831 6837 6840 3 6834 6831 6837 6843 3 + 6834 6831 6837 6855 3 6831 6837 6843 6846 9 + 6831 6837 6843 6849 9 6831 6837 6843 6852 9 + 6903 6900 6906 6909 1 6903 6900 -6906 6909 2 + 6900 6906 6912 6915 3 6888 6882 6891 6894 3 + 6888 6882 6891 6897 3 6885 6882 6891 6894 3 + 6885 6882 6891 6897 3 6879 6873 6867 6900 9 + 6879 6873 6882 6885 21 6879 6873 6882 6888 21 + 6879 6873 6882 6891 9 6876 6873 6867 6900 9 + 6876 6873 6882 6885 21 6876 6873 6882 6888 21 + 6876 6873 6882 6891 9 6870 6867 6873 6876 9 + 6870 6867 6873 6879 9 6870 6867 6873 6882 9 + 6870 6867 6900 6903 14 6870 6867 -6900 6903 15 + 6870 6867 6900 6906 3 6867 6873 6882 6885 20 + 6867 6873 6882 6888 20 6867 6900 6906 6909 2 + 6864 6861 6867 6870 3 6864 6861 6867 6873 3 + 6864 6861 6867 6900 3 6861 6867 6873 6876 9 + 6861 6867 6873 6879 9 6969 6966 6972 6975 1 + 6969 6966 -6972 6975 2 6966 6972 6978 6981 3 + 6951 6945 6954 6957 9 6951 6945 6954 6960 9 + 6951 6945 6954 6963 9 6948 6945 6954 6957 9 + 6948 6945 6954 6960 9 6948 6945 6954 6963 9 + 6942 6936 6945 6948 9 6942 6936 6945 6951 9 + 6942 6936 6945 6954 9 6939 6936 6945 6948 9 + 6939 6936 6945 6951 9 6939 6936 6945 6954 9 + 6936 6945 6954 6957 9 6936 6945 6954 6960 9 + 6936 6945 6954 6963 9 6933 6927 6936 6939 21 + 6933 6927 6936 6942 21 6933 6927 6936 6945 20 + 6930 6927 6936 6939 21 6930 6927 6936 6942 21 + 6930 6927 6936 6945 20 6927 6936 6945 6948 9 + 6927 6936 6945 6951 9 6924 6918 6912 6966 9 + 6924 6918 6927 6930 21 6924 6918 6927 6933 21 + 6924 6918 6927 6936 20 6921 6918 6912 6966 9 + 6921 6918 6927 6930 21 6921 6918 6927 6933 21 + 6921 6918 6927 6936 20 6918 6927 6936 6939 20 + 6918 6927 6936 6942 20 6915 6912 6918 6921 9 + 6915 6912 6918 6924 9 6915 6912 6918 6927 9 + 6915 6912 6966 6969 14 6915 6912 -6966 6969 15 + 6915 6912 6966 6972 3 6912 6918 6927 6930 20 + 6912 6918 6927 6933 20 6912 6966 6972 6975 2 + 6909 6906 6912 6915 3 6909 6906 6912 6918 3 + 6909 6906 6912 6966 3 6906 6912 6918 6921 9 + 6906 6912 6918 6924 9 6999 6996 7002 7005 1 + 6999 6996 -7002 7005 2 6996 7002 7008 7011 3 + 6993 6984 6978 6996 9 6990 6984 6978 6996 9 + 6987 6984 6978 6996 9 6981 6978 6984 6987 9 + 6981 6978 6984 6990 9 6981 6978 6984 6993 9 + 6981 6978 6996 6999 14 6981 6978 -6996 6999 15 + 6981 6978 6996 7002 3 6978 6996 7002 7005 2 + 6975 6972 6978 6981 3 6975 6972 6978 6984 3 + 6975 6972 6978 6996 3 6972 6978 6984 6987 9 + 6972 6978 6984 6990 9 6972 6978 6984 6993 9 + 7047 7053 7056 7059 3 7047 7053 7056 7062 3 + 7047 7053 7083 7086 3 7029 7023 7032 7035 8 + 7026 7023 7032 7035 8 7023 7032 7035 7038 8 + 7023 7032 7035 7041 8 7023 7032 7035 7044 8 + 7020 7014 7008 7047 9 7020 7014 7023 7026 9 + 7020 7014 7023 7029 9 7020 7014 7023 7032 9 + 7017 7014 7008 7047 9 7017 7014 7023 7026 9 + 7017 7014 7023 7029 9 7017 7014 7023 7032 9 + 7011 7008 7014 7017 9 7011 7008 7014 7020 9 + 7011 7008 7014 7023 9 7011 7008 7047 7050 14 + 7011 7008 -7047 7050 15 7011 7008 7047 7053 3 + 7008 7014 7023 7026 9 7008 7014 7023 7029 9 + 7005 7002 7008 7011 3 7005 7002 7008 7014 3 + 7005 7002 7008 7047 3 7002 7008 7014 7017 9 + 7002 7008 7014 7020 9 7092 7089 7095 7098 1 + 7092 7089 -7095 7098 2 7089 7095 7101 7104 3 + 7086 7083 7089 7092 14 7086 7083 -7089 7092 15 + 7086 7083 7089 7095 3 7083 7089 7095 7098 2 + 7080 7074 7083 7086 9 7080 7074 7083 7089 9 + 7077 7074 7083 7086 9 7077 7074 7083 7089 9 + 7071 7065 7074 7077 21 7071 7065 7074 7080 21 + 7071 7065 7074 7083 20 7068 7065 7074 7077 21 + 7068 7065 7074 7080 21 7068 7065 7074 7083 20 + 7065 7074 7083 7086 9 7062 7056 7053 7083 3 + 7062 7056 7065 7068 9 7062 7056 7065 7071 9 + 7062 7056 7065 7074 9 7059 7056 7053 7083 3 + 7059 7056 7065 7068 9 7059 7056 7065 7071 9 + 7059 7056 7065 7074 9 7056 7053 7083 7086 3 + 7056 7065 7074 7077 20 7056 7065 7074 7080 20 + 7053 7056 7065 7068 9 7053 7056 7065 7071 9 + 7053 7083 7074 7077 9 7053 7083 7074 7080 9 + 7125 7122 7128 7131 1 7125 7122 -7128 7131 2 + 7122 7128 7134 7137 3 7113 7107 7101 7122 9 + 7113 7107 7116 7119 27 7110 7107 7101 7122 9 + 7110 7107 7116 7119 27 7104 7101 7107 7110 9 + 7104 7101 7107 7113 9 7104 7101 7107 7116 25 + 7104 7101 -7107 7116 26 7104 7101 7122 7125 14 + 7104 7101 -7122 7125 15 7104 7101 7122 7128 3 + 7101 7107 7116 7119 25 7101 7107 -7116 7119 20 + 7101 7122 7128 7131 2 7098 7095 7101 7104 3 + 7098 7095 7101 7107 3 7098 7095 7101 7122 3 + 7095 7101 7107 7110 9 7095 7101 7107 7113 9 + 7188 7185 7191 7194 1 7188 7185 -7191 7194 2 + 7185 7191 7197 7200 3 7176 7173 7179 7182 19 + 7170 7167 7164 7173 28 7167 7164 7173 7176 19 + 7164 7173 7179 7182 19 7161 7158 7164 7167 19 + 7161 7158 7164 7173 19 7158 7164 7167 7170 28 + 7158 7164 7173 7176 19 7155 7152 7149 7179 19 + 7155 7152 7158 7161 19 7155 7152 7158 7164 19 + 7152 7149 7179 7182 19 7149 7152 7158 7161 19 + 7149 7179 7173 7176 19 7146 7140 7134 7185 9 + 7146 7140 7149 7152 3 7146 7140 7149 7179 3 + 7143 7140 7134 7185 9 7143 7140 7149 7152 3 + 7143 7140 7149 7179 3 7140 7149 7152 7155 19 + 7140 7149 7179 7182 19 7137 7134 7140 7143 9 + 7137 7134 7140 7146 9 7137 7134 7140 7149 9 + 7137 7134 7185 7188 14 7137 7134 -7185 7188 15 + 7137 7134 7185 7191 3 7134 7185 7191 7194 2 + 7131 7128 7134 7137 3 7131 7128 7134 7140 3 + 7131 7128 7134 7185 3 7128 7134 7140 7143 9 + 7128 7134 7140 7146 9 7230 7227 7233 7236 1 + 7230 7227 -7233 7236 2 7227 7233 7239 7242 3 + 7215 7212 7218 7221 1 7215 7212 -7218 7221 2 + 7215 7212 7218 7224 1 7215 7212 -7218 7224 2 + 7209 7203 7197 7227 9 7209 7203 7212 7215 14 + 7209 7203 -7212 7215 3 7209 7203 -7212 7215 15 + 7209 7203 7212 7218 3 7206 7203 7197 7227 9 + 7206 7203 7212 7215 14 7206 7203 -7212 7215 3 + 7206 7203 -7212 7215 15 7206 7203 7212 7218 3 + 7203 7212 7218 7221 2 7203 7212 7218 7224 2 + 7200 7197 7203 7206 9 7200 7197 7203 7209 9 + 7200 7197 7203 7212 9 7200 7197 7227 7230 14 + 7200 7197 -7227 7230 15 7200 7197 7227 7233 3 + 7197 7227 7233 7236 2 7194 7191 7197 7200 3 + 7194 7191 7197 7203 3 7194 7191 7197 7227 3 + 7191 7197 7203 7206 9 7191 7197 7203 7209 9 + 7272 7269 7275 7278 1 7272 7269 -7275 7278 2 + 7269 7275 7281 7284 3 7260 7251 7245 7263 25 + 7260 7251 -7245 7263 26 7257 7251 7245 7263 25 + 7257 7251 -7245 7263 26 7254 7251 7245 7263 25 + 7254 7251 -7245 7263 26 7251 7245 7263 7266 25 + 7251 7245 -7263 7266 20 7248 7245 7239 7269 9 + 7248 7245 7251 7254 9 7248 7245 7251 7257 9 + 7248 7245 7251 7260 9 7248 7245 7263 7266 27 + 7242 7239 7245 7248 9 7242 7239 7245 7251 9 + 7242 7239 7245 7263 25 7242 7239 -7245 7263 26 + 7242 7239 7269 7272 14 7242 7239 -7269 7272 15 + 7242 7239 7269 7275 3 7239 7245 7251 7254 20 + 7239 7245 7251 7257 20 7239 7245 7251 7260 20 + 7239 7245 7263 7266 25 7239 7245 -7263 7266 20 + 7239 7269 7275 7278 2 7236 7233 7239 7242 3 + 7236 7233 7239 7245 3 7236 7233 7239 7269 3 + 7233 7239 7245 7248 9 7323 7320 7326 7329 1 + 7323 7320 -7326 7329 2 7320 7326 7332 7335 3 + 7320 7326 7332 7338 3 7302 7296 7305 7308 8 + 7299 7296 7305 7308 8 7296 7305 7308 7311 8 + 7296 7305 7308 7314 8 7296 7305 7308 7317 8 + 7293 7287 7281 7320 9 7293 7287 7296 7299 9 + 7293 7287 7296 7302 9 7293 7287 7296 7305 9 + 7290 7287 7281 7320 9 7290 7287 7296 7299 9 + 7290 7287 7296 7302 9 7290 7287 7296 7305 9 + 7284 7281 7287 7290 9 7284 7281 7287 7293 9 + 7284 7281 7287 7296 9 7284 7281 7320 7323 14 + 7284 7281 -7320 7323 15 7284 7281 7320 7326 3 + 7281 7287 7296 7299 9 7281 7287 7296 7302 9 + 7281 7320 7326 7329 2 7278 7275 7281 7284 3 + 7278 7275 7281 7287 3 7278 7275 7281 7320 3 + 7275 7281 7287 7290 9 7275 7281 7287 7293 9 + 7344 7341 7347 7350 1 7344 7341 -7347 7350 2 + 7341 7347 7353 7356 3 7338 7332 7341 7344 14 + 7338 7332 -7341 7344 15 7338 7332 7341 7347 3 + 7335 7332 7341 7344 14 7335 7332 -7341 7344 15 + 7335 7332 7341 7347 3 7332 7341 7347 7350 2 + 7329 7326 7332 7335 3 7329 7326 7332 7338 3 + 7329 7326 7332 7341 3 7392 7389 7395 7398 1 + 7392 7389 -7395 7398 2 7389 7395 7401 7404 3 + 7374 7365 7359 7377 20 7371 7365 7359 7377 20 + 7368 7365 7359 7377 20 7365 7359 7377 7380 20 + 7365 7359 7377 7383 20 7365 7359 7377 7386 20 + 7362 7359 7353 7389 9 7362 7359 7365 7368 21 + 7362 7359 7365 7371 21 7362 7359 7365 7374 21 + 7362 7359 7377 7380 21 7362 7359 7377 7383 21 + 7362 7359 7377 7386 21 7356 7353 7359 7362 9 + 7356 7353 7359 7365 9 7356 7353 7359 7377 9 + 7356 7353 7389 7392 14 7356 7353 -7389 7392 15 + 7356 7353 7389 7395 3 7353 7359 7365 7368 20 + 7353 7359 7365 7371 20 7353 7359 7365 7374 20 + 7353 7359 7377 7380 20 7353 7359 7377 7383 20 + 7353 7359 7377 7386 20 7353 7389 7395 7398 2 + 7350 7347 7353 7356 3 7350 7347 7353 7359 3 + 7350 7347 7353 7389 3 7347 7353 7359 7362 9 + 7422 7419 7425 7428 1 7422 7419 -7425 7428 2 + 7419 7425 7431 7434 3 7416 7407 7401 7419 9 + 7413 7407 7401 7419 9 7410 7407 7401 7419 9 + 7404 7401 7407 7410 9 7404 7401 7407 7413 9 + 7404 7401 7407 7416 9 7404 7401 7419 7422 14 + 7404 7401 -7419 7422 15 7404 7401 7419 7425 3 + 7401 7419 7425 7428 2 7398 7395 7401 7404 3 + 7398 7395 7401 7407 3 7398 7395 7401 7419 3 + 7395 7401 7407 7410 9 7395 7401 7407 7413 9 + 7395 7401 7407 7416 9 7488 7485 7491 7494 1 + 7488 7485 -7491 7494 2 7485 7491 7497 7500 3 + 7470 7464 7473 7476 9 7470 7464 7473 7479 9 + 7470 7464 7473 7482 9 7467 7464 7473 7476 9 + 7467 7464 7473 7479 9 7467 7464 7473 7482 9 + 7461 7455 7464 7467 9 7461 7455 7464 7470 9 + 7461 7455 7464 7473 9 7458 7455 7464 7467 9 + 7458 7455 7464 7470 9 7458 7455 7464 7473 9 + 7455 7464 7473 7476 9 7455 7464 7473 7479 9 + 7455 7464 7473 7482 9 7452 7446 7455 7458 21 + 7452 7446 7455 7461 21 7452 7446 7455 7464 20 + 7449 7446 7455 7458 21 7449 7446 7455 7461 21 + 7449 7446 7455 7464 20 7446 7455 7464 7467 9 + 7446 7455 7464 7470 9 7443 7437 7431 7485 9 + 7443 7437 7446 7449 21 7443 7437 7446 7452 21 + 7443 7437 7446 7455 20 7440 7437 7431 7485 9 + 7440 7437 7446 7449 21 7440 7437 7446 7452 21 + 7440 7437 7446 7455 20 7437 7446 7455 7458 20 + 7437 7446 7455 7461 20 7434 7431 7437 7440 9 + 7434 7431 7437 7443 9 7434 7431 7437 7446 9 + 7434 7431 7485 7488 14 7434 7431 -7485 7488 15 + 7434 7431 7485 7491 3 7431 7437 7446 7449 20 + 7431 7437 7446 7452 20 7431 7485 7491 7494 2 + 7428 7425 7431 7434 3 7428 7425 7431 7437 3 + 7428 7425 7431 7485 3 7425 7431 7437 7440 9 + 7425 7431 7437 7443 9 7518 7515 7521 7524 1 + 7518 7515 -7521 7524 2 7515 7521 7527 7530 3 + 7512 7503 7497 7515 9 7509 7503 7497 7515 9 + 7506 7503 7497 7515 9 7500 7497 7503 7506 9 + 7500 7497 7503 7509 9 7500 7497 7503 7512 9 + 7500 7497 7515 7518 14 7500 7497 -7515 7518 15 + 7500 7497 7515 7521 3 7497 7515 7521 7524 2 + 7494 7491 7497 7500 3 7494 7491 7497 7503 3 + 7494 7491 7497 7515 3 7491 7497 7503 7506 9 + 7491 7497 7503 7509 9 7491 7497 7503 7512 9 + 7551 7548 7554 7557 1 7551 7548 -7554 7557 2 + 7548 7554 7560 7563 3 7539 7533 7527 7548 9 + 7539 7533 7542 7545 27 7536 7533 7527 7548 9 + 7536 7533 7542 7545 27 7530 7527 7533 7536 9 + 7530 7527 7533 7539 9 7530 7527 7533 7542 25 + 7530 7527 -7533 7542 26 7530 7527 7548 7551 14 + 7530 7527 -7548 7551 15 7530 7527 7548 7554 3 + 7527 7533 7542 7545 25 7527 7533 -7542 7545 20 + 7527 7548 7554 7557 2 7524 7521 7527 7530 3 + 7524 7521 7527 7533 3 7524 7521 7527 7548 3 + 7521 7527 7533 7536 9 7521 7527 7533 7539 9 + 7608 7605 7611 7614 1 7608 7605 -7611 7614 2 + 7605 7611 7617 7620 3 7590 7581 7575 7593 20 + 7587 7581 7575 7593 20 7584 7581 7575 7593 20 + 7581 7575 7593 7596 20 7581 7575 7593 7599 20 + 7581 7575 7593 7602 20 7578 7575 7581 7584 21 + 7578 7575 7581 7587 21 7578 7575 7581 7590 21 + 7578 7575 7593 7596 21 7578 7575 7593 7599 21 + 7578 7575 7593 7602 21 7572 7566 7560 7605 9 + 7572 7566 7575 7578 21 7572 7566 7575 7581 20 + 7572 7566 7575 7593 20 7569 7566 7560 7605 9 + 7569 7566 7575 7578 21 7569 7566 7575 7581 20 + 7569 7566 7575 7593 20 7566 7575 7581 7584 20 + 7566 7575 7581 7587 20 7566 7575 7581 7590 20 + 7566 7575 7593 7596 20 7566 7575 7593 7599 20 + 7566 7575 7593 7602 20 7563 7560 7566 7569 9 + 7563 7560 7566 7572 9 7563 7560 7566 7575 9 + 7563 7560 7605 7608 14 7563 7560 -7605 7608 15 + 7563 7560 7605 7611 3 7560 7566 7575 7578 20 + 7560 7605 7611 7614 2 7557 7554 7560 7563 3 + 7557 7554 7560 7566 3 7557 7554 7560 7605 3 + 7554 7560 7566 7569 9 7554 7560 7566 7572 9 + 7653 7650 7656 7659 1 7653 7650 -7656 7659 2 + 7650 7656 7662 7665 3 7638 7632 7641 7644 3 + 7638 7632 7641 7647 3 7635 7632 7641 7644 3 + 7635 7632 7641 7647 3 7629 7623 7617 7650 9 + 7629 7623 7632 7635 21 7629 7623 7632 7638 21 + 7629 7623 7632 7641 9 7626 7623 7617 7650 9 + 7626 7623 7632 7635 21 7626 7623 7632 7638 21 + 7626 7623 7632 7641 9 7620 7617 7623 7626 9 + 7620 7617 7623 7629 9 7620 7617 7623 7632 9 + 7620 7617 7650 7653 14 7620 7617 -7650 7653 15 + 7620 7617 7650 7656 3 7617 7623 7632 7635 20 + 7617 7623 7632 7638 20 7617 7650 7656 7659 2 + 7614 7611 7617 7620 3 7614 7611 7617 7623 3 + 7614 7611 7617 7650 3 7611 7617 7623 7626 9 + 7611 7617 7623 7629 9 7683 7680 7686 7689 1 + 7683 7680 -7686 7689 2 7680 7686 7692 7695 3 + 7677 7668 7662 7680 9 7674 7668 7662 7680 9 + 7671 7668 7662 7680 9 7665 7662 7668 7671 9 + 7665 7662 7668 7674 9 7665 7662 7668 7677 9 + 7665 7662 7680 7683 14 7665 7662 -7680 7683 15 + 7665 7662 7680 7686 3 7662 7680 7686 7689 2 + 7659 7656 7662 7665 3 7659 7656 7662 7668 3 + 7659 7656 7662 7680 3 7656 7662 7668 7671 9 + 7656 7662 7668 7674 9 7656 7662 7668 7677 9 + 7725 7722 7728 7731 1 7725 7722 -7728 7731 2 + 7722 7728 7734 7737 3 7713 7704 7698 7716 25 + 7713 7704 -7698 7716 26 7710 7704 7698 7716 25 + 7710 7704 -7698 7716 26 7707 7704 7698 7716 25 + 7707 7704 -7698 7716 26 7704 7698 7716 7719 25 + 7704 7698 -7716 7719 20 7701 7698 7692 7722 9 + 7701 7698 7704 7707 9 7701 7698 7704 7710 9 + 7701 7698 7704 7713 9 7701 7698 7716 7719 27 + 7695 7692 7698 7701 9 7695 7692 7698 7704 9 + 7695 7692 7698 7716 25 7695 7692 -7698 7716 26 + 7695 7692 7722 7725 14 7695 7692 -7722 7725 15 + 7695 7692 7722 7728 3 7692 7698 7704 7707 20 + 7692 7698 7704 7710 20 7692 7698 7704 7713 20 + 7692 7698 7716 7719 25 7692 7698 -7716 7719 20 + 7692 7722 7728 7731 2 7689 7686 7692 7695 3 + 7689 7686 7692 7698 3 7689 7686 7692 7722 3 + 7686 7692 7698 7701 9 7773 7770 7776 7779 1 + 7773 7770 -7776 7779 2 7770 7776 7782 7785 3 + 7755 7746 7740 7758 20 7752 7746 7740 7758 20 + 7749 7746 7740 7758 20 7746 7740 7758 7761 20 + 7746 7740 7758 7764 20 7746 7740 7758 7767 20 + 7743 7740 7734 7770 9 7743 7740 7746 7749 21 + 7743 7740 7746 7752 21 7743 7740 7746 7755 21 + 7743 7740 7758 7761 21 7743 7740 7758 7764 21 + 7743 7740 7758 7767 21 7737 7734 7740 7743 9 + 7737 7734 7740 7746 9 7737 7734 7740 7758 9 + 7737 7734 7770 7773 14 7737 7734 -7770 7773 15 + 7737 7734 7770 7776 3 7734 7740 7746 7749 20 + 7734 7740 7746 7752 20 7734 7740 7746 7755 20 + 7734 7740 7758 7761 20 7734 7740 7758 7764 20 + 7734 7740 7758 7767 20 7734 7770 7776 7779 2 + 7731 7728 7734 7737 3 7731 7728 7734 7740 3 + 7731 7728 7734 7770 3 7728 7734 7740 7743 9 + 7845 7842 7848 7851 1 7845 7842 -7848 7851 2 + 7842 7848 7854 7857 3 7830 7824 7821 7833 31 + 7827 7824 7821 7833 31 7824 7821 7833 7836 31 + 7824 7821 7833 7839 31 7818 7815 7821 7824 31 + 7818 7815 7821 7833 31 7815 7821 7824 7827 31 + 7815 7821 7824 7830 31 7815 7821 7833 7836 31 + 7815 7821 7833 7839 31 7812 7806 7815 7818 26 + 7812 7806 7815 7821 26 7809 7806 7815 7818 26 + 7809 7806 7815 7821 26 7803 7797 7806 7809 9 + 7803 7797 7806 7812 9 7803 7797 7806 7815 9 + 7800 7797 7806 7809 9 7800 7797 7806 7812 9 + 7800 7797 7806 7815 9 7797 7806 7815 7818 26 + 7794 7788 7782 7842 9 7794 7788 7797 7800 21 + 7794 7788 7797 7803 21 7794 7788 7797 7806 20 + 7791 7788 7782 7842 9 7791 7788 7797 7800 21 + 7791 7788 7797 7803 21 7791 7788 7797 7806 20 + 7788 7797 7806 7809 9 7788 7797 7806 7812 9 + 7785 7782 7788 7791 9 7785 7782 7788 7794 9 + 7785 7782 7788 7797 9 7785 7782 7842 7845 14 + 7785 7782 -7842 7845 15 7785 7782 7842 7848 3 + 7782 7788 7797 7800 20 7782 7788 7797 7803 20 + 7782 7842 7848 7851 2 7779 7776 7782 7785 3 + 7779 7776 7782 7788 3 7779 7776 7782 7842 3 + 7776 7782 7788 7791 9 7776 7782 7788 7794 9 + 7908 7905 7911 7914 1 7908 7905 -7911 7914 2 + 7905 7911 7917 7920 3 7896 7893 7899 7902 19 + 7890 7887 7884 7893 28 7887 7884 7893 7896 19 + 7884 7893 7899 7902 19 7881 7878 7884 7887 19 + 7881 7878 7884 7893 19 7878 7884 7887 7890 28 + 7878 7884 7893 7896 19 7875 7872 7869 7899 19 + 7875 7872 7878 7881 19 7875 7872 7878 7884 19 + 7872 7869 7899 7902 19 7869 7872 7878 7881 19 + 7869 7899 7893 7896 19 7866 7860 7854 7905 9 + 7866 7860 7869 7872 3 7866 7860 7869 7899 3 + 7863 7860 7854 7905 9 7863 7860 7869 7872 3 + 7863 7860 7869 7899 3 7860 7869 7872 7875 19 + 7860 7869 7899 7902 19 7857 7854 7860 7863 9 + 7857 7854 7860 7866 9 7857 7854 7860 7869 9 + 7857 7854 7905 7908 14 7857 7854 -7905 7908 15 + 7857 7854 7905 7911 3 7854 7905 7911 7914 2 + 7851 7848 7854 7857 3 7851 7848 7854 7860 3 + 7851 7848 7854 7905 3 7848 7854 7860 7863 9 + 7848 7854 7860 7866 9 7950 7947 7953 7956 1 + 7950 7947 -7953 7956 2 7947 7953 7959 7962 3 + 7938 7929 7923 7941 25 7938 7929 -7923 7941 26 + 7935 7929 7923 7941 25 7935 7929 -7923 7941 26 + 7932 7929 7923 7941 25 7932 7929 -7923 7941 26 + 7929 7923 7941 7944 25 7929 7923 -7941 7944 20 + 7926 7923 7917 7947 9 7926 7923 7929 7932 9 + 7926 7923 7929 7935 9 7926 7923 7929 7938 9 + 7926 7923 7941 7944 27 7920 7917 7923 7926 9 + 7920 7917 7923 7929 9 7920 7917 7923 7941 25 + 7920 7917 -7923 7941 26 7920 7917 7947 7950 14 + 7920 7917 -7947 7950 15 7920 7917 7947 7953 3 + 7917 7923 7929 7932 20 7917 7923 7929 7935 20 + 7917 7923 7929 7938 20 7917 7923 7941 7944 25 + 7917 7923 -7941 7944 20 7917 7947 7953 7956 2 + 7914 7911 7917 7920 3 7914 7911 7917 7923 3 + 7914 7911 7917 7947 3 7911 7917 7923 7926 9 + 7980 7977 7983 7986 1 7980 7977 -7983 7986 2 + 7977 7983 7989 7992 3 7974 7965 7959 7977 9 + 7971 7965 7959 7977 9 7968 7965 7959 7977 9 + 7962 7959 7965 7968 9 7962 7959 7965 7971 9 + 7962 7959 7965 7974 9 7962 7959 7977 7980 14 + 7962 7959 -7977 7980 15 7962 7959 7977 7983 3 + 7959 7977 7983 7986 2 7956 7953 7959 7962 3 + 7956 7953 7959 7965 3 7956 7953 7959 7977 3 + 7953 7959 7965 7968 9 7953 7959 7965 7971 9 + 7953 7959 7965 7974 9 8037 8034 8040 8043 1 + 8037 8034 -8040 8043 2 8034 8040 8046 8049 3 + 8019 8010 8004 8022 20 8016 8010 8004 8022 20 + 8013 8010 8004 8022 20 8010 8004 8022 8025 20 + 8010 8004 8022 8028 20 8010 8004 8022 8031 20 + 8007 8004 8010 8013 21 8007 8004 8010 8016 21 + 8007 8004 8010 8019 21 8007 8004 8022 8025 21 + 8007 8004 8022 8028 21 8007 8004 8022 8031 21 + 8001 7995 7989 8034 9 8001 7995 8004 8007 21 + 8001 7995 8004 8010 20 8001 7995 8004 8022 20 + 7998 7995 7989 8034 9 7998 7995 8004 8007 21 + 7998 7995 8004 8010 20 7998 7995 8004 8022 20 + 7995 8004 8010 8013 20 7995 8004 8010 8016 20 + 7995 8004 8010 8019 20 7995 8004 8022 8025 20 + 7995 8004 8022 8028 20 7995 8004 8022 8031 20 + 7992 7989 7995 7998 9 7992 7989 7995 8001 9 + 7992 7989 7995 8004 9 7992 7989 8034 8037 14 + 7992 7989 -8034 8037 15 7992 7989 8034 8040 3 + 7989 7995 8004 8007 20 7989 8034 8040 8043 2 + 7986 7983 7989 7992 3 7986 7983 7989 7995 3 + 7986 7983 7989 8034 3 7983 7989 7995 7998 9 + 7983 7989 7995 8001 9 8067 8064 8070 8073 1 + 8067 8064 -8070 8073 2 8064 8070 8076 8079 3 + 8061 8052 8046 8064 9 8058 8052 8046 8064 9 + 8055 8052 8046 8064 9 8049 8046 8052 8055 9 + 8049 8046 8052 8058 9 8049 8046 8052 8061 9 + 8049 8046 8064 8067 14 8049 8046 -8064 8067 15 + 8049 8046 8064 8070 3 8046 8064 8070 8073 2 + 8043 8040 8046 8049 3 8043 8040 8046 8052 3 + 8043 8040 8046 8064 3 8040 8046 8052 8055 9 + 8040 8046 8052 8058 9 8040 8046 8052 8061 9 + 8124 8121 8127 8130 1 8124 8121 -8127 8130 2 + 8121 8127 8133 8136 3 8121 8127 8133 8139 3 + 8106 8097 8091 8109 20 8103 8097 8091 8109 20 + 8100 8097 8091 8109 20 8097 8091 8109 8112 20 + 8097 8091 8109 8115 20 8097 8091 8109 8118 20 + 8094 8091 8097 8100 21 8094 8091 8097 8103 21 + 8094 8091 8097 8106 21 8094 8091 8109 8112 21 + 8094 8091 8109 8115 21 8094 8091 8109 8118 21 + 8088 8082 8076 8121 9 8088 8082 8091 8094 21 + 8088 8082 8091 8097 20 8088 8082 8091 8109 20 + 8085 8082 8076 8121 9 8085 8082 8091 8094 21 + 8085 8082 8091 8097 20 8085 8082 8091 8109 20 + 8082 8091 8097 8100 20 8082 8091 8097 8103 20 + 8082 8091 8097 8106 20 8082 8091 8109 8112 20 + 8082 8091 8109 8115 20 8082 8091 8109 8118 20 + 8079 8076 8082 8085 9 8079 8076 8082 8088 9 + 8079 8076 8082 8091 9 8079 8076 8121 8124 14 + 8079 8076 -8121 8124 15 8079 8076 8121 8127 3 + 8076 8082 8091 8094 20 8076 8121 8127 8130 2 + 8073 8070 8076 8079 3 8073 8070 8076 8082 3 + 8073 8070 8076 8121 3 8070 8076 8082 8085 9 + 8070 8076 8082 8088 9 8145 8142 8148 8151 1 + 8145 8142 -8148 8151 2 8142 8148 8154 8157 3 + 8139 8133 8142 8145 14 8139 8133 -8142 8145 15 + 8139 8133 8142 8148 3 8136 8133 8142 8145 14 + 8136 8133 -8142 8145 15 8136 8133 8142 8148 3 + 8133 8142 8148 8151 2 8130 8127 8133 8136 3 + 8130 8127 8133 8139 3 8130 8127 8133 8142 3 + 8190 8187 8193 8196 1 8190 8187 -8193 8196 2 + 8187 8193 8199 8202 3 8175 8169 8178 8181 3 + 8175 8169 8178 8184 3 8172 8169 8178 8181 3 + 8172 8169 8178 8184 3 8166 8160 8154 8187 9 + 8166 8160 8169 8172 21 8166 8160 8169 8175 21 + 8166 8160 8169 8178 9 8163 8160 8154 8187 9 + 8163 8160 8169 8172 21 8163 8160 8169 8175 21 + 8163 8160 8169 8178 9 8157 8154 8160 8163 9 + 8157 8154 8160 8166 9 8157 8154 8160 8169 9 + 8157 8154 8187 8190 14 8157 8154 -8187 8190 15 + 8157 8154 8187 8193 3 8154 8160 8169 8172 20 + 8154 8160 8169 8175 20 8154 8187 8193 8196 2 + 8151 8148 8154 8157 3 8151 8148 8154 8160 3 + 8151 8148 8154 8187 3 8148 8154 8160 8163 9 + 8148 8154 8160 8166 9 8226 8223 8229 8232 1 + 8226 8223 -8229 8232 2 8223 8229 8235 8238 3 + 8223 8229 8235 8241 3 8211 8205 8199 8223 9 + 8211 8205 8214 8217 3 8211 8205 8214 8220 3 + 8208 8205 8199 8223 9 8208 8205 8214 8217 3 + 8208 8205 8214 8220 3 8202 8199 8205 8208 9 + 8202 8199 8205 8211 9 8202 8199 8205 8214 9 + 8202 8199 8223 8226 14 8202 8199 -8223 8226 15 + 8202 8199 8223 8229 3 8199 8223 8229 8232 2 + 8196 8193 8199 8202 3 8196 8193 8199 8205 3 + 8196 8193 8199 8223 3 8193 8199 8205 8208 9 + 8193 8199 8205 8211 9 8247 8244 8250 8253 1 + 8247 8244 -8250 8253 2 8244 8250 8256 8259 3 + 8241 8235 8244 8247 14 8241 8235 -8244 8247 15 + 8241 8235 8244 8250 3 8238 8235 8244 8247 14 + 8238 8235 -8244 8247 15 8238 8235 8244 8250 3 + 8235 8244 8250 8253 2 8232 8229 8235 8238 3 + 8232 8229 8235 8241 3 8232 8229 8235 8244 3 + 8304 8301 8307 8310 1 8304 8301 -8307 8310 2 + 8301 8307 8313 8316 3 8286 8280 8289 8292 21 + 8286 8280 8289 8295 21 8286 8280 8289 8298 21 + 8283 8280 8289 8292 21 8283 8280 8289 8295 21 + 8283 8280 8289 8298 21 8277 8268 8262 8280 20 + 8274 8268 8262 8280 20 8271 8268 8262 8280 20 + 8268 8262 8280 8283 20 8268 8262 8280 8286 20 + 8265 8262 8256 8301 9 8265 8262 8268 8271 21 + 8265 8262 8268 8274 21 8265 8262 8268 8277 21 + 8265 8262 8280 8283 21 8265 8262 8280 8286 21 + 8265 8262 8280 8289 20 8262 8280 8289 8292 20 + 8262 8280 8289 8295 20 8262 8280 8289 8298 20 + 8259 8256 8262 8265 9 8259 8256 8262 8268 9 + 8259 8256 8262 8280 9 8259 8256 8301 8304 14 + 8259 8256 -8301 8304 15 8259 8256 8301 8307 3 + 8256 8262 8268 8271 20 8256 8262 8268 8274 20 + 8256 8262 8268 8277 20 8256 8262 8280 8283 20 + 8256 8262 8280 8286 20 8256 8301 8307 8310 2 + 8253 8250 8256 8259 3 8253 8250 8256 8262 3 + 8253 8250 8256 8301 3 8250 8256 8262 8265 9 + 8370 8367 8373 8376 1 8370 8367 -8373 8376 2 + 8367 8373 8379 8382 3 8352 8346 8355 8358 9 + 8352 8346 8355 8361 9 8352 8346 8355 8364 9 + 8349 8346 8355 8358 9 8349 8346 8355 8361 9 + 8349 8346 8355 8364 9 8343 8337 8346 8349 9 + 8343 8337 8346 8352 9 8343 8337 8346 8355 9 + 8340 8337 8346 8349 9 8340 8337 8346 8352 9 + 8340 8337 8346 8355 9 8337 8346 8355 8358 9 + 8337 8346 8355 8361 9 8337 8346 8355 8364 9 + 8334 8328 8337 8340 21 8334 8328 8337 8343 21 + 8334 8328 8337 8346 20 8331 8328 8337 8340 21 + 8331 8328 8337 8343 21 8331 8328 8337 8346 20 + 8328 8337 8346 8349 9 8328 8337 8346 8352 9 + 8325 8319 8313 8367 9 8325 8319 8328 8331 21 + 8325 8319 8328 8334 21 8325 8319 8328 8337 20 + 8322 8319 8313 8367 9 8322 8319 8328 8331 21 + 8322 8319 8328 8334 21 8322 8319 8328 8337 20 + 8319 8328 8337 8340 20 8319 8328 8337 8343 20 + 8316 8313 8319 8322 9 8316 8313 8319 8325 9 + 8316 8313 8319 8328 9 8316 8313 8367 8370 14 + 8316 8313 -8367 8370 15 8316 8313 8367 8373 3 + 8313 8319 8328 8331 20 8313 8319 8328 8334 20 + 8313 8367 8373 8376 2 8310 8307 8313 8316 3 + 8310 8307 8313 8319 3 8310 8307 8313 8367 3 + 8307 8313 8319 8322 9 8307 8313 8319 8325 9 + 8418 8415 8421 8424 1 8418 8415 -8421 8424 2 + 8415 8421 8427 8430 3 8400 8391 8385 8403 20 + 8397 8391 8385 8403 20 8394 8391 8385 8403 20 + 8391 8385 8403 8406 20 8391 8385 8403 8409 20 + 8391 8385 8403 8412 20 8388 8385 8379 8415 9 + 8388 8385 8391 8394 21 8388 8385 8391 8397 21 + 8388 8385 8391 8400 21 8388 8385 8403 8406 21 + 8388 8385 8403 8409 21 8388 8385 8403 8412 21 + 8382 8379 8385 8388 9 8382 8379 8385 8391 9 + 8382 8379 8385 8403 9 8382 8379 8415 8418 14 + 8382 8379 -8415 8418 15 8382 8379 8415 8421 3 + 8379 8385 8391 8394 20 8379 8385 8391 8397 20 + 8379 8385 8391 8400 20 8379 8385 8403 8406 20 + 8379 8385 8403 8409 20 8379 8385 8403 8412 20 + 8379 8415 8421 8424 2 8376 8373 8379 8382 3 + 8376 8373 8379 8385 3 8376 8373 8379 8415 3 + 8373 8379 8385 8388 9 8460 8457 8463 8466 1 + 8460 8457 -8463 8466 2 8457 8463 8469 8472 3 + 8445 8442 8448 8451 1 8445 8442 -8448 8451 2 + 8445 8442 8448 8454 1 8445 8442 -8448 8454 2 + 8439 8433 8427 8457 9 8439 8433 8442 8445 14 + 8439 8433 -8442 8445 3 8439 8433 -8442 8445 15 + 8439 8433 8442 8448 3 8436 8433 8427 8457 9 + 8436 8433 8442 8445 14 8436 8433 -8442 8445 3 + 8436 8433 -8442 8445 15 8436 8433 8442 8448 3 + 8433 8442 8448 8451 2 8433 8442 8448 8454 2 + 8430 8427 8433 8436 9 8430 8427 8433 8439 9 + 8430 8427 8433 8442 9 8430 8427 8457 8460 14 + 8430 8427 -8457 8460 15 8430 8427 8457 8463 3 + 8427 8457 8463 8466 2 8424 8421 8427 8430 3 + 8424 8421 8427 8433 3 8424 8421 8427 8457 3 + 8421 8427 8433 8436 9 8421 8427 8433 8439 9 + 8490 8487 8493 8496 1 8490 8487 -8493 8496 2 + 8487 8493 8499 8502 3 8484 8475 8469 8487 9 + 8481 8475 8469 8487 9 8478 8475 8469 8487 9 + 8472 8469 8475 8478 9 8472 8469 8475 8481 9 + 8472 8469 8475 8484 9 8472 8469 8487 8490 14 + 8472 8469 -8487 8490 15 8472 8469 8487 8493 3 + 8469 8487 8493 8496 2 8466 8463 8469 8472 3 + 8466 8463 8469 8475 3 8466 8463 8469 8487 3 + 8463 8469 8475 8478 9 8463 8469 8475 8481 9 + 8463 8469 8475 8484 9 8538 8535 8541 8544 1 + 8538 8535 -8541 8544 2 8535 8541 8547 8550 3 + 8520 8511 8505 8523 20 8517 8511 8505 8523 20 + 8514 8511 8505 8523 20 8511 8505 8523 8526 20 + 8511 8505 8523 8529 20 8511 8505 8523 8532 20 + 8508 8505 8499 8535 9 8508 8505 8511 8514 21 + 8508 8505 8511 8517 21 8508 8505 8511 8520 21 + 8508 8505 8523 8526 21 8508 8505 8523 8529 21 + 8508 8505 8523 8532 21 8502 8499 8505 8508 9 + 8502 8499 8505 8511 9 8502 8499 8505 8523 9 + 8502 8499 8535 8538 14 8502 8499 -8535 8538 15 + 8502 8499 8535 8541 3 8499 8505 8511 8514 20 + 8499 8505 8511 8517 20 8499 8505 8511 8520 20 + 8499 8505 8523 8526 20 8499 8505 8523 8529 20 + 8499 8505 8523 8532 20 8499 8535 8541 8544 2 + 8496 8493 8499 8502 3 8496 8493 8499 8505 3 + 8496 8493 8499 8535 3 8493 8499 8505 8508 9 + 8571 8568 8574 8577 1 8571 8568 -8574 8577 2 + 8568 8574 8580 8583 3 8559 8553 8547 8568 9 + 8559 8553 8562 8565 27 8556 8553 8547 8568 9 + 8556 8553 8562 8565 27 8550 8547 8553 8556 9 + 8550 8547 8553 8559 9 8550 8547 8553 8562 25 + 8550 8547 -8553 8562 26 8550 8547 8568 8571 14 + 8550 8547 -8568 8571 15 8550 8547 8568 8574 3 + 8547 8553 8562 8565 25 8547 8553 -8562 8565 20 + 8547 8568 8574 8577 2 8544 8541 8547 8550 3 + 8544 8541 8547 8553 3 8544 8541 8547 8568 3 + 8541 8547 8553 8556 9 8541 8547 8553 8559 9 + 8601 8598 8604 8607 1 8601 8598 -8604 8607 2 + 8598 8604 8610 8613 3 8598 8604 8610 8616 3 + 8595 8586 8580 8598 9 8592 8586 8580 8598 9 + 8589 8586 8580 8598 9 8583 8580 8586 8589 9 + 8583 8580 8586 8592 9 8583 8580 8586 8595 9 + 8583 8580 8598 8601 14 8583 8580 -8598 8601 15 + 8583 8580 8598 8604 3 8580 8598 8604 8607 2 + 8577 8574 8580 8583 3 8577 8574 8580 8586 3 + 8577 8574 8580 8598 3 8574 8580 8586 8589 9 + 8574 8580 8586 8592 9 8574 8580 8586 8595 9 + 8619 8625 8628 8631 3 8619 8625 8628 8634 3 + 8619 8625 8655 8658 3 8616 8610 8619 8622 14 + 8616 8610 -8619 8622 15 8616 8610 8619 8625 3 + 8613 8610 8619 8622 14 8613 8610 -8619 8622 15 + 8613 8610 8619 8625 3 8607 8604 8610 8613 3 + 8607 8604 8610 8616 3 8607 8604 8610 8619 3 + 8664 8661 8667 8670 1 8664 8661 -8667 8670 2 + 8661 8667 8673 8676 3 8658 8655 8661 8664 14 + 8658 8655 -8661 8664 15 8658 8655 8661 8667 3 + 8655 8661 8667 8670 2 8652 8646 8655 8658 9 + 8652 8646 8655 8661 9 8649 8646 8655 8658 9 + 8649 8646 8655 8661 9 8643 8637 8646 8649 21 + 8643 8637 8646 8652 21 8643 8637 8646 8655 20 + 8640 8637 8646 8649 21 8640 8637 8646 8652 21 + 8640 8637 8646 8655 20 8637 8646 8655 8658 9 + 8634 8628 8625 8655 3 8634 8628 8637 8640 9 + 8634 8628 8637 8643 9 8634 8628 8637 8646 9 + 8631 8628 8625 8655 3 8631 8628 8637 8640 9 + 8631 8628 8637 8643 9 8631 8628 8637 8646 9 + 8628 8625 8655 8658 3 8628 8637 8646 8649 20 + 8628 8637 8646 8652 20 8625 8628 8637 8640 9 + 8625 8628 8637 8643 9 8625 8655 8646 8649 9 + 8625 8655 8646 8652 9 8721 8718 8724 8727 1 + 8721 8718 -8724 8727 2 8718 8724 8730 8733 3 + 8703 8697 8706 8709 21 8703 8697 8706 8712 21 + 8703 8697 8706 8715 21 8700 8697 8706 8709 21 + 8700 8697 8706 8712 21 8700 8697 8706 8715 21 + 8694 8685 8679 8697 20 8691 8685 8679 8697 20 + 8688 8685 8679 8697 20 8685 8679 8697 8700 20 + 8685 8679 8697 8703 20 8682 8679 8673 8718 9 + 8682 8679 8685 8688 21 8682 8679 8685 8691 21 + 8682 8679 8685 8694 21 8682 8679 8697 8700 21 + 8682 8679 8697 8703 21 8682 8679 8697 8706 20 + 8679 8697 8706 8709 20 8679 8697 8706 8712 20 + 8679 8697 8706 8715 20 8676 8673 8679 8682 9 + 8676 8673 8679 8685 9 8676 8673 8679 8697 9 + 8676 8673 8718 8721 14 8676 8673 -8718 8721 15 + 8676 8673 8718 8724 3 8673 8679 8685 8688 20 + 8673 8679 8685 8691 20 8673 8679 8685 8694 20 + 8673 8679 8697 8700 20 8673 8679 8697 8703 20 + 8673 8718 8724 8727 2 8670 8667 8673 8676 3 + 8670 8667 8673 8679 3 8670 8667 8673 8718 3 + 8667 8673 8679 8682 9 8787 8784 8790 8793 1 + 8787 8784 -8790 8793 2 8784 8790 8796 8799 3 + 8769 8763 8772 8775 9 8769 8763 8772 8778 9 + 8769 8763 8772 8781 9 8766 8763 8772 8775 9 + 8766 8763 8772 8778 9 8766 8763 8772 8781 9 + 8760 8754 8763 8766 9 8760 8754 8763 8769 9 + 8760 8754 8763 8772 9 8757 8754 8763 8766 9 + 8757 8754 8763 8769 9 8757 8754 8763 8772 9 + 8754 8763 8772 8775 9 8754 8763 8772 8778 9 + 8754 8763 8772 8781 9 8751 8745 8754 8757 21 + 8751 8745 8754 8760 21 8751 8745 8754 8763 20 + 8748 8745 8754 8757 21 8748 8745 8754 8760 21 + 8748 8745 8754 8763 20 8745 8754 8763 8766 9 + 8745 8754 8763 8769 9 8742 8736 8730 8784 9 + 8742 8736 8745 8748 21 8742 8736 8745 8751 21 + 8742 8736 8745 8754 20 8739 8736 8730 8784 9 + 8739 8736 8745 8748 21 8739 8736 8745 8751 21 + 8739 8736 8745 8754 20 8736 8745 8754 8757 20 + 8736 8745 8754 8760 20 8733 8730 8736 8739 9 + 8733 8730 8736 8742 9 8733 8730 8736 8745 9 + 8733 8730 8784 8787 14 8733 8730 -8784 8787 15 + 8733 8730 8784 8790 3 8730 8736 8745 8748 20 + 8730 8736 8745 8751 20 8730 8784 8790 8793 2 + 8727 8724 8730 8733 3 8727 8724 8730 8736 3 + 8727 8724 8730 8784 3 8724 8730 8736 8739 9 + 8724 8730 8736 8742 9 8829 8826 8832 8835 1 + 8829 8826 -8832 8835 2 8826 8832 8838 8841 3 + 8817 8808 8802 8820 25 8817 8808 -8802 8820 26 + 8814 8808 8802 8820 25 8814 8808 -8802 8820 26 + 8811 8808 8802 8820 25 8811 8808 -8802 8820 26 + 8808 8802 8820 8823 25 8808 8802 -8820 8823 20 + 8805 8802 8796 8826 9 8805 8802 8808 8811 9 + 8805 8802 8808 8814 9 8805 8802 8808 8817 9 + 8805 8802 8820 8823 27 8799 8796 8802 8805 9 + 8799 8796 8802 8808 9 8799 8796 8802 8820 25 + 8799 8796 -8802 8820 26 8799 8796 8826 8829 14 + 8799 8796 -8826 8829 15 8799 8796 8826 8832 3 + 8796 8802 8808 8811 20 8796 8802 8808 8814 20 + 8796 8802 8808 8817 20 8796 8802 8820 8823 25 + 8796 8802 -8820 8823 20 8796 8826 8832 8835 2 + 8793 8790 8796 8799 3 8793 8790 8796 8802 3 + 8793 8790 8796 8826 3 8790 8796 8802 8805 9 + 8886 8883 8889 8892 1 8886 8883 -8889 8892 2 + 8883 8889 8895 8898 3 8868 8859 8853 8871 20 + 8865 8859 8853 8871 20 8862 8859 8853 8871 20 + 8859 8853 8871 8874 20 8859 8853 8871 8877 20 + 8859 8853 8871 8880 20 8856 8853 8859 8862 21 + 8856 8853 8859 8865 21 8856 8853 8859 8868 21 + 8856 8853 8871 8874 21 8856 8853 8871 8877 21 + 8856 8853 8871 8880 21 8850 8844 8838 8883 9 + 8850 8844 8853 8856 21 8850 8844 8853 8859 20 + 8850 8844 8853 8871 20 8847 8844 8838 8883 9 + 8847 8844 8853 8856 21 8847 8844 8853 8859 20 + 8847 8844 8853 8871 20 8844 8853 8859 8862 20 + 8844 8853 8859 8865 20 8844 8853 8859 8868 20 + 8844 8853 8871 8874 20 8844 8853 8871 8877 20 + 8844 8853 8871 8880 20 8841 8838 8844 8847 9 + 8841 8838 8844 8850 9 8841 8838 8844 8853 9 + 8841 8838 8883 8886 14 8841 8838 -8883 8886 15 + 8841 8838 8883 8889 3 8838 8844 8853 8856 20 + 8838 8883 8889 8892 2 8835 8832 8838 8841 3 + 8835 8832 8838 8844 3 8835 8832 8838 8883 3 + 8832 8838 8844 8847 9 8832 8838 8844 8850 9 + 8916 8913 8919 8922 1 8916 8913 -8919 8922 2 + 8913 8919 8925 8928 3 8910 8901 8895 8913 9 + 8907 8901 8895 8913 9 8904 8901 8895 8913 9 + 8898 8895 8901 8904 9 8898 8895 8901 8907 9 + 8898 8895 8901 8910 9 8898 8895 8913 8916 14 + 8898 8895 -8913 8916 15 8898 8895 8913 8919 3 + 8895 8913 8919 8922 2 8892 8889 8895 8898 3 + 8892 8889 8895 8901 3 8892 8889 8895 8913 3 + 8889 8895 8901 8904 9 8889 8895 8901 8907 9 + 8889 8895 8901 8910 9 8946 8943 8949 8952 1 + 8946 8943 -8949 8952 2 8943 8949 8955 8958 3 + 8940 8931 8925 8943 9 8937 8931 8925 8943 9 + 8934 8931 8925 8943 9 8928 8925 8931 8934 9 + 8928 8925 8931 8937 9 8928 8925 8931 8940 9 + 8928 8925 8943 8946 14 8928 8925 -8943 8946 15 + 8928 8925 8943 8949 3 8925 8943 8949 8952 2 + 8922 8919 8925 8928 3 8922 8919 8925 8931 3 + 8922 8919 8925 8943 3 8919 8925 8931 8934 9 + 8919 8925 8931 8937 9 8919 8925 8931 8940 9 + 8979 8976 8982 8985 1 8979 8976 -8982 8985 2 + 8976 8982 8988 8991 3 8976 8982 8988 8994 3 + 8967 8961 8955 8976 9 8967 8961 8970 8973 27 + 8964 8961 8955 8976 9 8964 8961 8970 8973 27 + 8958 8955 8961 8964 9 8958 8955 8961 8967 9 + 8958 8955 8961 8970 25 8958 8955 -8961 8970 26 + 8958 8955 8976 8979 14 8958 8955 -8976 8979 15 + 8958 8955 8976 8982 3 8955 8961 8970 8973 25 + 8955 8961 -8970 8973 20 8955 8976 8982 8985 2 + 8952 8949 8955 8958 3 8952 8949 8955 8961 3 + 8952 8949 8955 8976 3 8949 8955 8961 8964 9 + 8949 8955 8961 8967 9 9000 8997 9003 9006 1 + 9000 8997 -9003 9006 2 8997 9003 9009 9012 3 + 8994 8988 8997 9000 14 8994 8988 -8997 9000 15 + 8994 8988 8997 9003 3 8991 8988 8997 9000 14 + 8991 8988 -8997 9000 15 8991 8988 8997 9003 3 + 8988 8997 9003 9006 2 8985 8982 8988 8991 3 + 8985 8982 8988 8994 3 8985 8982 8988 8997 3 + 9057 9054 9060 9063 1 9057 9054 -9060 9063 2 + 9054 9060 9066 9069 3 9039 9033 9042 9045 21 + 9039 9033 9042 9048 21 9039 9033 9042 9051 21 + 9036 9033 9042 9045 21 9036 9033 9042 9048 21 + 9036 9033 9042 9051 21 9030 9021 9015 9033 20 + 9027 9021 9015 9033 20 9024 9021 9015 9033 20 + 9021 9015 9033 9036 20 9021 9015 9033 9039 20 + 9018 9015 9009 9054 9 9018 9015 9021 9024 21 + 9018 9015 9021 9027 21 9018 9015 9021 9030 21 + 9018 9015 9033 9036 21 9018 9015 9033 9039 21 + 9018 9015 9033 9042 20 9015 9033 9042 9045 20 + 9015 9033 9042 9048 20 9015 9033 9042 9051 20 + 9012 9009 9015 9018 9 9012 9009 9015 9021 9 + 9012 9009 9015 9033 9 9012 9009 9054 9057 14 + 9012 9009 -9054 9057 15 9012 9009 9054 9060 3 + 9009 9015 9021 9024 20 9009 9015 9021 9027 20 + 9009 9015 9021 9030 20 9009 9015 9033 9036 20 + 9009 9015 9033 9039 20 9009 9054 9060 9063 2 + 9006 9003 9009 9012 3 9006 9003 9009 9015 3 + 9006 9003 9009 9054 3 9003 9009 9015 9018 9 + 9090 9087 9093 9096 1 9090 9087 -9093 9096 2 + 9087 9093 9099 9102 3 9078 9072 9066 9087 9 + 9078 9072 9081 9084 27 9075 9072 9066 9087 9 + 9075 9072 9081 9084 27 9069 9066 9072 9075 9 + 9069 9066 9072 9078 9 9069 9066 9072 9081 25 + 9069 9066 -9072 9081 26 9069 9066 9087 9090 14 + 9069 9066 -9087 9090 15 9069 9066 9087 9093 3 + 9066 9072 9081 9084 25 9066 9072 -9081 9084 20 + 9066 9087 9093 9096 2 9063 9060 9066 9069 3 + 9063 9060 9066 9072 3 9063 9060 9066 9087 3 + 9060 9066 9072 9075 9 9060 9066 9072 9078 9 + 9132 9129 9135 9138 1 9132 9129 -9135 9138 2 + 9129 9135 9141 9144 3 9117 9114 9120 9123 1 + 9117 9114 -9120 9123 2 9117 9114 9120 9126 1 + 9117 9114 -9120 9126 2 9111 9105 9099 9129 9 + 9111 9105 9114 9117 14 9111 9105 -9114 9117 3 + 9111 9105 -9114 9117 15 9111 9105 9114 9120 3 + 9108 9105 9099 9129 9 9108 9105 9114 9117 14 + 9108 9105 -9114 9117 3 9108 9105 -9114 9117 15 + 9108 9105 9114 9120 3 9105 9114 9120 9123 2 + 9105 9114 9120 9126 2 9102 9099 9105 9108 9 + 9102 9099 9105 9111 9 9102 9099 9105 9114 9 + 9102 9099 9129 9132 14 9102 9099 -9129 9132 15 + 9102 9099 9129 9135 3 9099 9129 9135 9138 2 + 9096 9093 9099 9102 3 9096 9093 9099 9105 3 + 9096 9093 9099 9129 3 9093 9099 9105 9108 9 + 9093 9099 9105 9111 9 9192 9189 9195 9198 1 + 9192 9189 -9195 9198 2 9189 9195 9201 9204 3 + 9180 9177 9183 9186 19 9174 9171 9177 9180 19 + 9174 9171 9177 9183 19 9171 9177 9183 9186 19 + 9168 9165 9171 9174 19 9168 9165 9171 9177 19 + 9165 9171 9177 9180 19 9162 9159 9156 9183 19 + 9162 9159 9165 9168 19 9162 9159 9165 9171 19 + 9159 9156 9183 9186 19 9159 9165 9171 9174 19 + 9156 9159 9165 9168 19 9156 9183 9177 9180 19 + 9153 9147 9141 9189 9 9153 9147 9156 9159 3 + 9153 9147 9156 9183 3 9150 9147 9141 9189 9 + 9150 9147 9156 9159 3 9150 9147 9156 9183 3 + 9147 9156 9159 9162 19 9147 9156 9183 9186 19 + 9144 9141 9147 9150 9 9144 9141 9147 9153 9 + 9144 9141 9147 9156 9 9144 9141 9189 9192 14 + 9144 9141 -9189 9192 15 9144 9141 9189 9195 3 + 9141 9189 9195 9198 2 9138 9135 9141 9144 3 + 9138 9135 9141 9147 3 9138 9135 9141 9189 3 + 9135 9141 9147 9150 9 9135 9141 9147 9153 9 + 9258 9255 9261 9264 1 9258 9255 -9261 9264 2 + 9255 9261 9267 9270 3 9240 9234 9243 9246 9 + 9240 9234 9243 9249 9 9240 9234 9243 9252 9 + 9237 9234 9243 9246 9 9237 9234 9243 9249 9 + 9237 9234 9243 9252 9 9231 9225 9234 9237 9 + 9231 9225 9234 9240 9 9231 9225 9234 9243 9 + 9228 9225 9234 9237 9 9228 9225 9234 9240 9 + 9228 9225 9234 9243 9 9225 9234 9243 9246 9 + 9225 9234 9243 9249 9 9225 9234 9243 9252 9 + 9222 9216 9225 9228 21 9222 9216 9225 9231 21 + 9222 9216 9225 9234 20 9219 9216 9225 9228 21 + 9219 9216 9225 9231 21 9219 9216 9225 9234 20 + 9216 9225 9234 9237 9 9216 9225 9234 9240 9 + 9213 9207 9201 9255 9 9213 9207 9216 9219 21 + 9213 9207 9216 9222 21 9213 9207 9216 9225 20 + 9210 9207 9201 9255 9 9210 9207 9216 9219 21 + 9210 9207 9216 9222 21 9210 9207 9216 9225 20 + 9207 9216 9225 9228 20 9207 9216 9225 9231 20 + 9204 9201 9207 9210 9 9204 9201 9207 9213 9 + 9204 9201 9207 9216 9 9204 9201 9255 9258 14 + 9204 9201 -9255 9258 15 9204 9201 9255 9261 3 + 9201 9207 9216 9219 20 9201 9207 9216 9222 20 + 9201 9255 9261 9264 2 9198 9195 9201 9204 3 + 9198 9195 9201 9207 3 9198 9195 9201 9255 3 + 9195 9201 9207 9210 9 9195 9201 9207 9213 9 + 9324 9321 9327 9330 1 9324 9321 -9327 9330 2 + 9321 9327 9333 9336 3 9306 9300 9309 9312 9 + 9306 9300 9309 9315 9 9306 9300 9309 9318 9 + 9303 9300 9309 9312 9 9303 9300 9309 9315 9 + 9303 9300 9309 9318 9 9297 9291 9300 9303 9 + 9297 9291 9300 9306 9 9297 9291 9300 9309 9 + 9294 9291 9300 9303 9 9294 9291 9300 9306 9 + 9294 9291 9300 9309 9 9291 9300 9309 9312 9 + 9291 9300 9309 9315 9 9291 9300 9309 9318 9 + 9288 9282 9291 9294 21 9288 9282 9291 9297 21 + 9288 9282 9291 9300 20 9285 9282 9291 9294 21 + 9285 9282 9291 9297 21 9285 9282 9291 9300 20 + 9282 9291 9300 9303 9 9282 9291 9300 9306 9 + 9279 9273 9267 9321 9 9279 9273 9282 9285 21 + 9279 9273 9282 9288 21 9279 9273 9282 9291 20 + 9276 9273 9267 9321 9 9276 9273 9282 9285 21 + 9276 9273 9282 9288 21 9276 9273 9282 9291 20 + 9273 9282 9291 9294 20 9273 9282 9291 9297 20 + 9270 9267 9273 9276 9 9270 9267 9273 9279 9 + 9270 9267 9273 9282 9 9270 9267 9321 9324 14 + 9270 9267 -9321 9324 15 9270 9267 9321 9327 3 + 9267 9273 9282 9285 20 9267 9273 9282 9288 20 + 9267 9321 9327 9330 2 9264 9261 9267 9270 3 + 9264 9261 9267 9273 3 9264 9261 9267 9321 3 + 9261 9267 9273 9276 9 9261 9267 9273 9279 9 + 9375 9372 9378 9381 1 9375 9372 -9378 9381 2 + 9372 9378 9384 9387 3 9354 9348 9357 9360 8 + 9351 9348 9357 9360 8 9348 9357 9360 9363 8 + 9348 9357 9360 9366 8 9348 9357 9360 9369 8 + 9345 9339 9333 9372 9 9345 9339 9348 9351 9 + 9345 9339 9348 9354 9 9345 9339 9348 9357 9 + 9342 9339 9333 9372 9 9342 9339 9348 9351 9 + 9342 9339 9348 9354 9 9342 9339 9348 9357 9 + 9336 9333 9339 9342 9 9336 9333 9339 9345 9 + 9336 9333 9339 9348 9 9336 9333 9372 9375 14 + 9336 9333 -9372 9375 15 9336 9333 9372 9378 3 + 9333 9339 9348 9351 9 9333 9339 9348 9354 9 + 9333 9372 9378 9381 2 9330 9327 9333 9336 3 + 9330 9327 9333 9339 3 9330 9327 9333 9372 3 + 9327 9333 9339 9342 9 9327 9333 9339 9345 9 + 9432 9429 9435 9438 1 9432 9429 -9435 9438 2 + 9429 9435 9441 9444 3 9414 9405 9399 9417 20 + 9411 9405 9399 9417 20 9408 9405 9399 9417 20 + 9405 9399 9417 9420 20 9405 9399 9417 9423 20 + 9405 9399 9417 9426 20 9402 9399 9405 9408 21 + 9402 9399 9405 9411 21 9402 9399 9405 9414 21 + 9402 9399 9417 9420 21 9402 9399 9417 9423 21 + 9402 9399 9417 9426 21 9396 9390 9384 9429 9 + 9396 9390 9399 9402 21 9396 9390 9399 9405 20 + 9396 9390 9399 9417 20 9393 9390 9384 9429 9 + 9393 9390 9399 9402 21 9393 9390 9399 9405 20 + 9393 9390 9399 9417 20 9390 9399 9405 9408 20 + 9390 9399 9405 9411 20 9390 9399 9405 9414 20 + 9390 9399 9417 9420 20 9390 9399 9417 9423 20 + 9390 9399 9417 9426 20 9387 9384 9390 9393 9 + 9387 9384 9390 9396 9 9387 9384 9390 9399 9 + 9387 9384 9429 9432 14 9387 9384 -9429 9432 15 + 9387 9384 9429 9435 3 9384 9390 9399 9402 20 + 9384 9429 9435 9438 2 9381 9378 9384 9387 3 + 9381 9378 9384 9390 3 9381 9378 9384 9429 3 + 9378 9384 9390 9393 9 9378 9384 9390 9396 9 + 9468 9465 9471 9474 1 9468 9465 -9471 9474 2 + 9465 9471 9477 9480 3 9453 9447 9441 9465 9 + 9453 9447 9456 9459 3 9453 9447 9456 9462 3 + 9450 9447 9441 9465 9 9450 9447 9456 9459 3 + 9450 9447 9456 9462 3 9444 9441 9447 9450 9 + 9444 9441 9447 9453 9 9444 9441 9447 9456 9 + 9444 9441 9465 9468 14 9444 9441 -9465 9468 15 + 9444 9441 9465 9471 3 9441 9465 9471 9474 2 + 9438 9435 9441 9444 3 9438 9435 9441 9447 3 + 9438 9435 9441 9465 3 9435 9441 9447 9450 9 + 9435 9441 9447 9453 9 9531 9528 9534 9537 1 + 9531 9528 -9534 9537 2 9528 9534 9540 9543 3 + 9519 9516 9522 9525 19 9513 9510 9507 9516 28 + 9510 9507 9516 9519 19 9507 9516 9522 9525 19 + 9504 9501 9507 9510 19 9504 9501 9507 9516 19 + 9501 9507 9510 9513 28 9501 9507 9516 9519 19 + 9498 9495 9492 9522 19 9498 9495 9501 9504 19 + 9498 9495 9501 9507 19 9495 9492 9522 9525 19 + 9492 9495 9501 9504 19 9492 9522 9516 9519 19 + 9489 9483 9477 9528 9 9489 9483 9492 9495 3 + 9489 9483 9492 9522 3 9486 9483 9477 9528 9 + 9486 9483 9492 9495 3 9486 9483 9492 9522 3 + 9483 9492 9495 9498 19 9483 9492 9522 9525 19 + 9480 9477 9483 9486 9 9480 9477 9483 9489 9 + 9480 9477 9483 9492 9 9480 9477 9528 9531 14 + 9480 9477 -9528 9531 15 9480 9477 9528 9534 3 + 9477 9528 9534 9537 2 9474 9471 9477 9480 3 + 9474 9471 9477 9483 3 9474 9471 9477 9528 3 + 9471 9477 9483 9486 9 9471 9477 9483 9489 9 + 9573 9570 9576 9579 1 9573 9570 -9576 9579 2 + 9570 9576 9582 9585 3 9558 9555 9561 9564 1 + 9558 9555 -9561 9564 2 9558 9555 9561 9567 1 + 9558 9555 -9561 9567 2 9552 9546 9540 9570 9 + 9552 9546 9555 9558 14 9552 9546 -9555 9558 3 + 9552 9546 -9555 9558 15 9552 9546 9555 9561 3 + 9549 9546 9540 9570 9 9549 9546 9555 9558 14 + 9549 9546 -9555 9558 3 9549 9546 -9555 9558 15 + 9549 9546 9555 9561 3 9546 9555 9561 9564 2 + 9546 9555 9561 9567 2 9543 9540 9546 9549 9 + 9543 9540 9546 9552 9 9543 9540 9546 9555 9 + 9543 9540 9570 9573 14 9543 9540 -9570 9573 15 + 9543 9540 9570 9576 3 9540 9570 9576 9579 2 + 9537 9534 9540 9543 3 9537 9534 9540 9546 3 + 9537 9534 9540 9570 3 9534 9540 9546 9549 9 + 9534 9540 9546 9552 9 9603 9600 9606 9609 1 + 9603 9600 -9606 9609 2 9600 9606 9612 9615 3 + 9597 9588 9582 9600 9 9594 9588 9582 9600 9 + 9591 9588 9582 9600 9 9585 9582 9588 9591 9 + 9585 9582 9588 9594 9 9585 9582 9588 9597 9 + 9585 9582 9600 9603 14 9585 9582 -9600 9603 15 + 9585 9582 9600 9606 3 9582 9600 9606 9609 2 + 9579 9576 9582 9585 3 9579 9576 9582 9588 3 + 9579 9576 9582 9600 3 9576 9582 9588 9591 9 + 9576 9582 9588 9594 9 9576 9582 9588 9597 9 + 9654 9651 9657 9660 1 9654 9651 -9657 9660 2 + 9651 9657 9663 9666 3 9633 9627 9636 9639 8 + 9630 9627 9636 9639 8 9627 9636 9639 9642 8 + 9627 9636 9639 9645 8 9627 9636 9639 9648 8 + 9624 9618 9612 9651 9 9624 9618 9627 9630 9 + 9624 9618 9627 9633 9 9624 9618 9627 9636 9 + 9621 9618 9612 9651 9 9621 9618 9627 9630 9 + 9621 9618 9627 9633 9 9621 9618 9627 9636 9 + 9615 9612 9618 9621 9 9615 9612 9618 9624 9 + 9615 9612 9618 9627 9 9615 9612 9651 9654 14 + 9615 9612 -9651 9654 15 9615 9612 9651 9657 3 + 9612 9618 9627 9630 9 9612 9618 9627 9633 9 + 9612 9651 9657 9660 2 9609 9606 9612 9615 3 + 9609 9606 9612 9618 3 9609 9606 9612 9651 3 + 9606 9612 9618 9621 9 9606 9612 9618 9624 9 + 9702 9699 9705 9708 1 9702 9699 -9705 9708 2 + 9699 9705 9711 9714 3 9684 9675 9669 9687 20 + 9681 9675 9669 9687 20 9678 9675 9669 9687 20 + 9675 9669 9687 9690 20 9675 9669 9687 9693 20 + 9675 9669 9687 9696 20 9672 9669 9663 9699 9 + 9672 9669 9675 9678 21 9672 9669 9675 9681 21 + 9672 9669 9675 9684 21 9672 9669 9687 9690 21 + 9672 9669 9687 9693 21 9672 9669 9687 9696 21 + 9666 9663 9669 9672 9 9666 9663 9669 9675 9 + 9666 9663 9669 9687 9 9666 9663 9699 9702 14 + 9666 9663 -9699 9702 15 9666 9663 9699 9705 3 + 9663 9669 9675 9678 20 9663 9669 9675 9681 20 + 9663 9669 9675 9684 20 9663 9669 9687 9690 20 + 9663 9669 9687 9693 20 9663 9669 9687 9696 20 + 9663 9699 9705 9708 2 9660 9657 9663 9666 3 + 9660 9657 9663 9669 3 9660 9657 9663 9699 3 + 9657 9663 9669 9672 9 9732 9738 9741 9744 3 + 9732 9738 9741 9747 3 9732 9738 9768 9771 3 + 9723 9717 9711 9732 9 9723 9717 9726 9729 27 + 9720 9717 9711 9732 9 9720 9717 9726 9729 27 + 9714 9711 9717 9720 9 9714 9711 9717 9723 9 + 9714 9711 9717 9726 25 9714 9711 -9717 9726 26 + 9714 9711 9732 9735 14 9714 9711 -9732 9735 15 + 9714 9711 9732 9738 3 9711 9717 9726 9729 25 + 9711 9717 -9726 9729 20 9708 9705 9711 9714 3 + 9708 9705 9711 9717 3 9708 9705 9711 9732 3 + 9705 9711 9717 9720 9 9705 9711 9717 9723 9 + 9777 9774 9780 9783 1 9777 9774 -9780 9783 2 + 9774 9780 9786 9789 3 9771 9768 9774 9777 14 + 9771 9768 -9774 9777 15 9771 9768 9774 9780 3 + 9768 9774 9780 9783 2 9765 9759 9768 9771 9 + 9765 9759 9768 9774 9 9762 9759 9768 9771 9 + 9762 9759 9768 9774 9 9756 9750 9759 9762 21 + 9756 9750 9759 9765 21 9756 9750 9759 9768 20 + 9753 9750 9759 9762 21 9753 9750 9759 9765 21 + 9753 9750 9759 9768 20 9750 9759 9768 9771 9 + 9747 9741 9738 9768 3 9747 9741 9750 9753 9 + 9747 9741 9750 9756 9 9747 9741 9750 9759 9 + 9744 9741 9738 9768 3 9744 9741 9750 9753 9 + 9744 9741 9750 9756 9 9744 9741 9750 9759 9 + 9741 9738 9768 9771 3 9741 9750 9759 9762 20 + 9741 9750 9759 9765 20 9738 9741 9750 9753 9 + 9738 9741 9750 9756 9 9738 9768 9759 9762 9 + 9738 9768 9759 9765 9 9834 9831 9837 9840 1 + 9834 9831 -9837 9840 2 9831 9837 9843 9846 3 + 9816 9807 9801 9819 20 9813 9807 9801 9819 20 + 9810 9807 9801 9819 20 9807 9801 9819 9822 20 + 9807 9801 9819 9825 20 9807 9801 9819 9828 20 + 9804 9801 9807 9810 21 9804 9801 9807 9813 21 + 9804 9801 9807 9816 21 9804 9801 9819 9822 21 + 9804 9801 9819 9825 21 9804 9801 9819 9828 21 + 9798 9792 9786 9831 9 9798 9792 9801 9804 21 + 9798 9792 9801 9807 20 9798 9792 9801 9819 20 + 9795 9792 9786 9831 9 9795 9792 9801 9804 21 + 9795 9792 9801 9807 20 9795 9792 9801 9819 20 + 9792 9801 9807 9810 20 9792 9801 9807 9813 20 + 9792 9801 9807 9816 20 9792 9801 9819 9822 20 + 9792 9801 9819 9825 20 9792 9801 9819 9828 20 + 9789 9786 9792 9795 9 9789 9786 9792 9798 9 + 9789 9786 9792 9801 9 9789 9786 9831 9834 14 + 9789 9786 -9831 9834 15 9789 9786 9831 9837 3 + 9786 9792 9801 9804 20 9786 9831 9837 9840 2 + 9783 9780 9786 9789 3 9783 9780 9786 9792 3 + 9783 9780 9786 9831 3 9780 9786 9792 9795 9 + 9780 9786 9792 9798 9 9900 9897 9903 9906 1 + 9900 9897 -9903 9906 2 9897 9903 9909 9912 3 + 9882 9876 9885 9888 9 9882 9876 9885 9891 9 + 9882 9876 9885 9894 9 9879 9876 9885 9888 9 + 9879 9876 9885 9891 9 9879 9876 9885 9894 9 + 9873 9867 9876 9879 9 9873 9867 9876 9882 9 + 9873 9867 9876 9885 9 9870 9867 9876 9879 9 + 9870 9867 9876 9882 9 9870 9867 9876 9885 9 + 9867 9876 9885 9888 9 9867 9876 9885 9891 9 + 9867 9876 9885 9894 9 9864 9858 9867 9870 21 + 9864 9858 9867 9873 21 9864 9858 9867 9876 20 + 9861 9858 9867 9870 21 9861 9858 9867 9873 21 + 9861 9858 9867 9876 20 9858 9867 9876 9879 9 + 9858 9867 9876 9882 9 9855 9849 9843 9897 9 + 9855 9849 9858 9861 21 9855 9849 9858 9864 21 + 9855 9849 9858 9867 20 9852 9849 9843 9897 9 + 9852 9849 9858 9861 21 9852 9849 9858 9864 21 + 9852 9849 9858 9867 20 9849 9858 9867 9870 20 + 9849 9858 9867 9873 20 9846 9843 9849 9852 9 + 9846 9843 9849 9855 9 9846 9843 9849 9858 9 + 9846 9843 9897 9900 14 9846 9843 -9897 9900 15 + 9846 9843 9897 9903 3 9843 9849 9858 9861 20 + 9843 9849 9858 9864 20 9843 9897 9903 9906 2 + 9840 9837 9843 9846 3 9840 9837 9843 9849 3 + 9840 9837 9843 9897 3 9837 9843 9849 9852 9 + 9837 9843 9849 9855 9 9966 9963 9969 9972 1 + 9966 9963 -9969 9972 2 9963 9969 9975 9978 3 + 9948 9942 9951 9954 9 9948 9942 9951 9957 9 + 9948 9942 9951 9960 9 9945 9942 9951 9954 9 + 9945 9942 9951 9957 9 9945 9942 9951 9960 9 + 9939 9933 9942 9945 9 9939 9933 9942 9948 9 + 9939 9933 9942 9951 9 9936 9933 9942 9945 9 + 9936 9933 9942 9948 9 9936 9933 9942 9951 9 + 9933 9942 9951 9954 9 9933 9942 9951 9957 9 + 9933 9942 9951 9960 9 9930 9924 9933 9936 21 + 9930 9924 9933 9939 21 9930 9924 9933 9942 20 + 9927 9924 9933 9936 21 9927 9924 9933 9939 21 + 9927 9924 9933 9942 20 9924 9933 9942 9945 9 + 9924 9933 9942 9948 9 9921 9915 9909 9963 9 + 9921 9915 9924 9927 21 9921 9915 9924 9930 21 + 9921 9915 9924 9933 20 9918 9915 9909 9963 9 + 9918 9915 9924 9927 21 9918 9915 9924 9930 21 + 9918 9915 9924 9933 20 9915 9924 9933 9936 20 + 9915 9924 9933 9939 20 9912 9909 9915 9918 9 + 9912 9909 9915 9921 9 9912 9909 9915 9924 9 + 9912 9909 9963 9966 14 9912 9909 -9963 9966 15 + 9912 9909 9963 9969 3 9909 9915 9924 9927 20 + 9909 9915 9924 9930 20 9909 9963 9969 9972 2 + 9906 9903 9909 9912 3 9906 9903 9909 9915 3 + 9906 9903 9909 9963 3 9903 9909 9915 9918 9 + 9903 9909 9915 9921 9 10008 10005 10011 10014 1 + 10008 10005 -10011 10014 2 10005 10011 10017 10020 3 + 9993 9990 9996 9999 1 9993 9990 -9996 9999 2 + 9993 9990 9996 10002 1 9993 9990 -9996 10002 2 + 9987 9981 9975 10005 9 9987 9981 9990 9993 14 + 9987 9981 -9990 9993 3 9987 9981 -9990 9993 15 + 9987 9981 9990 9996 3 9984 9981 9975 10005 9 + 9984 9981 9990 9993 14 9984 9981 -9990 9993 3 + 9984 9981 -9990 9993 15 9984 9981 9990 9996 3 + 9981 9990 9996 9999 2 9981 9990 9996 10002 2 + 9978 9975 9981 9984 9 9978 9975 9981 9987 9 + 9978 9975 9981 9990 9 9978 9975 10005 10008 14 + 9978 9975 -10005 10008 15 9978 9975 10005 10011 3 + 9975 10005 10011 10014 2 9972 9969 9975 9978 3 + 9972 9969 9975 9981 3 9972 9969 9975 10005 3 + 9969 9975 9981 9984 9 9969 9975 9981 9987 9 + 10056 10053 10059 10062 1 10056 10053 -10059 10062 2 + 10053 10059 10065 10068 3 10038 10029 10023 10041 20 + 10035 10029 10023 10041 20 10032 10029 10023 10041 20 + 10029 10023 10041 10044 20 10029 10023 10041 10047 20 + 10029 10023 10041 10050 20 10026 10023 10017 10053 9 + 10026 10023 10029 10032 21 10026 10023 10029 10035 21 + 10026 10023 10029 10038 21 10026 10023 10041 10044 21 + 10026 10023 10041 10047 21 10026 10023 10041 10050 21 + 10020 10017 10023 10026 9 10020 10017 10023 10029 9 + 10020 10017 10023 10041 9 10020 10017 10053 10056 14 + 10020 10017 -10053 10056 15 10020 10017 10053 10059 3 + 10017 10023 10029 10032 20 10017 10023 10029 10035 20 + 10017 10023 10029 10038 20 10017 10023 10041 10044 20 + 10017 10023 10041 10047 20 10017 10023 10041 10050 20 + 10017 10053 10059 10062 2 10014 10011 10017 10020 3 + 10014 10011 10017 10023 3 10014 10011 10017 10053 3 + 10011 10017 10023 10026 9 10092 10089 10095 10098 1 + 10092 10089 -10095 10098 2 10089 10095 10101 10104 3 + 10077 10071 10065 10089 9 10077 10071 10080 10083 3 + 10077 10071 10080 10086 3 10074 10071 10065 10089 9 + 10074 10071 10080 10083 3 10074 10071 10080 10086 3 + 10068 10065 10071 10074 9 10068 10065 10071 10077 9 + 10068 10065 10071 10080 9 10068 10065 10089 10092 14 + 10068 10065 -10089 10092 15 10068 10065 10089 10095 3 + 10065 10089 10095 10098 2 10062 10059 10065 10068 3 + 10062 10059 10065 10071 3 10062 10059 10065 10089 3 + 10059 10065 10071 10074 9 10059 10065 10071 10077 9 + 10149 10146 10152 10155 1 10149 10146 -10152 10155 2 + 10146 10152 10158 10161 3 10131 10125 10134 10137 21 + 10131 10125 10134 10140 21 10131 10125 10134 10143 21 + 10128 10125 10134 10137 21 10128 10125 10134 10140 21 + 10128 10125 10134 10143 21 10122 10113 10107 10125 20 + 10119 10113 10107 10125 20 10116 10113 10107 10125 20 + 10113 10107 10125 10128 20 10113 10107 10125 10131 20 + 10110 10107 10101 10146 9 10110 10107 10113 10116 21 + 10110 10107 10113 10119 21 10110 10107 10113 10122 21 + 10110 10107 10125 10128 21 10110 10107 10125 10131 21 + 10110 10107 10125 10134 20 10107 10125 10134 10137 20 + 10107 10125 10134 10140 20 10107 10125 10134 10143 20 + 10104 10101 10107 10110 9 10104 10101 10107 10113 9 + 10104 10101 10107 10125 9 10104 10101 10146 10149 14 + 10104 10101 -10146 10149 15 10104 10101 10146 10152 3 + 10101 10107 10113 10116 20 10101 10107 10113 10119 20 + 10101 10107 10113 10122 20 10101 10107 10125 10128 20 + 10101 10107 10125 10131 20 10101 10146 10152 10155 2 + 10098 10095 10101 10104 3 10098 10095 10101 10107 3 + 10098 10095 10101 10146 3 10095 10101 10107 10110 9 + 10200 10197 10203 10206 1 10200 10197 -10203 10206 2 + 10197 10203 10209 10212 3 10179 10173 10182 10185 8 + 10176 10173 10182 10185 8 10173 10182 10185 10188 8 + 10173 10182 10185 10191 8 10173 10182 10185 10194 8 + 10170 10164 10158 10197 9 10170 10164 10173 10176 9 + 10170 10164 10173 10179 9 10170 10164 10173 10182 9 + 10167 10164 10158 10197 9 10167 10164 10173 10176 9 + 10167 10164 10173 10179 9 10167 10164 10173 10182 9 + 10161 10158 10164 10167 9 10161 10158 10164 10170 9 + 10161 10158 10164 10173 9 10161 10158 10197 10200 14 + 10161 10158 -10197 10200 15 10161 10158 10197 10203 3 + 10158 10164 10173 10176 9 10158 10164 10173 10179 9 + 10158 10197 10203 10206 2 10155 10152 10158 10161 3 + 10155 10152 10158 10164 3 10155 10152 10158 10197 3 + 10152 10158 10164 10167 9 10152 10158 10164 10170 9 + 10245 10242 10248 10251 1 10245 10242 -10248 10251 2 + 10242 10248 10254 10257 3 10230 10224 10233 10236 3 + 10230 10224 10233 10239 3 10227 10224 10233 10236 3 + 10227 10224 10233 10239 3 10221 10215 10209 10242 9 + 10221 10215 10224 10227 21 10221 10215 10224 10230 21 + 10221 10215 10224 10233 9 10218 10215 10209 10242 9 + 10218 10215 10224 10227 21 10218 10215 10224 10230 21 + 10218 10215 10224 10233 9 10212 10209 10215 10218 9 + 10212 10209 10215 10221 9 10212 10209 10215 10224 9 + 10212 10209 10242 10245 14 10212 10209 -10242 10245 15 + 10212 10209 10242 10248 3 10209 10215 10224 10227 20 + 10209 10215 10224 10230 20 10209 10242 10248 10251 2 + 10206 10203 10209 10212 3 10206 10203 10209 10215 3 + 10206 10203 10209 10242 3 10203 10209 10215 10218 9 + 10203 10209 10215 10221 9 10293 10290 10296 10299 1 + 10293 10290 -10296 10299 2 10290 10296 10302 10305 3 + 10290 10296 10302 10308 3 10275 10266 10260 10278 20 + 10272 10266 10260 10278 20 10269 10266 10260 10278 20 + 10266 10260 10278 10281 20 10266 10260 10278 10284 20 + 10266 10260 10278 10287 20 10263 10260 10254 10290 9 + 10263 10260 10266 10269 21 10263 10260 10266 10272 21 + 10263 10260 10266 10275 21 10263 10260 10278 10281 21 + 10263 10260 10278 10284 21 10263 10260 10278 10287 21 + 10257 10254 10260 10263 9 10257 10254 10260 10266 9 + 10257 10254 10260 10278 9 10257 10254 10290 10293 14 + 10257 10254 -10290 10293 15 10257 10254 10290 10296 3 + 10254 10260 10266 10269 20 10254 10260 10266 10272 20 + 10254 10260 10266 10275 20 10254 10260 10278 10281 20 + 10254 10260 10278 10284 20 10254 10260 10278 10287 20 + 10254 10290 10296 10299 2 10251 10248 10254 10257 3 + 10251 10248 10254 10260 3 10251 10248 10254 10290 3 + 10248 10254 10260 10263 9 10314 10311 10317 10320 1 + 10314 10311 -10317 10320 2 10311 10317 10323 10326 3 + 10308 10302 10311 10314 14 10308 10302 -10311 10314 15 + 10308 10302 10311 10317 3 10305 10302 10311 10314 14 + 10305 10302 -10311 10314 15 10305 10302 10311 10317 3 + 10302 10311 10317 10320 2 10299 10296 10302 10305 3 + 10299 10296 10302 10308 3 10299 10296 10302 10311 3 + 10356 10353 10359 10362 1 10356 10353 -10359 10362 2 + 10353 10359 10365 10368 3 10341 10338 10344 10347 1 + 10341 10338 -10344 10347 2 10341 10338 10344 10350 1 + 10341 10338 -10344 10350 2 10335 10329 10323 10353 9 + 10335 10329 10338 10341 14 10335 10329 -10338 10341 3 + 10335 10329 -10338 10341 15 10335 10329 10338 10344 3 + 10332 10329 10323 10353 9 10332 10329 10338 10341 14 + 10332 10329 -10338 10341 3 10332 10329 -10338 10341 15 + 10332 10329 10338 10344 3 10329 10338 10344 10347 2 + 10329 10338 10344 10350 2 10326 10323 10329 10332 9 + 10326 10323 10329 10335 9 10326 10323 10329 10338 9 + 10326 10323 10353 10356 14 10326 10323 -10353 10356 15 + 10326 10323 10353 10359 3 10323 10353 10359 10362 2 + 10320 10317 10323 10326 3 10320 10317 10323 10329 3 + 10320 10317 10323 10353 3 10317 10323 10329 10332 9 + 10317 10323 10329 10335 9 10398 10395 10401 10404 1 + 10398 10395 -10401 10404 2 10395 10401 10407 10410 3 + 10386 10377 10371 10389 25 10386 10377 -10371 10389 26 + 10383 10377 10371 10389 25 10383 10377 -10371 10389 26 + 10380 10377 10371 10389 25 10380 10377 -10371 10389 26 + 10377 10371 10389 10392 25 10377 10371 -10389 10392 20 + 10374 10371 10365 10395 9 10374 10371 10377 10380 9 + 10374 10371 10377 10383 9 10374 10371 10377 10386 9 + 10374 10371 10389 10392 27 10368 10365 10371 10374 9 + 10368 10365 10371 10377 9 10368 10365 10371 10389 25 + 10368 10365 -10371 10389 26 10368 10365 10395 10398 14 + 10368 10365 -10395 10398 15 10368 10365 10395 10401 3 + 10365 10371 10377 10380 20 10365 10371 10377 10383 20 + 10365 10371 10377 10386 20 10365 10371 10389 10392 25 + 10365 10371 -10389 10392 20 10365 10395 10401 10404 2 + 10362 10359 10365 10368 3 10362 10359 10365 10371 3 + 10362 10359 10365 10395 3 10359 10365 10371 10374 9 + 10446 10443 10449 10452 1 10446 10443 -10449 10452 2 + 10443 10449 10455 10458 3 10428 10419 10413 10431 20 + 10425 10419 10413 10431 20 10422 10419 10413 10431 20 + 10419 10413 10431 10434 20 10419 10413 10431 10437 20 + 10419 10413 10431 10440 20 10416 10413 10407 10443 9 + 10416 10413 10419 10422 21 10416 10413 10419 10425 21 + 10416 10413 10419 10428 21 10416 10413 10431 10434 21 + 10416 10413 10431 10437 21 10416 10413 10431 10440 21 + 10410 10407 10413 10416 9 10410 10407 10413 10419 9 + 10410 10407 10413 10431 9 10410 10407 10443 10446 14 + 10410 10407 -10443 10446 15 10410 10407 10443 10449 3 + 10407 10413 10419 10422 20 10407 10413 10419 10425 20 + 10407 10413 10419 10428 20 10407 10413 10431 10434 20 + 10407 10413 10431 10437 20 10407 10413 10431 10440 20 + 10407 10443 10449 10452 2 10404 10401 10407 10410 3 + 10404 10401 10407 10413 3 10404 10401 10407 10443 3 + 10401 10407 10413 10416 9 10476 10473 10479 10482 1 + 10476 10473 -10479 10482 2 10473 10479 10485 10488 3 + 10470 10461 10455 10473 9 10467 10461 10455 10473 9 + 10464 10461 10455 10473 9 10458 10455 10461 10464 9 + 10458 10455 10461 10467 9 10458 10455 10461 10470 9 + 10458 10455 10473 10476 14 10458 10455 -10473 10476 15 + 10458 10455 10473 10479 3 10455 10473 10479 10482 2 + 10452 10449 10455 10458 3 10452 10449 10455 10461 3 + 10452 10449 10455 10473 3 10449 10455 10461 10464 9 + 10449 10455 10461 10467 9 10449 10455 10461 10470 9 + 10536 10533 10539 10542 1 10536 10533 -10539 10542 2 + 10533 10539 10545 10548 3 10524 10521 10527 10530 19 + 10518 10515 10521 10524 19 10518 10515 10521 10527 19 + 10515 10521 10527 10530 19 10512 10509 10515 10518 19 + 10512 10509 10515 10521 19 10509 10515 10521 10524 19 + 10506 10503 10500 10527 19 10506 10503 10509 10512 19 + 10506 10503 10509 10515 19 10503 10500 10527 10530 19 + 10503 10509 10515 10518 19 10500 10503 10509 10512 19 + 10500 10527 10521 10524 19 10497 10491 10485 10533 9 + 10497 10491 10500 10503 3 10497 10491 10500 10527 3 + 10494 10491 10485 10533 9 10494 10491 10500 10503 3 + 10494 10491 10500 10527 3 10491 10500 10503 10506 19 + 10491 10500 10527 10530 19 10488 10485 10491 10494 9 + 10488 10485 10491 10497 9 10488 10485 10491 10500 9 + 10488 10485 10533 10536 14 10488 10485 -10533 10536 15 + 10488 10485 10533 10539 3 10485 10533 10539 10542 2 + 10482 10479 10485 10488 3 10482 10479 10485 10491 3 + 10482 10479 10485 10533 3 10479 10485 10491 10494 9 + 10479 10485 10491 10497 9 10593 10590 10596 10599 1 + 10593 10590 -10596 10599 2 10590 10596 10602 10605 3 + 10575 10566 10560 10578 20 10572 10566 10560 10578 20 + 10569 10566 10560 10578 20 10566 10560 10578 10581 20 + 10566 10560 10578 10584 20 10566 10560 10578 10587 20 + 10563 10560 10566 10569 21 10563 10560 10566 10572 21 + 10563 10560 10566 10575 21 10563 10560 10578 10581 21 + 10563 10560 10578 10584 21 10563 10560 10578 10587 21 + 10557 10551 10545 10590 9 10557 10551 10560 10563 21 + 10557 10551 10560 10566 20 10557 10551 10560 10578 20 + 10554 10551 10545 10590 9 10554 10551 10560 10563 21 + 10554 10551 10560 10566 20 10554 10551 10560 10578 20 + 10551 10560 10566 10569 20 10551 10560 10566 10572 20 + 10551 10560 10566 10575 20 10551 10560 10578 10581 20 + 10551 10560 10578 10584 20 10551 10560 10578 10587 20 + 10548 10545 10551 10554 9 10548 10545 10551 10557 9 + 10548 10545 10551 10560 9 10548 10545 10590 10593 14 + 10548 10545 -10590 10593 15 10548 10545 10590 10596 3 + 10545 10551 10560 10563 20 10545 10590 10596 10599 2 + 10542 10539 10545 10548 3 10542 10539 10545 10551 3 + 10542 10539 10545 10590 3 10539 10545 10551 10554 9 + 10539 10545 10551 10557 9 10626 10623 10629 10632 1 + 10626 10623 -10629 10632 2 10623 10629 10635 10638 3 + 10614 10608 10602 10623 9 10614 10608 10617 10620 34 + 10611 10608 10602 10623 9 10611 10608 10617 10620 34 + 10605 10602 10608 10611 9 10605 10602 10608 10614 9 + 10605 10602 10608 10617 9 10605 10602 10623 10626 14 + 10605 10602 -10623 10626 15 10605 10602 10623 10629 3 + 10602 10608 10617 10620 34 10602 10623 10629 10632 2 + 10599 10596 10602 10605 3 10599 10596 10602 10608 3 + 10599 10596 10602 10623 3 10596 10602 10608 10611 9 + 10596 10602 10608 10614 9 10659 10656 10662 10665 1 + 10659 10656 -10662 10665 2 10656 10662 10668 10671 3 + 10647 10641 10635 10656 9 10647 10641 10650 10653 27 + 10644 10641 10635 10656 9 10644 10641 10650 10653 27 + 10638 10635 10641 10644 9 10638 10635 10641 10647 9 + 10638 10635 10641 10650 25 10638 10635 -10641 10650 26 + 10638 10635 10656 10659 14 10638 10635 -10656 10659 15 + 10638 10635 10656 10662 3 10635 10641 10650 10653 25 + 10635 10641 -10650 10653 20 10635 10656 10662 10665 2 + 10632 10629 10635 10638 3 10632 10629 10635 10641 3 + 10632 10629 10635 10656 3 10629 10635 10641 10644 9 + 10629 10635 10641 10647 9 10695 10692 10698 10701 1 + 10695 10692 -10698 10701 2 10692 10698 10704 10707 3 + 10680 10674 10668 10692 9 10680 10674 10683 10686 3 + 10680 10674 10683 10689 3 10677 10674 10668 10692 9 + 10677 10674 10683 10686 3 10677 10674 10683 10689 3 + 10671 10668 10674 10677 9 10671 10668 10674 10680 9 + 10671 10668 10674 10683 9 10671 10668 10692 10695 14 + 10671 10668 -10692 10695 15 10671 10668 10692 10698 3 + 10668 10692 10698 10701 2 10665 10662 10668 10671 3 + 10665 10662 10668 10674 3 10665 10662 10668 10692 3 + 10662 10668 10674 10677 9 10662 10668 10674 10680 9 + 10746 10743 10749 10752 1 10746 10743 -10749 10752 2 + 10743 10749 10755 10758 3 10725 10719 10728 10731 8 + 10722 10719 10728 10731 8 10719 10728 10731 10734 8 + 10719 10728 10731 10737 8 10719 10728 10731 10740 8 + 10716 10710 10704 10743 9 10716 10710 10719 10722 9 + 10716 10710 10719 10725 9 10716 10710 10719 10728 9 + 10713 10710 10704 10743 9 10713 10710 10719 10722 9 + 10713 10710 10719 10725 9 10713 10710 10719 10728 9 + 10707 10704 10710 10713 9 10707 10704 10710 10716 9 + 10707 10704 10710 10719 9 10707 10704 10743 10746 14 + 10707 10704 -10743 10746 15 10707 10704 10743 10749 3 + 10704 10710 10719 10722 9 10704 10710 10719 10725 9 + 10704 10743 10749 10752 2 10701 10698 10704 10707 3 + 10701 10698 10704 10710 3 10701 10698 10704 10743 3 + 10698 10704 10710 10713 9 10698 10704 10710 10716 9 + 10776 10773 10779 10782 1 10776 10773 -10779 10782 2 + 10773 10779 10785 10788 3 10770 10761 10755 10773 9 + 10767 10761 10755 10773 9 10764 10761 10755 10773 9 + 10758 10755 10761 10764 9 10758 10755 10761 10767 9 + 10758 10755 10761 10770 9 10758 10755 10773 10776 14 + 10758 10755 -10773 10776 15 10758 10755 10773 10779 3 + 10755 10773 10779 10782 2 10752 10749 10755 10758 3 + 10752 10749 10755 10761 3 10752 10749 10755 10773 3 + 10749 10755 10761 10764 9 10749 10755 10761 10767 9 + 10749 10755 10761 10770 9 10818 10815 10821 10824 1 + 10818 10815 -10821 10824 2 10815 10821 10827 10830 3 + 10815 10821 10827 10833 3 10806 10797 10791 10809 25 + 10806 10797 -10791 10809 26 10803 10797 10791 10809 25 + 10803 10797 -10791 10809 26 10800 10797 10791 10809 25 + 10800 10797 -10791 10809 26 10797 10791 10809 10812 25 + 10797 10791 -10809 10812 20 10794 10791 10785 10815 9 + 10794 10791 10797 10800 9 10794 10791 10797 10803 9 + 10794 10791 10797 10806 9 10794 10791 10809 10812 27 + 10788 10785 10791 10794 9 10788 10785 10791 10797 9 + 10788 10785 10791 10809 25 10788 10785 -10791 10809 26 + 10788 10785 10815 10818 14 10788 10785 -10815 10818 15 + 10788 10785 10815 10821 3 10785 10791 10797 10800 20 + 10785 10791 10797 10803 20 10785 10791 10797 10806 20 + 10785 10791 10809 10812 25 10785 10791 -10809 10812 20 + 10785 10815 10821 10824 2 10782 10779 10785 10788 3 + 10782 10779 10785 10791 3 10782 10779 10785 10815 3 + 10779 10785 10791 10794 9 10839 10836 10842 10845 1 + 10839 10836 -10842 10845 2 10836 10842 10848 10851 3 + 10833 10827 10836 10839 14 10833 10827 -10836 10839 15 + 10833 10827 10836 10842 3 10830 10827 10836 10839 14 + 10830 10827 -10836 10839 15 10830 10827 10836 10842 3 + 10827 10836 10842 10845 2 10824 10821 10827 10830 3 + 10824 10821 10827 10833 3 10824 10821 10827 10836 3 + 10896 10893 10899 10902 1 10896 10893 -10899 10902 2 + 10893 10899 10905 10908 3 10878 10872 10881 10884 21 + 10878 10872 10881 10887 21 10878 10872 10881 10890 21 + 10875 10872 10881 10884 21 10875 10872 10881 10887 21 + 10875 10872 10881 10890 21 10869 10860 10854 10872 20 + 10866 10860 10854 10872 20 10863 10860 10854 10872 20 + 10860 10854 10872 10875 20 10860 10854 10872 10878 20 + 10857 10854 10848 10893 9 10857 10854 10860 10863 21 + 10857 10854 10860 10866 21 10857 10854 10860 10869 21 + 10857 10854 10872 10875 21 10857 10854 10872 10878 21 + 10857 10854 10872 10881 20 10854 10872 10881 10884 20 + 10854 10872 10881 10887 20 10854 10872 10881 10890 20 + 10851 10848 10854 10857 9 10851 10848 10854 10860 9 + 10851 10848 10854 10872 9 10851 10848 10893 10896 14 + 10851 10848 -10893 10896 15 10851 10848 10893 10899 3 + 10848 10854 10860 10863 20 10848 10854 10860 10866 20 + 10848 10854 10860 10869 20 10848 10854 10872 10875 20 + 10848 10854 10872 10878 20 10848 10893 10899 10902 2 + 10845 10842 10848 10851 3 10845 10842 10848 10854 3 + 10845 10842 10848 10893 3 10842 10848 10854 10857 9 + 10938 10935 10941 10944 1 10938 10935 -10941 10944 2 + 10935 10941 10947 10950 3 10935 10941 10947 10953 3 + 10926 10917 10911 10929 25 10926 10917 -10911 10929 26 + 10923 10917 10911 10929 25 10923 10917 -10911 10929 26 + 10920 10917 10911 10929 25 10920 10917 -10911 10929 26 + 10917 10911 10929 10932 25 10917 10911 -10929 10932 20 + 10914 10911 10905 10935 9 10914 10911 10917 10920 9 + 10914 10911 10917 10923 9 10914 10911 10917 10926 9 + 10914 10911 10929 10932 27 10908 10905 10911 10914 9 + 10908 10905 10911 10917 9 10908 10905 10911 10929 25 + 10908 10905 -10911 10929 26 10908 10905 10935 10938 14 + 10908 10905 -10935 10938 15 10908 10905 10935 10941 3 + 10905 10911 10917 10920 20 10905 10911 10917 10923 20 + 10905 10911 10917 10926 20 10905 10911 10929 10932 25 + 10905 10911 -10929 10932 20 10905 10935 10941 10944 2 + 10902 10899 10905 10908 3 10902 10899 10905 10911 3 + 10902 10899 10905 10935 3 10899 10905 10911 10914 9 + 10959 10956 10962 10965 1 10959 10956 -10962 10965 2 + 10956 10962 10968 10971 3 10953 10947 10956 10959 14 + 10953 10947 -10956 10959 15 10953 10947 10956 10962 3 + 10950 10947 10956 10959 14 10950 10947 -10956 10959 15 + 10950 10947 10956 10962 3 10947 10956 10962 10965 2 + 10944 10941 10947 10950 3 10944 10941 10947 10953 3 + 10944 10941 10947 10956 3 11004 11001 11007 11010 1 + 11004 11001 -11007 11010 2 11001 11007 11013 11016 3 + 10989 10983 10992 10995 3 10989 10983 10992 10998 3 + 10986 10983 10992 10995 3 10986 10983 10992 10998 3 + 10980 10974 10968 11001 9 10980 10974 10983 10986 21 + 10980 10974 10983 10989 21 10980 10974 10983 10992 9 + 10977 10974 10968 11001 9 10977 10974 10983 10986 21 + 10977 10974 10983 10989 21 10977 10974 10983 10992 9 + 10971 10968 10974 10977 9 10971 10968 10974 10980 9 + 10971 10968 10974 10983 9 10971 10968 11001 11004 14 + 10971 10968 -11001 11004 15 10971 10968 11001 11007 3 + 10968 10974 10983 10986 20 10968 10974 10983 10989 20 + 10968 11001 11007 11010 2 10965 10962 10968 10971 3 + 10965 10962 10968 10974 3 10965 10962 10968 11001 3 + 10962 10968 10974 10977 9 10962 10968 10974 10980 9 + 11052 11049 11055 11058 1 11052 11049 -11055 11058 2 + 11049 11055 11061 11064 3 11034 11025 11019 11037 20 + 11031 11025 11019 11037 20 11028 11025 11019 11037 20 + 11025 11019 11037 11040 20 11025 11019 11037 11043 20 + 11025 11019 11037 11046 20 11022 11019 11013 11049 9 + 11022 11019 11025 11028 21 11022 11019 11025 11031 21 + 11022 11019 11025 11034 21 11022 11019 11037 11040 21 + 11022 11019 11037 11043 21 11022 11019 11037 11046 21 + 11016 11013 11019 11022 9 11016 11013 11019 11025 9 + 11016 11013 11019 11037 9 11016 11013 11049 11052 14 + 11016 11013 -11049 11052 15 11016 11013 11049 11055 3 + 11013 11019 11025 11028 20 11013 11019 11025 11031 20 + 11013 11019 11025 11034 20 11013 11019 11037 11040 20 + 11013 11019 11037 11043 20 11013 11019 11037 11046 20 + 11013 11049 11055 11058 2 11010 11007 11013 11016 3 + 11010 11007 11013 11019 3 11010 11007 11013 11049 3 + 11007 11013 11019 11022 9 11100 11097 11103 11106 1 + 11100 11097 -11103 11106 2 11097 11103 11109 11112 3 + 11082 11073 11067 11085 20 11079 11073 11067 11085 20 + 11076 11073 11067 11085 20 11073 11067 11085 11088 20 + 11073 11067 11085 11091 20 11073 11067 11085 11094 20 + 11070 11067 11061 11097 9 11070 11067 11073 11076 21 + 11070 11067 11073 11079 21 11070 11067 11073 11082 21 + 11070 11067 11085 11088 21 11070 11067 11085 11091 21 + 11070 11067 11085 11094 21 11064 11061 11067 11070 9 + 11064 11061 11067 11073 9 11064 11061 11067 11085 9 + 11064 11061 11097 11100 14 11064 11061 -11097 11100 15 + 11064 11061 11097 11103 3 11061 11067 11073 11076 20 + 11061 11067 11073 11079 20 11061 11067 11073 11082 20 + 11061 11067 11085 11088 20 11061 11067 11085 11091 20 + 11061 11067 11085 11094 20 11061 11097 11103 11106 2 + 11058 11055 11061 11064 3 11058 11055 11061 11067 3 + 11058 11055 11061 11097 3 11055 11061 11067 11070 9 + 11151 11148 11154 11157 1 11151 11148 -11154 11157 2 + 11148 11154 11160 11163 3 11139 11136 11142 11145 29 + 11133 11130 11136 11139 30 11133 11130 11136 11142 30 + 11130 11136 11142 11145 29 11127 11124 11142 11145 32 + 11127 11130 11136 11139 30 11124 11127 11130 11133 33 + 11124 11142 11136 11139 29 11121 11115 11109 11148 9 + 11121 11115 11124 11127 3 11121 11115 11124 11142 3 + 11118 11115 11109 11148 9 11118 11115 11124 11127 3 + 11118 11115 11124 11142 3 11115 11124 11142 11145 32 + 11112 11109 11115 11118 9 11112 11109 11115 11121 9 + 11112 11109 11115 11124 9 11112 11109 11148 11151 14 + 11112 11109 -11148 11151 15 11112 11109 11148 11154 3 + 11109 11148 11154 11157 2 11106 11103 11109 11112 3 + 11106 11103 11109 11115 3 11106 11103 11109 11148 3 + 11103 11109 11115 11118 9 11103 11109 11115 11121 9 + 11199 11196 11202 11205 1 11199 11196 -11202 11205 2 + 11196 11202 11208 11211 3 11181 11172 11166 11184 20 + 11178 11172 11166 11184 20 11175 11172 11166 11184 20 + 11172 11166 11184 11187 20 11172 11166 11184 11190 20 + 11172 11166 11184 11193 20 11169 11166 11160 11196 9 + 11169 11166 11172 11175 21 11169 11166 11172 11178 21 + 11169 11166 11172 11181 21 11169 11166 11184 11187 21 + 11169 11166 11184 11190 21 11169 11166 11184 11193 21 + 11163 11160 11166 11169 9 11163 11160 11166 11172 9 + 11163 11160 11166 11184 9 11163 11160 11196 11199 14 + 11163 11160 -11196 11199 15 11163 11160 11196 11202 3 + 11160 11166 11172 11175 20 11160 11166 11172 11178 20 + 11160 11166 11172 11181 20 11160 11166 11184 11187 20 + 11160 11166 11184 11190 20 11160 11166 11184 11193 20 + 11160 11196 11202 11205 2 11157 11154 11160 11163 3 + 11157 11154 11160 11166 3 11157 11154 11160 11196 3 + 11154 11160 11166 11169 9 11235 11232 11238 11241 1 + 11235 11232 -11238 11241 2 11232 11238 11244 11247 3 + 11220 11214 11208 11232 9 11220 11214 11223 11226 3 + 11220 11214 11223 11229 3 11217 11214 11208 11232 9 + 11217 11214 11223 11226 3 11217 11214 11223 11229 3 + 11211 11208 11214 11217 9 11211 11208 11214 11220 9 + 11211 11208 11214 11223 9 11211 11208 11232 11235 14 + 11211 11208 -11232 11235 15 11211 11208 11232 11238 3 + 11208 11232 11238 11241 2 11205 11202 11208 11211 3 + 11205 11202 11208 11214 3 11205 11202 11208 11232 3 + 11202 11208 11214 11217 9 11202 11208 11214 11220 9 + 11265 11262 11268 11271 1 11265 11262 -11268 11271 2 + 11262 11268 11274 11277 3 11262 11268 11274 11280 3 + 11259 11250 11244 11262 9 11256 11250 11244 11262 9 + 11253 11250 11244 11262 9 11247 11244 11250 11253 9 + 11247 11244 11250 11256 9 11247 11244 11250 11259 9 + 11247 11244 11262 11265 14 11247 11244 -11262 11265 15 + 11247 11244 11262 11268 3 11244 11262 11268 11271 2 + 11241 11238 11244 11247 3 11241 11238 11244 11250 3 + 11241 11238 11244 11262 3 11238 11244 11250 11253 9 + 11238 11244 11250 11256 9 11238 11244 11250 11259 9 + 11286 11283 11289 11292 1 11286 11283 -11289 11292 2 + 11283 11289 11295 11298 3 11280 11274 11283 11286 14 + 11280 11274 -11283 11286 15 11280 11274 11283 11289 3 + 11277 11274 11283 11286 14 11277 11274 -11283 11286 15 + 11277 11274 11283 11289 3 11274 11283 11289 11292 2 + 11271 11268 11274 11277 3 11271 11268 11274 11280 3 + 11271 11268 11274 11283 3 11349 11346 11352 11355 1 + 11349 11346 -11352 11355 2 11346 11352 11358 11361 3 + 11337 11334 11340 11343 19 11331 11328 11325 11334 28 + 11328 11325 11334 11337 19 11325 11334 11340 11343 19 + 11322 11319 11325 11328 19 11322 11319 11325 11334 19 + 11319 11325 11328 11331 28 11319 11325 11334 11337 19 + 11316 11313 11310 11340 19 11316 11313 11319 11322 19 + 11316 11313 11319 11325 19 11313 11310 11340 11343 19 + 11310 11313 11319 11322 19 11310 11340 11334 11337 19 + 11307 11301 11295 11346 9 11307 11301 11310 11313 3 + 11307 11301 11310 11340 3 11304 11301 11295 11346 9 + 11304 11301 11310 11313 3 11304 11301 11310 11340 3 + 11301 11310 11313 11316 19 11301 11310 11340 11343 19 + 11298 11295 11301 11304 9 11298 11295 11301 11307 9 + 11298 11295 11301 11310 9 11298 11295 11346 11349 14 + 11298 11295 -11346 11349 15 11298 11295 11346 11352 3 + 11295 11346 11352 11355 2 11292 11289 11295 11298 3 + 11292 11289 11295 11301 3 11292 11289 11295 11346 3 + 11289 11295 11301 11304 9 11289 11295 11301 11307 9 + 11400 11397 11403 11406 1 11400 11397 -11403 11406 2 + 11397 11403 11409 11412 3 11388 11385 11391 11394 29 + 11382 11379 11385 11388 30 11382 11379 11385 11391 30 + 11379 11385 11391 11394 29 11376 11373 11391 11394 32 + 11376 11379 11385 11388 30 11373 11376 11379 11382 33 + 11373 11391 11385 11388 29 11370 11364 11358 11397 9 + 11370 11364 11373 11376 3 11370 11364 11373 11391 3 + 11367 11364 11358 11397 9 11367 11364 11373 11376 3 + 11367 11364 11373 11391 3 11364 11373 11391 11394 32 + 11361 11358 11364 11367 9 11361 11358 11364 11370 9 + 11361 11358 11364 11373 9 11361 11358 11397 11400 14 + 11361 11358 -11397 11400 15 11361 11358 11397 11403 3 + 11358 11397 11403 11406 2 11355 11352 11358 11361 3 + 11355 11352 11358 11364 3 11355 11352 11358 11397 3 + 11352 11358 11364 11367 9 11352 11358 11364 11370 9 + 11433 11430 11436 11439 1 11433 11430 -11436 11439 2 + 11430 11436 11442 11445 3 11421 11415 11409 11430 9 + 11421 11415 11424 11427 34 11418 11415 11409 11430 9 + 11418 11415 11424 11427 34 11412 11409 11415 11418 9 + 11412 11409 11415 11421 9 11412 11409 11415 11424 9 + 11412 11409 11430 11433 14 11412 11409 -11430 11433 15 + 11412 11409 11430 11436 3 11409 11415 11424 11427 34 + 11409 11430 11436 11439 2 11406 11403 11409 11412 3 + 11406 11403 11409 11415 3 11406 11403 11409 11430 3 + 11403 11409 11415 11418 9 11403 11409 11415 11421 9 + 11481 11478 11484 11487 1 11481 11478 -11484 11487 2 + 11478 11484 11490 11493 3 11463 11454 11448 11466 20 + 11460 11454 11448 11466 20 11457 11454 11448 11466 20 + 11454 11448 11466 11469 20 11454 11448 11466 11472 20 + 11454 11448 11466 11475 20 11451 11448 11442 11478 9 + 11451 11448 11454 11457 21 11451 11448 11454 11460 21 + 11451 11448 11454 11463 21 11451 11448 11466 11469 21 + 11451 11448 11466 11472 21 11451 11448 11466 11475 21 + 11445 11442 11448 11451 9 11445 11442 11448 11454 9 + 11445 11442 11448 11466 9 11445 11442 11478 11481 14 + 11445 11442 -11478 11481 15 11445 11442 11478 11484 3 + 11442 11448 11454 11457 20 11442 11448 11454 11460 20 + 11442 11448 11454 11463 20 11442 11448 11466 11469 20 + 11442 11448 11466 11472 20 11442 11448 11466 11475 20 + 11442 11478 11484 11487 2 11439 11436 11442 11445 3 + 11439 11436 11442 11448 3 11439 11436 11442 11478 3 + 11436 11442 11448 11451 9 11514 11511 11517 11520 1 + 11514 11511 -11517 11520 2 11511 11517 11523 11526 3 + 11502 11496 11490 11511 9 11502 11496 11505 11508 27 + 11499 11496 11490 11511 9 11499 11496 11505 11508 27 + 11493 11490 11496 11499 9 11493 11490 11496 11502 9 + 11493 11490 11496 11505 25 11493 11490 -11496 11505 26 + 11493 11490 11511 11514 14 11493 11490 -11511 11514 15 + 11493 11490 11511 11517 3 11490 11496 11505 11508 25 + 11490 11496 -11505 11508 20 11490 11511 11517 11520 2 + 11487 11484 11490 11493 3 11487 11484 11490 11496 3 + 11487 11484 11490 11511 3 11484 11490 11496 11499 9 + 11484 11490 11496 11502 9 11565 11562 11568 11571 1 + 11565 11562 -11568 11571 2 11562 11568 11574 11577 3 + 11562 11568 11574 11580 3 11544 11538 11547 11550 8 + 11541 11538 11547 11550 8 11538 11547 11550 11553 8 + 11538 11547 11550 11556 8 11538 11547 11550 11559 8 + 11535 11529 11523 11562 9 11535 11529 11538 11541 9 + 11535 11529 11538 11544 9 11535 11529 11538 11547 9 + 11532 11529 11523 11562 9 11532 11529 11538 11541 9 + 11532 11529 11538 11544 9 11532 11529 11538 11547 9 + 11526 11523 11529 11532 9 11526 11523 11529 11535 9 + 11526 11523 11529 11538 9 11526 11523 11562 11565 14 + 11526 11523 -11562 11565 15 11526 11523 11562 11568 3 + 11523 11529 11538 11541 9 11523 11529 11538 11544 9 + 11523 11562 11568 11571 2 11520 11517 11523 11526 3 + 11520 11517 11523 11529 3 11520 11517 11523 11562 3 + 11517 11523 11529 11532 9 11517 11523 11529 11535 9 + 11586 11583 11589 11592 1 11586 11583 -11589 11592 2 + 11583 11589 11595 11598 3 11580 11574 11583 11586 14 + 11580 11574 -11583 11586 15 11580 11574 11583 11589 3 + 11577 11574 11583 11586 14 11577 11574 -11583 11586 15 + 11577 11574 11583 11589 3 11574 11583 11589 11592 2 + 11571 11568 11574 11577 3 11571 11568 11574 11580 3 + 11571 11568 11574 11583 3 11628 11625 11631 11634 1 + 11628 11625 -11631 11634 2 11625 11631 11637 11640 3 + 11613 11610 11616 11619 1 11613 11610 -11616 11619 2 + 11613 11610 11616 11622 1 11613 11610 -11616 11622 2 + 11607 11601 11595 11625 9 11607 11601 11610 11613 14 + 11607 11601 -11610 11613 3 11607 11601 -11610 11613 15 + 11607 11601 11610 11616 3 11604 11601 11595 11625 9 + 11604 11601 11610 11613 14 11604 11601 -11610 11613 3 + 11604 11601 -11610 11613 15 11604 11601 11610 11616 3 + 11601 11610 11616 11619 2 11601 11610 11616 11622 2 + 11598 11595 11601 11604 9 11598 11595 11601 11607 9 + 11598 11595 11601 11610 9 11598 11595 11625 11628 14 + 11598 11595 -11625 11628 15 11598 11595 11625 11631 3 + 11595 11625 11631 11634 2 11592 11589 11595 11598 3 + 11592 11589 11595 11601 3 11592 11589 11595 11625 3 + 11589 11595 11601 11604 9 11589 11595 11601 11607 9 + 11676 11673 11679 11682 1 11676 11673 -11679 11682 2 + 11673 11679 11685 11688 3 11658 11649 11643 11661 20 + 11655 11649 11643 11661 20 11652 11649 11643 11661 20 + 11649 11643 11661 11664 20 11649 11643 11661 11667 20 + 11649 11643 11661 11670 20 11646 11643 11637 11673 9 + 11646 11643 11649 11652 21 11646 11643 11649 11655 21 + 11646 11643 11649 11658 21 11646 11643 11661 11664 21 + 11646 11643 11661 11667 21 11646 11643 11661 11670 21 + 11640 11637 11643 11646 9 11640 11637 11643 11649 9 + 11640 11637 11643 11661 9 11640 11637 11673 11676 14 + 11640 11637 -11673 11676 15 11640 11637 11673 11679 3 + 11637 11643 11649 11652 20 11637 11643 11649 11655 20 + 11637 11643 11649 11658 20 11637 11643 11661 11664 20 + 11637 11643 11661 11667 20 11637 11643 11661 11670 20 + 11637 11673 11679 11682 2 11634 11631 11637 11640 3 + 11634 11631 11637 11643 3 11634 11631 11637 11673 3 + 11631 11637 11643 11646 9 11733 11730 11736 11739 1 + 11733 11730 -11736 11739 2 11730 11736 11742 11745 3 + 11715 11706 11700 11718 20 11712 11706 11700 11718 20 + 11709 11706 11700 11718 20 11706 11700 11718 11721 20 + 11706 11700 11718 11724 20 11706 11700 11718 11727 20 + 11703 11700 11706 11709 21 11703 11700 11706 11712 21 + 11703 11700 11706 11715 21 11703 11700 11718 11721 21 + 11703 11700 11718 11724 21 11703 11700 11718 11727 21 + 11697 11691 11685 11730 9 11697 11691 11700 11703 21 + 11697 11691 11700 11706 20 11697 11691 11700 11718 20 + 11694 11691 11685 11730 9 11694 11691 11700 11703 21 + 11694 11691 11700 11706 20 11694 11691 11700 11718 20 + 11691 11700 11706 11709 20 11691 11700 11706 11712 20 + 11691 11700 11706 11715 20 11691 11700 11718 11721 20 + 11691 11700 11718 11724 20 11691 11700 11718 11727 20 + 11688 11685 11691 11694 9 11688 11685 11691 11697 9 + 11688 11685 11691 11700 9 11688 11685 11730 11733 14 + 11688 11685 -11730 11733 15 11688 11685 11730 11736 3 + 11685 11691 11700 11703 20 11685 11730 11736 11739 2 + 11682 11679 11685 11688 3 11682 11679 11685 11691 3 + 11682 11679 11685 11730 3 11679 11685 11691 11694 9 + 11679 11685 11691 11697 9 11790 11787 11793 11796 1 + 11790 11787 -11793 11796 2 11787 11793 11799 11802 3 + 11772 11763 11757 11775 20 11769 11763 11757 11775 20 + 11766 11763 11757 11775 20 11763 11757 11775 11778 20 + 11763 11757 11775 11781 20 11763 11757 11775 11784 20 + 11760 11757 11763 11766 21 11760 11757 11763 11769 21 + 11760 11757 11763 11772 21 11760 11757 11775 11778 21 + 11760 11757 11775 11781 21 11760 11757 11775 11784 21 + 11754 11748 11742 11787 9 11754 11748 11757 11760 21 + 11754 11748 11757 11763 20 11754 11748 11757 11775 20 + 11751 11748 11742 11787 9 11751 11748 11757 11760 21 + 11751 11748 11757 11763 20 11751 11748 11757 11775 20 + 11748 11757 11763 11766 20 11748 11757 11763 11769 20 + 11748 11757 11763 11772 20 11748 11757 11775 11778 20 + 11748 11757 11775 11781 20 11748 11757 11775 11784 20 + 11745 11742 11748 11751 9 11745 11742 11748 11754 9 + 11745 11742 11748 11757 9 11745 11742 11787 11790 14 + 11745 11742 -11787 11790 15 11745 11742 11787 11793 3 + 11742 11748 11757 11760 20 11742 11787 11793 11796 2 + 11739 11736 11742 11745 3 11739 11736 11742 11748 3 + 11739 11736 11742 11787 3 11736 11742 11748 11751 9 + 11736 11742 11748 11754 9 11835 11832 11838 11841 1 + 11835 11832 -11838 11841 2 11832 11838 11844 11847 3 + 11820 11814 11823 11826 3 11820 11814 11823 11829 3 + 11817 11814 11823 11826 3 11817 11814 11823 11829 3 + 11811 11805 11799 11832 9 11811 11805 11814 11817 21 + 11811 11805 11814 11820 21 11811 11805 11814 11823 9 + 11808 11805 11799 11832 9 11808 11805 11814 11817 21 + 11808 11805 11814 11820 21 11808 11805 11814 11823 9 + 11802 11799 11805 11808 9 11802 11799 11805 11811 9 + 11802 11799 11805 11814 9 11802 11799 11832 11835 14 + 11802 11799 -11832 11835 15 11802 11799 11832 11838 3 + 11799 11805 11814 11817 20 11799 11805 11814 11820 20 + 11799 11832 11838 11841 2 11796 11793 11799 11802 3 + 11796 11793 11799 11805 3 11796 11793 11799 11832 3 + 11793 11799 11805 11808 9 11793 11799 11805 11811 9 + 11886 11883 11889 11892 1 11886 11883 -11889 11892 2 + 11883 11889 11895 11898 3 11874 11871 11877 11880 29 + 11868 11865 11871 11874 30 11868 11865 11871 11877 30 + 11865 11871 11877 11880 29 11862 11859 11877 11880 32 + 11862 11865 11871 11874 30 11859 11862 11865 11868 33 + 11859 11877 11871 11874 29 11856 11850 11844 11883 9 + 11856 11850 11859 11862 3 11856 11850 11859 11877 3 + 11853 11850 11844 11883 9 11853 11850 11859 11862 3 + 11853 11850 11859 11877 3 11850 11859 11877 11880 32 + 11847 11844 11850 11853 9 11847 11844 11850 11856 9 + 11847 11844 11850 11859 9 11847 11844 11883 11886 14 + 11847 11844 -11883 11886 15 11847 11844 11883 11889 3 + 11844 11883 11889 11892 2 11841 11838 11844 11847 3 + 11841 11838 11844 11850 3 11841 11838 11844 11883 3 + 11838 11844 11850 11853 9 11838 11844 11850 11856 9 + 11937 11934 11940 11943 1 11937 11934 -11940 11943 2 + 11934 11940 11946 11949 3 11925 11922 11928 11931 29 + 11919 11916 11922 11925 30 11919 11916 11922 11928 30 + 11916 11922 11928 11931 29 11913 11910 11928 11931 32 + 11913 11916 11922 11925 30 11910 11913 11916 11919 33 + 11910 11928 11922 11925 29 11907 11901 11895 11934 9 + 11907 11901 11910 11913 3 11907 11901 11910 11928 3 + 11904 11901 11895 11934 9 11904 11901 11910 11913 3 + 11904 11901 11910 11928 3 11901 11910 11928 11931 32 + 11898 11895 11901 11904 9 11898 11895 11901 11907 9 + 11898 11895 11901 11910 9 11898 11895 11934 11937 14 + 11898 11895 -11934 11937 15 11898 11895 11934 11940 3 + 11895 11934 11940 11943 2 11892 11889 11895 11898 3 + 11892 11889 11895 11901 3 11892 11889 11895 11934 3 + 11889 11895 11901 11904 9 11889 11895 11901 11907 9 + 11988 11985 11991 11994 1 11988 11985 -11991 11994 2 + 11985 11991 11997 12000 3 11976 11973 11979 11982 29 + 11970 11967 11973 11976 30 11970 11967 11973 11979 30 + 11967 11973 11979 11982 29 11964 11961 11979 11982 32 + 11964 11967 11973 11976 30 11961 11964 11967 11970 33 + 11961 11979 11973 11976 29 11958 11952 11946 11985 9 + 11958 11952 11961 11964 3 11958 11952 11961 11979 3 + 11955 11952 11946 11985 9 11955 11952 11961 11964 3 + 11955 11952 11961 11979 3 11952 11961 11979 11982 32 + 11949 11946 11952 11955 9 11949 11946 11952 11958 9 + 11949 11946 11952 11961 9 11949 11946 11985 11988 14 + 11949 11946 -11985 11988 15 11949 11946 11985 11991 3 + 11946 11985 11991 11994 2 11943 11940 11946 11949 3 + 11943 11940 11946 11952 3 11943 11940 11946 11985 3 + 11940 11946 11952 11955 9 11940 11946 11952 11958 9 + 12039 12036 12042 12045 1 12039 12036 -12042 12045 2 + 12036 12042 12048 12051 3 12027 12024 12030 12033 29 + 12021 12018 12024 12027 30 12021 12018 12024 12030 30 + 12018 12024 12030 12033 29 12015 12012 12030 12033 32 + 12015 12018 12024 12027 30 12012 12015 12018 12021 33 + 12012 12030 12024 12027 29 12009 12003 11997 12036 9 + 12009 12003 12012 12015 3 12009 12003 12012 12030 3 + 12006 12003 11997 12036 9 12006 12003 12012 12015 3 + 12006 12003 12012 12030 3 12003 12012 12030 12033 32 + 12000 11997 12003 12006 9 12000 11997 12003 12009 9 + 12000 11997 12003 12012 9 12000 11997 12036 12039 14 + 12000 11997 -12036 12039 15 12000 11997 12036 12042 3 + 11997 12036 12042 12045 2 11994 11991 11997 12000 3 + 11994 11991 11997 12003 3 11994 11991 11997 12036 3 + 11991 11997 12003 12006 9 11991 11997 12003 12009 9 + 12090 12087 12093 12096 1 12090 12087 -12093 12096 2 + 12087 12093 12099 12102 3 12078 12075 12081 12084 29 + 12072 12069 12075 12078 30 12072 12069 12075 12081 30 + 12069 12075 12081 12084 29 12066 12063 12081 12084 32 + 12066 12069 12075 12078 30 12063 12066 12069 12072 33 + 12063 12081 12075 12078 29 12060 12054 12048 12087 9 + 12060 12054 12063 12066 3 12060 12054 12063 12081 3 + 12057 12054 12048 12087 9 12057 12054 12063 12066 3 + 12057 12054 12063 12081 3 12054 12063 12081 12084 32 + 12051 12048 12054 12057 9 12051 12048 12054 12060 9 + 12051 12048 12054 12063 9 12051 12048 12087 12090 14 + 12051 12048 -12087 12090 15 12051 12048 12087 12093 3 + 12048 12087 12093 12096 2 12045 12042 12048 12051 3 + 12045 12042 12048 12054 3 12045 12042 12048 12087 3 + 12042 12048 12054 12057 9 12042 12048 12054 12060 9 + 12129 12126 12132 12135 29 12123 12120 12126 12129 30 + 12123 12120 12126 12132 30 12120 12126 12132 12135 29 + 12117 12114 12132 12135 32 12117 12120 12126 12129 30 + 12114 12117 12120 12123 33 12114 12132 12126 12129 29 + 12111 12105 12099 12138 9 12111 12105 12114 12117 3 + 12111 12105 12114 12132 3 12108 12105 12099 12138 9 + 12108 12105 12114 12117 3 12108 12105 12114 12132 3 + 12105 12114 12132 12135 32 12102 12099 12105 12108 9 + 12102 12099 12105 12111 9 12102 12099 12105 12114 9 + 12102 12099 12138 12141 3 12102 12099 12138 12144 3 + 12096 12093 12099 12102 3 12096 12093 12099 12105 3 + 12096 12093 12099 12138 3 12093 12099 12105 12108 9 + 12093 12099 12105 12111 9 12351 12273 12276 12354 42 + 12348 12270 12273 12351 43 12330 12243 12249 12336 9 + 12330 12243 12246 12333 27 12324 12237 12243 12330 9 + 12324 12237 12240 12327 27 12321 12231 12237 12324 9 + 12318 12228 12231 12321 9 12315 12228 12231 12321 9 + 12294 12174 12180 12300 9 12294 12174 12177 12297 27 + 12288 12168 12174 12294 9 12288 12168 12171 12291 27 + 12285 12162 12168 12288 9 12282 12159 12162 12285 9 + 12279 12159 12162 12285 9 12276 12252 12249 12336 3 + 12276 12252 12255 12339 42 12276 12273 12270 12348 42 + 12270 12258 12255 12339 42 12270 12273 12276 12354 42 + 12264 12261 12267 12342 2 12264 12261 12267 12345 2 + 12261 12258 12255 12339 42 12261 12258 12270 12348 33 + 12258 12261 12267 12342 2 12258 12261 12267 12345 2 + 12258 12270 12273 12351 48 12255 12252 12249 12336 3 + 12255 12252 12276 12354 42 12255 12258 12270 12348 42 + 12252 12249 12243 12330 9 12252 12276 12273 12351 48 + 12249 12234 12231 12321 50 12249 12243 12237 12324 9 + 12249 12243 12246 12333 25 12249 12243 -12246 12333 20 + 12249 12252 12276 12354 42 12249 12252 12255 12339 42 + 12246 12243 12237 12324 25 12246 12243 -12237 12324 26 + 12246 12243 12249 12336 9 12243 12237 12231 12321 9 + 12243 12237 12240 12327 25 12243 12237 -12240 12327 20 + 12240 12237 12231 12321 25 12240 12237 -12231 12321 26 + 12240 12237 12243 12330 25 12240 12237 -12243 12330 26 + 12237 12231 12228 12318 9 12237 12231 12228 12315 9 + 12237 12243 12249 12336 9 12237 12243 12246 12333 25 + 12237 12243 -12246 12333 20 12234 12231 12228 12318 25 + 12234 12231 -12228 12318 26 12234 12231 12228 12315 25 + 12234 12231 -12228 12315 26 12234 12231 12237 12324 25 + 12234 12231 -12237 12324 26 12234 12249 12243 12330 25 + 12234 12249 -12243 12330 26 12231 12234 12249 12336 50 + 12231 12237 12243 12330 9 12231 12237 12240 12327 25 + 12231 12237 -12240 12327 20 12228 12231 12237 12324 9 + 12225 12228 12231 12321 25 12225 12228 -12231 12321 26 + 12216 12225 12228 12318 50 12216 12225 12228 12315 50 + 12210 12183 12180 12300 3 12210 12183 12186 12303 56 + 12210 12207 12204 12312 57 12201 12195 12198 12306 31 + 12201 12195 12198 12309 31 12195 12201 12204 12312 57 + 12192 12189 12186 12303 60 12192 12195 12198 12306 31 + 12192 12195 12198 12309 31 12186 12183 12180 12300 3 + 12183 12180 12174 12294 9 12180 12165 12162 12285 50 + 12180 12174 12168 12288 9 12180 12174 12177 12297 25 + 12180 12174 -12177 12297 20 12180 12183 12186 12303 56 + 12177 12174 12168 12288 25 12177 12174 -12168 12288 26 + 12177 12174 12180 12300 9 12174 12168 12162 12285 9 + 12174 12168 12171 12291 25 12174 12168 -12171 12291 20 + 12171 12168 12162 12285 25 12171 12168 -12162 12285 26 + 12171 12168 12174 12294 25 12171 12168 -12174 12294 26 + 12168 12162 12159 12279 9 12168 12162 12159 12282 9 + 12168 12174 12180 12300 9 12168 12174 12177 12297 25 + 12168 12174 -12177 12297 20 12165 12162 12159 12279 25 + 12165 12162 -12159 12279 26 12165 12162 12159 12282 25 + 12165 12162 -12159 12282 26 12165 12162 12168 12288 25 + 12165 12162 -12168 12288 26 12165 12180 12174 12294 25 + 12165 12180 -12174 12294 26 12162 12168 12174 12294 9 + 12162 12168 12171 12291 25 12162 12168 -12171 12291 20 + 12162 12165 12180 12300 50 12159 12162 12168 12288 9 + 12156 12159 12162 12285 25 12156 12159 -12162 12285 26 + 12147 12156 12159 12279 50 12147 12156 12159 12282 50 + 12423 12393 12396 12426 19 12411 12369 12372 12414 19 + 12405 12366 12363 12408 19 12405 12366 12369 12411 19 + 12402 12390 12387 12420 19 12402 12390 12393 12423 19 + 12399 12384 12387 12420 19 12393 12390 12387 12420 19 + 12390 12393 12396 12426 19 12387 12390 12393 12423 19 + 12384 12381 12396 12426 19 12381 12384 12387 12420 19 + 12381 12396 12393 12423 19 12378 12360 12363 12408 19 + 12375 12357 12372 12414 19 12375 12381 12396 12426 19 + 12369 12366 12363 12408 19 12366 12369 12372 12414 19 + 12363 12360 12378 12417 66 12363 12366 12369 12411 19 + 12360 12357 12372 12414 19 12357 12360 12363 12408 19 + 12357 12360 12378 12417 66 12357 12372 12369 12411 19 + 51 63 -57 -60 40 99 120 -126 -129 40 + 114 126 -120 -123 40 108 120 -114 -117 40 + 102 114 -108 -111 40 99 108 -102 -105 40 + 72 84 -78 -81 40 132 144 -138 -141 40 + 189 201 -195 -198 40 219 231 -225 -228 40 + 240 252 -246 -249 40 306 318 -312 -315 40 + 372 384 -378 -381 40 429 441 -435 -438 40 + 486 498 -492 -495 40 543 555 -549 -552 40 + 585 597 -591 -594 40 606 618 -612 -615 40 + 663 675 -669 -672 40 720 732 -726 -729 40 + 780 789 -786 -792 42 753 765 -759 -762 40 + 795 807 -801 -804 40 861 873 -867 -870 40 + 894 906 -900 -903 40 951 963 -957 -960 40 + 1008 1032 -1038 -1041 40 1023 1038 -1032 -1035 40 + 1011 1023 -1017 -1020 40 1008 1017 -1011 -1014 40 + 981 993 -987 -990 40 1044 1056 -1050 -1053 40 + 1065 1077 -1071 -1074 40 1122 1134 -1128 -1131 40 + 1152 1164 -1158 -1161 40 1218 1230 -1224 -1227 40 + 1248 1260 -1254 -1257 40 1326 1338 -1344 -1347 40 + 1332 1344 -1338 -1341 42 1329 1338 -1332 -1335 40 + 1299 1311 -1305 -1308 40 1401 1416 -1413 -1419 42 + 1401 1407 -1404 -1410 42 1386 1401 -1395 -1398 42 + 1350 1362 -1356 -1359 40 1422 1434 -1428 -1431 40 + 1467 1479 -1473 -1476 40 1488 1500 -1494 -1497 40 + 1518 1530 -1524 -1527 40 1563 1575 -1569 -1572 40 + 1620 1632 -1626 -1629 40 1677 1698 -1704 -1707 40 + 1692 1704 -1698 -1701 40 1686 1698 -1692 -1695 40 + 1680 1692 -1686 -1689 40 1677 1686 -1680 -1683 40 + 1650 1662 -1656 -1659 40 1710 1722 -1716 -1719 40 + 1779 1803 -1809 -1812 40 1794 1809 -1803 -1806 40 + 1782 1794 -1788 -1791 40 1779 1788 -1782 -1785 40 + 1752 1764 -1758 -1761 40 1815 1827 -1821 -1824 40 + 1863 1875 -1869 -1872 40 1920 1929 -1926 -1932 42 + 1884 1896 -1890 -1893 40 1962 1983 -1989 -1992 40 + 1977 1989 -1983 -1986 40 1971 1983 -1977 -1980 40 + 1965 1977 -1971 -1974 40 1962 1971 -1965 -1968 40 + 1935 1947 -1941 -1944 40 1995 2007 -2001 -2004 40 + 2061 2073 -2067 -2070 40 2148 2163 -2160 -2166 42 + 2148 2154 -2151 -2157 42 2133 2148 -2142 -2145 42 + 2097 2109 -2103 -2106 40 2169 2181 -2175 -2178 40 + 2217 2229 -2223 -2226 40 2262 2274 -2268 -2271 40 + 2328 2340 -2334 -2337 40 2385 2397 -2391 -2394 40 + 2418 2430 -2424 -2427 40 2448 2460 -2454 -2457 40 + 2520 2541 -2547 -2550 40 2535 2547 -2541 -2544 40 + 2529 2541 -2535 -2538 40 2523 2535 -2529 -2532 40 + 2520 2529 -2523 -2526 40 2493 2505 -2499 -2502 40 + 2580 2589 -2586 -2592 42 2553 2565 -2559 -2562 40 + 2637 2649 -2643 -2646 40 2667 2679 -2673 -2676 40 + 2697 2709 -2703 -2706 40 2745 2757 -2751 -2754 40 + 2844 2856 -2850 -2853 40 2877 2889 -2883 -2886 40 + 2913 2925 -2919 -2922 40 2961 2973 -2967 -2970 40 + 3018 3030 -3024 -3027 40 3051 3063 -3057 -3060 40 + 3123 3132 -3129 -3135 42 3087 3099 -3093 -3096 40 + 3138 3150 -3144 -3147 40 3183 3195 -3189 -3192 40 + 3240 3252 -3246 -3249 40 3306 3318 -3312 -3315 40 + 3342 3354 -3348 -3351 40 3426 3447 -3453 -3456 40 + 3441 3453 -3447 -3450 40 3435 3447 -3441 -3444 40 + 3429 3441 -3435 -3438 40 3426 3435 -3429 -3432 40 + 3399 3411 -3405 -3408 40 3459 3471 -3465 -3468 40 + 3507 3519 -3513 -3516 40 3552 3564 -3558 -3561 40 + 3609 3621 -3615 -3618 40 3630 3642 -3636 -3639 40 + 3696 3708 -3702 -3705 40 3801 3813 -3807 -3810 40 + 3795 3807 -3801 -3804 40 3789 3801 -3795 -3798 40 + 3786 3795 -3789 -3792 40 3774 3786 -3780 -3783 42 + 3771 3780 -3774 -3777 40 3744 3756 -3750 -3753 40 + 3816 3828 -3822 -3825 40 3852 3864 -3858 -3861 40 + 3873 3885 -3879 -3882 40 3930 3942 -3936 -3939 40 + 3966 3978 -3972 -3975 40 3996 4008 -4002 -4005 40 + 4053 4065 -4059 -4062 40 4128 4140 -4146 -4149 40 + 4134 4146 -4140 -4143 42 4131 4140 -4134 -4137 40 + 4101 4113 -4107 -4110 40 4152 4164 -4158 -4161 40 + 4185 4197 -4191 -4194 40 4242 4254 -4248 -4251 40 + 4299 4320 -4326 -4329 40 4314 4326 -4320 -4323 40 + 4308 4320 -4314 -4317 40 4302 4314 -4308 -4311 40 + 4299 4308 -4302 -4305 40 4272 4284 -4278 -4281 40 + 4332 4344 -4338 -4341 40 4455 4470 -4467 -4473 42 + 4455 4461 -4458 -4464 42 4440 4455 -4449 -4452 42 + 4404 4416 -4410 -4413 40 4476 4488 -4482 -4485 40 + 4548 4557 -4554 -4560 42 4512 4524 -4518 -4521 40 + 4563 4575 -4569 -4572 40 4620 4632 -4626 -4629 40 + 4665 4677 -4671 -4674 40 4713 4722 -4719 -4725 42 + 4686 4698 -4692 -4695 40 4755 4776 -4782 -4785 40 + 4770 4782 -4776 -4779 40 4764 4776 -4770 -4773 40 + 4758 4770 -4764 -4767 40 4755 4764 -4758 -4761 40 + 4728 4740 -4734 -4737 40 4788 4800 -4794 -4797 40 + 4845 4857 -4851 -4854 40 4881 4893 -4887 -4890 40 + 4914 4926 -4920 -4923 40 4962 4974 -4968 -4971 40 + 5055 5070 -5067 -5073 42 5055 5061 -5058 -5064 42 + 5040 5055 -5049 -5052 42 5004 5016 -5010 -5013 40 + 5076 5088 -5082 -5085 40 5121 5133 -5127 -5130 40 + 5169 5190 -5196 -5199 40 5184 5196 -5190 -5193 40 + 5178 5190 -5184 -5187 40 5172 5184 -5178 -5181 40 + 5169 5178 -5172 -5175 40 5142 5154 -5148 -5151 40 + 5202 5214 -5208 -5211 40 5235 5247 -5241 -5244 40 + 5292 5304 -5298 -5301 40 5349 5361 -5367 -5370 40 + 5355 5367 -5361 -5364 42 5352 5361 -5355 -5358 40 + 5322 5334 -5328 -5331 40 5373 5385 -5379 -5382 40 + 5409 5421 -5415 -5418 40 5466 5478 -5472 -5475 40 + 5499 5511 -5505 -5508 40 5556 5580 -5586 -5589 40 + 5571 5586 -5580 -5583 40 5559 5571 -5565 -5568 40 + 5556 5565 -5559 -5562 40 5529 5541 -5535 -5538 40 + 5592 5604 -5598 -5601 40 5652 5673 -5679 -5682 40 + 5667 5679 -5673 -5676 40 5661 5673 -5667 -5670 40 + 5655 5667 -5661 -5664 40 5652 5661 -5655 -5658 40 + 5625 5637 -5631 -5634 40 5685 5697 -5691 -5694 40 + 5715 5727 -5721 -5724 40 5745 5757 -5751 -5754 40 + 5802 5814 -5808 -5811 40 5832 5844 -5838 -5841 40 + 5898 5910 -5904 -5907 40 5943 5955 -5949 -5952 40 + 6015 6030 -6027 -6033 42 6015 6021 -6018 -6024 42 + 6000 6015 -6009 -6012 42 5964 5976 -5970 -5973 40 + 6036 6048 -6042 -6045 40 6069 6081 -6075 -6078 40 + 6120 6132 -6126 -6129 40 6171 6183 -6177 -6180 40 + 6264 6273 -6270 -6276 42 6237 6249 -6243 -6246 40 + 6330 6345 -6342 -6348 42 6330 6336 -6333 -6339 42 + 6315 6330 -6324 -6327 42 6279 6291 -6285 -6288 40 + 6378 6387 -6384 -6390 42 6351 6363 -6357 -6360 40 + 6393 6405 -6399 -6402 40 6423 6435 -6429 -6432 40 + 6456 6468 -6462 -6465 40 6507 6519 -6513 -6516 40 + 6555 6567 -6561 -6564 40 6585 6597 -6591 -6594 40 + 6642 6654 -6648 -6651 40 6711 6735 -6741 -6744 40 + 6726 6741 -6735 -6738 40 6714 6726 -6720 -6723 40 + 6711 6720 -6714 -6717 40 6684 6696 -6690 -6693 40 + 6747 6759 -6753 -6756 40 6804 6816 -6810 -6813 40 + 6825 6837 -6831 -6834 40 6855 6867 -6861 -6864 40 + 6900 6912 -6906 -6909 40 6966 6978 -6972 -6975 40 + 6996 7008 -7002 -7005 40 7089 7101 -7095 -7098 40 + 7149 7173 -7179 -7182 40 7164 7179 -7173 -7176 40 + 7152 7164 -7158 -7161 40 7149 7158 -7152 -7155 40 + 7122 7134 -7128 -7131 40 7212 7221 -7218 -7224 42 + 7185 7197 -7191 -7194 40 7227 7239 -7233 -7236 40 + 7269 7281 -7275 -7278 40 7320 7332 -7326 -7329 40 + 7341 7353 -7347 -7350 40 7389 7401 -7395 -7398 40 + 7419 7431 -7425 -7428 40 7485 7497 -7491 -7494 40 + 7515 7527 -7521 -7524 40 7548 7560 -7554 -7557 40 + 7605 7617 -7611 -7614 40 7650 7662 -7656 -7659 40 + 7680 7692 -7686 -7689 40 7722 7734 -7728 -7731 40 + 7821 7836 -7833 -7839 42 7821 7827 -7824 -7830 42 + 7806 7821 -7815 -7818 42 7770 7782 -7776 -7779 40 + 7869 7893 -7899 -7902 40 7884 7899 -7893 -7896 40 + 7872 7884 -7878 -7881 40 7869 7878 -7872 -7875 40 + 7842 7854 -7848 -7851 40 7905 7917 -7911 -7914 40 + 7947 7959 -7953 -7956 40 7977 7989 -7983 -7986 40 + 8034 8046 -8040 -8043 40 8064 8076 -8070 -8073 40 + 8121 8133 -8127 -8130 40 8142 8154 -8148 -8151 40 + 8187 8199 -8193 -8196 40 8223 8235 -8229 -8232 40 + 8244 8256 -8250 -8253 40 8301 8313 -8307 -8310 40 + 8367 8379 -8373 -8376 40 8442 8451 -8448 -8454 42 + 8415 8427 -8421 -8424 40 8457 8469 -8463 -8466 40 + 8487 8499 -8493 -8496 40 8535 8547 -8541 -8544 40 + 8568 8580 -8574 -8577 40 8598 8610 -8604 -8607 40 + 8661 8673 -8667 -8670 40 8718 8730 -8724 -8727 40 + 8784 8796 -8790 -8793 40 8826 8838 -8832 -8835 40 + 8883 8895 -8889 -8892 40 8913 8925 -8919 -8922 40 + 8943 8955 -8949 -8952 40 8976 8988 -8982 -8985 40 + 8997 9009 -9003 -9006 40 9054 9066 -9060 -9063 40 + 9114 9123 -9120 -9126 42 9087 9099 -9093 -9096 40 + 9156 9177 -9183 -9186 40 9171 9183 -9177 -9180 40 + 9165 9177 -9171 -9174 40 9159 9171 -9165 -9168 40 + 9156 9165 -9159 -9162 40 9129 9141 -9135 -9138 40 + 9189 9201 -9195 -9198 40 9255 9267 -9261 -9264 40 + 9321 9333 -9327 -9330 40 9372 9384 -9378 -9381 40 + 9429 9441 -9435 -9438 40 9492 9516 -9522 -9525 40 + 9507 9522 -9516 -9519 40 9495 9507 -9501 -9504 40 + 9492 9501 -9495 -9498 40 9465 9477 -9471 -9474 40 + 9555 9564 -9561 -9567 42 9528 9540 -9534 -9537 40 + 9570 9582 -9576 -9579 40 9600 9612 -9606 -9609 40 + 9651 9663 -9657 -9660 40 9699 9711 -9705 -9708 40 + 9774 9786 -9780 -9783 40 9831 9843 -9837 -9840 40 + 9897 9909 -9903 -9906 40 9990 9999 -9996 -10002 42 + 9963 9975 -9969 -9972 40 10005 10017 -10011 -10014 40 + 10053 10065 -10059 -10062 40 10089 10101 -10095 -10098 40 + 10146 10158 -10152 -10155 40 10197 10209 -10203 -10206 40 + 10242 10254 -10248 -10251 40 10290 10302 -10296 -10299 40 + 10338 10347 -10344 -10350 42 10311 10323 -10317 -10320 40 + 10353 10365 -10359 -10362 40 10395 10407 -10401 -10404 40 + 10443 10455 -10449 -10452 40 10500 10521 -10527 -10530 40 + 10515 10527 -10521 -10524 40 10509 10521 -10515 -10518 40 + 10503 10515 -10509 -10512 40 10500 10509 -10503 -10506 40 + 10473 10485 -10479 -10482 40 10533 10545 -10539 -10542 40 + 10590 10602 -10596 -10599 40 10623 10635 -10629 -10632 40 + 10656 10668 -10662 -10665 40 10692 10704 -10698 -10701 40 + 10743 10755 -10749 -10752 40 10773 10785 -10779 -10782 40 + 10815 10827 -10821 -10824 40 10836 10848 -10842 -10845 40 + 10893 10905 -10899 -10902 40 10935 10947 -10941 -10944 40 + 10956 10968 -10962 -10965 40 11001 11013 -11007 -11010 40 + 11049 11061 -11055 -11058 40 11124 11136 -11142 -11145 40 + 11130 11142 -11136 -11139 42 11127 11136 -11130 -11133 40 + 11097 11109 -11103 -11106 40 11148 11160 -11154 -11157 40 + 11196 11208 -11202 -11205 40 11232 11244 -11238 -11241 40 + 11262 11274 -11268 -11271 40 11310 11334 -11340 -11343 40 + 11325 11340 -11334 -11337 40 11313 11325 -11319 -11322 40 + 11310 11319 -11313 -11316 40 11283 11295 -11289 -11292 40 + 11373 11385 -11391 -11394 40 11379 11391 -11385 -11388 42 + 11376 11385 -11379 -11382 40 11346 11358 -11352 -11355 40 + 11397 11409 -11403 -11406 40 11430 11442 -11436 -11439 40 + 11478 11490 -11484 -11487 40 11511 11523 -11517 -11520 40 + 11562 11574 -11568 -11571 40 11610 11619 -11616 -11622 42 + 11583 11595 -11589 -11592 40 11625 11637 -11631 -11634 40 + 11673 11685 -11679 -11682 40 11730 11742 -11736 -11739 40 + 11787 11799 -11793 -11796 40 11859 11871 -11877 -11880 40 + 11865 11877 -11871 -11874 42 11862 11871 -11865 -11868 40 + 11832 11844 -11838 -11841 40 11910 11922 -11928 -11931 40 + 11916 11928 -11922 -11925 42 11913 11922 -11916 -11919 40 + 11883 11895 -11889 -11892 40 11961 11973 -11979 -11982 40 + 11967 11979 -11973 -11976 42 11964 11973 -11967 -11970 40 + 11934 11946 -11940 -11943 40 12012 12024 -12030 -12033 40 + 12018 12030 -12024 -12027 42 12015 12024 -12018 -12021 40 + 11985 11997 -11991 -11994 40 12063 12075 -12081 -12084 40 + 12069 12081 -12075 -12078 42 12066 12075 -12069 -12072 40 + 12036 12048 -12042 -12045 40 12114 12126 -12132 -12135 40 + 12120 12132 -12126 -12129 42 12117 12126 -12120 -12123 40 + 12087 12099 -12093 -12096 40 12201 12207 -12204 -12312 40 + 12195 12306 -12198 -12309 42 12183 12189 -12186 -12303 40 + 12381 12393 -12396 -12426 40 12390 12396 -12393 -12423 40 + 12384 12390 -12387 -12420 40 12357 12369 -12372 -12414 40 + 12366 12372 -12369 -12411 40 12360 12366 -12363 -12408 40 +%FLAG DIHEDRALS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 54 51 57 63 2 51 57 63 72 4 + 51 57 -63 72 5 51 57 -63 72 6 + 51 57 -63 72 7 27 18 12 51 9 + 18 12 51 54 3 18 12 51 57 10 + 18 12 -51 57 11 18 12 -51 57 12 + 18 12 -51 57 7 18 27 36 39 8 + 12 18 27 36 9 12 51 57 63 2 + 0 12 18 27 9 0 12 51 54 3 + 0 12 51 57 3 75 72 78 84 2 + 72 78 84 90 1 72 78 -84 90 13 + 72 78 -84 90 12 72 78 -84 90 7 + 72 78 84 132 4 72 78 -84 132 5 + 72 78 -84 132 6 72 78 -84 132 7 + 63 72 78 84 2 57 63 72 75 3 + 57 63 72 78 16 57 63 -72 78 17 + 57 63 -72 78 18 57 63 -72 78 7 + 135 132 138 144 2 132 138 144 150 1 + 132 138 -144 150 13 132 138 -144 150 12 + 132 138 -144 150 7 132 138 144 189 4 + 132 138 -144 189 5 132 138 -144 189 6 + 132 138 -144 189 7 108 102 99 126 19 + 108 114 -120 126 19 102 99 126 120 19 + 102 108 -114 120 19 99 90 84 132 9 + 99 102 108 114 19 99 126 -120 114 19 + 90 84 132 135 3 90 84 132 138 10 + 90 84 -132 138 11 90 84 -132 138 12 + 90 84 -132 138 7 90 99 102 108 19 + 90 99 126 120 19 84 90 99 102 3 + 84 90 99 126 3 84 132 138 144 2 + 78 84 90 99 9 78 84 132 135 3 + 78 84 132 138 16 78 84 -132 138 17 + 78 84 -132 138 18 78 84 -132 138 7 + 192 189 195 201 2 189 195 201 207 1 + 189 195 -201 207 13 189 195 -201 207 12 + 189 195 -201 207 7 189 195 201 219 4 + 189 195 -201 219 5 189 195 -201 219 6 + 189 195 -201 219 7 159 150 144 189 9 + 150 144 189 192 3 150 144 189 195 10 + 150 144 -189 195 11 150 144 -189 195 12 + 150 144 -189 195 7 144 150 159 165 22 + 144 150 -159 165 23 144 150 -159 165 24 + 144 150 159 177 22 144 150 -159 177 23 + 144 150 -159 177 24 144 189 195 201 2 + 138 144 150 159 9 138 144 189 192 3 + 138 144 189 195 16 138 144 -189 195 17 + 138 144 -189 195 18 138 144 -189 195 7 + 222 219 225 231 2 219 225 231 240 4 + 219 225 -231 240 5 219 225 -231 240 6 + 219 225 -231 240 7 207 201 219 222 3 + 207 201 219 225 10 207 201 -219 225 11 + 207 201 -219 225 12 207 201 -219 225 7 + 201 219 225 231 2 195 201 219 222 3 + 195 201 219 225 16 195 201 -219 225 17 + 195 201 -219 225 18 195 201 -219 225 7 + 243 240 246 252 2 240 246 252 258 1 + 240 246 -252 258 13 240 246 -252 258 12 + 240 246 -252 258 7 240 246 252 306 4 + 240 246 -252 306 5 240 246 -252 306 6 + 240 246 -252 306 7 231 240 246 252 2 + 225 231 240 243 3 225 231 240 246 16 + 225 231 -240 246 17 225 231 -240 246 18 + 225 231 -240 246 7 309 306 312 318 2 + 306 312 318 324 1 306 312 -318 324 13 + 306 312 -318 324 12 306 312 -318 324 7 + 306 312 318 372 4 306 312 -318 372 5 + 306 312 -318 372 6 306 312 -318 372 7 + 267 258 252 306 9 267 276 285 294 9 + 258 252 306 309 3 258 252 306 312 10 + 258 252 -306 312 11 258 252 -306 312 12 + 258 252 -306 312 7 258 267 276 285 22 + 258 267 -276 285 23 258 267 -276 285 24 + 252 258 267 276 22 252 258 -267 276 23 + 252 258 -267 276 24 252 306 312 318 2 + 246 252 258 267 9 246 252 306 309 3 + 246 252 306 312 16 246 252 -306 312 17 + 246 252 -306 312 18 246 252 -306 312 7 + 375 372 378 384 2 372 378 384 390 1 + 372 378 -384 390 13 372 378 -384 390 12 + 372 378 -384 390 7 372 378 384 429 4 + 372 378 -384 429 5 372 378 -384 429 6 + 372 378 -384 429 7 333 324 318 372 9 + 333 342 351 360 9 324 318 372 375 3 + 324 318 372 378 10 324 318 -372 378 11 + 324 318 -372 378 12 324 318 -372 378 7 + 324 333 342 351 22 324 333 -342 351 23 + 324 333 -342 351 24 318 324 333 342 22 + 318 324 -333 342 23 318 324 -333 342 24 + 318 372 378 384 2 312 318 324 333 9 + 312 318 372 375 3 312 318 372 378 16 + 312 318 -372 378 17 312 318 -372 378 18 + 312 318 -372 378 7 432 429 435 441 2 + 429 435 441 447 1 429 435 -441 447 13 + 429 435 -441 447 12 429 435 -441 447 7 + 429 435 441 486 4 429 435 -441 486 5 + 429 435 -441 486 6 429 435 -441 486 7 + 408 390 384 429 9 396 390 384 429 9 + 396 390 408 417 22 396 390 -408 417 23 + 396 390 -408 417 24 390 384 429 432 3 + 390 384 429 435 10 390 384 -429 435 11 + 390 384 -429 435 12 390 384 -429 435 7 + 384 390 408 417 22 384 390 -408 417 23 + 384 390 -408 417 24 384 429 435 441 2 + 378 384 390 396 9 378 384 390 408 9 + 378 384 429 432 3 378 384 429 435 16 + 378 384 -429 435 17 378 384 -429 435 18 + 378 384 -429 435 7 489 486 492 498 2 + 486 492 498 504 1 486 492 -498 504 13 + 486 492 -498 504 12 486 492 -498 504 7 + 486 492 498 543 4 486 492 -498 543 5 + 486 492 -498 543 6 486 492 -498 543 7 + 456 447 441 486 9 447 441 486 489 3 + 447 441 486 492 10 447 441 -486 492 11 + 447 441 -486 492 12 447 441 -486 492 7 + 441 447 456 462 22 441 447 -456 462 23 + 441 447 -456 462 24 441 447 456 474 22 + 441 447 -456 474 23 441 447 -456 474 24 + 441 486 492 498 2 435 441 447 456 9 + 435 441 486 489 3 435 441 486 492 16 + 435 441 -486 492 17 435 441 -486 492 18 + 435 441 -486 492 7 546 543 549 555 2 + 543 549 555 561 1 543 549 -555 561 13 + 543 549 -555 561 12 543 549 -555 561 7 + 543 549 555 585 4 543 549 -555 585 5 + 543 549 -555 585 6 543 549 -555 585 7 + 522 504 498 543 9 510 504 498 543 9 + 510 504 522 531 22 510 504 -522 531 23 + 510 504 -522 531 24 504 498 543 546 3 + 504 498 543 549 10 504 498 -543 549 11 + 504 498 -543 549 12 504 498 -543 549 7 + 498 504 522 531 22 498 504 -522 531 23 + 498 504 -522 531 24 498 543 549 555 2 + 492 498 504 510 9 492 498 504 522 9 + 492 498 543 546 3 492 498 543 549 16 + 492 498 -543 549 17 492 498 -543 549 18 + 492 498 -543 549 7 588 585 591 597 2 + 585 591 597 606 4 585 591 -597 606 5 + 585 591 -597 606 6 585 591 -597 606 7 + 579 561 555 585 9 567 561 555 585 9 + 561 555 585 588 3 561 555 585 591 10 + 561 555 -585 591 11 561 555 -585 591 12 + 561 555 -585 591 7 555 585 591 597 2 + 549 555 561 567 9 549 555 561 579 9 + 549 555 585 588 3 549 555 585 591 16 + 549 555 -585 591 17 549 555 -585 591 18 + 549 555 -585 591 7 609 606 612 618 2 + 606 612 618 624 1 606 612 -618 624 13 + 606 612 -618 624 12 606 612 -618 624 7 + 606 612 618 663 4 606 612 -618 663 5 + 606 612 -618 663 6 606 612 -618 663 7 + 597 606 612 618 2 591 597 606 609 3 + 591 597 606 612 16 591 597 -606 612 17 + 591 597 -606 612 18 591 597 -606 612 7 + 666 663 669 675 2 663 669 675 681 1 + 663 669 -675 681 13 663 669 -675 681 12 + 663 669 -675 681 7 663 669 675 720 4 + 663 669 -675 720 5 663 669 -675 720 6 + 663 669 -675 720 7 633 624 618 663 9 + 624 618 663 666 3 624 618 663 669 10 + 624 618 -663 669 11 624 618 -663 669 12 + 624 618 -663 669 7 618 624 633 639 22 + 618 624 -633 639 23 618 624 -633 639 24 + 618 624 633 651 22 618 624 -633 651 23 + 618 624 -633 651 24 618 663 669 675 2 + 612 618 624 633 9 612 618 663 666 3 + 612 618 663 669 16 612 618 -663 669 17 + 612 618 -663 669 18 612 618 -663 669 7 + 723 720 726 732 2 720 726 732 738 1 + 720 726 -732 738 13 720 726 -732 738 12 + 720 726 -732 738 7 720 726 732 753 4 + 720 726 -732 753 5 720 726 -732 753 6 + 720 726 -732 753 7 690 681 675 720 9 + 681 675 720 723 3 681 675 720 726 10 + 681 675 -720 726 11 681 675 -720 726 12 + 681 675 -720 726 7 675 681 690 696 22 + 675 681 -690 696 23 675 681 -690 696 24 + 675 681 690 708 22 675 681 -690 708 23 + 675 681 -690 708 24 675 720 726 732 2 + 669 675 681 690 9 669 675 720 723 3 + 669 675 720 726 16 669 675 -720 726 17 + 669 675 -720 726 18 669 675 -720 726 7 + 756 753 759 765 2 753 759 765 771 1 + 753 759 -765 771 13 753 759 -765 771 12 + 753 759 -765 771 7 753 759 765 795 4 + 753 759 -765 795 5 753 759 -765 795 6 + 753 759 -765 795 7 747 738 732 753 9 + 738 732 753 756 3 738 732 753 759 10 + 738 732 -753 759 11 738 732 -753 759 12 + 738 732 -753 759 7 732 753 759 765 2 + 726 732 738 747 9 726 732 753 756 3 + 726 732 753 759 16 726 732 -753 759 17 + 726 732 -753 759 18 726 732 -753 759 7 + 798 795 801 807 2 795 801 807 813 1 + 795 801 -807 813 13 795 801 -807 813 12 + 795 801 -807 813 7 795 801 807 861 4 + 795 801 -807 861 5 795 801 -807 861 6 + 795 801 -807 861 7 780 771 765 795 9 + 771 765 795 798 3 771 765 795 801 10 + 771 765 -795 801 11 771 765 -795 801 12 + 771 765 -795 801 7 765 771 780 783 3 + 765 771 780 786 10 765 771 -780 786 11 + 765 771 -780 786 12 765 771 -780 786 7 + 765 795 801 807 2 759 765 771 780 9 + 759 765 795 798 3 759 765 795 801 16 + 759 765 -795 801 17 759 765 -795 801 18 + 759 765 -795 801 7 864 861 867 873 2 + 861 867 873 879 1 861 867 -873 879 13 + 861 867 -873 879 12 861 867 -873 879 7 + 861 867 873 894 4 861 867 -873 894 5 + 861 867 -873 894 6 861 867 -873 894 7 + 822 813 807 861 9 822 831 840 849 9 + 813 807 861 864 3 813 807 861 867 10 + 813 807 -861 867 11 813 807 -861 867 12 + 813 807 -861 867 7 813 822 831 840 22 + 813 822 -831 840 23 813 822 -831 840 24 + 807 813 822 831 22 807 813 -822 831 23 + 807 813 -822 831 24 807 861 867 873 2 + 801 807 813 822 9 801 807 861 864 3 + 801 807 861 867 16 801 807 -861 867 17 + 801 807 -861 867 18 801 807 -861 867 7 + 897 894 900 906 2 894 900 906 912 1 + 894 900 -906 912 13 894 900 -906 912 12 + 894 900 -906 912 7 894 900 906 951 4 + 894 900 -906 951 5 894 900 -906 951 6 + 894 900 -906 951 7 888 879 873 894 9 + 879 873 894 897 3 879 873 894 900 10 + 879 873 -894 900 11 879 873 -894 900 12 + 879 873 -894 900 7 873 894 900 906 2 + 867 873 879 888 9 867 873 894 897 3 + 867 873 894 900 16 867 873 -894 900 17 + 867 873 -894 900 18 867 873 -894 900 7 + 954 951 957 963 2 951 957 963 969 1 + 951 957 -963 969 13 951 957 -963 969 12 + 951 957 -963 969 7 951 957 963 981 4 + 951 957 -963 981 5 951 957 -963 981 6 + 951 957 -963 981 7 930 912 906 951 9 + 918 912 906 951 9 918 912 930 939 22 + 918 912 -930 939 23 918 912 -930 939 24 + 912 906 951 954 3 912 906 951 957 10 + 912 906 -951 957 11 912 906 -951 957 12 + 912 906 -951 957 7 906 912 930 939 22 + 906 912 -930 939 23 906 912 -930 939 24 + 906 951 957 963 2 900 906 912 918 9 + 900 906 912 930 9 900 906 951 954 3 + 900 906 951 957 16 900 906 -951 957 17 + 900 906 -951 957 18 900 906 -951 957 7 + 984 981 987 993 2 981 987 993 999 1 + 981 987 -993 999 13 981 987 -993 999 12 + 981 987 -993 999 7 981 987 993 1044 4 + 981 987 -993 1044 5 981 987 -993 1044 6 + 981 987 -993 1044 7 969 963 981 984 3 + 969 963 981 987 10 969 963 -981 987 11 + 969 963 -981 987 12 969 963 -981 987 7 + 963 981 987 993 2 957 963 981 984 3 + 957 963 981 987 16 957 963 -981 987 17 + 957 963 -981 987 18 957 963 -981 987 7 + 1047 1044 1050 1056 2 1044 1050 1056 1065 4 + 1044 1050 -1056 1065 5 1044 1050 -1056 1065 6 + 1044 1050 -1056 1065 7 1026 1023 1032 1038 19 + 1017 1011 1008 1038 19 1017 1023 -1032 1038 19 + 1011 1008 1038 1032 19 1011 1017 1023 1026 19 + 1011 1017 -1023 1032 19 1008 999 993 1044 9 + 1008 1011 1017 1023 19 1008 1038 -1032 1023 19 + 999 993 1044 1047 3 999 993 1044 1050 10 + 999 993 -1044 1050 11 999 993 -1044 1050 12 + 999 993 -1044 1050 7 999 1008 1011 1017 19 + 999 1008 1038 1032 19 993 999 1008 1011 3 + 993 999 1008 1038 3 993 1044 1050 1056 2 + 987 993 999 1008 9 987 993 1044 1047 3 + 987 993 1044 1050 16 987 993 -1044 1050 17 + 987 993 -1044 1050 18 987 993 -1044 1050 7 + 1068 1065 1071 1077 2 1065 1071 1077 1083 1 + 1065 1071 -1077 1083 13 1065 1071 -1077 1083 12 + 1065 1071 -1077 1083 7 1065 1071 1077 1122 4 + 1065 1071 -1077 1122 5 1065 1071 -1077 1122 6 + 1065 1071 -1077 1122 7 1056 1065 1071 1077 2 + 1050 1056 1065 1068 3 1050 1056 1065 1071 16 + 1050 1056 -1065 1071 17 1050 1056 -1065 1071 18 + 1050 1056 -1065 1071 7 1125 1122 1128 1134 2 + 1122 1128 1134 1140 1 1122 1128 -1134 1140 13 + 1122 1128 -1134 1140 12 1122 1128 -1134 1140 7 + 1122 1128 1134 1152 4 1122 1128 -1134 1152 5 + 1122 1128 -1134 1152 6 1122 1128 -1134 1152 7 + 1101 1083 1077 1122 9 1089 1083 1077 1122 9 + 1089 1083 1101 1110 22 1089 1083 -1101 1110 23 + 1089 1083 -1101 1110 24 1083 1077 1122 1125 3 + 1083 1077 1122 1128 10 1083 1077 -1122 1128 11 + 1083 1077 -1122 1128 12 1083 1077 -1122 1128 7 + 1077 1083 1101 1110 22 1077 1083 -1101 1110 23 + 1077 1083 -1101 1110 24 1077 1122 1128 1134 2 + 1071 1077 1083 1089 9 1071 1077 1083 1101 9 + 1071 1077 1122 1125 3 1071 1077 1122 1128 16 + 1071 1077 -1122 1128 17 1071 1077 -1122 1128 18 + 1071 1077 -1122 1128 7 1155 1152 1158 1164 2 + 1152 1158 1164 1170 1 1152 1158 -1164 1170 13 + 1152 1158 -1164 1170 12 1152 1158 -1164 1170 7 + 1152 1158 1164 1218 4 1152 1158 -1164 1218 5 + 1152 1158 -1164 1218 6 1152 1158 -1164 1218 7 + 1140 1134 1152 1155 3 1140 1134 1152 1158 10 + 1140 1134 -1152 1158 11 1140 1134 -1152 1158 12 + 1140 1134 -1152 1158 7 1134 1152 1158 1164 2 + 1128 1134 1152 1155 3 1128 1134 1152 1158 16 + 1128 1134 -1152 1158 17 1128 1134 -1152 1158 18 + 1128 1134 -1152 1158 7 1221 1218 1224 1230 2 + 1218 1224 1230 1236 1 1218 1224 -1230 1236 13 + 1218 1224 -1230 1236 12 1218 1224 -1230 1236 7 + 1218 1224 1230 1248 4 1218 1224 -1230 1248 5 + 1218 1224 -1230 1248 6 1218 1224 -1230 1248 7 + 1179 1170 1164 1218 9 1179 1188 1197 1206 9 + 1170 1164 1218 1221 3 1170 1164 1218 1224 10 + 1170 1164 -1218 1224 11 1170 1164 -1218 1224 12 + 1170 1164 -1218 1224 7 1170 1179 1188 1197 22 + 1170 1179 -1188 1197 23 1170 1179 -1188 1197 24 + 1164 1170 1179 1188 22 1164 1170 -1179 1188 23 + 1164 1170 -1179 1188 24 1164 1218 1224 1230 2 + 1158 1164 1170 1179 9 1158 1164 1218 1221 3 + 1158 1164 1218 1224 16 1158 1164 -1218 1224 17 + 1158 1164 -1218 1224 18 1158 1164 -1218 1224 7 + 1251 1248 1254 1260 2 1248 1254 1260 1266 1 + 1248 1254 -1260 1266 13 1248 1254 -1260 1266 12 + 1248 1254 -1260 1266 7 1248 1254 1260 1299 4 + 1248 1254 -1260 1299 5 1248 1254 -1260 1299 6 + 1248 1254 -1260 1299 7 1236 1230 1248 1251 3 + 1236 1230 1248 1254 10 1236 1230 -1248 1254 11 + 1236 1230 -1248 1254 12 1236 1230 -1248 1254 7 + 1230 1248 1254 1260 2 1224 1230 1248 1251 3 + 1224 1230 1248 1254 16 1224 1230 -1248 1254 17 + 1224 1230 -1248 1254 18 1224 1230 -1248 1254 7 + 1302 1299 1305 1311 2 1299 1305 1311 1317 1 + 1299 1305 -1311 1317 13 1299 1305 -1311 1317 12 + 1299 1305 -1311 1317 7 1299 1305 1311 1350 4 + 1299 1305 -1311 1350 5 1299 1305 -1311 1350 6 + 1299 1305 -1311 1350 7 1275 1266 1260 1299 9 + 1266 1260 1299 1302 3 1266 1260 1299 1305 10 + 1266 1260 -1299 1305 11 1266 1260 -1299 1305 12 + 1266 1260 -1299 1305 7 1266 1275 1284 1287 8 + 1260 1266 1275 1284 9 1260 1299 1305 1311 2 + 1254 1260 1266 1275 9 1254 1260 1299 1302 3 + 1254 1260 1299 1305 16 1254 1260 -1299 1305 17 + 1254 1260 -1299 1305 18 1254 1260 -1299 1305 7 + 1353 1350 1356 1362 2 1350 1356 1362 1368 1 + 1350 1356 -1362 1368 13 1350 1356 -1362 1368 12 + 1350 1356 -1362 1368 7 1350 1356 1362 1422 4 + 1350 1356 -1362 1422 5 1350 1356 -1362 1422 6 + 1350 1356 -1362 1422 7 1332 1329 -1326 1344 31 + 1329 1326 -1344 1338 32 1329 1332 -1338 1344 30 + 1326 1317 1311 1350 9 1326 1329 -1332 1338 33 + 1326 1344 -1338 1332 29 1317 1311 1350 1353 3 + 1317 1311 1350 1356 10 1317 1311 -1350 1356 11 + 1317 1311 -1350 1356 12 1317 1311 -1350 1356 7 + 1317 1326 1329 1332 31 1317 1326 1344 1338 32 + 1311 1317 1326 1329 3 1311 1317 1326 1344 3 + 1311 1350 1356 1362 2 1305 1311 1317 1326 9 + 1305 1311 1350 1353 3 1305 1311 1350 1356 16 + 1305 1311 -1350 1356 17 1305 1311 -1350 1356 18 + 1305 1311 -1350 1356 7 1425 1422 1428 1434 2 + 1422 1428 1434 1440 1 1422 1428 -1434 1440 13 + 1422 1428 -1434 1440 12 1422 1428 -1434 1440 7 + 1422 1428 1434 1467 4 1422 1428 -1434 1467 5 + 1422 1428 -1434 1467 6 1422 1428 -1434 1467 7 + 1386 1395 1401 1404 31 1386 1395 1401 1413 31 + 1377 1368 1362 1422 9 1377 1386 1395 1401 26 + 1368 1362 1422 1425 3 1368 1362 1422 1428 10 + 1368 1362 -1422 1428 11 1368 1362 -1422 1428 12 + 1368 1362 -1422 1428 7 1368 1377 1386 1395 9 + 1362 1368 1377 1386 22 1362 1368 -1377 1386 23 + 1362 1368 -1377 1386 24 1362 1422 1428 1434 2 + 1356 1362 1368 1377 9 1356 1362 1422 1425 3 + 1356 1362 1422 1428 16 1356 1362 -1422 1428 17 + 1356 1362 -1422 1428 18 1356 1362 -1422 1428 7 + 1470 1467 1473 1479 2 1467 1473 1479 1488 4 + 1467 1473 -1479 1488 5 1467 1473 -1479 1488 6 + 1467 1473 -1479 1488 7 1449 1440 1434 1467 9 + 1440 1434 1467 1470 3 1440 1434 1467 1473 10 + 1440 1434 -1467 1473 11 1440 1434 -1467 1473 12 + 1440 1434 -1467 1473 7 1440 1449 1458 1461 3 + 1440 1449 1458 1464 3 1434 1440 1449 1458 9 + 1434 1467 1473 1479 2 1428 1434 1440 1449 9 + 1428 1434 1467 1470 3 1428 1434 1467 1473 16 + 1428 1434 -1467 1473 17 1428 1434 -1467 1473 18 + 1428 1434 -1467 1473 7 1491 1488 1494 1500 2 + 1488 1494 1500 1506 1 1488 1494 -1500 1506 13 + 1488 1494 -1500 1506 12 1488 1494 -1500 1506 7 + 1488 1494 1500 1518 4 1488 1494 -1500 1518 5 + 1488 1494 -1500 1518 6 1488 1494 -1500 1518 7 + 1479 1488 1494 1500 2 1473 1479 1488 1491 3 + 1473 1479 1488 1494 16 1473 1479 -1488 1494 17 + 1473 1479 -1488 1494 18 1473 1479 -1488 1494 7 + 1521 1518 1524 1530 2 1518 1524 1530 1536 1 + 1518 1524 -1530 1536 13 1518 1524 -1530 1536 12 + 1518 1524 -1530 1536 7 1518 1524 1530 1563 4 + 1518 1524 -1530 1563 5 1518 1524 -1530 1563 6 + 1518 1524 -1530 1563 7 1506 1500 1518 1521 3 + 1506 1500 1518 1524 10 1506 1500 -1518 1524 11 + 1506 1500 -1518 1524 12 1506 1500 -1518 1524 7 + 1500 1518 1524 1530 2 1494 1500 1518 1521 3 + 1494 1500 1518 1524 16 1494 1500 -1518 1524 17 + 1494 1500 -1518 1524 18 1494 1500 -1518 1524 7 + 1566 1563 1569 1575 2 1563 1569 1575 1581 1 + 1563 1569 -1575 1581 13 1563 1569 -1575 1581 12 + 1563 1569 -1575 1581 7 1563 1569 1575 1620 4 + 1563 1569 -1575 1620 5 1563 1569 -1575 1620 6 + 1563 1569 -1575 1620 7 1545 1536 1530 1563 9 + 1536 1530 1563 1566 3 1536 1530 1563 1569 10 + 1536 1530 -1563 1569 11 1536 1530 -1563 1569 12 + 1536 1530 -1563 1569 7 1536 1545 1554 1557 3 + 1536 1545 1554 1560 3 1530 1536 1545 1554 9 + 1530 1563 1569 1575 2 1524 1530 1536 1545 9 + 1524 1530 1563 1566 3 1524 1530 1563 1569 16 + 1524 1530 -1563 1569 17 1524 1530 -1563 1569 18 + 1524 1530 -1563 1569 7 1623 1620 1626 1632 2 + 1620 1626 1632 1638 1 1620 1626 -1632 1638 13 + 1620 1626 -1632 1638 12 1620 1626 -1632 1638 7 + 1620 1626 1632 1650 4 1620 1626 -1632 1650 5 + 1620 1626 -1632 1650 6 1620 1626 -1632 1650 7 + 1590 1581 1575 1620 9 1581 1575 1620 1623 3 + 1581 1575 1620 1626 10 1581 1575 -1620 1626 11 + 1581 1575 -1620 1626 12 1581 1575 -1620 1626 7 + 1575 1581 1590 1596 22 1575 1581 -1590 1596 23 + 1575 1581 -1590 1596 24 1575 1581 1590 1608 22 + 1575 1581 -1590 1608 23 1575 1581 -1590 1608 24 + 1575 1620 1626 1632 2 1569 1575 1581 1590 9 + 1569 1575 1620 1623 3 1569 1575 1620 1626 16 + 1569 1575 -1620 1626 17 1569 1575 -1620 1626 18 + 1569 1575 -1620 1626 7 1653 1650 1656 1662 2 + 1650 1656 1662 1668 1 1650 1656 -1662 1668 13 + 1650 1656 -1662 1668 12 1650 1656 -1662 1668 7 + 1650 1656 1662 1710 4 1650 1656 -1662 1710 5 + 1650 1656 -1662 1710 6 1650 1656 -1662 1710 7 + 1638 1632 1650 1653 3 1638 1632 1650 1656 10 + 1638 1632 -1650 1656 11 1638 1632 -1650 1656 12 + 1638 1632 -1650 1656 7 1632 1650 1656 1662 2 + 1626 1632 1650 1653 3 1626 1632 1650 1656 16 + 1626 1632 -1650 1656 17 1626 1632 -1650 1656 18 + 1626 1632 -1650 1656 7 1713 1710 1716 1722 2 + 1710 1716 1722 1728 1 1710 1716 -1722 1728 13 + 1710 1716 -1722 1728 12 1710 1716 -1722 1728 7 + 1710 1716 1722 1752 4 1710 1716 -1722 1752 5 + 1710 1716 -1722 1752 6 1710 1716 -1722 1752 7 + 1686 1680 1677 1704 19 1686 1692 -1698 1704 19 + 1680 1677 1704 1698 19 1680 1686 -1692 1698 19 + 1677 1668 1662 1710 9 1677 1680 1686 1692 19 + 1677 1704 -1698 1692 19 1668 1662 1710 1713 3 + 1668 1662 1710 1716 10 1668 1662 -1710 1716 11 + 1668 1662 -1710 1716 12 1668 1662 -1710 1716 7 + 1668 1677 1680 1686 19 1668 1677 1704 1698 19 + 1662 1668 1677 1680 3 1662 1668 1677 1704 3 + 1662 1710 1716 1722 2 1656 1662 1668 1677 9 + 1656 1662 1710 1713 3 1656 1662 1710 1716 16 + 1656 1662 -1710 1716 17 1656 1662 -1710 1716 18 + 1656 1662 -1710 1716 7 1755 1752 1758 1764 2 + 1752 1758 1764 1770 1 1752 1758 -1764 1770 13 + 1752 1758 -1764 1770 12 1752 1758 -1764 1770 7 + 1752 1758 1764 1815 4 1752 1758 -1764 1815 5 + 1752 1758 -1764 1815 6 1752 1758 -1764 1815 7 + 1746 1728 1722 1752 9 1734 1728 1722 1752 9 + 1728 1722 1752 1755 3 1728 1722 1752 1758 10 + 1728 1722 -1752 1758 11 1728 1722 -1752 1758 12 + 1728 1722 -1752 1758 7 1722 1752 1758 1764 2 + 1716 1722 1728 1734 9 1716 1722 1728 1746 9 + 1716 1722 1752 1755 3 1716 1722 1752 1758 16 + 1716 1722 -1752 1758 17 1716 1722 -1752 1758 18 + 1716 1722 -1752 1758 7 1818 1815 1821 1827 2 + 1815 1821 1827 1833 1 1815 1821 -1827 1833 13 + 1815 1821 -1827 1833 12 1815 1821 -1827 1833 7 + 1815 1821 1827 1863 4 1815 1821 -1827 1863 5 + 1815 1821 -1827 1863 6 1815 1821 -1827 1863 7 + 1797 1794 1803 1809 19 1788 1782 1779 1809 19 + 1788 1794 -1803 1809 19 1782 1779 1809 1803 19 + 1782 1788 1794 1797 19 1782 1788 -1794 1803 19 + 1779 1770 1764 1815 9 1779 1782 1788 1794 19 + 1779 1809 -1803 1794 19 1770 1764 1815 1818 3 + 1770 1764 1815 1821 10 1770 1764 -1815 1821 11 + 1770 1764 -1815 1821 12 1770 1764 -1815 1821 7 + 1770 1779 1782 1788 19 1770 1779 1809 1803 19 + 1764 1770 1779 1782 3 1764 1770 1779 1809 3 + 1764 1815 1821 1827 2 1758 1764 1770 1779 9 + 1758 1764 1815 1818 3 1758 1764 1815 1821 16 + 1758 1764 -1815 1821 17 1758 1764 -1815 1821 18 + 1758 1764 -1815 1821 7 1866 1863 1869 1875 2 + 1863 1869 1875 1884 4 1863 1869 -1875 1884 5 + 1863 1869 -1875 1884 6 1863 1869 -1875 1884 7 + 1851 1833 1827 1863 9 1839 1833 1827 1863 9 + 1833 1827 1863 1866 3 1833 1827 1863 1869 10 + 1833 1827 -1863 1869 11 1833 1827 -1863 1869 12 + 1833 1827 -1863 1869 7 1827 1863 1869 1875 2 + 1821 1827 1833 1839 9 1821 1827 1833 1851 9 + 1821 1827 1863 1866 3 1821 1827 1863 1869 16 + 1821 1827 -1863 1869 17 1821 1827 -1863 1869 18 + 1821 1827 -1863 1869 7 1887 1884 1890 1896 2 + 1884 1890 1896 1902 1 1884 1890 -1896 1902 13 + 1884 1890 -1896 1902 12 1884 1890 -1896 1902 7 + 1884 1890 1896 1935 4 1884 1890 -1896 1935 5 + 1884 1890 -1896 1935 6 1884 1890 -1896 1935 7 + 1875 1884 1890 1896 2 1869 1875 1884 1887 3 + 1869 1875 1884 1890 16 1869 1875 -1884 1890 17 + 1869 1875 -1884 1890 18 1869 1875 -1884 1890 7 + 1938 1935 1941 1947 2 1935 1941 1947 1953 1 + 1935 1941 -1947 1953 13 1935 1941 -1947 1953 12 + 1935 1941 -1947 1953 7 1935 1941 1947 1995 4 + 1935 1941 -1947 1995 5 1935 1941 -1947 1995 6 + 1935 1941 -1947 1995 7 1911 1902 1896 1935 9 + 1902 1896 1935 1938 3 1902 1896 1935 1941 10 + 1902 1896 -1935 1941 11 1902 1896 -1935 1941 12 + 1902 1896 -1935 1941 7 1902 1911 1920 1923 3 + 1902 1911 1920 1926 10 1902 1911 -1920 1926 11 + 1902 1911 -1920 1926 12 1902 1911 -1920 1926 7 + 1896 1902 1911 1920 9 1896 1935 1941 1947 2 + 1890 1896 1902 1911 9 1890 1896 1935 1938 3 + 1890 1896 1935 1941 16 1890 1896 -1935 1941 17 + 1890 1896 -1935 1941 18 1890 1896 -1935 1941 7 + 1998 1995 2001 2007 2 1995 2001 2007 2013 1 + 1995 2001 -2007 2013 13 1995 2001 -2007 2013 12 + 1995 2001 -2007 2013 7 1995 2001 2007 2061 4 + 1995 2001 -2007 2061 5 1995 2001 -2007 2061 6 + 1995 2001 -2007 2061 7 1971 1965 1962 1989 19 + 1971 1977 -1983 1989 19 1965 1962 1989 1983 19 + 1965 1971 -1977 1983 19 1962 1953 1947 1995 9 + 1962 1965 1971 1977 19 1962 1989 -1983 1977 19 + 1953 1947 1995 1998 3 1953 1947 1995 2001 10 + 1953 1947 -1995 2001 11 1953 1947 -1995 2001 12 + 1953 1947 -1995 2001 7 1953 1962 1965 1971 19 + 1953 1962 1989 1983 19 1947 1953 1962 1965 3 + 1947 1953 1962 1989 3 1947 1995 2001 2007 2 + 1941 1947 1953 1962 9 1941 1947 1995 1998 3 + 1941 1947 1995 2001 16 1941 1947 -1995 2001 17 + 1941 1947 -1995 2001 18 1941 1947 -1995 2001 7 + 2064 2061 2067 2073 2 2061 2067 2073 2079 1 + 2061 2067 -2073 2079 13 2061 2067 -2073 2079 12 + 2061 2067 -2073 2079 7 2061 2067 2073 2097 4 + 2061 2067 -2073 2097 5 2061 2067 -2073 2097 6 + 2061 2067 -2073 2097 7 2022 2013 2007 2061 9 + 2022 2031 2040 2049 9 2013 2007 2061 2064 3 + 2013 2007 2061 2067 10 2013 2007 -2061 2067 11 + 2013 2007 -2061 2067 12 2013 2007 -2061 2067 7 + 2013 2022 2031 2040 22 2013 2022 -2031 2040 23 + 2013 2022 -2031 2040 24 2007 2013 2022 2031 22 + 2007 2013 -2022 2031 23 2007 2013 -2022 2031 24 + 2007 2061 2067 2073 2 2001 2007 2013 2022 9 + 2001 2007 2061 2064 3 2001 2007 2061 2067 16 + 2001 2007 -2061 2067 17 2001 2007 -2061 2067 18 + 2001 2007 -2061 2067 7 2100 2097 2103 2109 2 + 2097 2103 2109 2115 1 2097 2103 -2109 2115 13 + 2097 2103 -2109 2115 12 2097 2103 -2109 2115 7 + 2097 2103 2109 2169 4 2097 2103 -2109 2169 5 + 2097 2103 -2109 2169 6 2097 2103 -2109 2169 7 + 2088 2079 2073 2097 9 2079 2073 2097 2100 3 + 2079 2073 2097 2103 10 2079 2073 -2097 2103 11 + 2079 2073 -2097 2103 12 2079 2073 -2097 2103 7 + 2073 2079 2088 2091 3 2073 2079 2088 2094 3 + 2073 2097 2103 2109 2 2067 2073 2079 2088 9 + 2067 2073 2097 2100 3 2067 2073 2097 2103 16 + 2067 2073 -2097 2103 17 2067 2073 -2097 2103 18 + 2067 2073 -2097 2103 7 2172 2169 2175 2181 2 + 2169 2175 2181 2187 1 2169 2175 -2181 2187 13 + 2169 2175 -2181 2187 12 2169 2175 -2181 2187 7 + 2169 2175 2181 2217 4 2169 2175 -2181 2217 5 + 2169 2175 -2181 2217 6 2169 2175 -2181 2217 7 + 2133 2142 2148 2151 31 2133 2142 2148 2160 31 + 2124 2115 2109 2169 9 2124 2133 2142 2148 26 + 2115 2109 2169 2172 3 2115 2109 2169 2175 10 + 2115 2109 -2169 2175 11 2115 2109 -2169 2175 12 + 2115 2109 -2169 2175 7 2115 2124 2133 2142 9 + 2109 2115 2124 2133 22 2109 2115 -2124 2133 23 + 2109 2115 -2124 2133 24 2109 2169 2175 2181 2 + 2103 2109 2115 2124 9 2103 2109 2169 2172 3 + 2103 2109 2169 2175 16 2103 2109 -2169 2175 17 + 2103 2109 -2169 2175 18 2103 2109 -2169 2175 7 + 2220 2217 2223 2229 2 2217 2223 2229 2235 1 + 2217 2223 -2229 2235 13 2217 2223 -2229 2235 12 + 2217 2223 -2229 2235 7 2217 2223 2229 2262 4 + 2217 2223 -2229 2262 5 2217 2223 -2229 2262 6 + 2217 2223 -2229 2262 7 2205 2187 2181 2217 9 + 2193 2187 2181 2217 9 2187 2181 2217 2220 3 + 2187 2181 2217 2223 10 2187 2181 -2217 2223 11 + 2187 2181 -2217 2223 12 2187 2181 -2217 2223 7 + 2181 2217 2223 2229 2 2175 2181 2187 2193 9 + 2175 2181 2187 2205 9 2175 2181 2217 2220 3 + 2175 2181 2217 2223 16 2175 2181 -2217 2223 17 + 2175 2181 -2217 2223 18 2175 2181 -2217 2223 7 + 2265 2262 2268 2274 2 2262 2268 2274 2280 1 + 2262 2268 -2274 2280 13 2262 2268 -2274 2280 12 + 2262 2268 -2274 2280 7 2262 2268 2274 2328 4 + 2262 2268 -2274 2328 5 2262 2268 -2274 2328 6 + 2262 2268 -2274 2328 7 2244 2235 2229 2262 9 + 2235 2229 2262 2265 3 2235 2229 2262 2268 10 + 2235 2229 -2262 2268 11 2235 2229 -2262 2268 12 + 2235 2229 -2262 2268 7 2235 2244 2253 2256 3 + 2235 2244 2253 2259 3 2229 2235 2244 2253 9 + 2229 2262 2268 2274 2 2223 2229 2235 2244 9 + 2223 2229 2262 2265 3 2223 2229 2262 2268 16 + 2223 2229 -2262 2268 17 2223 2229 -2262 2268 18 + 2223 2229 -2262 2268 7 2331 2328 2334 2340 2 + 2328 2334 2340 2346 1 2328 2334 -2340 2346 13 + 2328 2334 -2340 2346 12 2328 2334 -2340 2346 7 + 2328 2334 2340 2385 4 2328 2334 -2340 2385 5 + 2328 2334 -2340 2385 6 2328 2334 -2340 2385 7 + 2289 2280 2274 2328 9 2289 2298 2307 2316 9 + 2280 2274 2328 2331 3 2280 2274 2328 2334 10 + 2280 2274 -2328 2334 11 2280 2274 -2328 2334 12 + 2280 2274 -2328 2334 7 2280 2289 2298 2307 22 + 2280 2289 -2298 2307 23 2280 2289 -2298 2307 24 + 2274 2280 2289 2298 22 2274 2280 -2289 2298 23 + 2274 2280 -2289 2298 24 2274 2328 2334 2340 2 + 2268 2274 2280 2289 9 2268 2274 2328 2331 3 + 2268 2274 2328 2334 16 2268 2274 -2328 2334 17 + 2268 2274 -2328 2334 18 2268 2274 -2328 2334 7 + 2388 2385 2391 2397 2 2385 2391 2397 2403 1 + 2385 2391 -2397 2403 13 2385 2391 -2397 2403 12 + 2385 2391 -2397 2403 7 2385 2391 2397 2418 4 + 2385 2391 -2397 2418 5 2385 2391 -2397 2418 6 + 2385 2391 -2397 2418 7 2355 2346 2340 2385 9 + 2346 2340 2385 2388 3 2346 2340 2385 2391 10 + 2346 2340 -2385 2391 11 2346 2340 -2385 2391 12 + 2346 2340 -2385 2391 7 2340 2346 2355 2361 22 + 2340 2346 -2355 2361 23 2340 2346 -2355 2361 24 + 2340 2346 2355 2373 22 2340 2346 -2355 2373 23 + 2340 2346 -2355 2373 24 2340 2385 2391 2397 2 + 2334 2340 2346 2355 9 2334 2340 2385 2388 3 + 2334 2340 2385 2391 16 2334 2340 -2385 2391 17 + 2334 2340 -2385 2391 18 2334 2340 -2385 2391 7 + 2421 2418 2424 2430 2 2418 2424 2430 2436 1 + 2418 2424 -2430 2436 13 2418 2424 -2430 2436 12 + 2418 2424 -2430 2436 7 2418 2424 2430 2448 4 + 2418 2424 -2430 2448 5 2418 2424 -2430 2448 6 + 2418 2424 -2430 2448 7 2412 2403 2397 2418 9 + 2403 2397 2418 2421 3 2403 2397 2418 2424 10 + 2403 2397 -2418 2424 11 2403 2397 -2418 2424 12 + 2403 2397 -2418 2424 7 2397 2418 2424 2430 2 + 2391 2397 2403 2412 9 2391 2397 2418 2421 3 + 2391 2397 2418 2424 16 2391 2397 -2418 2424 17 + 2391 2397 -2418 2424 18 2391 2397 -2418 2424 7 + 2451 2448 2454 2460 2 2448 2454 2460 2466 1 + 2448 2454 -2460 2466 13 2448 2454 -2460 2466 12 + 2448 2454 -2460 2466 7 2448 2454 2460 2493 4 + 2448 2454 -2460 2493 5 2448 2454 -2460 2493 6 + 2448 2454 -2460 2493 7 2436 2430 2448 2451 3 + 2436 2430 2448 2454 10 2436 2430 -2448 2454 11 + 2436 2430 -2448 2454 12 2436 2430 -2448 2454 7 + 2430 2448 2454 2460 2 2424 2430 2448 2451 3 + 2424 2430 2448 2454 16 2424 2430 -2448 2454 17 + 2424 2430 -2448 2454 18 2424 2430 -2448 2454 7 + 2496 2493 2499 2505 2 2493 2499 2505 2511 1 + 2493 2499 -2505 2511 13 2493 2499 -2505 2511 12 + 2493 2499 -2505 2511 7 2493 2499 2505 2553 4 + 2493 2499 -2505 2553 5 2493 2499 -2505 2553 6 + 2493 2499 -2505 2553 7 2475 2466 2460 2493 9 + 2466 2460 2493 2496 3 2466 2460 2493 2499 10 + 2466 2460 -2493 2499 11 2466 2460 -2493 2499 12 + 2466 2460 -2493 2499 7 2466 2475 2484 2487 3 + 2466 2475 2484 2490 3 2460 2466 2475 2484 9 + 2460 2493 2499 2505 2 2454 2460 2466 2475 9 + 2454 2460 2493 2496 3 2454 2460 2493 2499 16 + 2454 2460 -2493 2499 17 2454 2460 -2493 2499 18 + 2454 2460 -2493 2499 7 2556 2553 2559 2565 2 + 2553 2559 2565 2571 1 2553 2559 -2565 2571 13 + 2553 2559 -2565 2571 12 2553 2559 -2565 2571 7 + 2553 2559 2565 2595 4 2553 2559 -2565 2595 5 + 2553 2559 -2565 2595 6 2553 2559 -2565 2595 7 + 2529 2523 2520 2547 19 2529 2535 -2541 2547 19 + 2523 2520 2547 2541 19 2523 2529 -2535 2541 19 + 2520 2511 2505 2553 9 2520 2523 2529 2535 19 + 2520 2547 -2541 2535 19 2511 2505 2553 2556 3 + 2511 2505 2553 2559 10 2511 2505 -2553 2559 11 + 2511 2505 -2553 2559 12 2511 2505 -2553 2559 7 + 2511 2520 2523 2529 19 2511 2520 2547 2541 19 + 2505 2511 2520 2523 3 2505 2511 2520 2547 3 + 2505 2553 2559 2565 2 2499 2505 2511 2520 9 + 2499 2505 2553 2556 3 2499 2505 2553 2559 16 + 2499 2505 -2553 2559 17 2499 2505 -2553 2559 18 + 2499 2505 -2553 2559 7 2598 2595 2601 2604 2 + 2598 2595 2601 2631 2 2595 2601 2604 2613 1 + 2595 2601 -2604 2613 13 2595 2601 -2604 2613 12 + 2595 2601 -2604 2613 7 2595 2601 2631 2622 1 + 2595 2601 -2631 2622 13 2595 2601 -2631 2622 12 + 2595 2601 -2631 2622 7 2595 2601 2631 2637 4 + 2595 2601 -2631 2637 5 2595 2601 -2631 2637 6 + 2595 2601 -2631 2637 7 2580 2571 2565 2595 9 + 2571 2565 2595 2598 3 2571 2565 2595 2601 10 + 2571 2565 -2595 2601 11 2571 2565 -2595 2601 12 + 2571 2565 -2595 2601 7 2565 2571 2580 2583 3 + 2565 2571 2580 2586 10 2565 2571 -2580 2586 11 + 2565 2571 -2580 2586 12 2565 2571 -2580 2586 7 + 2565 2595 2601 2604 2 2565 2595 2601 2631 2 + 2559 2565 2571 2580 9 2559 2565 2595 2598 3 + 2559 2565 2595 2601 16 2559 2565 -2595 2601 17 + 2559 2565 -2595 2601 18 2559 2565 -2595 2601 7 + 2640 2637 2643 2649 2 2637 2643 2649 2655 1 + 2637 2643 -2649 2655 13 2637 2643 -2649 2655 12 + 2637 2643 -2649 2655 7 2637 2643 2649 2667 4 + 2637 2643 -2649 2667 5 2637 2643 -2649 2667 6 + 2637 2643 -2649 2667 7 2631 2637 2643 2649 2 + 2622 2631 2637 2640 3 2622 2631 2637 2643 10 + 2622 2631 -2637 2643 11 2622 2631 -2637 2643 12 + 2622 2631 -2637 2643 7 2613 2604 -2601 2631 3 + 2613 2622 2631 2637 9 2604 2601 -2631 2622 3 + 2604 2601 2631 2637 3 2604 2613 -2622 2631 22 + 2604 2613 -2622 2631 23 2604 2613 -2622 2631 24 + 2601 2604 -2613 2622 9 2601 2631 -2622 2613 9 + 2601 2631 2637 2640 3 2601 2631 2637 2643 16 + 2601 2631 -2637 2643 17 2601 2631 -2637 2643 18 + 2601 2631 -2637 2643 7 2670 2667 2673 2679 2 + 2667 2673 2679 2685 1 2667 2673 -2679 2685 13 + 2667 2673 -2679 2685 12 2667 2673 -2679 2685 7 + 2667 2673 2679 2697 4 2667 2673 -2679 2697 5 + 2667 2673 -2679 2697 6 2667 2673 -2679 2697 7 + 2655 2649 2667 2670 3 2655 2649 2667 2673 10 + 2655 2649 -2667 2673 11 2655 2649 -2667 2673 12 + 2655 2649 -2667 2673 7 2649 2667 2673 2679 2 + 2643 2649 2667 2670 3 2643 2649 2667 2673 16 + 2643 2649 -2667 2673 17 2643 2649 -2667 2673 18 + 2643 2649 -2667 2673 7 2700 2697 2703 2709 2 + 2697 2703 2709 2715 1 2697 2703 -2709 2715 13 + 2697 2703 -2709 2715 12 2697 2703 -2709 2715 7 + 2697 2703 2709 2745 4 2697 2703 -2709 2745 5 + 2697 2703 -2709 2745 6 2697 2703 -2709 2745 7 + 2685 2679 2697 2700 3 2685 2679 2697 2703 10 + 2685 2679 -2697 2703 11 2685 2679 -2697 2703 12 + 2685 2679 -2697 2703 7 2679 2697 2703 2709 2 + 2673 2679 2697 2700 3 2673 2679 2697 2703 16 + 2673 2679 -2697 2703 17 2673 2679 -2697 2703 18 + 2673 2679 -2697 2703 7 2748 2745 2751 2757 2 + 2745 2751 2757 2763 1 2745 2751 -2757 2763 13 + 2745 2751 -2757 2763 12 2745 2751 -2757 2763 7 + 2745 2751 2757 2802 4 2745 2751 -2757 2802 5 + 2745 2751 -2757 2802 6 2745 2751 -2757 2802 7 + 2733 2715 2709 2745 9 2721 2715 2709 2745 9 + 2715 2709 2745 2748 3 2715 2709 2745 2751 10 + 2715 2709 -2745 2751 11 2715 2709 -2745 2751 12 + 2715 2709 -2745 2751 7 2709 2745 2751 2757 2 + 2703 2709 2715 2721 9 2703 2709 2715 2733 9 + 2703 2709 2745 2748 3 2703 2709 2745 2751 16 + 2703 2709 -2745 2751 17 2703 2709 -2745 2751 18 + 2703 2709 -2745 2751 7 2805 2802 2808 2811 2 + 2805 2802 2808 2838 2 2802 2808 2811 2820 1 + 2802 2808 -2811 2820 13 2802 2808 -2811 2820 12 + 2802 2808 -2811 2820 7 2802 2808 2838 2829 1 + 2802 2808 -2838 2829 13 2802 2808 -2838 2829 12 + 2802 2808 -2838 2829 7 2802 2808 2838 2844 4 + 2802 2808 -2838 2844 5 2802 2808 -2838 2844 6 + 2802 2808 -2838 2844 7 2772 2763 2757 2802 9 + 2763 2757 2802 2805 3 2763 2757 2802 2808 10 + 2763 2757 -2802 2808 11 2763 2757 -2802 2808 12 + 2763 2757 -2802 2808 7 2757 2763 2772 2778 22 + 2757 2763 -2772 2778 23 2757 2763 -2772 2778 24 + 2757 2763 2772 2790 22 2757 2763 -2772 2790 23 + 2757 2763 -2772 2790 24 2757 2802 2808 2811 2 + 2757 2802 2808 2838 2 2751 2757 2763 2772 9 + 2751 2757 2802 2805 3 2751 2757 2802 2808 16 + 2751 2757 -2802 2808 17 2751 2757 -2802 2808 18 + 2751 2757 -2802 2808 7 2847 2844 2850 2856 2 + 2844 2850 2856 2862 1 2844 2850 -2856 2862 13 + 2844 2850 -2856 2862 12 2844 2850 -2856 2862 7 + 2844 2850 2856 2877 4 2844 2850 -2856 2877 5 + 2844 2850 -2856 2877 6 2844 2850 -2856 2877 7 + 2838 2844 2850 2856 2 2829 2838 2844 2847 3 + 2829 2838 2844 2850 10 2829 2838 -2844 2850 11 + 2829 2838 -2844 2850 12 2829 2838 -2844 2850 7 + 2820 2811 -2808 2838 3 2820 2829 2838 2844 9 + 2811 2808 -2838 2829 3 2811 2808 2838 2844 3 + 2811 2820 -2829 2838 22 2811 2820 -2829 2838 23 + 2811 2820 -2829 2838 24 2808 2811 -2820 2829 9 + 2808 2838 -2829 2820 9 2808 2838 2844 2847 3 + 2808 2838 2844 2850 16 2808 2838 -2844 2850 17 + 2808 2838 -2844 2850 18 2808 2838 -2844 2850 7 + 2880 2877 2883 2889 2 2877 2883 2889 2895 1 + 2877 2883 -2889 2895 13 2877 2883 -2889 2895 12 + 2877 2883 -2889 2895 7 2877 2883 2889 2913 4 + 2877 2883 -2889 2913 5 2877 2883 -2889 2913 6 + 2877 2883 -2889 2913 7 2871 2862 2856 2877 9 + 2862 2856 2877 2880 3 2862 2856 2877 2883 10 + 2862 2856 -2877 2883 11 2862 2856 -2877 2883 12 + 2862 2856 -2877 2883 7 2856 2877 2883 2889 2 + 2850 2856 2862 2871 9 2850 2856 2877 2880 3 + 2850 2856 2877 2883 16 2850 2856 -2877 2883 17 + 2850 2856 -2877 2883 18 2850 2856 -2877 2883 7 + 2916 2913 2919 2925 2 2913 2919 2925 2931 1 + 2913 2919 -2925 2931 13 2913 2919 -2925 2931 12 + 2913 2919 -2925 2931 7 2913 2919 2925 2961 4 + 2913 2919 -2925 2961 5 2913 2919 -2925 2961 6 + 2913 2919 -2925 2961 7 2904 2895 2889 2913 9 + 2895 2889 2913 2916 3 2895 2889 2913 2919 10 + 2895 2889 -2913 2919 11 2895 2889 -2913 2919 12 + 2895 2889 -2913 2919 7 2889 2895 2904 2907 3 + 2889 2895 2904 2910 3 2889 2913 2919 2925 2 + 2883 2889 2895 2904 9 2883 2889 2913 2916 3 + 2883 2889 2913 2919 16 2883 2889 -2913 2919 17 + 2883 2889 -2913 2919 18 2883 2889 -2913 2919 7 + 2964 2961 2967 2973 2 2961 2967 2973 2979 1 + 2961 2967 -2973 2979 13 2961 2967 -2973 2979 12 + 2961 2967 -2973 2979 7 2961 2967 2973 3018 4 + 2961 2967 -2973 3018 5 2961 2967 -2973 3018 6 + 2961 2967 -2973 3018 7 2949 2931 2925 2961 9 + 2937 2931 2925 2961 9 2931 2925 2961 2964 3 + 2931 2925 2961 2967 10 2931 2925 -2961 2967 11 + 2931 2925 -2961 2967 12 2931 2925 -2961 2967 7 + 2925 2961 2967 2973 2 2919 2925 2931 2937 9 + 2919 2925 2931 2949 9 2919 2925 2961 2964 3 + 2919 2925 2961 2967 16 2919 2925 -2961 2967 17 + 2919 2925 -2961 2967 18 2919 2925 -2961 2967 7 + 3021 3018 3024 3030 2 3018 3024 3030 3036 1 + 3018 3024 -3030 3036 13 3018 3024 -3030 3036 12 + 3018 3024 -3030 3036 7 3018 3024 3030 3051 4 + 3018 3024 -3030 3051 5 3018 3024 -3030 3051 6 + 3018 3024 -3030 3051 7 2997 2979 2973 3018 9 + 2985 2979 2973 3018 9 2985 2979 2997 3006 22 + 2985 2979 -2997 3006 23 2985 2979 -2997 3006 24 + 2979 2973 3018 3021 3 2979 2973 3018 3024 10 + 2979 2973 -3018 3024 11 2979 2973 -3018 3024 12 + 2979 2973 -3018 3024 7 2973 2979 2997 3006 22 + 2973 2979 -2997 3006 23 2973 2979 -2997 3006 24 + 2973 3018 3024 3030 2 2967 2973 2979 2985 9 + 2967 2973 2979 2997 9 2967 2973 3018 3021 3 + 2967 2973 3018 3024 16 2967 2973 -3018 3024 17 + 2967 2973 -3018 3024 18 2967 2973 -3018 3024 7 + 3054 3051 3057 3063 2 3051 3057 3063 3069 1 + 3051 3057 -3063 3069 13 3051 3057 -3063 3069 12 + 3051 3057 -3063 3069 7 3051 3057 3063 3087 4 + 3051 3057 -3063 3087 5 3051 3057 -3063 3087 6 + 3051 3057 -3063 3087 7 3045 3036 3030 3051 9 + 3036 3030 3051 3054 3 3036 3030 3051 3057 10 + 3036 3030 -3051 3057 11 3036 3030 -3051 3057 12 + 3036 3030 -3051 3057 7 3030 3051 3057 3063 2 + 3024 3030 3036 3045 9 3024 3030 3051 3054 3 + 3024 3030 3051 3057 16 3024 3030 -3051 3057 17 + 3024 3030 -3051 3057 18 3024 3030 -3051 3057 7 + 3090 3087 3093 3099 2 3087 3093 3099 3105 1 + 3087 3093 -3099 3105 13 3087 3093 -3099 3105 12 + 3087 3093 -3099 3105 7 3087 3093 3099 3138 4 + 3087 3093 -3099 3138 5 3087 3093 -3099 3138 6 + 3087 3093 -3099 3138 7 3078 3069 3063 3087 9 + 3069 3063 3087 3090 3 3069 3063 3087 3093 10 + 3069 3063 -3087 3093 11 3069 3063 -3087 3093 12 + 3069 3063 -3087 3093 7 3063 3069 3078 3081 3 + 3063 3069 3078 3084 3 3063 3087 3093 3099 2 + 3057 3063 3069 3078 9 3057 3063 3087 3090 3 + 3057 3063 3087 3093 16 3057 3063 -3087 3093 17 + 3057 3063 -3087 3093 18 3057 3063 -3087 3093 7 + 3141 3138 3144 3150 2 3138 3144 3150 3156 1 + 3138 3144 -3150 3156 13 3138 3144 -3150 3156 12 + 3138 3144 -3150 3156 7 3138 3144 3150 3183 4 + 3138 3144 -3150 3183 5 3138 3144 -3150 3183 6 + 3138 3144 -3150 3183 7 3114 3105 3099 3138 9 + 3105 3099 3138 3141 3 3105 3099 3138 3144 10 + 3105 3099 -3138 3144 11 3105 3099 -3138 3144 12 + 3105 3099 -3138 3144 7 3105 3114 3123 3126 3 + 3105 3114 3123 3129 10 3105 3114 -3123 3129 11 + 3105 3114 -3123 3129 12 3105 3114 -3123 3129 7 + 3099 3105 3114 3123 9 3099 3138 3144 3150 2 + 3093 3099 3105 3114 9 3093 3099 3138 3141 3 + 3093 3099 3138 3144 16 3093 3099 -3138 3144 17 + 3093 3099 -3138 3144 18 3093 3099 -3138 3144 7 + 3186 3183 3189 3195 2 3183 3189 3195 3201 1 + 3183 3189 -3195 3201 13 3183 3189 -3195 3201 12 + 3183 3189 -3195 3201 7 3183 3189 3195 3240 4 + 3183 3189 -3195 3240 5 3183 3189 -3195 3240 6 + 3183 3189 -3195 3240 7 3165 3156 3150 3183 9 + 3156 3150 3183 3186 3 3156 3150 3183 3189 10 + 3156 3150 -3183 3189 11 3156 3150 -3183 3189 12 + 3156 3150 -3183 3189 7 3156 3165 3174 3177 3 + 3156 3165 3174 3180 3 3150 3156 3165 3174 9 + 3150 3183 3189 3195 2 3144 3150 3156 3165 9 + 3144 3150 3183 3186 3 3144 3150 3183 3189 16 + 3144 3150 -3183 3189 17 3144 3150 -3183 3189 18 + 3144 3150 -3183 3189 7 3243 3240 3246 3252 2 + 3240 3246 3252 3258 1 3240 3246 -3252 3258 13 + 3240 3246 -3252 3258 12 3240 3246 -3252 3258 7 + 3240 3246 3252 3306 4 3240 3246 -3252 3306 5 + 3240 3246 -3252 3306 6 3240 3246 -3252 3306 7 + 3219 3201 3195 3240 9 3207 3201 3195 3240 9 + 3207 3201 3219 3228 22 3207 3201 -3219 3228 23 + 3207 3201 -3219 3228 24 3201 3195 3240 3243 3 + 3201 3195 3240 3246 10 3201 3195 -3240 3246 11 + 3201 3195 -3240 3246 12 3201 3195 -3240 3246 7 + 3195 3201 3219 3228 22 3195 3201 -3219 3228 23 + 3195 3201 -3219 3228 24 3195 3240 3246 3252 2 + 3189 3195 3201 3207 9 3189 3195 3201 3219 9 + 3189 3195 3240 3243 3 3189 3195 3240 3246 16 + 3189 3195 -3240 3246 17 3189 3195 -3240 3246 18 + 3189 3195 -3240 3246 7 3309 3306 3312 3318 2 + 3306 3312 3318 3324 1 3306 3312 -3318 3324 13 + 3306 3312 -3318 3324 12 3306 3312 -3318 3324 7 + 3306 3312 3318 3342 4 3306 3312 -3318 3342 5 + 3306 3312 -3318 3342 6 3306 3312 -3318 3342 7 + 3267 3258 3252 3306 9 3267 3276 3285 3294 9 + 3258 3252 3306 3309 3 3258 3252 3306 3312 10 + 3258 3252 -3306 3312 11 3258 3252 -3306 3312 12 + 3258 3252 -3306 3312 7 3258 3267 3276 3285 22 + 3258 3267 -3276 3285 23 3258 3267 -3276 3285 24 + 3252 3258 3267 3276 22 3252 3258 -3267 3276 23 + 3252 3258 -3267 3276 24 3252 3306 3312 3318 2 + 3246 3252 3258 3267 9 3246 3252 3306 3309 3 + 3246 3252 3306 3312 16 3246 3252 -3306 3312 17 + 3246 3252 -3306 3312 18 3246 3252 -3306 3312 7 + 3345 3342 3348 3354 2 3342 3348 3354 3360 1 + 3342 3348 -3354 3360 13 3342 3348 -3354 3360 12 + 3342 3348 -3354 3360 7 3342 3348 3354 3399 4 + 3342 3348 -3354 3399 5 3342 3348 -3354 3399 6 + 3342 3348 -3354 3399 7 3333 3324 3318 3342 9 + 3324 3318 3342 3345 3 3324 3318 3342 3348 10 + 3324 3318 -3342 3348 11 3324 3318 -3342 3348 12 + 3324 3318 -3342 3348 7 3318 3324 3333 3336 3 + 3318 3324 3333 3339 3 3318 3342 3348 3354 2 + 3312 3318 3324 3333 9 3312 3318 3342 3345 3 + 3312 3318 3342 3348 16 3312 3318 -3342 3348 17 + 3312 3318 -3342 3348 18 3312 3318 -3342 3348 7 + 3402 3399 3405 3411 2 3399 3405 3411 3417 1 + 3399 3405 -3411 3417 13 3399 3405 -3411 3417 12 + 3399 3405 -3411 3417 7 3399 3405 3411 3459 4 + 3399 3405 -3411 3459 5 3399 3405 -3411 3459 6 + 3399 3405 -3411 3459 7 3369 3360 3354 3399 9 + 3360 3354 3399 3402 3 3360 3354 3399 3405 10 + 3360 3354 -3399 3405 11 3360 3354 -3399 3405 12 + 3360 3354 -3399 3405 7 3354 3360 3369 3375 22 + 3354 3360 -3369 3375 23 3354 3360 -3369 3375 24 + 3354 3360 3369 3387 22 3354 3360 -3369 3387 23 + 3354 3360 -3369 3387 24 3354 3399 3405 3411 2 + 3348 3354 3360 3369 9 3348 3354 3399 3402 3 + 3348 3354 3399 3405 16 3348 3354 -3399 3405 17 + 3348 3354 -3399 3405 18 3348 3354 -3399 3405 7 + 3462 3459 3465 3471 2 3459 3465 3471 3477 1 + 3459 3465 -3471 3477 13 3459 3465 -3471 3477 12 + 3459 3465 -3471 3477 7 3459 3465 3471 3507 4 + 3459 3465 -3471 3507 5 3459 3465 -3471 3507 6 + 3459 3465 -3471 3507 7 3435 3429 3426 3453 19 + 3435 3441 -3447 3453 19 3429 3426 3453 3447 19 + 3429 3435 -3441 3447 19 3426 3417 3411 3459 9 + 3426 3429 3435 3441 19 3426 3453 -3447 3441 19 + 3417 3411 3459 3462 3 3417 3411 3459 3465 10 + 3417 3411 -3459 3465 11 3417 3411 -3459 3465 12 + 3417 3411 -3459 3465 7 3417 3426 3429 3435 19 + 3417 3426 3453 3447 19 3411 3417 3426 3429 3 + 3411 3417 3426 3453 3 3411 3459 3465 3471 2 + 3405 3411 3417 3426 9 3405 3411 3459 3462 3 + 3405 3411 3459 3465 16 3405 3411 -3459 3465 17 + 3405 3411 -3459 3465 18 3405 3411 -3459 3465 7 + 3510 3507 3513 3519 2 3507 3513 3519 3525 1 + 3507 3513 -3519 3525 13 3507 3513 -3519 3525 12 + 3507 3513 -3519 3525 7 3507 3513 3519 3552 4 + 3507 3513 -3519 3552 5 3507 3513 -3519 3552 6 + 3507 3513 -3519 3552 7 3495 3477 3471 3507 9 + 3483 3477 3471 3507 9 3477 3471 3507 3510 3 + 3477 3471 3507 3513 10 3477 3471 -3507 3513 11 + 3477 3471 -3507 3513 12 3477 3471 -3507 3513 7 + 3471 3507 3513 3519 2 3465 3471 3477 3483 9 + 3465 3471 3477 3495 9 3465 3471 3507 3510 3 + 3465 3471 3507 3513 16 3465 3471 -3507 3513 17 + 3465 3471 -3507 3513 18 3465 3471 -3507 3513 7 + 3555 3552 3558 3564 2 3552 3558 3564 3570 1 + 3552 3558 -3564 3570 13 3552 3558 -3564 3570 12 + 3552 3558 -3564 3570 7 3552 3558 3564 3609 4 + 3552 3558 -3564 3609 5 3552 3558 -3564 3609 6 + 3552 3558 -3564 3609 7 3534 3525 3519 3552 9 + 3525 3519 3552 3555 3 3525 3519 3552 3558 10 + 3525 3519 -3552 3558 11 3525 3519 -3552 3558 12 + 3525 3519 -3552 3558 7 3525 3534 3543 3546 3 + 3525 3534 3543 3549 3 3519 3525 3534 3543 9 + 3519 3552 3558 3564 2 3513 3519 3525 3534 9 + 3513 3519 3552 3555 3 3513 3519 3552 3558 16 + 3513 3519 -3552 3558 17 3513 3519 -3552 3558 18 + 3513 3519 -3552 3558 7 3612 3609 3615 3621 2 + 3609 3615 3621 3630 4 3609 3615 -3621 3630 5 + 3609 3615 -3621 3630 6 3609 3615 -3621 3630 7 + 3579 3570 3564 3609 9 3570 3564 3609 3612 3 + 3570 3564 3609 3615 10 3570 3564 -3609 3615 11 + 3570 3564 -3609 3615 12 3570 3564 -3609 3615 7 + 3564 3570 3579 3585 22 3564 3570 -3579 3585 23 + 3564 3570 -3579 3585 24 3564 3570 3579 3597 22 + 3564 3570 -3579 3597 23 3564 3570 -3579 3597 24 + 3564 3609 3615 3621 2 3558 3564 3570 3579 9 + 3558 3564 3609 3612 3 3558 3564 3609 3615 16 + 3558 3564 -3609 3615 17 3558 3564 -3609 3615 18 + 3558 3564 -3609 3615 7 3633 3630 3636 3642 2 + 3630 3636 3642 3648 1 3630 3636 -3642 3648 13 + 3630 3636 -3642 3648 12 3630 3636 -3642 3648 7 + 3630 3636 3642 3696 4 3630 3636 -3642 3696 5 + 3630 3636 -3642 3696 6 3630 3636 -3642 3696 7 + 3621 3630 3636 3642 2 3615 3621 3630 3633 3 + 3615 3621 3630 3636 16 3615 3621 -3630 3636 17 + 3615 3621 -3630 3636 18 3615 3621 -3630 3636 7 + 3699 3696 3702 3708 2 3696 3702 3708 3714 1 + 3696 3702 -3708 3714 13 3696 3702 -3708 3714 12 + 3696 3702 -3708 3714 7 3696 3702 3708 3744 4 + 3696 3702 -3708 3744 5 3696 3702 -3708 3744 6 + 3696 3702 -3708 3744 7 3657 3648 3642 3696 9 + 3657 3666 3675 3684 9 3648 3642 3696 3699 3 + 3648 3642 3696 3702 10 3648 3642 -3696 3702 11 + 3648 3642 -3696 3702 12 3648 3642 -3696 3702 7 + 3648 3657 3666 3675 22 3648 3657 -3666 3675 23 + 3648 3657 -3666 3675 24 3642 3648 3657 3666 22 + 3642 3648 -3657 3666 23 3642 3648 -3657 3666 24 + 3642 3696 3702 3708 2 3636 3642 3648 3657 9 + 3636 3642 3696 3699 3 3636 3642 3696 3702 16 + 3636 3642 -3696 3702 17 3636 3642 -3696 3702 18 + 3636 3642 -3696 3702 7 3747 3744 3750 3756 2 + 3744 3750 3756 3762 1 3744 3750 -3756 3762 13 + 3744 3750 -3756 3762 12 3744 3750 -3756 3762 7 + 3744 3750 3756 3816 4 3744 3750 -3756 3816 5 + 3744 3750 -3756 3816 6 3744 3750 -3756 3816 7 + 3732 3714 3708 3744 9 3720 3714 3708 3744 9 + 3714 3708 3744 3747 3 3714 3708 3744 3750 10 + 3714 3708 -3744 3750 11 3714 3708 -3744 3750 12 + 3714 3708 -3744 3750 7 3708 3744 3750 3756 2 + 3702 3708 3714 3720 9 3702 3708 3714 3732 9 + 3702 3708 3744 3747 3 3702 3708 3744 3750 16 + 3702 3708 -3744 3750 17 3702 3708 -3744 3750 18 + 3702 3708 -3744 3750 7 3819 3816 3822 3828 2 + 3816 3822 3828 3834 1 3816 3822 -3828 3834 13 + 3816 3822 -3828 3834 12 3816 3822 -3828 3834 7 + 3816 3822 3828 3852 4 3816 3822 -3828 3852 5 + 3816 3822 -3828 3852 6 3816 3822 -3828 3852 7 + 3795 3789 3786 3813 19 3795 3801 -3807 3813 19 + 3789 3786 3813 3807 35 3789 3795 -3801 3807 19 + 3786 3789 3795 3801 19 3786 3813 -3807 3801 36 + 3780 3774 -3771 3813 38 3780 3786 3789 3795 19 + 3780 3786 3813 3807 35 3774 3771 -3813 3786 39 + 3774 3771 3813 3807 39 3774 3780 3786 3789 37 + 3774 3780 -3786 3813 37 3771 3762 3756 3816 9 + 3771 3774 -3780 3786 29 3771 3813 -3786 3780 35 + 3771 3813 3786 3789 35 3771 3813 3807 3801 36 + 3762 3756 3816 3819 3 3762 3756 3816 3822 10 + 3762 3756 -3816 3822 11 3762 3756 -3816 3822 12 + 3762 3756 -3816 3822 7 3762 3771 3774 3780 38 + 3762 3771 3813 3786 39 3762 3771 3813 3807 39 + 3756 3762 3771 3774 3 3756 3762 3771 3813 3 + 3756 3816 3822 3828 2 3750 3756 3762 3771 9 + 3750 3756 3816 3819 3 3750 3756 3816 3822 16 + 3750 3756 -3816 3822 17 3750 3756 -3816 3822 18 + 3750 3756 -3816 3822 7 3855 3852 3858 3864 2 + 3852 3858 3864 3873 4 3852 3858 -3864 3873 5 + 3852 3858 -3864 3873 6 3852 3858 -3864 3873 7 + 3843 3834 3828 3852 9 3834 3828 3852 3855 3 + 3834 3828 3852 3858 10 3834 3828 -3852 3858 11 + 3834 3828 -3852 3858 12 3834 3828 -3852 3858 7 + 3828 3834 3843 3846 3 3828 3834 3843 3849 3 + 3828 3852 3858 3864 2 3822 3828 3834 3843 9 + 3822 3828 3852 3855 3 3822 3828 3852 3858 16 + 3822 3828 -3852 3858 17 3822 3828 -3852 3858 18 + 3822 3828 -3852 3858 7 3876 3873 3879 3885 2 + 3873 3879 3885 3891 1 3873 3879 -3885 3891 13 + 3873 3879 -3885 3891 12 3873 3879 -3885 3891 7 + 3873 3879 3885 3930 4 3873 3879 -3885 3930 5 + 3873 3879 -3885 3930 6 3873 3879 -3885 3930 7 + 3864 3873 3879 3885 2 3858 3864 3873 3876 3 + 3858 3864 3873 3879 16 3858 3864 -3873 3879 17 + 3858 3864 -3873 3879 18 3858 3864 -3873 3879 7 + 3933 3930 3936 3942 2 3930 3936 3942 3948 1 + 3930 3936 -3942 3948 13 3930 3936 -3942 3948 12 + 3930 3936 -3942 3948 7 3930 3936 3942 3966 4 + 3930 3936 -3942 3966 5 3930 3936 -3942 3966 6 + 3930 3936 -3942 3966 7 3900 3891 3885 3930 9 + 3891 3885 3930 3933 3 3891 3885 3930 3936 10 + 3891 3885 -3930 3936 11 3891 3885 -3930 3936 12 + 3891 3885 -3930 3936 7 3885 3891 3900 3906 22 + 3885 3891 -3900 3906 23 3885 3891 -3900 3906 24 + 3885 3891 3900 3918 22 3885 3891 -3900 3918 23 + 3885 3891 -3900 3918 24 3885 3930 3936 3942 2 + 3879 3885 3891 3900 9 3879 3885 3930 3933 3 + 3879 3885 3930 3936 16 3879 3885 -3930 3936 17 + 3879 3885 -3930 3936 18 3879 3885 -3930 3936 7 + 3969 3966 3972 3978 2 3966 3972 3978 3984 1 + 3966 3972 -3978 3984 13 3966 3972 -3978 3984 12 + 3966 3972 -3978 3984 7 3966 3972 3978 3996 4 + 3966 3972 -3978 3996 5 3966 3972 -3978 3996 6 + 3966 3972 -3978 3996 7 3957 3948 3942 3966 9 + 3948 3942 3966 3969 3 3948 3942 3966 3972 10 + 3948 3942 -3966 3972 11 3948 3942 -3966 3972 12 + 3948 3942 -3966 3972 7 3942 3948 3957 3960 3 + 3942 3948 3957 3963 3 3942 3966 3972 3978 2 + 3936 3942 3948 3957 9 3936 3942 3966 3969 3 + 3936 3942 3966 3972 16 3936 3942 -3966 3972 17 + 3936 3942 -3966 3972 18 3936 3942 -3966 3972 7 + 3999 3996 4002 4008 2 3996 4002 4008 4014 1 + 3996 4002 -4008 4014 13 3996 4002 -4008 4014 12 + 3996 4002 -4008 4014 7 3996 4002 4008 4053 4 + 3996 4002 -4008 4053 5 3996 4002 -4008 4053 6 + 3996 4002 -4008 4053 7 3984 3978 3996 3999 3 + 3984 3978 3996 4002 10 3984 3978 -3996 4002 11 + 3984 3978 -3996 4002 12 3984 3978 -3996 4002 7 + 3978 3996 4002 4008 2 3972 3978 3996 3999 3 + 3972 3978 3996 4002 16 3972 3978 -3996 4002 17 + 3972 3978 -3996 4002 18 3972 3978 -3996 4002 7 + 4056 4053 4059 4065 2 4053 4059 4065 4071 1 + 4053 4059 -4065 4071 13 4053 4059 -4065 4071 12 + 4053 4059 -4065 4071 7 4053 4059 4065 4101 4 + 4053 4059 -4065 4101 5 4053 4059 -4065 4101 6 + 4053 4059 -4065 4101 7 4032 4014 4008 4053 9 + 4020 4014 4008 4053 9 4020 4014 4032 4041 22 + 4020 4014 -4032 4041 23 4020 4014 -4032 4041 24 + 4014 4008 4053 4056 3 4014 4008 4053 4059 10 + 4014 4008 -4053 4059 11 4014 4008 -4053 4059 12 + 4014 4008 -4053 4059 7 4008 4014 4032 4041 22 + 4008 4014 -4032 4041 23 4008 4014 -4032 4041 24 + 4008 4053 4059 4065 2 4002 4008 4014 4020 9 + 4002 4008 4014 4032 9 4002 4008 4053 4056 3 + 4002 4008 4053 4059 16 4002 4008 -4053 4059 17 + 4002 4008 -4053 4059 18 4002 4008 -4053 4059 7 + 4104 4101 4107 4113 2 4101 4107 4113 4119 1 + 4101 4107 -4113 4119 13 4101 4107 -4113 4119 12 + 4101 4107 -4113 4119 7 4101 4107 4113 4152 4 + 4101 4107 -4113 4152 5 4101 4107 -4113 4152 6 + 4101 4107 -4113 4152 7 4089 4071 4065 4101 9 + 4077 4071 4065 4101 9 4071 4065 4101 4104 3 + 4071 4065 4101 4107 10 4071 4065 -4101 4107 11 + 4071 4065 -4101 4107 12 4071 4065 -4101 4107 7 + 4065 4101 4107 4113 2 4059 4065 4071 4077 9 + 4059 4065 4071 4089 9 4059 4065 4101 4104 3 + 4059 4065 4101 4107 16 4059 4065 -4101 4107 17 + 4059 4065 -4101 4107 18 4059 4065 -4101 4107 7 + 4155 4152 4158 4164 2 4152 4158 4164 4170 1 + 4152 4158 -4164 4170 13 4152 4158 -4164 4170 12 + 4152 4158 -4164 4170 7 4152 4158 4164 4185 4 + 4152 4158 -4164 4185 5 4152 4158 -4164 4185 6 + 4152 4158 -4164 4185 7 4134 4131 -4128 4146 31 + 4131 4128 -4146 4140 32 4131 4134 -4140 4146 30 + 4128 4119 4113 4152 9 4128 4131 -4134 4140 33 + 4128 4146 -4140 4134 29 4119 4113 4152 4155 3 + 4119 4113 4152 4158 10 4119 4113 -4152 4158 11 + 4119 4113 -4152 4158 12 4119 4113 -4152 4158 7 + 4119 4128 4131 4134 31 4119 4128 4146 4140 32 + 4113 4119 4128 4131 3 4113 4119 4128 4146 3 + 4113 4152 4158 4164 2 4107 4113 4119 4128 9 + 4107 4113 4152 4155 3 4107 4113 4152 4158 16 + 4107 4113 -4152 4158 17 4107 4113 -4152 4158 18 + 4107 4113 -4152 4158 7 4188 4185 4191 4197 2 + 4185 4191 4197 4203 1 4185 4191 -4197 4203 13 + 4185 4191 -4197 4203 12 4185 4191 -4197 4203 7 + 4185 4191 4197 4242 4 4185 4191 -4197 4242 5 + 4185 4191 -4197 4242 6 4185 4191 -4197 4242 7 + 4179 4170 4164 4185 9 4170 4164 4185 4188 3 + 4170 4164 4185 4191 10 4170 4164 -4185 4191 11 + 4170 4164 -4185 4191 12 4170 4164 -4185 4191 7 + 4164 4185 4191 4197 2 4158 4164 4170 4179 9 + 4158 4164 4185 4188 3 4158 4164 4185 4191 16 + 4158 4164 -4185 4191 17 4158 4164 -4185 4191 18 + 4158 4164 -4185 4191 7 4245 4242 4248 4254 2 + 4242 4248 4254 4260 1 4242 4248 -4254 4260 13 + 4242 4248 -4254 4260 12 4242 4248 -4254 4260 7 + 4242 4248 4254 4272 4 4242 4248 -4254 4272 5 + 4242 4248 -4254 4272 6 4242 4248 -4254 4272 7 + 4221 4203 4197 4242 9 4209 4203 4197 4242 9 + 4209 4203 4221 4230 22 4209 4203 -4221 4230 23 + 4209 4203 -4221 4230 24 4203 4197 4242 4245 3 + 4203 4197 4242 4248 10 4203 4197 -4242 4248 11 + 4203 4197 -4242 4248 12 4203 4197 -4242 4248 7 + 4197 4203 4221 4230 22 4197 4203 -4221 4230 23 + 4197 4203 -4221 4230 24 4197 4242 4248 4254 2 + 4191 4197 4203 4209 9 4191 4197 4203 4221 9 + 4191 4197 4242 4245 3 4191 4197 4242 4248 16 + 4191 4197 -4242 4248 17 4191 4197 -4242 4248 18 + 4191 4197 -4242 4248 7 4275 4272 4278 4284 2 + 4272 4278 4284 4290 1 4272 4278 -4284 4290 13 + 4272 4278 -4284 4290 12 4272 4278 -4284 4290 7 + 4272 4278 4284 4332 4 4272 4278 -4284 4332 5 + 4272 4278 -4284 4332 6 4272 4278 -4284 4332 7 + 4260 4254 4272 4275 3 4260 4254 4272 4278 10 + 4260 4254 -4272 4278 11 4260 4254 -4272 4278 12 + 4260 4254 -4272 4278 7 4254 4272 4278 4284 2 + 4248 4254 4272 4275 3 4248 4254 4272 4278 16 + 4248 4254 -4272 4278 17 4248 4254 -4272 4278 18 + 4248 4254 -4272 4278 7 4335 4332 4338 4344 2 + 4332 4338 4344 4350 1 4332 4338 -4344 4350 13 + 4332 4338 -4344 4350 12 4332 4338 -4344 4350 7 + 4332 4338 4344 4362 4 4332 4338 -4344 4362 5 + 4332 4338 -4344 4362 6 4332 4338 -4344 4362 7 + 4308 4302 4299 4326 19 4308 4314 -4320 4326 19 + 4302 4299 4326 4320 19 4302 4308 -4314 4320 19 + 4299 4290 4284 4332 9 4299 4302 4308 4314 19 + 4299 4326 -4320 4314 19 4290 4284 4332 4335 3 + 4290 4284 4332 4338 10 4290 4284 -4332 4338 11 + 4290 4284 -4332 4338 12 4290 4284 -4332 4338 7 + 4290 4299 4302 4308 19 4290 4299 4326 4320 19 + 4284 4290 4299 4302 3 4284 4290 4299 4326 3 + 4284 4332 4338 4344 2 4278 4284 4290 4299 9 + 4278 4284 4332 4335 3 4278 4284 4332 4338 16 + 4278 4284 -4332 4338 17 4278 4284 -4332 4338 18 + 4278 4284 -4332 4338 7 4365 4362 4368 4371 2 + 4365 4362 4368 4398 2 4362 4368 4371 4380 1 + 4362 4368 -4371 4380 13 4362 4368 -4371 4380 12 + 4362 4368 -4371 4380 7 4362 4368 4398 4389 1 + 4362 4368 -4398 4389 13 4362 4368 -4398 4389 12 + 4362 4368 -4398 4389 7 4362 4368 4398 4404 4 + 4362 4368 -4398 4404 5 4362 4368 -4398 4404 6 + 4362 4368 -4398 4404 7 4350 4344 4362 4365 3 + 4350 4344 4362 4368 10 4350 4344 -4362 4368 11 + 4350 4344 -4362 4368 12 4350 4344 -4362 4368 7 + 4344 4362 4368 4371 2 4344 4362 4368 4398 2 + 4338 4344 4362 4365 3 4338 4344 4362 4368 16 + 4338 4344 -4362 4368 17 4338 4344 -4362 4368 18 + 4338 4344 -4362 4368 7 4407 4404 4410 4416 2 + 4404 4410 4416 4422 1 4404 4410 -4416 4422 13 + 4404 4410 -4416 4422 12 4404 4410 -4416 4422 7 + 4404 4410 4416 4476 4 4404 4410 -4416 4476 5 + 4404 4410 -4416 4476 6 4404 4410 -4416 4476 7 + 4398 4404 4410 4416 2 4389 4398 4404 4407 3 + 4389 4398 4404 4410 10 4389 4398 -4404 4410 11 + 4389 4398 -4404 4410 12 4389 4398 -4404 4410 7 + 4380 4371 -4368 4398 3 4380 4389 4398 4404 9 + 4371 4368 -4398 4389 3 4371 4368 4398 4404 3 + 4371 4380 -4389 4398 22 4371 4380 -4389 4398 23 + 4371 4380 -4389 4398 24 4368 4371 -4380 4389 9 + 4368 4398 -4389 4380 9 4368 4398 4404 4407 3 + 4368 4398 4404 4410 16 4368 4398 -4404 4410 17 + 4368 4398 -4404 4410 18 4368 4398 -4404 4410 7 + 4479 4476 4482 4488 2 4476 4482 4488 4494 1 + 4476 4482 -4488 4494 13 4476 4482 -4488 4494 12 + 4476 4482 -4488 4494 7 4476 4482 4488 4512 4 + 4476 4482 -4488 4512 5 4476 4482 -4488 4512 6 + 4476 4482 -4488 4512 7 4440 4449 4455 4458 31 + 4440 4449 4455 4467 31 4431 4422 4416 4476 9 + 4431 4440 4449 4455 26 4422 4416 4476 4479 3 + 4422 4416 4476 4482 10 4422 4416 -4476 4482 11 + 4422 4416 -4476 4482 12 4422 4416 -4476 4482 7 + 4422 4431 4440 4449 9 4416 4422 4431 4440 22 + 4416 4422 -4431 4440 23 4416 4422 -4431 4440 24 + 4416 4476 4482 4488 2 4410 4416 4422 4431 9 + 4410 4416 4476 4479 3 4410 4416 4476 4482 16 + 4410 4416 -4476 4482 17 4410 4416 -4476 4482 18 + 4410 4416 -4476 4482 7 4515 4512 4518 4524 2 + 4512 4518 4524 4530 1 4512 4518 -4524 4530 13 + 4512 4518 -4524 4530 12 4512 4518 -4524 4530 7 + 4512 4518 4524 4563 4 4512 4518 -4524 4563 5 + 4512 4518 -4524 4563 6 4512 4518 -4524 4563 7 + 4503 4494 4488 4512 9 4494 4488 4512 4515 3 + 4494 4488 4512 4518 10 4494 4488 -4512 4518 11 + 4494 4488 -4512 4518 12 4494 4488 -4512 4518 7 + 4488 4494 4503 4506 3 4488 4494 4503 4509 3 + 4488 4512 4518 4524 2 4482 4488 4494 4503 9 + 4482 4488 4512 4515 3 4482 4488 4512 4518 16 + 4482 4488 -4512 4518 17 4482 4488 -4512 4518 18 + 4482 4488 -4512 4518 7 4566 4563 4569 4575 2 + 4563 4569 4575 4581 1 4563 4569 -4575 4581 13 + 4563 4569 -4575 4581 12 4563 4569 -4575 4581 7 + 4563 4569 4575 4620 4 4563 4569 -4575 4620 5 + 4563 4569 -4575 4620 6 4563 4569 -4575 4620 7 + 4539 4530 4524 4563 9 4530 4524 4563 4566 3 + 4530 4524 4563 4569 10 4530 4524 -4563 4569 11 + 4530 4524 -4563 4569 12 4530 4524 -4563 4569 7 + 4530 4539 4548 4551 3 4530 4539 4548 4554 10 + 4530 4539 -4548 4554 11 4530 4539 -4548 4554 12 + 4530 4539 -4548 4554 7 4524 4530 4539 4548 9 + 4524 4563 4569 4575 2 4518 4524 4530 4539 9 + 4518 4524 4563 4566 3 4518 4524 4563 4569 16 + 4518 4524 -4563 4569 17 4518 4524 -4563 4569 18 + 4518 4524 -4563 4569 7 4623 4620 4626 4632 2 + 4620 4626 4632 4638 1 4620 4626 -4632 4638 13 + 4620 4626 -4632 4638 12 4620 4626 -4632 4638 7 + 4620 4626 4632 4665 4 4620 4626 -4632 4665 5 + 4620 4626 -4632 4665 6 4620 4626 -4632 4665 7 + 4590 4581 4575 4620 9 4581 4575 4620 4623 3 + 4581 4575 4620 4626 10 4581 4575 -4620 4626 11 + 4581 4575 -4620 4626 12 4581 4575 -4620 4626 7 + 4575 4581 4590 4596 22 4575 4581 -4590 4596 23 + 4575 4581 -4590 4596 24 4575 4581 4590 4608 22 + 4575 4581 -4590 4608 23 4575 4581 -4590 4608 24 + 4575 4620 4626 4632 2 4569 4575 4581 4590 9 + 4569 4575 4620 4623 3 4569 4575 4620 4626 16 + 4569 4575 -4620 4626 17 4569 4575 -4620 4626 18 + 4569 4575 -4620 4626 7 4668 4665 4671 4677 2 + 4665 4671 4677 4686 4 4665 4671 -4677 4686 5 + 4665 4671 -4677 4686 6 4665 4671 -4677 4686 7 + 4647 4638 4632 4665 9 4638 4632 4665 4668 3 + 4638 4632 4665 4671 10 4638 4632 -4665 4671 11 + 4638 4632 -4665 4671 12 4638 4632 -4665 4671 7 + 4638 4647 4656 4659 3 4638 4647 4656 4662 3 + 4632 4638 4647 4656 9 4632 4665 4671 4677 2 + 4626 4632 4638 4647 9 4626 4632 4665 4668 3 + 4626 4632 4665 4671 16 4626 4632 -4665 4671 17 + 4626 4632 -4665 4671 18 4626 4632 -4665 4671 7 + 4689 4686 4692 4698 2 4686 4692 4698 4704 1 + 4686 4692 -4698 4704 13 4686 4692 -4698 4704 12 + 4686 4692 -4698 4704 7 4686 4692 4698 4728 4 + 4686 4692 -4698 4728 5 4686 4692 -4698 4728 6 + 4686 4692 -4698 4728 7 4677 4686 4692 4698 2 + 4671 4677 4686 4689 3 4671 4677 4686 4692 16 + 4671 4677 -4686 4692 17 4671 4677 -4686 4692 18 + 4671 4677 -4686 4692 7 4731 4728 4734 4740 2 + 4728 4734 4740 4746 1 4728 4734 -4740 4746 13 + 4728 4734 -4740 4746 12 4728 4734 -4740 4746 7 + 4728 4734 4740 4788 4 4728 4734 -4740 4788 5 + 4728 4734 -4740 4788 6 4728 4734 -4740 4788 7 + 4713 4704 4698 4728 9 4704 4698 4728 4731 3 + 4704 4698 4728 4734 10 4704 4698 -4728 4734 11 + 4704 4698 -4728 4734 12 4704 4698 -4728 4734 7 + 4698 4704 4713 4716 3 4698 4704 4713 4719 10 + 4698 4704 -4713 4719 11 4698 4704 -4713 4719 12 + 4698 4704 -4713 4719 7 4698 4728 4734 4740 2 + 4692 4698 4704 4713 9 4692 4698 4728 4731 3 + 4692 4698 4728 4734 16 4692 4698 -4728 4734 17 + 4692 4698 -4728 4734 18 4692 4698 -4728 4734 7 + 4791 4788 4794 4800 2 4788 4794 4800 4806 1 + 4788 4794 -4800 4806 13 4788 4794 -4800 4806 12 + 4788 4794 -4800 4806 7 4788 4794 4800 4845 4 + 4788 4794 -4800 4845 5 4788 4794 -4800 4845 6 + 4788 4794 -4800 4845 7 4764 4758 4755 4782 19 + 4764 4770 -4776 4782 19 4758 4755 4782 4776 19 + 4758 4764 -4770 4776 19 4755 4746 4740 4788 9 + 4755 4758 4764 4770 19 4755 4782 -4776 4770 19 + 4746 4740 4788 4791 3 4746 4740 4788 4794 10 + 4746 4740 -4788 4794 11 4746 4740 -4788 4794 12 + 4746 4740 -4788 4794 7 4746 4755 4758 4764 19 + 4746 4755 4782 4776 19 4740 4746 4755 4758 3 + 4740 4746 4755 4782 3 4740 4788 4794 4800 2 + 4734 4740 4746 4755 9 4734 4740 4788 4791 3 + 4734 4740 4788 4794 16 4734 4740 -4788 4794 17 + 4734 4740 -4788 4794 18 4734 4740 -4788 4794 7 + 4848 4845 4851 4857 2 4845 4851 4857 4863 1 + 4845 4851 -4857 4863 13 4845 4851 -4857 4863 12 + 4845 4851 -4857 4863 7 4845 4851 4857 4881 4 + 4845 4851 -4857 4881 5 4845 4851 -4857 4881 6 + 4845 4851 -4857 4881 7 4824 4806 4800 4845 9 + 4812 4806 4800 4845 9 4812 4806 4824 4833 22 + 4812 4806 -4824 4833 23 4812 4806 -4824 4833 24 + 4806 4800 4845 4848 3 4806 4800 4845 4851 10 + 4806 4800 -4845 4851 11 4806 4800 -4845 4851 12 + 4806 4800 -4845 4851 7 4800 4806 4824 4833 22 + 4800 4806 -4824 4833 23 4800 4806 -4824 4833 24 + 4800 4845 4851 4857 2 4794 4800 4806 4812 9 + 4794 4800 4806 4824 9 4794 4800 4845 4848 3 + 4794 4800 4845 4851 16 4794 4800 -4845 4851 17 + 4794 4800 -4845 4851 18 4794 4800 -4845 4851 7 + 4884 4881 4887 4893 2 4881 4887 4893 4899 1 + 4881 4887 -4893 4899 13 4881 4887 -4893 4899 12 + 4881 4887 -4893 4899 7 4881 4887 4893 4914 4 + 4881 4887 -4893 4914 5 4881 4887 -4893 4914 6 + 4881 4887 -4893 4914 7 4872 4863 4857 4881 9 + 4863 4857 4881 4884 3 4863 4857 4881 4887 10 + 4863 4857 -4881 4887 11 4863 4857 -4881 4887 12 + 4863 4857 -4881 4887 7 4857 4863 4872 4875 3 + 4857 4863 4872 4878 3 4857 4881 4887 4893 2 + 4851 4857 4863 4872 9 4851 4857 4881 4884 3 + 4851 4857 4881 4887 16 4851 4857 -4881 4887 17 + 4851 4857 -4881 4887 18 4851 4857 -4881 4887 7 + 4917 4914 4920 4926 2 4914 4920 4926 4932 1 + 4914 4920 -4926 4932 13 4914 4920 -4926 4932 12 + 4914 4920 -4926 4932 7 4914 4920 4926 4962 4 + 4914 4920 -4926 4962 5 4914 4920 -4926 4962 6 + 4914 4920 -4926 4962 7 4908 4899 4893 4914 9 + 4899 4893 4914 4917 3 4899 4893 4914 4920 10 + 4899 4893 -4914 4920 11 4899 4893 -4914 4920 12 + 4899 4893 -4914 4920 7 4893 4914 4920 4926 2 + 4887 4893 4899 4908 9 4887 4893 4914 4917 3 + 4887 4893 4914 4920 16 4887 4893 -4914 4920 17 + 4887 4893 -4914 4920 18 4887 4893 -4914 4920 7 + 4965 4962 4968 4974 2 4962 4968 4974 4980 1 + 4962 4968 -4974 4980 13 4962 4968 -4974 4980 12 + 4962 4968 -4974 4980 7 4962 4968 4974 5004 4 + 4962 4968 -4974 5004 5 4962 4968 -4974 5004 6 + 4962 4968 -4974 5004 7 4950 4932 4926 4962 9 + 4938 4932 4926 4962 9 4932 4926 4962 4965 3 + 4932 4926 4962 4968 10 4932 4926 -4962 4968 11 + 4932 4926 -4962 4968 12 4932 4926 -4962 4968 7 + 4926 4962 4968 4974 2 4920 4926 4932 4938 9 + 4920 4926 4932 4950 9 4920 4926 4962 4965 3 + 4920 4926 4962 4968 16 4920 4926 -4962 4968 17 + 4920 4926 -4962 4968 18 4920 4926 -4962 4968 7 + 5007 5004 5010 5016 2 5004 5010 5016 5022 1 + 5004 5010 -5016 5022 13 5004 5010 -5016 5022 12 + 5004 5010 -5016 5022 7 5004 5010 5016 5076 4 + 5004 5010 -5016 5076 5 5004 5010 -5016 5076 6 + 5004 5010 -5016 5076 7 4998 4980 4974 5004 9 + 4986 4980 4974 5004 9 4980 4974 5004 5007 3 + 4980 4974 5004 5010 10 4980 4974 -5004 5010 11 + 4980 4974 -5004 5010 12 4980 4974 -5004 5010 7 + 4974 5004 5010 5016 2 4968 4974 4980 4986 9 + 4968 4974 4980 4998 9 4968 4974 5004 5007 3 + 4968 4974 5004 5010 16 4968 4974 -5004 5010 17 + 4968 4974 -5004 5010 18 4968 4974 -5004 5010 7 + 5079 5076 5082 5088 2 5076 5082 5088 5094 1 + 5076 5082 -5088 5094 13 5076 5082 -5088 5094 12 + 5076 5082 -5088 5094 7 5076 5082 5088 5121 4 + 5076 5082 -5088 5121 5 5076 5082 -5088 5121 6 + 5076 5082 -5088 5121 7 5040 5049 5055 5058 31 + 5040 5049 5055 5067 31 5031 5022 5016 5076 9 + 5031 5040 5049 5055 26 5022 5016 5076 5079 3 + 5022 5016 5076 5082 10 5022 5016 -5076 5082 11 + 5022 5016 -5076 5082 12 5022 5016 -5076 5082 7 + 5022 5031 5040 5049 9 5016 5022 5031 5040 22 + 5016 5022 -5031 5040 23 5016 5022 -5031 5040 24 + 5016 5076 5082 5088 2 5010 5016 5022 5031 9 + 5010 5016 5076 5079 3 5010 5016 5076 5082 16 + 5010 5016 -5076 5082 17 5010 5016 -5076 5082 18 + 5010 5016 -5076 5082 7 5124 5121 5127 5133 2 + 5121 5127 5133 5142 4 5121 5127 -5133 5142 5 + 5121 5127 -5133 5142 6 5121 5127 -5133 5142 7 + 5103 5094 5088 5121 9 5094 5088 5121 5124 3 + 5094 5088 5121 5127 10 5094 5088 -5121 5127 11 + 5094 5088 -5121 5127 12 5094 5088 -5121 5127 7 + 5094 5103 5112 5115 3 5094 5103 5112 5118 3 + 5088 5094 5103 5112 9 5088 5121 5127 5133 2 + 5082 5088 5094 5103 9 5082 5088 5121 5124 3 + 5082 5088 5121 5127 16 5082 5088 -5121 5127 17 + 5082 5088 -5121 5127 18 5082 5088 -5121 5127 7 + 5145 5142 5148 5154 2 5142 5148 5154 5160 1 + 5142 5148 -5154 5160 13 5142 5148 -5154 5160 12 + 5142 5148 -5154 5160 7 5142 5148 5154 5202 4 + 5142 5148 -5154 5202 5 5142 5148 -5154 5202 6 + 5142 5148 -5154 5202 7 5133 5142 5148 5154 2 + 5127 5133 5142 5145 3 5127 5133 5142 5148 16 + 5127 5133 -5142 5148 17 5127 5133 -5142 5148 18 + 5127 5133 -5142 5148 7 5205 5202 5208 5214 2 + 5202 5208 5214 5220 1 5202 5208 -5214 5220 13 + 5202 5208 -5214 5220 12 5202 5208 -5214 5220 7 + 5202 5208 5214 5235 4 5202 5208 -5214 5235 5 + 5202 5208 -5214 5235 6 5202 5208 -5214 5235 7 + 5178 5172 5169 5196 19 5178 5184 -5190 5196 19 + 5172 5169 5196 5190 19 5172 5178 -5184 5190 19 + 5169 5160 5154 5202 9 5169 5172 5178 5184 19 + 5169 5196 -5190 5184 19 5160 5154 5202 5205 3 + 5160 5154 5202 5208 10 5160 5154 -5202 5208 11 + 5160 5154 -5202 5208 12 5160 5154 -5202 5208 7 + 5160 5169 5172 5178 19 5160 5169 5196 5190 19 + 5154 5160 5169 5172 3 5154 5160 5169 5196 3 + 5154 5202 5208 5214 2 5148 5154 5160 5169 9 + 5148 5154 5202 5205 3 5148 5154 5202 5208 16 + 5148 5154 -5202 5208 17 5148 5154 -5202 5208 18 + 5148 5154 -5202 5208 7 5238 5235 5241 5247 2 + 5235 5241 5247 5253 1 5235 5241 -5247 5253 13 + 5235 5241 -5247 5253 12 5235 5241 -5247 5253 7 + 5235 5241 5247 5292 4 5235 5241 -5247 5292 5 + 5235 5241 -5247 5292 6 5235 5241 -5247 5292 7 + 5229 5220 5214 5235 9 5220 5214 5235 5238 3 + 5220 5214 5235 5241 10 5220 5214 -5235 5241 11 + 5220 5214 -5235 5241 12 5220 5214 -5235 5241 7 + 5214 5235 5241 5247 2 5208 5214 5220 5229 9 + 5208 5214 5235 5238 3 5208 5214 5235 5241 16 + 5208 5214 -5235 5241 17 5208 5214 -5235 5241 18 + 5208 5214 -5235 5241 7 5295 5292 5298 5304 2 + 5292 5298 5304 5310 1 5292 5298 -5304 5310 13 + 5292 5298 -5304 5310 12 5292 5298 -5304 5310 7 + 5292 5298 5304 5322 4 5292 5298 -5304 5322 5 + 5292 5298 -5304 5322 6 5292 5298 -5304 5322 7 + 5271 5253 5247 5292 9 5259 5253 5247 5292 9 + 5259 5253 5271 5280 22 5259 5253 -5271 5280 23 + 5259 5253 -5271 5280 24 5253 5247 5292 5295 3 + 5253 5247 5292 5298 10 5253 5247 -5292 5298 11 + 5253 5247 -5292 5298 12 5253 5247 -5292 5298 7 + 5247 5253 5271 5280 22 5247 5253 -5271 5280 23 + 5247 5253 -5271 5280 24 5247 5292 5298 5304 2 + 5241 5247 5253 5259 9 5241 5247 5253 5271 9 + 5241 5247 5292 5295 3 5241 5247 5292 5298 16 + 5241 5247 -5292 5298 17 5241 5247 -5292 5298 18 + 5241 5247 -5292 5298 7 5325 5322 5328 5334 2 + 5322 5328 5334 5340 1 5322 5328 -5334 5340 13 + 5322 5328 -5334 5340 12 5322 5328 -5334 5340 7 + 5322 5328 5334 5373 4 5322 5328 -5334 5373 5 + 5322 5328 -5334 5373 6 5322 5328 -5334 5373 7 + 5310 5304 5322 5325 3 5310 5304 5322 5328 10 + 5310 5304 -5322 5328 11 5310 5304 -5322 5328 12 + 5310 5304 -5322 5328 7 5304 5322 5328 5334 2 + 5298 5304 5322 5325 3 5298 5304 5322 5328 16 + 5298 5304 -5322 5328 17 5298 5304 -5322 5328 18 + 5298 5304 -5322 5328 7 5376 5373 5379 5385 2 + 5373 5379 5385 5391 1 5373 5379 -5385 5391 13 + 5373 5379 -5385 5391 12 5373 5379 -5385 5391 7 + 5373 5379 5385 5409 4 5373 5379 -5385 5409 5 + 5373 5379 -5385 5409 6 5373 5379 -5385 5409 7 + 5355 5352 -5349 5367 31 5352 5349 -5367 5361 32 + 5352 5355 -5361 5367 30 5349 5340 5334 5373 9 + 5349 5352 -5355 5361 33 5349 5367 -5361 5355 29 + 5340 5334 5373 5376 3 5340 5334 5373 5379 10 + 5340 5334 -5373 5379 11 5340 5334 -5373 5379 12 + 5340 5334 -5373 5379 7 5340 5349 5352 5355 31 + 5340 5349 5367 5361 32 5334 5340 5349 5352 3 + 5334 5340 5349 5367 3 5334 5373 5379 5385 2 + 5328 5334 5340 5349 9 5328 5334 5373 5376 3 + 5328 5334 5373 5379 16 5328 5334 -5373 5379 17 + 5328 5334 -5373 5379 18 5328 5334 -5373 5379 7 + 5412 5409 5415 5421 2 5409 5415 5421 5427 1 + 5409 5415 -5421 5427 13 5409 5415 -5421 5427 12 + 5409 5415 -5421 5427 7 5409 5415 5421 5466 4 + 5409 5415 -5421 5466 5 5409 5415 -5421 5466 6 + 5409 5415 -5421 5466 7 5400 5391 5385 5409 9 + 5391 5385 5409 5412 3 5391 5385 5409 5415 10 + 5391 5385 -5409 5415 11 5391 5385 -5409 5415 12 + 5391 5385 -5409 5415 7 5385 5391 5400 5403 3 + 5385 5391 5400 5406 3 5385 5409 5415 5421 2 + 5379 5385 5391 5400 9 5379 5385 5409 5412 3 + 5379 5385 5409 5415 16 5379 5385 -5409 5415 17 + 5379 5385 -5409 5415 18 5379 5385 -5409 5415 7 + 5469 5466 5472 5478 2 5466 5472 5478 5484 1 + 5466 5472 -5478 5484 13 5466 5472 -5478 5484 12 + 5466 5472 -5478 5484 7 5466 5472 5478 5499 4 + 5466 5472 -5478 5499 5 5466 5472 -5478 5499 6 + 5466 5472 -5478 5499 7 5445 5427 5421 5466 9 + 5433 5427 5421 5466 9 5433 5427 5445 5454 22 + 5433 5427 -5445 5454 23 5433 5427 -5445 5454 24 + 5427 5421 5466 5469 3 5427 5421 5466 5472 10 + 5427 5421 -5466 5472 11 5427 5421 -5466 5472 12 + 5427 5421 -5466 5472 7 5421 5427 5445 5454 22 + 5421 5427 -5445 5454 23 5421 5427 -5445 5454 24 + 5421 5466 5472 5478 2 5415 5421 5427 5433 9 + 5415 5421 5427 5445 9 5415 5421 5466 5469 3 + 5415 5421 5466 5472 16 5415 5421 -5466 5472 17 + 5415 5421 -5466 5472 18 5415 5421 -5466 5472 7 + 5502 5499 5505 5511 2 5499 5505 5511 5517 1 + 5499 5505 -5511 5517 13 5499 5505 -5511 5517 12 + 5499 5505 -5511 5517 7 5499 5505 5511 5529 4 + 5499 5505 -5511 5529 5 5499 5505 -5511 5529 6 + 5499 5505 -5511 5529 7 5493 5484 5478 5499 9 + 5484 5478 5499 5502 3 5484 5478 5499 5505 10 + 5484 5478 -5499 5505 11 5484 5478 -5499 5505 12 + 5484 5478 -5499 5505 7 5478 5499 5505 5511 2 + 5472 5478 5484 5493 9 5472 5478 5499 5502 3 + 5472 5478 5499 5505 16 5472 5478 -5499 5505 17 + 5472 5478 -5499 5505 18 5472 5478 -5499 5505 7 + 5532 5529 5535 5541 2 5529 5535 5541 5547 1 + 5529 5535 -5541 5547 13 5529 5535 -5541 5547 12 + 5529 5535 -5541 5547 7 5529 5535 5541 5592 4 + 5529 5535 -5541 5592 5 5529 5535 -5541 5592 6 + 5529 5535 -5541 5592 7 5517 5511 5529 5532 3 + 5517 5511 5529 5535 10 5517 5511 -5529 5535 11 + 5517 5511 -5529 5535 12 5517 5511 -5529 5535 7 + 5511 5529 5535 5541 2 5505 5511 5529 5532 3 + 5505 5511 5529 5535 16 5505 5511 -5529 5535 17 + 5505 5511 -5529 5535 18 5505 5511 -5529 5535 7 + 5595 5592 5598 5604 2 5592 5598 5604 5610 1 + 5592 5598 -5604 5610 13 5592 5598 -5604 5610 12 + 5592 5598 -5604 5610 7 5592 5598 5604 5625 4 + 5592 5598 -5604 5625 5 5592 5598 -5604 5625 6 + 5592 5598 -5604 5625 7 5574 5571 5580 5586 19 + 5565 5559 5556 5586 19 5565 5571 -5580 5586 19 + 5559 5556 5586 5580 19 5559 5565 5571 5574 19 + 5559 5565 -5571 5580 19 5556 5547 5541 5592 9 + 5556 5559 5565 5571 19 5556 5586 -5580 5571 19 + 5547 5541 5592 5595 3 5547 5541 5592 5598 10 + 5547 5541 -5592 5598 11 5547 5541 -5592 5598 12 + 5547 5541 -5592 5598 7 5547 5556 5559 5565 19 + 5547 5556 5586 5580 19 5541 5547 5556 5559 3 + 5541 5547 5556 5586 3 5541 5592 5598 5604 2 + 5535 5541 5547 5556 9 5535 5541 5592 5595 3 + 5535 5541 5592 5598 16 5535 5541 -5592 5598 17 + 5535 5541 -5592 5598 18 5535 5541 -5592 5598 7 + 5628 5625 5631 5637 2 5625 5631 5637 5643 1 + 5625 5631 -5637 5643 13 5625 5631 -5637 5643 12 + 5625 5631 -5637 5643 7 5625 5631 5637 5685 4 + 5625 5631 -5637 5685 5 5625 5631 -5637 5685 6 + 5625 5631 -5637 5685 7 5619 5610 5604 5625 9 + 5610 5604 5625 5628 3 5610 5604 5625 5631 10 + 5610 5604 -5625 5631 11 5610 5604 -5625 5631 12 + 5610 5604 -5625 5631 7 5604 5625 5631 5637 2 + 5598 5604 5610 5619 9 5598 5604 5625 5628 3 + 5598 5604 5625 5631 16 5598 5604 -5625 5631 17 + 5598 5604 -5625 5631 18 5598 5604 -5625 5631 7 + 5688 5685 5691 5697 2 5685 5691 5697 5703 1 + 5685 5691 -5697 5703 13 5685 5691 -5697 5703 12 + 5685 5691 -5697 5703 7 5685 5691 5697 5715 4 + 5685 5691 -5697 5715 5 5685 5691 -5697 5715 6 + 5685 5691 -5697 5715 7 5661 5655 5652 5679 19 + 5661 5667 -5673 5679 19 5655 5652 5679 5673 19 + 5655 5661 -5667 5673 19 5652 5643 5637 5685 9 + 5652 5655 5661 5667 19 5652 5679 -5673 5667 19 + 5643 5637 5685 5688 3 5643 5637 5685 5691 10 + 5643 5637 -5685 5691 11 5643 5637 -5685 5691 12 + 5643 5637 -5685 5691 7 5643 5652 5655 5661 19 + 5643 5652 5679 5673 19 5637 5643 5652 5655 3 + 5637 5643 5652 5679 3 5637 5685 5691 5697 2 + 5631 5637 5643 5652 9 5631 5637 5685 5688 3 + 5631 5637 5685 5691 16 5631 5637 -5685 5691 17 + 5631 5637 -5685 5691 18 5631 5637 -5685 5691 7 + 5718 5715 5721 5727 2 5715 5721 5727 5733 1 + 5715 5721 -5727 5733 13 5715 5721 -5727 5733 12 + 5715 5721 -5727 5733 7 5715 5721 5727 5745 4 + 5715 5721 -5727 5745 5 5715 5721 -5727 5745 6 + 5715 5721 -5727 5745 7 5703 5697 5715 5718 3 + 5703 5697 5715 5721 10 5703 5697 -5715 5721 11 + 5703 5697 -5715 5721 12 5703 5697 -5715 5721 7 + 5697 5715 5721 5727 2 5691 5697 5715 5718 3 + 5691 5697 5715 5721 16 5691 5697 -5715 5721 17 + 5691 5697 -5715 5721 18 5691 5697 -5715 5721 7 + 5748 5745 5751 5757 2 5745 5751 5757 5763 1 + 5745 5751 -5757 5763 13 5745 5751 -5757 5763 12 + 5745 5751 -5757 5763 7 5745 5751 5757 5802 4 + 5745 5751 -5757 5802 5 5745 5751 -5757 5802 6 + 5745 5751 -5757 5802 7 5733 5727 5745 5748 3 + 5733 5727 5745 5751 10 5733 5727 -5745 5751 11 + 5733 5727 -5745 5751 12 5733 5727 -5745 5751 7 + 5727 5745 5751 5757 2 5721 5727 5745 5748 3 + 5721 5727 5745 5751 16 5721 5727 -5745 5751 17 + 5721 5727 -5745 5751 18 5721 5727 -5745 5751 7 + 5805 5802 5808 5814 2 5802 5808 5814 5820 1 + 5802 5808 -5814 5820 13 5802 5808 -5814 5820 12 + 5802 5808 -5814 5820 7 5802 5808 5814 5832 4 + 5802 5808 -5814 5832 5 5802 5808 -5814 5832 6 + 5802 5808 -5814 5832 7 5772 5763 5757 5802 9 + 5763 5757 5802 5805 3 5763 5757 5802 5808 10 + 5763 5757 -5802 5808 11 5763 5757 -5802 5808 12 + 5763 5757 -5802 5808 7 5757 5763 5772 5778 22 + 5757 5763 -5772 5778 23 5757 5763 -5772 5778 24 + 5757 5763 5772 5790 22 5757 5763 -5772 5790 23 + 5757 5763 -5772 5790 24 5757 5802 5808 5814 2 + 5751 5757 5763 5772 9 5751 5757 5802 5805 3 + 5751 5757 5802 5808 16 5751 5757 -5802 5808 17 + 5751 5757 -5802 5808 18 5751 5757 -5802 5808 7 + 5835 5832 5838 5844 2 5832 5838 5844 5850 1 + 5832 5838 -5844 5850 13 5832 5838 -5844 5850 12 + 5832 5838 -5844 5850 7 5832 5838 5844 5898 4 + 5832 5838 -5844 5898 5 5832 5838 -5844 5898 6 + 5832 5838 -5844 5898 7 5820 5814 5832 5835 3 + 5820 5814 5832 5838 10 5820 5814 -5832 5838 11 + 5820 5814 -5832 5838 12 5820 5814 -5832 5838 7 + 5814 5832 5838 5844 2 5808 5814 5832 5835 3 + 5808 5814 5832 5838 16 5808 5814 -5832 5838 17 + 5808 5814 -5832 5838 18 5808 5814 -5832 5838 7 + 5901 5898 5904 5910 2 5898 5904 5910 5916 1 + 5898 5904 -5910 5916 13 5898 5904 -5910 5916 12 + 5898 5904 -5910 5916 7 5898 5904 5910 5943 4 + 5898 5904 -5910 5943 5 5898 5904 -5910 5943 6 + 5898 5904 -5910 5943 7 5859 5850 5844 5898 9 + 5859 5868 5877 5886 9 5850 5844 5898 5901 3 + 5850 5844 5898 5904 10 5850 5844 -5898 5904 11 + 5850 5844 -5898 5904 12 5850 5844 -5898 5904 7 + 5850 5859 5868 5877 22 5850 5859 -5868 5877 23 + 5850 5859 -5868 5877 24 5844 5850 5859 5868 22 + 5844 5850 -5859 5868 23 5844 5850 -5859 5868 24 + 5844 5898 5904 5910 2 5838 5844 5850 5859 9 + 5838 5844 5898 5901 3 5838 5844 5898 5904 16 + 5838 5844 -5898 5904 17 5838 5844 -5898 5904 18 + 5838 5844 -5898 5904 7 5946 5943 5949 5955 2 + 5943 5949 5955 5964 4 5943 5949 -5955 5964 5 + 5943 5949 -5955 5964 6 5943 5949 -5955 5964 7 + 5925 5916 5910 5943 9 5916 5910 5943 5946 3 + 5916 5910 5943 5949 10 5916 5910 -5943 5949 11 + 5916 5910 -5943 5949 12 5916 5910 -5943 5949 7 + 5916 5925 5934 5937 3 5916 5925 5934 5940 3 + 5910 5916 5925 5934 9 5910 5943 5949 5955 2 + 5904 5910 5916 5925 9 5904 5910 5943 5946 3 + 5904 5910 5943 5949 16 5904 5910 -5943 5949 17 + 5904 5910 -5943 5949 18 5904 5910 -5943 5949 7 + 5967 5964 5970 5976 2 5964 5970 5976 5982 1 + 5964 5970 -5976 5982 13 5964 5970 -5976 5982 12 + 5964 5970 -5976 5982 7 5964 5970 5976 6036 4 + 5964 5970 -5976 6036 5 5964 5970 -5976 6036 6 + 5964 5970 -5976 6036 7 5955 5964 5970 5976 2 + 5949 5955 5964 5967 3 5949 5955 5964 5970 16 + 5949 5955 -5964 5970 17 5949 5955 -5964 5970 18 + 5949 5955 -5964 5970 7 6039 6036 6042 6048 2 + 6036 6042 6048 6054 1 6036 6042 -6048 6054 13 + 6036 6042 -6048 6054 12 6036 6042 -6048 6054 7 + 6036 6042 6048 6069 4 6036 6042 -6048 6069 5 + 6036 6042 -6048 6069 6 6036 6042 -6048 6069 7 + 6000 6009 6015 6018 31 6000 6009 6015 6027 31 + 5991 5982 5976 6036 9 5991 6000 6009 6015 26 + 5982 5976 6036 6039 3 5982 5976 6036 6042 10 + 5982 5976 -6036 6042 11 5982 5976 -6036 6042 12 + 5982 5976 -6036 6042 7 5982 5991 6000 6009 9 + 5976 5982 5991 6000 22 5976 5982 -5991 6000 23 + 5976 5982 -5991 6000 24 5976 6036 6042 6048 2 + 5970 5976 5982 5991 9 5970 5976 6036 6039 3 + 5970 5976 6036 6042 16 5970 5976 -6036 6042 17 + 5970 5976 -6036 6042 18 5970 5976 -6036 6042 7 + 6072 6069 6075 6081 2 6069 6075 6081 6087 1 + 6069 6075 -6081 6087 13 6069 6075 -6081 6087 12 + 6069 6075 -6081 6087 7 6069 6075 6081 6120 4 + 6069 6075 -6081 6120 5 6069 6075 -6081 6120 6 + 6069 6075 -6081 6120 7 6063 6054 6048 6069 9 + 6054 6048 6069 6072 3 6054 6048 6069 6075 10 + 6054 6048 -6069 6075 11 6054 6048 -6069 6075 12 + 6054 6048 -6069 6075 7 6048 6069 6075 6081 2 + 6042 6048 6054 6063 9 6042 6048 6069 6072 3 + 6042 6048 6069 6075 16 6042 6048 -6069 6075 17 + 6042 6048 -6069 6075 18 6042 6048 -6069 6075 7 + 6123 6120 6126 6132 2 6120 6126 6132 6138 1 + 6120 6126 -6132 6138 13 6120 6126 -6132 6138 12 + 6120 6126 -6132 6138 7 6120 6126 6132 6171 4 + 6120 6126 -6132 6171 5 6120 6126 -6132 6171 6 + 6120 6126 -6132 6171 7 6096 6087 6081 6120 9 + 6087 6081 6120 6123 3 6087 6081 6120 6126 10 + 6087 6081 -6120 6126 11 6087 6081 -6120 6126 12 + 6087 6081 -6120 6126 7 6087 6096 6105 6108 8 + 6081 6087 6096 6105 9 6081 6120 6126 6132 2 + 6075 6081 6087 6096 9 6075 6081 6120 6123 3 + 6075 6081 6120 6126 16 6075 6081 -6120 6126 17 + 6075 6081 -6120 6126 18 6075 6081 -6120 6126 7 + 6174 6171 6177 6183 2 6171 6177 6183 6189 1 + 6171 6177 -6183 6189 13 6171 6177 -6183 6189 12 + 6171 6177 -6183 6189 7 6171 6177 6183 6237 4 + 6171 6177 -6183 6237 5 6171 6177 -6183 6237 6 + 6171 6177 -6183 6237 7 6147 6138 6132 6171 9 + 6138 6132 6171 6174 3 6138 6132 6171 6177 10 + 6138 6132 -6171 6177 11 6138 6132 -6171 6177 12 + 6138 6132 -6171 6177 7 6138 6147 6156 6159 8 + 6132 6138 6147 6156 9 6132 6171 6177 6183 2 + 6126 6132 6138 6147 9 6126 6132 6171 6174 3 + 6126 6132 6171 6177 16 6126 6132 -6171 6177 17 + 6126 6132 -6171 6177 18 6126 6132 -6171 6177 7 + 6240 6237 6243 6249 2 6237 6243 6249 6255 1 + 6237 6243 -6249 6255 13 6237 6243 -6249 6255 12 + 6237 6243 -6249 6255 7 6237 6243 6249 6279 4 + 6237 6243 -6249 6279 5 6237 6243 -6249 6279 6 + 6237 6243 -6249 6279 7 6198 6189 6183 6237 9 + 6198 6207 6216 6225 9 6189 6183 6237 6240 3 + 6189 6183 6237 6243 10 6189 6183 -6237 6243 11 + 6189 6183 -6237 6243 12 6189 6183 -6237 6243 7 + 6189 6198 6207 6216 22 6189 6198 -6207 6216 23 + 6189 6198 -6207 6216 24 6183 6189 6198 6207 22 + 6183 6189 -6198 6207 23 6183 6189 -6198 6207 24 + 6183 6237 6243 6249 2 6177 6183 6189 6198 9 + 6177 6183 6237 6240 3 6177 6183 6237 6243 16 + 6177 6183 -6237 6243 17 6177 6183 -6237 6243 18 + 6177 6183 -6237 6243 7 6282 6279 6285 6291 2 + 6279 6285 6291 6297 1 6279 6285 -6291 6297 13 + 6279 6285 -6291 6297 12 6279 6285 -6291 6297 7 + 6279 6285 6291 6351 4 6279 6285 -6291 6351 5 + 6279 6285 -6291 6351 6 6279 6285 -6291 6351 7 + 6264 6255 6249 6279 9 6255 6249 6279 6282 3 + 6255 6249 6279 6285 10 6255 6249 -6279 6285 11 + 6255 6249 -6279 6285 12 6255 6249 -6279 6285 7 + 6249 6255 6264 6267 3 6249 6255 6264 6270 10 + 6249 6255 -6264 6270 11 6249 6255 -6264 6270 12 + 6249 6255 -6264 6270 7 6249 6279 6285 6291 2 + 6243 6249 6255 6264 9 6243 6249 6279 6282 3 + 6243 6249 6279 6285 16 6243 6249 -6279 6285 17 + 6243 6249 -6279 6285 18 6243 6249 -6279 6285 7 + 6354 6351 6357 6363 2 6351 6357 6363 6369 1 + 6351 6357 -6363 6369 13 6351 6357 -6363 6369 12 + 6351 6357 -6363 6369 7 6351 6357 6363 6393 4 + 6351 6357 -6363 6393 5 6351 6357 -6363 6393 6 + 6351 6357 -6363 6393 7 6315 6324 6330 6333 31 + 6315 6324 6330 6342 31 6306 6297 6291 6351 9 + 6306 6315 6324 6330 26 6297 6291 6351 6354 3 + 6297 6291 6351 6357 10 6297 6291 -6351 6357 11 + 6297 6291 -6351 6357 12 6297 6291 -6351 6357 7 + 6297 6306 6315 6324 9 6291 6297 6306 6315 22 + 6291 6297 -6306 6315 23 6291 6297 -6306 6315 24 + 6291 6351 6357 6363 2 6285 6291 6297 6306 9 + 6285 6291 6351 6354 3 6285 6291 6351 6357 16 + 6285 6291 -6351 6357 17 6285 6291 -6351 6357 18 + 6285 6291 -6351 6357 7 6396 6393 6399 6405 2 + 6393 6399 6405 6411 1 6393 6399 -6405 6411 13 + 6393 6399 -6405 6411 12 6393 6399 -6405 6411 7 + 6393 6399 6405 6423 4 6393 6399 -6405 6423 5 + 6393 6399 -6405 6423 6 6393 6399 -6405 6423 7 + 6378 6369 6363 6393 9 6369 6363 6393 6396 3 + 6369 6363 6393 6399 10 6369 6363 -6393 6399 11 + 6369 6363 -6393 6399 12 6369 6363 -6393 6399 7 + 6363 6369 6378 6381 3 6363 6369 6378 6384 10 + 6363 6369 -6378 6384 11 6363 6369 -6378 6384 12 + 6363 6369 -6378 6384 7 6363 6393 6399 6405 2 + 6357 6363 6369 6378 9 6357 6363 6393 6396 3 + 6357 6363 6393 6399 16 6357 6363 -6393 6399 17 + 6357 6363 -6393 6399 18 6357 6363 -6393 6399 7 + 6426 6423 6429 6435 2 6423 6429 6435 6441 1 + 6423 6429 -6435 6441 13 6423 6429 -6435 6441 12 + 6423 6429 -6435 6441 7 6423 6429 6435 6456 4 + 6423 6429 -6435 6456 5 6423 6429 -6435 6456 6 + 6423 6429 -6435 6456 7 6411 6405 6423 6426 3 + 6411 6405 6423 6429 10 6411 6405 -6423 6429 11 + 6411 6405 -6423 6429 12 6411 6405 -6423 6429 7 + 6405 6423 6429 6435 2 6399 6405 6423 6426 3 + 6399 6405 6423 6429 16 6399 6405 -6423 6429 17 + 6399 6405 -6423 6429 18 6399 6405 -6423 6429 7 + 6459 6456 6462 6468 2 6456 6462 6468 6474 1 + 6456 6462 -6468 6474 13 6456 6462 -6468 6474 12 + 6456 6462 -6468 6474 7 6456 6462 6468 6507 4 + 6456 6462 -6468 6507 5 6456 6462 -6468 6507 6 + 6456 6462 -6468 6507 7 6450 6441 6435 6456 9 + 6441 6435 6456 6459 3 6441 6435 6456 6462 10 + 6441 6435 -6456 6462 11 6441 6435 -6456 6462 12 + 6441 6435 -6456 6462 7 6435 6456 6462 6468 2 + 6429 6435 6441 6450 9 6429 6435 6456 6459 3 + 6429 6435 6456 6462 16 6429 6435 -6456 6462 17 + 6429 6435 -6456 6462 18 6429 6435 -6456 6462 7 + 6510 6507 6513 6519 2 6507 6513 6519 6525 1 + 6507 6513 -6519 6525 13 6507 6513 -6519 6525 12 + 6507 6513 -6519 6525 7 6507 6513 6519 6555 4 + 6507 6513 -6519 6555 5 6507 6513 -6519 6555 6 + 6507 6513 -6519 6555 7 6483 6474 6468 6507 9 + 6474 6468 6507 6510 3 6474 6468 6507 6513 10 + 6474 6468 -6507 6513 11 6474 6468 -6507 6513 12 + 6474 6468 -6507 6513 7 6474 6483 6492 6495 8 + 6468 6474 6483 6492 9 6468 6507 6513 6519 2 + 6462 6468 6474 6483 9 6462 6468 6507 6510 3 + 6462 6468 6507 6513 16 6462 6468 -6507 6513 17 + 6462 6468 -6507 6513 18 6462 6468 -6507 6513 7 + 6558 6555 6561 6567 2 6555 6561 6567 6573 1 + 6555 6561 -6567 6573 13 6555 6561 -6567 6573 12 + 6555 6561 -6567 6573 7 6555 6561 6567 6585 4 + 6555 6561 -6567 6585 5 6555 6561 -6567 6585 6 + 6555 6561 -6567 6585 7 6543 6525 6519 6555 9 + 6531 6525 6519 6555 9 6525 6519 6555 6558 3 + 6525 6519 6555 6561 10 6525 6519 -6555 6561 11 + 6525 6519 -6555 6561 12 6525 6519 -6555 6561 7 + 6519 6555 6561 6567 2 6513 6519 6525 6531 9 + 6513 6519 6525 6543 9 6513 6519 6555 6558 3 + 6513 6519 6555 6561 16 6513 6519 -6555 6561 17 + 6513 6519 -6555 6561 18 6513 6519 -6555 6561 7 + 6588 6585 6591 6597 2 6585 6591 6597 6603 1 + 6585 6591 -6597 6603 13 6585 6591 -6597 6603 12 + 6585 6591 -6597 6603 7 6585 6591 6597 6642 4 + 6585 6591 -6597 6642 5 6585 6591 -6597 6642 6 + 6585 6591 -6597 6642 7 6573 6567 6585 6588 3 + 6573 6567 6585 6591 10 6573 6567 -6585 6591 11 + 6573 6567 -6585 6591 12 6573 6567 -6585 6591 7 + 6567 6585 6591 6597 2 6561 6567 6585 6588 3 + 6561 6567 6585 6591 16 6561 6567 -6585 6591 17 + 6561 6567 -6585 6591 18 6561 6567 -6585 6591 7 + 6645 6642 6648 6654 2 6642 6648 6654 6660 1 + 6642 6648 -6654 6660 13 6642 6648 -6654 6660 12 + 6642 6648 -6654 6660 7 6642 6648 6654 6684 4 + 6642 6648 -6654 6684 5 6642 6648 -6654 6684 6 + 6642 6648 -6654 6684 7 6612 6603 6597 6642 9 + 6603 6597 6642 6645 3 6603 6597 6642 6648 10 + 6603 6597 -6642 6648 11 6603 6597 -6642 6648 12 + 6603 6597 -6642 6648 7 6597 6603 6612 6618 22 + 6597 6603 -6612 6618 23 6597 6603 -6612 6618 24 + 6597 6603 6612 6630 22 6597 6603 -6612 6630 23 + 6597 6603 -6612 6630 24 6597 6642 6648 6654 2 + 6591 6597 6603 6612 9 6591 6597 6642 6645 3 + 6591 6597 6642 6648 16 6591 6597 -6642 6648 17 + 6591 6597 -6642 6648 18 6591 6597 -6642 6648 7 + 6687 6684 6690 6696 2 6684 6690 6696 6702 1 + 6684 6690 -6696 6702 13 6684 6690 -6696 6702 12 + 6684 6690 -6696 6702 7 6684 6690 6696 6747 4 + 6684 6690 -6696 6747 5 6684 6690 -6696 6747 6 + 6684 6690 -6696 6747 7 6678 6660 6654 6684 9 + 6666 6660 6654 6684 9 6660 6654 6684 6687 3 + 6660 6654 6684 6690 10 6660 6654 -6684 6690 11 + 6660 6654 -6684 6690 12 6660 6654 -6684 6690 7 + 6654 6684 6690 6696 2 6648 6654 6660 6666 9 + 6648 6654 6660 6678 9 6648 6654 6684 6687 3 + 6648 6654 6684 6690 16 6648 6654 -6684 6690 17 + 6648 6654 -6684 6690 18 6648 6654 -6684 6690 7 + 6750 6747 6753 6759 2 6747 6753 6759 6765 1 + 6747 6753 -6759 6765 13 6747 6753 -6759 6765 12 + 6747 6753 -6759 6765 7 6747 6753 6759 6804 4 + 6747 6753 -6759 6804 5 6747 6753 -6759 6804 6 + 6747 6753 -6759 6804 7 6729 6726 6735 6741 19 + 6720 6714 6711 6741 19 6720 6726 -6735 6741 19 + 6714 6711 6741 6735 19 6714 6720 6726 6729 19 + 6714 6720 -6726 6735 19 6711 6702 6696 6747 9 + 6711 6714 6720 6726 19 6711 6741 -6735 6726 19 + 6702 6696 6747 6750 3 6702 6696 6747 6753 10 + 6702 6696 -6747 6753 11 6702 6696 -6747 6753 12 + 6702 6696 -6747 6753 7 6702 6711 6714 6720 19 + 6702 6711 6741 6735 19 6696 6702 6711 6714 3 + 6696 6702 6711 6741 3 6696 6747 6753 6759 2 + 6690 6696 6702 6711 9 6690 6696 6747 6750 3 + 6690 6696 6747 6753 16 6690 6696 -6747 6753 17 + 6690 6696 -6747 6753 18 6690 6696 -6747 6753 7 + 6807 6804 6810 6816 2 6804 6810 6816 6825 4 + 6804 6810 -6816 6825 5 6804 6810 -6816 6825 6 + 6804 6810 -6816 6825 7 6783 6765 6759 6804 9 + 6771 6765 6759 6804 9 6771 6765 6783 6792 22 + 6771 6765 -6783 6792 23 6771 6765 -6783 6792 24 + 6765 6759 6804 6807 3 6765 6759 6804 6810 10 + 6765 6759 -6804 6810 11 6765 6759 -6804 6810 12 + 6765 6759 -6804 6810 7 6759 6765 6783 6792 22 + 6759 6765 -6783 6792 23 6759 6765 -6783 6792 24 + 6759 6804 6810 6816 2 6753 6759 6765 6771 9 + 6753 6759 6765 6783 9 6753 6759 6804 6807 3 + 6753 6759 6804 6810 16 6753 6759 -6804 6810 17 + 6753 6759 -6804 6810 18 6753 6759 -6804 6810 7 + 6828 6825 6831 6837 2 6825 6831 6837 6843 1 + 6825 6831 -6837 6843 13 6825 6831 -6837 6843 12 + 6825 6831 -6837 6843 7 6825 6831 6837 6855 4 + 6825 6831 -6837 6855 5 6825 6831 -6837 6855 6 + 6825 6831 -6837 6855 7 6816 6825 6831 6837 2 + 6810 6816 6825 6828 3 6810 6816 6825 6831 16 + 6810 6816 -6825 6831 17 6810 6816 -6825 6831 18 + 6810 6816 -6825 6831 7 6858 6855 6861 6867 2 + 6855 6861 6867 6873 1 6855 6861 -6867 6873 13 + 6855 6861 -6867 6873 12 6855 6861 -6867 6873 7 + 6855 6861 6867 6900 4 6855 6861 -6867 6900 5 + 6855 6861 -6867 6900 6 6855 6861 -6867 6900 7 + 6843 6837 6855 6858 3 6843 6837 6855 6861 10 + 6843 6837 -6855 6861 11 6843 6837 -6855 6861 12 + 6843 6837 -6855 6861 7 6837 6855 6861 6867 2 + 6831 6837 6855 6858 3 6831 6837 6855 6861 16 + 6831 6837 -6855 6861 17 6831 6837 -6855 6861 18 + 6831 6837 -6855 6861 7 6903 6900 6906 6912 2 + 6900 6906 6912 6918 1 6900 6906 -6912 6918 13 + 6900 6906 -6912 6918 12 6900 6906 -6912 6918 7 + 6900 6906 6912 6966 4 6900 6906 -6912 6966 5 + 6900 6906 -6912 6966 6 6900 6906 -6912 6966 7 + 6882 6873 6867 6900 9 6873 6867 6900 6903 3 + 6873 6867 6900 6906 10 6873 6867 -6900 6906 11 + 6873 6867 -6900 6906 12 6873 6867 -6900 6906 7 + 6873 6882 6891 6894 3 6873 6882 6891 6897 3 + 6867 6873 6882 6891 9 6867 6900 6906 6912 2 + 6861 6867 6873 6882 9 6861 6867 6900 6903 3 + 6861 6867 6900 6906 16 6861 6867 -6900 6906 17 + 6861 6867 -6900 6906 18 6861 6867 -6900 6906 7 + 6969 6966 6972 6978 2 6966 6972 6978 6984 1 + 6966 6972 -6978 6984 13 6966 6972 -6978 6984 12 + 6966 6972 -6978 6984 7 6966 6972 6978 6996 4 + 6966 6972 -6978 6996 5 6966 6972 -6978 6996 6 + 6966 6972 -6978 6996 7 6927 6918 6912 6966 9 + 6927 6936 6945 6954 9 6918 6912 6966 6969 3 + 6918 6912 6966 6972 10 6918 6912 -6966 6972 11 + 6918 6912 -6966 6972 12 6918 6912 -6966 6972 7 + 6918 6927 6936 6945 22 6918 6927 -6936 6945 23 + 6918 6927 -6936 6945 24 6912 6918 6927 6936 22 + 6912 6918 -6927 6936 23 6912 6918 -6927 6936 24 + 6912 6966 6972 6978 2 6906 6912 6918 6927 9 + 6906 6912 6966 6969 3 6906 6912 6966 6972 16 + 6906 6912 -6966 6972 17 6906 6912 -6966 6972 18 + 6906 6912 -6966 6972 7 6999 6996 7002 7008 2 + 6996 7002 7008 7014 1 6996 7002 -7008 7014 13 + 6996 7002 -7008 7014 12 6996 7002 -7008 7014 7 + 6996 7002 7008 7047 4 6996 7002 -7008 7047 5 + 6996 7002 -7008 7047 6 6996 7002 -7008 7047 7 + 6984 6978 6996 6999 3 6984 6978 6996 7002 10 + 6984 6978 -6996 7002 11 6984 6978 -6996 7002 12 + 6984 6978 -6996 7002 7 6978 6996 7002 7008 2 + 6972 6978 6996 6999 3 6972 6978 6996 7002 16 + 6972 6978 -6996 7002 17 6972 6978 -6996 7002 18 + 6972 6978 -6996 7002 7 7050 7047 7053 7056 2 + 7050 7047 7053 7083 2 7047 7053 7056 7065 1 + 7047 7053 -7056 7065 13 7047 7053 -7056 7065 12 + 7047 7053 -7056 7065 7 7047 7053 7083 7074 1 + 7047 7053 -7083 7074 13 7047 7053 -7083 7074 12 + 7047 7053 -7083 7074 7 7047 7053 7083 7089 4 + 7047 7053 -7083 7089 5 7047 7053 -7083 7089 6 + 7047 7053 -7083 7089 7 7023 7014 7008 7047 9 + 7014 7008 7047 7050 3 7014 7008 7047 7053 10 + 7014 7008 -7047 7053 11 7014 7008 -7047 7053 12 + 7014 7008 -7047 7053 7 7014 7023 7032 7035 8 + 7008 7014 7023 7032 9 7008 7047 7053 7056 2 + 7008 7047 7053 7083 2 7002 7008 7014 7023 9 + 7002 7008 7047 7050 3 7002 7008 7047 7053 16 + 7002 7008 -7047 7053 17 7002 7008 -7047 7053 18 + 7002 7008 -7047 7053 7 7092 7089 7095 7101 2 + 7089 7095 7101 7107 1 7089 7095 -7101 7107 13 + 7089 7095 -7101 7107 12 7089 7095 -7101 7107 7 + 7089 7095 7101 7122 4 7089 7095 -7101 7122 5 + 7089 7095 -7101 7122 6 7089 7095 -7101 7122 7 + 7083 7089 7095 7101 2 7074 7083 7089 7092 3 + 7074 7083 7089 7095 10 7074 7083 -7089 7095 11 + 7074 7083 -7089 7095 12 7074 7083 -7089 7095 7 + 7065 7056 -7053 7083 3 7065 7074 7083 7089 9 + 7056 7053 -7083 7074 3 7056 7053 7083 7089 3 + 7056 7065 -7074 7083 22 7056 7065 -7074 7083 23 + 7056 7065 -7074 7083 24 7053 7056 -7065 7074 9 + 7053 7083 -7074 7065 9 7053 7083 7089 7092 3 + 7053 7083 7089 7095 16 7053 7083 -7089 7095 17 + 7053 7083 -7089 7095 18 7053 7083 -7089 7095 7 + 7125 7122 7128 7134 2 7122 7128 7134 7140 1 + 7122 7128 -7134 7140 13 7122 7128 -7134 7140 12 + 7122 7128 -7134 7140 7 7122 7128 7134 7185 4 + 7122 7128 -7134 7185 5 7122 7128 -7134 7185 6 + 7122 7128 -7134 7185 7 7116 7107 7101 7122 9 + 7107 7101 7122 7125 3 7107 7101 7122 7128 10 + 7107 7101 -7122 7128 11 7107 7101 -7122 7128 12 + 7107 7101 -7122 7128 7 7101 7122 7128 7134 2 + 7095 7101 7107 7116 9 7095 7101 7122 7125 3 + 7095 7101 7122 7128 16 7095 7101 -7122 7128 17 + 7095 7101 -7122 7128 18 7095 7101 -7122 7128 7 + 7188 7185 7191 7197 2 7185 7191 7197 7203 1 + 7185 7191 -7197 7203 13 7185 7191 -7197 7203 12 + 7185 7191 -7197 7203 7 7185 7191 7197 7227 4 + 7185 7191 -7197 7227 5 7185 7191 -7197 7227 6 + 7185 7191 -7197 7227 7 7167 7164 7173 7179 19 + 7158 7152 7149 7179 19 7158 7164 -7173 7179 19 + 7152 7149 7179 7173 19 7152 7158 7164 7167 19 + 7152 7158 -7164 7173 19 7149 7140 7134 7185 9 + 7149 7152 7158 7164 19 7149 7179 -7173 7164 19 + 7140 7134 7185 7188 3 7140 7134 7185 7191 10 + 7140 7134 -7185 7191 11 7140 7134 -7185 7191 12 + 7140 7134 -7185 7191 7 7140 7149 7152 7158 19 + 7140 7149 7179 7173 19 7134 7140 7149 7152 3 + 7134 7140 7149 7179 3 7134 7185 7191 7197 2 + 7128 7134 7140 7149 9 7128 7134 7185 7188 3 + 7128 7134 7185 7191 16 7128 7134 -7185 7191 17 + 7128 7134 -7185 7191 18 7128 7134 -7185 7191 7 + 7230 7227 7233 7239 2 7227 7233 7239 7245 1 + 7227 7233 -7239 7245 13 7227 7233 -7239 7245 12 + 7227 7233 -7239 7245 7 7227 7233 7239 7269 4 + 7227 7233 -7239 7269 5 7227 7233 -7239 7269 6 + 7227 7233 -7239 7269 7 7212 7203 7197 7227 9 + 7203 7197 7227 7230 3 7203 7197 7227 7233 10 + 7203 7197 -7227 7233 11 7203 7197 -7227 7233 12 + 7203 7197 -7227 7233 7 7197 7203 7212 7215 3 + 7197 7203 7212 7218 10 7197 7203 -7212 7218 11 + 7197 7203 -7212 7218 12 7197 7203 -7212 7218 7 + 7197 7227 7233 7239 2 7191 7197 7203 7212 9 + 7191 7197 7227 7230 3 7191 7197 7227 7233 16 + 7191 7197 -7227 7233 17 7191 7197 -7227 7233 18 + 7191 7197 -7227 7233 7 7272 7269 7275 7281 2 + 7269 7275 7281 7287 1 7269 7275 -7281 7287 13 + 7269 7275 -7281 7287 12 7269 7275 -7281 7287 7 + 7269 7275 7281 7320 4 7269 7275 -7281 7320 5 + 7269 7275 -7281 7320 6 7269 7275 -7281 7320 7 + 7263 7245 7239 7269 9 7251 7245 7239 7269 9 + 7245 7239 7269 7272 3 7245 7239 7269 7275 10 + 7245 7239 -7269 7275 11 7245 7239 -7269 7275 12 + 7245 7239 -7269 7275 7 7239 7269 7275 7281 2 + 7233 7239 7245 7251 9 7233 7239 7245 7263 9 + 7233 7239 7269 7272 3 7233 7239 7269 7275 16 + 7233 7239 -7269 7275 17 7233 7239 -7269 7275 18 + 7233 7239 -7269 7275 7 7323 7320 7326 7332 2 + 7320 7326 7332 7341 4 7320 7326 -7332 7341 5 + 7320 7326 -7332 7341 6 7320 7326 -7332 7341 7 + 7296 7287 7281 7320 9 7287 7281 7320 7323 3 + 7287 7281 7320 7326 10 7287 7281 -7320 7326 11 + 7287 7281 -7320 7326 12 7287 7281 -7320 7326 7 + 7287 7296 7305 7308 8 7281 7287 7296 7305 9 + 7281 7320 7326 7332 2 7275 7281 7287 7296 9 + 7275 7281 7320 7323 3 7275 7281 7320 7326 16 + 7275 7281 -7320 7326 17 7275 7281 -7320 7326 18 + 7275 7281 -7320 7326 7 7344 7341 7347 7353 2 + 7341 7347 7353 7359 1 7341 7347 -7353 7359 13 + 7341 7347 -7353 7359 12 7341 7347 -7353 7359 7 + 7341 7347 7353 7389 4 7341 7347 -7353 7389 5 + 7341 7347 -7353 7389 6 7341 7347 -7353 7389 7 + 7332 7341 7347 7353 2 7326 7332 7341 7344 3 + 7326 7332 7341 7347 16 7326 7332 -7341 7347 17 + 7326 7332 -7341 7347 18 7326 7332 -7341 7347 7 + 7392 7389 7395 7401 2 7389 7395 7401 7407 1 + 7389 7395 -7401 7407 13 7389 7395 -7401 7407 12 + 7389 7395 -7401 7407 7 7389 7395 7401 7419 4 + 7389 7395 -7401 7419 5 7389 7395 -7401 7419 6 + 7389 7395 -7401 7419 7 7377 7359 7353 7389 9 + 7365 7359 7353 7389 9 7359 7353 7389 7392 3 + 7359 7353 7389 7395 10 7359 7353 -7389 7395 11 + 7359 7353 -7389 7395 12 7359 7353 -7389 7395 7 + 7353 7389 7395 7401 2 7347 7353 7359 7365 9 + 7347 7353 7359 7377 9 7347 7353 7389 7392 3 + 7347 7353 7389 7395 16 7347 7353 -7389 7395 17 + 7347 7353 -7389 7395 18 7347 7353 -7389 7395 7 + 7422 7419 7425 7431 2 7419 7425 7431 7437 1 + 7419 7425 -7431 7437 13 7419 7425 -7431 7437 12 + 7419 7425 -7431 7437 7 7419 7425 7431 7485 4 + 7419 7425 -7431 7485 5 7419 7425 -7431 7485 6 + 7419 7425 -7431 7485 7 7407 7401 7419 7422 3 + 7407 7401 7419 7425 10 7407 7401 -7419 7425 11 + 7407 7401 -7419 7425 12 7407 7401 -7419 7425 7 + 7401 7419 7425 7431 2 7395 7401 7419 7422 3 + 7395 7401 7419 7425 16 7395 7401 -7419 7425 17 + 7395 7401 -7419 7425 18 7395 7401 -7419 7425 7 + 7488 7485 7491 7497 2 7485 7491 7497 7503 1 + 7485 7491 -7497 7503 13 7485 7491 -7497 7503 12 + 7485 7491 -7497 7503 7 7485 7491 7497 7515 4 + 7485 7491 -7497 7515 5 7485 7491 -7497 7515 6 + 7485 7491 -7497 7515 7 7446 7437 7431 7485 9 + 7446 7455 7464 7473 9 7437 7431 7485 7488 3 + 7437 7431 7485 7491 10 7437 7431 -7485 7491 11 + 7437 7431 -7485 7491 12 7437 7431 -7485 7491 7 + 7437 7446 7455 7464 22 7437 7446 -7455 7464 23 + 7437 7446 -7455 7464 24 7431 7437 7446 7455 22 + 7431 7437 -7446 7455 23 7431 7437 -7446 7455 24 + 7431 7485 7491 7497 2 7425 7431 7437 7446 9 + 7425 7431 7485 7488 3 7425 7431 7485 7491 16 + 7425 7431 -7485 7491 17 7425 7431 -7485 7491 18 + 7425 7431 -7485 7491 7 7518 7515 7521 7527 2 + 7515 7521 7527 7533 1 7515 7521 -7527 7533 13 + 7515 7521 -7527 7533 12 7515 7521 -7527 7533 7 + 7515 7521 7527 7548 4 7515 7521 -7527 7548 5 + 7515 7521 -7527 7548 6 7515 7521 -7527 7548 7 + 7503 7497 7515 7518 3 7503 7497 7515 7521 10 + 7503 7497 -7515 7521 11 7503 7497 -7515 7521 12 + 7503 7497 -7515 7521 7 7497 7515 7521 7527 2 + 7491 7497 7515 7518 3 7491 7497 7515 7521 16 + 7491 7497 -7515 7521 17 7491 7497 -7515 7521 18 + 7491 7497 -7515 7521 7 7551 7548 7554 7560 2 + 7548 7554 7560 7566 1 7548 7554 -7560 7566 13 + 7548 7554 -7560 7566 12 7548 7554 -7560 7566 7 + 7548 7554 7560 7605 4 7548 7554 -7560 7605 5 + 7548 7554 -7560 7605 6 7548 7554 -7560 7605 7 + 7542 7533 7527 7548 9 7533 7527 7548 7551 3 + 7533 7527 7548 7554 10 7533 7527 -7548 7554 11 + 7533 7527 -7548 7554 12 7533 7527 -7548 7554 7 + 7527 7548 7554 7560 2 7521 7527 7533 7542 9 + 7521 7527 7548 7551 3 7521 7527 7548 7554 16 + 7521 7527 -7548 7554 17 7521 7527 -7548 7554 18 + 7521 7527 -7548 7554 7 7608 7605 7611 7617 2 + 7605 7611 7617 7623 1 7605 7611 -7617 7623 13 + 7605 7611 -7617 7623 12 7605 7611 -7617 7623 7 + 7605 7611 7617 7650 4 7605 7611 -7617 7650 5 + 7605 7611 -7617 7650 6 7605 7611 -7617 7650 7 + 7575 7566 7560 7605 9 7566 7560 7605 7608 3 + 7566 7560 7605 7611 10 7566 7560 -7605 7611 11 + 7566 7560 -7605 7611 12 7566 7560 -7605 7611 7 + 7560 7566 7575 7581 22 7560 7566 -7575 7581 23 + 7560 7566 -7575 7581 24 7560 7566 7575 7593 22 + 7560 7566 -7575 7593 23 7560 7566 -7575 7593 24 + 7560 7605 7611 7617 2 7554 7560 7566 7575 9 + 7554 7560 7605 7608 3 7554 7560 7605 7611 16 + 7554 7560 -7605 7611 17 7554 7560 -7605 7611 18 + 7554 7560 -7605 7611 7 7653 7650 7656 7662 2 + 7650 7656 7662 7668 1 7650 7656 -7662 7668 13 + 7650 7656 -7662 7668 12 7650 7656 -7662 7668 7 + 7650 7656 7662 7680 4 7650 7656 -7662 7680 5 + 7650 7656 -7662 7680 6 7650 7656 -7662 7680 7 + 7632 7623 7617 7650 9 7623 7617 7650 7653 3 + 7623 7617 7650 7656 10 7623 7617 -7650 7656 11 + 7623 7617 -7650 7656 12 7623 7617 -7650 7656 7 + 7623 7632 7641 7644 3 7623 7632 7641 7647 3 + 7617 7623 7632 7641 9 7617 7650 7656 7662 2 + 7611 7617 7623 7632 9 7611 7617 7650 7653 3 + 7611 7617 7650 7656 16 7611 7617 -7650 7656 17 + 7611 7617 -7650 7656 18 7611 7617 -7650 7656 7 + 7683 7680 7686 7692 2 7680 7686 7692 7698 1 + 7680 7686 -7692 7698 13 7680 7686 -7692 7698 12 + 7680 7686 -7692 7698 7 7680 7686 7692 7722 4 + 7680 7686 -7692 7722 5 7680 7686 -7692 7722 6 + 7680 7686 -7692 7722 7 7668 7662 7680 7683 3 + 7668 7662 7680 7686 10 7668 7662 -7680 7686 11 + 7668 7662 -7680 7686 12 7668 7662 -7680 7686 7 + 7662 7680 7686 7692 2 7656 7662 7680 7683 3 + 7656 7662 7680 7686 16 7656 7662 -7680 7686 17 + 7656 7662 -7680 7686 18 7656 7662 -7680 7686 7 + 7725 7722 7728 7734 2 7722 7728 7734 7740 1 + 7722 7728 -7734 7740 13 7722 7728 -7734 7740 12 + 7722 7728 -7734 7740 7 7722 7728 7734 7770 4 + 7722 7728 -7734 7770 5 7722 7728 -7734 7770 6 + 7722 7728 -7734 7770 7 7716 7698 7692 7722 9 + 7704 7698 7692 7722 9 7698 7692 7722 7725 3 + 7698 7692 7722 7728 10 7698 7692 -7722 7728 11 + 7698 7692 -7722 7728 12 7698 7692 -7722 7728 7 + 7692 7722 7728 7734 2 7686 7692 7698 7704 9 + 7686 7692 7698 7716 9 7686 7692 7722 7725 3 + 7686 7692 7722 7728 16 7686 7692 -7722 7728 17 + 7686 7692 -7722 7728 18 7686 7692 -7722 7728 7 + 7773 7770 7776 7782 2 7770 7776 7782 7788 1 + 7770 7776 -7782 7788 13 7770 7776 -7782 7788 12 + 7770 7776 -7782 7788 7 7770 7776 7782 7842 4 + 7770 7776 -7782 7842 5 7770 7776 -7782 7842 6 + 7770 7776 -7782 7842 7 7758 7740 7734 7770 9 + 7746 7740 7734 7770 9 7740 7734 7770 7773 3 + 7740 7734 7770 7776 10 7740 7734 -7770 7776 11 + 7740 7734 -7770 7776 12 7740 7734 -7770 7776 7 + 7734 7770 7776 7782 2 7728 7734 7740 7746 9 + 7728 7734 7740 7758 9 7728 7734 7770 7773 3 + 7728 7734 7770 7776 16 7728 7734 -7770 7776 17 + 7728 7734 -7770 7776 18 7728 7734 -7770 7776 7 + 7845 7842 7848 7854 2 7842 7848 7854 7860 1 + 7842 7848 -7854 7860 13 7842 7848 -7854 7860 12 + 7842 7848 -7854 7860 7 7842 7848 7854 7905 4 + 7842 7848 -7854 7905 5 7842 7848 -7854 7905 6 + 7842 7848 -7854 7905 7 7806 7815 7821 7824 31 + 7806 7815 7821 7833 31 7797 7788 7782 7842 9 + 7797 7806 7815 7821 26 7788 7782 7842 7845 3 + 7788 7782 7842 7848 10 7788 7782 -7842 7848 11 + 7788 7782 -7842 7848 12 7788 7782 -7842 7848 7 + 7788 7797 7806 7815 9 7782 7788 7797 7806 22 + 7782 7788 -7797 7806 23 7782 7788 -7797 7806 24 + 7782 7842 7848 7854 2 7776 7782 7788 7797 9 + 7776 7782 7842 7845 3 7776 7782 7842 7848 16 + 7776 7782 -7842 7848 17 7776 7782 -7842 7848 18 + 7776 7782 -7842 7848 7 7908 7905 7911 7917 2 + 7905 7911 7917 7923 1 7905 7911 -7917 7923 13 + 7905 7911 -7917 7923 12 7905 7911 -7917 7923 7 + 7905 7911 7917 7947 4 7905 7911 -7917 7947 5 + 7905 7911 -7917 7947 6 7905 7911 -7917 7947 7 + 7887 7884 7893 7899 19 7878 7872 7869 7899 19 + 7878 7884 -7893 7899 19 7872 7869 7899 7893 19 + 7872 7878 7884 7887 19 7872 7878 -7884 7893 19 + 7869 7860 7854 7905 9 7869 7872 7878 7884 19 + 7869 7899 -7893 7884 19 7860 7854 7905 7908 3 + 7860 7854 7905 7911 10 7860 7854 -7905 7911 11 + 7860 7854 -7905 7911 12 7860 7854 -7905 7911 7 + 7860 7869 7872 7878 19 7860 7869 7899 7893 19 + 7854 7860 7869 7872 3 7854 7860 7869 7899 3 + 7854 7905 7911 7917 2 7848 7854 7860 7869 9 + 7848 7854 7905 7908 3 7848 7854 7905 7911 16 + 7848 7854 -7905 7911 17 7848 7854 -7905 7911 18 + 7848 7854 -7905 7911 7 7950 7947 7953 7959 2 + 7947 7953 7959 7965 1 7947 7953 -7959 7965 13 + 7947 7953 -7959 7965 12 7947 7953 -7959 7965 7 + 7947 7953 7959 7977 4 7947 7953 -7959 7977 5 + 7947 7953 -7959 7977 6 7947 7953 -7959 7977 7 + 7941 7923 7917 7947 9 7929 7923 7917 7947 9 + 7923 7917 7947 7950 3 7923 7917 7947 7953 10 + 7923 7917 -7947 7953 11 7923 7917 -7947 7953 12 + 7923 7917 -7947 7953 7 7917 7947 7953 7959 2 + 7911 7917 7923 7929 9 7911 7917 7923 7941 9 + 7911 7917 7947 7950 3 7911 7917 7947 7953 16 + 7911 7917 -7947 7953 17 7911 7917 -7947 7953 18 + 7911 7917 -7947 7953 7 7980 7977 7983 7989 2 + 7977 7983 7989 7995 1 7977 7983 -7989 7995 13 + 7977 7983 -7989 7995 12 7977 7983 -7989 7995 7 + 7977 7983 7989 8034 4 7977 7983 -7989 8034 5 + 7977 7983 -7989 8034 6 7977 7983 -7989 8034 7 + 7965 7959 7977 7980 3 7965 7959 7977 7983 10 + 7965 7959 -7977 7983 11 7965 7959 -7977 7983 12 + 7965 7959 -7977 7983 7 7959 7977 7983 7989 2 + 7953 7959 7977 7980 3 7953 7959 7977 7983 16 + 7953 7959 -7977 7983 17 7953 7959 -7977 7983 18 + 7953 7959 -7977 7983 7 8037 8034 8040 8046 2 + 8034 8040 8046 8052 1 8034 8040 -8046 8052 13 + 8034 8040 -8046 8052 12 8034 8040 -8046 8052 7 + 8034 8040 8046 8064 4 8034 8040 -8046 8064 5 + 8034 8040 -8046 8064 6 8034 8040 -8046 8064 7 + 8004 7995 7989 8034 9 7995 7989 8034 8037 3 + 7995 7989 8034 8040 10 7995 7989 -8034 8040 11 + 7995 7989 -8034 8040 12 7995 7989 -8034 8040 7 + 7989 7995 8004 8010 22 7989 7995 -8004 8010 23 + 7989 7995 -8004 8010 24 7989 7995 8004 8022 22 + 7989 7995 -8004 8022 23 7989 7995 -8004 8022 24 + 7989 8034 8040 8046 2 7983 7989 7995 8004 9 + 7983 7989 8034 8037 3 7983 7989 8034 8040 16 + 7983 7989 -8034 8040 17 7983 7989 -8034 8040 18 + 7983 7989 -8034 8040 7 8067 8064 8070 8076 2 + 8064 8070 8076 8082 1 8064 8070 -8076 8082 13 + 8064 8070 -8076 8082 12 8064 8070 -8076 8082 7 + 8064 8070 8076 8121 4 8064 8070 -8076 8121 5 + 8064 8070 -8076 8121 6 8064 8070 -8076 8121 7 + 8052 8046 8064 8067 3 8052 8046 8064 8070 10 + 8052 8046 -8064 8070 11 8052 8046 -8064 8070 12 + 8052 8046 -8064 8070 7 8046 8064 8070 8076 2 + 8040 8046 8064 8067 3 8040 8046 8064 8070 16 + 8040 8046 -8064 8070 17 8040 8046 -8064 8070 18 + 8040 8046 -8064 8070 7 8124 8121 8127 8133 2 + 8121 8127 8133 8142 4 8121 8127 -8133 8142 5 + 8121 8127 -8133 8142 6 8121 8127 -8133 8142 7 + 8091 8082 8076 8121 9 8082 8076 8121 8124 3 + 8082 8076 8121 8127 10 8082 8076 -8121 8127 11 + 8082 8076 -8121 8127 12 8082 8076 -8121 8127 7 + 8076 8082 8091 8097 22 8076 8082 -8091 8097 23 + 8076 8082 -8091 8097 24 8076 8082 8091 8109 22 + 8076 8082 -8091 8109 23 8076 8082 -8091 8109 24 + 8076 8121 8127 8133 2 8070 8076 8082 8091 9 + 8070 8076 8121 8124 3 8070 8076 8121 8127 16 + 8070 8076 -8121 8127 17 8070 8076 -8121 8127 18 + 8070 8076 -8121 8127 7 8145 8142 8148 8154 2 + 8142 8148 8154 8160 1 8142 8148 -8154 8160 13 + 8142 8148 -8154 8160 12 8142 8148 -8154 8160 7 + 8142 8148 8154 8187 4 8142 8148 -8154 8187 5 + 8142 8148 -8154 8187 6 8142 8148 -8154 8187 7 + 8133 8142 8148 8154 2 8127 8133 8142 8145 3 + 8127 8133 8142 8148 16 8127 8133 -8142 8148 17 + 8127 8133 -8142 8148 18 8127 8133 -8142 8148 7 + 8190 8187 8193 8199 2 8187 8193 8199 8205 1 + 8187 8193 -8199 8205 13 8187 8193 -8199 8205 12 + 8187 8193 -8199 8205 7 8187 8193 8199 8223 4 + 8187 8193 -8199 8223 5 8187 8193 -8199 8223 6 + 8187 8193 -8199 8223 7 8169 8160 8154 8187 9 + 8160 8154 8187 8190 3 8160 8154 8187 8193 10 + 8160 8154 -8187 8193 11 8160 8154 -8187 8193 12 + 8160 8154 -8187 8193 7 8160 8169 8178 8181 3 + 8160 8169 8178 8184 3 8154 8160 8169 8178 9 + 8154 8187 8193 8199 2 8148 8154 8160 8169 9 + 8148 8154 8187 8190 3 8148 8154 8187 8193 16 + 8148 8154 -8187 8193 17 8148 8154 -8187 8193 18 + 8148 8154 -8187 8193 7 8226 8223 8229 8235 2 + 8223 8229 8235 8244 4 8223 8229 -8235 8244 5 + 8223 8229 -8235 8244 6 8223 8229 -8235 8244 7 + 8214 8205 8199 8223 9 8205 8199 8223 8226 3 + 8205 8199 8223 8229 10 8205 8199 -8223 8229 11 + 8205 8199 -8223 8229 12 8205 8199 -8223 8229 7 + 8199 8205 8214 8217 3 8199 8205 8214 8220 3 + 8199 8223 8229 8235 2 8193 8199 8205 8214 9 + 8193 8199 8223 8226 3 8193 8199 8223 8229 16 + 8193 8199 -8223 8229 17 8193 8199 -8223 8229 18 + 8193 8199 -8223 8229 7 8247 8244 8250 8256 2 + 8244 8250 8256 8262 1 8244 8250 -8256 8262 13 + 8244 8250 -8256 8262 12 8244 8250 -8256 8262 7 + 8244 8250 8256 8301 4 8244 8250 -8256 8301 5 + 8244 8250 -8256 8301 6 8244 8250 -8256 8301 7 + 8235 8244 8250 8256 2 8229 8235 8244 8247 3 + 8229 8235 8244 8250 16 8229 8235 -8244 8250 17 + 8229 8235 -8244 8250 18 8229 8235 -8244 8250 7 + 8304 8301 8307 8313 2 8301 8307 8313 8319 1 + 8301 8307 -8313 8319 13 8301 8307 -8313 8319 12 + 8301 8307 -8313 8319 7 8301 8307 8313 8367 4 + 8301 8307 -8313 8367 5 8301 8307 -8313 8367 6 + 8301 8307 -8313 8367 7 8280 8262 8256 8301 9 + 8268 8262 8256 8301 9 8268 8262 8280 8289 22 + 8268 8262 -8280 8289 23 8268 8262 -8280 8289 24 + 8262 8256 8301 8304 3 8262 8256 8301 8307 10 + 8262 8256 -8301 8307 11 8262 8256 -8301 8307 12 + 8262 8256 -8301 8307 7 8256 8262 8280 8289 22 + 8256 8262 -8280 8289 23 8256 8262 -8280 8289 24 + 8256 8301 8307 8313 2 8250 8256 8262 8268 9 + 8250 8256 8262 8280 9 8250 8256 8301 8304 3 + 8250 8256 8301 8307 16 8250 8256 -8301 8307 17 + 8250 8256 -8301 8307 18 8250 8256 -8301 8307 7 + 8370 8367 8373 8379 2 8367 8373 8379 8385 1 + 8367 8373 -8379 8385 13 8367 8373 -8379 8385 12 + 8367 8373 -8379 8385 7 8367 8373 8379 8415 4 + 8367 8373 -8379 8415 5 8367 8373 -8379 8415 6 + 8367 8373 -8379 8415 7 8328 8319 8313 8367 9 + 8328 8337 8346 8355 9 8319 8313 8367 8370 3 + 8319 8313 8367 8373 10 8319 8313 -8367 8373 11 + 8319 8313 -8367 8373 12 8319 8313 -8367 8373 7 + 8319 8328 8337 8346 22 8319 8328 -8337 8346 23 + 8319 8328 -8337 8346 24 8313 8319 8328 8337 22 + 8313 8319 -8328 8337 23 8313 8319 -8328 8337 24 + 8313 8367 8373 8379 2 8307 8313 8319 8328 9 + 8307 8313 8367 8370 3 8307 8313 8367 8373 16 + 8307 8313 -8367 8373 17 8307 8313 -8367 8373 18 + 8307 8313 -8367 8373 7 8418 8415 8421 8427 2 + 8415 8421 8427 8433 1 8415 8421 -8427 8433 13 + 8415 8421 -8427 8433 12 8415 8421 -8427 8433 7 + 8415 8421 8427 8457 4 8415 8421 -8427 8457 5 + 8415 8421 -8427 8457 6 8415 8421 -8427 8457 7 + 8403 8385 8379 8415 9 8391 8385 8379 8415 9 + 8385 8379 8415 8418 3 8385 8379 8415 8421 10 + 8385 8379 -8415 8421 11 8385 8379 -8415 8421 12 + 8385 8379 -8415 8421 7 8379 8415 8421 8427 2 + 8373 8379 8385 8391 9 8373 8379 8385 8403 9 + 8373 8379 8415 8418 3 8373 8379 8415 8421 16 + 8373 8379 -8415 8421 17 8373 8379 -8415 8421 18 + 8373 8379 -8415 8421 7 8460 8457 8463 8469 2 + 8457 8463 8469 8475 1 8457 8463 -8469 8475 13 + 8457 8463 -8469 8475 12 8457 8463 -8469 8475 7 + 8457 8463 8469 8487 4 8457 8463 -8469 8487 5 + 8457 8463 -8469 8487 6 8457 8463 -8469 8487 7 + 8442 8433 8427 8457 9 8433 8427 8457 8460 3 + 8433 8427 8457 8463 10 8433 8427 -8457 8463 11 + 8433 8427 -8457 8463 12 8433 8427 -8457 8463 7 + 8427 8433 8442 8445 3 8427 8433 8442 8448 10 + 8427 8433 -8442 8448 11 8427 8433 -8442 8448 12 + 8427 8433 -8442 8448 7 8427 8457 8463 8469 2 + 8421 8427 8433 8442 9 8421 8427 8457 8460 3 + 8421 8427 8457 8463 16 8421 8427 -8457 8463 17 + 8421 8427 -8457 8463 18 8421 8427 -8457 8463 7 + 8490 8487 8493 8499 2 8487 8493 8499 8505 1 + 8487 8493 -8499 8505 13 8487 8493 -8499 8505 12 + 8487 8493 -8499 8505 7 8487 8493 8499 8535 4 + 8487 8493 -8499 8535 5 8487 8493 -8499 8535 6 + 8487 8493 -8499 8535 7 8475 8469 8487 8490 3 + 8475 8469 8487 8493 10 8475 8469 -8487 8493 11 + 8475 8469 -8487 8493 12 8475 8469 -8487 8493 7 + 8469 8487 8493 8499 2 8463 8469 8487 8490 3 + 8463 8469 8487 8493 16 8463 8469 -8487 8493 17 + 8463 8469 -8487 8493 18 8463 8469 -8487 8493 7 + 8538 8535 8541 8547 2 8535 8541 8547 8553 1 + 8535 8541 -8547 8553 13 8535 8541 -8547 8553 12 + 8535 8541 -8547 8553 7 8535 8541 8547 8568 4 + 8535 8541 -8547 8568 5 8535 8541 -8547 8568 6 + 8535 8541 -8547 8568 7 8523 8505 8499 8535 9 + 8511 8505 8499 8535 9 8505 8499 8535 8538 3 + 8505 8499 8535 8541 10 8505 8499 -8535 8541 11 + 8505 8499 -8535 8541 12 8505 8499 -8535 8541 7 + 8499 8535 8541 8547 2 8493 8499 8505 8511 9 + 8493 8499 8505 8523 9 8493 8499 8535 8538 3 + 8493 8499 8535 8541 16 8493 8499 -8535 8541 17 + 8493 8499 -8535 8541 18 8493 8499 -8535 8541 7 + 8571 8568 8574 8580 2 8568 8574 8580 8586 1 + 8568 8574 -8580 8586 13 8568 8574 -8580 8586 12 + 8568 8574 -8580 8586 7 8568 8574 8580 8598 4 + 8568 8574 -8580 8598 5 8568 8574 -8580 8598 6 + 8568 8574 -8580 8598 7 8562 8553 8547 8568 9 + 8553 8547 8568 8571 3 8553 8547 8568 8574 10 + 8553 8547 -8568 8574 11 8553 8547 -8568 8574 12 + 8553 8547 -8568 8574 7 8547 8568 8574 8580 2 + 8541 8547 8553 8562 9 8541 8547 8568 8571 3 + 8541 8547 8568 8574 16 8541 8547 -8568 8574 17 + 8541 8547 -8568 8574 18 8541 8547 -8568 8574 7 + 8601 8598 8604 8610 2 8598 8604 8610 8619 4 + 8598 8604 -8610 8619 5 8598 8604 -8610 8619 6 + 8598 8604 -8610 8619 7 8586 8580 8598 8601 3 + 8586 8580 8598 8604 10 8586 8580 -8598 8604 11 + 8586 8580 -8598 8604 12 8586 8580 -8598 8604 7 + 8580 8598 8604 8610 2 8574 8580 8598 8601 3 + 8574 8580 8598 8604 16 8574 8580 -8598 8604 17 + 8574 8580 -8598 8604 18 8574 8580 -8598 8604 7 + 8622 8619 8625 8628 2 8622 8619 8625 8655 2 + 8619 8625 8628 8637 1 8619 8625 -8628 8637 13 + 8619 8625 -8628 8637 12 8619 8625 -8628 8637 7 + 8619 8625 8655 8646 1 8619 8625 -8655 8646 13 + 8619 8625 -8655 8646 12 8619 8625 -8655 8646 7 + 8619 8625 8655 8661 4 8619 8625 -8655 8661 5 + 8619 8625 -8655 8661 6 8619 8625 -8655 8661 7 + 8610 8619 8625 8628 2 8610 8619 8625 8655 2 + 8604 8610 8619 8622 3 8604 8610 8619 8625 16 + 8604 8610 -8619 8625 17 8604 8610 -8619 8625 18 + 8604 8610 -8619 8625 7 8664 8661 8667 8673 2 + 8661 8667 8673 8679 1 8661 8667 -8673 8679 13 + 8661 8667 -8673 8679 12 8661 8667 -8673 8679 7 + 8661 8667 8673 8718 4 8661 8667 -8673 8718 5 + 8661 8667 -8673 8718 6 8661 8667 -8673 8718 7 + 8655 8661 8667 8673 2 8646 8655 8661 8664 3 + 8646 8655 8661 8667 10 8646 8655 -8661 8667 11 + 8646 8655 -8661 8667 12 8646 8655 -8661 8667 7 + 8637 8628 -8625 8655 3 8637 8646 8655 8661 9 + 8628 8625 -8655 8646 3 8628 8625 8655 8661 3 + 8628 8637 -8646 8655 22 8628 8637 -8646 8655 23 + 8628 8637 -8646 8655 24 8625 8628 -8637 8646 9 + 8625 8655 -8646 8637 9 8625 8655 8661 8664 3 + 8625 8655 8661 8667 16 8625 8655 -8661 8667 17 + 8625 8655 -8661 8667 18 8625 8655 -8661 8667 7 + 8721 8718 8724 8730 2 8718 8724 8730 8736 1 + 8718 8724 -8730 8736 13 8718 8724 -8730 8736 12 + 8718 8724 -8730 8736 7 8718 8724 8730 8784 4 + 8718 8724 -8730 8784 5 8718 8724 -8730 8784 6 + 8718 8724 -8730 8784 7 8697 8679 8673 8718 9 + 8685 8679 8673 8718 9 8685 8679 8697 8706 22 + 8685 8679 -8697 8706 23 8685 8679 -8697 8706 24 + 8679 8673 8718 8721 3 8679 8673 8718 8724 10 + 8679 8673 -8718 8724 11 8679 8673 -8718 8724 12 + 8679 8673 -8718 8724 7 8673 8679 8697 8706 22 + 8673 8679 -8697 8706 23 8673 8679 -8697 8706 24 + 8673 8718 8724 8730 2 8667 8673 8679 8685 9 + 8667 8673 8679 8697 9 8667 8673 8718 8721 3 + 8667 8673 8718 8724 16 8667 8673 -8718 8724 17 + 8667 8673 -8718 8724 18 8667 8673 -8718 8724 7 + 8787 8784 8790 8796 2 8784 8790 8796 8802 1 + 8784 8790 -8796 8802 13 8784 8790 -8796 8802 12 + 8784 8790 -8796 8802 7 8784 8790 8796 8826 4 + 8784 8790 -8796 8826 5 8784 8790 -8796 8826 6 + 8784 8790 -8796 8826 7 8745 8736 8730 8784 9 + 8745 8754 8763 8772 9 8736 8730 8784 8787 3 + 8736 8730 8784 8790 10 8736 8730 -8784 8790 11 + 8736 8730 -8784 8790 12 8736 8730 -8784 8790 7 + 8736 8745 8754 8763 22 8736 8745 -8754 8763 23 + 8736 8745 -8754 8763 24 8730 8736 8745 8754 22 + 8730 8736 -8745 8754 23 8730 8736 -8745 8754 24 + 8730 8784 8790 8796 2 8724 8730 8736 8745 9 + 8724 8730 8784 8787 3 8724 8730 8784 8790 16 + 8724 8730 -8784 8790 17 8724 8730 -8784 8790 18 + 8724 8730 -8784 8790 7 8829 8826 8832 8838 2 + 8826 8832 8838 8844 1 8826 8832 -8838 8844 13 + 8826 8832 -8838 8844 12 8826 8832 -8838 8844 7 + 8826 8832 8838 8883 4 8826 8832 -8838 8883 5 + 8826 8832 -8838 8883 6 8826 8832 -8838 8883 7 + 8820 8802 8796 8826 9 8808 8802 8796 8826 9 + 8802 8796 8826 8829 3 8802 8796 8826 8832 10 + 8802 8796 -8826 8832 11 8802 8796 -8826 8832 12 + 8802 8796 -8826 8832 7 8796 8826 8832 8838 2 + 8790 8796 8802 8808 9 8790 8796 8802 8820 9 + 8790 8796 8826 8829 3 8790 8796 8826 8832 16 + 8790 8796 -8826 8832 17 8790 8796 -8826 8832 18 + 8790 8796 -8826 8832 7 8886 8883 8889 8895 2 + 8883 8889 8895 8901 1 8883 8889 -8895 8901 13 + 8883 8889 -8895 8901 12 8883 8889 -8895 8901 7 + 8883 8889 8895 8913 4 8883 8889 -8895 8913 5 + 8883 8889 -8895 8913 6 8883 8889 -8895 8913 7 + 8853 8844 8838 8883 9 8844 8838 8883 8886 3 + 8844 8838 8883 8889 10 8844 8838 -8883 8889 11 + 8844 8838 -8883 8889 12 8844 8838 -8883 8889 7 + 8838 8844 8853 8859 22 8838 8844 -8853 8859 23 + 8838 8844 -8853 8859 24 8838 8844 8853 8871 22 + 8838 8844 -8853 8871 23 8838 8844 -8853 8871 24 + 8838 8883 8889 8895 2 8832 8838 8844 8853 9 + 8832 8838 8883 8886 3 8832 8838 8883 8889 16 + 8832 8838 -8883 8889 17 8832 8838 -8883 8889 18 + 8832 8838 -8883 8889 7 8916 8913 8919 8925 2 + 8913 8919 8925 8931 1 8913 8919 -8925 8931 13 + 8913 8919 -8925 8931 12 8913 8919 -8925 8931 7 + 8913 8919 8925 8943 4 8913 8919 -8925 8943 5 + 8913 8919 -8925 8943 6 8913 8919 -8925 8943 7 + 8901 8895 8913 8916 3 8901 8895 8913 8919 10 + 8901 8895 -8913 8919 11 8901 8895 -8913 8919 12 + 8901 8895 -8913 8919 7 8895 8913 8919 8925 2 + 8889 8895 8913 8916 3 8889 8895 8913 8919 16 + 8889 8895 -8913 8919 17 8889 8895 -8913 8919 18 + 8889 8895 -8913 8919 7 8946 8943 8949 8955 2 + 8943 8949 8955 8961 1 8943 8949 -8955 8961 13 + 8943 8949 -8955 8961 12 8943 8949 -8955 8961 7 + 8943 8949 8955 8976 4 8943 8949 -8955 8976 5 + 8943 8949 -8955 8976 6 8943 8949 -8955 8976 7 + 8931 8925 8943 8946 3 8931 8925 8943 8949 10 + 8931 8925 -8943 8949 11 8931 8925 -8943 8949 12 + 8931 8925 -8943 8949 7 8925 8943 8949 8955 2 + 8919 8925 8943 8946 3 8919 8925 8943 8949 16 + 8919 8925 -8943 8949 17 8919 8925 -8943 8949 18 + 8919 8925 -8943 8949 7 8979 8976 8982 8988 2 + 8976 8982 8988 8997 4 8976 8982 -8988 8997 5 + 8976 8982 -8988 8997 6 8976 8982 -8988 8997 7 + 8970 8961 8955 8976 9 8961 8955 8976 8979 3 + 8961 8955 8976 8982 10 8961 8955 -8976 8982 11 + 8961 8955 -8976 8982 12 8961 8955 -8976 8982 7 + 8955 8976 8982 8988 2 8949 8955 8961 8970 9 + 8949 8955 8976 8979 3 8949 8955 8976 8982 16 + 8949 8955 -8976 8982 17 8949 8955 -8976 8982 18 + 8949 8955 -8976 8982 7 9000 8997 9003 9009 2 + 8997 9003 9009 9015 1 8997 9003 -9009 9015 13 + 8997 9003 -9009 9015 12 8997 9003 -9009 9015 7 + 8997 9003 9009 9054 4 8997 9003 -9009 9054 5 + 8997 9003 -9009 9054 6 8997 9003 -9009 9054 7 + 8988 8997 9003 9009 2 8982 8988 8997 9000 3 + 8982 8988 8997 9003 16 8982 8988 -8997 9003 17 + 8982 8988 -8997 9003 18 8982 8988 -8997 9003 7 + 9057 9054 9060 9066 2 9054 9060 9066 9072 1 + 9054 9060 -9066 9072 13 9054 9060 -9066 9072 12 + 9054 9060 -9066 9072 7 9054 9060 9066 9087 4 + 9054 9060 -9066 9087 5 9054 9060 -9066 9087 6 + 9054 9060 -9066 9087 7 9033 9015 9009 9054 9 + 9021 9015 9009 9054 9 9021 9015 9033 9042 22 + 9021 9015 -9033 9042 23 9021 9015 -9033 9042 24 + 9015 9009 9054 9057 3 9015 9009 9054 9060 10 + 9015 9009 -9054 9060 11 9015 9009 -9054 9060 12 + 9015 9009 -9054 9060 7 9009 9015 9033 9042 22 + 9009 9015 -9033 9042 23 9009 9015 -9033 9042 24 + 9009 9054 9060 9066 2 9003 9009 9015 9021 9 + 9003 9009 9015 9033 9 9003 9009 9054 9057 3 + 9003 9009 9054 9060 16 9003 9009 -9054 9060 17 + 9003 9009 -9054 9060 18 9003 9009 -9054 9060 7 + 9090 9087 9093 9099 2 9087 9093 9099 9105 1 + 9087 9093 -9099 9105 13 9087 9093 -9099 9105 12 + 9087 9093 -9099 9105 7 9087 9093 9099 9129 4 + 9087 9093 -9099 9129 5 9087 9093 -9099 9129 6 + 9087 9093 -9099 9129 7 9081 9072 9066 9087 9 + 9072 9066 9087 9090 3 9072 9066 9087 9093 10 + 9072 9066 -9087 9093 11 9072 9066 -9087 9093 12 + 9072 9066 -9087 9093 7 9066 9087 9093 9099 2 + 9060 9066 9072 9081 9 9060 9066 9087 9090 3 + 9060 9066 9087 9093 16 9060 9066 -9087 9093 17 + 9060 9066 -9087 9093 18 9060 9066 -9087 9093 7 + 9132 9129 9135 9141 2 9129 9135 9141 9147 1 + 9129 9135 -9141 9147 13 9129 9135 -9141 9147 12 + 9129 9135 -9141 9147 7 9129 9135 9141 9189 4 + 9129 9135 -9141 9189 5 9129 9135 -9141 9189 6 + 9129 9135 -9141 9189 7 9114 9105 9099 9129 9 + 9105 9099 9129 9132 3 9105 9099 9129 9135 10 + 9105 9099 -9129 9135 11 9105 9099 -9129 9135 12 + 9105 9099 -9129 9135 7 9099 9105 9114 9117 3 + 9099 9105 9114 9120 10 9099 9105 -9114 9120 11 + 9099 9105 -9114 9120 12 9099 9105 -9114 9120 7 + 9099 9129 9135 9141 2 9093 9099 9105 9114 9 + 9093 9099 9129 9132 3 9093 9099 9129 9135 16 + 9093 9099 -9129 9135 17 9093 9099 -9129 9135 18 + 9093 9099 -9129 9135 7 9192 9189 9195 9201 2 + 9189 9195 9201 9207 1 9189 9195 -9201 9207 13 + 9189 9195 -9201 9207 12 9189 9195 -9201 9207 7 + 9189 9195 9201 9255 4 9189 9195 -9201 9255 5 + 9189 9195 -9201 9255 6 9189 9195 -9201 9255 7 + 9165 9159 9156 9183 19 9165 9171 -9177 9183 19 + 9159 9156 9183 9177 19 9159 9165 -9171 9177 19 + 9156 9147 9141 9189 9 9156 9159 9165 9171 19 + 9156 9183 -9177 9171 19 9147 9141 9189 9192 3 + 9147 9141 9189 9195 10 9147 9141 -9189 9195 11 + 9147 9141 -9189 9195 12 9147 9141 -9189 9195 7 + 9147 9156 9159 9165 19 9147 9156 9183 9177 19 + 9141 9147 9156 9159 3 9141 9147 9156 9183 3 + 9141 9189 9195 9201 2 9135 9141 9147 9156 9 + 9135 9141 9189 9192 3 9135 9141 9189 9195 16 + 9135 9141 -9189 9195 17 9135 9141 -9189 9195 18 + 9135 9141 -9189 9195 7 9258 9255 9261 9267 2 + 9255 9261 9267 9273 1 9255 9261 -9267 9273 13 + 9255 9261 -9267 9273 12 9255 9261 -9267 9273 7 + 9255 9261 9267 9321 4 9255 9261 -9267 9321 5 + 9255 9261 -9267 9321 6 9255 9261 -9267 9321 7 + 9216 9207 9201 9255 9 9216 9225 9234 9243 9 + 9207 9201 9255 9258 3 9207 9201 9255 9261 10 + 9207 9201 -9255 9261 11 9207 9201 -9255 9261 12 + 9207 9201 -9255 9261 7 9207 9216 9225 9234 22 + 9207 9216 -9225 9234 23 9207 9216 -9225 9234 24 + 9201 9207 9216 9225 22 9201 9207 -9216 9225 23 + 9201 9207 -9216 9225 24 9201 9255 9261 9267 2 + 9195 9201 9207 9216 9 9195 9201 9255 9258 3 + 9195 9201 9255 9261 16 9195 9201 -9255 9261 17 + 9195 9201 -9255 9261 18 9195 9201 -9255 9261 7 + 9324 9321 9327 9333 2 9321 9327 9333 9339 1 + 9321 9327 -9333 9339 13 9321 9327 -9333 9339 12 + 9321 9327 -9333 9339 7 9321 9327 9333 9372 4 + 9321 9327 -9333 9372 5 9321 9327 -9333 9372 6 + 9321 9327 -9333 9372 7 9282 9273 9267 9321 9 + 9282 9291 9300 9309 9 9273 9267 9321 9324 3 + 9273 9267 9321 9327 10 9273 9267 -9321 9327 11 + 9273 9267 -9321 9327 12 9273 9267 -9321 9327 7 + 9273 9282 9291 9300 22 9273 9282 -9291 9300 23 + 9273 9282 -9291 9300 24 9267 9273 9282 9291 22 + 9267 9273 -9282 9291 23 9267 9273 -9282 9291 24 + 9267 9321 9327 9333 2 9261 9267 9273 9282 9 + 9261 9267 9321 9324 3 9261 9267 9321 9327 16 + 9261 9267 -9321 9327 17 9261 9267 -9321 9327 18 + 9261 9267 -9321 9327 7 9375 9372 9378 9384 2 + 9372 9378 9384 9390 1 9372 9378 -9384 9390 13 + 9372 9378 -9384 9390 12 9372 9378 -9384 9390 7 + 9372 9378 9384 9429 4 9372 9378 -9384 9429 5 + 9372 9378 -9384 9429 6 9372 9378 -9384 9429 7 + 9348 9339 9333 9372 9 9339 9333 9372 9375 3 + 9339 9333 9372 9378 10 9339 9333 -9372 9378 11 + 9339 9333 -9372 9378 12 9339 9333 -9372 9378 7 + 9339 9348 9357 9360 8 9333 9339 9348 9357 9 + 9333 9372 9378 9384 2 9327 9333 9339 9348 9 + 9327 9333 9372 9375 3 9327 9333 9372 9378 16 + 9327 9333 -9372 9378 17 9327 9333 -9372 9378 18 + 9327 9333 -9372 9378 7 9432 9429 9435 9441 2 + 9429 9435 9441 9447 1 9429 9435 -9441 9447 13 + 9429 9435 -9441 9447 12 9429 9435 -9441 9447 7 + 9429 9435 9441 9465 4 9429 9435 -9441 9465 5 + 9429 9435 -9441 9465 6 9429 9435 -9441 9465 7 + 9399 9390 9384 9429 9 9390 9384 9429 9432 3 + 9390 9384 9429 9435 10 9390 9384 -9429 9435 11 + 9390 9384 -9429 9435 12 9390 9384 -9429 9435 7 + 9384 9390 9399 9405 22 9384 9390 -9399 9405 23 + 9384 9390 -9399 9405 24 9384 9390 9399 9417 22 + 9384 9390 -9399 9417 23 9384 9390 -9399 9417 24 + 9384 9429 9435 9441 2 9378 9384 9390 9399 9 + 9378 9384 9429 9432 3 9378 9384 9429 9435 16 + 9378 9384 -9429 9435 17 9378 9384 -9429 9435 18 + 9378 9384 -9429 9435 7 9468 9465 9471 9477 2 + 9465 9471 9477 9483 1 9465 9471 -9477 9483 13 + 9465 9471 -9477 9483 12 9465 9471 -9477 9483 7 + 9465 9471 9477 9528 4 9465 9471 -9477 9528 5 + 9465 9471 -9477 9528 6 9465 9471 -9477 9528 7 + 9456 9447 9441 9465 9 9447 9441 9465 9468 3 + 9447 9441 9465 9471 10 9447 9441 -9465 9471 11 + 9447 9441 -9465 9471 12 9447 9441 -9465 9471 7 + 9441 9447 9456 9459 3 9441 9447 9456 9462 3 + 9441 9465 9471 9477 2 9435 9441 9447 9456 9 + 9435 9441 9465 9468 3 9435 9441 9465 9471 16 + 9435 9441 -9465 9471 17 9435 9441 -9465 9471 18 + 9435 9441 -9465 9471 7 9531 9528 9534 9540 2 + 9528 9534 9540 9546 1 9528 9534 -9540 9546 13 + 9528 9534 -9540 9546 12 9528 9534 -9540 9546 7 + 9528 9534 9540 9570 4 9528 9534 -9540 9570 5 + 9528 9534 -9540 9570 6 9528 9534 -9540 9570 7 + 9510 9507 9516 9522 19 9501 9495 9492 9522 19 + 9501 9507 -9516 9522 19 9495 9492 9522 9516 19 + 9495 9501 9507 9510 19 9495 9501 -9507 9516 19 + 9492 9483 9477 9528 9 9492 9495 9501 9507 19 + 9492 9522 -9516 9507 19 9483 9477 9528 9531 3 + 9483 9477 9528 9534 10 9483 9477 -9528 9534 11 + 9483 9477 -9528 9534 12 9483 9477 -9528 9534 7 + 9483 9492 9495 9501 19 9483 9492 9522 9516 19 + 9477 9483 9492 9495 3 9477 9483 9492 9522 3 + 9477 9528 9534 9540 2 9471 9477 9483 9492 9 + 9471 9477 9528 9531 3 9471 9477 9528 9534 16 + 9471 9477 -9528 9534 17 9471 9477 -9528 9534 18 + 9471 9477 -9528 9534 7 9573 9570 9576 9582 2 + 9570 9576 9582 9588 1 9570 9576 -9582 9588 13 + 9570 9576 -9582 9588 12 9570 9576 -9582 9588 7 + 9570 9576 9582 9600 4 9570 9576 -9582 9600 5 + 9570 9576 -9582 9600 6 9570 9576 -9582 9600 7 + 9555 9546 9540 9570 9 9546 9540 9570 9573 3 + 9546 9540 9570 9576 10 9546 9540 -9570 9576 11 + 9546 9540 -9570 9576 12 9546 9540 -9570 9576 7 + 9540 9546 9555 9558 3 9540 9546 9555 9561 10 + 9540 9546 -9555 9561 11 9540 9546 -9555 9561 12 + 9540 9546 -9555 9561 7 9540 9570 9576 9582 2 + 9534 9540 9546 9555 9 9534 9540 9570 9573 3 + 9534 9540 9570 9576 16 9534 9540 -9570 9576 17 + 9534 9540 -9570 9576 18 9534 9540 -9570 9576 7 + 9603 9600 9606 9612 2 9600 9606 9612 9618 1 + 9600 9606 -9612 9618 13 9600 9606 -9612 9618 12 + 9600 9606 -9612 9618 7 9600 9606 9612 9651 4 + 9600 9606 -9612 9651 5 9600 9606 -9612 9651 6 + 9600 9606 -9612 9651 7 9588 9582 9600 9603 3 + 9588 9582 9600 9606 10 9588 9582 -9600 9606 11 + 9588 9582 -9600 9606 12 9588 9582 -9600 9606 7 + 9582 9600 9606 9612 2 9576 9582 9600 9603 3 + 9576 9582 9600 9606 16 9576 9582 -9600 9606 17 + 9576 9582 -9600 9606 18 9576 9582 -9600 9606 7 + 9654 9651 9657 9663 2 9651 9657 9663 9669 1 + 9651 9657 -9663 9669 13 9651 9657 -9663 9669 12 + 9651 9657 -9663 9669 7 9651 9657 9663 9699 4 + 9651 9657 -9663 9699 5 9651 9657 -9663 9699 6 + 9651 9657 -9663 9699 7 9627 9618 9612 9651 9 + 9618 9612 9651 9654 3 9618 9612 9651 9657 10 + 9618 9612 -9651 9657 11 9618 9612 -9651 9657 12 + 9618 9612 -9651 9657 7 9618 9627 9636 9639 8 + 9612 9618 9627 9636 9 9612 9651 9657 9663 2 + 9606 9612 9618 9627 9 9606 9612 9651 9654 3 + 9606 9612 9651 9657 16 9606 9612 -9651 9657 17 + 9606 9612 -9651 9657 18 9606 9612 -9651 9657 7 + 9702 9699 9705 9711 2 9699 9705 9711 9717 1 + 9699 9705 -9711 9717 13 9699 9705 -9711 9717 12 + 9699 9705 -9711 9717 7 9699 9705 9711 9732 4 + 9699 9705 -9711 9732 5 9699 9705 -9711 9732 6 + 9699 9705 -9711 9732 7 9687 9669 9663 9699 9 + 9675 9669 9663 9699 9 9669 9663 9699 9702 3 + 9669 9663 9699 9705 10 9669 9663 -9699 9705 11 + 9669 9663 -9699 9705 12 9669 9663 -9699 9705 7 + 9663 9699 9705 9711 2 9657 9663 9669 9675 9 + 9657 9663 9669 9687 9 9657 9663 9699 9702 3 + 9657 9663 9699 9705 16 9657 9663 -9699 9705 17 + 9657 9663 -9699 9705 18 9657 9663 -9699 9705 7 + 9735 9732 9738 9741 2 9735 9732 9738 9768 2 + 9732 9738 9741 9750 1 9732 9738 -9741 9750 13 + 9732 9738 -9741 9750 12 9732 9738 -9741 9750 7 + 9732 9738 9768 9759 1 9732 9738 -9768 9759 13 + 9732 9738 -9768 9759 12 9732 9738 -9768 9759 7 + 9732 9738 9768 9774 4 9732 9738 -9768 9774 5 + 9732 9738 -9768 9774 6 9732 9738 -9768 9774 7 + 9726 9717 9711 9732 9 9717 9711 9732 9735 3 + 9717 9711 9732 9738 10 9717 9711 -9732 9738 11 + 9717 9711 -9732 9738 12 9717 9711 -9732 9738 7 + 9711 9732 9738 9741 2 9711 9732 9738 9768 2 + 9705 9711 9717 9726 9 9705 9711 9732 9735 3 + 9705 9711 9732 9738 16 9705 9711 -9732 9738 17 + 9705 9711 -9732 9738 18 9705 9711 -9732 9738 7 + 9777 9774 9780 9786 2 9774 9780 9786 9792 1 + 9774 9780 -9786 9792 13 9774 9780 -9786 9792 12 + 9774 9780 -9786 9792 7 9774 9780 9786 9831 4 + 9774 9780 -9786 9831 5 9774 9780 -9786 9831 6 + 9774 9780 -9786 9831 7 9768 9774 9780 9786 2 + 9759 9768 9774 9777 3 9759 9768 9774 9780 10 + 9759 9768 -9774 9780 11 9759 9768 -9774 9780 12 + 9759 9768 -9774 9780 7 9750 9741 -9738 9768 3 + 9750 9759 9768 9774 9 9741 9738 -9768 9759 3 + 9741 9738 9768 9774 3 9741 9750 -9759 9768 22 + 9741 9750 -9759 9768 23 9741 9750 -9759 9768 24 + 9738 9741 -9750 9759 9 9738 9768 -9759 9750 9 + 9738 9768 9774 9777 3 9738 9768 9774 9780 16 + 9738 9768 -9774 9780 17 9738 9768 -9774 9780 18 + 9738 9768 -9774 9780 7 9834 9831 9837 9843 2 + 9831 9837 9843 9849 1 9831 9837 -9843 9849 13 + 9831 9837 -9843 9849 12 9831 9837 -9843 9849 7 + 9831 9837 9843 9897 4 9831 9837 -9843 9897 5 + 9831 9837 -9843 9897 6 9831 9837 -9843 9897 7 + 9801 9792 9786 9831 9 9792 9786 9831 9834 3 + 9792 9786 9831 9837 10 9792 9786 -9831 9837 11 + 9792 9786 -9831 9837 12 9792 9786 -9831 9837 7 + 9786 9792 9801 9807 22 9786 9792 -9801 9807 23 + 9786 9792 -9801 9807 24 9786 9792 9801 9819 22 + 9786 9792 -9801 9819 23 9786 9792 -9801 9819 24 + 9786 9831 9837 9843 2 9780 9786 9792 9801 9 + 9780 9786 9831 9834 3 9780 9786 9831 9837 16 + 9780 9786 -9831 9837 17 9780 9786 -9831 9837 18 + 9780 9786 -9831 9837 7 9900 9897 9903 9909 2 + 9897 9903 9909 9915 1 9897 9903 -9909 9915 13 + 9897 9903 -9909 9915 12 9897 9903 -9909 9915 7 + 9897 9903 9909 9963 4 9897 9903 -9909 9963 5 + 9897 9903 -9909 9963 6 9897 9903 -9909 9963 7 + 9858 9849 9843 9897 9 9858 9867 9876 9885 9 + 9849 9843 9897 9900 3 9849 9843 9897 9903 10 + 9849 9843 -9897 9903 11 9849 9843 -9897 9903 12 + 9849 9843 -9897 9903 7 9849 9858 9867 9876 22 + 9849 9858 -9867 9876 23 9849 9858 -9867 9876 24 + 9843 9849 9858 9867 22 9843 9849 -9858 9867 23 + 9843 9849 -9858 9867 24 9843 9897 9903 9909 2 + 9837 9843 9849 9858 9 9837 9843 9897 9900 3 + 9837 9843 9897 9903 16 9837 9843 -9897 9903 17 + 9837 9843 -9897 9903 18 9837 9843 -9897 9903 7 + 9966 9963 9969 9975 2 9963 9969 9975 9981 1 + 9963 9969 -9975 9981 13 9963 9969 -9975 9981 12 + 9963 9969 -9975 9981 7 9963 9969 9975 10005 4 + 9963 9969 -9975 10005 5 9963 9969 -9975 10005 6 + 9963 9969 -9975 10005 7 9924 9915 9909 9963 9 + 9924 9933 9942 9951 9 9915 9909 9963 9966 3 + 9915 9909 9963 9969 10 9915 9909 -9963 9969 11 + 9915 9909 -9963 9969 12 9915 9909 -9963 9969 7 + 9915 9924 9933 9942 22 9915 9924 -9933 9942 23 + 9915 9924 -9933 9942 24 9909 9915 9924 9933 22 + 9909 9915 -9924 9933 23 9909 9915 -9924 9933 24 + 9909 9963 9969 9975 2 9903 9909 9915 9924 9 + 9903 9909 9963 9966 3 9903 9909 9963 9969 16 + 9903 9909 -9963 9969 17 9903 9909 -9963 9969 18 + 9903 9909 -9963 9969 7 10008 10005 10011 10017 2 + 10005 10011 10017 10023 1 10005 10011 -10017 10023 13 + 10005 10011 -10017 10023 12 10005 10011 -10017 10023 7 + 10005 10011 10017 10053 4 10005 10011 -10017 10053 5 + 10005 10011 -10017 10053 6 10005 10011 -10017 10053 7 + 9990 9981 9975 10005 9 9981 9975 10005 10008 3 + 9981 9975 10005 10011 10 9981 9975 -10005 10011 11 + 9981 9975 -10005 10011 12 9981 9975 -10005 10011 7 + 9975 9981 9990 9993 3 9975 9981 9990 9996 10 + 9975 9981 -9990 9996 11 9975 9981 -9990 9996 12 + 9975 9981 -9990 9996 7 9975 10005 10011 10017 2 + 9969 9975 9981 9990 9 9969 9975 10005 10008 3 + 9969 9975 10005 10011 16 9969 9975 -10005 10011 17 + 9969 9975 -10005 10011 18 9969 9975 -10005 10011 7 + 10056 10053 10059 10065 2 10053 10059 10065 10071 1 + 10053 10059 -10065 10071 13 10053 10059 -10065 10071 12 + 10053 10059 -10065 10071 7 10053 10059 10065 10089 4 + 10053 10059 -10065 10089 5 10053 10059 -10065 10089 6 + 10053 10059 -10065 10089 7 10041 10023 10017 10053 9 + 10029 10023 10017 10053 9 10023 10017 10053 10056 3 + 10023 10017 10053 10059 10 10023 10017 -10053 10059 11 + 10023 10017 -10053 10059 12 10023 10017 -10053 10059 7 + 10017 10053 10059 10065 2 10011 10017 10023 10029 9 + 10011 10017 10023 10041 9 10011 10017 10053 10056 3 + 10011 10017 10053 10059 16 10011 10017 -10053 10059 17 + 10011 10017 -10053 10059 18 10011 10017 -10053 10059 7 + 10092 10089 10095 10101 2 10089 10095 10101 10107 1 + 10089 10095 -10101 10107 13 10089 10095 -10101 10107 12 + 10089 10095 -10101 10107 7 10089 10095 10101 10146 4 + 10089 10095 -10101 10146 5 10089 10095 -10101 10146 6 + 10089 10095 -10101 10146 7 10080 10071 10065 10089 9 + 10071 10065 10089 10092 3 10071 10065 10089 10095 10 + 10071 10065 -10089 10095 11 10071 10065 -10089 10095 12 + 10071 10065 -10089 10095 7 10065 10071 10080 10083 3 + 10065 10071 10080 10086 3 10065 10089 10095 10101 2 + 10059 10065 10071 10080 9 10059 10065 10089 10092 3 + 10059 10065 10089 10095 16 10059 10065 -10089 10095 17 + 10059 10065 -10089 10095 18 10059 10065 -10089 10095 7 + 10149 10146 10152 10158 2 10146 10152 10158 10164 1 + 10146 10152 -10158 10164 13 10146 10152 -10158 10164 12 + 10146 10152 -10158 10164 7 10146 10152 10158 10197 4 + 10146 10152 -10158 10197 5 10146 10152 -10158 10197 6 + 10146 10152 -10158 10197 7 10125 10107 10101 10146 9 + 10113 10107 10101 10146 9 10113 10107 10125 10134 22 + 10113 10107 -10125 10134 23 10113 10107 -10125 10134 24 + 10107 10101 10146 10149 3 10107 10101 10146 10152 10 + 10107 10101 -10146 10152 11 10107 10101 -10146 10152 12 + 10107 10101 -10146 10152 7 10101 10107 10125 10134 22 + 10101 10107 -10125 10134 23 10101 10107 -10125 10134 24 + 10101 10146 10152 10158 2 10095 10101 10107 10113 9 + 10095 10101 10107 10125 9 10095 10101 10146 10149 3 + 10095 10101 10146 10152 16 10095 10101 -10146 10152 17 + 10095 10101 -10146 10152 18 10095 10101 -10146 10152 7 + 10200 10197 10203 10209 2 10197 10203 10209 10215 1 + 10197 10203 -10209 10215 13 10197 10203 -10209 10215 12 + 10197 10203 -10209 10215 7 10197 10203 10209 10242 4 + 10197 10203 -10209 10242 5 10197 10203 -10209 10242 6 + 10197 10203 -10209 10242 7 10173 10164 10158 10197 9 + 10164 10158 10197 10200 3 10164 10158 10197 10203 10 + 10164 10158 -10197 10203 11 10164 10158 -10197 10203 12 + 10164 10158 -10197 10203 7 10164 10173 10182 10185 8 + 10158 10164 10173 10182 9 10158 10197 10203 10209 2 + 10152 10158 10164 10173 9 10152 10158 10197 10200 3 + 10152 10158 10197 10203 16 10152 10158 -10197 10203 17 + 10152 10158 -10197 10203 18 10152 10158 -10197 10203 7 + 10245 10242 10248 10254 2 10242 10248 10254 10260 1 + 10242 10248 -10254 10260 13 10242 10248 -10254 10260 12 + 10242 10248 -10254 10260 7 10242 10248 10254 10290 4 + 10242 10248 -10254 10290 5 10242 10248 -10254 10290 6 + 10242 10248 -10254 10290 7 10224 10215 10209 10242 9 + 10215 10209 10242 10245 3 10215 10209 10242 10248 10 + 10215 10209 -10242 10248 11 10215 10209 -10242 10248 12 + 10215 10209 -10242 10248 7 10215 10224 10233 10236 3 + 10215 10224 10233 10239 3 10209 10215 10224 10233 9 + 10209 10242 10248 10254 2 10203 10209 10215 10224 9 + 10203 10209 10242 10245 3 10203 10209 10242 10248 16 + 10203 10209 -10242 10248 17 10203 10209 -10242 10248 18 + 10203 10209 -10242 10248 7 10293 10290 10296 10302 2 + 10290 10296 10302 10311 4 10290 10296 -10302 10311 5 + 10290 10296 -10302 10311 6 10290 10296 -10302 10311 7 + 10278 10260 10254 10290 9 10266 10260 10254 10290 9 + 10260 10254 10290 10293 3 10260 10254 10290 10296 10 + 10260 10254 -10290 10296 11 10260 10254 -10290 10296 12 + 10260 10254 -10290 10296 7 10254 10290 10296 10302 2 + 10248 10254 10260 10266 9 10248 10254 10260 10278 9 + 10248 10254 10290 10293 3 10248 10254 10290 10296 16 + 10248 10254 -10290 10296 17 10248 10254 -10290 10296 18 + 10248 10254 -10290 10296 7 10314 10311 10317 10323 2 + 10311 10317 10323 10329 1 10311 10317 -10323 10329 13 + 10311 10317 -10323 10329 12 10311 10317 -10323 10329 7 + 10311 10317 10323 10353 4 10311 10317 -10323 10353 5 + 10311 10317 -10323 10353 6 10311 10317 -10323 10353 7 + 10302 10311 10317 10323 2 10296 10302 10311 10314 3 + 10296 10302 10311 10317 16 10296 10302 -10311 10317 17 + 10296 10302 -10311 10317 18 10296 10302 -10311 10317 7 + 10356 10353 10359 10365 2 10353 10359 10365 10371 1 + 10353 10359 -10365 10371 13 10353 10359 -10365 10371 12 + 10353 10359 -10365 10371 7 10353 10359 10365 10395 4 + 10353 10359 -10365 10395 5 10353 10359 -10365 10395 6 + 10353 10359 -10365 10395 7 10338 10329 10323 10353 9 + 10329 10323 10353 10356 3 10329 10323 10353 10359 10 + 10329 10323 -10353 10359 11 10329 10323 -10353 10359 12 + 10329 10323 -10353 10359 7 10323 10329 10338 10341 3 + 10323 10329 10338 10344 10 10323 10329 -10338 10344 11 + 10323 10329 -10338 10344 12 10323 10329 -10338 10344 7 + 10323 10353 10359 10365 2 10317 10323 10329 10338 9 + 10317 10323 10353 10356 3 10317 10323 10353 10359 16 + 10317 10323 -10353 10359 17 10317 10323 -10353 10359 18 + 10317 10323 -10353 10359 7 10398 10395 10401 10407 2 + 10395 10401 10407 10413 1 10395 10401 -10407 10413 13 + 10395 10401 -10407 10413 12 10395 10401 -10407 10413 7 + 10395 10401 10407 10443 4 10395 10401 -10407 10443 5 + 10395 10401 -10407 10443 6 10395 10401 -10407 10443 7 + 10389 10371 10365 10395 9 10377 10371 10365 10395 9 + 10371 10365 10395 10398 3 10371 10365 10395 10401 10 + 10371 10365 -10395 10401 11 10371 10365 -10395 10401 12 + 10371 10365 -10395 10401 7 10365 10395 10401 10407 2 + 10359 10365 10371 10377 9 10359 10365 10371 10389 9 + 10359 10365 10395 10398 3 10359 10365 10395 10401 16 + 10359 10365 -10395 10401 17 10359 10365 -10395 10401 18 + 10359 10365 -10395 10401 7 10446 10443 10449 10455 2 + 10443 10449 10455 10461 1 10443 10449 -10455 10461 13 + 10443 10449 -10455 10461 12 10443 10449 -10455 10461 7 + 10443 10449 10455 10473 4 10443 10449 -10455 10473 5 + 10443 10449 -10455 10473 6 10443 10449 -10455 10473 7 + 10431 10413 10407 10443 9 10419 10413 10407 10443 9 + 10413 10407 10443 10446 3 10413 10407 10443 10449 10 + 10413 10407 -10443 10449 11 10413 10407 -10443 10449 12 + 10413 10407 -10443 10449 7 10407 10443 10449 10455 2 + 10401 10407 10413 10419 9 10401 10407 10413 10431 9 + 10401 10407 10443 10446 3 10401 10407 10443 10449 16 + 10401 10407 -10443 10449 17 10401 10407 -10443 10449 18 + 10401 10407 -10443 10449 7 10476 10473 10479 10485 2 + 10473 10479 10485 10491 1 10473 10479 -10485 10491 13 + 10473 10479 -10485 10491 12 10473 10479 -10485 10491 7 + 10473 10479 10485 10533 4 10473 10479 -10485 10533 5 + 10473 10479 -10485 10533 6 10473 10479 -10485 10533 7 + 10461 10455 10473 10476 3 10461 10455 10473 10479 10 + 10461 10455 -10473 10479 11 10461 10455 -10473 10479 12 + 10461 10455 -10473 10479 7 10455 10473 10479 10485 2 + 10449 10455 10473 10476 3 10449 10455 10473 10479 16 + 10449 10455 -10473 10479 17 10449 10455 -10473 10479 18 + 10449 10455 -10473 10479 7 10536 10533 10539 10545 2 + 10533 10539 10545 10551 1 10533 10539 -10545 10551 13 + 10533 10539 -10545 10551 12 10533 10539 -10545 10551 7 + 10533 10539 10545 10590 4 10533 10539 -10545 10590 5 + 10533 10539 -10545 10590 6 10533 10539 -10545 10590 7 + 10509 10503 10500 10527 19 10509 10515 -10521 10527 19 + 10503 10500 10527 10521 19 10503 10509 -10515 10521 19 + 10500 10491 10485 10533 9 10500 10503 10509 10515 19 + 10500 10527 -10521 10515 19 10491 10485 10533 10536 3 + 10491 10485 10533 10539 10 10491 10485 -10533 10539 11 + 10491 10485 -10533 10539 12 10491 10485 -10533 10539 7 + 10491 10500 10503 10509 19 10491 10500 10527 10521 19 + 10485 10491 10500 10503 3 10485 10491 10500 10527 3 + 10485 10533 10539 10545 2 10479 10485 10491 10500 9 + 10479 10485 10533 10536 3 10479 10485 10533 10539 16 + 10479 10485 -10533 10539 17 10479 10485 -10533 10539 18 + 10479 10485 -10533 10539 7 10593 10590 10596 10602 2 + 10590 10596 10602 10608 1 10590 10596 -10602 10608 13 + 10590 10596 -10602 10608 12 10590 10596 -10602 10608 7 + 10590 10596 10602 10623 4 10590 10596 -10602 10623 5 + 10590 10596 -10602 10623 6 10590 10596 -10602 10623 7 + 10560 10551 10545 10590 9 10551 10545 10590 10593 3 + 10551 10545 10590 10596 10 10551 10545 -10590 10596 11 + 10551 10545 -10590 10596 12 10551 10545 -10590 10596 7 + 10545 10551 10560 10566 22 10545 10551 -10560 10566 23 + 10545 10551 -10560 10566 24 10545 10551 10560 10578 22 + 10545 10551 -10560 10578 23 10545 10551 -10560 10578 24 + 10545 10590 10596 10602 2 10539 10545 10551 10560 9 + 10539 10545 10590 10593 3 10539 10545 10590 10596 16 + 10539 10545 -10590 10596 17 10539 10545 -10590 10596 18 + 10539 10545 -10590 10596 7 10626 10623 10629 10635 2 + 10623 10629 10635 10641 1 10623 10629 -10635 10641 13 + 10623 10629 -10635 10641 12 10623 10629 -10635 10641 7 + 10623 10629 10635 10656 4 10623 10629 -10635 10656 5 + 10623 10629 -10635 10656 6 10623 10629 -10635 10656 7 + 10617 10608 10602 10623 9 10608 10602 10623 10626 3 + 10608 10602 10623 10629 10 10608 10602 -10623 10629 11 + 10608 10602 -10623 10629 12 10608 10602 -10623 10629 7 + 10602 10623 10629 10635 2 10596 10602 10608 10617 9 + 10596 10602 10623 10626 3 10596 10602 10623 10629 16 + 10596 10602 -10623 10629 17 10596 10602 -10623 10629 18 + 10596 10602 -10623 10629 7 10659 10656 10662 10668 2 + 10656 10662 10668 10674 1 10656 10662 -10668 10674 13 + 10656 10662 -10668 10674 12 10656 10662 -10668 10674 7 + 10656 10662 10668 10692 4 10656 10662 -10668 10692 5 + 10656 10662 -10668 10692 6 10656 10662 -10668 10692 7 + 10650 10641 10635 10656 9 10641 10635 10656 10659 3 + 10641 10635 10656 10662 10 10641 10635 -10656 10662 11 + 10641 10635 -10656 10662 12 10641 10635 -10656 10662 7 + 10635 10656 10662 10668 2 10629 10635 10641 10650 9 + 10629 10635 10656 10659 3 10629 10635 10656 10662 16 + 10629 10635 -10656 10662 17 10629 10635 -10656 10662 18 + 10629 10635 -10656 10662 7 10695 10692 10698 10704 2 + 10692 10698 10704 10710 1 10692 10698 -10704 10710 13 + 10692 10698 -10704 10710 12 10692 10698 -10704 10710 7 + 10692 10698 10704 10743 4 10692 10698 -10704 10743 5 + 10692 10698 -10704 10743 6 10692 10698 -10704 10743 7 + 10683 10674 10668 10692 9 10674 10668 10692 10695 3 + 10674 10668 10692 10698 10 10674 10668 -10692 10698 11 + 10674 10668 -10692 10698 12 10674 10668 -10692 10698 7 + 10668 10674 10683 10686 3 10668 10674 10683 10689 3 + 10668 10692 10698 10704 2 10662 10668 10674 10683 9 + 10662 10668 10692 10695 3 10662 10668 10692 10698 16 + 10662 10668 -10692 10698 17 10662 10668 -10692 10698 18 + 10662 10668 -10692 10698 7 10746 10743 10749 10755 2 + 10743 10749 10755 10761 1 10743 10749 -10755 10761 13 + 10743 10749 -10755 10761 12 10743 10749 -10755 10761 7 + 10743 10749 10755 10773 4 10743 10749 -10755 10773 5 + 10743 10749 -10755 10773 6 10743 10749 -10755 10773 7 + 10719 10710 10704 10743 9 10710 10704 10743 10746 3 + 10710 10704 10743 10749 10 10710 10704 -10743 10749 11 + 10710 10704 -10743 10749 12 10710 10704 -10743 10749 7 + 10710 10719 10728 10731 8 10704 10710 10719 10728 9 + 10704 10743 10749 10755 2 10698 10704 10710 10719 9 + 10698 10704 10743 10746 3 10698 10704 10743 10749 16 + 10698 10704 -10743 10749 17 10698 10704 -10743 10749 18 + 10698 10704 -10743 10749 7 10776 10773 10779 10785 2 + 10773 10779 10785 10791 1 10773 10779 -10785 10791 13 + 10773 10779 -10785 10791 12 10773 10779 -10785 10791 7 + 10773 10779 10785 10815 4 10773 10779 -10785 10815 5 + 10773 10779 -10785 10815 6 10773 10779 -10785 10815 7 + 10761 10755 10773 10776 3 10761 10755 10773 10779 10 + 10761 10755 -10773 10779 11 10761 10755 -10773 10779 12 + 10761 10755 -10773 10779 7 10755 10773 10779 10785 2 + 10749 10755 10773 10776 3 10749 10755 10773 10779 16 + 10749 10755 -10773 10779 17 10749 10755 -10773 10779 18 + 10749 10755 -10773 10779 7 10818 10815 10821 10827 2 + 10815 10821 10827 10836 4 10815 10821 -10827 10836 5 + 10815 10821 -10827 10836 6 10815 10821 -10827 10836 7 + 10809 10791 10785 10815 9 10797 10791 10785 10815 9 + 10791 10785 10815 10818 3 10791 10785 10815 10821 10 + 10791 10785 -10815 10821 11 10791 10785 -10815 10821 12 + 10791 10785 -10815 10821 7 10785 10815 10821 10827 2 + 10779 10785 10791 10797 9 10779 10785 10791 10809 9 + 10779 10785 10815 10818 3 10779 10785 10815 10821 16 + 10779 10785 -10815 10821 17 10779 10785 -10815 10821 18 + 10779 10785 -10815 10821 7 10839 10836 10842 10848 2 + 10836 10842 10848 10854 1 10836 10842 -10848 10854 13 + 10836 10842 -10848 10854 12 10836 10842 -10848 10854 7 + 10836 10842 10848 10893 4 10836 10842 -10848 10893 5 + 10836 10842 -10848 10893 6 10836 10842 -10848 10893 7 + 10827 10836 10842 10848 2 10821 10827 10836 10839 3 + 10821 10827 10836 10842 16 10821 10827 -10836 10842 17 + 10821 10827 -10836 10842 18 10821 10827 -10836 10842 7 + 10896 10893 10899 10905 2 10893 10899 10905 10911 1 + 10893 10899 -10905 10911 13 10893 10899 -10905 10911 12 + 10893 10899 -10905 10911 7 10893 10899 10905 10935 4 + 10893 10899 -10905 10935 5 10893 10899 -10905 10935 6 + 10893 10899 -10905 10935 7 10872 10854 10848 10893 9 + 10860 10854 10848 10893 9 10860 10854 10872 10881 22 + 10860 10854 -10872 10881 23 10860 10854 -10872 10881 24 + 10854 10848 10893 10896 3 10854 10848 10893 10899 10 + 10854 10848 -10893 10899 11 10854 10848 -10893 10899 12 + 10854 10848 -10893 10899 7 10848 10854 10872 10881 22 + 10848 10854 -10872 10881 23 10848 10854 -10872 10881 24 + 10848 10893 10899 10905 2 10842 10848 10854 10860 9 + 10842 10848 10854 10872 9 10842 10848 10893 10896 3 + 10842 10848 10893 10899 16 10842 10848 -10893 10899 17 + 10842 10848 -10893 10899 18 10842 10848 -10893 10899 7 + 10938 10935 10941 10947 2 10935 10941 10947 10956 4 + 10935 10941 -10947 10956 5 10935 10941 -10947 10956 6 + 10935 10941 -10947 10956 7 10929 10911 10905 10935 9 + 10917 10911 10905 10935 9 10911 10905 10935 10938 3 + 10911 10905 10935 10941 10 10911 10905 -10935 10941 11 + 10911 10905 -10935 10941 12 10911 10905 -10935 10941 7 + 10905 10935 10941 10947 2 10899 10905 10911 10917 9 + 10899 10905 10911 10929 9 10899 10905 10935 10938 3 + 10899 10905 10935 10941 16 10899 10905 -10935 10941 17 + 10899 10905 -10935 10941 18 10899 10905 -10935 10941 7 + 10959 10956 10962 10968 2 10956 10962 10968 10974 1 + 10956 10962 -10968 10974 13 10956 10962 -10968 10974 12 + 10956 10962 -10968 10974 7 10956 10962 10968 11001 4 + 10956 10962 -10968 11001 5 10956 10962 -10968 11001 6 + 10956 10962 -10968 11001 7 10947 10956 10962 10968 2 + 10941 10947 10956 10959 3 10941 10947 10956 10962 16 + 10941 10947 -10956 10962 17 10941 10947 -10956 10962 18 + 10941 10947 -10956 10962 7 11004 11001 11007 11013 2 + 11001 11007 11013 11019 1 11001 11007 -11013 11019 13 + 11001 11007 -11013 11019 12 11001 11007 -11013 11019 7 + 11001 11007 11013 11049 4 11001 11007 -11013 11049 5 + 11001 11007 -11013 11049 6 11001 11007 -11013 11049 7 + 10983 10974 10968 11001 9 10974 10968 11001 11004 3 + 10974 10968 11001 11007 10 10974 10968 -11001 11007 11 + 10974 10968 -11001 11007 12 10974 10968 -11001 11007 7 + 10974 10983 10992 10995 3 10974 10983 10992 10998 3 + 10968 10974 10983 10992 9 10968 11001 11007 11013 2 + 10962 10968 10974 10983 9 10962 10968 11001 11004 3 + 10962 10968 11001 11007 16 10962 10968 -11001 11007 17 + 10962 10968 -11001 11007 18 10962 10968 -11001 11007 7 + 11052 11049 11055 11061 2 11049 11055 11061 11067 1 + 11049 11055 -11061 11067 13 11049 11055 -11061 11067 12 + 11049 11055 -11061 11067 7 11049 11055 11061 11097 4 + 11049 11055 -11061 11097 5 11049 11055 -11061 11097 6 + 11049 11055 -11061 11097 7 11037 11019 11013 11049 9 + 11025 11019 11013 11049 9 11019 11013 11049 11052 3 + 11019 11013 11049 11055 10 11019 11013 -11049 11055 11 + 11019 11013 -11049 11055 12 11019 11013 -11049 11055 7 + 11013 11049 11055 11061 2 11007 11013 11019 11025 9 + 11007 11013 11019 11037 9 11007 11013 11049 11052 3 + 11007 11013 11049 11055 16 11007 11013 -11049 11055 17 + 11007 11013 -11049 11055 18 11007 11013 -11049 11055 7 + 11100 11097 11103 11109 2 11097 11103 11109 11115 1 + 11097 11103 -11109 11115 13 11097 11103 -11109 11115 12 + 11097 11103 -11109 11115 7 11097 11103 11109 11148 4 + 11097 11103 -11109 11148 5 11097 11103 -11109 11148 6 + 11097 11103 -11109 11148 7 11085 11067 11061 11097 9 + 11073 11067 11061 11097 9 11067 11061 11097 11100 3 + 11067 11061 11097 11103 10 11067 11061 -11097 11103 11 + 11067 11061 -11097 11103 12 11067 11061 -11097 11103 7 + 11061 11097 11103 11109 2 11055 11061 11067 11073 9 + 11055 11061 11067 11085 9 11055 11061 11097 11100 3 + 11055 11061 11097 11103 16 11055 11061 -11097 11103 17 + 11055 11061 -11097 11103 18 11055 11061 -11097 11103 7 + 11151 11148 11154 11160 2 11148 11154 11160 11166 1 + 11148 11154 -11160 11166 13 11148 11154 -11160 11166 12 + 11148 11154 -11160 11166 7 11148 11154 11160 11196 4 + 11148 11154 -11160 11196 5 11148 11154 -11160 11196 6 + 11148 11154 -11160 11196 7 11130 11127 -11124 11142 31 + 11127 11124 -11142 11136 32 11127 11130 -11136 11142 30 + 11124 11115 11109 11148 9 11124 11127 -11130 11136 33 + 11124 11142 -11136 11130 29 11115 11109 11148 11151 3 + 11115 11109 11148 11154 10 11115 11109 -11148 11154 11 + 11115 11109 -11148 11154 12 11115 11109 -11148 11154 7 + 11115 11124 11127 11130 31 11115 11124 11142 11136 32 + 11109 11115 11124 11127 3 11109 11115 11124 11142 3 + 11109 11148 11154 11160 2 11103 11109 11115 11124 9 + 11103 11109 11148 11151 3 11103 11109 11148 11154 16 + 11103 11109 -11148 11154 17 11103 11109 -11148 11154 18 + 11103 11109 -11148 11154 7 11199 11196 11202 11208 2 + 11196 11202 11208 11214 1 11196 11202 -11208 11214 13 + 11196 11202 -11208 11214 12 11196 11202 -11208 11214 7 + 11196 11202 11208 11232 4 11196 11202 -11208 11232 5 + 11196 11202 -11208 11232 6 11196 11202 -11208 11232 7 + 11184 11166 11160 11196 9 11172 11166 11160 11196 9 + 11166 11160 11196 11199 3 11166 11160 11196 11202 10 + 11166 11160 -11196 11202 11 11166 11160 -11196 11202 12 + 11166 11160 -11196 11202 7 11160 11196 11202 11208 2 + 11154 11160 11166 11172 9 11154 11160 11166 11184 9 + 11154 11160 11196 11199 3 11154 11160 11196 11202 16 + 11154 11160 -11196 11202 17 11154 11160 -11196 11202 18 + 11154 11160 -11196 11202 7 11235 11232 11238 11244 2 + 11232 11238 11244 11250 1 11232 11238 -11244 11250 13 + 11232 11238 -11244 11250 12 11232 11238 -11244 11250 7 + 11232 11238 11244 11262 4 11232 11238 -11244 11262 5 + 11232 11238 -11244 11262 6 11232 11238 -11244 11262 7 + 11223 11214 11208 11232 9 11214 11208 11232 11235 3 + 11214 11208 11232 11238 10 11214 11208 -11232 11238 11 + 11214 11208 -11232 11238 12 11214 11208 -11232 11238 7 + 11208 11214 11223 11226 3 11208 11214 11223 11229 3 + 11208 11232 11238 11244 2 11202 11208 11214 11223 9 + 11202 11208 11232 11235 3 11202 11208 11232 11238 16 + 11202 11208 -11232 11238 17 11202 11208 -11232 11238 18 + 11202 11208 -11232 11238 7 11265 11262 11268 11274 2 + 11262 11268 11274 11283 4 11262 11268 -11274 11283 5 + 11262 11268 -11274 11283 6 11262 11268 -11274 11283 7 + 11250 11244 11262 11265 3 11250 11244 11262 11268 10 + 11250 11244 -11262 11268 11 11250 11244 -11262 11268 12 + 11250 11244 -11262 11268 7 11244 11262 11268 11274 2 + 11238 11244 11262 11265 3 11238 11244 11262 11268 16 + 11238 11244 -11262 11268 17 11238 11244 -11262 11268 18 + 11238 11244 -11262 11268 7 11286 11283 11289 11295 2 + 11283 11289 11295 11301 1 11283 11289 -11295 11301 13 + 11283 11289 -11295 11301 12 11283 11289 -11295 11301 7 + 11283 11289 11295 11346 4 11283 11289 -11295 11346 5 + 11283 11289 -11295 11346 6 11283 11289 -11295 11346 7 + 11274 11283 11289 11295 2 11268 11274 11283 11286 3 + 11268 11274 11283 11289 16 11268 11274 -11283 11289 17 + 11268 11274 -11283 11289 18 11268 11274 -11283 11289 7 + 11349 11346 11352 11358 2 11346 11352 11358 11364 1 + 11346 11352 -11358 11364 13 11346 11352 -11358 11364 12 + 11346 11352 -11358 11364 7 11346 11352 11358 11397 4 + 11346 11352 -11358 11397 5 11346 11352 -11358 11397 6 + 11346 11352 -11358 11397 7 11328 11325 11334 11340 19 + 11319 11313 11310 11340 19 11319 11325 -11334 11340 19 + 11313 11310 11340 11334 19 11313 11319 11325 11328 19 + 11313 11319 -11325 11334 19 11310 11301 11295 11346 9 + 11310 11313 11319 11325 19 11310 11340 -11334 11325 19 + 11301 11295 11346 11349 3 11301 11295 11346 11352 10 + 11301 11295 -11346 11352 11 11301 11295 -11346 11352 12 + 11301 11295 -11346 11352 7 11301 11310 11313 11319 19 + 11301 11310 11340 11334 19 11295 11301 11310 11313 3 + 11295 11301 11310 11340 3 11295 11346 11352 11358 2 + 11289 11295 11301 11310 9 11289 11295 11346 11349 3 + 11289 11295 11346 11352 16 11289 11295 -11346 11352 17 + 11289 11295 -11346 11352 18 11289 11295 -11346 11352 7 + 11400 11397 11403 11409 2 11397 11403 11409 11415 1 + 11397 11403 -11409 11415 13 11397 11403 -11409 11415 12 + 11397 11403 -11409 11415 7 11397 11403 11409 11430 4 + 11397 11403 -11409 11430 5 11397 11403 -11409 11430 6 + 11397 11403 -11409 11430 7 11379 11376 -11373 11391 31 + 11376 11373 -11391 11385 32 11376 11379 -11385 11391 30 + 11373 11364 11358 11397 9 11373 11376 -11379 11385 33 + 11373 11391 -11385 11379 29 11364 11358 11397 11400 3 + 11364 11358 11397 11403 10 11364 11358 -11397 11403 11 + 11364 11358 -11397 11403 12 11364 11358 -11397 11403 7 + 11364 11373 11376 11379 31 11364 11373 11391 11385 32 + 11358 11364 11373 11376 3 11358 11364 11373 11391 3 + 11358 11397 11403 11409 2 11352 11358 11364 11373 9 + 11352 11358 11397 11400 3 11352 11358 11397 11403 16 + 11352 11358 -11397 11403 17 11352 11358 -11397 11403 18 + 11352 11358 -11397 11403 7 11433 11430 11436 11442 2 + 11430 11436 11442 11448 1 11430 11436 -11442 11448 13 + 11430 11436 -11442 11448 12 11430 11436 -11442 11448 7 + 11430 11436 11442 11478 4 11430 11436 -11442 11478 5 + 11430 11436 -11442 11478 6 11430 11436 -11442 11478 7 + 11424 11415 11409 11430 9 11415 11409 11430 11433 3 + 11415 11409 11430 11436 10 11415 11409 -11430 11436 11 + 11415 11409 -11430 11436 12 11415 11409 -11430 11436 7 + 11409 11430 11436 11442 2 11403 11409 11415 11424 9 + 11403 11409 11430 11433 3 11403 11409 11430 11436 16 + 11403 11409 -11430 11436 17 11403 11409 -11430 11436 18 + 11403 11409 -11430 11436 7 11481 11478 11484 11490 2 + 11478 11484 11490 11496 1 11478 11484 -11490 11496 13 + 11478 11484 -11490 11496 12 11478 11484 -11490 11496 7 + 11478 11484 11490 11511 4 11478 11484 -11490 11511 5 + 11478 11484 -11490 11511 6 11478 11484 -11490 11511 7 + 11466 11448 11442 11478 9 11454 11448 11442 11478 9 + 11448 11442 11478 11481 3 11448 11442 11478 11484 10 + 11448 11442 -11478 11484 11 11448 11442 -11478 11484 12 + 11448 11442 -11478 11484 7 11442 11478 11484 11490 2 + 11436 11442 11448 11454 9 11436 11442 11448 11466 9 + 11436 11442 11478 11481 3 11436 11442 11478 11484 16 + 11436 11442 -11478 11484 17 11436 11442 -11478 11484 18 + 11436 11442 -11478 11484 7 11514 11511 11517 11523 2 + 11511 11517 11523 11529 1 11511 11517 -11523 11529 13 + 11511 11517 -11523 11529 12 11511 11517 -11523 11529 7 + 11511 11517 11523 11562 4 11511 11517 -11523 11562 5 + 11511 11517 -11523 11562 6 11511 11517 -11523 11562 7 + 11505 11496 11490 11511 9 11496 11490 11511 11514 3 + 11496 11490 11511 11517 10 11496 11490 -11511 11517 11 + 11496 11490 -11511 11517 12 11496 11490 -11511 11517 7 + 11490 11511 11517 11523 2 11484 11490 11496 11505 9 + 11484 11490 11511 11514 3 11484 11490 11511 11517 16 + 11484 11490 -11511 11517 17 11484 11490 -11511 11517 18 + 11484 11490 -11511 11517 7 11565 11562 11568 11574 2 + 11562 11568 11574 11583 4 11562 11568 -11574 11583 5 + 11562 11568 -11574 11583 6 11562 11568 -11574 11583 7 + 11538 11529 11523 11562 9 11529 11523 11562 11565 3 + 11529 11523 11562 11568 10 11529 11523 -11562 11568 11 + 11529 11523 -11562 11568 12 11529 11523 -11562 11568 7 + 11529 11538 11547 11550 8 11523 11529 11538 11547 9 + 11523 11562 11568 11574 2 11517 11523 11529 11538 9 + 11517 11523 11562 11565 3 11517 11523 11562 11568 16 + 11517 11523 -11562 11568 17 11517 11523 -11562 11568 18 + 11517 11523 -11562 11568 7 11586 11583 11589 11595 2 + 11583 11589 11595 11601 1 11583 11589 -11595 11601 13 + 11583 11589 -11595 11601 12 11583 11589 -11595 11601 7 + 11583 11589 11595 11625 4 11583 11589 -11595 11625 5 + 11583 11589 -11595 11625 6 11583 11589 -11595 11625 7 + 11574 11583 11589 11595 2 11568 11574 11583 11586 3 + 11568 11574 11583 11589 16 11568 11574 -11583 11589 17 + 11568 11574 -11583 11589 18 11568 11574 -11583 11589 7 + 11628 11625 11631 11637 2 11625 11631 11637 11643 1 + 11625 11631 -11637 11643 13 11625 11631 -11637 11643 12 + 11625 11631 -11637 11643 7 11625 11631 11637 11673 4 + 11625 11631 -11637 11673 5 11625 11631 -11637 11673 6 + 11625 11631 -11637 11673 7 11610 11601 11595 11625 9 + 11601 11595 11625 11628 3 11601 11595 11625 11631 10 + 11601 11595 -11625 11631 11 11601 11595 -11625 11631 12 + 11601 11595 -11625 11631 7 11595 11601 11610 11613 3 + 11595 11601 11610 11616 10 11595 11601 -11610 11616 11 + 11595 11601 -11610 11616 12 11595 11601 -11610 11616 7 + 11595 11625 11631 11637 2 11589 11595 11601 11610 9 + 11589 11595 11625 11628 3 11589 11595 11625 11631 16 + 11589 11595 -11625 11631 17 11589 11595 -11625 11631 18 + 11589 11595 -11625 11631 7 11676 11673 11679 11685 2 + 11673 11679 11685 11691 1 11673 11679 -11685 11691 13 + 11673 11679 -11685 11691 12 11673 11679 -11685 11691 7 + 11673 11679 11685 11730 4 11673 11679 -11685 11730 5 + 11673 11679 -11685 11730 6 11673 11679 -11685 11730 7 + 11661 11643 11637 11673 9 11649 11643 11637 11673 9 + 11643 11637 11673 11676 3 11643 11637 11673 11679 10 + 11643 11637 -11673 11679 11 11643 11637 -11673 11679 12 + 11643 11637 -11673 11679 7 11637 11673 11679 11685 2 + 11631 11637 11643 11649 9 11631 11637 11643 11661 9 + 11631 11637 11673 11676 3 11631 11637 11673 11679 16 + 11631 11637 -11673 11679 17 11631 11637 -11673 11679 18 + 11631 11637 -11673 11679 7 11733 11730 11736 11742 2 + 11730 11736 11742 11748 1 11730 11736 -11742 11748 13 + 11730 11736 -11742 11748 12 11730 11736 -11742 11748 7 + 11730 11736 11742 11787 4 11730 11736 -11742 11787 5 + 11730 11736 -11742 11787 6 11730 11736 -11742 11787 7 + 11700 11691 11685 11730 9 11691 11685 11730 11733 3 + 11691 11685 11730 11736 10 11691 11685 -11730 11736 11 + 11691 11685 -11730 11736 12 11691 11685 -11730 11736 7 + 11685 11691 11700 11706 22 11685 11691 -11700 11706 23 + 11685 11691 -11700 11706 24 11685 11691 11700 11718 22 + 11685 11691 -11700 11718 23 11685 11691 -11700 11718 24 + 11685 11730 11736 11742 2 11679 11685 11691 11700 9 + 11679 11685 11730 11733 3 11679 11685 11730 11736 16 + 11679 11685 -11730 11736 17 11679 11685 -11730 11736 18 + 11679 11685 -11730 11736 7 11790 11787 11793 11799 2 + 11787 11793 11799 11805 1 11787 11793 -11799 11805 13 + 11787 11793 -11799 11805 12 11787 11793 -11799 11805 7 + 11787 11793 11799 11832 4 11787 11793 -11799 11832 5 + 11787 11793 -11799 11832 6 11787 11793 -11799 11832 7 + 11757 11748 11742 11787 9 11748 11742 11787 11790 3 + 11748 11742 11787 11793 10 11748 11742 -11787 11793 11 + 11748 11742 -11787 11793 12 11748 11742 -11787 11793 7 + 11742 11748 11757 11763 22 11742 11748 -11757 11763 23 + 11742 11748 -11757 11763 24 11742 11748 11757 11775 22 + 11742 11748 -11757 11775 23 11742 11748 -11757 11775 24 + 11742 11787 11793 11799 2 11736 11742 11748 11757 9 + 11736 11742 11787 11790 3 11736 11742 11787 11793 16 + 11736 11742 -11787 11793 17 11736 11742 -11787 11793 18 + 11736 11742 -11787 11793 7 11835 11832 11838 11844 2 + 11832 11838 11844 11850 1 11832 11838 -11844 11850 13 + 11832 11838 -11844 11850 12 11832 11838 -11844 11850 7 + 11832 11838 11844 11883 4 11832 11838 -11844 11883 5 + 11832 11838 -11844 11883 6 11832 11838 -11844 11883 7 + 11814 11805 11799 11832 9 11805 11799 11832 11835 3 + 11805 11799 11832 11838 10 11805 11799 -11832 11838 11 + 11805 11799 -11832 11838 12 11805 11799 -11832 11838 7 + 11805 11814 11823 11826 3 11805 11814 11823 11829 3 + 11799 11805 11814 11823 9 11799 11832 11838 11844 2 + 11793 11799 11805 11814 9 11793 11799 11832 11835 3 + 11793 11799 11832 11838 16 11793 11799 -11832 11838 17 + 11793 11799 -11832 11838 18 11793 11799 -11832 11838 7 + 11886 11883 11889 11895 2 11883 11889 11895 11901 1 + 11883 11889 -11895 11901 13 11883 11889 -11895 11901 12 + 11883 11889 -11895 11901 7 11883 11889 11895 11934 4 + 11883 11889 -11895 11934 5 11883 11889 -11895 11934 6 + 11883 11889 -11895 11934 7 11865 11862 -11859 11877 31 + 11862 11859 -11877 11871 32 11862 11865 -11871 11877 30 + 11859 11850 11844 11883 9 11859 11862 -11865 11871 33 + 11859 11877 -11871 11865 29 11850 11844 11883 11886 3 + 11850 11844 11883 11889 10 11850 11844 -11883 11889 11 + 11850 11844 -11883 11889 12 11850 11844 -11883 11889 7 + 11850 11859 11862 11865 31 11850 11859 11877 11871 32 + 11844 11850 11859 11862 3 11844 11850 11859 11877 3 + 11844 11883 11889 11895 2 11838 11844 11850 11859 9 + 11838 11844 11883 11886 3 11838 11844 11883 11889 16 + 11838 11844 -11883 11889 17 11838 11844 -11883 11889 18 + 11838 11844 -11883 11889 7 11937 11934 11940 11946 2 + 11934 11940 11946 11952 1 11934 11940 -11946 11952 13 + 11934 11940 -11946 11952 12 11934 11940 -11946 11952 7 + 11934 11940 11946 11985 4 11934 11940 -11946 11985 5 + 11934 11940 -11946 11985 6 11934 11940 -11946 11985 7 + 11916 11913 -11910 11928 31 11913 11910 -11928 11922 32 + 11913 11916 -11922 11928 30 11910 11901 11895 11934 9 + 11910 11913 -11916 11922 33 11910 11928 -11922 11916 29 + 11901 11895 11934 11937 3 11901 11895 11934 11940 10 + 11901 11895 -11934 11940 11 11901 11895 -11934 11940 12 + 11901 11895 -11934 11940 7 11901 11910 11913 11916 31 + 11901 11910 11928 11922 32 11895 11901 11910 11913 3 + 11895 11901 11910 11928 3 11895 11934 11940 11946 2 + 11889 11895 11901 11910 9 11889 11895 11934 11937 3 + 11889 11895 11934 11940 16 11889 11895 -11934 11940 17 + 11889 11895 -11934 11940 18 11889 11895 -11934 11940 7 + 11988 11985 11991 11997 2 11985 11991 11997 12003 1 + 11985 11991 -11997 12003 13 11985 11991 -11997 12003 12 + 11985 11991 -11997 12003 7 11985 11991 11997 12036 4 + 11985 11991 -11997 12036 5 11985 11991 -11997 12036 6 + 11985 11991 -11997 12036 7 11967 11964 -11961 11979 31 + 11964 11961 -11979 11973 32 11964 11967 -11973 11979 30 + 11961 11952 11946 11985 9 11961 11964 -11967 11973 33 + 11961 11979 -11973 11967 29 11952 11946 11985 11988 3 + 11952 11946 11985 11991 10 11952 11946 -11985 11991 11 + 11952 11946 -11985 11991 12 11952 11946 -11985 11991 7 + 11952 11961 11964 11967 31 11952 11961 11979 11973 32 + 11946 11952 11961 11964 3 11946 11952 11961 11979 3 + 11946 11985 11991 11997 2 11940 11946 11952 11961 9 + 11940 11946 11985 11988 3 11940 11946 11985 11991 16 + 11940 11946 -11985 11991 17 11940 11946 -11985 11991 18 + 11940 11946 -11985 11991 7 12039 12036 12042 12048 2 + 12036 12042 12048 12054 1 12036 12042 -12048 12054 13 + 12036 12042 -12048 12054 12 12036 12042 -12048 12054 7 + 12036 12042 12048 12087 4 12036 12042 -12048 12087 5 + 12036 12042 -12048 12087 6 12036 12042 -12048 12087 7 + 12018 12015 -12012 12030 31 12015 12012 -12030 12024 32 + 12015 12018 -12024 12030 30 12012 12003 11997 12036 9 + 12012 12015 -12018 12024 33 12012 12030 -12024 12018 29 + 12003 11997 12036 12039 3 12003 11997 12036 12042 10 + 12003 11997 -12036 12042 11 12003 11997 -12036 12042 12 + 12003 11997 -12036 12042 7 12003 12012 12015 12018 31 + 12003 12012 12030 12024 32 11997 12003 12012 12015 3 + 11997 12003 12012 12030 3 11997 12036 12042 12048 2 + 11991 11997 12003 12012 9 11991 11997 12036 12039 3 + 11991 11997 12036 12042 16 11991 11997 -12036 12042 17 + 11991 11997 -12036 12042 18 11991 11997 -12036 12042 7 + 12090 12087 12093 12099 2 12087 12093 12099 12105 1 + 12087 12093 -12099 12105 13 12087 12093 -12099 12105 12 + 12087 12093 -12099 12105 7 12087 12093 12099 12138 4 + 12087 12093 -12099 12138 5 12087 12093 -12099 12138 6 + 12087 12093 -12099 12138 7 12069 12066 -12063 12081 31 + 12066 12063 -12081 12075 32 12066 12069 -12075 12081 30 + 12063 12054 12048 12087 9 12063 12066 -12069 12075 33 + 12063 12081 -12075 12069 29 12054 12048 12087 12090 3 + 12054 12048 12087 12093 10 12054 12048 -12087 12093 11 + 12054 12048 -12087 12093 12 12054 12048 -12087 12093 7 + 12054 12063 12066 12069 31 12054 12063 12081 12075 32 + 12048 12054 12063 12066 3 12048 12054 12063 12081 3 + 12048 12087 12093 12099 2 12042 12048 12054 12063 9 + 12042 12048 12087 12090 3 12042 12048 12087 12093 16 + 12042 12048 -12087 12093 17 12042 12048 -12087 12093 18 + 12042 12048 -12087 12093 7 12120 12117 -12114 12132 31 + 12117 12114 -12132 12126 32 12117 12120 -12126 12132 30 + 12114 12105 12099 12138 9 12114 12117 -12120 12126 33 + 12114 12132 -12126 12120 29 12105 12099 12138 12141 3 + 12105 12099 12138 12144 3 12105 12114 12117 12120 31 + 12105 12114 12132 12126 32 12099 12105 12114 12117 3 + 12099 12105 12114 12132 3 12093 12099 12105 12114 9 + 12093 12099 12138 12141 3 12093 12099 12138 12144 3 + 12267 12261 12258 12270 44 12264 12261 12258 12270 45 + 12261 12258 12270 12273 35 12258 12255 12252 12276 46 + 12258 12270 -12273 12276 47 12255 12252 12276 12273 46 + 12255 12258 12261 12267 49 12255 12258 -12261 12267 44 + 12255 12258 12261 12264 45 12255 12258 -12270 12273 47 + 12252 12276 12273 12270 48 12252 12255 12258 12261 42 + 12252 12255 -12258 12270 48 12249 12252 12276 12273 42 + 12249 12252 12255 12258 42 12246 12243 12249 12252 9 + 12243 12249 12252 12276 3 12243 12249 12252 12255 3 + 12240 12237 12243 12249 9 12240 12237 12243 12246 51 + 12240 12237 -12243 12246 52 12237 12231 -12234 12249 53 + 12237 12231 -12234 12249 54 12237 12243 12249 12252 9 + 12234 12231 -12237 12243 9 12234 12231 12237 12240 51 + 12234 12231 -12237 12240 52 12234 12249 -12243 12237 9 + 12234 12249 12243 12246 51 12234 12249 -12243 12246 52 + 12234 12249 12252 12276 3 12234 12249 12252 12255 3 + 12231 12234 -12249 12243 53 12231 12234 -12249 12243 54 + 12231 12234 12249 12252 50 12231 12237 -12243 12249 22 + 12231 12237 -12243 12249 23 12231 12237 -12243 12249 24 + 12231 12237 12243 12246 9 12228 12231 12234 12249 53 + 12228 12231 -12234 12249 54 12228 12231 12237 12243 22 + 12228 12231 -12237 12243 23 12228 12231 -12237 12243 24 + 12228 12231 12237 12240 9 12225 12228 12231 12234 51 + 12225 12228 -12231 12234 52 12225 12228 12231 12237 9 + 12222 12216 12225 12228 34 12219 12216 12225 12228 34 + 12216 12225 12228 12231 50 12213 12216 12225 12228 55 + 12213 12216 -12225 12228 34 12201 12195 12192 12210 36 + 12201 12204 -12207 12210 57 12198 12195 12192 12210 36 + 12198 12195 12201 12204 58 12195 12192 12210 12207 59 + 12195 12201 -12204 12207 57 12192 12210 12207 12204 61 + 12192 12195 -12201 12204 58 12189 12186 -12183 12210 56 + 12189 12192 12210 12207 59 12189 12192 12195 12201 36 + 12189 12192 12195 12198 36 12186 12183 -12210 12192 62 + 12186 12183 12210 12207 62 12186 12189 -12192 12210 63 + 12186 12189 12192 12195 63 12183 12186 -12189 12192 60 + 12183 12210 -12192 12189 59 12183 12210 12192 12195 59 + 12183 12210 12207 12204 61 12180 12183 12186 12189 56 + 12180 12183 12210 12192 62 12180 12183 12210 12207 62 + 12177 12174 12180 12183 9 12174 12180 12183 12186 3 + 12174 12180 12183 12210 3 12171 12168 12174 12180 9 + 12171 12168 12174 12177 51 12171 12168 -12174 12177 52 + 12168 12162 -12165 12180 53 12168 12162 -12165 12180 54 + 12168 12174 12180 12183 9 12165 12162 -12168 12174 9 + 12165 12162 12168 12171 51 12165 12162 -12168 12171 52 + 12165 12180 -12174 12168 9 12165 12180 12174 12177 51 + 12165 12180 -12174 12177 52 12165 12180 12183 12186 64 + 12165 12180 -12183 12186 3 12165 12180 12183 12210 3 + 12162 12168 -12174 12180 22 12162 12168 -12174 12180 23 + 12162 12168 -12174 12180 24 12162 12168 12174 12177 9 + 12162 12165 -12180 12174 53 12162 12165 -12180 12174 54 + 12162 12165 12180 12183 65 12162 12165 -12180 12183 54 + 12159 12156 12147 12213 55 12159 12156 -12147 12213 34 + 12159 12162 12168 12174 22 12159 12162 -12168 12174 23 + 12159 12162 -12168 12174 24 12159 12162 12168 12171 9 + 12159 12162 12165 12180 53 12159 12162 -12165 12180 54 + 12156 12147 12213 12216 34 12156 12159 12162 12168 9 + 12156 12159 12162 12165 51 12156 12159 -12162 12165 52 + 12153 12147 12213 12216 34 12153 12147 12156 12159 34 + 12150 12147 12213 12216 34 12150 12147 12156 12159 34 + 12147 12213 12216 12225 34 12147 12213 12216 12219 34 + 12147 12213 12216 12222 34 12147 12156 12159 12162 50 + 12396 12381 12384 12399 19 12396 12393 12390 12402 19 + 12390 12387 12384 12399 19 12387 12384 12381 12396 19 + 12387 12390 -12393 12396 19 12384 12381 12396 12393 19 + 12384 12387 -12390 12393 19 12384 12387 12390 12402 19 + 12381 12384 12387 12390 19 12381 12396 -12393 12390 19 + 12375 12357 12360 12378 19 12375 12381 12384 12387 19 + 12375 12381 12384 12399 19 12375 12381 12396 12393 19 + 12372 12357 12360 12378 19 12372 12357 12375 12381 66 + 12372 12369 12366 12405 19 12369 12372 12357 12375 19 + 12366 12363 12360 12378 19 12363 12360 12357 12372 19 + 12363 12360 12357 12375 19 12363 12366 -12369 12372 19 + 12360 12357 12372 12369 19 12360 12357 12375 12381 66 + 12360 12363 -12366 12369 19 12360 12363 12366 12405 19 + 12357 12360 12363 12366 19 12357 12372 -12369 12366 19 + 12357 12375 12381 12384 66 12357 12375 12381 12396 66 + 12 57 -51 -54 41 63 78 -72 -75 41 + 84 138 -132 -135 41 102 126 -99 -90 40 + 144 195 -189 -192 41 201 225 -219 -222 41 + 231 246 -240 -243 41 252 312 -306 -309 41 + 318 378 -372 -375 41 384 435 -429 -432 41 + 441 492 -486 -489 41 498 549 -543 -546 41 + 555 591 -585 -588 41 597 612 -606 -609 41 + 618 669 -663 -666 41 675 726 -720 -723 41 + 732 759 -753 -756 41 765 801 -795 -798 41 + 771 786 -780 -783 41 807 867 -861 -864 41 + 873 900 -894 -897 41 906 957 -951 -954 41 + 963 987 -981 -984 41 993 1050 -1044 -1047 41 + 1017 1032 -1023 -1026 40 1011 1038 -1008 -999 40 + 1056 1071 -1065 -1068 41 1077 1128 -1122 -1125 41 + 1134 1158 -1152 -1155 41 1164 1224 -1218 -1221 41 + 1230 1254 -1248 -1251 41 1260 1305 -1299 -1302 41 + 1311 1356 -1350 -1353 41 1317 1344 -1326 -1329 40 + 1362 1428 -1422 -1425 41 1395 1404 -1401 -1413 41 + 1434 1473 -1467 -1470 41 1449 1461 -1458 -1464 41 + 1479 1494 -1488 -1491 41 1500 1524 -1518 -1521 41 + 1530 1569 -1563 -1566 41 1545 1557 -1554 -1560 41 + 1575 1626 -1620 -1623 41 1632 1656 -1650 -1653 41 + 1662 1716 -1710 -1713 41 1680 1704 -1677 -1668 40 + 1722 1758 -1752 -1755 41 1764 1821 -1815 -1818 41 + 1788 1803 -1794 -1797 40 1782 1809 -1779 -1770 40 + 1827 1869 -1863 -1866 41 1875 1890 -1884 -1887 41 + 1896 1941 -1935 -1938 41 1911 1926 -1920 -1923 41 + 1947 2001 -1995 -1998 41 1965 1989 -1962 -1953 40 + 2007 2067 -2061 -2064 41 2073 2103 -2097 -2100 41 + 2079 2091 -2088 -2094 41 2109 2175 -2169 -2172 41 + 2142 2151 -2148 -2160 41 2181 2223 -2217 -2220 41 + 2229 2268 -2262 -2265 41 2244 2256 -2253 -2259 41 + 2274 2334 -2328 -2331 41 2340 2391 -2385 -2388 41 + 2397 2424 -2418 -2421 41 2430 2454 -2448 -2451 41 + 2460 2499 -2493 -2496 41 2475 2487 -2484 -2490 41 + 2505 2559 -2553 -2556 41 2523 2547 -2520 -2511 40 + 2565 2601 -2595 -2598 41 2571 2586 -2580 -2583 41 + 2631 2643 -2637 -2640 41 2595 2604 -2601 -2631 42 + 2649 2673 -2667 -2670 41 2679 2703 -2697 -2700 41 + 2709 2751 -2745 -2748 41 2757 2808 -2802 -2805 41 + 2838 2850 -2844 -2847 41 2802 2811 -2808 -2838 42 + 2856 2883 -2877 -2880 41 2889 2919 -2913 -2916 41 + 2895 2907 -2904 -2910 41 2925 2967 -2961 -2964 41 + 2973 3024 -3018 -3021 41 3030 3057 -3051 -3054 41 + 3063 3093 -3087 -3090 41 3069 3081 -3078 -3084 41 + 3099 3144 -3138 -3141 41 3114 3129 -3123 -3126 41 + 3150 3189 -3183 -3186 41 3165 3177 -3174 -3180 41 + 3195 3246 -3240 -3243 41 3252 3312 -3306 -3309 41 + 3318 3348 -3342 -3345 41 3324 3336 -3333 -3339 41 + 3354 3405 -3399 -3402 41 3411 3465 -3459 -3462 41 + 3429 3453 -3426 -3417 40 3471 3513 -3507 -3510 41 + 3519 3558 -3552 -3555 41 3534 3546 -3543 -3549 41 + 3564 3615 -3609 -3612 41 3621 3636 -3630 -3633 41 + 3642 3702 -3696 -3699 41 3708 3750 -3744 -3747 41 + 3756 3822 -3816 -3819 41 3813 3762 -3771 -3774 40 + 3828 3858 -3852 -3855 41 3834 3846 -3843 -3849 41 + 3864 3879 -3873 -3876 41 3885 3936 -3930 -3933 41 + 3942 3972 -3966 -3969 41 3948 3960 -3957 -3963 41 + 3978 4002 -3996 -3999 41 4008 4059 -4053 -4056 41 + 4065 4107 -4101 -4104 41 4113 4158 -4152 -4155 41 + 4119 4146 -4128 -4131 40 4164 4191 -4185 -4188 41 + 4197 4248 -4242 -4245 41 4254 4278 -4272 -4275 41 + 4284 4338 -4332 -4335 41 4302 4326 -4299 -4290 40 + 4344 4368 -4362 -4365 41 4398 4410 -4404 -4407 41 + 4362 4371 -4368 -4398 42 4416 4482 -4476 -4479 41 + 4449 4458 -4455 -4467 41 4488 4518 -4512 -4515 41 + 4494 4506 -4503 -4509 41 4524 4569 -4563 -4566 41 + 4539 4554 -4548 -4551 41 4575 4626 -4620 -4623 41 + 4632 4671 -4665 -4668 41 4647 4659 -4656 -4662 41 + 4677 4692 -4686 -4689 41 4698 4734 -4728 -4731 41 + 4704 4719 -4713 -4716 41 4740 4794 -4788 -4791 41 + 4758 4782 -4755 -4746 40 4800 4851 -4845 -4848 41 + 4857 4887 -4881 -4884 41 4863 4875 -4872 -4878 41 + 4893 4920 -4914 -4917 41 4926 4968 -4962 -4965 41 + 4974 5010 -5004 -5007 41 5016 5082 -5076 -5079 41 + 5049 5058 -5055 -5067 41 5088 5127 -5121 -5124 41 + 5103 5115 -5112 -5118 41 5133 5148 -5142 -5145 41 + 5154 5208 -5202 -5205 41 5172 5196 -5169 -5160 40 + 5214 5241 -5235 -5238 41 5247 5298 -5292 -5295 41 + 5304 5328 -5322 -5325 41 5334 5379 -5373 -5376 41 + 5340 5367 -5349 -5352 40 5385 5415 -5409 -5412 41 + 5391 5403 -5400 -5406 41 5421 5472 -5466 -5469 41 + 5478 5505 -5499 -5502 41 5511 5535 -5529 -5532 41 + 5541 5598 -5592 -5595 41 5565 5580 -5571 -5574 40 + 5559 5586 -5556 -5547 40 5604 5631 -5625 -5628 41 + 5637 5691 -5685 -5688 41 5655 5679 -5652 -5643 40 + 5697 5721 -5715 -5718 41 5727 5751 -5745 -5748 41 + 5757 5808 -5802 -5805 41 5814 5838 -5832 -5835 41 + 5844 5904 -5898 -5901 41 5910 5949 -5943 -5946 41 + 5925 5937 -5934 -5940 41 5955 5970 -5964 -5967 41 + 5976 6042 -6036 -6039 41 6009 6018 -6015 -6027 41 + 6048 6075 -6069 -6072 41 6081 6126 -6120 -6123 41 + 6132 6177 -6171 -6174 41 6183 6243 -6237 -6240 41 + 6249 6285 -6279 -6282 41 6255 6270 -6264 -6267 41 + 6291 6357 -6351 -6354 41 6324 6333 -6330 -6342 41 + 6363 6399 -6393 -6396 41 6369 6384 -6378 -6381 41 + 6405 6429 -6423 -6426 41 6435 6462 -6456 -6459 41 + 6468 6513 -6507 -6510 41 6519 6561 -6555 -6558 41 + 6567 6591 -6585 -6588 41 6597 6648 -6642 -6645 41 + 6654 6690 -6684 -6687 41 6696 6753 -6747 -6750 41 + 6720 6735 -6726 -6729 40 6714 6741 -6711 -6702 40 + 6759 6810 -6804 -6807 41 6816 6831 -6825 -6828 41 + 6837 6861 -6855 -6858 41 6867 6906 -6900 -6903 41 + 6882 6894 -6891 -6897 41 6912 6972 -6966 -6969 41 + 6978 7002 -6996 -6999 41 7008 7053 -7047 -7050 41 + 7083 7095 -7089 -7092 41 7047 7056 -7053 -7083 42 + 7101 7128 -7122 -7125 41 7134 7191 -7185 -7188 41 + 7158 7173 -7164 -7167 40 7152 7179 -7149 -7140 40 + 7197 7233 -7227 -7230 41 7203 7218 -7212 -7215 41 + 7239 7275 -7269 -7272 41 7281 7326 -7320 -7323 41 + 7332 7347 -7341 -7344 41 7353 7395 -7389 -7392 41 + 7401 7425 -7419 -7422 41 7431 7491 -7485 -7488 41 + 7497 7521 -7515 -7518 41 7527 7554 -7548 -7551 41 + 7560 7611 -7605 -7608 41 7617 7656 -7650 -7653 41 + 7632 7644 -7641 -7647 41 7662 7686 -7680 -7683 41 + 7692 7728 -7722 -7725 41 7734 7776 -7770 -7773 41 + 7782 7848 -7842 -7845 41 7815 7824 -7821 -7833 41 + 7854 7911 -7905 -7908 41 7878 7893 -7884 -7887 40 + 7872 7899 -7869 -7860 40 7917 7953 -7947 -7950 41 + 7959 7983 -7977 -7980 41 7989 8040 -8034 -8037 41 + 8046 8070 -8064 -8067 41 8076 8127 -8121 -8124 41 + 8133 8148 -8142 -8145 41 8154 8193 -8187 -8190 41 + 8169 8181 -8178 -8184 41 8199 8229 -8223 -8226 41 + 8205 8217 -8214 -8220 41 8235 8250 -8244 -8247 41 + 8256 8307 -8301 -8304 41 8313 8373 -8367 -8370 41 + 8379 8421 -8415 -8418 41 8427 8463 -8457 -8460 41 + 8433 8448 -8442 -8445 41 8469 8493 -8487 -8490 41 + 8499 8541 -8535 -8538 41 8547 8574 -8568 -8571 41 + 8580 8604 -8598 -8601 41 8610 8625 -8619 -8622 41 + 8655 8667 -8661 -8664 41 8619 8628 -8625 -8655 42 + 8673 8724 -8718 -8721 41 8730 8790 -8784 -8787 41 + 8796 8832 -8826 -8829 41 8838 8889 -8883 -8886 41 + 8895 8919 -8913 -8916 41 8925 8949 -8943 -8946 41 + 8955 8982 -8976 -8979 41 8988 9003 -8997 -9000 41 + 9009 9060 -9054 -9057 41 9066 9093 -9087 -9090 41 + 9099 9135 -9129 -9132 41 9105 9120 -9114 -9117 41 + 9141 9195 -9189 -9192 41 9159 9183 -9156 -9147 40 + 9201 9261 -9255 -9258 41 9267 9327 -9321 -9324 41 + 9333 9378 -9372 -9375 41 9384 9435 -9429 -9432 41 + 9441 9471 -9465 -9468 41 9447 9459 -9456 -9462 41 + 9477 9534 -9528 -9531 41 9501 9516 -9507 -9510 40 + 9495 9522 -9492 -9483 40 9540 9576 -9570 -9573 41 + 9546 9561 -9555 -9558 41 9582 9606 -9600 -9603 41 + 9612 9657 -9651 -9654 41 9663 9705 -9699 -9702 41 + 9711 9738 -9732 -9735 41 9768 9780 -9774 -9777 41 + 9732 9741 -9738 -9768 42 9786 9837 -9831 -9834 41 + 9843 9903 -9897 -9900 41 9909 9969 -9963 -9966 41 + 9975 10011 -10005 -10008 41 9981 9996 -9990 -9993 41 + 10017 10059 -10053 -10056 41 10065 10095 -10089 -10092 41 + 10071 10083 -10080 -10086 41 10101 10152 -10146 -10149 41 + 10158 10203 -10197 -10200 41 10209 10248 -10242 -10245 41 + 10224 10236 -10233 -10239 41 10254 10296 -10290 -10293 41 + 10302 10317 -10311 -10314 41 10323 10359 -10353 -10356 41 + 10329 10344 -10338 -10341 41 10365 10401 -10395 -10398 41 + 10407 10449 -10443 -10446 41 10455 10479 -10473 -10476 41 + 10485 10539 -10533 -10536 41 10503 10527 -10500 -10491 40 + 10545 10596 -10590 -10593 41 10602 10629 -10623 -10626 41 + 10635 10662 -10656 -10659 41 10668 10698 -10692 -10695 41 + 10674 10686 -10683 -10689 41 10704 10749 -10743 -10746 41 + 10755 10779 -10773 -10776 41 10785 10821 -10815 -10818 41 + 10827 10842 -10836 -10839 41 10848 10899 -10893 -10896 41 + 10905 10941 -10935 -10938 41 10947 10962 -10956 -10959 41 + 10968 11007 -11001 -11004 41 10983 10995 -10992 -10998 41 + 11013 11055 -11049 -11052 41 11061 11103 -11097 -11100 41 + 11109 11154 -11148 -11151 41 11115 11142 -11124 -11127 40 + 11160 11202 -11196 -11199 41 11208 11238 -11232 -11235 41 + 11214 11226 -11223 -11229 41 11244 11268 -11262 -11265 41 + 11274 11289 -11283 -11286 41 11295 11352 -11346 -11349 41 + 11319 11334 -11325 -11328 40 11313 11340 -11310 -11301 40 + 11358 11403 -11397 -11400 41 11364 11391 -11373 -11376 40 + 11409 11436 -11430 -11433 41 11442 11484 -11478 -11481 41 + 11490 11517 -11511 -11514 41 11523 11568 -11562 -11565 41 + 11574 11589 -11583 -11586 41 11595 11631 -11625 -11628 41 + 11601 11616 -11610 -11613 41 11637 11679 -11673 -11676 41 + 11685 11736 -11730 -11733 41 11742 11793 -11787 -11790 41 + 11799 11838 -11832 -11835 41 11814 11826 -11823 -11829 41 + 11844 11889 -11883 -11886 41 11850 11877 -11859 -11862 40 + 11895 11940 -11934 -11937 41 11901 11928 -11910 -11913 40 + 11946 11991 -11985 -11988 41 11952 11979 -11961 -11964 40 + 11997 12042 -12036 -12039 41 12003 12030 -12012 -12015 40 + 12048 12093 -12087 -12090 41 12054 12081 -12063 -12066 40 + 12099 12141 -12138 -12144 41 12105 12132 -12114 -12117 40 + 12192 12198 -12195 -12201 40 12210 12186 -12183 -12180 42 + 12387 12393 -12390 -12402 40 12381 12387 -12384 -12399 40 + 12384 12396 -12381 -12375 40 12363 12369 -12366 -12405 40 + 12357 12363 -12360 -12378 40 12360 12372 -12357 -12375 40 +%FLAG EXCLUDED_ATOMS_LIST +%FORMAT(10I8) + 2 3 4 5 6 7 8 9 10 18 + 19 20 3 4 5 6 7 18 4 5 + 6 7 18 5 6 7 18 6 7 8 + 9 10 11 12 13 18 19 20 21 22 + 7 8 9 10 18 19 20 8 9 10 + 11 12 13 14 18 19 20 9 10 11 + 12 13 18 10 11 12 13 18 11 12 + 13 14 15 16 17 18 12 13 14 13 + 14 14 15 16 17 15 16 17 16 17 + 17 0 19 20 21 22 23 24 25 20 + 21 22 21 22 23 24 25 26 27 22 + 23 24 25 23 24 25 26 27 28 29 + 24 25 26 27 25 26 27 26 27 28 + 29 30 31 45 27 28 29 28 29 30 + 31 32 33 34 45 46 47 29 30 31 + 45 30 31 32 33 34 35 43 45 46 + 47 48 49 31 32 33 34 45 46 47 + 32 33 34 35 36 37 41 43 44 45 + 46 47 33 34 35 43 45 34 35 43 + 45 35 36 37 38 39 41 42 43 44 + 45 36 37 38 39 40 41 43 44 37 + 38 39 43 38 39 40 41 42 43 39 + 40 41 40 41 42 43 44 41 42 43 + 42 43 44 43 44 44 0 46 47 48 + 49 50 51 64 47 48 49 48 49 50 + 51 52 53 54 64 65 66 49 50 51 + 64 50 51 52 53 54 55 56 60 64 + 65 66 67 68 51 52 53 54 64 65 + 66 52 53 54 55 56 57 58 59 60 + 61 62 63 64 65 66 53 54 55 56 + 60 64 54 55 56 60 64 55 56 57 + 58 59 60 61 62 63 64 56 57 58 + 59 60 61 62 63 57 58 59 60 61 + 62 63 58 59 60 59 60 60 61 62 + 63 62 63 63 0 65 66 67 68 69 + 70 74 66 67 68 67 68 69 70 71 + 72 73 74 75 76 68 69 70 74 69 + 70 71 72 73 74 75 76 77 78 70 + 71 72 73 74 75 76 71 72 73 74 + 75 76 72 73 74 73 74 74 75 76 + 77 78 79 80 81 76 77 78 77 78 + 79 80 81 82 83 78 79 80 81 79 + 80 81 82 83 84 85 80 81 82 83 + 81 82 83 82 83 84 85 86 87 103 + 83 84 85 84 85 86 87 88 89 90 + 103 104 105 85 86 87 103 86 87 88 + 89 90 91 92 93 103 104 105 106 107 + 87 88 89 90 103 104 105 88 89 90 + 91 92 93 94 95 96 103 104 105 89 + 90 91 92 93 103 90 91 92 93 103 + 91 92 93 94 95 96 97 98 99 103 + 92 93 94 95 96 93 94 95 96 94 + 95 96 97 98 99 100 101 102 95 96 + 97 98 99 96 97 98 99 97 98 99 + 100 101 102 98 99 100 101 102 99 100 + 101 102 100 101 102 101 102 102 0 104 + 105 106 107 108 109 125 105 106 107 106 + 107 108 109 110 111 112 125 126 127 107 + 108 109 125 108 109 110 111 112 113 114 + 115 125 126 127 128 129 109 110 111 112 + 125 126 127 110 111 112 113 114 115 116 + 117 118 125 126 127 111 112 113 114 115 + 125 112 113 114 115 125 113 114 115 116 + 117 118 119 120 121 125 114 115 116 117 + 118 115 116 117 118 116 117 118 119 120 + 121 122 123 124 117 118 119 120 121 118 + 119 120 121 119 120 121 122 123 124 120 + 121 122 123 124 121 122 123 124 122 123 + 124 123 124 124 0 126 127 128 129 130 + 131 144 127 128 129 128 129 130 131 132 + 133 137 144 145 146 129 130 131 144 130 + 131 132 133 134 135 136 137 138 139 140 + 144 145 146 147 148 131 132 133 137 144 + 145 146 132 133 134 135 136 137 138 139 + 140 141 142 143 144 145 146 133 134 135 + 136 137 138 139 140 144 134 135 136 137 + 138 139 140 144 135 136 137 136 137 137 + 138 139 140 141 142 143 144 139 140 141 + 142 143 140 141 142 143 141 142 143 142 + 143 143 0 145 146 147 148 149 150 163 + 146 147 148 147 148 149 150 151 152 153 + 163 164 165 148 149 150 163 149 150 151 + 152 153 154 155 159 163 164 165 166 167 + 150 151 152 153 163 164 165 151 152 153 + 154 155 156 157 158 159 160 161 162 163 + 164 165 152 153 154 155 159 163 153 154 + 155 159 163 154 155 156 157 158 159 160 + 161 162 163 155 156 157 158 159 160 161 + 162 156 157 158 159 160 161 162 157 158 + 159 158 159 159 160 161 162 161 162 162 + 0 164 165 166 167 168 169 182 165 166 + 167 166 167 168 169 170 171 175 182 183 + 184 167 168 169 182 168 169 170 171 172 + 173 174 175 176 177 178 182 183 184 185 + 186 169 170 171 175 182 183 184 170 171 + 172 173 174 175 176 177 178 179 180 181 + 182 183 184 171 172 173 174 175 176 177 + 178 182 172 173 174 175 176 177 178 182 + 173 174 175 174 175 175 176 177 178 179 + 180 181 182 177 178 179 180 181 178 179 + 180 181 179 180 181 180 181 181 0 183 + 184 185 186 187 188 196 184 185 186 185 + 186 187 188 189 190 194 196 197 198 186 + 187 188 196 187 188 189 190 191 192 193 + 194 195 196 197 198 199 200 188 189 190 + 194 196 197 198 189 190 191 192 193 194 + 195 196 197 198 190 191 192 193 194 195 + 196 191 192 193 194 195 196 192 193 194 + 193 194 194 195 196 0 197 198 199 200 + 201 202 203 198 199 200 199 200 201 202 + 203 204 205 200 201 202 203 201 202 203 + 204 205 206 207 202 203 204 205 203 204 + 205 204 205 206 207 208 209 222 205 206 + 207 206 207 208 209 210 211 212 222 223 + 224 207 208 209 222 208 209 210 211 212 + 213 214 218 222 223 224 225 226 209 210 + 211 212 222 223 224 210 211 212 213 214 + 215 216 217 218 219 220 221 222 223 224 + 211 212 213 214 218 222 212 213 214 218 + 222 213 214 215 216 217 218 219 220 221 + 222 214 215 216 217 218 219 220 221 215 + 216 217 218 219 220 221 216 217 218 217 + 218 218 219 220 221 220 221 221 0 223 + 224 225 226 227 228 241 224 225 226 225 + 226 227 228 229 230 231 241 242 243 226 + 227 228 241 227 228 229 230 231 232 233 + 237 241 242 243 244 245 228 229 230 231 + 241 242 243 229 230 231 232 233 234 235 + 236 237 238 239 240 241 242 243 230 231 + 232 233 237 241 231 232 233 237 241 232 + 233 234 235 236 237 238 239 240 241 233 + 234 235 236 237 238 239 240 234 235 236 + 237 238 239 240 235 236 237 236 237 237 + 238 239 240 239 240 240 0 242 243 244 + 245 246 247 252 243 244 245 244 245 246 + 247 248 249 250 252 253 254 245 246 247 + 252 246 247 248 249 250 251 252 253 254 + 255 256 247 248 249 250 252 253 254 248 + 249 250 251 252 253 254 249 250 251 252 + 250 251 252 251 252 0 253 254 255 256 + 257 258 266 254 255 256 255 256 257 258 + 259 260 261 266 267 268 256 257 258 266 + 257 258 259 260 261 262 263 266 267 268 + 269 270 258 259 260 261 266 267 268 259 + 260 261 262 263 264 265 266 267 268 260 + 261 262 263 266 261 262 263 266 262 263 + 264 265 266 263 264 265 264 265 265 0 + 267 268 269 270 271 272 288 268 269 270 + 269 270 271 272 273 274 275 288 289 290 + 270 271 272 288 271 272 273 274 275 276 + 277 278 288 289 290 291 292 272 273 274 + 275 288 289 290 273 274 275 276 277 278 + 279 280 281 288 289 290 274 275 276 277 + 278 288 275 276 277 278 288 276 277 278 + 279 280 281 282 283 284 288 277 278 279 + 280 281 278 279 280 281 279 280 281 282 + 283 284 285 286 287 280 281 282 283 284 + 281 282 283 284 282 283 284 285 286 287 + 283 284 285 286 287 284 285 286 287 285 + 286 287 286 287 287 0 289 290 291 292 + 293 294 299 290 291 292 291 292 293 294 + 295 296 297 299 300 301 292 293 294 299 + 293 294 295 296 297 298 299 300 301 302 + 303 294 295 296 297 299 300 301 295 296 + 297 298 299 300 301 296 297 298 299 297 + 298 299 298 299 0 300 301 302 303 304 + 305 318 301 302 303 302 303 304 305 306 + 307 311 318 319 320 303 304 305 318 304 + 305 306 307 308 309 310 311 312 313 314 + 318 319 320 321 322 305 306 307 311 318 + 319 320 306 307 308 309 310 311 312 313 + 314 315 316 317 318 319 320 307 308 309 + 310 311 312 313 314 318 308 309 310 311 + 312 313 314 318 309 310 311 310 311 311 + 312 313 314 315 316 317 318 313 314 315 + 316 317 314 315 316 317 315 316 317 316 + 317 317 0 319 320 321 322 323 324 328 + 320 321 322 321 322 323 324 325 326 327 + 328 329 330 322 323 324 328 323 324 325 + 326 327 328 329 330 331 332 324 325 326 + 327 328 329 330 325 326 327 328 329 330 + 326 327 328 327 328 328 329 330 331 332 + 333 334 349 330 331 332 331 332 333 334 + 335 336 337 349 350 351 332 333 334 349 + 333 334 335 336 337 338 347 349 350 351 + 352 353 334 335 336 337 349 350 351 335 + 336 337 338 339 340 345 347 348 349 350 + 351 336 337 338 347 349 337 338 347 349 + 338 339 340 341 342 345 346 347 348 349 + 339 340 341 342 343 345 347 348 340 341 + 342 347 341 342 343 344 345 346 347 342 + 343 345 343 344 345 346 347 348 344 345 + 346 347 345 346 347 348 347 348 348 0 + 350 351 352 353 354 355 356 351 352 353 + 352 353 354 355 356 357 358 353 354 355 + 356 354 355 356 357 358 359 360 355 356 + 357 358 356 357 358 357 358 359 360 361 + 362 375 358 359 360 359 360 361 362 363 + 364 368 375 376 377 360 361 362 375 361 + 362 363 364 365 366 367 368 369 370 371 + 375 376 377 378 379 362 363 364 368 375 + 376 377 363 364 365 366 367 368 369 370 + 371 372 373 374 375 376 377 364 365 366 + 367 368 369 370 371 375 365 366 367 368 + 369 370 371 375 366 367 368 367 368 368 + 369 370 371 372 373 374 375 370 371 372 + 373 374 371 372 373 374 372 373 374 373 + 374 374 0 376 377 378 379 380 381 385 + 377 378 379 378 379 380 381 382 383 384 + 385 386 387 379 380 381 385 380 381 382 + 383 384 385 386 387 388 389 381 382 383 + 384 385 386 387 382 383 384 385 386 387 + 383 384 385 384 385 385 386 387 388 389 + 390 391 407 387 388 389 388 389 390 391 + 392 393 394 407 408 409 389 390 391 407 + 390 391 392 393 394 395 396 397 407 408 + 409 410 411 391 392 393 394 407 408 409 + 392 393 394 395 396 397 398 399 400 407 + 408 409 393 394 395 396 397 407 394 395 + 396 397 407 395 396 397 398 399 400 401 + 402 403 407 396 397 398 399 400 397 398 + 399 400 398 399 400 401 402 403 404 405 + 406 399 400 401 402 403 400 401 402 403 + 401 402 403 404 405 406 402 403 404 405 + 406 403 404 405 406 404 405 406 405 406 + 406 0 408 409 410 411 412 413 417 409 + 410 411 410 411 412 413 414 415 416 417 + 418 419 411 412 413 417 412 413 414 415 + 416 417 418 419 420 421 413 414 415 416 + 417 418 419 414 415 416 417 418 419 415 + 416 417 416 417 417 418 419 420 421 422 + 423 434 419 420 421 420 421 422 423 424 + 425 426 434 435 436 421 422 423 434 422 + 423 424 425 426 427 428 429 434 435 436 + 437 438 423 424 425 426 434 435 436 424 + 425 426 427 428 429 430 434 435 436 425 + 426 427 428 429 434 426 427 428 429 434 + 427 428 429 430 431 432 433 434 428 429 + 430 429 430 430 431 432 433 431 432 433 + 432 433 433 0 435 436 437 438 439 440 + 451 436 437 438 437 438 439 440 441 442 + 443 451 452 453 438 439 440 451 439 440 + 441 442 443 444 449 451 452 453 454 455 + 440 441 442 443 451 452 453 441 442 443 + 444 445 447 449 450 451 452 453 442 443 + 444 449 451 443 444 449 451 444 445 446 + 447 448 449 450 451 445 446 447 448 449 + 450 446 447 448 449 450 447 448 449 448 + 449 450 449 450 450 0 452 453 454 455 + 456 457 475 453 454 455 454 455 456 457 + 458 459 460 475 476 477 455 456 457 475 + 456 457 458 459 460 461 462 463 475 476 + 477 478 479 457 458 459 460 475 476 477 + 458 459 460 461 462 463 464 465 466 475 + 476 477 459 460 461 462 463 475 460 461 + 462 463 475 461 462 463 464 465 466 467 + 468 475 462 463 464 465 466 463 464 465 + 466 464 465 466 467 468 469 472 465 466 + 467 468 466 467 468 467 468 469 470 471 + 472 473 474 468 469 472 469 470 471 472 + 473 474 470 471 472 473 474 471 472 472 + 473 474 474 0 476 477 478 479 480 481 + 490 477 478 479 478 479 480 481 482 483 + 484 490 491 492 479 480 481 490 480 481 + 482 483 484 485 486 487 490 491 492 493 + 494 481 482 483 484 490 491 492 482 483 + 484 485 486 487 488 489 490 491 492 483 + 484 485 486 487 490 484 485 486 487 490 + 485 486 487 488 489 490 486 487 488 489 + 487 488 489 488 489 489 0 491 492 493 + 494 495 496 497 492 493 494 493 494 495 + 496 497 498 499 494 495 496 497 495 496 + 497 498 499 500 501 496 497 498 499 497 + 498 499 498 499 500 501 502 503 507 499 + 500 501 500 501 502 503 504 505 506 507 + 508 509 501 502 503 507 502 503 504 505 + 506 507 508 509 510 511 503 504 505 506 + 507 508 509 504 505 506 507 508 509 505 + 506 507 506 507 507 508 509 510 511 512 + 513 522 509 510 511 510 511 512 513 514 + 515 516 522 523 524 511 512 513 522 512 + 513 514 515 516 517 518 519 522 523 524 + 525 526 513 514 515 516 522 523 524 514 + 515 516 517 518 519 520 521 522 523 524 + 515 516 517 518 519 522 516 517 518 519 + 522 517 518 519 520 521 522 518 519 520 + 521 519 520 521 520 521 521 0 523 524 + 525 526 527 528 541 524 525 526 525 526 + 527 528 529 530 531 541 542 543 526 527 + 528 541 527 528 529 530 531 532 533 537 + 541 542 543 544 545 528 529 530 531 541 + 542 543 529 530 531 532 533 534 535 536 + 537 538 539 540 541 542 543 530 531 532 + 533 537 541 531 532 533 537 541 532 533 + 534 535 536 537 538 539 540 541 533 534 + 535 536 537 538 539 540 534 535 536 537 + 538 539 540 535 536 537 536 537 537 538 + 539 540 539 540 540 0 542 543 544 545 + 546 547 551 543 544 545 544 545 546 547 + 548 549 550 551 552 553 545 546 547 551 + 546 547 548 549 550 551 552 553 554 555 + 547 548 549 550 551 552 553 548 549 550 + 551 552 553 549 550 551 550 551 551 552 + 553 554 555 556 557 571 553 554 555 554 + 555 556 557 558 559 560 571 572 573 555 + 556 557 571 556 557 558 559 560 561 569 + 571 572 573 574 575 557 558 559 560 571 + 572 573 558 559 560 561 562 563 567 569 + 570 571 572 573 559 560 561 569 571 560 + 561 569 571 561 562 563 564 565 567 568 + 569 570 571 562 563 564 565 566 567 569 + 570 563 564 565 569 564 565 566 567 568 + 569 565 566 567 566 567 568 569 570 567 + 568 569 568 569 570 569 570 570 0 572 + 573 574 575 576 577 585 573 574 575 574 + 575 576 577 578 579 583 585 586 587 575 + 576 577 585 576 577 578 579 580 581 582 + 583 584 585 586 587 588 589 577 578 579 + 583 585 586 587 578 579 580 581 582 583 + 584 585 586 587 579 580 581 582 583 584 + 585 580 581 582 583 584 585 581 582 583 + 582 583 583 584 585 0 586 587 588 589 + 590 591 606 587 588 589 588 589 590 591 + 592 593 594 606 607 608 589 590 591 606 + 590 591 592 593 594 595 604 606 607 608 + 609 610 591 592 593 594 606 607 608 592 + 593 594 595 596 597 602 604 605 606 607 + 608 593 594 595 604 606 594 595 604 606 + 595 596 597 598 599 602 603 604 605 606 + 596 597 598 599 600 602 604 605 597 598 + 599 604 598 599 600 601 602 603 604 599 + 600 602 600 601 602 603 604 605 601 602 + 603 604 602 603 604 605 604 605 605 0 + 607 608 609 610 611 612 622 608 609 610 + 609 610 611 612 613 614 618 622 623 624 + 610 611 612 622 611 612 613 614 615 616 + 617 618 619 620 621 622 623 624 625 626 + 612 613 614 618 622 623 624 613 614 615 + 616 617 618 619 620 621 622 623 624 614 + 615 616 617 618 619 620 621 622 615 616 + 617 618 619 620 621 622 616 617 618 617 + 618 618 619 620 621 622 620 621 621 0 + 623 624 625 626 627 628 629 624 625 626 + 625 626 627 628 629 630 631 626 627 628 + 629 627 628 629 630 631 632 633 628 629 + 630 631 629 630 631 630 631 632 633 634 + 635 646 631 632 633 632 633 634 635 636 + 637 638 646 647 648 633 634 635 646 634 + 635 636 637 638 639 640 641 646 647 648 + 649 650 635 636 637 638 646 647 648 636 + 637 638 639 640 641 642 643 646 647 648 + 637 638 639 640 641 646 638 639 640 641 + 646 639 640 641 642 643 644 645 646 640 + 641 642 643 641 642 643 642 643 644 645 + 643 644 645 644 645 645 0 647 648 649 + 650 651 652 666 648 649 650 649 650 651 + 652 653 654 655 666 667 668 650 651 652 + 666 651 652 653 654 655 656 664 666 667 + 668 669 670 652 653 654 655 666 667 668 + 653 654 655 656 657 658 662 664 665 666 + 667 668 654 655 656 664 666 655 656 664 + 666 656 657 658 659 660 662 663 664 665 + 666 657 658 659 660 661 662 664 665 658 + 659 660 664 659 660 661 662 663 664 660 + 661 662 661 662 663 664 665 662 663 664 + 663 664 665 664 665 665 0 667 668 669 + 670 671 672 688 668 669 670 669 670 671 + 672 673 674 675 688 689 690 670 671 672 + 688 671 672 673 674 675 676 677 678 688 + 689 690 691 692 672 673 674 675 688 689 + 690 673 674 675 676 677 678 679 680 681 + 688 689 690 674 675 676 677 678 688 675 + 676 677 678 688 676 677 678 679 680 681 + 682 683 684 688 677 678 679 680 681 678 + 679 680 681 679 680 681 682 683 684 685 + 686 687 680 681 682 683 684 681 682 683 + 684 682 683 684 685 686 687 683 684 685 + 686 687 684 685 686 687 685 686 687 686 + 687 687 0 689 690 691 692 693 694 700 + 690 691 692 691 692 693 694 695 696 697 + 700 701 702 692 693 694 700 693 694 695 + 696 697 698 699 700 701 702 703 704 694 + 695 696 697 700 701 702 695 696 697 698 + 699 700 701 702 696 697 698 699 700 697 + 698 699 700 698 699 700 699 0 701 702 + 703 704 705 706 724 702 703 704 703 704 + 705 706 707 708 709 724 725 726 704 705 + 706 724 705 706 707 708 709 710 711 712 + 724 725 726 727 728 706 707 708 709 724 + 725 726 707 708 709 710 711 712 713 714 + 715 724 725 726 708 709 710 711 712 724 + 709 710 711 712 724 710 711 712 713 714 + 715 716 717 724 711 712 713 714 715 712 + 713 714 715 713 714 715 716 717 718 721 + 714 715 716 717 715 716 717 716 717 718 + 719 720 721 722 723 717 718 721 718 719 + 720 721 722 723 719 720 721 722 723 720 + 721 721 722 723 723 0 725 726 727 728 + 729 730 740 726 727 728 727 728 729 730 + 731 732 736 740 741 742 728 729 730 740 + 729 730 731 732 733 734 735 736 737 738 + 739 740 741 742 743 744 730 731 732 736 + 740 741 742 731 732 733 734 735 736 737 + 738 739 740 741 742 732 733 734 735 736 + 737 738 739 740 733 734 735 736 737 738 + 739 740 734 735 736 735 736 736 737 738 + 739 740 738 739 739 0 741 742 743 744 + 745 746 755 742 743 744 743 744 745 746 + 747 748 749 755 756 757 744 745 746 755 + 745 746 747 748 749 750 751 752 755 756 + 757 758 759 746 747 748 749 755 756 757 + 747 748 749 750 751 752 753 754 755 756 + 757 748 749 750 751 752 755 749 750 751 + 752 755 750 751 752 753 754 755 751 752 + 753 754 752 753 754 753 754 754 0 756 + 757 758 759 760 761 777 757 758 759 758 + 759 760 761 762 763 764 777 778 779 759 + 760 761 777 760 761 762 763 764 765 766 + 767 777 778 779 780 781 761 762 763 764 + 777 778 779 762 763 764 765 766 767 768 + 769 770 777 778 779 763 764 765 766 767 + 777 764 765 766 767 777 765 766 767 768 + 769 770 771 772 773 777 766 767 768 769 + 770 767 768 769 770 768 769 770 771 772 + 773 774 775 776 769 770 771 772 773 770 + 771 772 773 771 772 773 774 775 776 772 + 773 774 775 776 773 774 775 776 774 775 + 776 775 776 776 0 778 779 780 781 782 + 783 796 779 780 781 780 781 782 783 784 + 785 786 796 797 798 781 782 783 796 782 + 783 784 785 786 787 788 792 796 797 798 + 799 800 783 784 785 786 796 797 798 784 + 785 786 787 788 789 790 791 792 793 794 + 795 796 797 798 785 786 787 788 792 796 + 786 787 788 792 796 787 788 789 790 791 + 792 793 794 795 796 788 789 790 791 792 + 793 794 795 789 790 791 792 793 794 795 + 790 791 792 791 792 792 793 794 795 794 + 795 795 0 797 798 799 800 801 802 807 + 798 799 800 799 800 801 802 803 804 805 + 807 808 809 800 801 802 807 801 802 803 + 804 805 806 807 808 809 810 811 802 803 + 804 805 807 808 809 803 804 805 806 807 + 808 809 804 805 806 807 805 806 807 806 + 807 0 808 809 810 811 812 813 817 809 + 810 811 810 811 812 813 814 815 816 817 + 818 819 811 812 813 817 812 813 814 815 + 816 817 818 819 820 821 813 814 815 816 + 817 818 819 814 815 816 817 818 819 815 + 816 817 816 817 817 818 819 820 821 822 + 823 832 819 820 821 820 821 822 823 824 + 825 826 832 833 834 821 822 823 832 822 + 823 824 825 826 827 828 829 832 833 834 + 835 836 823 824 825 826 832 833 834 824 + 825 826 827 828 829 830 831 832 833 834 + 825 826 827 828 829 832 826 827 828 829 + 832 827 828 829 830 831 832 828 829 830 + 831 829 830 831 830 831 831 0 833 834 + 835 836 837 838 852 834 835 836 835 836 + 837 838 839 840 841 852 853 854 836 837 + 838 852 837 838 839 840 841 842 850 852 + 853 854 855 856 838 839 840 841 852 853 + 854 839 840 841 842 843 844 848 850 851 + 852 853 854 840 841 842 850 852 841 842 + 850 852 842 843 844 845 846 848 849 850 + 851 852 843 844 845 846 847 848 850 851 + 844 845 846 850 845 846 847 848 849 850 + 846 847 848 847 848 849 850 851 848 849 + 850 849 850 851 850 851 851 0 853 854 + 855 856 857 858 866 854 855 856 855 856 + 857 858 859 860 861 866 867 868 856 857 + 858 866 857 858 859 860 861 862 863 866 + 867 868 869 878 858 859 860 861 866 867 + 868 859 860 861 862 863 864 865 866 867 + 868 860 861 862 863 866 861 862 863 866 + 862 863 864 865 866 863 864 865 864 865 + 865 0 867 868 869 870 871 872 875 878 + 879 880 868 869 878 869 870 871 872 873 + 874 875 876 877 878 879 880 881 882 870 + 871 872 873 874 875 876 877 878 879 880 + 871 872 873 874 875 878 872 873 874 875 + 878 873 874 875 876 877 878 879 880 874 + 875 876 877 878 875 876 877 878 876 877 + 878 879 880 881 882 877 878 879 880 878 + 879 880 879 880 881 882 883 884 880 881 + 882 881 882 883 884 885 886 890 882 883 + 884 883 884 885 886 887 888 889 890 891 + 892 884 885 886 890 885 886 887 888 889 + 890 891 892 893 894 886 887 888 889 890 + 891 892 887 888 889 890 891 892 888 889 + 890 889 890 890 891 892 893 894 895 896 + 900 892 893 894 893 894 895 896 897 898 + 899 900 901 902 894 895 896 900 895 896 + 897 898 899 900 901 902 903 904 896 897 + 898 899 900 901 902 897 898 899 900 901 + 902 898 899 900 899 900 900 901 902 903 + 904 905 906 916 902 903 904 903 904 905 + 906 907 908 912 916 917 918 904 905 906 + 916 905 906 907 908 909 910 911 912 913 + 914 915 916 917 918 919 920 906 907 908 + 912 916 917 918 907 908 909 910 911 912 + 913 914 915 916 917 918 908 909 910 911 + 912 913 914 915 916 909 910 911 912 913 + 914 915 916 910 911 912 911 912 912 913 + 914 915 916 914 915 915 0 917 918 919 + 920 921 922 935 918 919 920 919 920 921 + 922 923 924 925 935 936 937 920 921 922 + 935 921 922 923 924 925 926 927 931 935 + 936 937 938 947 922 923 924 925 935 936 + 937 923 924 925 926 927 928 929 930 931 + 932 933 934 935 936 937 924 925 926 927 + 931 935 925 926 927 931 935 926 927 928 + 929 930 931 932 933 934 935 927 928 929 + 930 931 932 933 934 928 929 930 931 932 + 933 934 929 930 931 930 931 931 932 933 + 934 933 934 934 0 936 937 938 939 940 + 941 944 947 948 949 937 938 947 938 939 + 940 941 942 943 944 945 946 947 948 949 + 950 951 939 940 941 942 943 944 945 946 + 947 948 949 940 941 942 943 944 947 941 + 942 943 944 947 942 943 944 945 946 947 + 948 949 943 944 945 946 947 944 945 946 + 947 945 946 947 948 949 950 951 946 947 + 948 949 947 948 949 948 949 950 951 952 + 953 949 950 951 950 951 952 953 954 955 + 960 951 952 953 952 953 954 955 956 957 + 958 960 961 962 953 954 955 960 954 955 + 956 957 958 959 960 961 962 963 964 955 + 956 957 958 960 961 962 956 957 958 959 + 960 961 962 957 958 959 960 958 959 960 + 959 960 0 961 962 963 964 965 966 972 + 962 963 964 963 964 965 966 967 968 969 + 972 973 974 964 965 966 972 965 966 967 + 968 969 970 971 972 973 974 975 976 966 + 967 968 969 972 973 974 967 968 969 970 + 971 972 973 974 968 969 970 971 972 969 + 970 971 972 970 971 972 971 0 973 974 + 975 976 977 978 988 974 975 976 975 976 + 977 978 979 980 984 988 989 990 976 977 + 978 988 977 978 979 980 981 982 983 984 + 985 986 987 988 989 990 991 992 978 979 + 980 984 988 989 990 979 980 981 982 983 + 984 985 986 987 988 989 990 980 981 982 + 983 984 985 986 987 988 981 982 983 984 + 985 986 987 988 982 983 984 983 984 984 + 985 986 987 988 986 987 987 0 989 990 + 991 992 993 994 1007 990 991 992 991 992 + 993 994 995 996 1000 1007 1008 1009 992 993 + 994 1007 993 994 995 996 997 998 999 1000 + 1001 1002 1003 1007 1008 1009 1010 1011 994 995 + 996 1000 1007 1008 1009 995 996 997 998 999 + 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 996 997 998 999 1000 1001 1002 1003 1007 997 + 998 999 1000 1001 1002 1003 1007 998 999 1000 + 999 1000 1000 1001 1002 1003 1004 1005 1006 1007 + 1002 1003 1004 1005 1006 1003 1004 1005 1006 1004 + 1005 1006 1005 1006 1006 0 1008 1009 1010 1011 + 1012 1013 1018 1009 1010 1011 1010 1011 1012 1013 + 1014 1015 1016 1018 1019 1020 1011 1012 1013 1018 + 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022 1013 1014 1015 1016 1018 1019 1020 1014 1015 + 1016 1017 1018 1019 1020 1015 1016 1017 1018 1016 + 1017 1018 1017 1018 0 1019 1020 1021 1022 1023 + 1024 1030 1020 1021 1022 1021 1022 1023 1024 1025 + 1026 1027 1030 1031 1032 1022 1023 1024 1030 1023 + 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034 1024 1025 1026 1027 1030 1031 1032 1025 1026 + 1027 1028 1029 1030 1031 1032 1026 1027 1028 1029 + 1030 1027 1028 1029 1030 1028 1029 1030 1029 0 + 1031 1032 1033 1034 1035 1036 1047 1032 1033 1034 + 1033 1034 1035 1036 1037 1038 1039 1047 1048 1049 + 1034 1035 1036 1047 1035 1036 1037 1038 1039 1040 + 1041 1042 1047 1048 1049 1050 1051 1036 1037 1038 + 1039 1047 1048 1049 1037 1038 1039 1040 1041 1042 + 1043 1044 1047 1048 1049 1038 1039 1040 1041 1042 + 1047 1039 1040 1041 1042 1047 1040 1041 1042 1043 + 1044 1045 1046 1047 1041 1042 1043 1044 1042 1043 + 1044 1043 1044 1045 1046 1044 1045 1046 1045 1046 + 1046 0 1048 1049 1050 1051 1052 1053 1062 1049 + 1050 1051 1050 1051 1052 1053 1054 1055 1056 1062 + 1063 1064 1051 1052 1053 1062 1052 1053 1054 1055 + 1056 1057 1058 1059 1062 1063 1064 1065 1066 1053 + 1054 1055 1056 1062 1063 1064 1054 1055 1056 1057 + 1058 1059 1060 1061 1062 1063 1064 1055 1056 1057 + 1058 1059 1062 1056 1057 1058 1059 1062 1057 1058 + 1059 1060 1061 1062 1058 1059 1060 1061 1059 1060 + 1061 1060 1061 1061 0 1063 1064 1065 1066 1067 + 1068 1081 1064 1065 1066 1065 1066 1067 1068 1069 + 1070 1074 1081 1082 1083 1066 1067 1068 1081 1067 + 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1081 1082 1083 1084 1085 1068 1069 1070 1074 1081 + 1082 1083 1069 1070 1071 1072 1073 1074 1075 1076 + 1077 1078 1079 1080 1081 1082 1083 1070 1071 1072 + 1073 1074 1075 1076 1077 1081 1071 1072 1073 1074 + 1075 1076 1077 1081 1072 1073 1074 1073 1074 1074 + 1075 1076 1077 1078 1079 1080 1081 1076 1077 1078 + 1079 1080 1077 1078 1079 1080 1078 1079 1080 1079 + 1080 1080 0 1082 1083 1084 1085 1086 1087 1103 + 1083 1084 1085 1084 1085 1086 1087 1088 1089 1090 + 1103 1104 1105 1085 1086 1087 1103 1086 1087 1088 + 1089 1090 1091 1092 1093 1103 1104 1105 1106 1107 + 1087 1088 1089 1090 1103 1104 1105 1088 1089 1090 + 1091 1092 1093 1094 1095 1096 1103 1104 1105 1089 + 1090 1091 1092 1093 1103 1090 1091 1092 1093 1103 + 1091 1092 1093 1094 1095 1096 1097 1098 1099 1103 + 1092 1093 1094 1095 1096 1093 1094 1095 1096 1094 + 1095 1096 1097 1098 1099 1100 1101 1102 1095 1096 + 1097 1098 1099 1096 1097 1098 1099 1097 1098 1099 + 1100 1101 1102 1098 1099 1100 1101 1102 1099 1100 + 1101 1102 1100 1101 1102 1101 1102 1102 0 1104 + 1105 1106 1107 1108 1109 1115 1105 1106 1107 1106 + 1107 1108 1109 1110 1111 1112 1115 1116 1117 1107 + 1108 1109 1115 1108 1109 1110 1111 1112 1113 1114 + 1115 1116 1117 1118 1119 1109 1110 1111 1112 1115 + 1116 1117 1110 1111 1112 1113 1114 1115 1116 1117 + 1111 1112 1113 1114 1115 1112 1113 1114 1115 1113 + 1114 1115 1114 0 1116 1117 1118 1119 1120 1121 + 1134 1117 1118 1119 1118 1119 1120 1121 1122 1123 + 1124 1134 1135 1136 1119 1120 1121 1134 1120 1121 + 1122 1123 1124 1125 1126 1130 1134 1135 1136 1137 + 1138 1121 1122 1123 1124 1134 1135 1136 1122 1123 + 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134 1135 1136 1123 1124 1125 1126 1130 1134 1124 + 1125 1126 1130 1134 1125 1126 1127 1128 1129 1130 + 1131 1132 1133 1134 1126 1127 1128 1129 1130 1131 + 1132 1133 1127 1128 1129 1130 1131 1132 1133 1128 + 1129 1130 1129 1130 1130 1131 1132 1133 1132 1133 + 1133 0 1135 1136 1137 1138 1139 1140 1154 1136 + 1137 1138 1137 1138 1139 1140 1141 1142 1143 1154 + 1155 1156 1138 1139 1140 1154 1139 1140 1141 1142 + 1143 1144 1152 1154 1155 1156 1157 1158 1140 1141 + 1142 1143 1154 1155 1156 1141 1142 1143 1144 1145 + 1146 1150 1152 1153 1154 1155 1156 1142 1143 1144 + 1152 1154 1143 1144 1152 1154 1144 1145 1146 1147 + 1148 1150 1151 1152 1153 1154 1145 1146 1147 1148 + 1149 1150 1152 1153 1146 1147 1148 1152 1147 1148 + 1149 1150 1151 1152 1148 1149 1150 1149 1150 1151 + 1152 1153 1150 1151 1152 1151 1152 1153 1152 1153 + 1153 0 1155 1156 1157 1158 1159 1160 1170 1156 + 1157 1158 1157 1158 1159 1160 1161 1162 1166 1170 + 1171 1172 1158 1159 1160 1170 1159 1160 1161 1162 + 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173 1174 1160 1161 1162 1166 1170 1171 1172 1161 + 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1163 1164 1165 1166 1167 1168 1169 1170 1164 1165 + 1166 1165 1166 1166 1167 1168 1169 1170 1168 1169 + 1169 0 1171 1172 1173 1174 1175 1176 1185 1172 + 1173 1174 1173 1174 1175 1176 1177 1178 1179 1185 + 1186 1187 1174 1175 1176 1185 1175 1176 1177 1178 + 1179 1180 1181 1182 1185 1186 1187 1188 1189 1176 + 1177 1178 1179 1185 1186 1187 1177 1178 1179 1180 + 1181 1182 1183 1184 1185 1186 1187 1178 1179 1180 + 1181 1182 1185 1179 1180 1181 1182 1185 1180 1181 + 1182 1183 1184 1185 1181 1182 1183 1184 1182 1183 + 1184 1183 1184 1184 0 1186 1187 1188 1189 1190 + 1191 1204 1187 1188 1189 1188 1189 1190 1191 1192 + 1193 1194 1204 1205 1206 1189 1190 1191 1204 1190 + 1191 1192 1193 1194 1195 1196 1200 1204 1205 1206 + 1207 1208 1191 1192 1193 1194 1204 1205 1206 1192 + 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203 1204 1205 1206 1193 1194 1195 1196 1200 1204 + 1194 1195 1196 1200 1204 1195 1196 1197 1198 1199 + 1200 1201 1202 1203 1204 1196 1197 1198 1199 1200 + 1201 1202 1203 1197 1198 1199 1200 1201 1202 1203 + 1198 1199 1200 1199 1200 1200 1201 1202 1203 1202 + 1203 1203 0 1205 1206 1207 1208 1209 1210 1211 + 1206 1207 1208 1207 1208 1209 1210 1211 1212 1213 + 1208 1209 1210 1211 1209 1210 1211 1212 1213 1214 + 1215 1210 1211 1212 1213 1211 1212 1213 1212 1213 + 1214 1215 1216 1217 1233 1213 1214 1215 1214 1215 + 1216 1217 1218 1219 1220 1233 1234 1235 1215 1216 + 1217 1233 1216 1217 1218 1219 1220 1221 1222 1223 + 1233 1234 1235 1236 1237 1217 1218 1219 1220 1233 + 1234 1235 1218 1219 1220 1221 1222 1223 1224 1225 + 1226 1233 1234 1235 1219 1220 1221 1222 1223 1233 + 1220 1221 1222 1223 1233 1221 1222 1223 1224 1225 + 1226 1227 1228 1229 1233 1222 1223 1224 1225 1226 + 1223 1224 1225 1226 1224 1225 1226 1227 1228 1229 + 1230 1231 1232 1225 1226 1227 1228 1229 1226 1227 + 1228 1229 1227 1228 1229 1230 1231 1232 1228 1229 + 1230 1231 1232 1229 1230 1231 1232 1230 1231 1232 + 1231 1232 1232 0 1234 1235 1236 1237 1238 1239 + 1249 1235 1236 1237 1236 1237 1238 1239 1240 1241 + 1245 1249 1250 1251 1237 1238 1239 1249 1238 1239 + 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250 1251 1252 1253 1239 1240 1241 1245 1249 1250 + 1251 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249 1250 1251 1241 1242 1243 1244 1245 1246 1247 + 1248 1249 1242 1243 1244 1245 1246 1247 1248 1249 + 1243 1244 1245 1244 1245 1245 1246 1247 1248 1249 + 1247 1248 1248 0 1250 1251 1252 1253 1254 1255 + 1273 1251 1252 1253 1252 1253 1254 1255 1256 1257 + 1258 1273 1274 1275 1253 1254 1255 1273 1254 1255 + 1256 1257 1258 1259 1272 1273 1274 1275 1276 1277 + 1255 1256 1257 1258 1273 1274 1275 1256 1257 1258 + 1259 1260 1261 1263 1270 1272 1273 1274 1275 1257 + 1258 1259 1272 1273 1258 1259 1272 1273 1259 1260 + 1261 1262 1263 1264 1268 1270 1271 1272 1273 1260 + 1261 1262 1263 1264 1270 1272 1261 1262 1263 1272 + 1262 1263 1264 1265 1266 1270 1272 1263 1264 1272 + 1264 1265 1266 1267 1268 1270 1271 1272 1265 1266 + 1267 1268 1269 1270 1272 1266 1267 1268 1272 1267 + 1268 1269 1270 1271 1272 1268 1269 1270 1269 1270 + 1271 1272 1270 1271 1272 1271 1272 1272 0 1274 + 1275 1276 1277 1278 1279 1285 1275 1276 1277 1276 + 1277 1278 1279 1280 1281 1282 1285 1286 1287 1277 + 1278 1279 1285 1278 1279 1280 1281 1282 1283 1284 + 1285 1286 1287 1288 1289 1279 1280 1281 1282 1285 + 1286 1287 1280 1281 1282 1283 1284 1285 1286 1287 + 1281 1282 1283 1284 1285 1282 1283 1284 1285 1283 + 1284 1285 1284 0 1286 1287 1288 1289 1290 1291 + 1292 1287 1288 1289 1288 1289 1290 1291 1292 1293 + 1294 1289 1290 1291 1292 1290 1291 1292 1293 1294 + 1295 1296 1291 1292 1293 1294 1292 1293 1294 1293 + 1294 1295 1296 1297 1298 1311 1294 1295 1296 1295 + 1296 1297 1298 1299 1300 1301 1311 1312 1313 1296 + 1297 1298 1311 1297 1298 1299 1300 1301 1302 1303 + 1307 1311 1312 1313 1314 1315 1298 1299 1300 1301 + 1311 1312 1313 1299 1300 1301 1302 1303 1304 1305 + 1306 1307 1308 1309 1310 1311 1312 1313 1300 1301 + 1302 1303 1307 1311 1301 1302 1303 1307 1311 1302 + 1303 1304 1305 1306 1307 1308 1309 1310 1311 1303 + 1304 1305 1306 1307 1308 1309 1310 1304 1305 1306 + 1307 1308 1309 1310 1305 1306 1307 1306 1307 1307 + 1308 1309 1310 1309 1310 1310 0 1312 1313 1314 + 1315 1316 1317 1323 1313 1314 1315 1314 1315 1316 + 1317 1318 1319 1320 1323 1324 1325 1315 1316 1317 + 1323 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325 1326 1327 1317 1318 1319 1320 1323 1324 1325 + 1318 1319 1320 1321 1322 1323 1324 1325 1319 1320 + 1321 1322 1323 1320 1321 1322 1323 1321 1322 1323 + 1322 0 1324 1325 1326 1327 1328 1329 1333 1325 + 1326 1327 1326 1327 1328 1329 1330 1331 1332 1333 + 1334 1335 1327 1328 1329 1333 1328 1329 1330 1331 + 1332 1333 1334 1335 1336 1337 1329 1330 1331 1332 + 1333 1334 1335 1330 1331 1332 1333 1334 1335 1331 + 1332 1333 1332 1333 1333 1334 1335 1336 1337 1338 + 1339 1352 1335 1336 1337 1336 1337 1338 1339 1340 + 1341 1345 1352 1353 1354 1337 1338 1339 1352 1338 + 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1352 1353 1354 1355 1356 1339 1340 1341 1345 1352 + 1353 1354 1340 1341 1342 1343 1344 1345 1346 1347 + 1348 1349 1350 1351 1352 1353 1354 1341 1342 1343 + 1344 1345 1346 1347 1348 1352 1342 1343 1344 1345 + 1346 1347 1348 1352 1343 1344 1345 1344 1345 1345 + 1346 1347 1348 1349 1350 1351 1352 1347 1348 1349 + 1350 1351 1348 1349 1350 1351 1349 1350 1351 1350 + 1351 1351 0 1353 1354 1355 1356 1357 1358 1368 + 1354 1355 1356 1355 1356 1357 1358 1359 1360 1364 + 1368 1369 1370 1356 1357 1358 1368 1357 1358 1359 + 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370 1371 1372 1358 1359 1360 1364 1368 1369 1370 + 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369 1370 1360 1361 1362 1363 1364 1365 1366 1367 + 1368 1361 1362 1363 1364 1365 1366 1367 1368 1362 + 1363 1364 1363 1364 1364 1365 1366 1367 1368 1366 + 1367 1367 0 1369 1370 1371 1372 1373 1374 1385 + 1370 1371 1372 1371 1372 1373 1374 1375 1376 1377 + 1385 1386 1387 1372 1373 1374 1385 1373 1374 1375 + 1376 1377 1378 1383 1385 1386 1387 1388 1389 1374 + 1375 1376 1377 1385 1386 1387 1375 1376 1377 1378 + 1379 1381 1383 1384 1385 1386 1387 1376 1377 1378 + 1383 1385 1377 1378 1383 1385 1378 1379 1380 1381 + 1382 1383 1384 1385 1379 1380 1381 1382 1383 1384 + 1380 1381 1382 1383 1384 1381 1382 1383 1382 1383 + 1384 1383 1384 1384 0 1386 1387 1388 1389 1390 + 1391 1396 1387 1388 1389 1388 1389 1390 1391 1392 + 1393 1394 1396 1397 1398 1389 1390 1391 1396 1390 + 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1391 1392 1393 1394 1396 1397 1398 1392 1393 1394 + 1395 1396 1397 1398 1393 1394 1395 1396 1394 1395 + 1396 1395 1396 0 1397 1398 1399 1400 1401 1402 + 1415 1398 1399 1400 1399 1400 1401 1402 1403 1404 + 1408 1415 1416 1417 1400 1401 1402 1415 1401 1402 + 1403 1404 1405 1406 1407 1408 1409 1410 1411 1415 + 1416 1417 1418 1419 1402 1403 1404 1408 1415 1416 + 1417 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412 1413 1414 1415 1416 1417 1404 1405 1406 1407 + 1408 1409 1410 1411 1415 1405 1406 1407 1408 1409 + 1410 1411 1415 1406 1407 1408 1407 1408 1408 1409 + 1410 1411 1412 1413 1414 1415 1410 1411 1412 1413 + 1414 1411 1412 1413 1414 1412 1413 1414 1413 1414 + 1414 0 1416 1417 1418 1419 1420 1421 1425 1417 + 1418 1419 1418 1419 1420 1421 1422 1423 1424 1425 + 1426 1427 1419 1420 1421 1425 1420 1421 1422 1423 + 1424 1425 1426 1427 1428 1429 1421 1422 1423 1424 + 1425 1426 1427 1422 1423 1424 1425 1426 1427 1423 + 1424 1425 1424 1425 1425 1426 1427 1428 1429 1430 + 1431 1445 1427 1428 1429 1428 1429 1430 1431 1432 + 1433 1434 1445 1446 1447 1429 1430 1431 1445 1430 + 1431 1432 1433 1434 1435 1443 1445 1446 1447 1448 + 1449 1431 1432 1433 1434 1445 1446 1447 1432 1433 + 1434 1435 1436 1437 1441 1443 1444 1445 1446 1447 + 1433 1434 1435 1443 1445 1434 1435 1443 1445 1435 + 1436 1437 1438 1439 1441 1442 1443 1444 1445 1436 + 1437 1438 1439 1440 1441 1443 1444 1437 1438 1439 + 1443 1438 1439 1440 1441 1442 1443 1439 1440 1441 + 1440 1441 1442 1443 1444 1441 1442 1443 1442 1443 + 1444 1443 1444 1444 0 1446 1447 1448 1449 1450 + 1451 1455 1447 1448 1449 1448 1449 1450 1451 1452 + 1453 1454 1455 1456 1457 1449 1450 1451 1455 1450 + 1451 1452 1453 1454 1455 1456 1457 1458 1467 1451 + 1452 1453 1454 1455 1456 1457 1452 1453 1454 1455 + 1456 1457 1453 1454 1455 1454 1455 1455 1456 1457 + 1458 1459 1460 1461 1464 1467 1468 1469 1457 1458 + 1467 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467 1468 1469 1470 1471 1459 1460 1461 1462 1463 + 1464 1465 1466 1467 1468 1469 1460 1461 1462 1463 + 1464 1467 1461 1462 1463 1464 1467 1462 1463 1464 + 1465 1466 1467 1468 1469 1463 1464 1465 1466 1467 + 1464 1465 1466 1467 1465 1466 1467 1468 1469 1470 + 1471 1466 1467 1468 1469 1467 1468 1469 1468 1469 + 1470 1471 1472 1473 1469 1470 1471 1470 1471 1472 + 1473 1474 1475 1493 1471 1472 1473 1472 1473 1474 + 1475 1476 1477 1478 1493 1494 1495 1473 1474 1475 + 1493 1474 1475 1476 1477 1478 1479 1480 1481 1493 + 1494 1495 1496 1497 1475 1476 1477 1478 1493 1494 + 1495 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1493 1494 1495 1477 1478 1479 1480 1481 1493 1478 + 1479 1480 1481 1493 1479 1480 1481 1482 1483 1484 + 1485 1486 1493 1480 1481 1482 1483 1484 1481 1482 + 1483 1484 1482 1483 1484 1485 1486 1487 1490 1483 + 1484 1485 1486 1484 1485 1486 1485 1486 1487 1488 + 1489 1490 1491 1492 1486 1487 1490 1487 1488 1489 + 1490 1491 1492 1488 1489 1490 1491 1492 1489 1490 + 1490 1491 1492 1492 0 1494 1495 1496 1497 1498 + 1499 1505 1495 1496 1497 1496 1497 1498 1499 1500 + 1501 1502 1505 1506 1507 1497 1498 1499 1505 1498 + 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509 1499 1500 1501 1502 1505 1506 1507 1500 1501 + 1502 1503 1504 1505 1506 1507 1501 1502 1503 1504 + 1505 1502 1503 1504 1505 1503 1504 1505 1504 0 + 1506 1507 1508 1509 1510 1511 1522 1507 1508 1509 + 1508 1509 1510 1511 1512 1513 1514 1522 1523 1524 + 1509 1510 1511 1522 1510 1511 1512 1513 1514 1515 + 1516 1517 1522 1523 1524 1525 1526 1511 1512 1513 + 1514 1522 1523 1524 1512 1513 1514 1515 1516 1517 + 1518 1519 1522 1523 1524 1513 1514 1515 1516 1517 + 1522 1514 1515 1516 1517 1522 1515 1516 1517 1518 + 1519 1520 1521 1522 1516 1517 1518 1519 1517 1518 + 1519 1518 1519 1520 1521 1519 1520 1521 1520 1521 + 1521 0 1523 1524 1525 1526 1527 1528 1541 1524 + 1525 1526 1525 1526 1527 1528 1529 1530 1531 1541 + 1542 1543 1526 1527 1528 1541 1527 1528 1529 1530 + 1531 1532 1533 1537 1541 1542 1543 1544 1545 1528 + 1529 1530 1531 1541 1542 1543 1529 1530 1531 1532 + 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543 1530 1531 1532 1533 1537 1541 1531 1532 1533 + 1537 1541 1532 1533 1534 1535 1536 1537 1538 1539 + 1540 1541 1533 1534 1535 1536 1537 1538 1539 1540 + 1534 1535 1536 1537 1538 1539 1540 1535 1536 1537 + 1536 1537 1537 1538 1539 1540 1539 1540 1540 0 + 1542 1543 1544 1545 1546 1547 1556 1543 1544 1545 + 1544 1545 1546 1547 1548 1549 1550 1556 1557 1558 + 1545 1546 1547 1556 1546 1547 1548 1549 1550 1551 + 1552 1553 1556 1557 1558 1559 1560 1547 1548 1549 + 1550 1556 1557 1558 1548 1549 1550 1551 1552 1553 + 1554 1555 1556 1557 1558 1549 1550 1551 1552 1553 + 1556 1550 1551 1552 1553 1556 1551 1552 1553 1554 + 1555 1556 1552 1553 1554 1555 1553 1554 1555 1554 + 1555 1555 0 1557 1558 1559 1560 1561 1562 1563 + 1558 1559 1560 1559 1560 1561 1562 1563 1564 1565 + 1560 1561 1562 1563 1561 1562 1563 1564 1565 1566 + 1567 1562 1563 1564 1565 1563 1564 1565 1564 1565 + 1566 1567 1568 1569 1577 1565 1566 1567 1566 1567 + 1568 1569 1570 1571 1572 1577 1578 1579 1567 1568 + 1569 1577 1568 1569 1570 1571 1572 1573 1574 1577 + 1578 1579 1580 1581 1569 1570 1571 1572 1577 1578 + 1579 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579 1571 1572 1573 1574 1577 1572 1573 1574 1577 + 1573 1574 1575 1576 1577 1574 1575 1576 1575 1576 + 1576 0 1578 1579 1580 1581 1582 1583 1597 1579 + 1580 1581 1580 1581 1582 1583 1584 1585 1586 1597 + 1598 1599 1581 1582 1583 1597 1582 1583 1584 1585 + 1586 1587 1595 1597 1598 1599 1600 1601 1583 1584 + 1585 1586 1597 1598 1599 1584 1585 1586 1587 1588 + 1589 1593 1595 1596 1597 1598 1599 1585 1586 1587 + 1595 1597 1586 1587 1595 1597 1587 1588 1589 1590 + 1591 1593 1594 1595 1596 1597 1588 1589 1590 1591 + 1592 1593 1595 1596 1589 1590 1591 1595 1590 1591 + 1592 1593 1594 1595 1591 1592 1593 1592 1593 1594 + 1595 1596 1593 1594 1595 1594 1595 1596 1595 1596 + 1596 0 1598 1599 1600 1601 1602 1603 1616 1599 + 1600 1601 1600 1601 1602 1603 1604 1605 1609 1616 + 1617 1618 1601 1602 1603 1616 1602 1603 1604 1605 + 1606 1607 1608 1609 1610 1611 1612 1616 1617 1618 + 1619 1620 1603 1604 1605 1609 1616 1617 1618 1604 + 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615 1616 1617 1618 1605 1606 1607 1608 1609 1610 + 1611 1612 1616 1606 1607 1608 1609 1610 1611 1612 + 1616 1607 1608 1609 1608 1609 1609 1610 1611 1612 + 1613 1614 1615 1616 1611 1612 1613 1614 1615 1612 + 1613 1614 1615 1613 1614 1615 1614 1615 1615 0 + 1617 1618 1619 1620 1621 1622 1628 1618 1619 1620 + 1619 1620 1621 1622 1623 1624 1625 1628 1629 1630 + 1620 1621 1622 1628 1621 1622 1623 1624 1625 1626 + 1627 1628 1629 1630 1631 1632 1622 1623 1624 1625 + 1628 1629 1630 1623 1624 1625 1626 1627 1628 1629 + 1630 1624 1625 1626 1627 1628 1625 1626 1627 1628 + 1626 1627 1628 1627 0 1629 1630 1631 1632 1633 + 1634 1639 1630 1631 1632 1631 1632 1633 1634 1635 + 1636 1637 1639 1640 1641 1632 1633 1634 1639 1633 + 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1634 1635 1636 1637 1639 1640 1641 1635 1636 1637 + 1638 1639 1640 1641 1636 1637 1638 1639 1637 1638 + 1639 1638 1639 0 1640 1641 1642 1643 1644 1645 + 1655 1641 1642 1643 1642 1643 1644 1645 1646 1647 + 1651 1655 1656 1657 1643 1644 1645 1655 1644 1645 + 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656 1657 1658 1659 1645 1646 1647 1651 1655 1656 + 1657 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655 1656 1657 1647 1648 1649 1650 1651 1652 1653 + 1654 1655 1648 1649 1650 1651 1652 1653 1654 1655 + 1649 1650 1651 1650 1651 1651 1652 1653 1654 1655 + 1653 1654 1654 0 1656 1657 1658 1659 1660 1661 + 1669 1657 1658 1659 1658 1659 1660 1661 1662 1663 + 1667 1669 1670 1671 1659 1660 1661 1669 1660 1661 + 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672 1673 1661 1662 1663 1667 1669 1670 1671 1662 + 1663 1664 1665 1666 1667 1668 1669 1670 1671 1663 + 1664 1665 1666 1667 1668 1669 1664 1665 1666 1667 + 1668 1669 1665 1666 1667 1666 1667 1667 1668 1669 + 0 1670 1671 1672 1673 1674 1675 1693 1671 1672 + 1673 1672 1673 1674 1675 1676 1677 1678 1693 1694 + 1695 1673 1674 1675 1693 1674 1675 1676 1677 1678 + 1679 1680 1681 1693 1694 1695 1696 1697 1675 1676 + 1677 1678 1693 1694 1695 1676 1677 1678 1679 1680 + 1681 1682 1683 1684 1693 1694 1695 1677 1678 1679 + 1680 1681 1693 1678 1679 1680 1681 1693 1679 1680 + 1681 1682 1683 1684 1685 1686 1693 1680 1681 1682 + 1683 1684 1681 1682 1683 1684 1682 1683 1684 1685 + 1686 1687 1690 1683 1684 1685 1686 1684 1685 1686 + 1685 1686 1687 1688 1689 1690 1691 1692 1686 1687 + 1690 1687 1688 1689 1690 1691 1692 1688 1689 1690 + 1691 1692 1689 1690 1690 1691 1692 1692 0 1694 + 1695 1696 1697 1698 1699 1708 1695 1696 1697 1696 + 1697 1698 1699 1700 1701 1702 1708 1709 1710 1697 + 1698 1699 1708 1698 1699 1700 1701 1702 1703 1704 + 1705 1708 1709 1710 1711 1712 1699 1700 1701 1702 + 1708 1709 1710 1700 1701 1702 1703 1704 1705 1706 + 1707 1708 1709 1710 1701 1702 1703 1704 1705 1708 + 1702 1703 1704 1705 1708 1703 1704 1705 1706 1707 + 1708 1704 1705 1706 1707 1705 1706 1707 1706 1707 + 1707 0 1709 1710 1711 1712 1713 1714 1715 1710 + 1711 1712 1711 1712 1713 1714 1715 1716 1717 1712 + 1713 1714 1715 1713 1714 1715 1716 1717 1718 1719 + 1714 1715 1716 1717 1715 1716 1717 1716 1717 1718 + 1719 1720 1721 1735 1717 1718 1719 1718 1719 1720 + 1721 1722 1723 1724 1735 1736 1737 1719 1720 1721 + 1735 1720 1721 1722 1723 1724 1725 1733 1735 1736 + 1737 1738 1739 1721 1722 1723 1724 1735 1736 1737 + 1722 1723 1724 1725 1726 1727 1731 1733 1734 1735 + 1736 1737 1723 1724 1725 1733 1735 1724 1725 1733 + 1735 1725 1726 1727 1728 1729 1731 1732 1733 1734 + 1735 1726 1727 1728 1729 1730 1731 1733 1734 1727 + 1728 1729 1733 1728 1729 1730 1731 1732 1733 1729 + 1730 1731 1730 1731 1732 1733 1734 1731 1732 1733 + 1732 1733 1734 1733 1734 1734 0 1736 1737 1738 + 1739 1740 1741 1746 1737 1738 1739 1738 1739 1740 + 1741 1742 1743 1744 1746 1747 1748 1739 1740 1741 + 1746 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749 1750 1741 1742 1743 1744 1746 1747 1748 1742 + 1743 1744 1745 1746 1747 1748 1743 1744 1745 1746 + 1744 1745 1746 1745 1746 0 1747 1748 1749 1750 + 1751 1752 1765 1748 1749 1750 1749 1750 1751 1752 + 1753 1754 1758 1765 1766 1767 1750 1751 1752 1765 + 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761 1765 1766 1767 1768 1769 1752 1753 1754 1758 + 1765 1766 1767 1753 1754 1755 1756 1757 1758 1759 + 1760 1761 1762 1763 1764 1765 1766 1767 1754 1755 + 1756 1757 1758 1759 1760 1761 1765 1755 1756 1757 + 1758 1759 1760 1761 1765 1756 1757 1758 1757 1758 + 1758 1759 1760 1761 1762 1763 1764 1765 1760 1761 + 1762 1763 1764 1761 1762 1763 1764 1762 1763 1764 + 1763 1764 1764 0 1766 1767 1768 1769 1770 1771 + 1775 1767 1768 1769 1768 1769 1770 1771 1772 1773 + 1774 1775 1776 1777 1769 1770 1771 1775 1770 1771 + 1772 1773 1774 1775 1776 1777 1778 1779 1771 1772 + 1773 1774 1775 1776 1777 1772 1773 1774 1775 1776 + 1777 1773 1774 1775 1774 1775 1775 1776 1777 1778 + 1779 1780 1781 1792 1777 1778 1779 1778 1779 1780 + 1781 1782 1783 1784 1792 1793 1794 1779 1780 1781 + 1792 1780 1781 1782 1783 1784 1785 1790 1792 1793 + 1794 1795 1796 1781 1782 1783 1784 1792 1793 1794 + 1782 1783 1784 1785 1786 1788 1790 1791 1792 1793 + 1794 1783 1784 1785 1790 1792 1784 1785 1790 1792 + 1785 1786 1787 1788 1789 1790 1791 1792 1786 1787 + 1788 1789 1790 1791 1787 1788 1789 1790 1791 1788 + 1789 1790 1789 1790 1791 1790 1791 1791 0 1793 + 1794 1795 1796 1797 1798 1804 1794 1795 1796 1795 + 1796 1797 1798 1799 1800 1801 1804 1805 1806 1796 + 1797 1798 1804 1797 1798 1799 1800 1801 1802 1803 + 1804 1805 1806 1807 1808 1798 1799 1800 1801 1804 + 1805 1806 1799 1800 1801 1802 1803 1804 1805 1806 + 1800 1801 1802 1803 1804 1801 1802 1803 1804 1802 + 1803 1804 1803 0 1805 1806 1807 1808 1809 1810 + 1823 1806 1807 1808 1807 1808 1809 1810 1811 1812 + 1816 1823 1824 1825 1808 1809 1810 1823 1809 1810 + 1811 1812 1813 1814 1815 1816 1817 1818 1819 1823 + 1824 1825 1826 1827 1810 1811 1812 1816 1823 1824 + 1825 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820 1821 1822 1823 1824 1825 1812 1813 1814 1815 + 1816 1817 1818 1819 1823 1813 1814 1815 1816 1817 + 1818 1819 1823 1814 1815 1816 1815 1816 1816 1817 + 1818 1819 1820 1821 1822 1823 1818 1819 1820 1821 + 1822 1819 1820 1821 1822 1820 1821 1822 1821 1822 + 1822 0 1824 1825 1826 1827 1828 1829 1834 1825 + 1826 1827 1826 1827 1828 1829 1830 1831 1832 1834 + 1835 1836 1827 1828 1829 1834 1828 1829 1830 1831 + 1832 1833 1834 1835 1836 1837 1838 1829 1830 1831 + 1832 1834 1835 1836 1830 1831 1832 1833 1834 1835 + 1836 1831 1832 1833 1834 1832 1833 1834 1833 1834 + 0 1835 1836 1837 1838 1839 1840 1844 1836 1837 + 1838 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846 1838 1839 1840 1844 1839 1840 1841 1842 1843 + 1844 1845 1846 1847 1848 1840 1841 1842 1843 1844 + 1845 1846 1841 1842 1843 1844 1845 1846 1842 1843 + 1844 1843 1844 1844 1845 1846 1847 1848 1849 1850 + 1865 1846 1847 1848 1847 1848 1849 1850 1851 1852 + 1853 1865 1866 1867 1848 1849 1850 1865 1849 1850 + 1851 1852 1853 1854 1863 1865 1866 1867 1868 1869 + 1850 1851 1852 1853 1865 1866 1867 1851 1852 1853 + 1854 1855 1856 1861 1863 1864 1865 1866 1867 1852 + 1853 1854 1863 1865 1853 1854 1863 1865 1854 1855 + 1856 1857 1858 1861 1862 1863 1864 1865 1855 1856 + 1857 1858 1859 1861 1863 1864 1856 1857 1858 1863 + 1857 1858 1859 1860 1861 1862 1863 1858 1859 1861 + 1859 1860 1861 1862 1863 1864 1860 1861 1862 1863 + 1861 1862 1863 1864 1863 1864 1864 0 1866 1867 + 1868 1869 1870 1871 1876 1867 1868 1869 1868 1869 + 1870 1871 1872 1873 1874 1876 1877 1878 1869 1870 + 1871 1876 1870 1871 1872 1873 1874 1875 1876 1877 + 1878 1879 1880 1871 1872 1873 1874 1876 1877 1878 + 1872 1873 1874 1875 1876 1877 1878 1873 1874 1875 + 1876 1874 1875 1876 1875 1876 0 1877 1878 1879 + 1880 1881 1882 1896 1878 1879 1880 1879 1880 1881 + 1882 1883 1884 1885 1896 1897 1898 1880 1881 1882 + 1896 1881 1882 1883 1884 1885 1886 1894 1896 1897 + 1898 1899 1900 1882 1883 1884 1885 1896 1897 1898 + 1883 1884 1885 1886 1887 1888 1892 1894 1895 1896 + 1897 1898 1884 1885 1886 1894 1896 1885 1886 1894 + 1896 1886 1887 1888 1889 1890 1892 1893 1894 1895 + 1896 1887 1888 1889 1890 1891 1892 1894 1895 1888 + 1889 1890 1894 1889 1890 1891 1892 1893 1894 1890 + 1891 1892 1891 1892 1893 1894 1895 1892 1893 1894 + 1893 1894 1895 1894 1895 1895 0 1897 1898 1899 + 1900 1901 1902 1906 1898 1899 1900 1899 1900 1901 + 1902 1903 1904 1905 1906 1907 1908 1900 1901 1902 + 1906 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910 1902 1903 1904 1905 1906 1907 1908 1903 1904 + 1905 1906 1907 1908 1904 1905 1906 1905 1906 1906 + 1907 1908 1909 1910 1911 1912 1916 1908 1909 1910 + 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1910 1911 1912 1916 1911 1912 1913 1914 1915 1916 + 1917 1918 1919 1920 1912 1913 1914 1915 1916 1917 + 1918 1913 1914 1915 1916 1917 1918 1914 1915 1916 + 1915 1916 1916 1917 1918 1919 1920 1921 1922 1935 + 1918 1919 1920 1919 1920 1921 1922 1923 1924 1925 + 1935 1936 1937 1920 1921 1922 1935 1921 1922 1923 + 1924 1925 1926 1927 1931 1935 1936 1937 1938 1939 + 1922 1923 1924 1925 1935 1936 1937 1923 1924 1925 + 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936 1937 1924 1925 1926 1927 1931 1935 1925 1926 + 1927 1931 1935 1926 1927 1928 1929 1930 1931 1932 + 1933 1934 1935 1927 1928 1929 1930 1931 1932 1933 + 1934 1928 1929 1930 1931 1932 1933 1934 1929 1930 + 1931 1930 1931 1931 1932 1933 1934 1933 1934 1934 + 0 1936 1937 1938 1939 1940 1941 1945 1937 1938 + 1939 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947 1939 1940 1941 1945 1940 1941 1942 1943 1944 + 1945 1946 1947 1948 1949 1941 1942 1943 1944 1945 + 1946 1947 1942 1943 1944 1945 1946 1947 1943 1944 + 1945 1944 1945 1945 1946 1947 1948 1949 1950 1951 + 1967 1947 1948 1949 1948 1949 1950 1951 1952 1953 + 1954 1967 1968 1969 1949 1950 1951 1967 1950 1951 + 1952 1953 1954 1955 1956 1957 1967 1968 1969 1970 + 1971 1951 1952 1953 1954 1967 1968 1969 1952 1953 + 1954 1955 1956 1957 1958 1959 1960 1967 1968 1969 + 1953 1954 1955 1956 1957 1967 1954 1955 1956 1957 + 1967 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1967 1956 1957 1958 1959 1960 1957 1958 1959 1960 + 1958 1959 1960 1961 1962 1963 1964 1965 1966 1959 + 1960 1961 1962 1963 1960 1961 1962 1963 1961 1962 + 1963 1964 1965 1966 1962 1963 1964 1965 1966 1963 + 1964 1965 1966 1964 1965 1966 1965 1966 1966 0 + 1968 1969 1970 1971 1972 1973 1982 1969 1970 1971 + 1970 1971 1972 1973 1974 1975 1976 1982 1983 1984 + 1971 1972 1973 1982 1972 1973 1974 1975 1976 1977 + 1978 1979 1982 1983 1984 1985 1986 1973 1974 1975 + 1976 1982 1983 1984 1974 1975 1976 1977 1978 1979 + 1980 1981 1982 1983 1984 1975 1976 1977 1978 1979 + 1982 1976 1977 1978 1979 1982 1977 1978 1979 1980 + 1981 1982 1978 1979 1980 1981 1979 1980 1981 1980 + 1981 1981 0 1983 1984 1985 1986 1987 1988 1989 + 1984 1985 1986 1985 1986 1987 1988 1989 1990 1991 + 1986 1987 1988 1989 1987 1988 1989 1990 1991 1992 + 1993 1988 1989 1990 1991 1989 1990 1991 1990 1991 + 1992 1993 1994 1995 2013 1991 1992 1993 1992 1993 + 1994 1995 1996 1997 1998 2013 2014 2015 1993 1994 + 1995 2013 1994 1995 1996 1997 1998 1999 2000 2001 + 2013 2014 2015 2016 2017 1995 1996 1997 1998 2013 + 2014 2015 1996 1997 1998 1999 2000 2001 2002 2003 + 2004 2013 2014 2015 1997 1998 1999 2000 2001 2013 + 1998 1999 2000 2001 2013 1999 2000 2001 2002 2003 + 2004 2005 2006 2013 2000 2001 2002 2003 2004 2001 + 2002 2003 2004 2002 2003 2004 2005 2006 2007 2010 + 2003 2004 2005 2006 2004 2005 2006 2005 2006 2007 + 2008 2009 2010 2011 2012 2006 2007 2010 2007 2008 + 2009 2010 2011 2012 2008 2009 2010 2011 2012 2009 + 2010 2010 2011 2012 2012 0 2014 2015 2016 2017 + 2018 2019 2024 2015 2016 2017 2016 2017 2018 2019 + 2020 2021 2022 2024 2025 2026 2017 2018 2019 2024 + 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 + 2028 2019 2020 2021 2022 2024 2025 2026 2020 2021 + 2022 2023 2024 2025 2026 2021 2022 2023 2024 2022 + 2023 2024 2023 2024 0 2025 2026 2027 2028 2029 + 2030 2041 2026 2027 2028 2027 2028 2029 2030 2031 + 2032 2033 2041 2042 2043 2028 2029 2030 2041 2029 + 2030 2031 2032 2033 2034 2035 2036 2041 2042 2043 + 2044 2045 2030 2031 2032 2033 2041 2042 2043 2031 + 2032 2033 2034 2035 2036 2037 2041 2042 2043 2032 + 2033 2034 2035 2036 2041 2033 2034 2035 2036 2041 + 2034 2035 2036 2037 2038 2039 2040 2041 2035 2036 + 2037 2036 2037 2037 2038 2039 2040 2038 2039 2040 + 2039 2040 2040 0 2042 2043 2044 2045 2046 2047 + 2058 2043 2044 2045 2044 2045 2046 2047 2048 2049 + 2050 2058 2059 2060 2045 2046 2047 2058 2046 2047 + 2048 2049 2050 2051 2052 2053 2058 2059 2060 2061 + 2062 2047 2048 2049 2050 2058 2059 2060 2048 2049 + 2050 2051 2052 2053 2054 2058 2059 2060 2049 2050 + 2051 2052 2053 2058 2050 2051 2052 2053 2058 2051 + 2052 2053 2054 2055 2056 2057 2058 2052 2053 2054 + 2053 2054 2054 2055 2056 2057 2055 2056 2057 2056 + 2057 2057 0 2059 2060 2061 2062 2063 2064 2080 + 2060 2061 2062 2061 2062 2063 2064 2065 2066 2067 + 2080 2081 2082 2062 2063 2064 2080 2063 2064 2065 + 2066 2067 2068 2069 2070 2080 2081 2082 2083 2084 + 2064 2065 2066 2067 2080 2081 2082 2065 2066 2067 + 2068 2069 2070 2071 2072 2073 2080 2081 2082 2066 + 2067 2068 2069 2070 2080 2067 2068 2069 2070 2080 + 2068 2069 2070 2071 2072 2073 2074 2075 2076 2080 + 2069 2070 2071 2072 2073 2070 2071 2072 2073 2071 + 2072 2073 2074 2075 2076 2077 2078 2079 2072 2073 + 2074 2075 2076 2073 2074 2075 2076 2074 2075 2076 + 2077 2078 2079 2075 2076 2077 2078 2079 2076 2077 + 2078 2079 2077 2078 2079 2078 2079 2079 0 2081 + 2082 2083 2084 2085 2086 2094 2082 2083 2084 2083 + 2084 2085 2086 2087 2088 2089 2094 2095 2096 2084 + 2085 2086 2094 2085 2086 2087 2088 2089 2090 2091 + 2094 2095 2096 2097 2098 2086 2087 2088 2089 2094 + 2095 2096 2087 2088 2089 2090 2091 2092 2093 2094 + 2095 2096 2088 2089 2090 2091 2094 2089 2090 2091 + 2094 2090 2091 2092 2093 2094 2091 2092 2093 2092 + 2093 2093 0 2095 2096 2097 2098 2099 2100 2118 + 2096 2097 2098 2097 2098 2099 2100 2101 2102 2103 + 2118 2119 2120 2098 2099 2100 2118 2099 2100 2101 + 2102 2103 2104 2105 2106 2118 2119 2120 2121 2122 + 2100 2101 2102 2103 2118 2119 2120 2101 2102 2103 + 2104 2105 2106 2107 2108 2109 2118 2119 2120 2102 + 2103 2104 2105 2106 2118 2103 2104 2105 2106 2118 + 2104 2105 2106 2107 2108 2109 2110 2111 2118 2105 + 2106 2107 2108 2109 2106 2107 2108 2109 2107 2108 + 2109 2110 2111 2112 2115 2108 2109 2110 2111 2109 + 2110 2111 2110 2111 2112 2113 2114 2115 2116 2117 + 2111 2112 2115 2112 2113 2114 2115 2116 2117 2113 + 2114 2115 2116 2117 2114 2115 2115 2116 2117 2117 + 0 2119 2120 2121 2122 2123 2124 2132 2120 2121 + 2122 2121 2122 2123 2124 2125 2126 2127 2132 2133 + 2134 2122 2123 2124 2132 2123 2124 2125 2126 2127 + 2128 2129 2132 2133 2134 2135 2136 2124 2125 2126 + 2127 2132 2133 2134 2125 2126 2127 2128 2129 2130 + 2131 2132 2133 2134 2126 2127 2128 2129 2132 2127 + 2128 2129 2132 2128 2129 2130 2131 2132 2129 2130 + 2131 2130 2131 2131 0 2133 2134 2135 2136 2137 + 2138 2142 2134 2135 2136 2135 2136 2137 2138 2139 + 2140 2141 2142 2143 2144 2136 2137 2138 2142 2137 + 2138 2139 2140 2141 2142 2143 2144 2145 2146 2138 + 2139 2140 2141 2142 2143 2144 2139 2140 2141 2142 + 2143 2144 2140 2141 2142 2141 2142 2142 2143 2144 + 2145 2146 2147 2148 2153 2144 2145 2146 2145 2146 + 2147 2148 2149 2150 2151 2153 2154 2155 2146 2147 + 2148 2153 2147 2148 2149 2150 2151 2152 2153 2154 + 2155 2156 2157 2148 2149 2150 2151 2153 2154 2155 + 2149 2150 2151 2152 2153 2154 2155 2150 2151 2152 + 2153 2151 2152 2153 2152 2153 0 2154 2155 2156 + 2157 2158 2159 2170 2155 2156 2157 2156 2157 2158 + 2159 2160 2161 2162 2170 2171 2172 2157 2158 2159 + 2170 2158 2159 2160 2161 2162 2163 2164 2165 2170 + 2171 2172 2173 2174 2159 2160 2161 2162 2170 2171 + 2172 2160 2161 2162 2163 2164 2165 2166 2170 2171 + 2172 2161 2162 2163 2164 2165 2170 2162 2163 2164 + 2165 2170 2163 2164 2165 2166 2167 2168 2169 2170 + 2164 2165 2166 2165 2166 2166 2167 2168 2169 2167 + 2168 2169 2168 2169 2169 0 2171 2172 2173 2174 + 2175 2176 2186 2172 2173 2174 2173 2174 2175 2176 + 2177 2178 2182 2186 2187 2188 2174 2175 2176 2186 + 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 + 2185 2186 2187 2188 2189 2190 2176 2177 2178 2182 + 2186 2187 2188 2177 2178 2179 2180 2181 2182 2183 + 2184 2185 2186 2187 2188 2178 2179 2180 2181 2182 + 2183 2184 2185 2186 2179 2180 2181 2182 2183 2184 + 2185 2186 2180 2181 2182 2181 2182 2182 2183 2184 + 2185 2186 2184 2185 2185 0 2187 2188 2189 2190 + 2191 2192 2196 2188 2189 2190 2189 2190 2191 2192 + 2193 2194 2195 2196 2197 2198 2190 2191 2192 2196 + 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 + 2192 2193 2194 2195 2196 2197 2198 2193 2194 2195 + 2196 2197 2198 2194 2195 2196 2195 2196 2196 2197 + 2198 2199 2200 2201 2202 2215 2198 2199 2200 2199 + 2200 2201 2202 2203 2204 2205 2215 2216 2217 2200 + 2201 2202 2215 2201 2202 2203 2204 2205 2206 2207 + 2211 2215 2216 2217 2218 2219 2202 2203 2204 2205 + 2215 2216 2217 2203 2204 2205 2206 2207 2208 2209 + 2210 2211 2212 2213 2214 2215 2216 2217 2204 2205 + 2206 2207 2211 2215 2205 2206 2207 2211 2215 2206 + 2207 2208 2209 2210 2211 2212 2213 2214 2215 2207 + 2208 2209 2210 2211 2212 2213 2214 2208 2209 2210 + 2211 2212 2213 2214 2209 2210 2211 2210 2211 2211 + 2212 2213 2214 2213 2214 2214 0 2216 2217 2218 + 2219 2220 2221 2229 2217 2218 2219 2218 2219 2220 + 2221 2222 2223 2227 2229 2230 2231 2219 2220 2221 + 2229 2220 2221 2222 2223 2224 2225 2226 2227 2228 + 2229 2230 2231 2232 2233 2221 2222 2223 2227 2229 + 2230 2231 2222 2223 2224 2225 2226 2227 2228 2229 + 2230 2231 2223 2224 2225 2226 2227 2228 2229 2224 + 2225 2226 2227 2228 2229 2225 2226 2227 2226 2227 + 2227 2228 2229 0 2230 2231 2232 2233 2234 2235 + 2250 2231 2232 2233 2232 2233 2234 2235 2236 2237 + 2238 2250 2251 2252 2233 2234 2235 2250 2234 2235 + 2236 2237 2238 2239 2248 2250 2251 2252 2253 2254 + 2235 2236 2237 2238 2250 2251 2252 2236 2237 2238 + 2239 2240 2241 2246 2248 2249 2250 2251 2252 2237 + 2238 2239 2248 2250 2238 2239 2248 2250 2239 2240 + 2241 2242 2243 2246 2247 2248 2249 2250 2240 2241 + 2242 2243 2244 2246 2248 2249 2241 2242 2243 2248 + 2242 2243 2244 2245 2246 2247 2248 2243 2244 2246 + 2244 2245 2246 2247 2248 2249 2245 2246 2247 2248 + 2246 2247 2248 2249 2248 2249 2249 0 2251 2252 + 2253 2254 2255 2256 2269 2252 2253 2254 2253 2254 + 2255 2256 2257 2258 2262 2269 2270 2271 2254 2255 + 2256 2269 2255 2256 2257 2258 2259 2260 2261 2262 + 2263 2264 2265 2269 2270 2271 2272 2273 2256 2257 + 2258 2262 2269 2270 2271 2257 2258 2259 2260 2261 + 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 + 2258 2259 2260 2261 2262 2263 2264 2265 2269 2259 + 2260 2261 2262 2263 2264 2265 2269 2260 2261 2262 + 2261 2262 2262 2263 2264 2265 2266 2267 2268 2269 + 2264 2265 2266 2267 2268 2265 2266 2267 2268 2266 + 2267 2268 2267 2268 2268 0 2270 2271 2272 2273 + 2274 2275 2276 2271 2272 2273 2272 2273 2274 2275 + 2276 2277 2278 2273 2274 2275 2276 2274 2275 2276 + 2277 2278 2279 2280 2275 2276 2277 2278 2276 2277 + 2278 2277 2278 2279 2280 2281 2282 2286 2278 2279 + 2280 2279 2280 2281 2282 2283 2284 2285 2286 2287 + 2288 2280 2281 2282 2286 2281 2282 2283 2284 2285 + 2286 2287 2288 2289 2290 2282 2283 2284 2285 2286 + 2287 2288 2283 2284 2285 2286 2287 2288 2284 2285 + 2286 2285 2286 2286 2287 2288 2289 2290 2291 2292 + 2301 2288 2289 2290 2289 2290 2291 2292 2293 2294 + 2295 2301 2302 2303 2290 2291 2292 2301 2291 2292 + 2293 2294 2295 2296 2297 2298 2301 2302 2303 2304 + 2305 2292 2293 2294 2295 2301 2302 2303 2293 2294 + 2295 2296 2297 2298 2299 2300 2301 2302 2303 2294 + 2295 2296 2297 2298 2301 2295 2296 2297 2298 2301 + 2296 2297 2298 2299 2300 2301 2297 2298 2299 2300 + 2298 2299 2300 2299 2300 2300 0 2302 2303 2304 + 2305 2306 2307 2323 2303 2304 2305 2304 2305 2306 + 2307 2308 2309 2310 2323 2324 2325 2305 2306 2307 + 2323 2306 2307 2308 2309 2310 2311 2312 2313 2323 + 2324 2325 2326 2327 2307 2308 2309 2310 2323 2324 + 2325 2308 2309 2310 2311 2312 2313 2314 2315 2316 + 2323 2324 2325 2309 2310 2311 2312 2313 2323 2310 + 2311 2312 2313 2323 2311 2312 2313 2314 2315 2316 + 2317 2318 2319 2323 2312 2313 2314 2315 2316 2313 + 2314 2315 2316 2314 2315 2316 2317 2318 2319 2320 + 2321 2322 2315 2316 2317 2318 2319 2316 2317 2318 + 2319 2317 2318 2319 2320 2321 2322 2318 2319 2320 + 2321 2322 2319 2320 2321 2322 2320 2321 2322 2321 + 2322 2322 0 2324 2325 2326 2327 2328 2329 2333 + 2325 2326 2327 2326 2327 2328 2329 2330 2331 2332 + 2333 2334 2335 2327 2328 2329 2333 2328 2329 2330 + 2331 2332 2333 2334 2335 2336 2337 2329 2330 2331 + 2332 2333 2334 2335 2330 2331 2332 2333 2334 2335 + 2331 2332 2333 2332 2333 2333 2334 2335 2336 2337 + 2338 2339 2350 2335 2336 2337 2336 2337 2338 2339 + 2340 2341 2342 2350 2351 2352 2337 2338 2339 2350 + 2338 2339 2340 2341 2342 2343 2344 2345 2350 2351 + 2352 2353 2362 2339 2340 2341 2342 2350 2351 2352 + 2340 2341 2342 2343 2344 2345 2346 2350 2351 2352 + 2341 2342 2343 2344 2345 2350 2342 2343 2344 2345 + 2350 2343 2344 2345 2346 2347 2348 2349 2350 2344 + 2345 2346 2345 2346 2346 2347 2348 2349 2347 2348 + 2349 2348 2349 2349 0 2351 2352 2353 2354 2355 + 2356 2359 2362 2363 2364 2352 2353 2362 2353 2354 + 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 + 2365 2366 2354 2355 2356 2357 2358 2359 2360 2361 + 2362 2363 2364 2355 2356 2357 2358 2359 2362 2356 + 2357 2358 2359 2362 2357 2358 2359 2360 2361 2362 + 2363 2364 2358 2359 2360 2361 2362 2359 2360 2361 + 2362 2360 2361 2362 2363 2364 2365 2366 2361 2362 + 2363 2364 2362 2363 2364 2363 2364 2365 2366 2367 + 2368 2364 2365 2366 2365 2366 2367 2368 2369 2370 + 2375 2366 2367 2368 2367 2368 2369 2370 2371 2372 + 2373 2375 2376 2377 2368 2369 2370 2375 2369 2370 + 2371 2372 2373 2374 2375 2376 2377 2378 2379 2370 + 2371 2372 2373 2375 2376 2377 2371 2372 2373 2374 + 2375 2376 2377 2372 2373 2374 2375 2373 2374 2375 + 2374 2375 0 2376 2377 2378 2379 2380 2381 2396 + 2377 2378 2379 2378 2379 2380 2381 2382 2383 2384 + 2396 2397 2398 2379 2380 2381 2396 2380 2381 2382 + 2383 2384 2385 2394 2396 2397 2398 2399 2400 2381 + 2382 2383 2384 2396 2397 2398 2382 2383 2384 2385 + 2386 2387 2392 2394 2395 2396 2397 2398 2383 2384 + 2385 2394 2396 2384 2385 2394 2396 2385 2386 2387 + 2388 2389 2392 2393 2394 2395 2396 2386 2387 2388 + 2389 2390 2392 2394 2395 2387 2388 2389 2394 2388 + 2389 2390 2391 2392 2393 2394 2389 2390 2392 2390 + 2391 2392 2393 2394 2395 2391 2392 2393 2394 2392 + 2393 2394 2395 2394 2395 2395 0 2397 2398 2399 + 2400 2401 2402 2410 2398 2399 2400 2399 2400 2401 + 2402 2403 2404 2405 2410 2411 2412 2400 2401 2402 + 2410 2401 2402 2403 2404 2405 2406 2407 2410 2411 + 2412 2413 2414 2402 2403 2404 2405 2410 2411 2412 + 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 + 2404 2405 2406 2407 2410 2405 2406 2407 2410 2406 + 2407 2408 2409 2410 2407 2408 2409 2408 2409 2409 + 0 2411 2412 2413 2414 2415 2416 2424 2412 2413 + 2414 2413 2414 2415 2416 2417 2418 2422 2424 2425 + 2426 2414 2415 2416 2424 2415 2416 2417 2418 2419 + 2420 2421 2422 2423 2424 2425 2426 2427 2428 2416 + 2417 2418 2422 2424 2425 2426 2417 2418 2419 2420 + 2421 2422 2423 2424 2425 2426 2418 2419 2420 2421 + 2422 2423 2424 2419 2420 2421 2422 2423 2424 2420 + 2421 2422 2421 2422 2422 2423 2424 0 2425 2426 + 2427 2428 2429 2430 2441 2426 2427 2428 2427 2428 + 2429 2430 2431 2432 2433 2441 2442 2443 2428 2429 + 2430 2441 2429 2430 2431 2432 2433 2434 2435 2436 + 2441 2442 2443 2444 2445 2430 2431 2432 2433 2441 + 2442 2443 2431 2432 2433 2434 2435 2436 2437 2441 + 2442 2443 2432 2433 2434 2435 2436 2441 2433 2434 + 2435 2436 2441 2434 2435 2436 2437 2438 2439 2440 + 2441 2435 2436 2437 2436 2437 2437 2438 2439 2440 + 2438 2439 2440 2439 2440 2440 0 2442 2443 2444 + 2445 2446 2447 2448 2443 2444 2445 2444 2445 2446 + 2447 2448 2449 2450 2445 2446 2447 2448 2446 2447 + 2448 2449 2450 2451 2452 2447 2448 2449 2450 2448 + 2449 2450 2449 2450 2451 2452 2453 2454 2464 2450 + 2451 2452 2451 2452 2453 2454 2455 2456 2460 2464 + 2465 2466 2452 2453 2454 2464 2453 2454 2455 2456 + 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 + 2467 2468 2454 2455 2456 2460 2464 2465 2466 2455 + 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 + 2466 2456 2457 2458 2459 2460 2461 2462 2463 2464 + 2457 2458 2459 2460 2461 2462 2463 2464 2458 2459 + 2460 2459 2460 2460 2461 2462 2463 2464 2462 2463 + 2463 0 2465 2466 2467 2468 2469 2470 2474 2466 + 2467 2468 2467 2468 2469 2470 2471 2472 2473 2474 + 2475 2476 2468 2469 2470 2474 2469 2470 2471 2472 + 2473 2474 2475 2476 2477 2478 2470 2471 2472 2473 + 2474 2475 2476 2471 2472 2473 2474 2475 2476 2472 + 2473 2474 2473 2474 2474 2475 2476 2477 2478 2479 + 2480 2496 2476 2477 2478 2477 2478 2479 2480 2481 + 2482 2483 2496 2497 2498 2478 2479 2480 2496 2479 + 2480 2481 2482 2483 2484 2485 2486 2496 2497 2498 + 2499 2500 2480 2481 2482 2483 2496 2497 2498 2481 + 2482 2483 2484 2485 2486 2487 2488 2489 2496 2497 + 2498 2482 2483 2484 2485 2486 2496 2483 2484 2485 + 2486 2496 2484 2485 2486 2487 2488 2489 2490 2491 + 2492 2496 2485 2486 2487 2488 2489 2486 2487 2488 + 2489 2487 2488 2489 2490 2491 2492 2493 2494 2495 + 2488 2489 2490 2491 2492 2489 2490 2491 2492 2490 + 2491 2492 2493 2494 2495 2491 2492 2493 2494 2495 + 2492 2493 2494 2495 2493 2494 2495 2494 2495 2495 + 0 2497 2498 2499 2500 2501 2502 2506 2498 2499 + 2500 2499 2500 2501 2502 2503 2504 2505 2506 2507 + 2508 2500 2501 2502 2506 2501 2502 2503 2504 2505 + 2506 2507 2508 2509 2510 2502 2503 2504 2505 2506 + 2507 2508 2503 2504 2505 2506 2507 2508 2504 2505 + 2506 2505 2506 2506 2507 2508 2509 2510 2511 2512 + 2517 2508 2509 2510 2509 2510 2511 2512 2513 2514 + 2515 2517 2518 2519 2510 2511 2512 2517 2511 2512 + 2513 2514 2515 2516 2517 2518 2519 2520 2521 2512 + 2513 2514 2515 2517 2518 2519 2513 2514 2515 2516 + 2517 2518 2519 2514 2515 2516 2517 2515 2516 2517 + 2516 2517 0 2518 2519 2520 2521 2522 2523 2536 + 2519 2520 2521 2520 2521 2522 2523 2524 2525 2526 + 2536 2537 2538 2521 2522 2523 2536 2522 2523 2524 + 2525 2526 2527 2528 2532 2536 2537 2538 2539 2540 + 2523 2524 2525 2526 2536 2537 2538 2524 2525 2526 + 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 + 2537 2538 2525 2526 2527 2528 2532 2536 2526 2527 + 2528 2532 2536 2527 2528 2529 2530 2531 2532 2533 + 2534 2535 2536 2528 2529 2530 2531 2532 2533 2534 + 2535 2529 2530 2531 2532 2533 2534 2535 2530 2531 + 2532 2531 2532 2532 2533 2534 2535 2534 2535 2535 + 0 2537 2538 2539 2540 2541 2542 2551 2538 2539 + 2540 2539 2540 2541 2542 2543 2544 2545 2551 2552 + 2553 2540 2541 2542 2551 2541 2542 2543 2544 2545 + 2546 2547 2548 2551 2552 2553 2554 2555 2542 2543 + 2544 2545 2551 2552 2553 2543 2544 2545 2546 2547 + 2548 2549 2550 2551 2552 2553 2544 2545 2546 2547 + 2548 2551 2545 2546 2547 2548 2551 2546 2547 2548 + 2549 2550 2551 2547 2548 2549 2550 2548 2549 2550 + 2549 2550 2550 0 2552 2553 2554 2555 2556 2557 + 2561 2553 2554 2555 2554 2555 2556 2557 2558 2559 + 2560 2561 2562 2563 2555 2556 2557 2561 2556 2557 + 2558 2559 2560 2561 2562 2563 2564 2565 2557 2558 + 2559 2560 2561 2562 2563 2558 2559 2560 2561 2562 + 2563 2559 2560 2561 2560 2561 2561 2562 2563 2564 + 2565 2566 2567 2575 2563 2564 2565 2564 2565 2566 + 2567 2568 2569 2573 2575 2576 2577 2565 2566 2567 + 2575 2566 2567 2568 2569 2570 2571 2572 2573 2574 + 2575 2576 2577 2578 2579 2567 2568 2569 2573 2575 + 2576 2577 2568 2569 2570 2571 2572 2573 2574 2575 + 2576 2577 2569 2570 2571 2572 2573 2574 2575 2570 + 2571 2572 2573 2574 2575 2571 2572 2573 2572 2573 + 2573 2574 2575 0 2576 2577 2578 2579 2580 2581 + 2591 2577 2578 2579 2578 2579 2580 2581 2582 2583 + 2587 2591 2592 2593 2579 2580 2581 2591 2580 2581 + 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 + 2592 2593 2594 2595 2581 2582 2583 2587 2591 2592 + 2593 2582 2583 2584 2585 2586 2587 2588 2589 2590 + 2591 2592 2593 2583 2584 2585 2586 2587 2588 2589 + 2590 2591 2584 2585 2586 2587 2588 2589 2590 2591 + 2585 2586 2587 2586 2587 2587 2588 2589 2590 2591 + 2589 2590 2590 0 2592 2593 2594 2595 2596 2597 + 2615 2593 2594 2595 2594 2595 2596 2597 2598 2599 + 2600 2615 2616 2617 2595 2596 2597 2615 2596 2597 + 2598 2599 2600 2601 2602 2603 2615 2616 2617 2618 + 2619 2597 2598 2599 2600 2615 2616 2617 2598 2599 + 2600 2601 2602 2603 2604 2605 2606 2615 2616 2617 + 2599 2600 2601 2602 2603 2615 2600 2601 2602 2603 + 2615 2601 2602 2603 2604 2605 2606 2607 2608 2615 + 2602 2603 2604 2605 2606 2603 2604 2605 2606 2604 + 2605 2606 2607 2608 2609 2612 2605 2606 2607 2608 + 2606 2607 2608 2607 2608 2609 2610 2611 2612 2613 + 2614 2608 2609 2612 2609 2610 2611 2612 2613 2614 + 2610 2611 2612 2613 2614 2611 2612 2612 2613 2614 + 2614 0 2616 2617 2618 2619 2620 2621 2636 2617 + 2618 2619 2618 2619 2620 2621 2622 2623 2624 2636 + 2637 2638 2619 2620 2621 2636 2620 2621 2622 2623 + 2624 2625 2634 2636 2637 2638 2639 2640 2621 2622 + 2623 2624 2636 2637 2638 2622 2623 2624 2625 2626 + 2627 2632 2634 2635 2636 2637 2638 2623 2624 2625 + 2634 2636 2624 2625 2634 2636 2625 2626 2627 2628 + 2629 2632 2633 2634 2635 2636 2626 2627 2628 2629 + 2630 2632 2634 2635 2627 2628 2629 2634 2628 2629 + 2630 2631 2632 2633 2634 2629 2630 2632 2630 2631 + 2632 2633 2634 2635 2631 2632 2633 2634 2632 2633 + 2634 2635 2634 2635 2635 0 2637 2638 2639 2640 + 2641 2642 2650 2638 2639 2640 2639 2640 2641 2642 + 2643 2644 2648 2650 2651 2652 2640 2641 2642 2650 + 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 + 2651 2652 2653 2654 2642 2643 2644 2648 2650 2651 + 2652 2643 2644 2645 2646 2647 2648 2649 2650 2651 + 2652 2644 2645 2646 2647 2648 2649 2650 2645 2646 + 2647 2648 2649 2650 2646 2647 2648 2647 2648 2648 + 2649 2650 0 2651 2652 2653 2654 2655 2656 2660 + 2652 2653 2654 2653 2654 2655 2656 2657 2658 2659 + 2660 2661 2662 2654 2655 2656 2660 2655 2656 2657 + 2658 2659 2660 2661 2662 2663 2664 2656 2657 2658 + 2659 2660 2661 2662 2657 2658 2659 2660 2661 2662 + 2658 2659 2660 2659 2660 2660 2661 2662 2663 2664 + 2665 2666 2679 2662 2663 2664 2663 2664 2665 2666 + 2667 2668 2669 2679 2680 2681 2664 2665 2666 2679 + 2665 2666 2667 2668 2669 2670 2671 2675 2679 2680 + 2681 2682 2683 2666 2667 2668 2669 2679 2680 2681 + 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 + 2677 2678 2679 2680 2681 2668 2669 2670 2671 2675 + 2679 2669 2670 2671 2675 2679 2670 2671 2672 2673 + 2674 2675 2676 2677 2678 2679 2671 2672 2673 2674 + 2675 2676 2677 2678 2672 2673 2674 2675 2676 2677 + 2678 2673 2674 2675 2674 2675 2675 2676 2677 2678 + 2677 2678 2678 0 2680 2681 2682 2683 2684 2685 + 2689 2681 2682 2683 2682 2683 2684 2685 2686 2687 + 2688 2689 2690 2691 2683 2684 2685 2689 2684 2685 + 2686 2687 2688 2689 2690 2691 2692 2693 2685 2686 + 2687 2688 2689 2690 2691 2686 2687 2688 2689 2690 + 2691 2687 2688 2689 2688 2689 2689 2690 2691 2692 + 2693 2694 2695 2708 2691 2692 2693 2692 2693 2694 + 2695 2696 2697 2698 2708 2709 2710 2693 2694 2695 + 2708 2694 2695 2696 2697 2698 2699 2700 2704 2708 + 2709 2710 2711 2712 2695 2696 2697 2698 2708 2709 + 2710 2696 2697 2698 2699 2700 2701 2702 2703 2704 + 2705 2706 2707 2708 2709 2710 2697 2698 2699 2700 + 2704 2708 2698 2699 2700 2704 2708 2699 2700 2701 + 2702 2703 2704 2705 2706 2707 2708 2700 2701 2702 + 2703 2704 2705 2706 2707 2701 2702 2703 2704 2705 + 2706 2707 2702 2703 2704 2703 2704 2704 2705 2706 + 2707 2706 2707 2707 0 2709 2710 2711 2712 2713 + 2714 2715 2710 2711 2712 2711 2712 2713 2714 2715 + 2716 2717 2712 2713 2714 2715 2713 2714 2715 2716 + 2717 2718 2719 2714 2715 2716 2717 2715 2716 2717 + 2716 2717 2718 2719 2720 2721 2730 2717 2718 2719 + 2718 2719 2720 2721 2722 2723 2724 2730 2731 2732 + 2719 2720 2721 2730 2720 2721 2722 2723 2724 2725 + 2726 2727 2730 2731 2732 2733 2734 2721 2722 2723 + 2724 2730 2731 2732 2722 2723 2724 2725 2726 2727 + 2728 2729 2730 2731 2732 2723 2724 2725 2726 2727 + 2730 2724 2725 2726 2727 2730 2725 2726 2727 2728 + 2729 2730 2726 2727 2728 2729 2727 2728 2729 2728 + 2729 2729 0 2731 2732 2733 2734 2735 2736 2742 + 2732 2733 2734 2733 2734 2735 2736 2737 2738 2739 + 2742 2743 2744 2734 2735 2736 2742 2735 2736 2737 + 2738 2739 2740 2741 2742 2743 2744 2745 2746 2736 + 2737 2738 2739 2742 2743 2744 2737 2738 2739 2740 + 2741 2742 2743 2744 2738 2739 2740 2741 2742 2739 + 2740 2741 2742 2740 2741 2742 2741 0 2743 2744 + 2745 2746 2747 2748 2749 2744 2745 2746 2745 2746 + 2747 2748 2749 2750 2751 2746 2747 2748 2749 2747 + 2748 2749 2750 2751 2752 2753 2748 2749 2750 2751 + 2749 2750 2751 2750 2751 2752 2753 2754 2755 2768 + 2751 2752 2753 2752 2753 2754 2755 2756 2757 2761 + 2768 2769 2770 2753 2754 2755 2768 2754 2755 2756 + 2757 2758 2759 2760 2761 2762 2763 2764 2768 2769 + 2770 2771 2772 2755 2756 2757 2761 2768 2769 2770 + 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 + 2766 2767 2768 2769 2770 2757 2758 2759 2760 2761 + 2762 2763 2764 2768 2758 2759 2760 2761 2762 2763 + 2764 2768 2759 2760 2761 2760 2761 2761 2762 2763 + 2764 2765 2766 2767 2768 2763 2764 2765 2766 2767 + 2764 2765 2766 2767 2765 2766 2767 2766 2767 2767 + 0 2769 2770 2771 2772 2773 2774 2790 2770 2771 + 2772 2771 2772 2773 2774 2775 2776 2777 2790 2791 + 2792 2772 2773 2774 2790 2773 2774 2775 2776 2777 + 2778 2779 2780 2790 2791 2792 2793 2794 2774 2775 + 2776 2777 2790 2791 2792 2775 2776 2777 2778 2779 + 2780 2781 2782 2783 2790 2791 2792 2776 2777 2778 + 2779 2780 2790 2777 2778 2779 2780 2790 2778 2779 + 2780 2781 2782 2783 2784 2785 2786 2790 2779 2780 + 2781 2782 2783 2780 2781 2782 2783 2781 2782 2783 + 2784 2785 2786 2787 2788 2789 2782 2783 2784 2785 + 2786 2783 2784 2785 2786 2784 2785 2786 2787 2788 + 2789 2785 2786 2787 2788 2789 2786 2787 2788 2789 + 2787 2788 2789 2788 2789 2789 0 2791 2792 2793 + 2794 2795 2796 2806 2792 2793 2794 2793 2794 2795 + 2796 2797 2798 2802 2806 2807 2808 2794 2795 2796 + 2806 2795 2796 2797 2798 2799 2800 2801 2802 2803 + 2804 2805 2806 2807 2808 2809 2810 2796 2797 2798 + 2802 2806 2807 2808 2797 2798 2799 2800 2801 2802 + 2803 2804 2805 2806 2807 2808 2798 2799 2800 2801 + 2802 2803 2804 2805 2806 2799 2800 2801 2802 2803 + 2804 2805 2806 2800 2801 2802 2801 2802 2802 2803 + 2804 2805 2806 2804 2805 2805 0 2807 2808 2809 + 2810 2811 2812 2820 2808 2809 2810 2809 2810 2811 + 2812 2813 2814 2815 2820 2821 2822 2810 2811 2812 + 2820 2811 2812 2813 2814 2815 2816 2817 2820 2821 + 2822 2823 2824 2812 2813 2814 2815 2820 2821 2822 + 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 + 2814 2815 2816 2817 2820 2815 2816 2817 2820 2816 + 2817 2818 2819 2820 2817 2818 2819 2818 2819 2819 + 0 2821 2822 2823 2824 2825 2826 2830 2822 2823 + 2824 2823 2824 2825 2826 2827 2828 2829 2830 2831 + 2832 2824 2825 2826 2830 2825 2826 2827 2828 2829 + 2830 2831 2832 2833 2834 2826 2827 2828 2829 2830 + 2831 2832 2827 2828 2829 2830 2831 2832 2828 2829 + 2830 2829 2830 2830 2831 2832 2833 2834 2835 2836 + 2846 2832 2833 2834 2833 2834 2835 2836 2837 2838 + 2842 2846 2847 2848 2834 2835 2836 2846 2835 2836 + 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 + 2847 2848 2849 2850 2836 2837 2838 2842 2846 2847 + 2848 2837 2838 2839 2840 2841 2842 2843 2844 2845 + 2846 2847 2848 2838 2839 2840 2841 2842 2843 2844 + 2845 2846 2839 2840 2841 2842 2843 2844 2845 2846 + 2840 2841 2842 2841 2842 2842 2843 2844 2845 2846 + 2844 2845 2845 0 2847 2848 2849 2850 2851 2852 + 2857 2848 2849 2850 2849 2850 2851 2852 2853 2854 + 2855 2857 2858 2859 2850 2851 2852 2857 2851 2852 + 2853 2854 2855 2856 2857 2858 2859 2860 2861 2852 + 2853 2854 2855 2857 2858 2859 2853 2854 2855 2856 + 2857 2858 2859 2854 2855 2856 2857 2855 2856 2857 + 2856 2857 0 2858 2859 2860 2861 2862 2863 2867 + 2859 2860 2861 2860 2861 2862 2863 2864 2865 2866 + 2867 2868 2869 2861 2862 2863 2867 2862 2863 2864 + 2865 2866 2867 2868 2869 2870 2871 2863 2864 2865 + 2866 2867 2868 2869 2864 2865 2866 2867 2868 2869 + 2865 2866 2867 2866 2867 2867 2868 2869 2870 2871 + 2872 2873 2874 2869 2870 2871 2870 2871 2872 2873 + 2874 2875 2876 2871 2872 2873 2874 2872 2873 2874 + 2875 2876 2877 2886 2873 2874 2875 2876 2874 2875 + 2876 2875 2876 2877 2878 2879 2880 2883 2886 2887 + 2888 2876 2877 2886 2877 2878 2879 2880 2881 2882 + 2883 2884 2885 2886 2887 2888 2889 2890 2878 2879 + 2880 2881 2882 2883 2884 2885 2886 2887 2888 2879 + 2880 2881 2882 2883 2886 2880 2881 2882 2883 2886 + 2881 2882 2883 2884 2885 2886 2887 2888 2882 2883 + 2884 2885 2886 2883 2884 2885 2886 2884 2885 2886 + 2887 2888 2889 2890 2885 2886 2887 2888 2886 2887 + 2888 2887 2888 2889 2890 2891 2892 2888 2889 2890 + 2889 2890 2891 2892 2893 2894 2907 2890 2891 2892 + 2891 2892 2893 2894 2895 2896 2900 2907 2908 2909 + 2892 2893 2894 2907 2893 2894 2895 2896 2897 2898 + 2899 2900 2901 2902 2903 2907 2908 2909 2910 2911 + 2894 2895 2896 2900 2907 2908 2909 2895 2896 2897 + 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 + 2908 2909 2896 2897 2898 2899 2900 2901 2902 2903 + 2907 2897 2898 2899 2900 2901 2902 2903 2907 2898 + 2899 2900 2899 2900 2900 2901 2902 2903 2904 2905 + 2906 2907 2902 2903 2904 2905 2906 2903 2904 2905 + 2906 2904 2905 2906 2905 2906 2906 0 2908 2909 + 2910 2911 2912 2913 2929 2909 2910 2911 2910 2911 + 2912 2913 2914 2915 2916 2929 2930 2931 2911 2912 + 2913 2929 2912 2913 2914 2915 2916 2917 2918 2919 + 2929 2930 2931 2932 2933 2913 2914 2915 2916 2929 + 2930 2931 2914 2915 2916 2917 2918 2919 2920 2921 + 2922 2929 2930 2931 2915 2916 2917 2918 2919 2929 + 2916 2917 2918 2919 2929 2917 2918 2919 2920 2921 + 2922 2923 2924 2925 2929 2918 2919 2920 2921 2922 + 2919 2920 2921 2922 2920 2921 2922 2923 2924 2925 + 2926 2927 2928 2921 2922 2923 2924 2925 2922 2923 + 2924 2925 2923 2924 2925 2926 2927 2928 2924 2925 + 2926 2927 2928 2925 2926 2927 2928 2926 2927 2928 + 2927 2928 2928 0 2930 2931 2932 2933 2934 2935 + 2943 2931 2932 2933 2932 2933 2934 2935 2936 2937 + 2941 2943 2944 2945 2933 2934 2935 2943 2934 2935 + 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 + 2946 2947 2935 2936 2937 2941 2943 2944 2945 2936 + 2937 2938 2939 2940 2941 2942 2943 2944 2945 2937 + 2938 2939 2940 2941 2942 2943 2938 2939 2940 2941 + 2942 2943 2939 2940 2941 2940 2941 2941 2942 2943 + 0 2944 2945 2946 2947 2948 2949 2962 2945 2946 + 2947 2946 2947 2948 2949 2950 2951 2952 2962 2963 + 2964 2947 2948 2949 2962 2948 2949 2950 2951 2952 + 2953 2954 2958 2962 2963 2964 2965 2966 2949 2950 + 2951 2952 2962 2963 2964 2950 2951 2952 2953 2954 + 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 + 2951 2952 2953 2954 2958 2962 2952 2953 2954 2958 + 2962 2953 2954 2955 2956 2957 2958 2959 2960 2961 + 2962 2954 2955 2956 2957 2958 2959 2960 2961 2955 + 2956 2957 2958 2959 2960 2961 2956 2957 2958 2957 + 2958 2958 2959 2960 2961 2960 2961 2961 0 2963 + 2964 2965 2966 2967 2968 2972 2964 2965 2966 2965 + 2966 2967 2968 2969 2970 2971 2972 2973 2974 2966 + 2967 2968 2972 2967 2968 2969 2970 2971 2972 2973 + 2974 2975 2976 2968 2969 2970 2971 2972 2973 2974 + 2969 2970 2971 2972 2973 2974 2970 2971 2972 2971 + 2972 2972 2973 2974 2975 2976 2977 2978 2982 2974 + 2975 2976 2975 2976 2977 2978 2979 2980 2981 2982 + 2983 2984 2976 2977 2978 2982 2977 2978 2979 2980 + 2981 2982 2983 2984 2985 2986 2978 2979 2980 2981 + 2982 2983 2984 2979 2980 2981 2982 2983 2984 2980 + 2981 2982 2981 2982 2982 2983 2984 2985 2986 2987 + 2988 2993 2984 2985 2986 2985 2986 2987 2988 2989 + 2990 2991 2993 2994 2995 2986 2987 2988 2993 2987 + 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 + 2988 2989 2990 2991 2993 2994 2995 2989 2990 2991 + 2992 2993 2994 2995 2990 2991 2992 2993 2991 2992 + 2993 2992 2993 0 2994 2995 2996 2997 2998 2999 + 3000 2995 2996 2997 2996 2997 2998 2999 3000 3001 + 3002 2997 2998 2999 3000 2998 2999 3000 3001 3002 + 3003 3004 2999 3000 3001 3002 3000 3001 3002 3001 + 3002 3003 3004 3005 3006 3019 3002 3003 3004 3003 + 3004 3005 3006 3007 3008 3012 3019 3020 3021 3004 + 3005 3006 3019 3005 3006 3007 3008 3009 3010 3011 + 3012 3013 3014 3015 3019 3020 3021 3022 3023 3006 + 3007 3008 3012 3019 3020 3021 3007 3008 3009 3010 + 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 + 3021 3008 3009 3010 3011 3012 3013 3014 3015 3019 + 3009 3010 3011 3012 3013 3014 3015 3019 3010 3011 + 3012 3011 3012 3012 3013 3014 3015 3016 3017 3018 + 3019 3014 3015 3016 3017 3018 3015 3016 3017 3018 + 3016 3017 3018 3017 3018 3018 0 3020 3021 3022 + 3023 3024 3025 3030 3021 3022 3023 3022 3023 3024 + 3025 3026 3027 3028 3030 3031 3032 3023 3024 3025 + 3030 3024 3025 3026 3027 3028 3029 3030 3031 3032 + 3033 3034 3025 3026 3027 3028 3030 3031 3032 3026 + 3027 3028 3029 3030 3031 3032 3027 3028 3029 3030 + 3028 3029 3030 3029 3030 0 3031 3032 3033 3034 + 3035 3036 3044 3032 3033 3034 3033 3034 3035 3036 + 3037 3038 3039 3044 3045 3046 3034 3035 3036 3044 + 3035 3036 3037 3038 3039 3040 3041 3044 3045 3046 + 3047 3048 3036 3037 3038 3039 3044 3045 3046 3037 + 3038 3039 3040 3041 3042 3043 3044 3045 3046 3038 + 3039 3040 3041 3044 3039 3040 3041 3044 3040 3041 + 3042 3043 3044 3041 3042 3043 3042 3043 3043 0 + 3045 3046 3047 3048 3049 3050 3064 3046 3047 3048 + 3047 3048 3049 3050 3051 3052 3053 3064 3065 3066 + 3048 3049 3050 3064 3049 3050 3051 3052 3053 3054 + 3062 3064 3065 3066 3067 3068 3050 3051 3052 3053 + 3064 3065 3066 3051 3052 3053 3054 3055 3056 3060 + 3062 3063 3064 3065 3066 3052 3053 3054 3062 3064 + 3053 3054 3062 3064 3054 3055 3056 3057 3058 3060 + 3061 3062 3063 3064 3055 3056 3057 3058 3059 3060 + 3062 3063 3056 3057 3058 3062 3057 3058 3059 3060 + 3061 3062 3058 3059 3060 3059 3060 3061 3062 3063 + 3060 3061 3062 3061 3062 3063 3062 3063 3063 0 + 3065 3066 3067 3068 3069 3070 3086 3066 3067 3068 + 3067 3068 3069 3070 3071 3072 3073 3086 3087 3088 + 3068 3069 3070 3086 3069 3070 3071 3072 3073 3074 + 3075 3076 3086 3087 3088 3089 3090 3070 3071 3072 + 3073 3086 3087 3088 3071 3072 3073 3074 3075 3076 + 3077 3078 3079 3086 3087 3088 3072 3073 3074 3075 + 3076 3086 3073 3074 3075 3076 3086 3074 3075 3076 + 3077 3078 3079 3080 3081 3082 3086 3075 3076 3077 + 3078 3079 3076 3077 3078 3079 3077 3078 3079 3080 + 3081 3082 3083 3084 3085 3078 3079 3080 3081 3082 + 3079 3080 3081 3082 3080 3081 3082 3083 3084 3085 + 3081 3082 3083 3084 3085 3082 3083 3084 3085 3083 + 3084 3085 3084 3085 3085 0 3087 3088 3089 3090 + 3091 3092 3108 3088 3089 3090 3089 3090 3091 3092 + 3093 3094 3095 3108 3109 3110 3090 3091 3092 3108 + 3091 3092 3093 3094 3095 3096 3097 3098 3108 3109 + 3110 3111 3112 3092 3093 3094 3095 3108 3109 3110 + 3093 3094 3095 3096 3097 3098 3099 3100 3101 3108 + 3109 3110 3094 3095 3096 3097 3098 3108 3095 3096 + 3097 3098 3108 3096 3097 3098 3099 3100 3101 3102 + 3103 3104 3108 3097 3098 3099 3100 3101 3098 3099 + 3100 3101 3099 3100 3101 3102 3103 3104 3105 3106 + 3107 3100 3101 3102 3103 3104 3101 3102 3103 3104 + 3102 3103 3104 3105 3106 3107 3103 3104 3105 3106 + 3107 3104 3105 3106 3107 3105 3106 3107 3106 3107 + 3107 0 3109 3110 3111 3112 3113 3114 3125 3110 + 3111 3112 3111 3112 3113 3114 3115 3116 3117 3125 + 3126 3127 3112 3113 3114 3125 3113 3114 3115 3116 + 3117 3118 3119 3120 3125 3126 3127 3128 3129 3114 + 3115 3116 3117 3125 3126 3127 3115 3116 3117 3118 + 3119 3120 3121 3125 3126 3127 3116 3117 3118 3119 + 3120 3125 3117 3118 3119 3120 3125 3118 3119 3120 + 3121 3122 3123 3124 3125 3119 3120 3121 3120 3121 + 3121 3122 3123 3124 3122 3123 3124 3123 3124 3124 + 0 3126 3127 3128 3129 3130 3131 3144 3127 3128 + 3129 3128 3129 3130 3131 3132 3133 3134 3144 3145 + 3146 3129 3130 3131 3144 3130 3131 3132 3133 3134 + 3135 3136 3140 3144 3145 3146 3147 3148 3131 3132 + 3133 3134 3144 3145 3146 3132 3133 3134 3135 3136 + 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 + 3133 3134 3135 3136 3140 3144 3134 3135 3136 3140 + 3144 3135 3136 3137 3138 3139 3140 3141 3142 3143 + 3144 3136 3137 3138 3139 3140 3141 3142 3143 3137 + 3138 3139 3140 3141 3142 3143 3138 3139 3140 3139 + 3140 3140 3141 3142 3143 3142 3143 3143 0 3145 + 3146 3147 3148 3149 3150 3156 3146 3147 3148 3147 + 3148 3149 3150 3151 3152 3153 3156 3157 3158 3148 + 3149 3150 3156 3149 3150 3151 3152 3153 3154 3155 + 3156 3157 3158 3159 3160 3150 3151 3152 3153 3156 + 3157 3158 3151 3152 3153 3154 3155 3156 3157 3158 + 3152 3153 3154 3155 3156 3153 3154 3155 3156 3154 + 3155 3156 3155 0 3157 3158 3159 3160 3161 3162 + 3177 3158 3159 3160 3159 3160 3161 3162 3163 3164 + 3165 3177 3178 3179 3160 3161 3162 3177 3161 3162 + 3163 3164 3165 3166 3175 3177 3178 3179 3180 3181 + 3162 3163 3164 3165 3177 3178 3179 3163 3164 3165 + 3166 3167 3168 3173 3175 3176 3177 3178 3179 3164 + 3165 3166 3175 3177 3165 3166 3175 3177 3166 3167 + 3168 3169 3170 3173 3174 3175 3176 3177 3167 3168 + 3169 3170 3171 3173 3175 3176 3168 3169 3170 3175 + 3169 3170 3171 3172 3173 3174 3175 3170 3171 3173 + 3171 3172 3173 3174 3175 3176 3172 3173 3174 3175 + 3173 3174 3175 3176 3175 3176 3176 0 3178 3179 + 3180 3181 3182 3183 3191 3179 3180 3181 3180 3181 + 3182 3183 3184 3185 3186 3191 3192 3193 3181 3182 + 3183 3191 3182 3183 3184 3185 3186 3187 3188 3191 + 3192 3193 3194 3195 3183 3184 3185 3186 3191 3192 + 3193 3184 3185 3186 3187 3188 3189 3190 3191 3192 + 3193 3185 3186 3187 3188 3191 3186 3187 3188 3191 + 3187 3188 3189 3190 3191 3188 3189 3190 3189 3190 + 3190 0 3192 3193 3194 3195 3196 3197 3201 3193 + 3194 3195 3194 3195 3196 3197 3198 3199 3200 3201 + 3202 3203 3195 3196 3197 3201 3196 3197 3198 3199 + 3200 3201 3202 3203 3204 3205 3197 3198 3199 3200 + 3201 3202 3203 3198 3199 3200 3201 3202 3203 3199 + 3200 3201 3200 3201 3201 3202 3203 3204 3205 3206 + 3207 3218 3203 3204 3205 3204 3205 3206 3207 3208 + 3209 3210 3218 3219 3220 3205 3206 3207 3218 3206 + 3207 3208 3209 3210 3211 3212 3213 3218 3219 3220 + 3221 3222 3207 3208 3209 3210 3218 3219 3220 3208 + 3209 3210 3211 3212 3213 3214 3218 3219 3220 3209 + 3210 3211 3212 3213 3218 3210 3211 3212 3213 3218 + 3211 3212 3213 3214 3215 3216 3217 3218 3212 3213 + 3214 3213 3214 3214 3215 3216 3217 3215 3216 3217 + 3216 3217 3217 0 3219 3220 3221 3222 3223 3224 + 3234 3220 3221 3222 3221 3222 3223 3224 3225 3226 + 3230 3234 3235 3236 3222 3223 3224 3234 3223 3224 + 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 + 3235 3236 3237 3238 3224 3225 3226 3230 3234 3235 + 3236 3225 3226 3227 3228 3229 3230 3231 3232 3233 + 3234 3235 3236 3226 3227 3228 3229 3230 3231 3232 + 3233 3234 3227 3228 3229 3230 3231 3232 3233 3234 + 3228 3229 3230 3229 3230 3230 3231 3232 3233 3234 + 3232 3233 3233 0 3235 3236 3237 3238 3239 3240 + 3245 3236 3237 3238 3237 3238 3239 3240 3241 3242 + 3243 3245 3246 3247 3238 3239 3240 3245 3239 3240 + 3241 3242 3243 3244 3245 3246 3247 3248 3257 3240 + 3241 3242 3243 3245 3246 3247 3241 3242 3243 3244 + 3245 3246 3247 3242 3243 3244 3245 3243 3244 3245 + 3244 3245 0 3246 3247 3248 3249 3250 3251 3254 + 3257 3258 3259 3247 3248 3257 3248 3249 3250 3251 + 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 + 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 + 3259 3250 3251 3252 3253 3254 3257 3251 3252 3253 + 3254 3257 3252 3253 3254 3255 3256 3257 3258 3259 + 3253 3254 3255 3256 3257 3254 3255 3256 3257 3255 + 3256 3257 3258 3259 3260 3261 3256 3257 3258 3259 + 3257 3258 3259 3258 3259 3260 3261 3262 3263 3259 + 3260 3261 3260 3261 3262 3263 3264 3265 3278 3261 + 3262 3263 3262 3263 3264 3265 3266 3267 3268 3278 + 3279 3280 3263 3264 3265 3278 3264 3265 3266 3267 + 3268 3269 3270 3274 3278 3279 3280 3281 3282 3265 + 3266 3267 3268 3278 3279 3280 3266 3267 3268 3269 + 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 + 3280 3267 3268 3269 3270 3274 3278 3268 3269 3270 + 3274 3278 3269 3270 3271 3272 3273 3274 3275 3276 + 3277 3278 3270 3271 3272 3273 3274 3275 3276 3277 + 3271 3272 3273 3274 3275 3276 3277 3272 3273 3274 + 3273 3274 3274 3275 3276 3277 3276 3277 3277 0 + 3279 3280 3281 3282 3283 3284 3300 3280 3281 3282 + 3281 3282 3283 3284 3285 3286 3287 3300 3301 3302 + 3282 3283 3284 3300 3283 3284 3285 3286 3287 3288 + 3289 3290 3300 3301 3302 3303 3304 3284 3285 3286 + 3287 3300 3301 3302 3285 3286 3287 3288 3289 3290 + 3291 3292 3293 3300 3301 3302 3286 3287 3288 3289 + 3290 3300 3287 3288 3289 3290 3300 3288 3289 3290 + 3291 3292 3293 3294 3295 3296 3300 3289 3290 3291 + 3292 3293 3290 3291 3292 3293 3291 3292 3293 3294 + 3295 3296 3297 3298 3299 3292 3293 3294 3295 3296 + 3293 3294 3295 3296 3294 3295 3296 3297 3298 3299 + 3295 3296 3297 3298 3299 3296 3297 3298 3299 3297 + 3298 3299 3298 3299 3299 0 3301 3302 3303 3304 + 3305 3306 3322 3302 3303 3304 3303 3304 3305 3306 + 3307 3308 3309 3322 3323 3324 3304 3305 3306 3322 + 3305 3306 3307 3308 3309 3310 3311 3312 3322 3323 + 3324 3325 3326 3306 3307 3308 3309 3322 3323 3324 + 3307 3308 3309 3310 3311 3312 3313 3314 3315 3322 + 3323 3324 3308 3309 3310 3311 3312 3322 3309 3310 + 3311 3312 3322 3310 3311 3312 3313 3314 3315 3316 + 3317 3318 3322 3311 3312 3313 3314 3315 3312 3313 + 3314 3315 3313 3314 3315 3316 3317 3318 3319 3320 + 3321 3314 3315 3316 3317 3318 3315 3316 3317 3318 + 3316 3317 3318 3319 3320 3321 3317 3318 3319 3320 + 3321 3318 3319 3320 3321 3319 3320 3321 3320 3321 + 3321 0 3323 3324 3325 3326 3327 3328 3336 3324 + 3325 3326 3325 3326 3327 3328 3329 3330 3331 3336 + 3337 3338 3326 3327 3328 3336 3327 3328 3329 3330 + 3331 3332 3333 3336 3337 3338 3339 3340 3328 3329 + 3330 3331 3336 3337 3338 3329 3330 3331 3332 3333 + 3334 3335 3336 3337 3338 3330 3331 3332 3333 3336 + 3331 3332 3333 3336 3332 3333 3334 3335 3336 3333 + 3334 3335 3334 3335 3335 0 3337 3338 3339 3340 + 3341 3342 3352 3338 3339 3340 3339 3340 3341 3342 + 3343 3344 3348 3352 3353 3354 3340 3341 3342 3352 + 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 + 3351 3352 3353 3354 3355 3356 3342 3343 3344 3348 + 3352 3353 3354 3343 3344 3345 3346 3347 3348 3349 + 3350 3351 3352 3353 3354 3344 3345 3346 3347 3348 + 3349 3350 3351 3352 3345 3346 3347 3348 3349 3350 + 3351 3352 3346 3347 3348 3347 3348 3348 3349 3350 + 3351 3352 3350 3351 3351 0 3353 3354 3355 3356 + 3357 3358 3364 3354 3355 3356 3355 3356 3357 3358 + 3359 3360 3361 3364 3365 3366 3356 3357 3358 3364 + 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 + 3367 3368 3358 3359 3360 3361 3364 3365 3366 3359 + 3360 3361 3362 3363 3364 3365 3366 3360 3361 3362 + 3363 3364 3361 3362 3363 3364 3362 3363 3364 3363 + 0 3365 3366 3367 3368 3369 3370 3383 3366 3367 + 3368 3367 3368 3369 3370 3371 3372 3376 3383 3384 + 3385 3368 3369 3370 3383 3369 3370 3371 3372 3373 + 3374 3375 3376 3377 3378 3379 3383 3384 3385 3386 + 3387 3370 3371 3372 3376 3383 3384 3385 3371 3372 + 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 + 3383 3384 3385 3372 3373 3374 3375 3376 3377 3378 + 3379 3383 3373 3374 3375 3376 3377 3378 3379 3383 + 3374 3375 3376 3375 3376 3376 3377 3378 3379 3380 + 3381 3382 3383 3378 3379 3380 3381 3382 3379 3380 + 3381 3382 3380 3381 3382 3381 3382 3382 0 3384 + 3385 3386 3387 3388 3389 3400 3385 3386 3387 3386 + 3387 3388 3389 3390 3391 3392 3400 3401 3402 3387 + 3388 3389 3400 3388 3389 3390 3391 3392 3393 3394 + 3395 3400 3401 3402 3403 3404 3389 3390 3391 3392 + 3400 3401 3402 3390 3391 3392 3393 3394 3395 3396 + 3400 3401 3402 3391 3392 3393 3394 3395 3400 3392 + 3393 3394 3395 3400 3393 3394 3395 3396 3397 3398 + 3399 3400 3394 3395 3396 3395 3396 3396 3397 3398 + 3399 3397 3398 3399 3398 3399 3399 0 3401 3402 + 3403 3404 3405 3406 3415 3402 3403 3404 3403 3404 + 3405 3406 3407 3408 3409 3415 3416 3417 3404 3405 + 3406 3415 3405 3406 3407 3408 3409 3410 3411 3412 + 3415 3416 3417 3418 3419 3406 3407 3408 3409 3415 + 3416 3417 3407 3408 3409 3410 3411 3412 3413 3414 + 3415 3416 3417 3408 3409 3410 3411 3412 3415 3409 + 3410 3411 3412 3415 3410 3411 3412 3413 3414 3415 + 3411 3412 3413 3414 3412 3413 3414 3413 3414 3414 + 0 3416 3417 3418 3419 3420 3421 3431 3417 3418 + 3419 3418 3419 3420 3421 3422 3423 3427 3431 3432 + 3433 3419 3420 3421 3431 3420 3421 3422 3423 3424 + 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 + 3435 3421 3422 3423 3427 3431 3432 3433 3422 3423 + 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 + 3423 3424 3425 3426 3427 3428 3429 3430 3431 3424 + 3425 3426 3427 3428 3429 3430 3431 3425 3426 3427 + 3426 3427 3427 3428 3429 3430 3431 3429 3430 3430 + 0 3432 3433 3434 3435 3436 3437 3438 3433 3434 + 3435 3434 3435 3436 3437 3438 3439 3440 3435 3436 + 3437 3438 3436 3437 3438 3439 3440 3441 3442 3437 + 3438 3439 3440 3438 3439 3440 3439 3440 3441 3442 + 3443 3444 3452 3440 3441 3442 3441 3442 3443 3444 + 3445 3446 3447 3452 3453 3454 3442 3443 3444 3452 + 3443 3444 3445 3446 3447 3448 3449 3452 3453 3454 + 3455 3456 3444 3445 3446 3447 3452 3453 3454 3445 + 3446 3447 3448 3449 3450 3451 3452 3453 3454 3446 + 3447 3448 3449 3452 3447 3448 3449 3452 3448 3449 + 3450 3451 3452 3449 3450 3451 3450 3451 3451 0 + 3453 3454 3455 3456 3457 3458 3466 3454 3455 3456 + 3455 3456 3457 3458 3459 3460 3464 3466 3467 3468 + 3456 3457 3458 3466 3457 3458 3459 3460 3461 3462 + 3463 3464 3465 3466 3467 3468 3469 3470 3458 3459 + 3460 3464 3466 3467 3468 3459 3460 3461 3462 3463 + 3464 3465 3466 3467 3468 3460 3461 3462 3463 3464 + 3465 3466 3461 3462 3463 3464 3465 3466 3462 3463 + 3464 3463 3464 3464 3465 3466 0 3467 3468 3469 + 3470 3471 3472 3482 3468 3469 3470 3469 3470 3471 + 3472 3473 3474 3478 3482 3483 3484 3470 3471 3472 + 3482 3471 3472 3473 3474 3475 3476 3477 3478 3479 + 3480 3481 3482 3483 3484 3485 3486 3472 3473 3474 + 3478 3482 3483 3484 3473 3474 3475 3476 3477 3478 + 3479 3480 3481 3482 3483 3484 3474 3475 3476 3477 + 3478 3479 3480 3481 3482 3475 3476 3477 3478 3479 + 3480 3481 3482 3476 3477 3478 3477 3478 3478 3479 + 3480 3481 3482 3480 3481 3481 0 3483 3484 3485 + 3486 3487 3488 3492 3484 3485 3486 3485 3486 3487 + 3488 3489 3490 3491 3492 3493 3494 3486 3487 3488 + 3492 3487 3488 3489 3490 3491 3492 3493 3494 3495 + 3496 3488 3489 3490 3491 3492 3493 3494 3489 3490 + 3491 3492 3493 3494 3490 3491 3492 3491 3492 3492 + 3493 3494 3495 3496 3497 3498 3512 3494 3495 3496 + 3495 3496 3497 3498 3499 3500 3501 3512 3513 3514 + 3496 3497 3498 3512 3497 3498 3499 3500 3501 3502 + 3510 3512 3513 3514 3515 3516 3498 3499 3500 3501 + 3512 3513 3514 3499 3500 3501 3502 3503 3504 3508 + 3510 3511 3512 3513 3514 3500 3501 3502 3510 3512 + 3501 3502 3510 3512 3502 3503 3504 3505 3506 3508 + 3509 3510 3511 3512 3503 3504 3505 3506 3507 3508 + 3510 3511 3504 3505 3506 3510 3505 3506 3507 3508 + 3509 3510 3506 3507 3508 3507 3508 3509 3510 3511 + 3508 3509 3510 3509 3510 3511 3510 3511 3511 0 + 3513 3514 3515 3516 3517 3518 3531 3514 3515 3516 + 3515 3516 3517 3518 3519 3520 3521 3531 3532 3533 + 3516 3517 3518 3531 3517 3518 3519 3520 3521 3522 + 3523 3527 3531 3532 3533 3534 3535 3518 3519 3520 + 3521 3531 3532 3533 3519 3520 3521 3522 3523 3524 + 3525 3526 3527 3528 3529 3530 3531 3532 3533 3520 + 3521 3522 3523 3527 3531 3521 3522 3523 3527 3531 + 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 + 3523 3524 3525 3526 3527 3528 3529 3530 3524 3525 + 3526 3527 3528 3529 3530 3525 3526 3527 3526 3527 + 3527 3528 3529 3530 3529 3530 3530 0 3532 3533 + 3534 3535 3536 3537 3542 3533 3534 3535 3534 3535 + 3536 3537 3538 3539 3540 3542 3543 3544 3535 3536 + 3537 3542 3536 3537 3538 3539 3540 3541 3542 3543 + 3544 3545 3546 3537 3538 3539 3540 3542 3543 3544 + 3538 3539 3540 3541 3542 3543 3544 3539 3540 3541 + 3542 3540 3541 3542 3541 3542 0 3543 3544 3545 + 3546 3547 3548 3553 3544 3545 3546 3545 3546 3547 + 3548 3549 3550 3551 3553 3554 3555 3546 3547 3548 + 3553 3547 3548 3549 3550 3551 3552 3553 3554 3555 + 3556 3557 3548 3549 3550 3551 3553 3554 3555 3549 + 3550 3551 3552 3553 3554 3555 3550 3551 3552 3553 + 3551 3552 3553 3552 3553 0 3554 3555 3556 3557 + 3558 3559 3565 3555 3556 3557 3556 3557 3558 3559 + 3560 3561 3562 3565 3566 3567 3557 3558 3559 3565 + 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 + 3568 3569 3559 3560 3561 3562 3565 3566 3567 3560 + 3561 3562 3563 3564 3565 3566 3567 3561 3562 3563 + 3564 3565 3562 3563 3564 3565 3563 3564 3565 3564 + 0 3566 3567 3568 3569 3570 3571 3582 3567 3568 + 3569 3568 3569 3570 3571 3572 3573 3574 3582 3583 + 3584 3569 3570 3571 3582 3570 3571 3572 3573 3574 + 3575 3576 3577 3582 3583 3584 3585 3586 3571 3572 + 3573 3574 3582 3583 3584 3572 3573 3574 3575 3576 + 3577 3578 3582 3583 3584 3573 3574 3575 3576 3577 + 3582 3574 3575 3576 3577 3582 3575 3576 3577 3578 + 3579 3580 3581 3582 3576 3577 3578 3577 3578 3578 + 3579 3580 3581 3579 3580 3581 3580 3581 3581 0 + 3583 3584 3585 3586 3587 3588 3592 3584 3585 3586 + 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 + 3586 3587 3588 3592 3587 3588 3589 3590 3591 3592 + 3593 3594 3595 3596 3588 3589 3590 3591 3592 3593 + 3594 3589 3590 3591 3592 3593 3594 3590 3591 3592 + 3591 3592 3592 3593 3594 3595 3596 3597 3598 3606 + 3594 3595 3596 3595 3596 3597 3598 3599 3600 3604 + 3606 3607 3608 3596 3597 3598 3606 3597 3598 3599 + 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 + 3610 3598 3599 3600 3604 3606 3607 3608 3599 3600 + 3601 3602 3603 3604 3605 3606 3607 3608 3600 3601 + 3602 3603 3604 3605 3606 3601 3602 3603 3604 3605 + 3606 3602 3603 3604 3603 3604 3604 3605 3606 0 + 3607 3608 3609 3610 3611 3612 3613 3608 3609 3610 + 3609 3610 3611 3612 3613 3614 3615 3610 3611 3612 + 3613 3611 3612 3613 3614 3615 3616 3617 3612 3613 + 3614 3615 3613 3614 3615 3614 3615 3616 3617 3618 + 3619 3632 3615 3616 3617 3616 3617 3618 3619 3620 + 3621 3625 3632 3633 3634 3617 3618 3619 3632 3618 + 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 + 3632 3633 3634 3635 3636 3619 3620 3621 3625 3632 + 3633 3634 3620 3621 3622 3623 3624 3625 3626 3627 + 3628 3629 3630 3631 3632 3633 3634 3621 3622 3623 + 3624 3625 3626 3627 3628 3632 3622 3623 3624 3625 + 3626 3627 3628 3632 3623 3624 3625 3624 3625 3625 + 3626 3627 3628 3629 3630 3631 3632 3627 3628 3629 + 3630 3631 3628 3629 3630 3631 3629 3630 3631 3630 + 3631 3631 0 3633 3634 3635 3636 3637 3638 3646 + 3634 3635 3636 3635 3636 3637 3638 3639 3640 3644 + 3646 3647 3648 3636 3637 3638 3646 3637 3638 3639 + 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 + 3650 3638 3639 3640 3644 3646 3647 3648 3639 3640 + 3641 3642 3643 3644 3645 3646 3647 3648 3640 3641 + 3642 3643 3644 3645 3646 3641 3642 3643 3644 3645 + 3646 3642 3643 3644 3643 3644 3644 3645 3646 0 + 3647 3648 3649 3650 3651 3652 3653 3648 3649 3650 + 3649 3650 3651 3652 3653 3654 3655 3650 3651 3652 + 3653 3651 3652 3653 3654 3655 3656 3657 3652 3653 + 3654 3655 3653 3654 3655 3654 3655 3656 3657 3658 + 3659 3668 3655 3656 3657 3656 3657 3658 3659 3660 + 3661 3662 3668 3669 3670 3657 3658 3659 3668 3658 + 3659 3660 3661 3662 3663 3664 3665 3668 3669 3670 + 3671 3672 3659 3660 3661 3662 3668 3669 3670 3660 + 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 + 3661 3662 3663 3664 3665 3668 3662 3663 3664 3665 + 3668 3663 3664 3665 3666 3667 3668 3664 3665 3666 + 3667 3665 3666 3667 3666 3667 3667 0 3669 3670 + 3671 3672 3673 3674 3684 3670 3671 3672 3671 3672 + 3673 3674 3675 3676 3680 3684 3685 3686 3672 3673 + 3674 3684 3673 3674 3675 3676 3677 3678 3679 3680 + 3681 3682 3683 3684 3685 3686 3687 3688 3674 3675 + 3676 3680 3684 3685 3686 3675 3676 3677 3678 3679 + 3680 3681 3682 3683 3684 3685 3686 3676 3677 3678 + 3679 3680 3681 3682 3683 3684 3677 3678 3679 3680 + 3681 3682 3683 3684 3678 3679 3680 3679 3680 3680 + 3681 3682 3683 3684 3682 3683 3683 0 3685 3686 + 3687 3688 3689 3690 3700 3686 3687 3688 3687 3688 + 3689 3690 3691 3692 3696 3700 3701 3702 3688 3689 + 3690 3700 3689 3690 3691 3692 3693 3694 3695 3696 + 3697 3698 3699 3700 3701 3702 3703 3704 3690 3691 + 3692 3696 3700 3701 3702 3691 3692 3693 3694 3695 + 3696 3697 3698 3699 3700 3701 3702 3692 3693 3694 + 3695 3696 3697 3698 3699 3700 3693 3694 3695 3696 + 3697 3698 3699 3700 3694 3695 3696 3695 3696 3696 + 3697 3698 3699 3700 3698 3699 3699 0 3701 3702 + 3703 3704 3705 3706 3717 3702 3703 3704 3703 3704 + 3705 3706 3707 3708 3709 3717 3718 3719 3704 3705 + 3706 3717 3705 3706 3707 3708 3709 3710 3715 3717 + 3718 3719 3720 3721 3706 3707 3708 3709 3717 3718 + 3719 3707 3708 3709 3710 3711 3713 3715 3716 3717 + 3718 3719 3708 3709 3710 3715 3717 3709 3710 3715 + 3717 3710 3711 3712 3713 3714 3715 3716 3717 3711 + 3712 3713 3714 3715 3716 3712 3713 3714 3715 3716 + 3713 3714 3715 3714 3715 3716 3715 3716 3716 0 + 3718 3719 3720 3721 3722 3723 3733 3719 3720 3721 + 3720 3721 3722 3723 3724 3725 3729 3733 3734 3735 + 3721 3722 3723 3733 3722 3723 3724 3725 3726 3727 + 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 + 3723 3724 3725 3729 3733 3734 3735 3724 3725 3726 + 3727 3728 3729 3730 3731 3732 3733 3734 3735 3725 + 3726 3727 3728 3729 3730 3731 3732 3733 3726 3727 + 3728 3729 3730 3731 3732 3733 3727 3728 3729 3728 + 3729 3729 3730 3731 3732 3733 3731 3732 3732 0 + 3734 3735 3736 3737 3738 3739 3745 3735 3736 3737 + 3736 3737 3738 3739 3740 3741 3742 3745 3746 3747 + 3737 3738 3739 3745 3738 3739 3740 3741 3742 3743 + 3744 3745 3746 3747 3748 3749 3739 3740 3741 3742 + 3745 3746 3747 3740 3741 3742 3743 3744 3745 3746 + 3747 3741 3742 3743 3744 3745 3742 3743 3744 3745 + 3743 3744 3745 3744 0 3746 3747 3748 3749 3750 + 3751 3755 3747 3748 3749 3748 3749 3750 3751 3752 + 3753 3754 3755 3756 3757 3749 3750 3751 3755 3750 + 3751 3752 3753 3754 3755 3756 3757 3758 3759 3751 + 3752 3753 3754 3755 3756 3757 3752 3753 3754 3755 + 3756 3757 3753 3754 3755 3754 3755 3755 3756 3757 + 3758 3759 3760 3761 3762 3757 3758 3759 3758 3759 + 3760 3761 3762 3763 3764 3759 3760 3761 3762 3760 + 3761 3762 3763 3764 3765 3766 3761 3762 3763 3764 + 3762 3763 3764 3763 3764 3765 3766 3767 3768 3783 + 3764 3765 3766 3765 3766 3767 3768 3769 3770 3771 + 3783 3784 3785 3766 3767 3768 3783 3767 3768 3769 + 3770 3771 3772 3781 3783 3784 3785 3786 3787 3768 + 3769 3770 3771 3783 3784 3785 3769 3770 3771 3772 + 3773 3774 3779 3781 3782 3783 3784 3785 3770 3771 + 3772 3781 3783 3771 3772 3781 3783 3772 3773 3774 + 3775 3776 3779 3780 3781 3782 3783 3773 3774 3775 + 3776 3777 3779 3781 3782 3774 3775 3776 3781 3775 + 3776 3777 3778 3779 3780 3781 3776 3777 3779 3777 + 3778 3779 3780 3781 3782 3778 3779 3780 3781 3779 + 3780 3781 3782 3781 3782 3782 0 3784 3785 3786 + 3787 3788 3789 3800 3785 3786 3787 3786 3787 3788 + 3789 3790 3791 3792 3800 3801 3802 3787 3788 3789 + 3800 3788 3789 3790 3791 3792 3793 3798 3800 3801 + 3802 3803 3804 3789 3790 3791 3792 3800 3801 3802 + 3790 3791 3792 3793 3794 3796 3798 3799 3800 3801 + 3802 3791 3792 3793 3798 3800 3792 3793 3798 3800 + 3793 3794 3795 3796 3797 3798 3799 3800 3794 3795 + 3796 3797 3798 3799 3795 3796 3797 3798 3799 3796 + 3797 3798 3797 3798 3799 3798 3799 3799 0 3801 + 3802 3803 3804 3805 3806 3811 3802 3803 3804 3803 + 3804 3805 3806 3807 3808 3809 3811 3812 3813 3804 + 3805 3806 3811 3805 3806 3807 3808 3809 3810 3811 + 3812 3813 3814 3815 3806 3807 3808 3809 3811 3812 + 3813 3807 3808 3809 3810 3811 3812 3813 3808 3809 + 3810 3811 3809 3810 3811 3810 3811 0 3812 3813 + 3814 3815 3816 3817 3827 3813 3814 3815 3814 3815 + 3816 3817 3818 3819 3823 3827 3828 3829 3815 3816 + 3817 3827 3816 3817 3818 3819 3820 3821 3822 3823 + 3824 3825 3826 3827 3828 3829 3830 3831 3817 3818 + 3819 3823 3827 3828 3829 3818 3819 3820 3821 3822 + 3823 3824 3825 3826 3827 3828 3829 3819 3820 3821 + 3822 3823 3824 3825 3826 3827 3820 3821 3822 3823 + 3824 3825 3826 3827 3821 3822 3823 3822 3823 3823 + 3824 3825 3826 3827 3825 3826 3826 0 3828 3829 + 3830 3831 3832 3833 3838 3829 3830 3831 3830 3831 + 3832 3833 3834 3835 3836 3838 3839 3840 3831 3832 + 3833 3838 3832 3833 3834 3835 3836 3837 3838 3839 + 3840 3841 3842 3833 3834 3835 3836 3838 3839 3840 + 3834 3835 3836 3837 3838 3839 3840 3835 3836 3837 + 3838 3836 3837 3838 3837 3838 0 3839 3840 3841 + 3842 3843 3844 3855 3840 3841 3842 3841 3842 3843 + 3844 3845 3846 3847 3855 3856 3857 3842 3843 3844 + 3855 3843 3844 3845 3846 3847 3848 3849 3850 3855 + 3856 3857 3858 3859 3844 3845 3846 3847 3855 3856 + 3857 3845 3846 3847 3848 3849 3850 3851 3855 3856 + 3857 3846 3847 3848 3849 3850 3855 3847 3848 3849 + 3850 3855 3848 3849 3850 3851 3852 3853 3854 3855 + 3849 3850 3851 3850 3851 3851 3852 3853 3854 3852 + 3853 3854 3853 3854 3854 0 3856 3857 3858 3859 + 3860 3861 3862 3857 3858 3859 3858 3859 3860 3861 + 3862 3863 3864 3859 3860 3861 3862 3860 3861 3862 + 3863 3864 3865 3866 3861 3862 3863 3864 3862 3863 + 3864 3863 3864 3865 3866 3867 3868 3876 3864 3865 + 3866 3865 3866 3867 3868 3869 3870 3871 3876 3877 + 3878 3866 3867 3868 3876 3867 3868 3869 3870 3871 + 3872 3873 3876 3877 3878 3879 3880 3868 3869 3870 + 3871 3876 3877 3878 3869 3870 3871 3872 3873 3874 + 3875 3876 3877 3878 3870 3871 3872 3873 3876 3871 + 3872 3873 3876 3872 3873 3874 3875 3876 3873 3874 + 3875 3874 3875 3875 0 3877 3878 3879 3880 3881 + 3882 3892 3878 3879 3880 3879 3880 3881 3882 3883 + 3884 3888 3892 3893 3894 3880 3881 3882 3892 3881 + 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 + 3892 3893 3894 3895 3896 3882 3883 3884 3888 3892 + 3893 3894 3883 3884 3885 3886 3887 3888 3889 3890 + 3891 3892 3893 3894 3884 3885 3886 3887 3888 3889 + 3890 3891 3892 3885 3886 3887 3888 3889 3890 3891 + 3892 3886 3887 3888 3887 3888 3888 3889 3890 3891 + 3892 3890 3891 3891 0 3893 3894 3895 3896 3897 + 3898 3911 3894 3895 3896 3895 3896 3897 3898 3899 + 3900 3901 3911 3912 3913 3896 3897 3898 3911 3897 + 3898 3899 3900 3901 3902 3903 3907 3911 3912 3913 + 3914 3915 3898 3899 3900 3901 3911 3912 3913 3899 + 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 + 3910 3911 3912 3913 3900 3901 3902 3903 3907 3911 + 3901 3902 3903 3907 3911 3902 3903 3904 3905 3906 + 3907 3908 3909 3910 3911 3903 3904 3905 3906 3907 + 3908 3909 3910 3904 3905 3906 3907 3908 3909 3910 + 3905 3906 3907 3906 3907 3907 3908 3909 3910 3909 + 3910 3910 0 3912 3913 3914 3915 3916 3917 3930 + 3913 3914 3915 3914 3915 3916 3917 3918 3919 3920 + 3930 3931 3932 3915 3916 3917 3930 3916 3917 3918 + 3919 3920 3921 3922 3926 3930 3931 3932 3933 3934 + 3917 3918 3919 3920 3930 3931 3932 3918 3919 3920 + 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 + 3931 3932 3919 3920 3921 3922 3926 3930 3920 3921 + 3922 3926 3930 3921 3922 3923 3924 3925 3926 3927 + 3928 3929 3930 3922 3923 3924 3925 3926 3927 3928 + 3929 3923 3924 3925 3926 3927 3928 3929 3924 3925 + 3926 3925 3926 3926 3927 3928 3929 3928 3929 3929 + 0 3931 3932 3933 3934 3935 3936 3945 3932 3933 + 3934 3933 3934 3935 3936 3937 3938 3939 3945 3946 + 3947 3934 3935 3936 3945 3935 3936 3937 3938 3939 + 3940 3941 3942 3945 3946 3947 3948 3949 3936 3937 + 3938 3939 3945 3946 3947 3937 3938 3939 3940 3941 + 3942 3943 3944 3945 3946 3947 3938 3939 3940 3941 + 3942 3945 3939 3940 3941 3942 3945 3940 3941 3942 + 3943 3944 3945 3941 3942 3943 3944 3942 3943 3944 + 3943 3944 3944 0 3946 3947 3948 3949 3950 3951 + 3962 3947 3948 3949 3948 3949 3950 3951 3952 3953 + 3954 3962 3963 3964 3949 3950 3951 3962 3950 3951 + 3952 3953 3954 3955 3960 3962 3963 3964 3965 3966 + 3951 3952 3953 3954 3962 3963 3964 3952 3953 3954 + 3955 3956 3958 3960 3961 3962 3963 3964 3953 3954 + 3955 3960 3962 3954 3955 3960 3962 3955 3956 3957 + 3958 3959 3960 3961 3962 3956 3957 3958 3959 3960 + 3961 3957 3958 3959 3960 3961 3958 3959 3960 3959 + 3960 3961 3960 3961 3961 0 3963 3964 3965 3966 + 3967 3968 3979 3964 3965 3966 3965 3966 3967 3968 + 3969 3970 3971 3979 3980 3981 3966 3967 3968 3979 + 3967 3968 3969 3970 3971 3972 3977 3979 3980 3981 + 3982 3983 3968 3969 3970 3971 3979 3980 3981 3969 + 3970 3971 3972 3973 3975 3977 3978 3979 3980 3981 + 3970 3971 3972 3977 3979 3971 3972 3977 3979 3972 + 3973 3974 3975 3976 3977 3978 3979 3973 3974 3975 + 3976 3977 3978 3974 3975 3976 3977 3978 3975 3976 + 3977 3976 3977 3978 3977 3978 3978 0 3980 3981 + 3982 3983 3984 3985 3996 3981 3982 3983 3982 3983 + 3984 3985 3986 3987 3988 3996 3997 3998 3983 3984 + 3985 3996 3984 3985 3986 3987 3988 3989 3994 3996 + 3997 3998 3999 4000 3985 3986 3987 3988 3996 3997 + 3998 3986 3987 3988 3989 3990 3992 3994 3995 3996 + 3997 3998 3987 3988 3989 3994 3996 3988 3989 3994 + 3996 3989 3990 3991 3992 3993 3994 3995 3996 3990 + 3991 3992 3993 3994 3995 3991 3992 3993 3994 3995 + 3992 3993 3994 3993 3994 3995 3994 3995 3995 0 + 3997 3998 3999 4000 4001 4002 4013 3998 3999 4000 + 3999 4000 4001 4002 4003 4004 4005 4013 4014 4015 + 4000 4001 4002 4013 4001 4002 4003 4004 4005 4006 + 4011 4013 4014 4015 4016 4017 4002 4003 4004 4005 + 4013 4014 4015 4003 4004 4005 4006 4007 4009 4011 + 4012 4013 4014 4015 4004 4005 4006 4011 4013 4005 + 4006 4011 4013 4006 4007 4008 4009 4010 4011 4012 + 4013 4007 4008 4009 4010 4011 4012 4008 4009 4010 + 4011 4012 4009 4010 4011 4010 4011 4012 4011 4012 + 4012 0 4014 4015 4016 4017 4018 4019 4030 4015 + 4016 4017 4016 4017 4018 4019 4020 4021 4022 4030 + 4031 4032 4017 4018 4019 4030 4018 4019 4020 4021 + 4022 4023 4028 4030 4031 4032 4033 4034 4019 4020 + 4021 4022 4030 4031 4032 4020 4021 4022 4023 4024 + 4026 4028 4029 4030 4031 4032 4021 4022 4023 4028 + 4030 4022 4023 4028 4030 4023 4024 4025 4026 4027 + 4028 4029 4030 4024 4025 4026 4027 4028 4029 4025 + 4026 4027 4028 4029 4026 4027 4028 4027 4028 4029 + 4028 4029 4029 0 4031 4032 4033 4034 4035 4036 + 4047 4032 4033 4034 4033 4034 4035 4036 4037 4038 + 4039 4047 4048 4049 4034 4035 4036 4047 4035 4036 + 4037 4038 4039 4040 4045 4047 4048 4049 4036 4037 + 4038 4039 4047 4048 4049 4037 4038 4039 4040 4041 + 4043 4045 4046 4047 4048 4049 4038 4039 4040 4045 + 4047 4039 4040 4045 4047 4040 4041 4042 4043 4044 + 4045 4046 4047 4041 4042 4043 4044 4045 4046 4042 + 4043 4044 4045 4046 4043 4044 4045 4044 4045 4046 + 4045 4046 4046 0 4048 4049 4049 0 4051 4052 + 4053 4054 4055 4072 4073 4074 4075 4076 4094 4095 + 4052 4053 4054 4072 4073 4053 4054 4072 4073 4054 + 4055 4056 4057 4072 4073 4094 4095 4096 4055 4056 + 4057 4058 4059 4061 4072 4094 4095 4096 4097 4056 + 4057 4058 4059 4060 4061 4062 4094 4095 4096 4097 + 4098 4099 4101 4057 4058 4059 4060 4061 4062 4063 + 4071 4094 4095 4096 4097 4099 4101 4058 4059 4060 + 4061 4062 4094 4095 4096 4097 4098 4099 4100 4101 + 4059 4060 4061 4096 4097 4098 4099 4060 4061 4062 + 4063 4071 4096 4097 4098 4099 4100 4101 4061 4062 + 4097 4099 4100 4101 4062 4063 4064 4065 4070 4071 + 4096 4097 4099 4100 4101 4102 4063 4064 4065 4066 + 4069 4070 4071 4099 4101 4102 4064 4065 4066 4070 + 4071 4101 4102 4065 4066 4067 4068 4070 4071 4102 + 4066 4067 4068 4069 4070 4071 4102 4103 4104 4067 + 4068 4069 4070 4071 4103 4104 4105 4068 4069 4071 + 4103 4104 4069 4070 4071 4103 4104 4105 4070 4071 + 4105 4071 4105 4101 4102 4105 4073 4074 4075 4076 + 4077 4074 4075 4076 4077 4078 4106 4107 4075 4076 + 4077 4076 4077 4077 4078 4079 4080 4106 4107 4108 + 4078 4079 4080 4081 4082 4084 4106 4107 4108 4109 + 4079 4080 4081 4082 4083 4084 4085 4106 4107 4108 + 4109 4110 4111 4113 4080 4081 4082 4083 4084 4085 + 4086 4093 4106 4107 4108 4109 4111 4113 4081 4082 + 4083 4084 4085 4106 4107 4108 4109 4110 4111 4112 + 4113 4082 4083 4084 4108 4109 4110 4111 4083 4084 + 4085 4086 4093 4108 4109 4110 4111 4112 4113 4084 + 4085 4109 4111 4112 4113 4085 4086 4087 4092 4093 + 4108 4109 4111 4112 4113 4114 4119 4086 4087 4088 + 4091 4092 4093 4111 4113 4114 4118 4119 4087 4088 + 4089 4090 4091 4092 4093 4113 4114 4117 4119 4088 + 4089 4090 4091 4092 4093 4114 4115 4116 4117 4118 + 4089 4090 4091 4092 4114 4115 4116 4117 4090 4091 + 4115 4116 4091 4115 4116 4092 4093 4114 4117 4118 + 4119 4093 4117 4118 4119 4113 4114 4117 4118 4119 + 4095 4096 4096 4097 4098 4099 0 4100 4101 0 + 0 0 4104 0 0 4107 4108 4108 4109 4110 + 4111 0 4112 4113 0 0 0 4116 0 4118 + 4119 0 4121 4122 4123 4124 4125 4126 4127 4128 + 4129 4133 4137 4138 4139 4140 4122 4123 4124 4125 + 4126 4127 4128 4136 4137 4139 4140 4123 4124 4125 + 4126 4127 4136 4137 4138 4140 4124 4125 4127 4136 + 4137 4138 4139 4125 4126 4136 4137 4138 4139 4126 + 4127 4128 4136 4138 4139 4127 4128 4129 4130 4132 + 4133 4134 4139 4143 4137 4140 4129 4130 4131 4132 + 4133 4134 4141 4142 4143 4130 4131 4132 4133 4134 + 4135 4141 4143 4131 4132 4133 4134 4135 4141 4142 + 4132 4133 4134 4135 4141 4142 4143 4133 4135 4141 + 4142 4143 4134 4135 4142 4143 4141 4141 4142 4137 + 4138 0 4139 0 0 0 4143 0 +%FLAG HBOND_ACOEF +%FORMAT(5E16.8) + +%FLAG HBOND_BCOEF +%FORMAT(5E16.8) + +%FLAG HBCUT +%FORMAT(5E16.8) + +%FLAG AMBER_ATOM_TYPE +%FORMAT(20a4) +N3 H H H CT HP CT HC HC CT H1 H1 S CT H1 H1 H1 C O N +H CT H1 H1 C O N H CT H1 CT HC HC CA CA HA CA HA CA HA +CA HA CA HA C O N H CT H1 CT HC HC CT HC CT HC HC HC CT +HC HC HC C O N H CT H1 CT HC HC HC C O N H CT H1 H1 +C O N H CT H1 CT HC HC CT HC HC CT HC HC CT HP HP N3 H +H H C O N H CT H1 CT HC HC CT HC HC CT HC HC CT HP HP +N3 H H H C O N H CT H1 CT HC CT HC HC HC CT HC HC CT +HC HC HC C O N H CT H1 CT HC HC CT HC CT HC HC HC CT HC +HC HC C O N H CT H1 CT HC CT HC HC HC CT HC HC CT HC HC +HC C O N H CT H1 CT H1 CT HC HC HC OH HO C O N H CT +H1 H1 C O N H CT H1 CT HC HC CT HC CT HC HC HC CT HC HC +HC C O N H CT H1 CT HC HC CT HC CT HC HC HC CT HC HC HC +C O N H CT H1 CT H1 H1 OH HO C O N H CT H1 CT HC HC +C O N H H C O N H CT H1 CT HC HC CT HC HC CT HC HC +CT HP HP N3 H H H C O N H CT H1 CT H1 H1 OH HO C O +N H CT H1 CT HC CT HC HC HC CT HC HC CT HC HC HC C O N +H CT H1 CT HC HC HC C O N H CT H1 CT HC HC CA CA HA CA +HA C OH HO CA HA CA HA C O N H CT H1 H1 C O N H CT +H1 CT HC CT HC HC HC CT HC HC CT HC HC HC C O N H CT H1 +CT HC HC HC C O N H CT H1 CT HC HC CT HC HC CT HC HC CT +HP HP N3 H H H C O N H CT H1 CT HC HC HC C O N H +CT H1 CT HC HC CT H1 H1 S CT H1 H1 H1 C O N H CT H1 CT +HC HC CC NB CR H5 NA H CW H4 C O N H CT H1 CT HC HC CT +HC HC CT H1 H1 N2 H CA N2 H H N2 H H C O N H CT H1 +CT HC HC CT HC HC C O2 O2 C O N H CT H1 H1 C O N H +CT H1 CT HC HC HC C O N H CT H1 CT HC HC CT HC HC C O2 +O2 C O N H CT H1 CT HC HC CT HC CT HC HC HC CT HC HC HC +C O N H CT H1 CT HC HC HC C O N H CT H1 CT HC HC CA +CA HA CA HA CA HA CA HA CA HA C O N H CT H1 CT H1 CT HC +HC HC OH HO C O N H CT H1 CT HC HC CA CA HA CA HA C OH +HO CA HA CA HA C O N H CT H1 CT HC CT HC HC HC CT HC HC +HC C O N H CT H1 H1 C O N H CT H1 CT HC HC CT HC HC +C O N H H C O N H CT H1 CT HC HC CA CA HA CA HA CA +HA CA HA CA HA C O N H CT H1 CT HC HC CT HC HC CT HC HC +CT HP HP N3 H H H C O N H CT H1 CT HC HC C O2 O2 C +O N H CT H1 CT HC HC CT HC HC CT H1 H1 N2 H CA N2 H H +N2 H H C O N H CT H1 CT HC CT HC HC HC CT HC HC HC C +O N H CT H1 CT HC HC CT HC HC C O2 O2 C O N H CT H1 +CT HC HC CT HC HC CT HC HC CT HP HP N3 H H H C O N H +CT H1 CT HC HC CT HC CT HC HC HC CT HC HC HC C O N H CT +H1 CT H1 H1 SH HS C O N H CT H1 CT HC HC HC C O N H +CT H1 CT HC HC CT HC HC C O2 O2 C O N H CT H1 CT HC HC +CA CA HA CA HA CA HA CA HA CA HA C O N H CT H1 CT HC HC +C O N H H C O N CT H1 H1 CT HC HC CT HC HC CT H1 C +O N H CT H1 CT HC HC HC C O N H CT H1 CT HC HC HC C +O N H CT H1 CT HC CT HC HC HC CT HC HC HC C O N H CT +H1 CT HC HC CT HC CT HC HC HC CT HC HC HC C O N CT H1 H1 +CT HC HC CT HC HC CT H1 C O N H CT H1 CT H1 H1 SH HS C +O N H CT H1 CT HC HC C O2 O2 C O N H CT H1 CT HC CT +HC HC HC CT HC HC HC C O N H CT H1 CT HC CT HC HC HC CT +HC HC CT HC HC HC C O N H CT H1 CT H1 H1 OH HO C O N +H CT H1 CT HC HC C O2 O2 C O N H CT H1 CT HC HC CT HC +HC C O N H H C O N H CT H1 CT HC HC CT HC HC C O2 +O2 C O N H CT H1 CT HC CT HC HC HC CT HC HC CT HC HC HC +C O N H CT H1 CT HC HC CT HC HC CT HC HC CT HP HP N3 H +H H C O N H CT H1 CT HC HC C O2 O2 C O N H CT H1 +CT HC HC CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT +HC HC CA CA HA CA HA CA HA CA HA CA HA C O N H CT H1 CT +HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC CT HC +HC C O2 O2 C O N H CT H1 CT HC HC CT HC CT HC HC HC CT +HC HC HC C O N H CT H1 H1 C O N H CT H1 CT HC HC CT +HC HC CT HC HC CT HP HP N3 H H H C O N H CT H1 CT HC +CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC C* CW H4 +NA H CN CA HA CA HA CA HA CA HA CB C O N H CT H1 CT HC +HC C O2 O2 C O N H CT H1 H1 C O N H CT H1 CT HC HC +CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC C +O2 O2 C O N H CT H1 CT HC HC HC C O N H CT H1 CT HC +CT HC HC HC CT HC HC CT HC HC HC C O N H CT H1 CT HC CT +HC HC HC CT HC HC HC C O N H CT H1 CT HC HC CC NB CR H5 +NA H CW H4 C O N H CT H1 CT H1 H1 OH HO C O N H CT +H1 CT HC CT HC HC HC CT HC HC CT HC HC HC C O N H CT H1 +CT HC HC HC C O N H CT H1 CT HC HC CA CA HA CA HA CA HA +CA HA CA HA C O N H CT H1 CT HC HC HC C O N CT H1 H1 +CT HC HC CT HC HC CT H1 C O N H CT H1 CT HC HC CT HC HC +CT H1 H1 N2 H CA N2 H H N2 H H C O N H CT H1 CT HC +HC C O2 O2 C O N H CT H1 CT HC HC CT HC HC C O N H +H C O N H CT H1 CT HC HC CT HC CT HC HC HC CT HC HC HC +C O N H CT H1 CT HC HC CT HC HC C O2 O2 C O N H CT +H1 H1 C O N H CT H1 CT HC HC C O N H H C O N H +CT H1 CT HC HC CA CA HA CA HA CA HA CA HA CA HA C O N H +CT H1 CT HC CT HC HC HC CT HC HC CT HC HC HC C O N H CT +H1 CT HC HC C O2 O2 C O N H CT H1 CT H1 H1 SH HS C O +N H CT H1 CT HC CT HC HC HC CT HC HC HC C O N H CT H1 +CT H1 CT HC HC HC OH HO C O N H CT H1 CT HC HC CT HC HC +CT H1 H1 N2 H CA N2 H H N2 H H C O N H CT H1 CT HC +HC CT HC HC C O2 O2 C O N H CT H1 H1 C O N H CT H1 +CT HC HC CA CA HA CA HA CA HA CA HA CA HA C O N H CT H1 +CT H1 H1 OH HO C O N H CT H1 CT HC CT HC HC HC CT HC HC +CT HC HC HC C O N H CT H1 CT HC HC HC C O N H CT H1 +CT HC HC CC NB CR H5 NA H CW H4 C O N H CT H1 CT HC HC +C O2 O2 C O N H CT H1 CT HC CT HC HC HC CT HC HC CT HC +HC HC C O N H CT H1 CT H1 H1 OH HO C O N H CT H1 CT +HC HC HC C O N H CT H1 CT HC HC CA CA HA CA HA C OH HO +CA HA CA HA C O N H CT H1 CT H1 H1 OH HO C O N H CT +H1 CT HC HC CA CA HA CA HA CA HA CA HA CA HA C O N H CT +H1 CT HC HC HC C O N H CT H1 CT HC HC HC C O N H CT +H1 CT HC HC CT HC CT HC HC HC CT HC HC HC C O N H CT H1 +CT HC HC HC C O N H CT H1 CT HC HC CT HC HC CT HC HC CT +HP HP N3 H H H C O N H CT H1 CT HC HC CT HC HC C O2 +O2 C O N H CT H1 H1 C O N H CT H1 CT HC HC CT HC HC +CT H1 H1 N2 H CA N2 H H N2 H H C O N H CT H1 CT H1 +H1 OH HO C O N H CT H1 CT HC HC CT H1 H1 S CT H1 H1 H1 +C O N H CT H1 CT HC HC CT H1 H1 S CT H1 H1 H1 C O N +H CT H1 CT HC HC CT HC HC CT HC HC CT HP HP N3 H H H C +O N H CT H1 CT HC HC C O N H H C O N H CT H1 CT +HC HC CT HC HC CT H1 H1 N2 H CA N2 H H N2 H H C O N +H CT H1 CT HC HC C O N H H C O N H CT H1 CT HC HC +HC C O N H CT H1 CT H1 H1 OH HO C O N H CT H1 CT HC +HC CT H1 H1 S CT H1 H1 H1 C O N H CT H1 CT HC CT HC HC +HC CT HC HC HC C O N H CT H1 CT HC HC HC C O N H CT +H1 CT HC HC CT HC CT HC HC HC CT HC HC HC C O N H CT H1 +CT H1 CT HC HC HC OH HO C O N H CT H1 CT HC HC CA CA HA +CA HA C OH HO CA HA CA HA C O N H CT H1 CT HC CT HC HC +HC CT HC HC CT HC HC HC C O N H CT H1 H1 C O N H CT +H1 CT HC HC HC C O N H CT H1 CT HC HC CT HC HC C O2 O2 +C O N H CT H1 CT HC HC CT HC HC CT HC HC CT HP HP N3 H +H H C O N H CT H1 CT HC HC HC C O N H CT H1 CT HC +HC CT H1 H1 S CT H1 H1 H1 C O N CT H1 H1 CT HC HC CT HC +HC CT H1 C O N H CT H1 CT H1 H1 OH HO C O N H CT H1 +CT HC HC CA CA HA CA HA C OH HO CA HA CA HA C O N H CT +H1 CT HC HC C O N H H C O N H CT H1 CT H1 CT HC HC +HC OH HO C O N H CT H1 CT HC HC CT H1 H1 S CT H1 H1 H1 +C O N H CT H1 H1 C O N H CT H1 CT HC CT HC HC HC CT +HC HC HC C O N H CT H1 CT HC HC HC C O N H CT H1 CT +HC HC CT HC HC CT HC HC CT HP HP N3 H H H C O N H CT +H1 CT HC HC HC C O N H CT H1 CT H1 H1 OH HO C O N H +CT H1 CT HC HC CT HC CT HC HC HC CT HC HC HC C O N H CT +H1 CT HC HC CT HC HC C O2 O2 C O N H CT H1 CT HC HC HC +C O N H CT H1 CT H1 CT HC HC HC OH HO C O N H CT H1 +CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC CT +HC HC CT H1 H1 N2 H CA N2 H H N2 H H C O N H CT H1 +CT HC HC CA CA HA CA HA C OH HO CA HA CA HA C O N H CT +H1 CT H1 CT HC HC HC OH HO C O N H CT H1 CT HC HC HC C +O N H CT H1 CT HC HC CT HC CT HC HC HC CT HC HC HC C O +N H CT H1 CT HC HC HC C O N H CT H1 CT HC HC CT HC CT +HC HC HC CT HC HC HC C O N H CT H1 H1 C O N H CT H1 +CT HC HC CT HC HC C O2 O2 C O N H CT H1 CT HC HC C O2 +O2 C O N H CT H1 H1 C O N H CT H1 CT HC CT HC HC HC +CT HC HC CT HC HC HC C O N H CT H1 CT HC HC CT HC HC CT +HC HC CT HP HP N3 H H H C O N H CT H1 CT HC CT HC HC +HC CT HC HC HC C O N H CT H1 CT HC HC C O N H H C +O N H CT H1 CT HC HC HC C O N H CT H1 CT HC CT HC HC +HC CT HC HC HC C O N H CT H1 CT H1 H1 OH HO C O N H +CT H1 CT HC HC HC C O N H CT H1 H1 C O N CT H1 H1 CT +HC HC CT HC HC CT H1 C O N H CT H1 CT HC CT HC HC HC CT +HC HC CT HC HC HC C O N H CT H1 CT HC HC CT HC HC CT HC +HC CT HP HP N3 H H H C O N H CT H1 CT H1 CT HC HC HC +OH HO C O N H CT H1 CT HC HC CT HC CT HC HC HC CT HC HC +HC C O N H CT H1 CT HC HC HC C O N H CT H1 CT HC HC +HC C O N H CT H1 CT H1 H1 OH HO C O N H CT H1 H1 C +O N H CT H1 CT HC CT HC HC HC CT HC HC CT HC HC HC C O +N H CT H1 CT H1 H1 OH HO C O N H CT H1 CT HC HC C O +N H H C O N H CT H1 CT HC HC CA CA HA CA HA CA HA CA +HA CA HA C O N H CT H1 CT HC HC CT HC HC CT HC HC CT HP +HP N3 H H H C O N H CT H1 CT HC HC CT HC HC CT HC HC +CT HP HP N3 H H H C O N H CT H1 CT HC HC CT H1 H1 S +CT H1 H1 H1 C O N H CT H1 CT HC HC CT HC CT HC HC HC CT +HC HC HC C O N H CT H1 CT HC HC C O2 O2 C O N H CT +H1 CT HC HC CA CA HA CA HA C OH HO CA HA CA HA C O N H +CT H1 CT HC HC C O N H H C O N H CT H1 CT HC HC HC +C O N H CT H1 CT HC HC CT H1 H1 S CT H1 H1 H1 C O N +H CT H1 CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT +H1 H1 OH HO C O N CT H1 H1 CT HC HC CT HC HC CT H1 C O +N H CT H1 CT HC HC CT HC CT HC HC HC CT HC HC HC C O N +H CT H1 CT HC HC CT HC HC CT HC HC CT HP HP N3 H H H C +O N H CT H1 CT HC HC CT HC HC CT HC HC CT HP HP N3 H H +H C O N H CT H1 CT HC HC C O N H H C O N H CT +H1 CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC +C O2 O2 C O N H CT H1 CT HC CT HC HC HC CT HC HC CT HC +HC HC C O N H CT H1 CT HC HC CT H1 H1 S CT H1 H1 H1 C +O N H CT H1 CT HC HC CT HC HC C O2 O2 C O N H CT H1 +CT HC CT HC HC HC CT HC HC HC C O N H CT H1 H1 C O N +H CT H1 CT HC HC C O N H H C O N H CT H1 CT H1 CT +HC HC HC OH HO C O N H CT H1 CT HC CT HC HC HC CT HC HC +HC C O N H CT H1 CT HC HC HC C O N H CT H1 CT HC HC +CA CA HA CA HA CA HA CA HA CA HA C O N H CT H1 CT HC HC +CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT H1 H1 SH +HS C O N H CT H1 CT H1 H1 OH HO C O N H CT H1 CT HC +HC C O2 O2 C O N H CT H1 CT HC HC CT H1 H1 S CT H1 H1 +H1 C O N H CT H1 CT HC HC HC C O N H CT H1 CT H1 CT +HC HC HC OH HO C O N H CT H1 H1 C O N H CT H1 CT HC +CT HC HC HC CT HC HC CT HC HC HC C O N H CT H1 CT H1 CT +HC HC HC OH HO C O N H CT H1 H1 C O N H CT H1 CT HC +HC CT HC HC C O2 O2 C O N H CT H1 CT HC CT HC HC HC CT +HC HC HC C O N H CT H1 CT HC CT HC HC HC CT HC HC HC C +O N H CT H1 CT HC HC CC NB CR H5 NA H CW H4 C O N H +CT H1 CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC +HC C O2 O2 C O N H CT H1 CT HC HC HC C O N H CT H1 +H1 C O N H CT H1 CT HC HC CA CA HA CA HA C OH HO CA HA +CA HA C O N H CT H1 CT HC HC CC NB CR H5 NA H CW H4 C +O N H CT H1 CT H1 H1 SH HS C O N H CT H1 CT HC CT HC +HC HC CT HC HC HC C O N H CT H1 CT H1 H1 OH HO C O N +H CT H1 CT HC HC CT H1 H1 S CT H1 H1 H1 C O N H CT H1 +H1 C O N H CT H1 CT HC HC C O N H H C O N H CT +H1 CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC +CT HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC CT +HC CT HC HC HC CT HC HC HC C O N H CT H1 CT HC HC CT HC +HC C O2 O2 C O N H CT H1 CT HC HC CC NB CR H5 NA H CW +H4 C O N H CT H1 CT HC HC CC NB CR H5 NA H CW H4 C O +N H CT H1 CT HC HC CC NB CR H5 NA H CW H4 C O N H CT +H1 CT HC HC CC NB CR H5 NA H CW H4 C O N H CT H1 CT HC +HC CC NB CR H5 NA H CW H4 C O N H CT H1 CT HC HC CC NB +CR H5 NA H CW H4 C O2 O2 P O2 O2 OS CT CT OS CT OH CT OH +CT N* CK NB CB CA N2 NC CQ NC CB OS P O2 O2 OS CT CT OS CT +OH CT OH CT NF CJ CF CE OE NE CI CF CJ H1 H1 H1 H1 HO H1 HO +H2 H5 H H H5 H1 H1 H1 H1 HO H1 HO H2 HI HE HE HI HI HI ca +ca ca ca ca ca os oh ca ca ca ca ca ca cl cl cl ha ha ha ho +ha ha ha +%FLAG TREE_CHAIN_CLASSIFICATION +%FORMAT(20a4) +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA M +E M E E M E M E M E 3 E E B B E B E B E +S E S E M E M E M E 3 E E 3 E 3 E E E 3 +E E E M E M E M E 3 E E E M E M E M E E +M E M E M E 3 E E 3 E E 3 E E 3 E E 3 E +E E M E M E M E 3 E E 3 E E 3 E E 3 E E +3 E E E M E M E M E 3 E 3 E E E 3 E E 3 +E E E M E M E M E 3 E E 3 E 3 E E E 3 E +E E M E M E M E 3 E 3 E E E 3 E E 3 E E +E M E M E M E 3 E 3 E E E S E M E M E M +E E M E M E M E 3 E E 3 E 3 E E E 3 E E +E M E M E M E 3 E E 3 E 3 E E E 3 E E E +M E M E M E 3 E E S E M E M E M E 3 E E +B E B E E M E M E M E 3 E E 3 E E 3 E E +3 E E 3 E E E M E M E M E 3 E E S E M E +M E M E 3 E 3 E E E 3 E E 3 E E E M E M +E M E 3 E E E M E M E M E 3 E E B B E B +E B S E S E S E M E M E M E E M E M E M +E 3 E 3 E E E 3 E E 3 E E E M E M E M E +3 E E E M E M E M E 3 E E 3 E E 3 E E 3 +E E 3 E E E M E M E M E 3 E E E M E M E +M E 3 E E 3 E E S 3 E E E M E M E M E 3 +E E B E S E B E B E M E M E M E 3 E E 3 +E E 3 E E B E B B E E B E E M E M E M E +3 E E 3 E E B E E M E M E M E E M E M E +M E 3 E E E M E M E M E 3 E E 3 E E B E +E M E M E M E 3 E E 3 E 3 E E E 3 E E E +M E M E M E 3 E E E M E M E M E 3 E E B +B E B E B E S E S E M E M E M E 3 E 3 E +E E S E M E M E M E 3 E E B B E B E B S +E S E S E M E M E M E 3 E 3 E E E 3 E E +E M E M E M E E M E M E M E 3 E E 3 E E +B E B E E M E M E M E 3 E E B B E B E B +E S E S E M E M E M E 3 E E 3 E E 3 E E +3 E E 3 E E E M E M E M E 3 E E B E E M +E M E M E 3 E E 3 E E 3 E E B E B B E E +B E E M E M E M E 3 E 3 E E E 3 E E E M +E M E M E 3 E E 3 E E B E E M E M E M E +3 E E 3 E E 3 E E 3 E E 3 E E E M E M E +M E 3 E E 3 E 3 E E E 3 E E E M E M E M +E 3 E E S E M E M E M E 3 E E E M E M E +M E 3 E E 3 E E B E E M E M E M E 3 E E +B B E B E B E S E S E M E M E M E 3 E E +B E B E E M E M 3 E E 3 E E B E E M E M +E M E M E 3 E E E M E M E M E 3 E E E M +E M E M E 3 E 3 E E E 3 E E E M E M E M +E 3 E E 3 E 3 E E E 3 E E E M E M 3 E E +3 E E B E E M E M E M E M E 3 E E S E M +E M E M E 3 E E B E E M E M E M E 3 E 3 +E E E 3 E E E M E M E M E 3 E 3 E E E 3 +E E 3 E E E M E M E M E 3 E E S E M E M +E M E 3 E E B E E M E M E M E 3 E E 3 E +E B E B E E M E M E M E 3 E E 3 E E B E +E M E M E M E 3 E 3 E E E 3 E E 3 E E E +M E M E M E 3 E E 3 E E 3 E E 3 E E 3 E +E E M E M E M E 3 E E B E E M E M E M E +3 E E 3 E 3 E E E 3 E E E M E M E M E 3 +E E B B E B E B E S E S E M E M E M E 3 +E 3 E E E 3 E E E M E M E M E 3 E E 3 E +E B E E M E M E M E 3 E E 3 E 3 E E E 3 +E E E M E M E M E E M E M E M E 3 E E 3 +E E 3 E E 3 E E 3 E E E M E M E M E 3 E +3 E E E 3 E E E M E M E M E 3 E E B B E +B E S B E B E B E S E E M E M E M E 3 E +E B E E M E M E M E E M E M E M E 3 E E +3 E 3 E E E 3 E E E M E M E M E 3 E E B +E E M E M E M E 3 E E E M E M E M E 3 E +3 E E E 3 E E 3 E E E M E M E M E 3 E 3 +E E E 3 E E E M E M E M E 3 E E B E S E +B E B E M E M E M E 3 E E S E M E M E M +E 3 E 3 E E E 3 E E 3 E E E M E M E M E +3 E E E M E M E M E 3 E E B B E B E B E +S E S E M E M E M E 3 E E E M E M 3 E E +3 E E B E E M E M E M E M E 3 E E 3 E E +3 E E B E B B E E B E E M E M E M E 3 E +E B E E M E M E M E 3 E E 3 E E B E B E +E M E M E M E 3 E E 3 E 3 E E E 3 E E E +M E M E M E 3 E E 3 E E B E E M E M E M +E E M E M E M E 3 E E B E B E E M E M E +M E 3 E E B B E B E B E S E S E M E M E +M E 3 E 3 E E E 3 E E 3 E E E M E M E M +E 3 E E B E E M E M E M E 3 E E S E M E +M E M E 3 E 3 E E E 3 E E E M E M E M E +3 E 3 E E E S E M E M E M E 3 E E 3 E E +3 E E B E B B E E B E E M E M E M E 3 E +E 3 E E B E E M E M E M E E M E M E M E +3 E E B B E B E B E S E S E M E M E M E +3 E E S E M E M E M E 3 E 3 E E E 3 E E +3 E E E M E M E M E 3 E E E M E M E M E +3 E E B E S E B E B E M E M E M E 3 E E +B E E M E M E M E 3 E 3 E E E 3 E E 3 E +E E M E M E M E 3 E E S E M E M E M E 3 +E E E M E M E M E 3 E E B B E B E B S E +S E S E M E M E M E 3 E E S E M E M E M +E 3 E E B B E B E B E S E S E M E M E M +E 3 E E E M E M E M E 3 E E E M E M E M +E 3 E E 3 E 3 E E E 3 E E E M E M E M E +3 E E E M E M E M E 3 E E 3 E E 3 E E 3 +E E 3 E E E M E M E M E 3 E E 3 E E B E +E M E M E M E E M E M E M E 3 E E 3 E E +3 E E B E B B E E B E E M E M E M E 3 E +E S E M E M E M E 3 E E 3 E E S 3 E E E +M E M E M E 3 E E 3 E E S 3 E E E M E M +E M E 3 E E 3 E E 3 E E 3 E E 3 E E E M +E M E M E 3 E E B E B E E M E M E M E 3 +E E 3 E E 3 E E B E B B E E B E E M E M +E M E 3 E E B E B E E M E M E M E 3 E E +E M E M E M E 3 E E S E M E M E M E 3 E +E 3 E E S 3 E E E M E M E M E 3 E 3 E E +E 3 E E E M E M E M E 3 E E E M E M E M +E 3 E E 3 E 3 E E E 3 E E E M E M E M E +3 E 3 E E E S E M E M E M E 3 E E B B E +B E B S E S E S E M E M E M E 3 E 3 E E +E 3 E E 3 E E E M E M E M E E M E M E M +E 3 E E E M E M E M E 3 E E 3 E E B E E +M E M E M E 3 E E 3 E E 3 E E 3 E E 3 E +E E M E M E M E 3 E E E M E M E M E 3 E +E 3 E E S 3 E E E M E M 3 E E 3 E E B E +E M E M E M E M E 3 E E S E M E M E M E +3 E E B B E B E B S E S E S E M E M E M +E 3 E E B E B E E M E M E M E 3 E 3 E E +E S E M E M E M E 3 E E 3 E E S 3 E E E +M E M E M E E M E M E M E 3 E 3 E E E 3 +E E E M E M E M E 3 E E E M E M E M E 3 +E E 3 E E 3 E E 3 E E 3 E E E M E M E M +E 3 E E E M E M E M E 3 E E S E M E M E +M E 3 E E 3 E 3 E E E 3 E E E M E M E M +E 3 E E 3 E E B E E M E M E M E 3 E E E +M E M E M E 3 E 3 E E E S E M E M E M E +3 E 3 E E E 3 E E E M E M E M E 3 E E 3 +E E 3 E E B E B B E E B E E M E M E M E +3 E E B B E B E B S E S E S E M E M E M +E 3 E 3 E E E S E M E M E M E 3 E E E M +E M E M E 3 E E 3 E 3 E E E 3 E E E M E +M E M E 3 E E E M E M E M E 3 E E 3 E 3 +E E E 3 E E E M E M E M E E M E M E M E +3 E E 3 E E B E E M E M E M E 3 E E B E +E M E M E M E E M E M E M E 3 E 3 E E E +3 E E 3 E E E M E M E M E 3 E E 3 E E 3 +E E 3 E E 3 E E E M E M E M E 3 E 3 E E +E 3 E E E M E M E M E 3 E E B E B E E M +E M E M E 3 E E E M E M E M E 3 E 3 E E +E 3 E E E M E M E M E 3 E E S E M E M E +M E 3 E E E M E M E M E E M E M 3 E E 3 +E E B E E M E M E M E M E 3 E 3 E E E 3 +E E 3 E E E M E M E M E 3 E E 3 E E 3 E +E 3 E E 3 E E E M E M E M E 3 E 3 E E E +S E M E M E M E 3 E E 3 E 3 E E E 3 E E +E M E M E M E 3 E E E M E M E M E 3 E E +E M E M E M E 3 E E S E M E M E M E E M +E M E M E 3 E 3 E E E 3 E E 3 E E E M E +M E M E 3 E E S E M E M E M E 3 E E B E +B E E M E M E M E 3 E E B B E B E B E S +E S E M E M E M E 3 E E 3 E E 3 E E 3 E +E 3 E E E M E M E M E 3 E E 3 E E 3 E E +3 E E 3 E E E M E M E M E 3 E E 3 E E S +3 E E E M E M E M E 3 E E 3 E 3 E E E 3 +E E E M E M E M E 3 E E B E E M E M E M +E 3 E E B B E B E B S E S E S E M E M E +M E 3 E E B E B E E M E M E M E 3 E E E +M E M E M E 3 E E 3 E E S 3 E E E M E M +E M E 3 E 3 E E E 3 E E E M E M E M E 3 +E E S E M E M 3 E E 3 E E B E E M E M E +M E M E 3 E E 3 E 3 E E E 3 E E E M E M +E M E 3 E E 3 E E 3 E E 3 E E 3 E E E M +E M E M E 3 E E 3 E E 3 E E 3 E E 3 E E +E M E M E M E 3 E E B E B E E M E M E M +E 3 E 3 E E E 3 E E E M E M E M E 3 E E +B E E M E M E M E 3 E 3 E E E 3 E E 3 E +E E M E M E M E 3 E E 3 E E S 3 E E E M +E M E M E 3 E E 3 E E B E E M E M E M E +3 E 3 E E E 3 E E E M E M E M E E M E M +E M E 3 E E B E B E E M E M E M E 3 E 3 +E E E S E M E M E M E 3 E 3 E E E 3 E E +E M E M E M E 3 E E E M E M E M E 3 E E +B B E B E B E S E S E M E M E M E 3 E E +3 E 3 E E E 3 E E E M E M E M E 3 E E S +E M E M E M E 3 E E S E M E M E M E 3 E +E B E E M E M E M E 3 E E 3 E E S 3 E E +E M E M E M E 3 E E E M E M E M E 3 E 3 +E E E S E M E M E M E E M E M E M E 3 E +3 E E E 3 E E 3 E E E M E M E M E 3 E 3 +E E E S E M E M E M E E M E M E M E 3 E +E 3 E E B E E M E M E M E 3 E 3 E E E 3 +E E E M E M E M E 3 E 3 E E E 3 E E E M +E M E M E 3 E E B E S E B E B E M E M E +M E 3 E 3 E E E 3 E E E M E M E M E 3 E +E B E E M E M E M E 3 E E E M E M E M E +E M E M E M E 3 E E B B E B E B S E S E +S E M E M E M E 3 E E B E S E B E B E M +E M E M E 3 E E S E M E M E M E 3 E 3 E +E E 3 E E E M E M E M E 3 E E S E M E M +E M E 3 E E 3 E E S 3 E E E M E M E M E +E M E M E M E 3 E E B E B E E M E M E M +E 3 E 3 E E E 3 E E E M E M E M E 3 E E +3 E 3 E E E 3 E E E M E M E M E 3 E E 3 +E 3 E E E 3 E E E M E M E M E 3 E E 3 E +E B E E M E M E M E 3 E E B E S E B E B +E M E M E M E 3 E E B E S E B E B E M E +M E M E 3 E E B E S E B E B E M E M E M +E 3 E E B E S E B E B E M E M E M E 3 E +E B E S E B E B E M E BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA +%FLAG JOIN_ARRAY +%FORMAT(10I8) + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 +%FLAG IROTAT +%FORMAT(10I8) + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 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 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 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 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 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 + 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 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 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 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 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 +%FLAG SOLVENT_POINTERS +%FORMAT(3I8) + 270 3 4 +%FLAG ATOMS_PER_MOLECULE +%FORMAT(10I8) + 4049 70 24 +%FLAG BOX_DIMENSIONS +%FORMAT(5E16.8) + 1.09471222E+02 8.62058029E+01 8.62058029E+01 8.62058029E+01 +%FLAG RADIUS_SET +%FORMAT(1a80) +modified Bondi radii (mbondi) +%FLAG RADII +%FORMAT(5E16.8) + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.80000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 + 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.80000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.80000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.80000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.80000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.80000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.80000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 + 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.80000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 8.00000000E-01 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.50000000E+00 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.80000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.55000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.55000000E+00 1.70000000E+00 1.30000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.55000000E+00 + 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.85000000E+00 + 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.70000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 + 1.70000000E+00 1.55000000E+00 1.70000000E+00 1.55000000E+00 1.70000000E+00 + 1.70000000E+00 1.55000000E+00 1.55000000E+00 1.70000000E+00 1.55000000E+00 + 1.70000000E+00 1.50000000E+00 1.85000000E+00 1.50000000E+00 1.50000000E+00 + 1.50000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 1.70000000E+00 + 1.50000000E+00 1.70000000E+00 1.50000000E+00 1.70000000E+00 1.55000000E+00 + 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 8.00000000E-01 1.30000000E+00 8.00000000E-01 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 8.00000000E-01 + 1.30000000E+00 8.00000000E-01 1.30000000E+00 1.50000000E+00 1.30000000E+00 + 1.30000000E+00 1.50000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 + 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 + 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 + 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 8.00000000E-01 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 +%FLAG SCREEN +%FORMAT(5E16.8) + 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 9.60000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 9.60000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 9.60000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 9.60000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 9.60000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 9.60000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 9.60000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 9.60000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 9.60000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 7.90000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 7.90000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.60000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 7.90000000E-01 7.20000000E-01 7.90000000E-01 7.20000000E-01 + 7.20000000E-01 7.90000000E-01 7.90000000E-01 7.20000000E-01 7.90000000E-01 + 7.20000000E-01 8.50000000E-01 8.60000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.90000000E-01 + 7.20000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 7.20000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.00000000E-01 8.50000000E-01 + 8.50000000E-01 8.00000000E-01 8.00000000E-01 8.00000000E-01 7.20000000E-01 + 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 + 7.20000000E-01 7.20000000E-01 7.20000000E-01 8.00000000E-01 8.00000000E-01 + 8.00000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_CombineCrd/RunTest.sh b/test/Test_CombineCrd/RunTest.sh index e241b2b7e0..cc4673187d 100755 --- a/test/Test_CombineCrd/RunTest.sh +++ b/test/Test_CombineCrd/RunTest.sh @@ -71,11 +71,11 @@ crdaction TCS strip !:TCS combinecrd FabI NDP TCS parmname combinedParm crdname combinedCrd # Get recombined system energies. Should match exactly. crdaction combinedCrd energy out E2.dat noheader -parmwrite out FabI.NDP.TCS.parm7 +parmwrite out FabI.NDP.TCS.parm7 crdset combinedCrd EOF RunCpptraj "Split coords and recombine test." DoTest E1.dat E2.dat - DoTest ../FtuFabI.NAD.TCL.parm7 FabI.NDP.TCS.parm7 -I %VERSION + DoTest FabI.NDP.TCS.parm7.save FabI.NDP.TCS.parm7 -I %VERSION fi EndTest diff --git a/test/Test_CombineCrd/combinedParm.parm7.save b/test/Test_CombineCrd/combinedParm.parm7.save index f04e266dab..8aea1715c4 100644 --- a/test/Test_CombineCrd/combinedParm.parm7.save +++ b/test/Test_CombineCrd/combinedParm.parm7.save @@ -1,11 +1,11 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 08/18/20 18:40:07 +%VERSION VERSION_STAMP = V0001.000 DATE = 07/01/24 14:59:12 %FLAG TITLE %FORMAT(20a4) combinedParm %FLAG POINTERS %FORMAT(10I8) 244 14 111 141 246 194 511 408 0 0 - 1327 14 141 194 408 26 38 37 0 0 + 1327 14 141 194 408 37 75 37 27 0 0 0 0 0 0 0 0 2 24 0 0 %FLAG ATOM_NAME @@ -237,69 +237,87 @@ SER TRP THR TRP GLU ASN GLY LYS TRP THR TRP LYS NHE TCS 172 196 218 221 %FLAG BOND_FORCE_CONSTANT %FORMAT(5E16.8) - 5.70000000E+02 4.90000000E+02 3.20000000E+02 3.10000000E+02 3.17000000E+02 - 3.67000000E+02 4.69000000E+02 4.69000000E+02 4.47000000E+02 4.28000000E+02 - 4.27000000E+02 5.46000000E+02 3.88000000E+02 3.17000000E+02 3.37000000E+02 - 6.56000000E+02 5.53000000E+02 3.40000000E+02 4.34000000E+02 3.67000000E+02 - 4.78400000E+02 3.22800000E+02 3.72400000E+02 3.86100000E+02 3.44300000E+02 - 3.69600000E+02 + 5.70000000E+02 4.90000000E+02 5.53000000E+02 3.40000000E+02 3.20000000E+02 + 3.40000000E+02 3.10000000E+02 3.17000000E+02 4.34000000E+02 3.67000000E+02 + 3.67000000E+02 4.69000000E+02 4.69000000E+02 4.69000000E+02 4.47000000E+02 + 4.34000000E+02 4.28000000E+02 3.67000000E+02 4.27000000E+02 5.46000000E+02 + 3.88000000E+02 3.40000000E+02 3.17000000E+02 3.40000000E+02 4.34000000E+02 + 3.37000000E+02 3.10000000E+02 6.56000000E+02 3.17000000E+02 3.40000000E+02 + 3.67000000E+02 3.44300000E+02 4.78400000E+02 3.22800000E+02 3.69600000E+02 + 3.72400000E+02 3.86100000E+02 %FLAG BOND_EQUIL_VALUE %FORMAT(5E16.8) - 1.22900000E+00 1.33500000E+00 1.41000000E+00 1.52600000E+00 1.52200000E+00 - 1.47100000E+00 1.40400000E+00 1.40000000E+00 1.41900000E+00 1.38000000E+00 - 1.38100000E+00 1.35200000E+00 1.45900000E+00 1.49500000E+00 1.44900000E+00 - 1.25000000E+00 9.60000000E-01 1.09000000E+00 1.01000000E+00 1.08000000E+00 - 1.38700000E+00 1.72900000E+00 1.37300000E+00 1.36200000E+00 1.08700000E+00 - 9.74000000E-01 + 1.22900000E+00 1.33500000E+00 9.60000000E-01 1.09000000E+00 1.41000000E+00 + 1.09000000E+00 1.52600000E+00 1.52200000E+00 1.01000000E+00 1.47100000E+00 + 1.08000000E+00 1.40400000E+00 1.40000000E+00 1.40000000E+00 1.41900000E+00 + 1.01000000E+00 1.38000000E+00 1.08000000E+00 1.38100000E+00 1.35200000E+00 + 1.45900000E+00 1.09000000E+00 1.49500000E+00 1.09000000E+00 1.01000000E+00 + 1.44900000E+00 1.52600000E+00 1.25000000E+00 1.52200000E+00 1.09000000E+00 + 1.47100000E+00 1.08700000E+00 1.38700000E+00 1.72900000E+00 9.74000000E-01 + 1.37300000E+00 1.36200000E+00 %FLAG ANGLE_FORCE_CONSTANT %FORMAT(5E16.8) - 8.00000000E+01 5.00000000E+01 6.30000000E+01 5.00000000E+01 8.00000000E+01 - 7.00000000E+01 8.00000000E+01 6.30000000E+01 6.30000000E+01 6.30000000E+01 - 7.00000000E+01 7.00000000E+01 6.30000000E+01 7.00000000E+01 7.00000000E+01 - 6.30000000E+01 6.30000000E+01 7.00000000E+01 7.00000000E+01 6.30000000E+01 - 8.00000000E+01 6.30000000E+01 4.00000000E+01 8.00000000E+01 7.00000000E+01 - 5.00000000E+01 3.50000000E+01 5.50000000E+01 5.00000000E+01 5.00000000E+01 - 3.50000000E+01 6.29200000E+01 6.71800000E+01 6.97900000E+01 6.98500000E+01 - 6.33100000E+01 4.84600000E+01 4.88500000E+01 + 8.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 3.50000000E+01 + 6.30000000E+01 5.50000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 8.00000000E+01 7.00000000E+01 5.00000000E+01 3.50000000E+01 + 5.00000000E+01 8.00000000E+01 8.00000000E+01 5.00000000E+01 5.00000000E+01 + 6.30000000E+01 6.30000000E+01 6.30000000E+01 5.00000000E+01 6.30000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 + 6.30000000E+01 6.30000000E+01 5.00000000E+01 3.50000000E+01 7.00000000E+01 + 7.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 6.30000000E+01 + 5.00000000E+01 5.00000000E+01 8.00000000E+01 6.30000000E+01 5.00000000E+01 + 5.00000000E+01 5.00000000E+01 4.00000000E+01 8.00000000E+01 5.00000000E+01 + 7.00000000E+01 6.30000000E+01 3.50000000E+01 8.00000000E+01 7.00000000E+01 + 6.30000000E+01 3.50000000E+01 5.00000000E+01 3.50000000E+01 5.00000000E+01 + 5.00000000E+01 8.00000000E+01 4.00000000E+01 4.84600000E+01 6.29200000E+01 + 6.71800000E+01 6.97900000E+01 6.98500000E+01 4.88500000E+01 6.33100000E+01 %FLAG ANGLE_EQUIL_VALUE %FORMAT(5E16.8) - 2.14501057E+00 2.12755727E+00 1.93906163E+00 1.91113635E+00 2.10137732E+00 - 2.03505478E+00 1.94080696E+00 2.09439600E+00 2.14151991E+00 2.02807346E+00 - 2.31779824E+00 1.82212452E+00 1.85703112E+00 1.94778828E+00 1.89717371E+00 - 1.89891904E+00 2.35445017E+00 2.18166250E+00 2.24449438E+00 2.01760148E+00 - 1.91462701E+00 1.92160833E+00 1.91113635E+00 2.19911580E+00 2.04203610E+00 - 2.09439600E+00 1.91113635E+00 1.89368305E+00 2.14850123E+00 2.06018753E+00 - 2.09439600E+00 2.08392402E+00 2.09387240E+00 2.08043336E+00 2.09334880E+00 - 2.09352334E+00 2.09457053E+00 1.91061275E+00 + 2.14501057E+00 2.09439600E+00 2.12755727E+00 1.91113635E+00 1.91113635E+00 + 1.93906163E+00 1.89368305E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 2.10137732E+00 2.03505478E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.94080696E+00 1.94080696E+00 2.09439600E+00 2.09439600E+00 + 2.09439600E+00 2.09439600E+00 2.14151991E+00 2.09439600E+00 2.09439600E+00 + 2.02807346E+00 2.14850123E+00 2.31779824E+00 1.82212452E+00 2.09439600E+00 + 1.85703112E+00 2.09439600E+00 1.94778828E+00 2.09439600E+00 1.89717371E+00 + 1.89891904E+00 2.35445017E+00 1.91113635E+00 1.91113635E+00 2.18166250E+00 + 2.24449438E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 2.01760148E+00 + 2.06018753E+00 1.91113635E+00 1.91462701E+00 1.92160833E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91113635E+00 2.19911580E+00 1.91113635E+00 + 2.04203610E+00 1.93906163E+00 2.09439600E+00 2.10137732E+00 2.03505478E+00 + 1.93906163E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.94080696E+00 1.91113635E+00 2.09457053E+00 2.08392402E+00 + 2.09387240E+00 2.08043336E+00 2.09334880E+00 1.91061275E+00 2.09352334E+00 %FLAG DIHEDRAL_FORCE_CONSTANT %FORMAT(5E16.8) - 2.50000000E+00 2.00000000E+00 2.00000000E+00 4.00000000E-01 0.00000000E+00 - 0.00000000E+00 2.70000000E-01 4.20000000E-01 1.55555556E-01 0.00000000E+00 - 2.00000000E-01 2.00000000E-01 3.62500000E+00 3.00000000E+00 3.50000000E+00 - 6.52500000E+00 1.67500000E+00 1.52500000E+00 1.50000000E+00 4.50000000E-01 - 1.58000000E+00 5.50000000E-01 2.00000000E-01 2.50000000E-01 1.80000000E-01 - 1.05000000E+01 1.10000000E+00 1.66666667E-01 2.50000000E-01 1.60000000E-01 - 8.00000000E-01 8.00000000E-02 0.00000000E+00 1.50000000E-01 1.00000000E+00 + 2.00000000E+00 2.50000000E+00 0.00000000E+00 2.00000000E+00 4.00000000E-01 + 0.00000000E+00 0.00000000E+00 2.70000000E-01 4.20000000E-01 1.55555556E-01 + 1.66666667E-01 2.00000000E-01 2.00000000E-01 2.50000000E-01 1.60000000E-01 + 3.62500000E+00 3.00000000E+00 3.50000000E+00 1.52500000E+00 6.52500000E+00 + 1.50000000E+00 1.67500000E+00 8.00000000E-01 8.00000000E-02 4.50000000E-01 + 1.58000000E+00 5.50000000E-01 0.00000000E+00 1.50000000E-01 2.00000000E-01 + 2.50000000E-01 1.80000000E-01 1.05000000E+01 1.10000000E+00 1.00000000E+00 9.00000000E-01 1.10000000E+00 %FLAG DIHEDRAL_PERIODICITY %FORMAT(5E16.8) - 2.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 - 1.00000000E+00 2.00000000E+00 3.00000000E+00 3.00000000E+00 2.00000000E+00 - 1.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 - 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 1.00000000E+00 - 2.00000000E+00 3.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 - 2.00000000E+00 2.00000000E+00 3.00000000E+00 1.00000000E+00 3.00000000E+00 - 1.00000000E+00 3.00000000E+00 3.00000000E+00 3.00000000E+00 2.00000000E+00 + 1.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 3.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 3.00000000E+00 + 3.00000000E+00 1.00000000E+00 2.00000000E+00 1.00000000E+00 3.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 1.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 3.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 %FLAG DIHEDRAL_PHASE %FORMAT(5E16.8) - 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 - 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 - 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 3.14159400E+00 + 3.14159400E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 %FLAG SCEE_SCALE_FACTOR %FORMAT(5E16.8) @@ -308,8 +326,8 @@ SER TRP THR TRP GLU ASN GLY LYS TRP THR TRP LYS NHE TCS 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 - 0.00000000E+00 0.00000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 - 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 0.00000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.20000000E+00 1.20000000E+00 %FLAG SCNB_SCALE_FACTOR %FORMAT(5E16.8) @@ -318,784 +336,789 @@ SER TRP THR TRP GLU ASN GLY LYS TRP THR TRP LYS NHE TCS 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 - 0.00000000E+00 0.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 - 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 0.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2.00000000E+00 2.00000000E+00 %FLAG SOLTY %FORMAT(5E16.8) - + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 %FLAG LENNARD_JONES_ACOEF %FORMAT(5E16.8) 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03 - 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04 + 7.44975864E+05 1.40467023E+03 7.91544156E+05 1.45985502E+04 4.66922514E+04 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03 - 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577560E+03 + 9.24822269E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02 3.50301067E+03 - 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04 5.34045360E+03 - 3.76169105E+03 7.91627154E+04 8.90987508E+01 8.59947003E+04 1.21014911E+03 - 4.33325458E+03 6.00750218E+04 0.00000000E+00 7.62451550E+04 4.77908183E+04 + 4.96707305E+04 0.00000000E+00 6.37148277E+04 3.93690817E+04 5.34045360E+03 + 3.76169105E+03 7.91627155E+04 8.90987508E+01 8.59947003E+04 1.21014911E+03 + 4.33325458E+03 6.00750218E+04 0.00000000E+00 7.62451550E+04 4.77908184E+04 6.55825601E+03 4.64559155E+03 5.71629601E+03 5.89818288E+05 1.03954408E+03 6.28541239E+05 1.11851919E+04 3.63097246E+04 4.58874091E+05 0.00000000E+00 5.57281136E+05 3.70622491E+05 5.33379252E+04 3.86654992E+04 4.68711055E+04 3.61397723E+05 1.76079018E+06 4.83020817E+03 1.83982239E+06 4.14717456E+04 1.22102013E+05 1.40513595E+06 0.00000000E+00 1.63123475E+06 1.15256113E+06 - 1.74057868E+05 1.29147101E+05 1.54217682E+05 1.11729277E+06 3.24095688E+06 + 1.74057868E+05 1.29147101E+05 1.54217681E+05 1.11729277E+06 3.24095688E+06 %FLAG LENNARD_JONES_BCOEF %FORMAT(5E16.8) 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01 - 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02 + 7.50714426E+02 1.79702257E+01 6.93079947E+02 5.79323582E+01 1.03606917E+02 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01 - 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00 + 5.99015525E+02 5.44372327E+01 9.40505981E+01 6.14502845E+02 0.00000000E+00 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01 - 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02 + 9.21192136E+01 6.29300711E+02 0.00000000E+00 5.55666449E+02 5.64885984E+02 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01 - 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01 + 1.25287819E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00 1.46638650E+01 - 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01 1.81057616E+01 - 1.50233639E+01 1.26451907E+02 2.33864085E+00 1.18043746E+02 8.61880722E+00 + 1.05648788E+02 0.00000000E+00 9.56748257E+01 9.40124296E+01 1.81057616E+01 + 1.50233639E+01 1.26451907E+02 2.33864085E+00 1.18043747E+02 8.61880723E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00 1.04660679E+02 1.03580945E+02 2.00642027E+01 1.66953734E+01 1.85196588E+01 6.33305958E+02 1.46567808E+01 5.85549272E+02 4.80771660E+01 8.66220818E+01 5.89183300E+02 0.00000000E+00 - 5.19163331E+02 5.29252520E+02 1.04986921E+02 8.83744760E+01 9.73010753E+01 + 5.19163331E+02 5.29252520E+02 1.04986921E+02 8.83744760E+01 9.73010751E+01 4.95732238E+02 1.22266505E+03 3.53019992E+01 1.11939598E+03 1.03440958E+02 1.77491594E+02 1.15202544E+03 0.00000000E+00 9.92485818E+02 1.04286543E+03 2.11915736E+02 1.80470661E+02 1.97211104E+02 9.73951183E+02 1.85348706E+03 %FLAG BONDS_INC_HYDROGEN %FORMAT(10I8) - 27 30 17 18 21 18 18 24 18 12 - 15 18 0 3 19 0 6 19 0 9 - 19 96 99 20 90 93 20 84 87 20 - 78 81 20 69 72 19 63 66 20 51 - 54 18 51 57 18 45 48 18 39 42 - 19 141 144 17 129 132 18 129 135 18 - 129 138 18 123 126 18 117 120 18 111 - 114 19 210 213 20 204 207 20 198 201 - 20 192 195 20 183 186 19 177 180 20 - 165 168 18 165 171 18 159 162 18 153 - 156 19 246 249 18 246 252 18 237 240 - 18 237 243 18 231 234 18 225 228 19 - 297 300 19 297 303 19 282 285 18 282 - 288 18 276 279 18 270 273 19 318 321 - 18 318 324 18 312 315 19 381 384 19 - 381 387 19 381 390 19 372 375 18 372 - 378 18 363 366 18 363 369 18 354 357 - 18 354 360 18 345 348 18 345 351 18 - 339 342 18 333 336 19 456 459 20 450 - 453 20 444 447 20 438 441 20 429 432 - 19 423 426 20 411 414 18 411 417 18 - 405 408 18 399 402 19 501 504 17 489 - 492 18 489 495 18 489 498 18 483 486 - 18 477 480 18 471 474 19 570 573 20 - 564 567 20 558 561 20 552 555 20 543 - 546 19 537 540 20 525 528 18 525 531 - 18 519 522 18 513 516 19 633 636 19 - 633 639 19 633 642 19 624 627 18 624 - 630 18 615 618 18 615 621 18 606 609 - 18 606 612 18 597 600 18 597 603 18 - 591 594 18 585 588 19 651 654 19 651 - 657 19 699 729 25 696 726 25 690 723 - 25 681 720 26 675 717 25 672 714 25 - 666 711 25 + 27 30 3 18 21 4 18 24 4 12 + 15 6 0 3 9 0 6 9 0 9 + 9 96 99 11 90 93 11 84 87 11 + 78 81 11 69 72 16 63 66 18 51 + 54 22 51 57 22 45 48 24 39 42 + 25 141 144 3 129 132 22 129 135 22 + 129 138 22 123 126 4 117 120 24 111 + 114 25 210 213 11 204 207 11 198 201 + 11 192 195 11 183 186 16 177 180 18 + 165 168 22 165 171 22 159 162 24 153 + 156 25 246 249 22 246 252 22 237 240 + 22 237 243 22 231 234 24 225 228 25 + 297 300 25 297 303 25 282 285 22 282 + 288 22 276 279 24 270 273 25 318 321 + 24 318 324 24 312 315 25 381 384 9 + 381 387 9 381 390 9 372 375 30 372 + 378 30 363 366 22 363 369 22 354 357 + 22 354 360 22 345 348 22 345 351 22 + 339 342 24 333 336 25 456 459 11 450 + 453 11 444 447 11 438 441 11 429 432 + 16 423 426 18 411 414 22 411 417 22 + 405 408 24 399 402 25 501 504 3 489 + 492 22 489 495 22 489 498 22 483 486 + 4 477 480 24 471 474 25 570 573 11 + 564 567 11 558 561 11 552 555 11 543 + 546 16 537 540 18 525 528 22 525 531 + 22 519 522 24 513 516 25 633 636 9 + 633 639 9 633 642 9 624 627 30 624 + 630 30 615 618 22 615 621 22 606 609 + 22 606 612 22 597 600 22 597 603 22 + 591 594 24 585 588 25 651 654 25 651 + 657 25 699 729 32 696 726 32 690 723 + 32 681 720 35 675 717 32 672 714 32 + 666 711 32 %FLAG BONDS_WITHOUT_HYDROGEN %FORMAT(10I8) - 33 36 1 33 39 2 18 27 3 12 - 18 4 12 33 5 0 12 6 105 108 - 1 105 111 2 96 102 7 90 96 8 - 84 90 8 78 84 8 75 78 8 75 - 102 9 69 75 10 63 69 11 60 63 - 12 60 102 13 51 60 14 45 51 4 - 45 105 5 39 45 15 147 150 1 147 - 153 2 123 129 4 123 141 3 117 123 - 4 117 147 5 111 117 15 219 222 1 - 219 225 2 210 216 7 204 210 8 198 - 204 8 192 198 8 189 192 8 189 216 - 9 183 189 10 177 183 11 174 177 12 - 174 216 13 165 174 14 159 165 4 159 - 219 5 153 159 15 264 267 1 264 270 - 2 255 258 16 255 261 16 246 255 5 - 237 246 4 231 237 4 231 264 5 225 - 231 15 306 309 1 306 312 2 291 294 - 1 291 297 2 282 291 5 276 282 4 - 276 306 5 270 276 15 327 330 1 327 - 333 2 318 327 5 312 318 15 393 396 - 1 393 399 2 372 381 6 363 372 4 - 354 363 4 345 354 4 339 345 4 339 - 393 5 333 339 15 465 468 1 465 471 - 2 456 462 7 450 456 8 444 450 8 - 438 444 8 435 438 8 435 462 9 429 - 435 10 423 429 11 420 423 12 420 462 - 13 411 420 14 405 411 4 405 465 5 - 399 405 15 507 510 1 507 513 2 483 - 489 4 483 501 3 477 483 4 477 507 - 5 471 477 15 579 582 1 579 585 2 - 570 576 7 564 570 8 558 564 8 552 - 558 8 549 552 8 549 576 9 543 549 - 10 537 543 11 534 537 12 534 576 13 - 525 534 14 519 525 4 519 579 5 513 - 519 15 645 648 1 645 651 2 624 633 - 6 615 624 4 606 615 4 597 606 4 - 591 597 4 591 645 5 585 591 15 696 - 699 21 693 696 21 693 705 22 690 693 - 21 687 690 21 687 702 22 684 687 21 - 684 699 21 678 684 23 672 675 21 669 - 672 21 669 708 22 666 669 21 663 666 - 21 663 681 24 660 663 21 660 675 21 - 660 678 23 + 33 36 1 33 39 2 18 27 5 12 + 18 7 12 33 8 0 12 10 105 108 + 1 105 111 2 96 102 12 90 96 13 + 84 90 13 78 84 13 75 78 14 75 + 102 15 69 75 17 63 69 19 60 63 + 20 60 102 21 51 60 23 45 51 7 + 45 105 8 39 45 26 147 150 1 147 + 153 2 123 129 27 123 141 5 117 123 + 7 117 147 8 111 117 26 219 222 1 + 219 225 2 210 216 12 204 210 13 198 + 204 13 192 198 13 189 192 14 189 216 + 15 183 189 17 177 183 19 174 177 20 + 174 216 21 165 174 23 159 165 7 159 + 219 8 153 159 26 264 267 1 264 270 + 2 255 258 28 255 261 28 246 255 29 + 237 246 27 231 237 7 231 264 8 225 + 231 26 306 309 1 306 312 2 291 294 + 1 291 297 2 282 291 29 276 282 7 + 276 306 8 270 276 26 327 330 1 327 + 333 2 318 327 8 312 318 26 393 396 + 1 393 399 2 372 381 31 363 372 27 + 354 363 27 345 354 27 339 345 7 339 + 393 8 333 339 26 465 468 1 465 471 + 2 456 462 12 450 456 13 444 450 13 + 438 444 13 435 438 14 435 462 15 429 + 435 17 423 429 19 420 423 20 420 462 + 21 411 420 23 405 411 7 405 465 8 + 399 405 26 507 510 1 507 513 2 483 + 489 27 483 501 5 477 483 7 477 507 + 8 471 477 26 579 582 1 579 585 2 + 570 576 12 564 570 13 558 564 13 552 + 558 13 549 552 14 549 576 15 543 549 + 17 537 543 19 534 537 20 534 576 21 + 525 534 23 519 525 7 519 579 8 513 + 519 26 645 648 1 645 651 2 624 633 + 31 615 624 27 606 615 27 597 606 27 + 591 597 7 591 645 8 585 591 26 696 + 699 33 693 696 33 693 705 34 690 693 + 33 687 690 33 687 702 34 684 687 33 + 684 699 33 678 684 36 672 675 33 669 + 672 33 669 708 34 666 669 33 663 666 + 33 663 681 37 660 663 33 660 675 33 + 660 678 36 %FLAG ANGLES_INC_HYDROGEN %FORMAT(10I8) - 33 39 42 26 24 18 27 4 21 18 - 24 27 21 18 27 4 18 27 30 28 - 15 12 18 4 15 12 33 4 12 18 - 21 4 12 18 24 4 9 0 12 4 - 6 0 9 27 6 0 12 4 3 0 - 6 27 3 0 9 27 3 0 12 4 - 0 12 15 4 105 111 114 26 99 96 - 102 26 93 90 96 26 90 96 99 26 - 87 84 90 26 84 90 93 26 81 78 - 84 26 78 84 87 26 75 78 81 26 - 72 69 75 29 66 63 69 26 63 69 - 72 26 60 63 66 26 57 51 60 4 - 54 51 57 27 54 51 60 4 48 45 - 51 4 48 45 105 4 45 51 54 4 - 45 51 57 4 42 39 45 30 39 45 - 48 4 147 153 156 26 135 129 138 27 - 132 129 135 27 132 129 138 27 126 123 - 129 4 126 123 141 4 123 129 132 4 - 123 129 135 4 123 129 138 4 123 141 - 144 28 120 117 123 4 120 117 147 4 - 117 123 126 4 114 111 117 30 111 117 - 120 4 219 225 228 26 213 210 216 26 - 207 204 210 26 204 210 213 26 201 198 - 204 26 198 204 207 26 195 192 198 26 - 192 198 201 26 189 192 195 26 186 183 - 189 29 180 177 183 26 177 183 186 26 - 174 177 180 26 171 165 174 4 168 165 - 171 27 168 165 174 4 162 159 165 4 - 162 159 219 4 159 165 168 4 159 165 - 171 4 156 153 159 30 153 159 162 4 - 264 270 273 26 252 246 255 4 249 246 - 252 27 249 246 255 4 243 237 246 4 - 240 237 243 27 240 237 246 4 237 246 - 249 4 237 246 252 4 234 231 237 4 - 234 231 264 4 231 237 240 4 231 237 - 243 4 228 225 231 30 225 231 234 4 - 306 312 315 26 300 297 303 31 291 297 - 300 26 291 297 303 26 288 282 291 4 - 285 282 288 27 285 282 291 4 279 276 - 282 4 279 276 306 4 276 282 285 4 - 276 282 288 4 273 270 276 30 270 276 - 279 4 327 333 336 26 324 318 327 4 - 321 318 324 27 321 318 327 4 315 312 - 318 30 312 318 321 4 312 318 324 4 - 393 399 402 26 387 381 390 27 384 381 - 387 27 384 381 390 27 378 372 381 4 - 375 372 378 27 375 372 381 4 372 381 - 384 4 372 381 387 4 372 381 390 4 - 369 363 372 4 366 363 369 27 366 363 - 372 4 363 372 375 4 363 372 378 4 - 360 354 363 4 357 354 360 27 357 354 - 363 4 354 363 366 4 354 363 369 4 - 351 345 354 4 348 345 351 27 348 345 - 354 4 345 354 357 4 345 354 360 4 - 342 339 345 4 342 339 393 4 339 345 - 348 4 339 345 351 4 336 333 339 30 - 333 339 342 4 465 471 474 26 459 456 - 462 26 453 450 456 26 450 456 459 26 - 447 444 450 26 444 450 453 26 441 438 - 444 26 438 444 447 26 435 438 441 26 - 432 429 435 29 426 423 429 26 423 429 - 432 26 420 423 426 26 417 411 420 4 - 414 411 417 27 414 411 420 4 408 405 - 411 4 408 405 465 4 405 411 414 4 - 405 411 417 4 402 399 405 30 399 405 - 408 4 507 513 516 26 495 489 498 27 - 492 489 495 27 492 489 498 27 486 483 - 489 4 486 483 501 4 483 489 492 4 - 483 489 495 4 483 489 498 4 483 501 - 504 28 480 477 483 4 480 477 507 4 - 477 483 486 4 474 471 477 30 471 477 - 480 4 579 585 588 26 573 570 576 26 - 567 564 570 26 564 570 573 26 561 558 - 564 26 558 564 567 26 555 552 558 26 - 552 558 561 26 549 552 555 26 546 543 - 549 29 540 537 543 26 537 543 546 26 - 534 537 540 26 531 525 534 4 528 525 - 531 27 528 525 534 4 522 519 525 4 - 522 519 579 4 519 525 528 4 519 525 - 531 4 516 513 519 30 513 519 522 4 - 645 651 654 26 645 651 657 26 639 633 - 642 27 636 633 639 27 636 633 642 27 - 630 624 633 4 627 624 630 27 627 624 - 633 4 624 633 636 4 624 633 639 4 - 624 633 642 4 621 615 624 4 618 615 - 621 27 618 615 624 4 615 624 627 4 - 615 624 630 4 612 606 615 4 609 606 - 612 27 609 606 615 4 606 615 618 4 - 606 615 621 4 603 597 606 4 600 597 - 603 27 600 597 606 4 597 606 609 4 - 597 606 612 4 594 591 597 4 594 591 - 645 4 591 597 600 4 591 597 603 4 - 588 585 591 30 585 591 594 4 654 651 - 657 31 699 696 726 37 696 699 729 37 - 693 690 723 37 693 696 726 37 687 690 - 723 37 684 699 729 37 675 672 714 37 - 672 675 717 37 669 666 711 37 669 672 - 714 37 663 666 711 37 663 681 720 38 - 660 675 717 37 + 33 39 42 2 24 18 27 4 21 18 + 24 5 21 18 27 4 18 27 30 7 + 15 12 18 8 15 12 33 9 12 18 + 21 10 12 18 24 10 9 0 12 14 + 6 0 9 15 6 0 12 14 3 0 + 6 15 3 0 9 15 3 0 12 14 + 0 12 15 16 105 111 114 2 99 96 + 102 19 93 90 96 20 90 96 99 20 + 87 84 90 20 84 90 93 20 81 78 + 84 20 78 84 87 20 75 78 81 24 + 72 69 75 27 66 63 69 30 63 69 + 72 32 60 63 66 34 57 51 60 38 + 54 51 57 39 54 51 60 38 48 45 + 51 42 48 45 105 43 45 51 54 44 + 45 51 57 44 42 39 45 46 39 45 + 48 47 147 153 156 2 135 129 138 39 + 132 129 135 39 132 129 138 39 126 123 + 129 51 126 123 141 4 123 129 132 52 + 123 129 135 52 123 129 138 52 123 141 + 144 7 120 117 123 42 120 117 147 43 + 117 123 126 10 114 111 117 46 111 117 + 120 47 219 225 228 2 213 210 216 19 + 207 204 210 20 204 210 213 20 201 198 + 204 20 198 204 207 20 195 192 198 20 + 192 198 201 20 189 192 195 24 186 183 + 189 27 180 177 183 30 177 183 186 32 + 174 177 180 34 171 165 174 38 168 165 + 171 39 168 165 174 38 162 159 165 42 + 162 159 219 43 159 165 168 44 159 165 + 171 44 156 153 159 46 153 159 162 47 + 264 270 273 2 252 246 255 55 249 246 + 252 39 249 246 255 55 243 237 246 52 + 240 237 243 39 240 237 246 52 237 246 + 249 52 237 246 252 52 234 231 237 42 + 234 231 264 43 231 237 240 44 231 237 + 243 44 228 225 231 46 225 231 234 47 + 306 312 315 2 300 297 303 58 291 297 + 300 2 291 297 303 2 288 282 291 55 + 285 282 288 39 285 282 291 55 279 276 + 282 42 279 276 306 43 276 282 285 44 + 276 282 288 44 273 270 276 46 270 276 + 279 47 327 333 336 2 324 318 327 43 + 321 318 324 62 321 318 327 43 315 312 + 318 46 312 318 321 47 312 318 324 47 + 393 399 402 2 387 381 390 15 384 381 + 387 15 384 381 390 15 378 372 381 63 + 375 372 378 64 375 372 381 63 372 381 + 384 65 372 381 387 65 372 381 390 65 + 369 363 372 52 366 363 369 39 366 363 + 372 52 363 372 375 66 363 372 378 66 + 360 354 363 52 357 354 360 39 357 354 + 363 52 354 363 366 52 354 363 369 52 + 351 345 354 52 348 345 351 39 348 345 + 354 52 345 354 357 52 345 354 360 52 + 342 339 345 42 342 339 393 43 339 345 + 348 44 339 345 351 44 336 333 339 46 + 333 339 342 47 465 471 474 2 459 456 + 462 19 453 450 456 20 450 456 459 20 + 447 444 450 20 444 450 453 20 441 438 + 444 20 438 444 447 20 435 438 441 24 + 432 429 435 27 426 423 429 30 423 429 + 432 32 420 423 426 34 417 411 420 38 + 414 411 417 39 414 411 420 38 408 405 + 411 42 408 405 465 43 405 411 414 44 + 405 411 417 44 402 399 405 46 399 405 + 408 47 507 513 516 2 495 489 498 39 + 492 489 495 39 492 489 498 39 486 483 + 489 51 486 483 501 4 483 489 492 52 + 483 489 495 52 483 489 498 52 483 501 + 504 7 480 477 483 42 480 477 507 43 + 477 483 486 10 474 471 477 46 471 477 + 480 47 579 585 588 2 573 570 576 19 + 567 564 570 20 564 570 573 20 561 558 + 564 20 558 564 567 20 555 552 558 20 + 552 558 561 20 549 552 555 24 546 543 + 549 27 540 537 543 30 537 543 546 32 + 534 537 540 34 531 525 534 38 528 525 + 531 39 528 525 534 38 522 519 525 42 + 522 519 579 43 519 525 528 44 519 525 + 531 44 516 513 519 46 513 519 522 47 + 645 651 654 2 645 651 657 2 639 633 + 642 15 636 633 639 15 636 633 642 15 + 630 624 633 63 627 624 630 64 627 624 + 633 63 624 633 636 65 624 633 639 65 + 624 633 642 65 621 615 624 52 618 615 + 621 39 618 615 624 52 615 624 627 66 + 615 624 630 66 612 606 615 52 609 606 + 612 39 609 606 615 52 606 615 618 52 + 606 615 621 52 603 597 606 52 600 597 + 603 39 600 597 606 52 597 606 609 52 + 597 606 612 52 594 591 597 42 594 591 + 645 43 591 597 600 44 591 597 603 44 + 588 585 591 46 585 591 594 47 654 651 + 657 58 699 696 726 69 696 699 729 69 + 693 690 723 69 693 696 726 69 687 690 + 723 69 684 699 729 69 675 672 714 69 + 672 675 717 69 669 666 711 69 669 672 + 714 69 663 666 711 69 663 681 720 74 + 660 675 717 69 %FLAG ANGLES_WITHOUT_HYDROGEN %FORMAT(10I8) - 36 33 39 1 33 39 45 2 18 12 - 33 3 12 18 27 4 12 33 36 5 - 12 33 39 6 0 12 18 7 0 12 - 33 7 108 105 111 1 105 111 117 2 - 90 96 102 8 84 90 96 8 78 75 - 102 9 78 84 90 8 75 78 84 8 - 75 102 96 10 69 75 78 11 69 75 - 102 12 63 60 102 13 63 69 75 14 - 60 63 69 15 60 102 75 16 60 102 - 96 17 51 45 105 3 51 60 63 18 - 51 60 102 19 45 51 60 20 45 105 - 108 5 45 105 111 6 39 45 51 21 - 39 45 105 22 150 147 153 1 147 153 - 159 2 129 123 141 4 123 117 147 3 - 117 123 129 23 117 123 141 4 117 147 - 150 5 117 147 153 6 111 117 123 21 - 111 117 147 22 222 219 225 1 219 225 - 231 2 204 210 216 8 198 204 210 8 - 192 189 216 9 192 198 204 8 189 192 - 198 8 189 216 210 10 183 189 192 11 - 183 189 216 12 177 174 216 13 177 183 - 189 14 174 177 183 15 174 216 189 16 - 174 216 210 17 165 159 219 3 165 174 - 177 18 165 174 216 19 159 165 174 20 - 159 219 222 5 159 219 225 6 153 159 - 165 21 153 159 219 22 267 264 270 1 - 264 270 276 2 258 255 261 24 246 255 - 258 25 246 255 261 25 237 231 264 3 - 237 246 255 3 231 237 246 23 231 264 - 267 5 231 264 270 6 225 231 237 21 - 225 231 264 22 309 306 312 1 306 312 - 318 2 294 291 297 1 282 276 306 3 - 282 291 294 5 282 291 297 6 276 282 - 291 3 276 306 309 5 276 306 312 6 - 270 276 282 21 270 276 306 22 330 327 - 333 1 327 333 339 2 318 327 330 5 - 318 327 333 6 312 318 327 22 396 393 - 399 1 393 399 405 2 363 372 381 7 - 354 363 372 23 345 339 393 3 345 354 - 363 23 339 345 354 23 339 393 396 5 - 339 393 399 6 333 339 345 21 333 339 - 393 22 468 465 471 1 465 471 477 2 - 450 456 462 8 444 450 456 8 438 435 - 462 9 438 444 450 8 435 438 444 8 - 435 462 456 10 429 435 438 11 429 435 - 462 12 423 420 462 13 423 429 435 14 - 420 423 429 15 420 462 435 16 420 462 - 456 17 411 405 465 3 411 420 423 18 - 411 420 462 19 405 411 420 20 405 465 - 468 5 405 465 471 6 399 405 411 21 - 399 405 465 22 510 507 513 1 507 513 - 519 2 489 483 501 4 483 477 507 3 - 477 483 489 23 477 483 501 4 477 507 - 510 5 477 507 513 6 471 477 483 21 - 471 477 507 22 582 579 585 1 579 585 - 591 2 564 570 576 8 558 564 570 8 - 552 549 576 9 552 558 564 8 549 552 - 558 8 549 576 570 10 543 549 552 11 - 543 549 576 12 537 534 576 13 537 543 - 549 14 534 537 543 15 534 576 549 16 - 534 576 570 17 525 519 579 3 525 534 - 537 18 525 534 576 19 519 525 534 20 - 519 579 582 5 519 579 585 6 513 519 - 525 21 513 519 579 22 648 645 651 1 - 615 624 633 7 606 615 624 23 597 591 - 645 3 597 606 615 23 591 597 606 23 - 591 645 648 5 591 645 651 6 585 591 - 597 21 585 591 645 22 696 693 705 32 - 693 696 699 33 690 687 702 32 690 693 - 696 33 690 693 705 32 687 684 699 33 - 687 690 693 33 684 687 690 33 684 687 - 702 32 684 699 696 33 678 684 687 34 - 678 684 699 34 675 660 678 34 672 669 - 708 32 669 672 675 33 666 663 681 35 - 666 669 672 33 666 669 708 32 663 660 - 675 33 663 660 678 34 663 666 669 33 - 660 663 666 33 660 663 681 35 660 675 - 672 33 660 678 684 36 + 36 33 39 1 33 39 45 3 18 12 + 33 6 12 18 27 11 12 33 36 12 + 12 33 39 13 0 12 18 17 0 12 + 33 18 108 105 111 1 105 111 117 3 + 90 96 102 21 84 90 96 22 78 75 + 102 23 78 84 90 22 75 78 84 25 + 75 102 96 26 69 75 78 28 69 75 + 102 29 63 60 102 31 63 69 75 33 + 60 63 69 35 60 102 75 36 60 102 + 96 37 51 45 105 6 51 60 63 40 + 51 60 102 41 45 51 60 45 45 105 + 108 12 45 105 111 13 39 45 51 48 + 39 45 105 49 150 147 153 1 147 153 + 159 3 129 123 141 50 123 117 147 6 + 117 123 129 53 117 123 141 11 117 147 + 150 12 117 147 153 13 111 117 123 48 + 111 117 147 49 222 219 225 1 219 225 + 231 3 204 210 216 21 198 204 210 22 + 192 189 216 23 192 198 204 22 189 192 + 198 25 189 216 210 26 183 189 192 28 + 183 189 216 29 177 174 216 31 177 183 + 189 33 174 177 183 35 174 216 189 36 + 174 216 210 37 165 159 219 6 165 174 + 177 40 165 174 216 41 159 165 174 45 + 159 219 222 12 159 219 225 13 153 159 + 165 48 153 159 219 49 267 264 270 1 + 264 270 276 3 258 255 261 54 246 255 + 258 56 246 255 261 56 237 231 264 6 + 237 246 255 57 231 237 246 53 231 264 + 267 12 231 264 270 13 225 231 237 48 + 225 231 264 49 309 306 312 1 306 312 + 318 3 294 291 297 1 282 276 306 6 + 282 291 294 59 282 291 297 60 276 282 + 291 61 276 306 309 12 276 306 312 13 + 270 276 282 48 270 276 306 49 330 327 + 333 1 327 333 339 3 318 327 330 12 + 318 327 333 13 312 318 327 49 396 393 + 399 1 393 399 405 3 363 372 381 67 + 354 363 372 68 345 339 393 6 345 354 + 363 68 339 345 354 53 339 393 396 12 + 339 393 399 13 333 339 345 48 333 339 + 393 49 468 465 471 1 465 471 477 3 + 450 456 462 21 444 450 456 22 438 435 + 462 23 438 444 450 22 435 438 444 25 + 435 462 456 26 429 435 438 28 429 435 + 462 29 423 420 462 31 423 429 435 33 + 420 423 429 35 420 462 435 36 420 462 + 456 37 411 405 465 6 411 420 423 40 + 411 420 462 41 405 411 420 45 405 465 + 468 12 405 465 471 13 399 405 411 48 + 399 405 465 49 510 507 513 1 507 513 + 519 3 489 483 501 50 483 477 507 6 + 477 483 489 53 477 483 501 11 477 507 + 510 12 477 507 513 13 471 477 483 48 + 471 477 507 49 582 579 585 1 579 585 + 591 3 564 570 576 21 558 564 570 22 + 552 549 576 23 552 558 564 22 549 552 + 558 25 549 576 570 26 543 549 552 28 + 543 549 576 29 537 534 576 31 537 543 + 549 33 534 537 543 35 534 576 549 36 + 534 576 570 37 525 519 579 6 525 534 + 537 40 525 534 576 41 519 525 534 45 + 519 579 582 12 519 579 585 13 513 519 + 525 48 513 519 579 49 648 645 651 1 + 615 624 633 67 606 615 624 68 597 591 + 645 6 597 606 615 68 591 597 606 53 + 591 645 648 12 591 645 651 13 585 591 + 597 48 585 591 645 49 696 693 705 70 + 693 696 699 71 690 687 702 70 690 693 + 696 71 690 693 705 70 687 684 699 71 + 687 690 693 71 684 687 690 71 684 687 + 702 70 684 699 696 71 678 684 687 72 + 678 684 699 72 675 660 678 72 672 669 + 708 70 669 672 675 71 666 663 681 73 + 666 669 672 71 666 669 708 70 663 660 + 675 71 663 660 678 72 663 666 669 71 + 660 663 666 71 660 663 681 73 660 675 + 672 71 660 678 684 75 %FLAG DIHEDRALS_INC_HYDROGEN %FORMAT(10I8) - 36 33 39 42 2 36 33 -39 42 1 - 33 39 45 48 10 24 18 12 33 9 - 24 18 27 30 28 21 18 12 33 9 - 21 18 27 30 28 15 12 18 21 9 - 15 12 18 24 9 15 12 18 27 9 - 15 12 33 36 10 15 12 33 39 10 - 12 18 27 30 29 12 18 -27 30 30 - 12 33 39 42 1 9 0 12 15 9 - 9 0 12 18 9 9 0 12 33 9 - 6 0 12 15 9 6 0 12 18 9 - 6 0 12 33 9 3 0 12 15 9 - 3 0 12 18 9 3 0 12 33 9 - 0 12 18 21 9 0 12 18 24 9 - 108 105 111 114 2 108 105 -111 114 1 - 105 111 117 120 10 93 90 96 99 13 - 93 90 96 102 13 87 84 90 93 13 - 87 84 90 96 13 84 90 96 99 13 - 81 78 75 102 13 81 78 84 87 13 - 81 78 84 90 13 78 84 90 93 13 - 75 78 84 87 13 75 102 96 99 15 - 72 69 75 78 18 72 69 75 102 18 - 69 75 78 81 13 66 63 60 102 16 - 66 63 69 72 19 66 63 69 75 19 - 60 63 69 72 19 60 102 96 99 15 - 57 51 45 105 9 57 51 60 63 10 - 57 51 60 102 10 54 51 45 105 9 - 54 51 60 63 10 54 51 60 102 10 - 51 60 63 66 16 48 45 51 54 9 - 48 45 51 57 9 48 45 51 60 9 - 48 45 105 108 31 48 45 -105 108 10 - 48 45 -105 108 32 48 45 105 111 10 - 45 105 111 114 1 42 39 45 48 10 - 42 39 45 51 10 42 39 45 105 10 - 39 45 51 54 9 39 45 51 57 9 - 150 147 153 156 2 150 147 -153 156 1 - 147 153 159 162 10 138 129 123 141 29 - 138 129 -123 141 33 135 129 123 141 29 - 135 129 -123 141 33 132 129 123 141 29 - 132 129 -123 141 33 129 123 141 144 29 - 129 123 -141 144 30 126 123 117 147 9 - 126 123 129 132 9 126 123 129 135 9 - 126 123 129 138 9 126 123 141 144 28 - 120 117 123 126 9 120 117 123 129 9 - 120 117 123 141 29 120 117 -123 141 33 - 120 117 147 150 31 120 117 -147 150 10 - 120 117 -147 150 32 120 117 147 153 10 - 117 123 129 132 30 117 123 129 135 30 - 117 123 129 138 30 117 123 141 144 29 - 117 123 -141 144 30 117 147 153 156 1 - 114 111 117 120 10 114 111 117 123 10 - 114 111 117 147 10 111 117 123 126 9 - 222 219 225 228 2 222 219 -225 228 1 - 219 225 231 234 10 207 204 210 213 13 - 207 204 210 216 13 201 198 204 207 13 - 201 198 204 210 13 198 204 210 213 13 - 195 192 189 216 13 195 192 198 201 13 - 195 192 198 204 13 192 198 204 207 13 - 189 192 198 201 13 189 216 210 213 15 - 186 183 189 192 18 186 183 189 216 18 - 183 189 192 195 13 180 177 174 216 16 - 180 177 183 186 19 180 177 183 189 19 - 174 177 183 186 19 174 216 210 213 15 - 171 165 159 219 9 171 165 174 177 10 - 171 165 174 216 10 168 165 159 219 9 - 168 165 174 177 10 168 165 174 216 10 - 165 174 177 180 16 162 159 165 168 9 - 162 159 165 171 9 162 159 165 174 9 - 162 159 219 222 31 162 159 -219 222 10 - 162 159 -219 222 32 162 159 219 225 10 - 159 219 225 228 1 156 153 159 162 10 - 156 153 159 165 10 156 153 159 219 10 - 153 159 165 168 9 153 159 165 171 9 - 267 264 270 273 2 267 264 -270 273 1 - 264 270 276 279 10 252 246 255 258 10 - 252 246 255 261 10 249 246 255 258 10 - 249 246 255 261 10 243 237 231 264 9 - 243 237 246 249 34 243 237 246 252 34 - 243 237 246 255 9 240 237 231 264 9 - 240 237 246 249 34 240 237 246 252 34 - 240 237 246 255 9 234 231 237 240 9 - 234 231 237 243 9 234 231 237 246 9 - 234 231 264 267 31 234 231 -264 267 10 - 234 231 -264 267 32 234 231 264 270 10 - 231 237 246 249 30 231 237 246 252 30 - 231 264 270 273 1 228 225 231 234 10 - 228 225 231 237 10 228 225 231 264 10 - 225 231 237 240 9 225 231 237 243 9 - 309 306 312 315 2 309 306 -312 315 1 - 306 312 318 321 10 306 312 318 324 10 - 294 291 297 300 2 294 291 -297 300 1 - 294 291 297 303 2 294 291 -297 303 1 - 288 282 276 306 9 288 282 291 294 31 - 288 282 -291 294 10 288 282 -291 294 32 - 288 282 291 297 10 285 282 276 306 9 - 285 282 291 294 31 285 282 -291 294 10 - 285 282 -291 294 32 285 282 291 297 10 - 282 291 297 300 1 282 291 297 303 1 - 279 276 282 285 9 279 276 282 288 9 - 279 276 282 291 9 279 276 306 309 31 - 279 276 -306 309 10 279 276 -306 309 32 - 279 276 306 312 10 276 306 312 315 1 - 273 270 276 279 10 273 270 276 282 10 - 273 270 276 306 10 270 276 282 285 9 - 270 276 282 288 9 330 327 333 336 2 - 330 327 -333 336 1 327 333 339 342 10 - 324 318 327 330 31 324 318 -327 330 10 - 324 318 -327 330 32 324 318 327 333 10 - 321 318 327 330 31 321 318 -327 330 10 - 321 318 -327 330 32 321 318 327 333 10 - 318 327 333 336 1 315 312 318 321 10 - 315 312 318 324 10 315 312 318 327 10 - 396 393 399 402 2 396 393 -399 402 1 - 393 399 405 408 10 378 372 381 384 9 - 378 372 381 387 9 378 372 381 390 9 - 375 372 381 384 9 375 372 381 387 9 - 375 372 381 390 9 369 363 372 375 9 - 369 363 372 378 9 369 363 372 381 9 - 366 363 372 375 9 366 363 372 378 9 - 366 363 372 381 9 363 372 381 384 9 - 363 372 381 387 9 363 372 381 390 9 - 360 354 363 366 34 360 354 363 369 34 - 360 354 363 372 30 357 354 363 366 34 - 357 354 363 369 34 357 354 363 372 30 - 354 363 372 375 9 354 363 372 378 9 - 351 345 339 393 9 351 345 354 357 34 - 351 345 354 360 34 351 345 354 363 30 - 348 345 339 393 9 348 345 354 357 34 - 348 345 354 360 34 348 345 354 363 30 - 345 354 363 366 30 345 354 363 369 30 - 342 339 345 348 9 342 339 345 351 9 - 342 339 345 354 9 342 339 393 396 31 - 342 339 -393 396 10 342 339 -393 396 32 - 342 339 393 399 10 339 345 354 357 30 - 339 345 354 360 30 339 393 399 402 1 - 336 333 339 342 10 336 333 339 345 10 - 336 333 339 393 10 333 339 345 348 9 - 333 339 345 351 9 468 465 471 474 2 - 468 465 -471 474 1 465 471 477 480 10 - 453 450 456 459 13 453 450 456 462 13 - 447 444 450 453 13 447 444 450 456 13 - 444 450 456 459 13 441 438 435 462 13 - 441 438 444 447 13 441 438 444 450 13 - 438 444 450 453 13 435 438 444 447 13 - 435 462 456 459 15 432 429 435 438 18 - 432 429 435 462 18 429 435 438 441 13 - 426 423 420 462 16 426 423 429 432 19 - 426 423 429 435 19 420 423 429 432 19 - 420 462 456 459 15 417 411 405 465 9 - 417 411 420 423 10 417 411 420 462 10 - 414 411 405 465 9 414 411 420 423 10 - 414 411 420 462 10 411 420 423 426 16 - 408 405 411 414 9 408 405 411 417 9 - 408 405 411 420 9 408 405 465 468 31 - 408 405 -465 468 10 408 405 -465 468 32 - 408 405 465 471 10 405 465 471 474 1 - 402 399 405 408 10 402 399 405 411 10 - 402 399 405 465 10 399 405 411 414 9 - 399 405 411 417 9 510 507 513 516 2 - 510 507 -513 516 1 507 513 519 522 10 - 498 489 483 501 29 498 489 -483 501 33 - 495 489 483 501 29 495 489 -483 501 33 - 492 489 483 501 29 492 489 -483 501 33 - 489 483 501 504 29 489 483 -501 504 30 - 486 483 477 507 9 486 483 489 492 9 - 486 483 489 495 9 486 483 489 498 9 - 486 483 501 504 28 480 477 483 486 9 - 480 477 483 489 9 480 477 483 501 29 - 480 477 -483 501 33 480 477 507 510 31 - 480 477 -507 510 10 480 477 -507 510 32 - 480 477 507 513 10 477 483 489 492 30 - 477 483 489 495 30 477 483 489 498 30 - 477 483 501 504 29 477 483 -501 504 30 - 477 507 513 516 1 474 471 477 480 10 - 474 471 477 483 10 474 471 477 507 10 - 471 477 483 486 9 582 579 585 588 2 - 582 579 -585 588 1 579 585 591 594 10 - 567 564 570 573 13 567 564 570 576 13 - 561 558 564 567 13 561 558 564 570 13 - 558 564 570 573 13 555 552 549 576 13 - 555 552 558 561 13 555 552 558 564 13 - 552 558 564 567 13 549 552 558 561 13 - 549 576 570 573 15 546 543 549 552 18 - 546 543 549 576 18 543 549 552 555 13 - 540 537 534 576 16 540 537 543 546 19 - 540 537 543 549 19 534 537 543 546 19 - 534 576 570 573 15 531 525 519 579 9 - 531 525 534 537 10 531 525 534 576 10 - 528 525 519 579 9 528 525 534 537 10 - 528 525 534 576 10 525 534 537 540 16 - 522 519 525 528 9 522 519 525 531 9 - 522 519 525 534 9 522 519 579 582 31 - 522 519 -579 582 10 522 519 -579 582 32 - 522 519 579 585 10 519 579 585 588 1 - 516 513 519 522 10 516 513 519 525 10 - 516 513 519 579 10 513 519 525 528 9 - 513 519 525 531 9 648 645 651 654 2 - 648 645 -651 654 1 648 645 651 657 2 - 648 645 -651 657 1 630 624 633 636 9 - 630 624 633 639 9 630 624 633 642 9 - 627 624 633 636 9 627 624 633 639 9 - 627 624 633 642 9 621 615 624 627 9 - 621 615 624 630 9 621 615 624 633 9 - 618 615 624 627 9 618 615 624 630 9 - 618 615 624 633 9 615 624 633 636 9 - 615 624 633 639 9 615 624 633 642 9 - 612 606 615 618 34 612 606 615 621 34 - 612 606 615 624 30 609 606 615 618 34 - 609 606 615 621 34 609 606 615 624 30 - 606 615 624 627 9 606 615 624 630 9 - 603 597 591 645 9 603 597 606 609 34 - 603 597 606 612 34 603 597 606 615 30 - 600 597 591 645 9 600 597 606 609 34 - 600 597 606 612 34 600 597 606 615 30 - 597 606 615 618 30 597 606 615 621 30 - 594 591 597 600 9 594 591 597 603 9 - 594 591 597 606 9 594 591 645 648 31 - 594 591 -645 648 10 594 591 -645 648 32 - 594 591 645 651 10 591 597 606 609 30 - 591 597 606 612 30 591 645 651 654 1 - 591 645 651 657 1 588 585 591 594 10 - 588 585 591 597 10 588 585 591 645 10 - 585 591 597 600 9 585 591 597 603 9 - 90 102 -96 -99 27 84 96 -90 -93 27 - 78 90 -84 -87 27 75 84 -78 -81 27 - 63 75 -69 -72 35 60 69 -63 -66 27 - 33 45 -39 -42 27 105 117 -111 -114 27 - 204 216 -210 -213 27 198 210 -204 -207 27 - 192 204 -198 -201 27 189 198 -192 -195 27 - 177 189 -183 -186 35 174 183 -177 -180 27 - 147 159 -153 -156 27 219 231 -225 -228 27 - 291 300 -297 -303 35 264 276 -270 -273 27 - 306 318 -312 -315 27 327 339 -333 -336 27 - 450 462 -456 -459 27 444 456 -450 -453 27 - 438 450 -444 -447 27 435 444 -438 -441 27 - 423 435 -429 -432 35 420 429 -423 -426 27 - 393 405 -399 -402 27 465 477 -471 -474 27 - 564 576 -570 -573 27 558 570 -564 -567 27 - 552 564 -558 -561 27 549 558 -552 -555 27 - 537 549 -543 -546 35 534 543 -537 -540 27 - 507 519 -513 -516 27 579 591 -585 -588 27 - 645 654 -651 -657 35 726 696 699 729 13 - 714 672 675 717 13 708 669 666 711 13 - 708 669 672 714 13 705 693 690 723 13 - 705 693 696 726 13 702 687 690 723 13 - 696 693 690 723 13 693 696 699 729 13 - 690 693 696 726 13 687 684 699 729 13 - 684 687 690 723 13 684 699 696 726 13 - 681 663 666 711 13 678 660 675 717 13 - 678 684 699 729 13 672 669 666 711 13 - 669 672 675 717 13 666 663 681 720 36 - 666 669 672 714 13 663 660 675 717 13 - 660 663 666 711 13 660 663 681 720 36 - 660 675 672 714 13 684 696 -699 -729 37 + 36 33 39 42 1 36 33 -39 42 2 + 33 39 45 48 3 24 18 12 33 10 + 24 18 27 30 11 21 18 12 33 10 + 21 18 27 30 11 15 12 18 21 10 + 15 12 18 24 10 15 12 18 27 10 + 15 12 33 36 3 15 12 33 39 3 + 12 18 27 30 14 12 18 -27 30 15 + 12 33 39 42 2 9 0 12 15 10 + 9 0 12 18 10 9 0 12 33 10 + 6 0 12 15 10 6 0 12 18 10 + 6 0 12 33 10 3 0 12 15 10 + 3 0 12 18 10 3 0 12 33 10 + 0 12 18 21 10 0 12 18 24 10 + 108 105 111 114 1 108 105 -111 114 2 + 105 111 117 120 3 93 90 96 99 16 + 93 90 96 102 16 87 84 90 93 16 + 87 84 90 96 16 84 90 96 99 16 + 81 78 75 102 16 81 78 84 87 16 + 81 78 84 90 16 78 84 90 93 16 + 75 78 84 87 16 75 102 96 99 18 + 72 69 75 78 19 72 69 75 102 19 + 69 75 78 81 16 66 63 60 102 20 + 66 63 69 72 21 66 63 69 75 21 + 60 63 69 72 21 60 102 96 99 18 + 57 51 45 105 10 57 51 60 63 3 + 57 51 60 102 3 54 51 45 105 10 + 54 51 60 63 3 54 51 60 102 3 + 51 60 63 66 20 48 45 51 54 10 + 48 45 51 57 10 48 45 51 60 10 + 48 45 105 108 23 48 45 -105 108 3 + 48 45 -105 108 24 48 45 105 111 3 + 45 105 111 114 2 42 39 45 48 3 + 42 39 45 51 3 42 39 45 105 3 + 39 45 51 54 10 39 45 51 57 10 + 150 147 153 156 1 150 147 -153 156 2 + 147 153 159 162 3 138 129 123 141 14 + 138 129 -123 141 28 135 129 123 141 14 + 135 129 -123 141 28 132 129 123 141 14 + 132 129 -123 141 28 129 123 141 144 14 + 129 123 -141 144 15 126 123 117 147 10 + 126 123 129 132 10 126 123 129 135 10 + 126 123 129 138 10 126 123 141 144 11 + 120 117 123 126 10 120 117 123 129 10 + 120 117 123 141 14 120 117 -123 141 28 + 120 117 147 150 23 120 117 -147 150 3 + 120 117 -147 150 24 120 117 147 153 3 + 117 123 129 132 15 117 123 129 135 15 + 117 123 129 138 15 117 123 141 144 14 + 117 123 -141 144 15 117 147 153 156 2 + 114 111 117 120 3 114 111 117 123 3 + 114 111 117 147 3 111 117 123 126 10 + 222 219 225 228 1 222 219 -225 228 2 + 219 225 231 234 3 207 204 210 213 16 + 207 204 210 216 16 201 198 204 207 16 + 201 198 204 210 16 198 204 210 213 16 + 195 192 189 216 16 195 192 198 201 16 + 195 192 198 204 16 192 198 204 207 16 + 189 192 198 201 16 189 216 210 213 18 + 186 183 189 192 19 186 183 189 216 19 + 183 189 192 195 16 180 177 174 216 20 + 180 177 183 186 21 180 177 183 189 21 + 174 177 183 186 21 174 216 210 213 18 + 171 165 159 219 10 171 165 174 177 3 + 171 165 174 216 3 168 165 159 219 10 + 168 165 174 177 3 168 165 174 216 3 + 165 174 177 180 20 162 159 165 168 10 + 162 159 165 171 10 162 159 165 174 10 + 162 159 219 222 23 162 159 -219 222 3 + 162 159 -219 222 24 162 159 219 225 3 + 159 219 225 228 2 156 153 159 162 3 + 156 153 159 165 3 156 153 159 219 3 + 153 159 165 168 10 153 159 165 171 10 + 267 264 270 273 1 267 264 -270 273 2 + 264 270 276 279 3 252 246 255 258 3 + 252 246 255 261 3 249 246 255 258 3 + 249 246 255 261 3 243 237 231 264 10 + 243 237 246 249 29 243 237 246 252 29 + 243 237 246 255 10 240 237 231 264 10 + 240 237 246 249 29 240 237 246 252 29 + 240 237 246 255 10 234 231 237 240 10 + 234 231 237 243 10 234 231 237 246 10 + 234 231 264 267 23 234 231 -264 267 3 + 234 231 -264 267 24 234 231 264 270 3 + 231 237 246 249 15 231 237 246 252 15 + 231 264 270 273 2 228 225 231 234 3 + 228 225 231 237 3 228 225 231 264 3 + 225 231 237 240 10 225 231 237 243 10 + 309 306 312 315 1 309 306 -312 315 2 + 306 312 318 321 3 306 312 318 324 3 + 294 291 297 300 1 294 291 -297 300 2 + 294 291 297 303 1 294 291 -297 303 2 + 288 282 276 306 10 288 282 291 294 23 + 288 282 -291 294 3 288 282 -291 294 24 + 288 282 291 297 3 285 282 276 306 10 + 285 282 291 294 23 285 282 -291 294 3 + 285 282 -291 294 24 285 282 291 297 3 + 282 291 297 300 2 282 291 297 303 2 + 279 276 282 285 10 279 276 282 288 10 + 279 276 282 291 10 279 276 306 309 23 + 279 276 -306 309 3 279 276 -306 309 24 + 279 276 306 312 3 276 306 312 315 2 + 273 270 276 279 3 273 270 276 282 3 + 273 270 276 306 3 270 276 282 285 10 + 270 276 282 288 10 330 327 333 336 1 + 330 327 -333 336 2 327 333 339 342 3 + 324 318 327 330 23 324 318 -327 330 3 + 324 318 -327 330 24 324 318 327 333 3 + 321 318 327 330 23 321 318 -327 330 3 + 321 318 -327 330 24 321 318 327 333 3 + 318 327 333 336 2 315 312 318 321 3 + 315 312 318 324 3 315 312 318 327 3 + 396 393 399 402 1 396 393 -399 402 2 + 393 399 405 408 3 378 372 381 384 10 + 378 372 381 387 10 378 372 381 390 10 + 375 372 381 384 10 375 372 381 387 10 + 375 372 381 390 10 369 363 372 375 10 + 369 363 372 378 10 369 363 372 381 10 + 366 363 372 375 10 366 363 372 378 10 + 366 363 372 381 10 363 372 381 384 10 + 363 372 381 387 10 363 372 381 390 10 + 360 354 363 366 29 360 354 363 369 29 + 360 354 363 372 15 357 354 363 366 29 + 357 354 363 369 29 357 354 363 372 15 + 354 363 372 375 10 354 363 372 378 10 + 351 345 339 393 10 351 345 354 357 29 + 351 345 354 360 29 351 345 354 363 15 + 348 345 339 393 10 348 345 354 357 29 + 348 345 354 360 29 348 345 354 363 15 + 345 354 363 366 15 345 354 363 369 15 + 342 339 345 348 10 342 339 345 351 10 + 342 339 345 354 10 342 339 393 396 23 + 342 339 -393 396 3 342 339 -393 396 24 + 342 339 393 399 3 339 345 354 357 15 + 339 345 354 360 15 339 393 399 402 2 + 336 333 339 342 3 336 333 339 345 3 + 336 333 339 393 3 333 339 345 348 10 + 333 339 345 351 10 468 465 471 474 1 + 468 465 -471 474 2 465 471 477 480 3 + 453 450 456 459 16 453 450 456 462 16 + 447 444 450 453 16 447 444 450 456 16 + 444 450 456 459 16 441 438 435 462 16 + 441 438 444 447 16 441 438 444 450 16 + 438 444 450 453 16 435 438 444 447 16 + 435 462 456 459 18 432 429 435 438 19 + 432 429 435 462 19 429 435 438 441 16 + 426 423 420 462 20 426 423 429 432 21 + 426 423 429 435 21 420 423 429 432 21 + 420 462 456 459 18 417 411 405 465 10 + 417 411 420 423 3 417 411 420 462 3 + 414 411 405 465 10 414 411 420 423 3 + 414 411 420 462 3 411 420 423 426 20 + 408 405 411 414 10 408 405 411 417 10 + 408 405 411 420 10 408 405 465 468 23 + 408 405 -465 468 3 408 405 -465 468 24 + 408 405 465 471 3 405 465 471 474 2 + 402 399 405 408 3 402 399 405 411 3 + 402 399 405 465 3 399 405 411 414 10 + 399 405 411 417 10 510 507 513 516 1 + 510 507 -513 516 2 507 513 519 522 3 + 498 489 483 501 14 498 489 -483 501 28 + 495 489 483 501 14 495 489 -483 501 28 + 492 489 483 501 14 492 489 -483 501 28 + 489 483 501 504 14 489 483 -501 504 15 + 486 483 477 507 10 486 483 489 492 10 + 486 483 489 495 10 486 483 489 498 10 + 486 483 501 504 11 480 477 483 486 10 + 480 477 483 489 10 480 477 483 501 14 + 480 477 -483 501 28 480 477 507 510 23 + 480 477 -507 510 3 480 477 -507 510 24 + 480 477 507 513 3 477 483 489 492 15 + 477 483 489 495 15 477 483 489 498 15 + 477 483 501 504 14 477 483 -501 504 15 + 477 507 513 516 2 474 471 477 480 3 + 474 471 477 483 3 474 471 477 507 3 + 471 477 483 486 10 582 579 585 588 1 + 582 579 -585 588 2 579 585 591 594 3 + 567 564 570 573 16 567 564 570 576 16 + 561 558 564 567 16 561 558 564 570 16 + 558 564 570 573 16 555 552 549 576 16 + 555 552 558 561 16 555 552 558 564 16 + 552 558 564 567 16 549 552 558 561 16 + 549 576 570 573 18 546 543 549 552 19 + 546 543 549 576 19 543 549 552 555 16 + 540 537 534 576 20 540 537 543 546 21 + 540 537 543 549 21 534 537 543 546 21 + 534 576 570 573 18 531 525 519 579 10 + 531 525 534 537 3 531 525 534 576 3 + 528 525 519 579 10 528 525 534 537 3 + 528 525 534 576 3 525 534 537 540 20 + 522 519 525 528 10 522 519 525 531 10 + 522 519 525 534 10 522 519 579 582 23 + 522 519 -579 582 3 522 519 -579 582 24 + 522 519 579 585 3 519 579 585 588 2 + 516 513 519 522 3 516 513 519 525 3 + 516 513 519 579 3 513 519 525 528 10 + 513 519 525 531 10 648 645 651 654 1 + 648 645 -651 654 2 648 645 651 657 1 + 648 645 -651 657 2 630 624 633 636 10 + 630 624 633 639 10 630 624 633 642 10 + 627 624 633 636 10 627 624 633 639 10 + 627 624 633 642 10 621 615 624 627 10 + 621 615 624 630 10 621 615 624 633 10 + 618 615 624 627 10 618 615 624 630 10 + 618 615 624 633 10 615 624 633 636 10 + 615 624 633 639 10 615 624 633 642 10 + 612 606 615 618 29 612 606 615 621 29 + 612 606 615 624 15 609 606 615 618 29 + 609 606 615 621 29 609 606 615 624 15 + 606 615 624 627 10 606 615 624 630 10 + 603 597 591 645 10 603 597 606 609 29 + 603 597 606 612 29 603 597 606 615 15 + 600 597 591 645 10 600 597 606 609 29 + 600 597 606 612 29 600 597 606 615 15 + 597 606 615 618 15 597 606 615 621 15 + 594 591 597 600 10 594 591 597 603 10 + 594 591 597 606 10 594 591 645 648 23 + 594 591 -645 648 3 594 591 -645 648 24 + 594 591 645 651 3 591 597 606 609 15 + 591 597 606 612 15 591 645 651 654 2 + 591 645 651 657 2 588 585 591 594 3 + 588 585 591 597 3 588 585 591 645 3 + 585 591 597 600 10 585 591 597 603 10 + 726 696 699 729 16 714 672 675 717 16 + 708 669 666 711 16 708 669 672 714 16 + 705 693 690 723 16 705 693 696 726 16 + 702 687 690 723 16 696 693 690 723 16 + 693 696 699 729 16 690 693 696 726 16 + 687 684 699 729 16 684 687 690 723 16 + 684 699 696 726 16 681 663 666 711 16 + 678 660 675 717 16 678 684 699 729 16 + 672 669 666 711 16 669 672 675 717 16 + 666 663 681 720 36 666 669 672 714 16 + 663 660 675 717 16 660 663 666 711 16 + 660 663 681 720 36 660 675 672 714 16 + 90 102 -96 -99 34 84 96 -90 -93 34 + 78 90 -84 -87 34 75 84 -78 -81 34 + 63 75 -69 -72 35 60 69 -63 -66 34 + 33 45 -39 -42 34 105 117 -111 -114 34 + 204 216 -210 -213 34 198 210 -204 -207 34 + 192 204 -198 -201 34 189 198 -192 -195 34 + 177 189 -183 -186 35 174 183 -177 -180 34 + 147 159 -153 -156 34 219 231 -225 -228 34 + 291 300 -297 -303 35 264 276 -270 -273 34 + 306 318 -312 -315 34 327 339 -333 -336 34 + 450 462 -456 -459 34 444 456 -450 -453 34 + 438 450 -444 -447 34 435 444 -438 -441 34 + 423 435 -429 -432 35 420 429 -423 -426 34 + 393 405 -399 -402 34 465 477 -471 -474 34 + 564 576 -570 -573 34 558 570 -564 -567 34 + 552 564 -558 -561 34 549 558 -552 -555 34 + 537 549 -543 -546 35 534 543 -537 -540 34 + 507 519 -513 -516 34 579 591 -585 -588 34 + 645 654 -651 -657 35 684 696 -699 -729 37 693 699 -696 -726 37 687 693 -690 -723 37 660 672 -675 -717 37 669 675 -672 -714 37 663 669 -666 -711 37 %FLAG DIHEDRALS_WITHOUT_HYDROGEN %FORMAT(10I8) - 36 33 39 45 1 33 39 45 51 2 - 33 39 -45 51 3 33 39 -45 51 4 - 33 39 -45 51 5 33 39 45 105 6 - 33 39 -45 105 7 33 39 -45 105 8 - 33 39 -45 105 5 27 18 12 33 9 - 18 12 33 36 10 18 12 33 39 11 - 18 12 -33 39 12 18 12 -33 39 4 - 18 12 -33 39 5 12 33 39 45 1 - 0 12 18 27 9 0 12 33 36 10 - 0 12 33 39 10 108 105 111 117 1 - 105 111 117 123 2 105 111 -117 123 3 - 105 111 -117 123 4 105 111 -117 123 5 - 105 111 117 147 6 105 111 -117 147 7 - 105 111 -117 147 8 105 111 -117 147 5 - 84 78 75 102 13 84 90 -96 102 13 - 78 75 102 96 14 78 84 -90 96 13 - 75 78 84 90 13 75 102 -96 90 15 - 69 63 -60 102 16 69 75 78 84 13 - 69 75 102 96 14 63 60 -102 75 17 - 63 60 102 96 17 63 69 75 78 18 - 63 69 -75 102 18 60 51 45 105 9 - 60 63 -69 75 19 60 102 -75 69 14 - 60 102 75 78 14 60 102 96 90 15 - 51 45 105 108 10 51 45 105 111 11 - 51 45 -105 111 12 51 45 -105 111 4 - 51 45 -105 111 5 51 60 63 69 16 - 51 60 102 75 17 51 60 102 96 17 - 45 51 60 63 10 45 51 60 102 10 - 45 105 111 117 1 39 45 51 60 9 - 39 45 105 108 10 39 45 105 111 20 - 39 45 -105 111 21 39 45 -105 111 22 - 39 45 -105 111 5 150 147 153 159 1 - 147 153 159 165 2 147 153 -159 165 3 - 147 153 -159 165 4 147 153 -159 165 5 - 147 153 159 219 6 147 153 -159 219 7 - 147 153 -159 219 8 147 153 -159 219 5 - 141 123 117 147 9 129 123 117 147 9 - 123 117 147 150 10 123 117 147 153 11 - 123 117 -147 153 12 123 117 -147 153 4 - 123 117 -147 153 5 117 147 153 159 1 - 111 117 123 129 9 111 117 123 141 9 - 111 117 147 150 10 111 117 147 153 20 - 111 117 -147 153 21 111 117 -147 153 22 - 111 117 -147 153 5 222 219 225 231 1 - 219 225 231 237 2 219 225 -231 237 3 - 219 225 -231 237 4 219 225 -231 237 5 - 219 225 231 264 6 219 225 -231 264 7 - 219 225 -231 264 8 219 225 -231 264 5 - 198 192 189 216 13 198 204 -210 216 13 - 192 189 216 210 14 192 198 -204 210 13 - 189 192 198 204 13 189 216 -210 204 15 - 183 177 -174 216 16 183 189 192 198 13 - 183 189 216 210 14 177 174 -216 189 17 - 177 174 216 210 17 177 183 189 192 18 - 177 183 -189 216 18 174 165 159 219 9 - 174 177 -183 189 19 174 216 -189 183 14 - 174 216 189 192 14 174 216 210 204 15 - 165 159 219 222 10 165 159 219 225 11 - 165 159 -219 225 12 165 159 -219 225 4 - 165 159 -219 225 5 165 174 177 183 16 - 165 174 216 189 17 165 174 216 210 17 - 159 165 174 177 10 159 165 174 216 10 - 159 219 225 231 1 153 159 165 174 9 - 153 159 219 222 10 153 159 219 225 20 - 153 159 -219 225 21 153 159 -219 225 22 - 153 159 -219 225 5 267 264 270 276 1 - 264 270 276 282 2 264 270 -276 282 3 - 264 270 -276 282 4 264 270 -276 282 5 - 264 270 276 306 6 264 270 -276 306 7 - 264 270 -276 306 8 264 270 -276 306 5 - 246 237 231 264 9 237 231 264 267 10 - 237 231 264 270 11 237 231 -264 270 12 - 237 231 -264 270 4 237 231 -264 270 5 - 237 246 255 258 10 237 246 255 261 10 - 231 237 246 255 9 231 264 270 276 1 - 225 231 237 246 9 225 231 264 267 10 - 225 231 264 270 20 225 231 -264 270 21 - 225 231 -264 270 22 225 231 -264 270 5 - 309 306 312 318 1 306 312 318 327 6 - 306 312 -318 327 7 306 312 -318 327 8 - 306 312 -318 327 5 291 282 276 306 9 - 282 276 306 309 10 282 276 306 312 11 - 282 276 -306 312 12 282 276 -306 312 4 - 282 276 -306 312 5 276 282 291 294 10 - 276 282 291 297 11 276 282 -291 297 12 - 276 282 -291 297 4 276 282 -291 297 5 - 276 306 312 318 1 270 276 282 291 9 - 270 276 306 309 10 270 276 306 312 20 - 270 276 -306 312 21 270 276 -306 312 22 - 270 276 -306 312 5 330 327 333 339 1 - 327 333 339 345 2 327 333 -339 345 3 - 327 333 -339 345 4 327 333 -339 345 5 - 327 333 339 393 6 327 333 -339 393 7 - 327 333 -339 393 8 327 333 -339 393 5 - 318 327 333 339 1 312 318 327 330 10 - 312 318 327 333 20 312 318 -327 333 21 - 312 318 -327 333 22 312 318 -327 333 5 - 396 393 399 405 1 393 399 405 411 2 - 393 399 -405 411 3 393 399 -405 411 4 - 393 399 -405 411 5 393 399 405 465 6 - 393 399 -405 465 7 393 399 -405 465 8 - 393 399 -405 465 5 354 345 339 393 9 - 354 363 372 381 9 345 339 393 396 10 - 345 339 393 399 11 345 339 -393 399 12 - 345 339 -393 399 4 345 339 -393 399 5 - 345 354 363 372 23 345 354 -363 372 24 - 345 354 -363 372 25 339 345 354 363 23 - 339 345 -354 363 24 339 345 -354 363 25 - 339 393 399 405 1 333 339 345 354 9 - 333 339 393 396 10 333 339 393 399 20 - 333 339 -393 399 21 333 339 -393 399 22 - 333 339 -393 399 5 468 465 471 477 1 - 465 471 477 483 2 465 471 -477 483 3 - 465 471 -477 483 4 465 471 -477 483 5 - 465 471 477 507 6 465 471 -477 507 7 - 465 471 -477 507 8 465 471 -477 507 5 - 444 438 435 462 13 444 450 -456 462 13 - 438 435 462 456 14 438 444 -450 456 13 - 435 438 444 450 13 435 462 -456 450 15 - 429 423 -420 462 16 429 435 438 444 13 - 429 435 462 456 14 423 420 -462 435 17 - 423 420 462 456 17 423 429 435 438 18 - 423 429 -435 462 18 420 411 405 465 9 - 420 423 -429 435 19 420 462 -435 429 14 - 420 462 435 438 14 420 462 456 450 15 - 411 405 465 468 10 411 405 465 471 11 - 411 405 -465 471 12 411 405 -465 471 4 - 411 405 -465 471 5 411 420 423 429 16 - 411 420 462 435 17 411 420 462 456 17 - 405 411 420 423 10 405 411 420 462 10 - 405 465 471 477 1 399 405 411 420 9 - 399 405 465 468 10 399 405 465 471 20 - 399 405 -465 471 21 399 405 -465 471 22 - 399 405 -465 471 5 510 507 513 519 1 - 507 513 519 525 2 507 513 -519 525 3 - 507 513 -519 525 4 507 513 -519 525 5 - 507 513 519 579 6 507 513 -519 579 7 - 507 513 -519 579 8 507 513 -519 579 5 - 501 483 477 507 9 489 483 477 507 9 - 483 477 507 510 10 483 477 507 513 11 - 483 477 -507 513 12 483 477 -507 513 4 - 483 477 -507 513 5 477 507 513 519 1 - 471 477 483 489 9 471 477 483 501 9 - 471 477 507 510 10 471 477 507 513 20 - 471 477 -507 513 21 471 477 -507 513 22 - 471 477 -507 513 5 582 579 585 591 1 - 579 585 591 597 2 579 585 -591 597 3 - 579 585 -591 597 4 579 585 -591 597 5 - 579 585 591 645 6 579 585 -591 645 7 - 579 585 -591 645 8 579 585 -591 645 5 - 558 552 549 576 13 558 564 -570 576 13 - 552 549 576 570 14 552 558 -564 570 13 - 549 552 558 564 13 549 576 -570 564 15 - 543 537 -534 576 16 543 549 552 558 13 - 543 549 576 570 14 537 534 -576 549 17 - 537 534 576 570 17 537 543 549 552 18 - 537 543 -549 576 18 534 525 519 579 9 - 534 537 -543 549 19 534 576 -549 543 14 - 534 576 549 552 14 534 576 570 564 15 - 525 519 579 582 10 525 519 579 585 11 - 525 519 -579 585 12 525 519 -579 585 4 - 525 519 -579 585 5 525 534 537 543 16 - 525 534 576 549 17 525 534 576 570 17 - 519 525 534 537 10 519 525 534 576 10 - 519 579 585 591 1 513 519 525 534 9 - 513 519 579 582 10 513 519 579 585 20 - 513 519 -579 585 21 513 519 -579 585 22 - 513 519 -579 585 5 606 597 591 645 9 - 606 615 624 633 9 597 591 645 648 10 - 597 591 645 651 11 597 591 -645 651 12 - 597 591 -645 651 4 597 591 -645 651 5 - 597 606 615 624 23 597 606 -615 624 24 - 597 606 -615 624 25 591 597 606 615 23 - 591 597 -606 615 24 591 597 -606 615 25 - 585 591 597 606 9 585 591 645 648 10 - 585 591 645 651 20 585 591 -645 651 21 - 585 591 -645 651 22 585 591 -645 651 5 - 12 39 -33 -36 26 45 111 -105 -108 26 - 102 51 -60 -63 27 117 153 -147 -150 26 - 159 225 -219 -222 26 216 165 -174 -177 27 - 231 270 -264 -267 26 246 258 -255 -261 26 - 276 312 -306 -309 26 282 297 -291 -294 26 - 318 333 -327 -330 26 339 399 -393 -396 26 - 405 471 -465 -468 26 462 411 -420 -423 27 - 477 513 -507 -510 26 519 585 -579 -582 26 - 576 525 -534 -537 27 591 651 -645 -648 26 - 699 684 687 702 13 699 696 693 705 13 - 693 690 687 702 13 690 687 684 699 13 - 690 693 -696 699 13 687 684 699 696 13 - 687 690 -693 696 13 687 690 693 705 13 - 684 687 690 693 13 684 699 -696 693 13 - 678 660 663 681 13 678 684 687 690 13 - 678 684 687 702 13 678 684 699 696 13 - 675 660 663 681 13 675 660 678 684 36 - 675 672 669 708 13 672 675 660 678 13 - 669 666 663 681 13 666 663 660 675 13 - 666 663 660 678 13 666 669 -672 675 13 - 663 660 675 672 13 663 660 678 684 36 - 663 666 -669 672 13 663 666 669 708 13 - 660 663 666 669 13 660 675 -672 669 13 + 36 33 39 45 2 33 39 45 51 1 + 33 39 -45 51 4 33 39 -45 51 5 + 33 39 -45 51 6 33 39 45 105 7 + 33 39 -45 105 8 33 39 -45 105 9 + 33 39 -45 105 6 27 18 12 33 10 + 18 12 33 36 3 18 12 33 39 12 + 18 12 -33 39 13 18 12 -33 39 5 + 18 12 -33 39 6 12 33 39 45 2 + 0 12 18 27 10 0 12 33 36 3 + 0 12 33 39 3 108 105 111 117 2 + 105 111 117 123 1 105 111 -117 123 4 + 105 111 -117 123 5 105 111 -117 123 6 + 105 111 117 147 7 105 111 -117 147 8 + 105 111 -117 147 9 105 111 -117 147 6 + 84 78 75 102 16 84 90 -96 102 16 + 78 75 102 96 17 78 84 -90 96 16 + 75 78 84 90 16 75 102 -96 90 18 + 69 63 -60 102 20 69 75 78 84 16 + 69 75 102 96 17 63 60 -102 75 22 + 63 60 102 96 22 63 69 75 78 19 + 63 69 -75 102 19 60 51 45 105 10 + 60 63 -69 75 21 60 102 -75 69 17 + 60 102 75 78 17 60 102 96 90 18 + 51 45 105 108 3 51 45 105 111 12 + 51 45 -105 111 13 51 45 -105 111 5 + 51 45 -105 111 6 51 60 63 69 20 + 51 60 102 75 22 51 60 102 96 22 + 45 51 60 63 3 45 51 60 102 3 + 45 105 111 117 2 39 45 51 60 10 + 39 45 105 108 3 39 45 105 111 25 + 39 45 -105 111 26 39 45 -105 111 27 + 39 45 -105 111 6 150 147 153 159 2 + 147 153 159 165 1 147 153 -159 165 4 + 147 153 -159 165 5 147 153 -159 165 6 + 147 153 159 219 7 147 153 -159 219 8 + 147 153 -159 219 9 147 153 -159 219 6 + 141 123 117 147 10 129 123 117 147 10 + 123 117 147 150 3 123 117 147 153 12 + 123 117 -147 153 13 123 117 -147 153 5 + 123 117 -147 153 6 117 147 153 159 2 + 111 117 123 129 10 111 117 123 141 10 + 111 117 147 150 3 111 117 147 153 25 + 111 117 -147 153 26 111 117 -147 153 27 + 111 117 -147 153 6 222 219 225 231 2 + 219 225 231 237 1 219 225 -231 237 4 + 219 225 -231 237 5 219 225 -231 237 6 + 219 225 231 264 7 219 225 -231 264 8 + 219 225 -231 264 9 219 225 -231 264 6 + 198 192 189 216 16 198 204 -210 216 16 + 192 189 216 210 17 192 198 -204 210 16 + 189 192 198 204 16 189 216 -210 204 18 + 183 177 -174 216 20 183 189 192 198 16 + 183 189 216 210 17 177 174 -216 189 22 + 177 174 216 210 22 177 183 189 192 19 + 177 183 -189 216 19 174 165 159 219 10 + 174 177 -183 189 21 174 216 -189 183 17 + 174 216 189 192 17 174 216 210 204 18 + 165 159 219 222 3 165 159 219 225 12 + 165 159 -219 225 13 165 159 -219 225 5 + 165 159 -219 225 6 165 174 177 183 20 + 165 174 216 189 22 165 174 216 210 22 + 159 165 174 177 3 159 165 174 216 3 + 159 219 225 231 2 153 159 165 174 10 + 153 159 219 222 3 153 159 219 225 25 + 153 159 -219 225 26 153 159 -219 225 27 + 153 159 -219 225 6 267 264 270 276 2 + 264 270 276 282 1 264 270 -276 282 4 + 264 270 -276 282 5 264 270 -276 282 6 + 264 270 276 306 7 264 270 -276 306 8 + 264 270 -276 306 9 264 270 -276 306 6 + 246 237 231 264 10 237 231 264 267 3 + 237 231 264 270 12 237 231 -264 270 13 + 237 231 -264 270 5 237 231 -264 270 6 + 237 246 255 258 3 237 246 255 261 3 + 231 237 246 255 10 231 264 270 276 2 + 225 231 237 246 10 225 231 264 267 3 + 225 231 264 270 25 225 231 -264 270 26 + 225 231 -264 270 27 225 231 -264 270 6 + 309 306 312 318 2 306 312 318 327 7 + 306 312 -318 327 8 306 312 -318 327 9 + 306 312 -318 327 6 291 282 276 306 10 + 282 276 306 309 3 282 276 306 312 12 + 282 276 -306 312 13 282 276 -306 312 5 + 282 276 -306 312 6 276 282 291 294 3 + 276 282 291 297 12 276 282 -291 297 13 + 276 282 -291 297 5 276 282 -291 297 6 + 276 306 312 318 2 270 276 282 291 10 + 270 276 306 309 3 270 276 306 312 25 + 270 276 -306 312 26 270 276 -306 312 27 + 270 276 -306 312 6 330 327 333 339 2 + 327 333 339 345 1 327 333 -339 345 4 + 327 333 -339 345 5 327 333 -339 345 6 + 327 333 339 393 7 327 333 -339 393 8 + 327 333 -339 393 9 327 333 -339 393 6 + 318 327 333 339 2 312 318 327 330 3 + 312 318 327 333 25 312 318 -327 333 26 + 312 318 -327 333 27 312 318 -327 333 6 + 396 393 399 405 2 393 399 405 411 1 + 393 399 -405 411 4 393 399 -405 411 5 + 393 399 -405 411 6 393 399 405 465 7 + 393 399 -405 465 8 393 399 -405 465 9 + 393 399 -405 465 6 354 345 339 393 10 + 354 363 372 381 10 345 339 393 396 3 + 345 339 393 399 12 345 339 -393 399 13 + 345 339 -393 399 5 345 339 -393 399 6 + 345 354 363 372 30 345 354 -363 372 31 + 345 354 -363 372 32 339 345 354 363 30 + 339 345 -354 363 31 339 345 -354 363 32 + 339 393 399 405 2 333 339 345 354 10 + 333 339 393 396 3 333 339 393 399 25 + 333 339 -393 399 26 333 339 -393 399 27 + 333 339 -393 399 6 468 465 471 477 2 + 465 471 477 483 1 465 471 -477 483 4 + 465 471 -477 483 5 465 471 -477 483 6 + 465 471 477 507 7 465 471 -477 507 8 + 465 471 -477 507 9 465 471 -477 507 6 + 444 438 435 462 16 444 450 -456 462 16 + 438 435 462 456 17 438 444 -450 456 16 + 435 438 444 450 16 435 462 -456 450 18 + 429 423 -420 462 20 429 435 438 444 16 + 429 435 462 456 17 423 420 -462 435 22 + 423 420 462 456 22 423 429 435 438 19 + 423 429 -435 462 19 420 411 405 465 10 + 420 423 -429 435 21 420 462 -435 429 17 + 420 462 435 438 17 420 462 456 450 18 + 411 405 465 468 3 411 405 465 471 12 + 411 405 -465 471 13 411 405 -465 471 5 + 411 405 -465 471 6 411 420 423 429 20 + 411 420 462 435 22 411 420 462 456 22 + 405 411 420 423 3 405 411 420 462 3 + 405 465 471 477 2 399 405 411 420 10 + 399 405 465 468 3 399 405 465 471 25 + 399 405 -465 471 26 399 405 -465 471 27 + 399 405 -465 471 6 510 507 513 519 2 + 507 513 519 525 1 507 513 -519 525 4 + 507 513 -519 525 5 507 513 -519 525 6 + 507 513 519 579 7 507 513 -519 579 8 + 507 513 -519 579 9 507 513 -519 579 6 + 501 483 477 507 10 489 483 477 507 10 + 483 477 507 510 3 483 477 507 513 12 + 483 477 -507 513 13 483 477 -507 513 5 + 483 477 -507 513 6 477 507 513 519 2 + 471 477 483 489 10 471 477 483 501 10 + 471 477 507 510 3 471 477 507 513 25 + 471 477 -507 513 26 471 477 -507 513 27 + 471 477 -507 513 6 582 579 585 591 2 + 579 585 591 597 1 579 585 -591 597 4 + 579 585 -591 597 5 579 585 -591 597 6 + 579 585 591 645 7 579 585 -591 645 8 + 579 585 -591 645 9 579 585 -591 645 6 + 558 552 549 576 16 558 564 -570 576 16 + 552 549 576 570 17 552 558 -564 570 16 + 549 552 558 564 16 549 576 -570 564 18 + 543 537 -534 576 20 543 549 552 558 16 + 543 549 576 570 17 537 534 -576 549 22 + 537 534 576 570 22 537 543 549 552 19 + 537 543 -549 576 19 534 525 519 579 10 + 534 537 -543 549 21 534 576 -549 543 17 + 534 576 549 552 17 534 576 570 564 18 + 525 519 579 582 3 525 519 579 585 12 + 525 519 -579 585 13 525 519 -579 585 5 + 525 519 -579 585 6 525 534 537 543 20 + 525 534 576 549 22 525 534 576 570 22 + 519 525 534 537 3 519 525 534 576 3 + 519 579 585 591 2 513 519 525 534 10 + 513 519 579 582 3 513 519 579 585 25 + 513 519 -579 585 26 513 519 -579 585 27 + 513 519 -579 585 6 606 597 591 645 10 + 606 615 624 633 10 597 591 645 648 3 + 597 591 645 651 12 597 591 -645 651 13 + 597 591 -645 651 5 597 591 -645 651 6 + 597 606 615 624 30 597 606 -615 624 31 + 597 606 -615 624 32 591 597 606 615 30 + 591 597 -606 615 31 591 597 -606 615 32 + 585 591 597 606 10 585 591 645 648 3 + 585 591 645 651 25 585 591 -645 651 26 + 585 591 -645 651 27 585 591 -645 651 6 + 699 684 687 702 16 699 696 693 705 16 + 693 690 687 702 16 690 687 684 699 16 + 690 693 -696 699 16 687 684 699 696 16 + 687 690 -693 696 16 687 690 693 705 16 + 684 687 690 693 16 684 699 -696 693 16 + 678 660 663 681 16 678 684 687 690 16 + 678 684 687 702 16 678 684 699 696 16 + 675 660 663 681 16 675 660 678 684 36 + 675 672 669 708 16 672 675 660 678 16 + 669 666 663 681 16 666 663 660 675 16 + 666 663 660 678 16 666 669 -672 675 16 + 663 660 675 672 16 663 660 678 684 36 + 663 666 -669 672 16 663 666 669 708 16 + 660 663 666 669 16 660 675 -672 669 16 660 678 684 687 36 660 678 684 699 36 + 12 39 -33 -36 33 45 111 -105 -108 33 + 102 51 -60 -63 34 117 153 -147 -150 33 + 159 225 -219 -222 33 216 165 -174 -177 34 + 231 270 -264 -267 33 246 258 -255 -261 33 + 276 312 -306 -309 33 282 297 -291 -294 33 + 318 333 -327 -330 33 339 399 -393 -396 33 + 405 471 -465 -468 33 462 411 -420 -423 34 + 477 513 -507 -510 33 519 585 -579 -582 33 + 576 525 -534 -537 34 591 651 -645 -648 33 690 696 -693 -705 37 684 690 -687 -702 37 687 699 -684 -678 37 666 672 -669 -708 37 - 660 666 -663 -681 37 678 660 -675 -663 37 + 660 666 -663 -681 37 663 675 -660 -678 37 %FLAG EXCLUDED_ATOMS_LIST %FORMAT(10I8) 2 3 4 5 6 7 8 9 10 12 @@ -1332,7 +1355,10 @@ BLA BLA BLA BLA 220 24 %FLAG BOX_DIMENSIONS %FORMAT(5E16.8) - 1.09471219E+02 4.24388485E+01 4.24388485E+01 4.24388485E+01 + 1.09471222E+02 4.24388504E+01 4.24388504E+01 4.24388504E+01 +%FLAG RADIUS_SET +%FORMAT(1a80) +modified Bondi radii (mbondi) %FLAG RADII %FORMAT(5E16.8) 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 @@ -1435,6 +1461,9 @@ BLA BLA BLA BLA 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 8.00000000E-01 8.00000000E-01 8.00000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 %FLAG RESIDUE_NUMBER %FORMAT(20I4) 1 2 3 4 5 6 7 8 9 10 11 12 13 270 diff --git a/test/Test_CompareTop/parm.diff.save b/test/Test_CompareTop/parm.diff.save index a1795efcd2..dbc95feb70 100644 --- a/test/Test_CompareTop/parm.diff.save +++ b/test/Test_CompareTop/parm.diff.save @@ -241,557 +241,557 @@ < Tk= 80 Teq= 1.91463 < Tk= 80 Teq= 2.10138 # Dihedrals -< :1@N - :1@CA - :1@C - :2@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :1@N - :1@CA - :1@C - :2@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :1@N - :1@CA - :1@C - :2@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :1@N - :1@CA - :1@C - :2@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :1@N - :1@CA - :1@C - :2@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :1@N - :1@CA - :1@C - :2@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :1@N - :1@CA - :1@C - :2@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :1@N - :1@CA - :1@C - :2@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :1@N - :1@CA - :1@C - :2@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :1@C - :2@N - :2@CA - :2@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :1@C - :2@N - :2@CA - :2@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :1@C - :2@N - :2@CA - :2@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :1@C - :2@N - :2@CA - :2@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :1@C - :2@N - :2@CA - :2@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :1@C - :2@N - :2@CA - :2@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :1@C - :2@N - :2@CA - :2@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :1@C - :2@N - :2@CA - :2@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :1@C - :2@N - :2@CA - :2@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :1@C - :2@N - :2@CA - :2@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :1@C - :2@N - :2@CA - :2@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :1@C - :2@N - :2@CA - :2@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :1@C - :2@N - :2@CA - :2@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :1@C - :2@N - :2@CA - :2@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :1@C - :2@N - :2@CA - :2@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :1@C - :2@N - :2@CA - :2@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :1@C - :2@N - :2@CA - :2@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :1@C - :2@N - :2@CA - :2@CB {C-N-CX-CT} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :1@C - :2@N - :2@CA - :2@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :1@C - :2@N - :2@CA - :2@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :2@CB - :2@CA - :2@C - :3@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :2@CB - :2@CA - :2@C - :3@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :2@CB - :2@CA - :2@C - :3@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :1@C - :2@N - :2@CA - :2@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :1@C - :2@N - :2@CA - :2@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :2@CB - :2@CA - :2@C - :3@N {CT-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :2@CB - :2@CA - :2@C - :3@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :2@CB - :2@CA - :2@C - :3@N {CT-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :2@CB - :2@CA - :2@C - :3@N {CT-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :2@N - :2@CA - :2@C - :3@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :2@CB - :2@CA - :2@C - :3@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :2@CB - :2@CA - :2@C - :3@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :2@N - :2@CA - :2@C - :3@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :2@N - :2@CA - :2@C - :3@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :2@N - :2@CA - :2@C - :3@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :2@N - :2@CA - :2@C - :3@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :2@N - :2@CA - :2@C - :3@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :2@N - :2@CA - :2@C - :3@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :2@N - :2@CA - :2@C - :3@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :2@N - :2@CA - :2@C - :3@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :2@C - :3@N - :3@CA - :3@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :2@C - :3@N - :3@CA - :3@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :2@C - :3@N - :3@CA - :3@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :2@C - :3@N - :3@CA - :3@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :2@C - :3@N - :3@CA - :3@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :2@C - :3@N - :3@CA - :3@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :2@C - :3@N - :3@CA - :3@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :2@C - :3@N - :3@CA - :3@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :2@C - :3@N - :3@CA - :3@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :2@C - :3@N - :3@CA - :3@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :2@C - :3@N - :3@CA - :3@CB {C-N-CX-3C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :2@C - :3@N - :3@CA - :3@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :2@C - :3@N - :3@CA - :3@CB {C-N-CX-3C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :2@C - :3@N - :3@CA - :3@CB {C-N-CX-3C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :2@C - :3@N - :3@CA - :3@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :2@C - :3@N - :3@CA - :3@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :2@C - :3@N - :3@CA - :3@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :2@C - :3@N - :3@CA - :3@CB {C-N-CX-3C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :2@C - :3@N - :3@CA - :3@CB {C-N-CX-3C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :2@C - :3@N - :3@CA - :3@CB {C-N-CX-3C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :3@CG1 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :2@C - :3@N - :3@CA - :3@CB {C-N-CX-3C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :2@C - :3@N - :3@CA - :3@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@CG1 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@CG1 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :3@CG1 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :3@CG1 - :3@CB - :3@CA - :3@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :3@CG1 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@CG1 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@CG2 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :3@CG1 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :3@CG2 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@CG2 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :3@CG2 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :3@CG2 - :3@CB - :3@CA - :3@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :3@CG2 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@CG2 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@CB - :3@CG1 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@CG2 - :3@CB - :3@CA - :3@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@CB - :3@CG1 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@CB - :3@CG1 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :3@N - :3@CA - :3@CB - :3@CG1 {N-CX-3C-CT} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :3@N - :3@CA - :3@CB - :3@CG1 {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@CB - :3@CG1 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@CB - :3@CG1 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@CB - :3@CG2 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@CB - :3@CG1 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@CB - :3@CG2 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@CB - :3@CG2 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :3@N - :3@CA - :3@CB - :3@CG2 {N-CX-3C-CT} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :3@N - :3@CA - :3@CB - :3@CG2 {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@CB - :3@CG2 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@CB - :3@CG2 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :3@CB - :3@CA - :3@C - :4@N {3C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :3@CB - :3@CA - :3@C - :4@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :3@CB - :3@CA - :3@C - :4@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@CB - :3@CG2 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :3@CB - :3@CA - :3@C - :4@N {3C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :3@CB - :3@CA - :3@C - :4@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :3@CB - :3@CA - :3@C - :4@N {3C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :3@CB - :3@CA - :3@C - :4@N {3C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@C - :4@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :3@CB - :3@CA - :3@C - :4@N {3C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :3@CB - :3@CA - :3@C - :4@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :3@N - :3@CA - :3@C - :4@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@C - :4@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :3@N - :3@CA - :3@C - :4@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :3@N - :3@CA - :3@C - :4@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@C - :4@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :3@N - :3@CA - :3@C - :4@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@C - :4@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@N - :3@CA - :3@C - :4@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :3@C - :4@N - :4@CA - :4@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :3@C - :4@N - :4@CA - :4@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :3@C - :4@N - :4@CA - :4@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :3@C - :4@N - :4@CA - :4@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :3@C - :4@N - :4@CA - :4@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :3@C - :4@N - :4@CA - :4@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :3@C - :4@N - :4@CA - :4@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :3@C - :4@N - :4@CA - :4@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :3@C - :4@N - :4@CA - :4@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :3@C - :4@N - :4@CA - :4@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :3@C - :4@N - :4@CA - :4@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :3@C - :4@N - :4@CA - :4@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :3@C - :4@N - :4@CA - :4@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :3@C - :4@N - :4@CA - :4@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :3@C - :4@N - :4@CA - :4@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :3@C - :4@N - :4@CA - :4@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :3@C - :4@N - :4@CA - :4@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :3@C - :4@N - :4@CA - :4@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :3@C - :4@N - :4@CA - :4@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :3@C - :4@N - :4@CA - :4@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :3@C - :4@N - :4@CA - :4@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :3@C - :4@N - :4@CA - :4@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +> :4@CA - :4@CB - :4@CG - :4@CD1 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :4@CA - :4@CB - :4@CG - :4@CD1 {CX-2C-3C-CT} Pk=0.379 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :4@CA - :4@CB - :4@CG - :4@CD1 {CX-2C-3C-CT} Pk=0.027 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +> :4@CA - :4@CB - :4@CG - :4@CD1 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :4@CA - :4@CB - :4@CG - :4@CD1 {CX-2C-3C-CT} Pk=0.142 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :4@CA - :4@CB - :4@CG - :4@CD1 {CX-2C-3C-CT} Pk=0.179 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :4@CA - :4@CB - :4@CG - :4@CD1 {CT-CT-CT-CT} Pk=0.18 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -> :4@CA - :4@CB - :4@CG - :4@CD1 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -> :4@CA - :4@CB - :4@CG - :4@CD1 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :4@CA - :4@CB - :4@CG - :4@CD1 {CX-2C-3C-CT} Pk=0.379 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :4@CA - :4@CB - :4@CG - :4@CD1 {CX-2C-3C-CT} Pk=0.179 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :4@CA - :4@CB - :4@CG - :4@CD2 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :4@CA - :4@CB - :4@CG - :4@CD2 {CX-2C-3C-CT} Pk=0.379 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :4@CA - :4@CB - :4@CG - :4@CD2 {CX-2C-3C-CT} Pk=0.027 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +> :4@CA - :4@CB - :4@CG - :4@CD2 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :4@CA - :4@CB - :4@CG - :4@CD2 {CX-2C-3C-CT} Pk=0.142 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :4@CA - :4@CB - :4@CG - :4@CD2 {CX-2C-3C-CT} Pk=0.179 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :4@CA - :4@CB - :4@CG - :4@CD2 {CT-CT-CT-CT} Pk=0.18 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -> :4@CA - :4@CB - :4@CG - :4@CD2 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -> :4@CA - :4@CB - :4@CG - :4@CD2 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :4@CA - :4@CB - :4@CG - :4@CD2 {CX-2C-3C-CT} Pk=0.379 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :4@CA - :4@CB - :4@CG - :4@CD2 {CX-2C-3C-CT} Pk=0.179 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :4@CG - :4@CB - :4@CA - :4@C {3C-2C-CX-C} Pk=0.706 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :4@CG - :4@CB - :4@CA - :4@C {3C-2C-CX-C} Pk=0.62 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :4@CG - :4@CB - :4@CA - :4@C {3C-2C-CX-C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :4@CG - :4@CB - :4@CA - :4@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :4@CG - :4@CB - :4@CA - :4@C {3C-2C-CX-C} Pk=0.19 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :4@CG - :4@CB - :4@CA - :4@C {3C-2C-CX-C} Pk=0.62 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :4@CG - :4@CB - :4@CA - :4@C {3C-2C-CX-C} Pk=0.706 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :4@N - :4@CA - :4@CB - :4@CG {N-CX-2C-3C} Pk=0.073 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :4@N - :4@CA - :4@CB - :4@CG {N-CX-2C-3C} Pk=0.098 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :4@N - :4@CA - :4@CB - :4@CG {N-CX-2C-3C} Pk=0.259 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :4@N - :4@CA - :4@CB - :4@CG {N-CX-2C-3C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :4@N - :4@CA - :4@CB - :4@CG {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :4@N - :4@CA - :4@CB - :4@CG {N-CX-2C-3C} Pk=0.259 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :4@CB - :4@CA - :4@C - :5@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :4@CB - :4@CA - :4@C - :5@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :4@CB - :4@CA - :4@C - :5@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :4@N - :4@CA - :4@CB - :4@CG {N-CX-2C-3C} Pk=0.073 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :4@CB - :4@CA - :4@C - :5@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :4@CB - :4@CA - :4@C - :5@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :4@CB - :4@CA - :4@C - :5@N {2C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :4@CB - :4@CA - :4@C - :5@N {2C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :4@N - :4@CA - :4@C - :5@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :4@CB - :4@CA - :4@C - :5@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :4@CB - :4@CA - :4@C - :5@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :4@N - :4@CA - :4@C - :5@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :4@N - :4@CA - :4@C - :5@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :4@N - :4@CA - :4@C - :5@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :4@N - :4@CA - :4@C - :5@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :4@N - :4@CA - :4@C - :5@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :4@N - :4@CA - :4@C - :5@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :4@N - :4@CA - :4@C - :5@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :4@N - :4@CA - :4@C - :5@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :4@C - :5@N - :5@CA - :5@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :4@C - :5@N - :5@CA - :5@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :4@C - :5@N - :5@CA - :5@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :4@C - :5@N - :5@CA - :5@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :4@C - :5@N - :5@CA - :5@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :4@C - :5@N - :5@CA - :5@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :4@C - :5@N - :5@CA - :5@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :4@C - :5@N - :5@CA - :5@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :4@C - :5@N - :5@CA - :5@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :4@C - :5@N - :5@CA - :5@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :4@C - :5@N - :5@CA - :5@CB {C-N-CX-3C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :4@C - :5@N - :5@CA - :5@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :4@C - :5@N - :5@CA - :5@CB {C-N-CX-3C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :4@C - :5@N - :5@CA - :5@CB {C-N-CX-3C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :4@C - :5@N - :5@CA - :5@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :4@C - :5@N - :5@CA - :5@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :4@C - :5@N - :5@CA - :5@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :4@C - :5@N - :5@CA - :5@CB {C-N-CX-3C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :4@C - :5@N - :5@CA - :5@CB {C-N-CX-3C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :4@C - :5@N - :5@CA - :5@CB {C-N-CX-3C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :4@C - :5@N - :5@CA - :5@CB {C-N-CX-3C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :4@C - :5@N - :5@CA - :5@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +> :5@CA - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@CA - :5@CB - :5@CG1 - :5@CD1 {CX-3C-2C-CT} Pk=0.447 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :5@CA - :5@CB - :5@CG1 - :5@CD1 {CX-3C-2C-CT} Pk=0.053 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +> :5@CA - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :5@CA - :5@CB - :5@CG1 - :5@CD1 {CX-3C-2C-CT} Pk=0.107 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :5@CA - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.18 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -> :5@CA - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 < :5@CA - :5@CB - :5@CG1 - :5@CD1 {CX-3C-2C-CT} Pk=0.23 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :5@CA - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@CA - :5@CB - :5@CG1 - :5@CD1 {CX-3C-2C-CT} Pk=0.447 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :5@CG1 - :5@CB - :5@CA - :5@C {2C-3C-CX-C} Pk=0.113 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :5@CG1 - :5@CB - :5@CA - :5@C {2C-3C-CX-C} Pk=0.115 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :5@CG1 - :5@CB - :5@CA - :5@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :5@CG1 - :5@CB - :5@CA - :5@C {2C-3C-CX-C} Pk=0.162 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :5@CG1 - :5@CB - :5@CA - :5@C {2C-3C-CX-C} Pk=0.735 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@CG2 - :5@CB - :5@CA - :5@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :5@CG1 - :5@CB - :5@CA - :5@C {2C-3C-CX-C} Pk=0.113 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +> :5@CG1 - :5@CB - :5@CA - :5@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :5@CG1 - :5@CB - :5@CA - :5@C {2C-3C-CX-C} Pk=0.115 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :5@CG2 - :5@CB - :5@CA - :5@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@CG2 - :5@CB - :5@CA - :5@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :5@CG2 - :5@CB - :5@CA - :5@C {CT-3C-CX-C} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :5@CG2 - :5@CB - :5@CA - :5@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :5@CG2 - :5@CB - :5@CA - :5@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@CG2 - :5@CB - :5@CA - :5@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@CG2 - :5@CB - :5@CA - :5@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-3C-2C-CT} Pk=0.202 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-3C-2C-CT} Pk=0.077 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +> :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-3C-2C-CT} Pk=0.107 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.18 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -> :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.2 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-3C-2C-CT} Pk=0.202 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-3C-2C-CT} Pk=0.224 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :5@CG2 - :5@CB - :5@CG1 - :5@CD1 {CT-CT-CT-CT} Pk=0.25 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@CB - :5@CG1 {N-CX-3C-2C} Pk=0.097 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@CB - :5@CG1 {N-CX-3C-2C} Pk=0.113 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@CB - :5@CG1 {N-CX-3C-2C} Pk=0.31 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :5@N - :5@CA - :5@CB - :5@CG1 {N-CX-3C-2C} Pk=0.144 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@CB - :5@CG1 {N-CX-3C-2C} Pk=0.113 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :5@N - :5@CA - :5@CB - :5@CG1 {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@CB - :5@CG1 {N-CX-3C-2C} Pk=0.31 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@CB - :5@CG2 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@CB - :5@CG1 {N-CX-3C-2C} Pk=0.097 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@CB - :5@CG2 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@CB - :5@CG2 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :5@N - :5@CA - :5@CB - :5@CG2 {N-CX-3C-CT} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :5@N - :5@CA - :5@CB - :5@CG2 {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@CB - :5@CG2 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@CB - :5@CG2 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :5@CB - :5@CA - :5@C - :6@N {3C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :5@CB - :5@CA - :5@C - :6@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :5@CB - :5@CA - :5@C - :6@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@CB - :5@CG2 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :5@CB - :5@CA - :5@C - :6@N {3C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :5@CB - :5@CA - :5@C - :6@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :5@CB - :5@CA - :5@C - :6@N {3C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :5@CB - :5@CA - :5@C - :6@N {3C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@C - :6@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :5@CB - :5@CA - :5@C - :6@N {3C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :5@CB - :5@CA - :5@C - :6@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :5@N - :5@CA - :5@C - :6@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@C - :6@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :5@N - :5@CA - :5@C - :6@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :5@N - :5@CA - :5@C - :6@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@C - :6@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :5@N - :5@CA - :5@C - :6@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@C - :6@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@N - :5@CA - :5@C - :6@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :5@C - :6@N - :6@CA - :6@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :5@C - :6@N - :6@CA - :6@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :5@C - :6@N - :6@CA - :6@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :5@C - :6@N - :6@CA - :6@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :5@C - :6@N - :6@CA - :6@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :5@C - :6@N - :6@CA - :6@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :5@C - :6@N - :6@CA - :6@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :5@C - :6@N - :6@CA - :6@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :5@C - :6@N - :6@CA - :6@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :5@C - :6@N - :6@CA - :6@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :5@C - :6@N - :6@CA - :6@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :5@C - :6@N - :6@CA - :6@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :5@C - :6@N - :6@CA - :6@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :5@C - :6@N - :6@CA - :6@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :5@C - :6@N - :6@CA - :6@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :5@C - :6@N - :6@CA - :6@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :5@C - :6@N - :6@CA - :6@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :5@C - :6@N - :6@CA - :6@CB {C-N-CX-CT} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :5@C - :6@N - :6@CA - :6@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :5@C - :6@N - :6@CA - :6@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :5@C - :6@N - :6@CA - :6@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :5@C - :6@N - :6@CA - :6@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@CA - :6@CB - :6@CG - :6@CD1 {CX-CT-CA-CA} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :6@CA - :6@CB - :6@CG - :6@CD1 {CT-CT-CA-CA} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :6@CA - :6@CB - :6@CG - :6@CD1 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@CA - :6@CB - :6@CG - :6@CD1 {CX-CT-CA-CA} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :6@CA - :6@CB - :6@CG - :6@CD1 {CX-CT-CA-CA} Pk=0.048 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -< :6@CA - :6@CB - :6@CG - :6@CD1 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@CA - :6@CB - :6@CG - :6@CD2 {CX-CT-CA-CA} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :6@CA - :6@CB - :6@CG - :6@CD2 {CT-CT-CA-CA} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :6@CA - :6@CB - :6@CG - :6@CD2 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@CA - :6@CB - :6@CG - :6@CD2 {CX-CT-CA-CA} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :6@CA - :6@CB - :6@CG - :6@CD2 {CX-CT-CA-CA} Pk=0.048 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -< :6@CA - :6@CB - :6@CG - :6@CD2 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :6@CG - :6@CB - :6@CA - :6@C {CA-CT-CX-C} Pk=0.012 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@CG - :6@CB - :6@CA - :6@C {CA-CT-CX-C} Pk=0.055 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :6@CG - :6@CB - :6@CA - :6@C {CA-CT-CX-C} Pk=0.469 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :6@CG - :6@CB - :6@CA - :6@C {CA-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :6@CG - :6@CB - :6@CA - :6@C {CA-CT-CX-C} Pk=0.192 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :6@CG - :6@CB - :6@CA - :6@C {CA-CT-CX-C} Pk=0.469 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :6@N - :6@CA - :6@CB - :6@CG {N-CX-CT-CA} Pk=0.007 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :6@CG - :6@CB - :6@CA - :6@C {CA-CT-CX-C} Pk=0.012 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@N - :6@CA - :6@CB - :6@CG {N-CX-CT-CA} Pk=0.012 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :6@N - :6@CA - :6@CB - :6@CG {N-CX-CT-CA} Pk=0.29 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :6@N - :6@CA - :6@CB - :6@CG {N-CT-CT-CA} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :6@N - :6@CA - :6@CB - :6@CG {N-CX-CT-CA} Pk=0.192 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :6@N - :6@CA - :6@CB - :6@CG {N-CX-CT-CA} Pk=0.29 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :6@CB - :6@CA - :6@C - :7@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :6@CB - :6@CA - :6@C - :7@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :6@CB - :6@CA - :6@C - :7@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :6@N - :6@CA - :6@CB - :6@CG {N-CX-CT-CA} Pk=0.007 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@CB - :6@CA - :6@C - :7@N {CT-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :6@CB - :6@CA - :6@C - :7@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :6@CB - :6@CA - :6@C - :7@N {CT-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :6@CB - :6@CA - :6@C - :7@N {CT-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :6@N - :6@CA - :6@C - :7@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :6@CB - :6@CA - :6@C - :7@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :6@CB - :6@CA - :6@C - :7@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :6@N - :6@CA - :6@C - :7@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :6@N - :6@CA - :6@C - :7@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :6@N - :6@CA - :6@C - :7@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :6@N - :6@CA - :6@C - :7@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :6@N - :6@CA - :6@C - :7@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :6@N - :6@CA - :6@C - :7@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :6@N - :6@CA - :6@C - :7@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :6@N - :6@CA - :6@C - :7@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :6@C - :7@N - :7@CA - :7@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CA - :7@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CA - :7@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CA - :7@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :6@C - :7@N - :7@CA - :7@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CA - :7@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :6@C - :7@N - :7@CA - :7@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CA - :7@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CA - :7@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :6@C - :7@N - :7@CA - :7@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CA - :7@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :6@C - :7@N - :7@CA - :7@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CA - :7@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CA - :7@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :6@C - :7@N - :7@CA - :7@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :6@C - :7@N - :7@CA - :7@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :6@C - :7@N - :7@CA - :7@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :6@C - :7@N - :7@CA - :7@CB {C-N-CX-CT} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CA - :7@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CA - :7@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CA - :7@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :6@C - :7@N - :7@CA - :7@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +> :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 < :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :6@C - :7@N - :7@CD - :7@CG {C-N-CT-CT} Pk=2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :7@CB - :7@CA - :7@C - :8@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :7@CB - :7@CA - :7@C - :8@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :7@CB - :7@CA - :7@C - :8@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :7@CB - :7@CA - :7@C - :8@N {CT-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :7@CB - :7@CA - :7@C - :8@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :7@CB - :7@CA - :7@C - :8@N {CT-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :7@CB - :7@CA - :7@C - :8@N {CT-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :7@N - :7@CA - :7@C - :8@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :7@CB - :7@CA - :7@C - :8@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :7@CB - :7@CA - :7@C - :8@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :7@N - :7@CA - :7@C - :8@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :7@N - :7@CA - :7@C - :8@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :7@N - :7@CA - :7@C - :8@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :7@N - :7@CA - :7@C - :8@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :7@N - :7@CA - :7@C - :8@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :7@N - :7@CA - :7@C - :8@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :7@N - :7@CA - :7@C - :8@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :7@N - :7@CA - :7@C - :8@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :7@C - :8@N - :8@CA - :8@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :7@C - :8@N - :8@CA - :8@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :7@C - :8@N - :8@CA - :8@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :7@C - :8@N - :8@CA - :8@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :7@C - :8@N - :8@CA - :8@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :7@C - :8@N - :8@CA - :8@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :7@C - :8@N - :8@CA - :8@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :7@C - :8@N - :8@CA - :8@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :7@C - :8@N - :8@CA - :8@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :7@C - :8@N - :8@CA - :8@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :7@C - :8@N - :8@CA - :8@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :7@C - :8@N - :8@CA - :8@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :7@C - :8@N - :8@CA - :8@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :7@C - :8@N - :8@CA - :8@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :7@C - :8@N - :8@CA - :8@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :7@C - :8@N - :8@CA - :8@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :7@C - :8@N - :8@CA - :8@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :7@C - :8@N - :8@CA - :8@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :7@C - :8@N - :8@CA - :8@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :7@C - :8@N - :8@CA - :8@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :8@CA - :8@CB - :8@OG - :8@HG {CX-2C-OH-HO} Pk=0.007 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :8@CA - :8@CB - :8@OG - :8@HG {CT-CT-OH-HO} Pk=0.16 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :7@C - :8@N - :8@CA - :8@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :7@C - :8@N - :8@CA - :8@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :8@CA - :8@CB - :8@OG - :8@HG {CX-2C-OH-HO} Pk=0.211 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :8@CA - :8@CB - :8@OG - :8@HG {CT-CT-OH-HO} Pk=0.25 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :8@CA - :8@CB - :8@OG - :8@HG {CX-2C-OH-HO} Pk=0.267 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :8@CA - :8@CB - :8@OG - :8@HG {CX-2C-OH-HO} Pk=0.444 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :8@N - :8@CA - :8@CB - :8@OG {N-CT-CT-OH} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :8@N - :8@CA - :8@CB - :8@OG {N-CX-2C-OH} Pk=0.16 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :8@CA - :8@CB - :8@OG - :8@HG {CT-CT-OH-HO} Pk=0.16 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :8@CA - :8@CB - :8@OG - :8@HG {CX-2C-OH-HO} Pk=0.267 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :8@CA - :8@CB - :8@OG - :8@HG {CX-2C-OH-HO} Pk=0.007 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :8@N - :8@CA - :8@CB - :8@OG {N-CX-2C-OH} Pk=0.666 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :8@N - :8@CA - :8@CB - :8@OG {N-CX-2C-OH} Pk=0.246 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +> :8@N - :8@CA - :8@CB - :8@OG {N-CT-CT-OH} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :8@N - :8@CA - :8@CB - :8@OG {N-CX-2C-OH} Pk=0.401 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :8@N - :8@CA - :8@CB - :8@OG {N-CX-2C-OH} Pk=0.666 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :8@OG - :8@CB - :8@CA - :8@C {OH-2C-CX-C} Pk=0.129 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :8@OG - :8@CB - :8@CA - :8@C {OH-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :8@N - :8@CA - :8@CB - :8@OG {N-CX-2C-OH} Pk=0.16 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :8@OG - :8@CB - :8@CA - :8@C {OH-2C-CX-C} Pk=0.661 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 < :8@OG - :8@CB - :8@CA - :8@C {OH-2C-CX-C} Pk=0.218 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +> :8@OG - :8@CB - :8@CA - :8@C {OH-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :8@OG - :8@CB - :8@CA - :8@C {OH-2C-CX-C} Pk=0.401 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :8@OG - :8@CB - :8@CA - :8@C {OH-2C-CX-C} Pk=0.661 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :8@CB - :8@CA - :8@C - :9@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :8@CB - :8@CA - :8@C - :9@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :8@CB - :8@CA - :8@C - :9@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :8@OG - :8@CB - :8@CA - :8@C {OH-2C-CX-C} Pk=0.129 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :8@CB - :8@CA - :8@C - :9@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :8@CB - :8@CA - :8@C - :9@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :8@CB - :8@CA - :8@C - :9@N {2C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :8@CB - :8@CA - :8@C - :9@N {2C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :8@N - :8@CA - :8@C - :9@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :8@CB - :8@CA - :8@C - :9@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :8@CB - :8@CA - :8@C - :9@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :8@N - :8@CA - :8@C - :9@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :8@N - :8@CA - :8@C - :9@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :8@N - :8@CA - :8@C - :9@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :8@N - :8@CA - :8@C - :9@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :8@N - :8@CA - :8@C - :9@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :8@N - :8@CA - :8@C - :9@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :8@N - :8@CA - :8@C - :9@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :8@N - :8@CA - :8@C - :9@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :8@C - :9@N - :9@CA - :9@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :8@C - :9@N - :9@CA - :9@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :8@C - :9@N - :9@CA - :9@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :8@C - :9@N - :9@CA - :9@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :8@C - :9@N - :9@CA - :9@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :8@C - :9@N - :9@CA - :9@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :8@C - :9@N - :9@CA - :9@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :8@C - :9@N - :9@CA - :9@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :8@C - :9@N - :9@CA - :9@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :8@C - :9@N - :9@CA - :9@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :8@C - :9@N - :9@CA - :9@CB {C-N-CX-3C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :8@C - :9@N - :9@CA - :9@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :8@C - :9@N - :9@CA - :9@CB {C-N-CX-3C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :8@C - :9@N - :9@CA - :9@CB {C-N-CX-3C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :8@C - :9@N - :9@CA - :9@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :8@C - :9@N - :9@CA - :9@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :8@C - :9@N - :9@CA - :9@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :8@C - :9@N - :9@CA - :9@CB {C-N-CX-3C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :8@C - :9@N - :9@CA - :9@CB {C-N-CX-3C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :8@C - :9@N - :9@CA - :9@CB {C-N-CX-3C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :8@C - :9@N - :9@CA - :9@CB {C-N-CX-3C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :8@C - :9@N - :9@CA - :9@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :9@CA - :9@CB - :9@OG1 - :9@HG1 {CX-3C-OH-HO} Pk=0.006 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :9@CA - :9@CB - :9@OG1 - :9@HG1 {CX-3C-OH-HO} Pk=0.013 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :9@CA - :9@CB - :9@OG1 - :9@HG1 {CT-CT-OH-HO} Pk=0.16 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@CA - :9@CB - :9@OG1 - :9@HG1 {CX-3C-OH-HO} Pk=0.236 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :9@CA - :9@CB - :9@OG1 - :9@HG1 {CT-CT-OH-HO} Pk=0.25 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :9@CA - :9@CB - :9@OG1 - :9@HG1 {CX-3C-OH-HO} Pk=0.251 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :9@CG2 - :9@CB - :9@CA - :9@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :9@CA - :9@CB - :9@OG1 - :9@HG1 {CT-CT-OH-HO} Pk=0.16 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :9@CA - :9@CB - :9@OG1 - :9@HG1 {CX-3C-OH-HO} Pk=0.236 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :9@CA - :9@CB - :9@OG1 - :9@HG1 {CX-3C-OH-HO} Pk=0.013 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :9@CG2 - :9@CB - :9@CA - :9@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :9@CG2 - :9@CB - :9@CA - :9@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :9@CG2 - :9@CB - :9@CA - :9@C {CT-3C-CX-C} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :9@CG2 - :9@CB - :9@CA - :9@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@CG2 - :9@CB - :9@CA - :9@C {CT-3C-CX-C} Pk=0.289 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :9@CG2 - :9@CB - :9@CA - :9@C {CT-3C-CX-C} Pk=0.406 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-3C-OH-HO} Pk=0.048 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :9@CG2 - :9@CB - :9@CA - :9@C {CT-3C-CX-C} Pk=0.112 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-CT-OH-HO} Pk=0.25 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-3C-OH-HO} Pk=0.643 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-3C-OH-HO} Pk=0.079 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-CT-OH-HO} Pk=0.16 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-3C-OH-HO} Pk=0.236 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -> :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-CT-OH-HO} Pk=0.25 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-3C-OH-HO} Pk=0.643 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@CB - :9@CG2 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :9@CG2 - :9@CB - :9@OG1 - :9@HG1 {CT-3C-OH-HO} Pk=0.048 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@CB - :9@CG2 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@CB - :9@CG2 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :9@N - :9@CA - :9@CB - :9@CG2 {N-CX-3C-CT} Pk=0.148 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :9@N - :9@CA - :9@CB - :9@CG2 {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@CB - :9@CG2 {N-CX-3C-CT} Pk=0.216 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@CB - :9@CG2 {N-CX-3C-CT} Pk=0.337 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@CB - :9@CG2 {N-CX-3C-CT} Pk=0.001 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@CB - :9@OG1 {N-CX-3C-OH} Pk=0.674 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :9@N - :9@CA - :9@CB - :9@OG1 {N-CX-3C-OH} Pk=0.006 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@CB - :9@OG1 {N-CX-3C-OH} Pk=0.095 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :9@N - :9@CA - :9@CB - :9@OG1 {N-CT-CT-OH} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :9@N - :9@CA - :9@CB - :9@OG1 {N-CX-3C-OH} Pk=0.315 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@CB - :9@OG1 {N-CX-3C-OH} Pk=0.674 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@CB - :9@OG1 {N-CX-3C-OH} Pk=0.095 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :9@OG1 - :9@CB - :9@CA - :9@C {OH-3C-CX-C} Pk=0.697 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 < :9@OG1 - :9@CB - :9@CA - :9@C {OH-3C-CX-C} Pk=0.119 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :9@OG1 - :9@CB - :9@CA - :9@C {OH-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@OG1 - :9@CB - :9@CA - :9@C {OH-3C-CX-C} Pk=0.156 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :9@OG1 - :9@CB - :9@CA - :9@C {OH-3C-CX-C} Pk=0.315 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@OG1 - :9@CB - :9@CA - :9@C {OH-3C-CX-C} Pk=0.697 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :9@CB - :9@CA - :9@C - :10@N {3C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :9@CB - :9@CA - :9@C - :10@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :9@CB - :9@CA - :9@C - :10@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :9@OG1 - :9@CB - :9@CA - :9@C {OH-3C-CX-C} Pk=0.156 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :9@CB - :9@CA - :9@C - :10@N {3C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :9@CB - :9@CA - :9@C - :10@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :9@CB - :9@CA - :9@C - :10@N {3C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :9@CB - :9@CA - :9@C - :10@N {3C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@C - :10@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :9@CB - :9@CA - :9@C - :10@N {3C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :9@CB - :9@CA - :9@C - :10@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :9@N - :9@CA - :9@C - :10@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@C - :10@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :9@N - :9@CA - :9@C - :10@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :9@N - :9@CA - :9@C - :10@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@C - :10@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :9@N - :9@CA - :9@C - :10@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@C - :10@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :9@N - :9@CA - :9@C - :10@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :9@C - :10@N - :10@CA - :10@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :9@C - :10@N - :10@CA - :10@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :9@C - :10@N - :10@CA - :10@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :9@C - :10@N - :10@CA - :10@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :9@C - :10@N - :10@CA - :10@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :9@C - :10@N - :10@CA - :10@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :9@C - :10@N - :10@CA - :10@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :9@C - :10@N - :10@CA - :10@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :9@C - :10@N - :10@CA - :10@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :9@C - :10@N - :10@CA - :10@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :9@C - :10@N - :10@CA - :10@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :9@C - :10@N - :10@CA - :10@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :9@C - :10@N - :10@CA - :10@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :9@C - :10@N - :10@CA - :10@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :9@C - :10@N - :10@CA - :10@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :9@C - :10@N - :10@CA - :10@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :9@C - :10@N - :10@CA - :10@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :9@C - :10@N - :10@CA - :10@CB {C-N-CX-CT} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :9@C - :10@N - :10@CA - :10@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :9@C - :10@N - :10@CA - :10@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :9@C - :10@N - :10@CA - :10@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :9@C - :10@N - :10@CA - :10@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :10@CA - :10@CB - :10@CG - :10@CD1 {CX-CT-CA-CA} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :10@CA - :10@CB - :10@CG - :10@CD1 {CT-CT-CA-CA} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :10@CA - :10@CB - :10@CG - :10@CD1 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :10@CA - :10@CB - :10@CG - :10@CD1 {CX-CT-CA-CA} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :10@CA - :10@CB - :10@CG - :10@CD1 {CX-CT-CA-CA} Pk=0.048 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -< :10@CA - :10@CB - :10@CG - :10@CD1 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :10@CA - :10@CB - :10@CG - :10@CD2 {CX-CT-CA-CA} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :10@CA - :10@CB - :10@CG - :10@CD2 {CT-CT-CA-CA} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :10@CA - :10@CB - :10@CG - :10@CD2 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :10@CA - :10@CB - :10@CG - :10@CD2 {CX-CT-CA-CA} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :10@CA - :10@CB - :10@CG - :10@CD2 {CX-CT-CA-CA} Pk=0.048 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -< :10@CA - :10@CB - :10@CG - :10@CD2 {CX-CT-CA-CA} Pk=0.069 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :10@CE1 - :10@CZ - :10@OH - :10@HH {CA-C-OH-HO} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :10@CE1 - :10@CZ - :10@OH - :10@HH {CA-C-OH-HO} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :10@CE1 - :10@CZ - :10@OH - :10@HH {CA-C-OH-HO} Pk=0.065 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :10@CE1 - :10@CZ - :10@OH - :10@HH {CA-C-OH-HO} Pk=0.883 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :10@CE1 - :10@CZ - :10@OH - :10@HH {CA-C-OH-HO} Pk=2.3 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :10@CG - :10@CB - :10@CA - :10@C {CA-CT-CX-C} Pk=0.012 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@CE1 - :10@CZ - :10@OH - :10@HH {CA-C-OH-HO} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :10@CE1 - :10@CZ - :10@OH - :10@HH {CA-C-OH-HO} Pk=0.065 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :10@CG - :10@CB - :10@CA - :10@C {CA-CT-CX-C} Pk=0.055 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :10@CG - :10@CB - :10@CA - :10@C {CA-CT-CX-C} Pk=0.469 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :10@CG - :10@CB - :10@CA - :10@C {CA-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :10@CG - :10@CB - :10@CA - :10@C {CA-CT-CX-C} Pk=0.192 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :10@CG - :10@CB - :10@CA - :10@C {CA-CT-CX-C} Pk=0.469 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@CG - :10@CB - :10@CA - :10@C {CA-CT-CX-C} Pk=0.012 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :10@HH - :10@OH - :10@CZ - :10@CE2 {HO-OH-C-CA} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :10@HH - :10@OH - :10@CZ - :10@CE2 {HO-OH-C-CA} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :10@HH - :10@OH - :10@CZ - :10@CE2 {HO-OH-C-CA} Pk=0.065 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :10@HH - :10@OH - :10@CZ - :10@CE2 {HO-OH-C-CA} Pk=0.883 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :10@HH - :10@OH - :10@CZ - :10@CE2 {HO-OH-C-CA} Pk=2.3 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :10@N - :10@CA - :10@CB - :10@CG {N-CX-CT-CA} Pk=0.007 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@HH - :10@OH - :10@CZ - :10@CE2 {HO-OH-C-CA} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :10@HH - :10@OH - :10@CZ - :10@CE2 {HO-OH-C-CA} Pk=0.065 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :10@N - :10@CA - :10@CB - :10@CG {N-CX-CT-CA} Pk=0.012 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@N - :10@CA - :10@CB - :10@CG {N-CX-CT-CA} Pk=0.29 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :10@N - :10@CA - :10@CB - :10@CG {N-CT-CT-CA} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :10@N - :10@CA - :10@CB - :10@CG {N-CX-CT-CA} Pk=0.192 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :10@N - :10@CA - :10@CB - :10@CG {N-CX-CT-CA} Pk=0.29 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :10@CB - :10@CA - :10@C - :11@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :10@CB - :10@CA - :10@C - :11@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :10@CB - :10@CA - :10@C - :11@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :10@N - :10@CA - :10@CB - :10@CG {N-CX-CT-CA} Pk=0.007 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :10@CB - :10@CA - :10@C - :11@N {CT-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :10@CB - :10@CA - :10@C - :11@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :10@CB - :10@CA - :10@C - :11@N {CT-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :10@CB - :10@CA - :10@C - :11@N {CT-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :10@N - :10@CA - :10@C - :11@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :10@CB - :10@CA - :10@C - :11@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :10@CB - :10@CA - :10@C - :11@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :10@N - :10@CA - :10@C - :11@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :10@N - :10@CA - :10@C - :11@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :10@N - :10@CA - :10@C - :11@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :10@N - :10@CA - :10@C - :11@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@N - :10@CA - :10@C - :11@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :10@N - :10@CA - :10@C - :11@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@N - :10@CA - :10@C - :11@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@N - :10@CA - :10@C - :11@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :10@C - :11@N - :11@CA - :11@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :10@C - :11@N - :11@CA - :11@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :10@C - :11@N - :11@CA - :11@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :10@C - :11@N - :11@CA - :11@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :10@C - :11@N - :11@CA - :11@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :10@C - :11@N - :11@CA - :11@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :10@C - :11@N - :11@CA - :11@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :10@C - :11@N - :11@CA - :11@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :10@C - :11@N - :11@CA - :11@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :10@C - :11@N - :11@CA - :11@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :10@C - :11@N - :11@CA - :11@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :10@C - :11@N - :11@CA - :11@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :10@C - :11@N - :11@CA - :11@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :10@C - :11@N - :11@CA - :11@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :10@C - :11@N - :11@CA - :11@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :10@C - :11@N - :11@CA - :11@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :10@C - :11@N - :11@CA - :11@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :10@C - :11@N - :11@CA - :11@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :10@C - :11@N - :11@CA - :11@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :10@C - :11@N - :11@CA - :11@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :11@CA - :11@CB - :11@SG - :11@HG {CX-2C-SH-HS} Pk=0.03 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :10@C - :11@N - :11@CA - :11@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :10@C - :11@N - :11@CA - :11@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :11@CA - :11@CB - :11@SG - :11@HG {CX-2C-SH-HS} Pk=0.092 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :11@CA - :11@CB - :11@SG - :11@HG {CX-2C-SH-HS} Pk=0.612 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :11@CA - :11@CB - :11@SG - :11@HG {CT-CT-SH-HS} Pk=0.25 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :11@CA - :11@CB - :11@SG - :11@HG {CX-2C-SH-HS} Pk=0.252 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :11@CA - :11@CB - :11@SG - :11@HG {CX-2C-SH-HS} Pk=0.612 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :11@N - :11@CA - :11@CB - :11@SG {N-CX-2C-SH} Pk=0.033 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :11@CA - :11@CB - :11@SG - :11@HG {CX-2C-SH-HS} Pk=0.03 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :11@N - :11@CA - :11@CB - :11@SG {N-CX-2C-SH} Pk=0.154 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :11@N - :11@CA - :11@CB - :11@SG {N-CX-2C-SH} Pk=0.486 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :11@N - :11@CA - :11@CB - :11@SG {N-CT-CT-SH} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :11@N - :11@CA - :11@CB - :11@SG {N-CX-2C-SH} Pk=0.251 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :11@N - :11@CA - :11@CB - :11@SG {N-CX-2C-SH} Pk=0.486 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :11@SG - :11@CB - :11@CA - :11@C {SH-2C-CX-C} Pk=0.075 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :11@SG - :11@CB - :11@CA - :11@C {SH-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :11@SG - :11@CB - :11@CA - :11@C {SH-2C-CX-C} Pk=0.251 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :11@N - :11@CA - :11@CB - :11@SG {N-CX-2C-SH} Pk=0.033 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :11@SG - :11@CB - :11@CA - :11@C {SH-2C-CX-C} Pk=0.269 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 < :11@SG - :11@CB - :11@CA - :11@C {SH-2C-CX-C} Pk=0.337 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :11@CB - :11@CA - :11@C - :12@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :11@CB - :11@CA - :11@C - :12@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :11@CB - :11@CA - :11@C - :12@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :11@SG - :11@CB - :11@CA - :11@C {SH-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :11@SG - :11@CB - :11@CA - :11@C {SH-2C-CX-C} Pk=0.251 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :11@SG - :11@CB - :11@CA - :11@C {SH-2C-CX-C} Pk=0.075 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :11@CB - :11@CA - :11@C - :12@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :11@CB - :11@CA - :11@C - :12@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :11@CB - :11@CA - :11@C - :12@N {2C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :11@CB - :11@CA - :11@C - :12@N {2C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :11@N - :11@CA - :11@C - :12@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :11@CB - :11@CA - :11@C - :12@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :11@CB - :11@CA - :11@C - :12@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :11@N - :11@CA - :11@C - :12@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :11@N - :11@CA - :11@C - :12@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :11@N - :11@CA - :11@C - :12@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :11@N - :11@CA - :11@C - :12@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :11@N - :11@CA - :11@C - :12@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :11@N - :11@CA - :11@C - :12@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :11@N - :11@CA - :11@C - :12@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :11@N - :11@CA - :11@C - :12@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :11@C - :12@N - :12@CA - :12@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :11@C - :12@N - :12@CA - :12@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :11@C - :12@N - :12@CA - :12@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :11@C - :12@N - :12@CA - :12@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :11@C - :12@N - :12@CA - :12@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :11@C - :12@N - :12@CA - :12@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :11@C - :12@N - :12@CA - :12@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :11@C - :12@N - :12@CA - :12@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :11@C - :12@N - :12@CA - :12@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :11@C - :12@N - :12@CA - :12@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :11@C - :12@N - :12@CA - :12@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :11@C - :12@N - :12@CA - :12@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :11@C - :12@N - :12@CA - :12@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :11@C - :12@N - :12@CA - :12@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :11@C - :12@N - :12@CA - :12@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :11@C - :12@N - :12@CA - :12@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :11@C - :12@N - :12@CA - :12@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :11@C - :12@N - :12@CA - :12@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :11@C - :12@N - :12@CA - :12@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :11@C - :12@N - :12@CA - :12@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :11@C - :12@N - :12@CA - :12@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :11@C - :12@N - :12@CA - :12@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@CA - :12@CB - :12@CG - :12@SD {CX-2C-2C-S} Pk=0.417 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :12@CA - :12@CB - :12@CG - :12@SD {CX-2C-2C-S} Pk=0.245 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :12@CA - :12@CB - :12@CG - :12@SD {CX-2C-2C-S} Pk=0.016 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@CA - :12@CB - :12@CG - :12@SD {CX-2C-2C-S} Pk=0.028 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :12@CA - :12@CB - :12@CG - :12@SD {CT-CT-CT-S} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@CA - :12@CB - :12@CG - :12@SD {CX-2C-2C-S} Pk=0.245 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :12@CA - :12@CB - :12@CG - :12@SD {CX-2C-2C-S} Pk=0.417 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :12@CB - :12@CG - :12@SD - :12@CE {2C-2C-S-CT} Pk=0.057 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@CA - :12@CB - :12@CG - :12@SD {CX-2C-2C-S} Pk=0.028 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :12@CB - :12@CG - :12@SD - :12@CE {2C-2C-S-CT} Pk=0.247 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@CB - :12@CG - :12@SD - :12@CE {2C-2C-S-CT} Pk=0.442 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :12@CB - :12@CG - :12@SD - :12@CE {CT-CT-S-CT} Pk=0.333333 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :12@CB - :12@CG - :12@SD - :12@CE {2C-2C-S-CT} Pk=0.414 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@CB - :12@CG - :12@SD - :12@CE {2C-2C-S-CT} Pk=0.442 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :12@CB - :12@CG - :12@SD - :12@CE {2C-2C-S-CT} Pk=0.057 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@CG - :12@CB - :12@CA - :12@C {2C-2C-CX-C} Pk=0.421 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@CG - :12@CB - :12@CA - :12@C {2C-2C-CX-C} Pk=0.393 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :12@CG - :12@CB - :12@CA - :12@C {2C-2C-CX-C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@CG - :12@CB - :12@CA - :12@C {2C-2C-CX-C} Pk=0.145 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :12@CG - :12@CB - :12@CA - :12@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@CG - :12@CB - :12@CA - :12@C {2C-2C-CX-C} Pk=0.393 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :12@CG - :12@CB - :12@CA - :12@C {2C-2C-CX-C} Pk=0.421 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :12@N - :12@CA - :12@CB - :12@CG {N-CX-2C-2C} Pk=0.078 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@CG - :12@CB - :12@CA - :12@C {2C-2C-CX-C} Pk=0.145 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :12@N - :12@CA - :12@CB - :12@CG {N-CX-2C-2C} Pk=0.1 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@N - :12@CA - :12@CB - :12@CG {N-CX-2C-2C} Pk=0.184 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :12@N - :12@CA - :12@CB - :12@CG {N-CX-2C-2C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :12@N - :12@CA - :12@CB - :12@CG {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@N - :12@CA - :12@CB - :12@CG {N-CX-2C-2C} Pk=0.184 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :12@CB - :12@CA - :12@C - :13@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@N - :12@CA - :12@CB - :12@CG {N-CX-2C-2C} Pk=0.078 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@CB - :12@CA - :12@C - :13@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :12@CB - :12@CA - :12@C - :13@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :12@CB - :12@CA - :12@C - :13@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :12@CB - :12@CA - :12@C - :13@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :12@CB - :12@CA - :12@C - :13@N {2C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :12@CB - :12@CA - :12@C - :13@N {2C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@N - :12@CA - :12@C - :13@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@CB - :12@CA - :12@C - :13@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :12@CB - :12@CA - :12@C - :13@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :12@N - :12@CA - :12@C - :13@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :12@N - :12@CA - :12@C - :13@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :12@N - :12@CA - :12@C - :13@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :12@N - :12@CA - :12@C - :13@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@N - :12@CA - :12@C - :13@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :12@N - :12@CA - :12@C - :13@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@N - :12@CA - :12@C - :13@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@N - :12@CA - :12@C - :13@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :12@C - :13@N - :13@CA - :13@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :12@C - :13@N - :13@CA - :13@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :12@C - :13@N - :13@CA - :13@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :12@C - :13@N - :13@CA - :13@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :12@C - :13@N - :13@CA - :13@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :12@C - :13@N - :13@CA - :13@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :12@C - :13@N - :13@CA - :13@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :12@C - :13@N - :13@CA - :13@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :12@C - :13@N - :13@CA - :13@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :12@C - :13@N - :13@CA - :13@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :12@C - :13@N - :13@CA - :13@CB {C-N-CX-C8} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :12@C - :13@N - :13@CA - :13@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :12@C - :13@N - :13@CA - :13@CB {C-N-CX-C8} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@C - :13@N - :13@CA - :13@CB {C-N-CX-C8} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :12@C - :13@N - :13@CA - :13@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :12@C - :13@N - :13@CA - :13@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :12@C - :13@N - :13@CA - :13@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :12@C - :13@N - :13@CA - :13@CB {C-N-CX-C8} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :12@C - :13@N - :13@CA - :13@CB {C-N-CX-C8} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :12@C - :13@N - :13@CA - :13@CB {C-N-CX-C8} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :13@CB - :13@CA - :13@C - :14@N {C8-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :13@CB - :13@CA - :13@C - :14@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :13@CB - :13@CA - :13@C - :14@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :12@C - :13@N - :13@CA - :13@CB {C-N-CX-C8} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :12@C - :13@N - :13@CA - :13@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :13@CB - :13@CA - :13@C - :14@N {C8-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :13@CB - :13@CA - :13@C - :14@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :13@CB - :13@CA - :13@C - :14@N {C8-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :13@CB - :13@CA - :13@C - :14@N {C8-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :13@N - :13@CA - :13@C - :14@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :13@CB - :13@CA - :13@C - :14@N {C8-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :13@CB - :13@CA - :13@C - :14@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :13@N - :13@CA - :13@C - :14@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :13@N - :13@CA - :13@C - :14@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :13@N - :13@CA - :13@C - :14@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :13@N - :13@CA - :13@C - :14@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :13@N - :13@CA - :13@C - :14@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :13@N - :13@CA - :13@C - :14@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :13@N - :13@CA - :13@C - :14@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :13@N - :13@CA - :13@C - :14@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :13@C - :14@N - :14@CA - :14@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :13@C - :14@N - :14@CA - :14@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :13@C - :14@N - :14@CA - :14@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :13@C - :14@N - :14@CA - :14@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :13@C - :14@N - :14@CA - :14@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :13@C - :14@N - :14@CA - :14@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :13@C - :14@N - :14@CA - :14@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :13@C - :14@N - :14@CA - :14@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :13@C - :14@N - :14@CA - :14@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :13@C - :14@N - :14@CA - :14@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :13@C - :14@N - :14@CA - :14@CB {C-N-CX-C8} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :13@C - :14@N - :14@CA - :14@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :13@C - :14@N - :14@CA - :14@CB {C-N-CX-C8} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :13@C - :14@N - :14@CA - :14@CB {C-N-CX-C8} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :13@C - :14@N - :14@CA - :14@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :13@C - :14@N - :14@CA - :14@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :13@C - :14@N - :14@CA - :14@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :13@C - :14@N - :14@CA - :14@CB {C-N-CX-C8} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :13@C - :14@N - :14@CA - :14@CB {C-N-CX-C8} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :13@C - :14@N - :14@CA - :14@CB {C-N-CX-C8} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :13@C - :14@N - :14@CA - :14@CB {C-N-CX-C8} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :13@C - :14@N - :14@CA - :14@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :14@CD - :14@NE - :14@CZ - :14@NH1 {C8-N2-CA-N2} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :14@CD - :14@NE - :14@CZ - :14@NH2 {C8-N2-CA-N2} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :14@CG - :14@CD - :14@NE - :14@CZ {C8-C8-N2-CA} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 @@ -806,445 +806,445 @@ < :14@NE - :14@CZ - :14@NH2 - :14@HH22 {N2-CA-N2-H} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :14@NH1 - :14@CZ - :14@NH2 - :14@HH21 {N2-CA-N2-H} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :14@NH1 - :14@CZ - :14@NH2 - :14@HH22 {N2-CA-N2-H} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :14@CB - :14@CA - :14@C - :15@N {C8-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :14@CB - :14@CA - :14@C - :15@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :14@CB - :14@CA - :14@C - :15@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :14@CB - :14@CA - :14@C - :15@N {C8-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :14@CB - :14@CA - :14@C - :15@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :14@CB - :14@CA - :14@C - :15@N {C8-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :14@CB - :14@CA - :14@C - :15@N {C8-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :14@N - :14@CA - :14@C - :15@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :14@CB - :14@CA - :14@C - :15@N {C8-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :14@CB - :14@CA - :14@C - :15@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :14@N - :14@CA - :14@C - :15@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :14@N - :14@CA - :14@C - :15@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :14@N - :14@CA - :14@C - :15@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :14@N - :14@CA - :14@C - :15@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :14@N - :14@CA - :14@C - :15@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :14@N - :14@CA - :14@C - :15@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :14@N - :14@CA - :14@C - :15@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :14@N - :14@CA - :14@C - :15@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :14@C - :15@N - :15@CA - :15@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :14@C - :15@N - :15@CA - :15@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :14@C - :15@N - :15@CA - :15@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :14@C - :15@N - :15@CA - :15@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :14@C - :15@N - :15@CA - :15@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :14@C - :15@N - :15@CA - :15@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :14@C - :15@N - :15@CA - :15@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :14@C - :15@N - :15@CA - :15@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :14@C - :15@N - :15@CA - :15@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :14@C - :15@N - :15@CA - :15@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :14@C - :15@N - :15@CA - :15@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :14@C - :15@N - :15@CA - :15@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :14@C - :15@N - :15@CA - :15@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :14@C - :15@N - :15@CA - :15@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :14@C - :15@N - :15@CA - :15@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :14@C - :15@N - :15@CA - :15@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :14@C - :15@N - :15@CA - :15@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :14@C - :15@N - :15@CA - :15@CB {C-N-CX-CT} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :14@C - :15@N - :15@CA - :15@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :14@C - :15@N - :15@CA - :15@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :14@C - :15@N - :15@CA - :15@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :14@C - :15@N - :15@CA - :15@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :15@CA - :15@CB - :15@CG - :15@ND1 {CX-CT-CC-NB} Pk=0.69 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :15@CA - :15@CB - :15@CG - :15@ND1 {CT-CT-CC-NB} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :15@CA - :15@CB - :15@CG - :15@ND1 {CX-CT-CC-NB} Pk=0.047 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :15@CA - :15@CB - :15@CG - :15@ND1 {CX-CT-CC-NB} Pk=0.204 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :15@CA - :15@CB - :15@CG - :15@ND1 {CX-CT-CC-NB} Pk=0.69 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :15@CA - :15@CB - :15@CG - :15@ND1 {CX-CT-CC-NB} Pk=0.74 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :15@CG - :15@CB - :15@CA - :15@C {CC-CT-CX-C} Pk=0.025 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :15@CA - :15@CB - :15@CG - :15@ND1 {CX-CT-CC-NB} Pk=0.047 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :15@CG - :15@CB - :15@CA - :15@C {CC-CT-CX-C} Pk=0.143 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :15@CG - :15@CB - :15@CA - :15@C {CC-CT-CX-C} Pk=0.244 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :15@CG - :15@CB - :15@CA - :15@C {CC-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :15@CG - :15@CB - :15@CA - :15@C {CC-CT-CX-C} Pk=0.219 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :15@CG - :15@CB - :15@CA - :15@C {CC-CT-CX-C} Pk=0.244 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :15@N - :15@CA - :15@CB - :15@CG {N-CX-CT-CC} Pk=0.089 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :15@CG - :15@CB - :15@CA - :15@C {CC-CT-CX-C} Pk=0.025 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :15@N - :15@CA - :15@CB - :15@CG {N-CX-CT-CC} Pk=0.306 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :15@N - :15@CA - :15@CB - :15@CG {N-CX-CT-CC} Pk=0.221 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :15@N - :15@CA - :15@CB - :15@CG {N-CT-CT-CC} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :15@N - :15@CA - :15@CB - :15@CG {N-CX-CT-CC} Pk=0.219 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :15@N - :15@CA - :15@CB - :15@CG {N-CX-CT-CC} Pk=0.221 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :15@N - :15@CA - :15@CB - :15@CG {N-CX-CT-CC} Pk=0.306 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :15@CB - :15@CA - :15@C - :16@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :15@CB - :15@CA - :15@C - :16@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :15@CB - :15@CA - :15@C - :16@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :15@N - :15@CA - :15@CB - :15@CG {N-CX-CT-CC} Pk=0.089 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :15@CB - :15@CA - :15@C - :16@N {CT-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :15@CB - :15@CA - :15@C - :16@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :15@CB - :15@CA - :15@C - :16@N {CT-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :15@CB - :15@CA - :15@C - :16@N {CT-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :15@N - :15@CA - :15@C - :16@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :15@CB - :15@CA - :15@C - :16@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :15@CB - :15@CA - :15@C - :16@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :15@N - :15@CA - :15@C - :16@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :15@N - :15@CA - :15@C - :16@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :15@N - :15@CA - :15@C - :16@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :15@N - :15@CA - :15@C - :16@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :15@N - :15@CA - :15@C - :16@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :15@N - :15@CA - :15@C - :16@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :15@N - :15@CA - :15@C - :16@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :15@N - :15@CA - :15@C - :16@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :15@C - :16@N - :16@CA - :16@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :15@C - :16@N - :16@CA - :16@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :15@C - :16@N - :16@CA - :16@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :15@C - :16@N - :16@CA - :16@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :15@C - :16@N - :16@CA - :16@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :15@C - :16@N - :16@CA - :16@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :15@C - :16@N - :16@CA - :16@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :15@C - :16@N - :16@CA - :16@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :15@C - :16@N - :16@CA - :16@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :15@C - :16@N - :16@CA - :16@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :15@C - :16@N - :16@CA - :16@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :15@C - :16@N - :16@CA - :16@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :15@C - :16@N - :16@CA - :16@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :15@C - :16@N - :16@CA - :16@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :15@C - :16@N - :16@CA - :16@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :15@C - :16@N - :16@CA - :16@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :15@C - :16@N - :16@CA - :16@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :15@C - :16@N - :16@CA - :16@CB {C-N-CX-CT} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :15@C - :16@N - :16@CA - :16@CB {C-N-CX-CT} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :15@C - :16@N - :16@CA - :16@CB {C-N-CX-CT} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :15@C - :16@N - :16@CA - :16@CB {C-N-CX-CT} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :15@C - :16@N - :16@CA - :16@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :16@CA - :16@CB - :16@CG - :16@CD1 {CX-CT-C*-CW} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :16@CA - :16@CB - :16@CG - :16@CD1 {CX-CT-C*-CW} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :16@CA - :16@CB - :16@CG - :16@CD1 {CX-CT-C*-CW} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :16@CA - :16@CB - :16@CG - :16@CD2 {CT-CT-C*-CB} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :16@CA - :16@CB - :16@CG - :16@CD2 {CX-CT-C*-CB} Pk=0.095 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :16@CA - :16@CB - :16@CG - :16@CD2 {CX-CT-C*-CB} Pk=0.365 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :16@CA - :16@CB - :16@CG - :16@CD2 {CT-CT-C*-CB} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :16@CA - :16@CB - :16@CG - :16@CD2 {CX-CT-C*-CB} Pk=0.408 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :16@CA - :16@CB - :16@CG - :16@CD2 {CX-CT-C*-CB} Pk=0.819 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :16@CA - :16@CB - :16@CG - :16@CD2 {CX-CT-C*-CB} Pk=0.095 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :16@CG - :16@CB - :16@CA - :16@C {C*-CT-CX-C} Pk=0.017 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :16@CG - :16@CB - :16@CA - :16@C {C*-CT-CX-C} Pk=0.074 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :16@CG - :16@CB - :16@CA - :16@C {C*-CT-CX-C} Pk=0.353 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :16@CG - :16@CB - :16@CA - :16@C {C*-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :16@CG - :16@CB - :16@CA - :16@C {C*-CT-CX-C} Pk=0.234 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :16@CG - :16@CB - :16@CA - :16@C {C*-CT-CX-C} Pk=0.353 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :16@N - :16@CA - :16@CB - :16@CG {N-CX-CT-C*} Pk=0.031 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :16@CG - :16@CB - :16@CA - :16@C {C*-CT-CX-C} Pk=0.074 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :16@N - :16@CA - :16@CB - :16@CG {N-CX-CT-C*} Pk=0.079 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :16@N - :16@CA - :16@CB - :16@CG {N-CX-CT-C*} Pk=0.313 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :16@N - :16@CA - :16@CB - :16@CG {N-CT-CT-C*} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :16@N - :16@CA - :16@CB - :16@CG {N-CX-CT-C*} Pk=0.234 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :16@N - :16@CA - :16@CB - :16@CG {N-CX-CT-C*} Pk=0.313 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :16@CB - :16@CA - :16@C - :17@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :16@CB - :16@CA - :16@C - :17@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :16@CB - :16@CA - :16@C - :17@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :16@N - :16@CA - :16@CB - :16@CG {N-CX-CT-C*} Pk=0.031 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :16@CB - :16@CA - :16@C - :17@N {CT-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :16@CB - :16@CA - :16@C - :17@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :16@CB - :16@CA - :16@C - :17@N {CT-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :16@CB - :16@CA - :16@C - :17@N {CT-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :16@N - :16@CA - :16@C - :17@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :16@CB - :16@CA - :16@C - :17@N {CT-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :16@CB - :16@CA - :16@C - :17@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :16@N - :16@CA - :16@C - :17@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :16@N - :16@CA - :16@C - :17@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :16@N - :16@CA - :16@C - :17@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :16@N - :16@CA - :16@C - :17@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :16@N - :16@CA - :16@C - :17@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :16@N - :16@CA - :16@C - :17@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :16@N - :16@CA - :16@C - :17@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :16@N - :16@CA - :16@C - :17@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :16@C - :17@N - :17@CA - :17@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :16@C - :17@N - :17@CA - :17@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :16@C - :17@N - :17@CA - :17@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :16@C - :17@N - :17@CA - :17@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :16@C - :17@N - :17@CA - :17@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :16@C - :17@N - :17@CA - :17@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :16@C - :17@N - :17@CA - :17@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :16@C - :17@N - :17@CA - :17@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :16@C - :17@N - :17@CA - :17@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :16@C - :17@N - :17@CA - :17@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :16@C - :17@N - :17@CA - :17@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :16@C - :17@N - :17@CA - :17@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :16@C - :17@N - :17@CA - :17@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :16@C - :17@N - :17@CA - :17@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :16@C - :17@N - :17@CA - :17@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :16@C - :17@N - :17@CA - :17@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :16@C - :17@N - :17@CA - :17@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :16@C - :17@N - :17@CA - :17@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :16@C - :17@N - :17@CA - :17@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :16@C - :17@N - :17@CA - :17@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :16@C - :17@N - :17@CA - :17@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :16@C - :17@N - :17@CA - :17@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :17@CA - :17@CB - :17@CG - :17@OD1 {CX-2C-CO-O2} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :17@CA - :17@CB - :17@CG - :17@OD1 {CT-CT-C-O2} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :17@CA - :17@CB - :17@CG - :17@OD1 {CX-2C-CO-O2} Pk=0.769 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :17@CA - :17@CB - :17@CG - :17@OD1 {CX-2C-CO-O2} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :17@CA - :17@CB - :17@CG - :17@OD1 {CX-2C-CO-O2} Pk=0.031 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -< :17@CA - :17@CB - :17@CG - :17@OD1 {CX-2C-CO-O2} Pk=0.769 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :17@CA - :17@CB - :17@CG - :17@OD2 {CX-2C-CO-O2} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :17@CA - :17@CB - :17@CG - :17@OD2 {CT-CT-C-O2} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :17@CA - :17@CB - :17@CG - :17@OD2 {CX-2C-CO-O2} Pk=0.769 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :17@CA - :17@CB - :17@CG - :17@OD2 {CX-2C-CO-O2} Pk=0 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :17@CA - :17@CB - :17@CG - :17@OD2 {CX-2C-CO-O2} Pk=0.031 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -< :17@CA - :17@CB - :17@CG - :17@OD2 {CX-2C-CO-O2} Pk=0.769 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :17@CG - :17@CB - :17@CA - :17@C {CO-2C-CX-C} Pk=0.058 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :17@CG - :17@CB - :17@CA - :17@C {CO-2C-CX-C} Pk=0.154 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :17@CG - :17@CB - :17@CA - :17@C {C-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :17@CG - :17@CB - :17@CA - :17@C {CO-2C-CX-C} Pk=0.424 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :17@CG - :17@CB - :17@CA - :17@C {CO-2C-CX-C} Pk=0.459 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :17@CG - :17@CB - :17@CA - :17@C {CO-2C-CX-C} Pk=0.058 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +> :17@CG - :17@CB - :17@CA - :17@C {C-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :17@CG - :17@CB - :17@CA - :17@C {CO-2C-CX-C} Pk=0.154 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :17@N - :17@CA - :17@CB - :17@CG {N-CX-2C-CO} Pk=2.154 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :17@N - :17@CA - :17@CB - :17@CG {N-CX-2C-CO} Pk=0.647 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :17@N - :17@CA - :17@CB - :17@CG {N-CX-2C-CO} Pk=0.058 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :17@N - :17@CA - :17@CB - :17@CG {N-CX-2C-CO} Pk=0.089 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :17@N - :17@CA - :17@CB - :17@CG {N-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :17@N - :17@CA - :17@CB - :17@CG {N-CX-2C-CO} Pk=0.647 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :17@N - :17@CA - :17@CB - :17@CG {N-CX-2C-CO} Pk=2.154 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :17@CB - :17@CA - :17@C - :18@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :17@CB - :17@CA - :17@C - :18@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :17@CB - :17@CA - :17@C - :18@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :17@N - :17@CA - :17@CB - :17@CG {N-CX-2C-CO} Pk=0.089 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :17@CB - :17@CA - :17@C - :18@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :17@CB - :17@CA - :17@C - :18@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :17@CB - :17@CA - :17@C - :18@N {2C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :17@CB - :17@CA - :17@C - :18@N {2C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :17@N - :17@CA - :17@C - :18@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :17@CB - :17@CA - :17@C - :18@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :17@CB - :17@CA - :17@C - :18@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :17@N - :17@CA - :17@C - :18@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :17@N - :17@CA - :17@C - :18@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :17@N - :17@CA - :17@C - :18@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :17@N - :17@CA - :17@C - :18@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :17@N - :17@CA - :17@C - :18@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :17@N - :17@CA - :17@C - :18@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :17@N - :17@CA - :17@C - :18@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :17@N - :17@CA - :17@C - :18@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :17@C - :18@N - :18@CA - :18@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :17@C - :18@N - :18@CA - :18@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :17@C - :18@N - :18@CA - :18@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :17@C - :18@N - :18@CA - :18@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :17@C - :18@N - :18@CA - :18@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :17@C - :18@N - :18@CA - :18@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :17@C - :18@N - :18@CA - :18@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :17@C - :18@N - :18@CA - :18@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :17@C - :18@N - :18@CA - :18@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :17@C - :18@N - :18@CA - :18@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :17@C - :18@N - :18@CA - :18@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :17@C - :18@N - :18@CA - :18@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :17@C - :18@N - :18@CA - :18@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :17@C - :18@N - :18@CA - :18@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :17@C - :18@N - :18@CA - :18@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :17@C - :18@N - :18@CA - :18@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :17@C - :18@N - :18@CA - :18@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :17@C - :18@N - :18@CA - :18@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :17@C - :18@N - :18@CA - :18@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :17@C - :18@N - :18@CA - :18@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :18@CA - :18@CB - :18@CG - :18@CD {CX-2C-2C-CO} Pk=0.056 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :18@CA - :18@CB - :18@CG - :18@CD {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :17@C - :18@N - :18@CA - :18@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :17@C - :18@N - :18@CA - :18@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@CA - :18@CB - :18@CG - :18@CD {CX-2C-2C-CO} Pk=1.367 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 < :18@CA - :18@CB - :18@CG - :18@CD {CX-2C-2C-CO} Pk=0.222 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +> :18@CA - :18@CB - :18@CG - :18@CD {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 < :18@CA - :18@CB - :18@CG - :18@CD {CX-2C-2C-CO} Pk=0.608 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :18@CA - :18@CB - :18@CG - :18@CD {CX-2C-2C-CO} Pk=1.367 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@CA - :18@CB - :18@CG - :18@CD {CX-2C-2C-CO} Pk=0.056 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 > :18@CB - :18@CG - :18@CD - :18@OE1 {CT-CT-C-O2} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :18@CB - :18@CG - :18@CD - :18@OE1 {2C-2C-CO-O2} Pk=0.064 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :18@CB - :18@CG - :18@CD - :18@OE1 {2C-2C-CO-O2} Pk=0.39 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@CB - :18@CG - :18@CD - :18@OE1 {2C-2C-CO-O2} Pk=0.064 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :18@CB - :18@CG - :18@CD - :18@OE2 {CT-CT-C-O2} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :18@CB - :18@CG - :18@CD - :18@OE2 {2C-2C-CO-O2} Pk=0.064 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :18@CB - :18@CG - :18@CD - :18@OE2 {2C-2C-CO-O2} Pk=0.39 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@CB - :18@CG - :18@CD - :18@OE2 {2C-2C-CO-O2} Pk=0.064 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :18@CG - :18@CB - :18@CA - :18@C {2C-2C-CX-C} Pk=0.421 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@CG - :18@CB - :18@CA - :18@C {2C-2C-CX-C} Pk=0.393 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :18@CG - :18@CB - :18@CA - :18@C {2C-2C-CX-C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :18@CG - :18@CB - :18@CA - :18@C {2C-2C-CX-C} Pk=0.145 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :18@CG - :18@CB - :18@CA - :18@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :18@CG - :18@CB - :18@CA - :18@C {2C-2C-CX-C} Pk=0.393 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :18@CG - :18@CB - :18@CA - :18@C {2C-2C-CX-C} Pk=0.421 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :18@N - :18@CA - :18@CB - :18@CG {N-CX-2C-2C} Pk=0.078 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :18@CG - :18@CB - :18@CA - :18@C {2C-2C-CX-C} Pk=0.145 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :18@N - :18@CA - :18@CB - :18@CG {N-CX-2C-2C} Pk=0.1 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@N - :18@CA - :18@CB - :18@CG {N-CX-2C-2C} Pk=0.184 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :18@N - :18@CA - :18@CB - :18@CG {N-CX-2C-2C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :18@N - :18@CA - :18@CB - :18@CG {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :18@N - :18@CA - :18@CB - :18@CG {N-CX-2C-2C} Pk=0.184 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :18@CB - :18@CA - :18@C - :19@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :18@CB - :18@CA - :18@C - :19@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :18@CB - :18@CA - :18@C - :19@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :18@N - :18@CA - :18@CB - :18@CG {N-CX-2C-2C} Pk=0.078 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :18@CB - :18@CA - :18@C - :19@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :18@CB - :18@CA - :18@C - :19@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :18@CB - :18@CA - :18@C - :19@N {2C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :18@CB - :18@CA - :18@C - :19@N {2C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :18@N - :18@CA - :18@C - :19@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :18@CB - :18@CA - :18@C - :19@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :18@CB - :18@CA - :18@C - :19@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :18@N - :18@CA - :18@C - :19@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :18@N - :18@CA - :18@C - :19@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :18@N - :18@CA - :18@C - :19@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :18@N - :18@CA - :18@C - :19@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@N - :18@CA - :18@C - :19@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :18@N - :18@CA - :18@C - :19@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@N - :18@CA - :18@C - :19@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@N - :18@CA - :18@C - :19@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :18@C - :19@N - :19@CA - :19@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :18@C - :19@N - :19@CA - :19@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :18@C - :19@N - :19@CA - :19@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :18@C - :19@N - :19@CA - :19@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :18@C - :19@N - :19@CA - :19@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :18@C - :19@N - :19@CA - :19@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :18@C - :19@N - :19@CA - :19@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@C - :19@N - :19@CA - :19@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :18@C - :19@N - :19@CA - :19@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :18@C - :19@N - :19@CA - :19@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :18@C - :19@N - :19@CA - :19@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :18@C - :19@N - :19@CA - :19@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :18@C - :19@N - :19@CA - :19@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :18@C - :19@N - :19@CA - :19@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :18@C - :19@N - :19@CA - :19@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :18@C - :19@N - :19@CA - :19@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :18@C - :19@N - :19@CA - :19@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :18@C - :19@N - :19@CA - :19@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :18@C - :19@N - :19@CA - :19@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :18@C - :19@N - :19@CA - :19@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :19@CA - :19@CB - :19@CG - :19@ND2 {CX-2C-C-N} Pk=0.008 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :19@CA - :19@CB - :19@CG - :19@ND2 {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :19@CA - :19@CB - :19@CG - :19@ND2 {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :19@CA - :19@CB - :19@CG - :19@ND2 {CX-2C-C-N} Pk=0.301 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :19@CA - :19@CB - :19@CG - :19@ND2 {CX-2C-C-N} Pk=0.485 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :18@C - :19@N - :19@CA - :19@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :18@C - :19@N - :19@CA - :19@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 < :19@CA - :19@CB - :19@CG - :19@ND2 {CX-2C-C-N} Pk=0.828 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +> :19@CA - :19@CB - :19@CG - :19@ND2 {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :19@CA - :19@CB - :19@CG - :19@ND2 {CX-2C-C-N} Pk=0.485 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :19@CA - :19@CB - :19@CG - :19@ND2 {CX-2C-C-N} Pk=0.301 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :19@CA - :19@CB - :19@CG - :19@ND2 {CX-2C-C-N} Pk=0.008 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :19@CA - :19@CB - :19@CG - :19@ND2 {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :19@CA - :19@CB - :19@CG - :19@OD1 {CX-2C-C-O} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :19@CA - :19@CB - :19@CG - :19@OD1 {CT-CT-C-O} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :19@CG - :19@CB - :19@CA - :19@C {C-2C-CX-C} Pk=1.046 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :19@CG - :19@CB - :19@CA - :19@C {C-2C-CX-C} Pk=0.303 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :19@CG - :19@CB - :19@CA - :19@C {C-2C-CX-C} Pk=0.033 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :19@CG - :19@CB - :19@CA - :19@C {C-2C-CX-C} Pk=0.107 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :19@CG - :19@CB - :19@CA - :19@C {C-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :19@CG - :19@CB - :19@CA - :19@C {C-2C-CX-C} Pk=0.303 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :19@CG - :19@CB - :19@CA - :19@C {C-2C-CX-C} Pk=1.046 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :19@CG - :19@CB - :19@CA - :19@C {C-2C-CX-C} Pk=0.107 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :19@N - :19@CA - :19@CB - :19@CG {N-CX-2C-C} Pk=0.688 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :19@N - :19@CA - :19@CB - :19@CG {N-CX-2C-C} Pk=0.297 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :19@N - :19@CA - :19@CB - :19@CG {N-CX-2C-C} Pk=0.033 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :19@N - :19@CA - :19@CB - :19@CG {N-CX-2C-C} Pk=0.059 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :19@N - :19@CA - :19@CB - :19@CG {N-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :19@N - :19@CA - :19@CB - :19@CG {N-CX-2C-C} Pk=0.297 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :19@N - :19@CA - :19@CB - :19@CG {N-CX-2C-C} Pk=0.688 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :19@CB - :19@CA - :19@C - :20@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -> :19@CB - :19@CA - :19@C - :20@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -> :19@CB - :19@CA - :19@C - :20@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :19@N - :19@CA - :19@CB - :19@CG {N-CX-2C-C} Pk=0.059 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :19@CB - :19@CA - :19@C - :20@N {2C-CX-C-N} Pk=0.2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +> :19@CB - :19@CA - :19@C - :20@N {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :19@CB - :19@CA - :19@C - :20@N {2C-CX-C-N} Pk=0.2 Pn=2 Phase=0 SCEE=1.2 SCNB=2 < :19@CB - :19@CA - :19@C - :20@N {2C-CX-C-N} Pk=0.4 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :19@N - :19@CA - :19@C - :20@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :19@CB - :19@CA - :19@C - :20@N {2C-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :19@CB - :19@CA - :19@C - :20@N {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :19@N - :19@CA - :19@C - :20@N {N-CX-C-N} Pk=0.45 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :19@N - :19@CA - :19@C - :20@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :19@N - :19@CA - :19@C - :20@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :19@N - :19@CA - :19@C - :20@N {N-CT-C-N} Pk=1.7 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :19@N - :19@CA - :19@C - :20@N {N-CX-C-N} Pk=1.58 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 > :19@N - :19@CA - :19@C - :20@N {N-CT-C-N} Pk=2 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :19@N - :19@CA - :19@C - :20@N {N-CX-C-N} Pk=0.55 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :19@N - :19@CA - :19@C - :20@N {N-CX-C-N} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :19@C - :20@N - :20@CA - :20@C {C-N-CX-C} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 -< :19@C - :20@N - :20@CA - :20@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :19@C - :20@N - :20@CA - :20@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :19@C - :20@N - :20@CA - :20@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :19@C - :20@N - :20@CA - :20@C {C-N-CT-C} Pk=0.8 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :19@C - :20@N - :20@CA - :20@C {C-N-CX-C} Pk=0.27 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :19@C - :20@N - :20@CA - :20@C {C-N-CT-C} Pk=0.85 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :19@C - :20@N - :20@CA - :20@C {C-N-CX-C} Pk=0.42 Pn=3 Phase=0 SCEE=1.2 SCNB=2 +< :19@C - :20@N - :20@CA - :20@C {C-N-CX-C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :19@C - :20@N - :20@CA - :20@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :19@C - :20@N - :20@CA - :20@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :19@C - :20@N - :20@CA - :20@CB {C-N-CT-CT} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :19@C - :20@N - :20@CA - :20@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :19@C - :20@N - :20@CA - :20@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 > :19@C - :20@N - :20@CA - :20@CB {C-N-CT-CT} Pk=0.15 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -> :19@C - :20@N - :20@CA - :20@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 -> :19@C - :20@N - :20@CA - :20@CB {C-N-CT-CT} Pk=0.53 Pn=1 Phase=0 SCEE=1.2 SCNB=2 < :19@C - :20@N - :20@CA - :20@CB {C-N-CX-2C} Pk=0.8 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :19@C - :20@N - :20@CA - :20@CB {C-N-CX-2C} Pk=1.8 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :19@C - :20@N - :20@CA - :20@CB {C-N-CX-2C} Pk=2 Pn=1 Phase=0 SCEE=1.2 SCNB=2 +< :19@C - :20@N - :20@CA - :20@CB {C-N-CX-2C} Pk=0 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +> :19@C - :20@N - :20@CA - :20@CB {C-N-CT-CT} Pk=0.5 Pn=4 Phase=3.14159 SCEE=1.2 SCNB=2 +< :20@CA - :20@CB - :20@CG - :20@CD {CX-2C-2C-C} Pk=0.196 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 < :20@CA - :20@CB - :20@CG - :20@CD {CX-2C-2C-C} Pk=0.083 Pn=2 Phase=0 SCEE=1.2 SCNB=2 -< :20@CA - :20@CB - :20@CG - :20@CD {CX-2C-2C-C} Pk=0.138 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :20@CA - :20@CB - :20@CG - :20@CD {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :20@CA - :20@CB - :20@CG - :20@CD {CX-2C-2C-C} Pk=0.196 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 < :20@CA - :20@CB - :20@CG - :20@CD {CX-2C-2C-C} Pk=0.412 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 -< :20@CB - :20@CG - :20@CD - :20@NE2 {2C-2C-C-N} Pk=0.042 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :20@CA - :20@CB - :20@CG - :20@CD {CX-2C-2C-C} Pk=0.138 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :20@CB - :20@CG - :20@CD - :20@NE2 {2C-2C-C-N} Pk=0.609 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 > :20@CB - :20@CG - :20@CD - :20@NE2 {CT-CT-C-N} Pk=0.07 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :20@CB - :20@CG - :20@CD - :20@NE2 {2C-2C-C-N} Pk=0.845 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :20@CB - :20@CG - :20@CD - :20@NE2 {2C-2C-C-N} Pk=0.085 Pn=3 Phase=3.14159 SCEE=1.2 SCNB=2 +< :20@CB - :20@CG - :20@CD - :20@NE2 {2C-2C-C-N} Pk=0.042 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :20@CB - :20@CG - :20@CD - :20@NE2 {CT-CT-C-N} Pk=0.1 Pn=4 Phase=0 SCEE=1.2 SCNB=2 -< :20@CB - :20@CG - :20@CD - :20@NE2 {2C-2C-C-N} Pk=0.609 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :20@CB - :20@CG - :20@CD - :20@NE2 {2C-2C-C-N} Pk=0.845 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :20@CB - :20@CG - :20@CD - :20@OE1 {2C-2C-C-O} Pk=0 Pn=1 Phase=0 SCEE=1.2 SCNB=2 > :20@CB - :20@CG - :20@CD - :20@OE1 {CT-CT-C-O} Pk=0 Pn=2 Phase=0 SCEE=1.2 SCNB=2 +< :20@CG - :20@CB - :20@CA - :20@C {2C-2C-CX-C} Pk=0.421 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :20@CG - :20@CB - :20@CA - :20@C {2C-2C-CX-C} Pk=0.393 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :20@CG - :20@CB - :20@CA - :20@C {2C-2C-CX-C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :20@CG - :20@CB - :20@CA - :20@C {2C-2C-CX-C} Pk=0.145 Pn=4 Phase=0 SCEE=1.2 SCNB=2 > :20@CG - :20@CB - :20@CA - :20@C {CT-CT-CT-C} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :20@CG - :20@CB - :20@CA - :20@C {2C-2C-CX-C} Pk=0.393 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 -< :20@CG - :20@CB - :20@CA - :20@C {2C-2C-CX-C} Pk=0.421 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 -< :20@N - :20@CA - :20@CB - :20@CG {N-CX-2C-2C} Pk=0.078 Pn=4 Phase=0 SCEE=1.2 SCNB=2 +< :20@CG - :20@CB - :20@CA - :20@C {2C-2C-CX-C} Pk=0.145 Pn=4 Phase=0 SCEE=1.2 SCNB=2 < :20@N - :20@CA - :20@CB - :20@CG {N-CX-2C-2C} Pk=0.1 Pn=1 Phase=3.14159 SCEE=1.2 SCNB=2 +< :20@N - :20@CA - :20@CB - :20@CG {N-CX-2C-2C} Pk=0.184 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 < :20@N - :20@CA - :20@CB - :20@CG {N-CX-2C-2C} Pk=0.144 Pn=3 Phase=0 SCEE=1.2 SCNB=2 > :20@N - :20@CA - :20@CB - :20@CG {N-CT-CT-CT} Pk=0.155556 Pn=3 Phase=0 SCEE=1.2 SCNB=2 -< :20@N - :20@CA - :20@CB - :20@CG {N-CX-2C-2C} Pk=0.184 Pn=2 Phase=3.14159 SCEE=1.2 SCNB=2 +< :20@N - :20@CA - :20@CB - :20@CG {N-CX-2C-2C} Pk=0.078 Pn=4 Phase=0 SCEE=1.2 SCNB=2 # Dihedral Parameters < Pk= 0 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.001 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.006 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.006 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.007 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.007 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.008 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.012 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.012 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.013 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.016 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.017 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.025 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.027 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.028 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.03 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.031 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.031 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.033 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.033 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.042 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.047 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.048 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.048 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.053 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.055 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.056 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.057 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.058 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.059 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.064 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.065 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.069 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -> Pk= 0.07 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.073 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.074 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.075 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.077 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.078 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.079 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.079 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.083 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.085 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.089 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.092 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.095 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.095 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.097 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.098 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.1 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -> Pk= 0.1 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.107 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.107 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.112 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.113 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.115 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.119 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.129 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.138 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.142 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.143 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.144 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.144 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.145 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.148 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -> Pk= 0.15 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.154 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.154 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.156 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.16 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.162 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.179 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.184 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.19 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.192 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.196 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.2 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.2 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.202 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.204 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.211 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.247 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.269 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.306 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.31 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.337 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.365 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.379 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.406 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.417 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.421 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.424 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.447 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.45 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +> Pk= 0.53 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.609 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.643 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.661 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.666 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.674 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.688 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.69 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.697 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.706 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.828 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 1.046 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 1.367 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +> Pk= 1.7 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 2.154 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.006 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.027 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.053 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.069 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +> Pk= 0.07 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.077 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.079 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.083 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.119 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.144 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.184 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.2 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.204 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.216 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.218 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.219 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.221 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.222 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.224 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.23 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.234 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.236 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.244 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.245 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.246 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.247 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.251 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.251 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.252 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.259 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.267 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.269 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.27 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.289 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.29 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.297 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.301 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.303 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.306 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.31 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.313 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.315 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.337 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.337 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.353 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.365 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.379 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.39 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.393 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.4 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.401 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.406 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.408 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.412 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.414 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.417 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.42 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.421 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.424 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.442 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.444 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.447 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.45 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.459 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.469 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.485 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.486 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -> Pk= 0.5 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -> Pk= 0.53 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.55 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.608 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.609 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.612 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.62 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.643 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.647 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.661 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.666 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.674 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.688 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.69 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.697 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.706 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.735 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.74 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 0.769 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 0.8 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.819 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 0.828 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.845 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 > Pk= 0.85 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 0.883 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 1.046 Pn= 1 Phase= 0 SCEE= 1.2 SCNB= 2 -< Pk= 1.367 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 1.58 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -> Pk= 1.7 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 < Pk= 1.8 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 < Pk= 2 Pn= 2 Phase= 0 SCEE= 1.2 SCNB= 2 > Pk= 2 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 -< Pk= 2.154 Pn= 1 Phase= 3.14159 SCEE= 1.2 SCNB= 2 > Pk= 2.3 Pn= 2 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.016 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.033 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.058 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.085 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.107 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.113 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.142 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.144 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.148 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +> Pk= 0.15 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.192 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.219 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.234 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.236 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.251 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.252 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.267 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.301 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.315 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.4 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.401 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.412 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.414 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.42 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.55 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.608 Pn= 3 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.74 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.8 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.819 Pn= 3 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.001 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.007 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.007 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.008 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.012 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.013 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.025 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.028 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.03 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.031 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.031 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.033 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.042 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.047 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.048 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.048 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.056 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.057 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.059 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.064 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.065 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.073 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.074 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.075 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.078 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.089 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.095 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.095 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +< Pk= 0.097 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 +> Pk= 0.1 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.107 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.112 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.115 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.129 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.138 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.145 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.154 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.156 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.16 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.179 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.19 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.224 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +< Pk= 0.23 Pn= 4 Phase= 0 SCEE= 1.2 SCNB= 2 +> Pk= 0.5 Pn= 4 Phase= 3.14159 SCEE= 1.2 SCNB= 2 diff --git a/test/Test_EneDecomp/1d23.dat.save b/test/Test_EneDecomp/1d23.dat.save new file mode 100644 index 0000000000..44f761e323 --- /dev/null +++ b/test/Test_EneDecomp/1d23.dat.save @@ -0,0 +1,10059 @@ +#Atom No1264 + 1.000 14.0031 + 2.000 -5.1290 + 3.000 1.7749 + 4.000 2.9266 + 5.000 3.0236 + 6.000 11.2244 + 7.000 1.1511 + 8.000 2.0522 + 9.000 11.5517 + 10.000 -2.3221 + 11.000 0.0802 + 12.000 3.2273 + 13.000 4.2836 + 14.000 -24.9597 + 15.000 -1.4566 + 16.000 -25.6457 + 17.000 -2.9492 + 18.000 -32.8356 + 19.000 -20.7753 + 20.000 -38.8836 + 21.000 -12.0486 + 22.000 -10.7543 + 23.000 2.7532 + 24.000 0.1475 + 25.000 10.5775 + 26.000 4.5999 + 27.000 2.1336 + 28.000 -15.9992 + 29.000 57.6372 + 30.000 -41.9195 + 31.000 -32.9408 + 32.000 -11.4824 + 33.000 2.8180 + 34.000 0.0596 + 35.000 0.1205 + 36.000 5.7240 + 37.000 0.6927 + 38.000 15.5885 + 39.000 7.0343 + 40.000 -8.4833 + 41.000 -0.7055 + 42.000 -3.5775 + 43.000 -7.9552 + 44.000 34.8147 + 45.000 2.7385 + 46.000 -31.9163 + 47.000 11.8272 + 48.000 9.1748 + 49.000 -44.9682 + 50.000 -63.4026 + 51.000 42.4003 + 52.000 -45.8146 + 53.000 -43.0596 + 54.000 3.7093 + 55.000 -12.4931 + 56.000 0.4115 + 57.000 -1.9119 + 58.000 12.7390 + 59.000 0.0072 + 60.000 -0.9827 + 61.000 -11.6227 + 62.000 37.7545 + 63.000 -33.0964 + 64.000 -24.0258 + 65.000 0.3803 + 66.000 1.5333 + 67.000 -3.7357 + 68.000 -3.7940 + 69.000 -2.6352 + 70.000 -6.6854 + 71.000 29.1672 + 72.000 6.5983 + 73.000 -13.1529 + 74.000 2.2373 + 75.000 -11.1432 + 76.000 -10.0040 + 77.000 53.0248 + 78.000 1.4422 + 79.000 -55.4146 + 80.000 60.1062 + 81.000 -44.6717 + 82.000 -40.1328 + 83.000 7.1293 + 84.000 -43.6790 + 85.000 -2.3942 + 86.000 35.9122 + 87.000 -35.4350 + 88.000 -2.8614 + 89.000 -6.6104 + 90.000 15.3303 + 91.000 -1.6341 + 92.000 -2.4708 + 93.000 11.5671 + 94.000 -9.5012 + 95.000 1.9226 + 96.000 7.0879 + 97.000 15.7241 + 98.000 2.2310 + 99.000 -6.0461 + 100.000 -6.3891 + 101.000 -5.5340 + 102.000 -8.7043 + 103.000 33.9272 + 104.000 4.8889 + 105.000 -10.8848 + 106.000 2.6491 + 107.000 27.3884 + 108.000 -20.5643 + 109.000 1.2506 + 110.000 18.0981 + 111.000 -4.5154 + 112.000 -5.4150 + 113.000 -4.5136 + 114.000 -35.1490 + 115.000 23.6007 + 116.000 32.1090 + 117.000 -47.1800 + 118.000 -43.4538 + 119.000 21.6772 + 120.000 -3.6870 + 121.000 -7.7649 + 122.000 15.1794 + 123.000 -1.8878 + 124.000 -1.3942 + 125.000 16.3508 + 126.000 -7.5107 + 127.000 5.8788 + 128.000 -2.2701 + 129.000 11.7982 + 130.000 2.1432 + 131.000 -5.7966 + 132.000 -5.9880 + 133.000 -2.2569 + 134.000 -6.4891 + 135.000 26.4608 + 136.000 11.9408 + 137.000 -5.3521 + 138.000 1.4686 + 139.000 3.9266 + 140.000 -10.7680 + 141.000 -7.0842 + 142.000 -8.1102 + 143.000 -51.9445 + 144.000 25.1391 + 145.000 -46.3942 + 146.000 -31.4369 + 147.000 -18.6089 + 148.000 -32.2977 + 149.000 -5.7538 + 150.000 -2.1776 + 151.000 -6.4809 + 152.000 13.6663 + 153.000 -0.4833 + 154.000 0.3876 + 155.000 7.4617 + 156.000 -0.9856 + 157.000 0.6494 + 158.000 -0.4951 + 159.000 8.1743 + 160.000 3.0727 + 161.000 -2.9308 + 162.000 -4.5131 + 163.000 0.7854 + 164.000 -3.2879 + 165.000 19.6939 + 166.000 6.4398 + 167.000 -10.2524 + 168.000 -1.0610 + 169.000 -3.9030 + 170.000 -8.7942 + 171.000 30.6392 + 172.000 3.9750 + 173.000 -29.2611 + 174.000 4.9079 + 175.000 10.0971 + 176.000 -46.6100 + 177.000 -63.3640 + 178.000 47.3556 + 179.000 -50.6706 + 180.000 -45.2515 + 181.000 1.9401 + 182.000 -12.1433 + 183.000 -1.4808 + 184.000 -6.5174 + 185.000 14.3141 + 186.000 -1.4784 + 187.000 -3.3919 + 188.000 7.0088 + 189.000 1.0512 + 190.000 -3.2879 + 191.000 -1.1298 + 192.000 10.0543 + 193.000 2.0798 + 194.000 -4.1559 + 195.000 -5.1181 + 196.000 -3.4091 + 197.000 -7.3504 + 198.000 28.7301 + 199.000 6.1713 + 200.000 -12.3120 + 201.000 1.5170 + 202.000 -12.1703 + 203.000 -12.1652 + 204.000 53.0650 + 205.000 1.6739 + 206.000 -52.0853 + 207.000 50.1004 + 208.000 -38.6208 + 209.000 -35.7519 + 210.000 6.6464 + 211.000 -44.5170 + 212.000 -2.7481 + 213.000 34.8515 + 214.000 -34.7848 + 215.000 -3.0829 + 216.000 -7.3440 + 217.000 16.0777 + 218.000 -0.8717 + 219.000 -1.5507 + 220.000 18.0165 + 221.000 -10.7988 + 222.000 12.2567 + 223.000 8.3534 + 224.000 15.1486 + 225.000 3.5267 + 226.000 -5.9006 + 227.000 -6.6656 + 228.000 -4.6379 + 229.000 -8.1071 + 230.000 31.8147 + 231.000 3.6869 + 232.000 -11.4821 + 233.000 2.5777 + 234.000 25.7842 + 235.000 -18.5102 + 236.000 1.0906 + 237.000 14.7593 + 238.000 -2.8689 + 239.000 -4.1269 + 240.000 -3.4454 + 241.000 -31.7221 + 242.000 17.3398 + 243.000 31.2757 + 244.000 -47.8594 + 245.000 -45.1166 + 246.000 27.9990 + 247.000 -3.1508 + 248.000 -6.8784 + 249.000 14.3512 + 250.000 -1.4972 + 251.000 -1.4143 + 252.000 15.8256 + 253.000 -4.9521 + 254.000 9.0296 + 255.000 -4.8091 + 256.000 11.1466 + 257.000 2.3499 + 258.000 -6.0001 + 259.000 -6.3164 + 260.000 -4.1191 + 261.000 -9.1160 + 262.000 34.8470 + 263.000 13.5387 + 264.000 -11.0616 + 265.000 2.3195 + 266.000 3.6159 + 267.000 -12.6652 + 268.000 -2.4180 + 269.000 -10.1004 + 270.000 -54.0343 + 271.000 21.0172 + 272.000 -41.3035 + 273.000 -30.9734 + 274.000 -15.8933 + 275.000 -45.0944 + 276.000 14.8905 + 277.000 -2.7980 + 278.000 -6.3833 + 279.000 14.9068 + 280.000 -1.8362 + 281.000 -0.6153 + 282.000 14.4367 + 283.000 0.9609 + 284.000 1.5609 + 285.000 -8.3448 + 286.000 6.8801 + 287.000 2.7693 + 288.000 -5.6609 + 289.000 -5.1148 + 290.000 0.7087 + 291.000 -5.1167 + 292.000 23.6162 + 293.000 10.2427 + 294.000 -4.0303 + 295.000 0.8437 + 296.000 -3.0373 + 297.000 -6.2920 + 298.000 29.8568 + 299.000 6.8475 + 300.000 -18.4856 + 301.000 -2.1111 + 302.000 -7.8253 + 303.000 -30.0573 + 304.000 -33.9232 + 305.000 -4.0925 + 306.000 -22.0085 + 307.000 -21.9735 + 308.000 -15.8808 + 309.000 -7.9827 + 310.000 0.3665 + 311.000 -1.7780 + 312.000 12.1230 + 313.000 1.9927 + 314.000 2.8631 + 315.000 16.5309 + 316.000 -2.0172 + 317.000 24.6650 + 318.000 -22.4461 + 319.000 2.2860 + 320.000 2.3812 + 321.000 2.7942 + 322.000 12.7896 + 323.000 2.2184 + 324.000 -1.1895 + 325.000 13.1070 + 326.000 -2.1144 + 327.000 0.5400 + 328.000 2.9400 + 329.000 0.7601 + 330.000 -19.9276 + 331.000 -5.2355 + 332.000 -24.5631 + 333.000 -5.4198 + 334.000 -29.9446 + 335.000 -19.8183 + 336.000 -48.5029 + 337.000 -0.6484 + 338.000 -27.8188 + 339.000 2.7076 + 340.000 -0.5664 + 341.000 12.3559 + 342.000 4.9098 + 343.000 1.2858 + 344.000 -14.8529 + 345.000 48.1842 + 346.000 -37.7538 + 347.000 -29.0501 + 348.000 -7.2355 + 349.000 2.0671 + 350.000 -1.4494 + 351.000 -1.7707 + 352.000 2.4143 + 353.000 -2.3598 + 354.000 17.5869 + 355.000 7.3165 + 356.000 -7.9850 + 357.000 -0.9618 + 358.000 -3.9440 + 359.000 -8.5126 + 360.000 36.3600 + 361.000 3.2565 + 362.000 -30.8363 + 363.000 12.7618 + 364.000 6.4811 + 365.000 -43.0851 + 366.000 -56.5705 + 367.000 33.8601 + 368.000 -42.6318 + 369.000 -38.3258 + 370.000 -1.7592 + 371.000 -11.7279 + 372.000 1.0888 + 373.000 -3.3495 + 374.000 13.8868 + 375.000 0.2671 + 376.000 -0.4632 + 377.000 -2.2248 + 378.000 28.0422 + 379.000 -19.1605 + 380.000 -19.4743 + 381.000 -1.0619 + 382.000 1.7330 + 383.000 -3.0998 + 384.000 -3.6420 + 385.000 -0.3905 + 386.000 -4.8275 + 387.000 25.5972 + 388.000 5.4681 + 389.000 -10.9710 + 390.000 1.2495 + 391.000 -9.9117 + 392.000 -8.6957 + 393.000 44.1242 + 394.000 2.0953 + 395.000 -50.6382 + 396.000 55.3796 + 397.000 -44.4465 + 398.000 -36.7717 + 399.000 6.5382 + 400.000 -42.7470 + 401.000 -2.6012 + 402.000 32.8716 + 403.000 -32.2255 + 404.000 -2.1012 + 405.000 -5.5810 + 406.000 13.2211 + 407.000 -1.3161 + 408.000 -1.8755 + 409.000 7.5501 + 410.000 -3.6810 + 411.000 0.3479 + 412.000 -0.9054 + 413.000 14.1594 + 414.000 1.8036 + 415.000 -5.5298 + 416.000 -6.2705 + 417.000 -5.5531 + 418.000 -9.1126 + 419.000 33.8187 + 420.000 4.1739 + 421.000 -12.8861 + 422.000 2.9760 + 423.000 25.2470 + 424.000 -17.2273 + 425.000 1.5467 + 426.000 9.6978 + 427.000 -1.4200 + 428.000 -1.2546 + 429.000 -2.3210 + 430.000 -24.0983 + 431.000 1.9281 + 432.000 29.1289 + 433.000 -46.9219 + 434.000 -46.1769 + 435.000 29.9565 + 436.000 -3.5401 + 437.000 -7.7228 + 438.000 15.3101 + 439.000 -2.9114 + 440.000 -2.7981 + 441.000 21.4259 + 442.000 -21.3776 + 443.000 13.9214 + 444.000 9.1730 + 445.000 19.5129 + 446.000 2.6773 + 447.000 -6.9262 + 448.000 -6.9241 + 449.000 -6.1713 + 450.000 -9.8449 + 451.000 36.9232 + 452.000 12.9094 + 453.000 -14.5330 + 454.000 2.7789 + 455.000 4.0644 + 456.000 -17.1827 + 457.000 7.8761 + 458.000 -14.1506 + 459.000 -66.9433 + 460.000 30.3706 + 461.000 -43.0129 + 462.000 -35.3307 + 463.000 -4.7982 + 464.000 -57.9413 + 465.000 25.1660 + 466.000 -4.4182 + 467.000 -8.3560 + 468.000 16.6821 + 469.000 -2.9599 + 470.000 -2.4270 + 471.000 21.3833 + 472.000 -20.5218 + 473.000 8.8294 + 474.000 9.4573 + 475.000 18.5361 + 476.000 2.4821 + 477.000 -6.5928 + 478.000 -6.6767 + 479.000 -5.2243 + 480.000 -9.0218 + 481.000 36.5040 + 482.000 6.7259 + 483.000 -13.7855 + 484.000 -2.5797 + 485.000 -6.3625 + 486.000 -14.3535 + 487.000 55.0311 + 488.000 -2.4567 + 489.000 -41.8239 + 490.000 25.5940 + 491.000 13.3294 + 492.000 -45.4533 + 493.000 -63.2077 + 494.000 24.4045 + 495.000 -34.1983 + 496.000 -30.7929 + 497.000 9.8975 + 498.000 -16.3249 + 499.000 -3.1565 + 500.000 -7.9935 + 501.000 16.3744 + 502.000 -1.5112 + 503.000 -3.3700 + 504.000 16.8701 + 505.000 -2.1545 + 506.000 9.2924 + 507.000 5.3363 + 508.000 22.7145 + 509.000 8.8476 + 510.000 -4.7498 + 511.000 -4.5557 + 512.000 0.8278 + 513.000 -5.0333 + 514.000 29.3327 + 515.000 9.1262 + 516.000 -1.7655 + 517.000 2.0109 + 518.000 -10.8423 + 519.000 -11.3405 + 520.000 53.7225 + 521.000 1.9904 + 522.000 -54.1795 + 523.000 65.4411 + 524.000 -48.5211 + 525.000 -42.8421 + 526.000 3.7769 + 527.000 -32.7479 + 528.000 -1.0527 + 529.000 13.2720 + 530.000 -28.5025 + 531.000 -0.9247 + 532.000 -5.5638 + 533.000 12.9225 + 534.000 0.9114 + 535.000 1.9647 + 536.000 5.0757 + 537.000 12.0589 + 538.000 -5.6798 + 539.000 -8.2902 + 540.000 1.8826 + 541.000 1.9821 + 542.000 -2.7315 + 543.000 -4.1292 + 544.000 1.7416 + 545.000 -2.4632 + 546.000 17.9585 + 547.000 4.0704 + 548.000 -7.7969 + 549.000 1.8016 + 550.000 24.2596 + 551.000 -17.1683 + 552.000 1.1677 + 553.000 14.3140 + 554.000 -3.0152 + 555.000 -3.6978 + 556.000 -4.0746 + 557.000 -27.1464 + 558.000 12.0202 + 559.000 27.3067 + 560.000 -46.3415 + 561.000 -37.9312 + 562.000 19.3230 + 563.000 -1.5295 + 564.000 -5.1360 + 565.000 12.7837 + 566.000 -0.8676 + 567.000 -0.6427 + 568.000 2.1337 + 569.000 10.6904 + 570.000 -4.6973 + 571.000 -10.2900 + 572.000 5.7696 + 573.000 2.0071 + 574.000 -4.3608 + 575.000 -4.6810 + 576.000 -2.3724 + 577.000 -7.1766 + 578.000 30.1443 + 579.000 11.6123 + 580.000 -11.5621 + 581.000 2.1147 + 582.000 4.1463 + 583.000 -12.5608 + 584.000 -1.0743 + 585.000 -10.3466 + 586.000 -56.7709 + 587.000 22.4606 + 588.000 -41.1151 + 589.000 -30.9004 + 590.000 -12.6809 + 591.000 -46.5628 + 592.000 15.4843 + 593.000 -2.8898 + 594.000 -6.3796 + 595.000 13.8720 + 596.000 -1.2983 + 597.000 -1.4607 + 598.000 10.3663 + 599.000 3.7309 + 600.000 -2.4758 + 601.000 -6.5867 + 602.000 7.0238 + 603.000 2.2867 + 604.000 -5.0298 + 605.000 -5.3499 + 606.000 0.0524 + 607.000 -6.4601 + 608.000 25.0330 + 609.000 7.9486 + 610.000 -3.6440 + 611.000 0.0356 + 612.000 -3.2836 + 613.000 -6.5630 + 614.000 35.0444 + 615.000 4.6695 + 616.000 -26.1016 + 617.000 7.2654 + 618.000 2.2426 + 619.000 -37.0689 + 620.000 -49.3153 + 621.000 23.4331 + 622.000 -35.4759 + 623.000 -33.0598 + 624.000 -6.3924 + 625.000 -10.0324 + 626.000 0.4517 + 627.000 -2.6151 + 628.000 11.1477 + 629.000 0.7770 + 630.000 1.4500 + 631.000 25.3543 + 632.000 -9.6549 + 633.000 -199.3140 + 634.000 -222.8814 + 635.000 15.6007 + 636.000 -50.7328 + 637.000 94.0513 + 638.000 -54.4684 + 639.000 27.4967 + 640.000 -50.1900 + 641.000 -39.2513 + 642.000 -27.6452 + 643.000 10.7305 + 644.000 12.1102 + 645.000 -21.6355 + 646.000 11.1845 + 647.000 8.2208 + 648.000 -19.3135 + 649.000 4.2754 + 650.000 5.0829 + 651.000 -29.6462 + 652.000 15.1145 + 653.000 9.0820 + 654.000 -28.3074 + 655.000 12.9493 + 656.000 10.6327 + 657.000 -20.2526 + 658.000 5.8038 + 659.000 5.1616 + 660.000 -23.6946 + 661.000 12.0887 + 662.000 5.4734 + 663.000 -18.4184 + 664.000 3.7841 + 665.000 5.4556 + 666.000 -38.8663 + 667.000 13.0041 + 668.000 18.1703 + 669.000 -24.7175 + 670.000 5.2109 + 671.000 13.6614 + 672.000 -31.9291 + 673.000 11.5119 + 674.000 12.4519 + 675.000 -24.3225 + 676.000 4.9808 + 677.000 8.4165 + 678.000 -20.4746 + 679.000 6.8957 + 680.000 4.0248 + 681.000 -20.0661 + 682.000 4.2307 + 683.000 5.1093 + 684.000 -13.8088 + 685.000 4.3061 + 686.000 3.3561 + 687.000 -29.5359 + 688.000 10.7297 + 689.000 8.3497 + 690.000 -35.8402 + 691.000 11.3224 + 692.000 17.5387 + 693.000 -27.6510 + 694.000 9.0486 + 695.000 10.7935 + 696.000 -30.8412 + 697.000 10.5337 + 698.000 12.3386 + 699.000 -9.4918 + 700.000 1.7532 + 701.000 -1.4471 + 702.000 -26.4965 + 703.000 8.1499 + 704.000 9.7515 + 705.000 -25.0094 + 706.000 11.6383 + 707.000 8.7761 + 708.000 -20.8781 + 709.000 6.2169 + 710.000 4.4705 + 711.000 -23.7310 + 712.000 4.4565 + 713.000 5.8942 + 714.000 -27.2596 + 715.000 9.3213 + 716.000 10.4267 + 717.000 -7.1802 + 718.000 3.6067 + 719.000 0.0370 + 720.000 -19.4775 + 721.000 1.9757 + 722.000 6.9336 + 723.000 -15.0474 + 724.000 3.3764 + 725.000 9.6606 + 726.000 -23.2368 + 727.000 6.5935 + 728.000 9.9914 + 729.000 -31.0712 + 730.000 14.3604 + 731.000 9.5910 + 732.000 -14.1533 + 733.000 4.0239 + 734.000 0.7755 + 735.000 -32.6377 + 736.000 16.2939 + 737.000 9.9429 + 738.000 -18.3191 + 739.000 4.2345 + 740.000 4.6632 + 741.000 -28.1185 + 742.000 7.6613 + 743.000 16.0813 + 744.000 -13.5719 + 745.000 1.7677 + 746.000 4.4947 + 747.000 -14.0108 + 748.000 4.1566 + 749.000 1.7065 + 750.000 -20.0243 + 751.000 5.5831 + 752.000 8.6162 + 753.000 -31.2468 + 754.000 13.7526 + 755.000 16.2109 + 756.000 -16.3433 + 757.000 2.2707 + 758.000 5.1336 + 759.000 -18.3184 + 760.000 9.0247 + 761.000 5.8949 + 762.000 -17.4563 + 763.000 5.8545 + 764.000 1.5484 + 765.000 -13.0495 + 766.000 1.5674 + 767.000 1.7716 + 768.000 -8.7397 + 769.000 -1.8323 + 770.000 0.5226 + 771.000 -26.2250 + 772.000 8.9413 + 773.000 8.3735 + 774.000 -25.4681 + 775.000 8.4894 + 776.000 7.0566 + 777.000 -13.1938 + 778.000 0.7250 + 779.000 0.1969 + 780.000 -4.1860 + 781.000 -3.8825 + 782.000 -2.3785 + 783.000 -9.8209 + 784.000 -2.3214 + 785.000 1.9143 + 786.000 -24.6335 + 787.000 7.2553 + 788.000 7.1020 + 789.000 -5.8109 + 790.000 -2.5461 + 791.000 -1.2338 + 792.000 -16.8140 + 793.000 2.4445 + 794.000 2.3454 + 795.000 15.0591 + 796.000 -10.6359 + 797.000 -8.1146 + 798.000 13.2729 + 799.000 -8.3267 + 800.000 -11.2733 + 801.000 11.3847 + 802.000 -9.8777 + 803.000 -7.2797 + 804.000 23.7799 + 805.000 -18.0046 + 806.000 -15.2586 + 807.000 16.1479 + 808.000 -12.9276 + 809.000 -13.6942 + 810.000 12.4546 + 811.000 -12.0848 + 812.000 -10.5762 + 813.000 11.0997 + 814.000 -11.7908 + 815.000 -9.0813 + 816.000 20.3666 + 817.000 -14.3563 + 818.000 -16.2053 + 819.000 12.8649 + 820.000 -11.5209 + 821.000 -11.1544 + 822.000 9.8339 + 823.000 -7.7901 + 824.000 -10.8934 + 825.000 6.0525 + 826.000 -12.4717 + 827.000 -6.4642 + 828.000 -15.6140 + 829.000 7.1364 + 830.000 3.3296 + 831.000 15.1254 + 832.000 -11.5397 + 833.000 -12.3569 + 834.000 14.6787 + 835.000 -12.7382 + 836.000 -11.7492 + 837.000 -2.7506 + 838.000 -4.7544 + 839.000 0.3329 + 840.000 2.6533 + 841.000 -8.6267 + 842.000 0.6646 + 843.000 7.7623 + 844.000 -8.4285 + 845.000 -8.1712 + 846.000 11.1277 + 847.000 -11.7520 + 848.000 -9.2760 + 849.000 -13.2009 + 850.000 6.9333 + 851.000 -1.0385 + 852.000 16.4266 + 853.000 -14.5272 + 854.000 -12.2033 + 855.000 9.6014 + 856.000 -5.6764 + 857.000 -10.9526 + 858.000 16.9264 + 859.000 -13.4225 + 860.000 -13.4057 + 861.000 -8.5184 + 862.000 0.2315 + 863.000 -3.1552 + 864.000 -35.1857 + 865.000 14.6379 + 866.000 15.6654 + 867.000 11.5456 + 868.000 -12.6583 + 869.000 -10.4373 + 870.000 10.9555 + 871.000 -9.8166 + 872.000 -11.0123 + 873.000 10.2486 + 874.000 -9.8544 + 875.000 -12.0244 + 876.000 3.9381 + 877.000 -7.7553 + 878.000 -2.1278 + 879.000 -10.7819 + 880.000 0.0859 + 881.000 4.3272 + 882.000 12.8094 + 883.000 -10.8197 + 884.000 -10.0252 + 885.000 5.1713 + 886.000 -6.1826 + 887.000 -7.8660 + 888.000 -23.4505 + 889.000 4.7971 + 890.000 9.1898 + 891.000 34.4797 + 892.000 -19.3306 + 893.000 -23.9953 + 894.000 26.9325 + 895.000 -15.8785 + 896.000 -18.1303 + 897.000 16.9118 + 898.000 -6.8485 + 899.000 -13.8477 + 900.000 7.5179 + 901.000 -9.6855 + 902.000 -8.4593 + 903.000 21.7531 + 904.000 -14.6101 + 905.000 -16.1418 + 906.000 8.7315 + 907.000 -9.7538 + 908.000 -10.2511 + 909.000 14.8709 + 910.000 -10.7247 + 911.000 -10.9125 + 912.000 4.8235 + 913.000 -9.1778 + 914.000 -7.4541 + 915.000 -1.1982 + 916.000 -5.8491 + 917.000 -1.2776 + 918.000 28.0587 + 919.000 -19.8169 + 920.000 -17.4726 + 921.000 -3.4058 + 922.000 -2.5508 + 923.000 -1.5813 + 924.000 27.1864 + 925.000 -13.9303 + 926.000 -16.6138 + 927.000 12.2976 + 928.000 -13.7110 + 929.000 -8.7511 + 930.000 -4.7393 + 931.000 -2.1665 + 932.000 1.1160 + 933.000 25.3827 + 934.000 -17.1185 + 935.000 -13.1567 + 936.000 -3.2251 + 937.000 -1.5182 + 938.000 -5.6148 + 939.000 -6.5380 + 940.000 -1.0627 + 941.000 -4.1427 + 942.000 11.4960 + 943.000 -10.4093 + 944.000 -7.2436 + 945.000 3.7073 + 946.000 -2.7989 + 947.000 -8.4881 + 948.000 32.5551 + 949.000 -19.3396 + 950.000 -24.0092 + 951.000 1.8474 + 952.000 -2.8040 + 953.000 -7.1859 + 954.000 3.2486 + 955.000 -1.8743 + 956.000 -6.8460 + 957.000 0.4545 + 958.000 1.4484 + 959.000 -4.5923 + 960.000 17.4899 + 961.000 -14.1933 + 962.000 -13.5202 + 963.000 -4.1603 + 964.000 -1.9008 + 965.000 -3.4401 + 966.000 10.2447 + 967.000 -10.4241 + 968.000 -3.8393 + 969.000 19.9373 + 970.000 -14.1008 + 971.000 -13.4620 + 972.000 14.5127 + 973.000 -10.4711 + 974.000 -11.6436 + 975.000 12.8356 + 976.000 -11.3251 + 977.000 -7.2255 + 978.000 -7.3139 + 979.000 0.0578 + 980.000 1.3611 + 981.000 -10.6832 + 982.000 5.5371 + 983.000 2.2188 + 984.000 -3.3876 + 985.000 -0.7308 + 986.000 1.1365 + 987.000 -9.5035 + 988.000 0.8879 + 989.000 -0.6419 + 990.000 15.1177 + 991.000 -14.1573 + 992.000 -10.1227 + 993.000 -8.1216 + 994.000 -0.0677 + 995.000 -1.5617 + 996.000 5.6057 + 997.000 -2.1951 + 998.000 -6.7076 + 999.000 -6.2763 + 1000.000 -5.9833 + 1001.000 -1.4088 + 1002.000 4.3754 + 1003.000 -9.6267 + 1004.000 -4.0362 + 1005.000 -13.7004 + 1006.000 4.8802 + 1007.000 4.8932 + 1008.000 -20.4692 + 1009.000 7.6747 + 1010.000 6.4681 + 1011.000 7.4460 + 1012.000 -7.5077 + 1013.000 -9.3530 + 1014.000 -11.7841 + 1015.000 1.9651 + 1016.000 0.4306 + 1017.000 15.8276 + 1018.000 -10.6886 + 1019.000 -12.8547 + 1020.000 17.5100 + 1021.000 -14.4303 + 1022.000 -13.7650 + 1023.000 17.3376 + 1024.000 -13.4336 + 1025.000 -13.4959 + 1026.000 6.2161 + 1027.000 -6.2769 + 1028.000 -9.0891 + 1029.000 -9.4825 + 1030.000 -0.7180 + 1031.000 -0.0350 + 1032.000 20.1173 + 1033.000 -14.8128 + 1034.000 -13.8676 + 1035.000 21.9907 + 1036.000 -15.4894 + 1037.000 -17.0994 + 1038.000 36.8249 + 1039.000 -22.7597 + 1040.000 -20.5124 + 1041.000 30.2152 + 1042.000 -20.9444 + 1043.000 -16.2222 + 1044.000 12.6422 + 1045.000 -9.2251 + 1046.000 -12.8086 + 1047.000 -10.7286 + 1048.000 1.7262 + 1049.000 0.3125 + 1050.000 -25.6656 + 1051.000 10.0011 + 1052.000 12.0577 + 1053.000 -0.0278 + 1054.000 -3.8401 + 1055.000 -6.7380 + 1056.000 12.8031 + 1057.000 -10.8834 + 1058.000 -6.9349 + 1059.000 8.0224 + 1060.000 -8.0677 + 1061.000 -9.7745 + 1062.000 41.6446 + 1063.000 -26.0397 + 1064.000 -24.1155 + 1065.000 11.7121 + 1066.000 -10.9526 + 1067.000 -10.9823 + 1068.000 33.3910 + 1069.000 -21.6373 + 1070.000 -19.7557 + 1071.000 20.9235 + 1072.000 -17.3408 + 1073.000 -16.9841 + 1074.000 -11.3039 + 1075.000 1.2460 + 1076.000 2.1235 + 1077.000 -3.6813 + 1078.000 0.1820 + 1079.000 0.8097 + 1080.000 4.7676 + 1081.000 -4.2930 + 1082.000 -5.7869 + 1083.000 7.9701 + 1084.000 -8.6929 + 1085.000 -6.8922 + 1086.000 -11.6205 + 1087.000 0.9768 + 1088.000 3.1215 + 1089.000 5.5225 + 1090.000 -7.2175 + 1091.000 -6.4898 + 1092.000 7.6506 + 1093.000 -10.4575 + 1094.000 -10.4104 + 1095.000 -8.4921 + 1096.000 0.0015 + 1097.000 1.1606 + 1098.000 -9.2832 + 1099.000 -0.7298 + 1100.000 0.1337 + 1101.000 2.6918 + 1102.000 -8.2901 + 1103.000 -6.3112 + 1104.000 -1.6811 + 1105.000 -3.3148 + 1106.000 -4.1551 + 1107.000 11.0424 + 1108.000 -12.7285 + 1109.000 -9.4601 + 1110.000 -12.9485 + 1111.000 4.3083 + 1112.000 2.9724 + 1113.000 9.9950 + 1114.000 -8.4466 + 1115.000 -10.2623 + 1116.000 -8.7282 + 1117.000 0.0519 + 1118.000 -0.1725 + 1119.000 -22.0666 + 1120.000 4.7428 + 1121.000 9.2992 + 1122.000 -21.7217 + 1123.000 3.7653 + 1124.000 12.1646 + 1125.000 -5.4948 + 1126.000 -0.5184 + 1127.000 -2.5021 + 1128.000 6.2846 + 1129.000 -7.7323 + 1130.000 -8.4116 + 1131.000 -0.3767 + 1132.000 -0.4741 + 1133.000 -7.3744 + 1134.000 -8.5659 + 1135.000 -2.0081 + 1136.000 2.1253 + 1137.000 9.5272 + 1138.000 -3.8406 + 1139.000 -10.7715 + 1140.000 -4.1095 + 1141.000 -2.4244 + 1142.000 -4.4602 + 1143.000 -9.8842 + 1144.000 -1.6349 + 1145.000 -1.8428 + 1146.000 -19.5112 + 1147.000 8.3242 + 1148.000 6.9732 + 1149.000 -18.4420 + 1150.000 2.3658 + 1151.000 4.9882 + 1152.000 -3.4099 + 1153.000 -2.5342 + 1154.000 -2.1630 + 1155.000 -11.5335 + 1156.000 0.0937 + 1157.000 -0.5965 + 1158.000 -20.7008 + 1159.000 3.5028 + 1160.000 10.2534 + 1161.000 5.4909 + 1162.000 -7.5795 + 1163.000 -2.7970 + 1164.000 -12.7916 + 1165.000 2.1257 + 1166.000 4.2793 + 1167.000 19.2765 + 1168.000 -13.8050 + 1169.000 -16.2329 + 1170.000 -5.5973 + 1171.000 -5.7820 + 1172.000 -0.5743 + 1173.000 5.7620 + 1174.000 -7.7990 + 1175.000 -11.7946 + 1176.000 -20.3909 + 1177.000 6.1075 + 1178.000 6.0290 + 1179.000 5.4655 + 1180.000 -3.0609 + 1181.000 -6.8064 + 1182.000 -8.9277 + 1183.000 0.0367 + 1184.000 0.1365 + 1185.000 1.7011 + 1186.000 -6.3148 + 1187.000 -4.4273 + 1188.000 -16.9947 + 1189.000 2.9155 + 1190.000 2.2974 + 1191.000 -16.8603 + 1192.000 2.9366 + 1193.000 4.4764 + 1194.000 -19.3541 + 1195.000 3.7074 + 1196.000 4.1354 + 1197.000 -6.0008 + 1198.000 -4.1521 + 1199.000 -0.1950 + 1200.000 -5.3815 + 1201.000 -4.5750 + 1202.000 1.6452 + 1203.000 0.8006 + 1204.000 -5.5950 + 1205.000 -3.3803 + 1206.000 8.7382 + 1207.000 -3.7851 + 1208.000 -7.0281 + 1209.000 -16.9475 + 1210.000 0.8585 + 1211.000 5.2230 + 1212.000 8.6917 + 1213.000 -7.8703 + 1214.000 -6.9240 + 1215.000 15.2619 + 1216.000 -11.4545 + 1217.000 -9.2324 + 1218.000 8.8368 + 1219.000 -9.0822 + 1220.000 -12.4292 + 1221.000 14.0930 + 1222.000 -9.9782 + 1223.000 -13.8959 + 1224.000 -24.7245 + 1225.000 6.0861 + 1226.000 10.3329 + 1227.000 -13.2335 + 1228.000 4.8532 + 1229.000 -0.5039 + 1230.000 -2.1333 + 1231.000 -3.5490 + 1232.000 -4.9016 + 1233.000 23.2512 + 1234.000 -16.1964 + 1235.000 -19.5705 + 1236.000 -21.4081 + 1237.000 10.1510 + 1238.000 5.7324 + 1239.000 -15.7889 + 1240.000 10.7215 + 1241.000 0.3412 + 1242.000 -6.0624 + 1243.000 -2.9823 + 1244.000 -1.7502 + 1245.000 -4.6637 + 1246.000 -3.0518 + 1247.000 -2.7845 + 1248.000 -22.5677 + 1249.000 5.3665 + 1250.000 14.7791 + 1251.000 -11.3563 + 1252.000 0.4293 + 1253.000 1.8929 + 1254.000 -10.3170 + 1255.000 1.2463 + 1256.000 1.3994 + 1257.000 -18.0584 + 1258.000 4.9941 + 1259.000 6.9048 + 1260.000 16.1576 + 1261.000 -12.5206 + 1262.000 -11.8115 + 1263.000 6.1687 + 1264.000 -3.1080 + 1265.000 -4.5806 + 1266.000 -21.9739 + 1267.000 8.3226 + 1268.000 10.3936 + 1269.000 15.4010 + 1270.000 -13.2522 + 1271.000 -12.2206 + 1272.000 -5.2832 + 1273.000 -4.5699 + 1274.000 0.8097 + 1275.000 6.5341 + 1276.000 -6.3213 + 1277.000 -7.4525 + 1278.000 -15.4754 + 1279.000 8.3148 + 1280.000 3.3742 + 1281.000 8.4673 + 1282.000 -11.7818 + 1283.000 -8.6062 + 1284.000 -0.1500 + 1285.000 -5.8907 + 1286.000 -3.8967 + 1287.000 -7.2622 + 1288.000 1.5382 + 1289.000 1.7416 + 1290.000 -13.4418 + 1291.000 3.0410 + 1292.000 4.1730 + 1293.000 -21.5460 + 1294.000 7.8583 + 1295.000 5.2517 + 1296.000 0.5832 + 1297.000 -5.2160 + 1298.000 -6.6409 + 1299.000 -21.1515 + 1300.000 7.0141 + 1301.000 4.7741 + 1302.000 -12.5180 + 1303.000 1.2250 + 1304.000 1.3939 + 1305.000 -2.1123 + 1306.000 -1.5006 + 1307.000 -3.4791 + 1308.000 7.3409 + 1309.000 -8.6628 + 1310.000 -8.9043 + 1311.000 8.7845 + 1312.000 -11.2169 + 1313.000 -10.6320 + 1314.000 -24.1654 + 1315.000 9.0277 + 1316.000 7.2968 + 1317.000 -17.2233 + 1318.000 3.4041 + 1319.000 3.8654 + 1320.000 -14.9174 + 1321.000 0.3136 + 1322.000 4.4561 + 1323.000 12.1251 + 1324.000 -10.7653 + 1325.000 -10.3760 + 1326.000 14.0327 + 1327.000 -13.2245 + 1328.000 -12.7244 + 1329.000 -1.1018 + 1330.000 -4.9331 + 1331.000 -3.1240 + 1332.000 -24.1443 + 1333.000 12.4282 + 1334.000 9.9324 + 1335.000 26.0142 + 1336.000 -13.3864 + 1337.000 -21.7745 + 1338.000 -14.0604 + 1339.000 0.4360 + 1340.000 2.6007 + 1341.000 -11.5566 + 1342.000 -0.4747 + 1343.000 -0.7145 + 1344.000 -6.6209 + 1345.000 -3.1239 + 1346.000 0.8935 + 1347.000 -12.6312 + 1348.000 1.5566 + 1349.000 1.6096 + 1350.000 -6.3885 + 1351.000 -2.0869 + 1352.000 -1.6422 + 1353.000 -8.3098 + 1354.000 -2.1691 + 1355.000 -2.1573 + 1356.000 11.3353 + 1357.000 -8.5403 + 1358.000 -8.2878 + 1359.000 -14.0838 + 1360.000 4.6093 + 1361.000 5.4751 + 1362.000 -10.4162 + 1363.000 2.8358 + 1364.000 3.0388 + 1365.000 -26.7293 + 1366.000 7.1096 + 1367.000 13.1565 + 1368.000 -20.4659 + 1369.000 5.0270 + 1370.000 5.2968 + 1371.000 -24.7424 + 1372.000 5.9713 + 1373.000 12.7691 + 1374.000 -20.6918 + 1375.000 3.4230 + 1376.000 5.6821 + 1377.000 -11.9572 + 1378.000 3.0327 + 1379.000 2.9710 + 1380.000 -19.9532 + 1381.000 1.4243 + 1382.000 7.3938 + 1383.000 -34.0617 + 1384.000 15.6668 + 1385.000 13.4901 + 1386.000 -14.2715 + 1387.000 2.7434 + 1388.000 2.6745 + 1389.000 -14.0172 + 1390.000 0.6845 + 1391.000 2.1880 + 1392.000 -26.4109 + 1393.000 12.5734 + 1394.000 6.4484 + 1395.000 -22.2267 + 1396.000 12.3187 + 1397.000 4.5512 + 1398.000 -13.3317 + 1399.000 3.2806 + 1400.000 2.7229 + 1401.000 -26.8861 + 1402.000 8.1012 + 1403.000 7.1303 + 1404.000 -37.7907 + 1405.000 16.8888 + 1406.000 15.8439 + 1407.000 -26.1760 + 1408.000 7.8007 + 1409.000 11.8547 + 1410.000 -18.0168 + 1411.000 4.4948 + 1412.000 8.1451 + 1413.000 -16.9871 + 1414.000 4.3912 + 1415.000 3.8651 + 1416.000 -29.6739 + 1417.000 7.2597 + 1418.000 11.1103 + 1419.000 0.9885 + 1420.000 -1.5801 + 1421.000 -5.7664 + 1422.000 -10.1146 + 1423.000 5.4281 + 1424.000 0.7381 + 1425.000 -29.8118 + 1426.000 13.3535 + 1427.000 10.3124 + 1428.000 -14.0363 + 1429.000 2.4912 + 1430.000 6.6616 + 1431.000 -13.7563 + 1432.000 2.4104 + 1433.000 3.7840 + 1434.000 -22.7660 + 1435.000 4.6772 + 1436.000 8.7583 + 1437.000 -21.4765 + 1438.000 5.8564 + 1439.000 7.1196 + 1440.000 -10.5039 + 1441.000 1.5211 + 1442.000 2.9685 + 1443.000 -22.0609 + 1444.000 6.7041 + 1445.000 3.9618 + 1446.000 -12.0868 + 1447.000 3.1958 + 1448.000 -1.1922 + 1449.000 -25.6867 + 1450.000 10.6593 + 1451.000 5.7712 + 1452.000 -19.5054 + 1453.000 11.1033 + 1454.000 5.0675 + 1455.000 -22.4788 + 1456.000 5.8468 + 1457.000 5.9127 + 1458.000 -17.6666 + 1459.000 4.4366 + 1460.000 5.6163 + 1461.000 -15.5621 + 1462.000 8.0972 + 1463.000 6.1519 + 1464.000 -17.4357 + 1465.000 3.4583 + 1466.000 2.8892 + 1467.000 -22.3450 + 1468.000 8.5787 + 1469.000 5.7751 + 1470.000 -23.0510 + 1471.000 3.9215 + 1472.000 7.2782 + 1473.000 -21.8498 + 1474.000 5.2003 + 1475.000 8.3534 + 1476.000 -27.6431 + 1477.000 11.7858 + 1478.000 12.2683 + 1479.000 -30.8158 + 1480.000 11.8032 + 1481.000 12.0640 + 1482.000 -23.9860 + 1483.000 6.9469 + 1484.000 6.8394 + 1485.000 -21.0932 + 1486.000 5.4835 + 1487.000 5.9152 + 1488.000 -28.3403 + 1489.000 8.9434 + 1490.000 7.5792 + 1491.000 -10.9842 + 1492.000 0.0474 + 1493.000 3.0118 + 1494.000 -22.8437 + 1495.000 7.1244 + 1496.000 6.2560 + 1497.000 -24.4039 + 1498.000 7.1475 + 1499.000 7.1877 + 1500.000 -39.4800 + 1501.000 17.5418 + 1502.000 18.2596 + 1503.000 -21.8064 + 1504.000 8.1909 + 1505.000 3.0169 + 1506.000 -11.8248 + 1507.000 2.2265 + 1508.000 4.6351 + 1509.000 -23.5467 + 1510.000 7.6379 + 1511.000 7.0669 + 1512.000 -22.3487 + 1513.000 8.0299 + 1514.000 8.3132 + 1515.000 -13.2207 + 1516.000 3.3589 + 1517.000 3.7099 + 1518.000 -22.8292 + 1519.000 10.6090 + 1520.000 5.9206 + 1521.000 -18.6922 + 1522.000 3.9035 + 1523.000 4.6233 + 1524.000 -24.8791 + 1525.000 13.6643 + 1526.000 6.7799 + 1527.000 -13.7681 + 1528.000 1.7651 + 1529.000 9.3192 + 1530.000 -13.5425 + 1531.000 2.9108 + 1532.000 4.4960 + 1533.000 -20.7229 + 1534.000 9.1447 + 1535.000 6.3876 + 1536.000 -20.1729 + 1537.000 5.0595 + 1538.000 5.6875 + 1539.000 -19.5090 + 1540.000 9.8744 + 1541.000 3.3523 + 1542.000 -12.4472 + 1543.000 0.4487 + 1544.000 3.0883 + 1545.000 -8.9365 + 1546.000 -2.9254 + 1547.000 -0.3421 + 1548.000 -18.4619 + 1549.000 4.0266 + 1550.000 5.9591 + 1551.000 -16.7604 + 1552.000 3.8415 + 1553.000 2.5081 + 1554.000 -14.3372 + 1555.000 0.6462 + 1556.000 7.7148 + 1557.000 -27.4826 + 1558.000 9.0900 + 1559.000 10.2700 + 1560.000 -8.4139 + 1561.000 4.1323 + 1562.000 0.2740 + 1563.000 -16.9772 + 1564.000 8.6763 + 1565.000 3.7592 + 1566.000 -19.5689 + 1567.000 1.5344 + 1568.000 6.2755 + 1569.000 -18.8622 + 1570.000 3.8032 + 1571.000 5.1320 + 1572.000 -17.8546 + 1573.000 3.2982 + 1574.000 2.9340 + 1575.000 -22.9167 + 1576.000 7.9188 + 1577.000 4.5960 + 1578.000 -19.3006 + 1579.000 4.2321 + 1580.000 5.5135 + 1581.000 -12.8221 + 1582.000 3.2090 + 1583.000 2.8961 + 1584.000 -25.7242 + 1585.000 9.1608 + 1586.000 6.5237 + 1587.000 -17.4669 + 1588.000 1.9173 + 1589.000 7.5614 + 1590.000 -16.8413 + 1591.000 2.6090 + 1592.000 5.7590 + 1593.000 -42.4158 + 1594.000 15.6398 + 1595.000 17.5328 + 1596.000 -6.6888 + 1597.000 -1.0310 + 1598.000 -2.6964 + 1599.000 -22.4512 + 1600.000 6.2189 + 1601.000 7.1334 + 1602.000 -25.3158 + 1603.000 11.5472 + 1604.000 9.7494 + 1605.000 -13.5434 + 1606.000 2.4780 + 1607.000 0.5247 + 1608.000 -15.8319 + 1609.000 0.7761 + 1610.000 1.4707 + 1611.000 -33.4072 + 1612.000 13.0057 + 1613.000 14.3955 + 1614.000 -11.1824 + 1615.000 1.8241 + 1616.000 -0.0051 + 1617.000 -13.4504 + 1618.000 0.0186 + 1619.000 3.2869 + 1620.000 -17.6325 + 1621.000 3.2128 + 1622.000 8.2120 + 1623.000 -10.8223 + 1624.000 2.0534 + 1625.000 -0.2814 + 1626.000 -9.8824 + 1627.000 3.9477 + 1628.000 2.9716 + 1629.000 -9.9222 + 1630.000 0.0514 + 1631.000 1.9123 + 1632.000 -11.5800 + 1633.000 0.4495 + 1634.000 1.8286 + 1635.000 -16.2891 + 1636.000 2.7490 + 1637.000 4.1524 + 1638.000 -21.4630 + 1639.000 7.7531 + 1640.000 4.9206 + 1641.000 -10.5714 + 1642.000 -0.5873 + 1643.000 0.8494 + 1644.000 -0.7066 + 1645.000 -2.9982 + 1646.000 -5.5251 + 1647.000 -18.5557 + 1648.000 3.7545 + 1649.000 3.9402 + 1650.000 -12.9116 + 1651.000 -0.1826 + 1652.000 3.5968 + 1653.000 -11.9476 + 1654.000 1.3759 + 1655.000 1.8209 + 1656.000 -20.8770 + 1657.000 4.0024 + 1658.000 11.6477 + 1659.000 -19.5332 + 1660.000 5.7745 + 1661.000 1.8403 + 1662.000 -11.4620 + 1663.000 -0.1295 + 1664.000 3.4960 + 1665.000 -10.4089 + 1666.000 2.2055 + 1667.000 -1.8239 + 1668.000 -13.2348 + 1669.000 3.0116 + 1670.000 5.2757 + 1671.000 -2.9236 + 1672.000 -3.2392 + 1673.000 -1.3924 + 1674.000 -16.7338 + 1675.000 2.8407 + 1676.000 2.3385 + 1677.000 -9.0350 + 1678.000 -2.6114 + 1679.000 -0.9546 + 1680.000 -1.5505 + 1681.000 -2.5391 + 1682.000 -4.7293 + 1683.000 -13.2356 + 1684.000 -0.4974 + 1685.000 5.8806 + 1686.000 -10.2322 + 1687.000 -2.8796 + 1688.000 1.6955 + 1689.000 -7.6567 + 1690.000 3.1182 + 1691.000 -0.7049 + 1692.000 -11.0128 + 1693.000 3.4350 + 1694.000 -1.9474 + 1695.000 -12.6372 + 1696.000 1.0355 + 1697.000 1.6182 + 1698.000 -7.0652 + 1699.000 -1.8652 + 1700.000 -0.0469 + 1701.000 -12.1229 + 1702.000 7.0185 + 1703.000 -1.0553 + 1704.000 0.4786 + 1705.000 -4.8124 + 1706.000 -4.3673 + 1707.000 -19.5582 + 1708.000 3.1803 + 1709.000 6.8042 + 1710.000 -6.7994 + 1711.000 1.7080 + 1712.000 -2.0810 + 1713.000 -25.2179 + 1714.000 8.2335 + 1715.000 7.1456 + 1716.000 -23.8293 + 1717.000 7.4420 + 1718.000 5.3483 + 1719.000 -11.1536 + 1720.000 -0.2234 + 1721.000 -0.8360 + 1722.000 -10.8785 + 1723.000 -1.5394 + 1724.000 1.0061 + 1725.000 -10.0965 + 1726.000 2.4630 + 1727.000 3.8846 + 1728.000 -4.9799 + 1729.000 -1.6632 + 1730.000 -1.7336 + 1731.000 -18.6170 + 1732.000 1.1964 + 1733.000 5.8244 + 1734.000 -20.8265 + 1735.000 6.1276 + 1736.000 5.4036 + 1737.000 -11.1589 + 1738.000 0.5881 + 1739.000 0.8618 + 1740.000 -9.4809 + 1741.000 -0.3727 + 1742.000 -0.3953 + 1743.000 -18.1886 + 1744.000 4.0858 + 1745.000 2.8218 + 1746.000 -8.9080 + 1747.000 0.3090 + 1748.000 1.2777 + 1749.000 -6.4097 + 1750.000 -2.3745 + 1751.000 -1.1354 + 1752.000 27.8604 + 1753.000 -17.2719 + 1754.000 -16.1262 + 1755.000 18.0636 + 1756.000 -13.0308 + 1757.000 -15.4032 + 1758.000 42.2531 + 1759.000 -27.0227 + 1760.000 -21.4456 + 1761.000 35.6396 + 1762.000 -19.8539 + 1763.000 -19.7009 + 1764.000 11.1053 + 1765.000 -12.4837 + 1766.000 -4.5439 + 1767.000 21.6836 + 1768.000 -14.9844 + 1769.000 -15.0300 + 1770.000 17.4426 + 1771.000 -11.4856 + 1772.000 -13.4380 + 1773.000 21.0927 + 1774.000 -16.1236 + 1775.000 -14.5964 + 1776.000 30.5457 + 1777.000 -21.0195 + 1778.000 -20.2840 + 1779.000 46.0030 + 1780.000 -24.1780 + 1781.000 -22.8886 + 1782.000 27.6757 + 1783.000 -16.2078 + 1784.000 -18.3905 + 1785.000 3.7041 + 1786.000 -12.3406 + 1787.000 -4.0332 + 1788.000 21.9927 + 1789.000 -16.7917 + 1790.000 -13.3783 + 1791.000 15.0333 + 1792.000 -12.2183 + 1793.000 -12.8803 + 1794.000 20.6046 + 1795.000 -16.2028 + 1796.000 -15.3718 + 1797.000 8.9745 + 1798.000 -8.6253 + 1799.000 -14.2439 + 1800.000 57.1975 + 1801.000 -28.1884 + 1802.000 -34.3092 + 1803.000 14.1639 + 1804.000 -11.9351 + 1805.000 -11.4153 + 1806.000 21.3376 + 1807.000 -16.4186 + 1808.000 -15.9536 + 1809.000 18.0389 + 1810.000 -16.4376 + 1811.000 -7.6477 + 1812.000 30.8551 + 1813.000 -20.8699 + 1814.000 -19.1767 + 1815.000 18.8916 + 1816.000 -14.8381 + 1817.000 -14.5187 + 1818.000 28.2395 + 1819.000 -20.6034 + 1820.000 -17.0972 + 1821.000 2.4013 + 1822.000 -6.9627 + 1823.000 -7.1119 + 1824.000 7.7008 + 1825.000 -5.7124 + 1826.000 -10.5833 + 1827.000 13.9131 + 1828.000 -6.3929 + 1829.000 -10.9049 + 1830.000 -4.6764 + 1831.000 -5.3004 + 1832.000 -3.3073 + 1833.000 -1.1640 + 1834.000 2.2326 + 1835.000 -7.2239 + 1836.000 22.6713 + 1837.000 -18.0738 + 1838.000 -18.5641 + 1839.000 24.4487 + 1840.000 -17.0099 + 1841.000 -14.5655 + 1842.000 17.6707 + 1843.000 -15.7255 + 1844.000 -14.3554 + 1845.000 -1.3581 + 1846.000 -3.4065 + 1847.000 -5.9175 + 1848.000 -22.3196 + 1849.000 8.5661 + 1850.000 8.4170 + 1851.000 16.4772 + 1852.000 -14.5707 + 1853.000 -11.7872 + 1854.000 13.3934 + 1855.000 -12.4441 + 1856.000 -11.6964 + 1857.000 31.3218 + 1858.000 -21.3550 + 1859.000 -23.0056 + 1860.000 19.0792 + 1861.000 -16.3952 + 1862.000 -9.7792 + 1863.000 -0.3308 + 1864.000 -4.5798 + 1865.000 -1.2558 + 1866.000 24.4187 + 1867.000 -17.2044 + 1868.000 -14.9686 + 1869.000 7.7460 + 1870.000 -8.3520 + 1871.000 -7.7095 + 1872.000 -17.1413 + 1873.000 2.1472 + 1874.000 5.3326 + 1875.000 37.8107 + 1876.000 -18.0801 + 1877.000 -23.1719 + 1878.000 27.6305 + 1879.000 -12.3699 + 1880.000 -19.2283 + 1881.000 17.5051 + 1882.000 -14.3696 + 1883.000 -13.4488 + 1884.000 40.2697 + 1885.000 -26.0169 + 1886.000 -25.3161 + 1887.000 25.3774 + 1888.000 -17.7821 + 1889.000 -19.5062 + 1890.000 21.1050 + 1891.000 -14.1556 + 1892.000 -13.1389 + 1893.000 25.5795 + 1894.000 -19.8188 + 1895.000 -17.1550 + 1896.000 9.0121 + 1897.000 -6.6432 + 1898.000 -9.3925 + 1899.000 13.6062 + 1900.000 -12.8031 + 1901.000 -9.4905 + 1902.000 51.5778 + 1903.000 -28.8517 + 1904.000 -25.5829 + 1905.000 12.5291 + 1906.000 -11.8772 + 1907.000 -9.0680 + 1908.000 49.8318 + 1909.000 -32.4096 + 1910.000 -27.8449 + 1911.000 20.5144 + 1912.000 -17.1204 + 1913.000 -13.9407 + 1914.000 4.3339 + 1915.000 -7.9934 + 1916.000 -3.4244 + 1917.000 50.5122 + 1918.000 -29.5507 + 1919.000 -28.0733 + 1920.000 22.6037 + 1921.000 -13.3477 + 1922.000 -18.2963 + 1923.000 10.2871 + 1924.000 -7.4476 + 1925.000 -10.9134 + 1926.000 5.0950 + 1927.000 -8.5019 + 1928.000 -9.6295 + 1929.000 8.2922 + 1930.000 -7.7045 + 1931.000 -7.1860 + 1932.000 20.4231 + 1933.000 -12.3247 + 1934.000 -13.5248 + 1935.000 29.2571 + 1936.000 -17.9578 + 1937.000 -18.5803 + 1938.000 29.9419 + 1939.000 -19.1336 + 1940.000 -20.3911 + 1941.000 7.5008 + 1942.000 -8.4586 + 1943.000 -8.7947 + 1944.000 25.3007 + 1945.000 -15.8991 + 1946.000 -18.8439 + 1947.000 1.2054 + 1948.000 -4.3743 + 1949.000 -2.3293 + 1950.000 49.3294 + 1951.000 -28.4541 + 1952.000 -27.4635 + 1953.000 -4.3732 + 1954.000 0.5136 + 1955.000 -3.1836 + 1956.000 6.4397 + 1957.000 -7.7334 + 1958.000 -9.7042 + 1959.000 -5.9475 + 1960.000 -2.8407 + 1961.000 -0.8873 + 1962.000 36.7058 + 1963.000 -20.4682 + 1964.000 -26.2694 + 1965.000 63.3278 + 1966.000 -35.8396 + 1967.000 -31.4436 + 1968.000 8.5100 + 1969.000 -2.0412 + 1970.000 -8.5484 + 1971.000 13.0202 + 1972.000 -11.6643 + 1973.000 -10.7604 + 1974.000 33.3699 + 1975.000 -22.9358 + 1976.000 -20.3152 + 1977.000 7.6600 + 1978.000 -7.8890 + 1979.000 -8.6205 + 1980.000 16.5382 + 1981.000 -13.9675 + 1982.000 -7.0889 + 1983.000 13.6023 + 1984.000 -10.6948 + 1985.000 -15.7343 + 1986.000 35.3483 + 1987.000 -21.7799 + 1988.000 -21.3363 + 1989.000 40.3308 + 1990.000 -22.2753 + 1991.000 -25.1926 + 1992.000 49.2998 + 1993.000 -27.2333 + 1994.000 -23.4516 + 1995.000 32.9706 + 1996.000 -20.1837 + 1997.000 -19.1467 + 1998.000 58.3354 + 1999.000 -32.7770 + 2000.000 -31.4574 + 2001.000 -6.3315 + 2002.000 0.9003 + 2003.000 0.7098 + 2004.000 20.0011 + 2005.000 -15.1588 + 2006.000 -15.3194 + 2007.000 5.1659 + 2008.000 -5.6064 + 2009.000 -5.4676 + 2010.000 -0.1791 + 2011.000 -4.3989 + 2012.000 -4.1791 + 2013.000 31.2430 + 2014.000 -20.6167 + 2015.000 -20.2522 + 2016.000 4.8573 + 2017.000 -7.6045 + 2018.000 -6.3629 + 2019.000 14.2457 + 2020.000 -15.4015 + 2021.000 -8.3125 + 2022.000 -1.3669 + 2023.000 -2.7097 + 2024.000 -5.3079 + 2025.000 36.6929 + 2026.000 -26.3408 + 2027.000 -20.8866 + 2028.000 0.8012 + 2029.000 -4.2714 + 2030.000 -6.9926 + 2031.000 22.4498 + 2032.000 -10.9584 + 2033.000 -15.3073 + 2034.000 -4.3054 + 2035.000 -6.3287 + 2036.000 -3.1610 + 2037.000 5.4716 + 2038.000 -10.1736 + 2039.000 -3.8305 + 2040.000 4.8948 + 2041.000 -5.0758 + 2042.000 -6.6048 + 2043.000 -8.3279 + 2044.000 1.6842 + 2045.000 0.3154 + 2046.000 27.7593 + 2047.000 -16.8820 + 2048.000 -19.2020 + 2049.000 1.5050 + 2050.000 -4.3350 + 2051.000 -8.3998 + 2052.000 -4.9157 + 2053.000 -1.2501 + 2054.000 -2.2980 + 2055.000 28.9266 + 2056.000 -16.8886 + 2057.000 -19.2327 + 2058.000 -2.0447 + 2059.000 -2.7594 + 2060.000 -3.0705 + 2061.000 28.0547 + 2062.000 -18.9398 + 2063.000 -18.0620 + 2064.000 16.3275 + 2065.000 -6.5902 + 2066.000 -14.6662 + 2067.000 52.4739 + 2068.000 -30.3466 + 2069.000 -30.0394 + 2070.000 47.1481 + 2071.000 -26.5044 + 2072.000 -31.0135 + 2073.000 50.4933 + 2074.000 -24.2375 + 2075.000 -24.0781 + 2076.000 32.0717 + 2077.000 -17.2142 + 2078.000 -19.1891 + 2079.000 -3.3571 + 2080.000 -3.0499 + 2081.000 -3.2131 + 2082.000 41.2650 + 2083.000 -24.1875 + 2084.000 -19.3671 + 2085.000 43.6745 + 2086.000 -27.7570 + 2087.000 -22.0868 + 2088.000 20.4602 + 2089.000 -14.9354 + 2090.000 -12.1923 + 2091.000 2.6446 + 2092.000 -5.0411 + 2093.000 -5.4358 + 2094.000 -0.5496 + 2095.000 -5.4091 + 2096.000 -3.7520 + 2097.000 5.5716 + 2098.000 -7.9213 + 2099.000 -7.9442 + 2100.000 -8.6567 + 2101.000 0.0964 + 2102.000 -1.0039 + 2103.000 -22.1520 + 2104.000 7.8380 + 2105.000 10.4121 + 2106.000 -8.9679 + 2107.000 0.6359 + 2108.000 -1.4895 + 2109.000 14.9803 + 2110.000 -9.5321 + 2111.000 -14.4226 + 2112.000 12.8049 + 2113.000 -10.9764 + 2114.000 -6.5019 + 2115.000 22.3377 + 2116.000 -18.1041 + 2117.000 -19.3944 + 2118.000 12.4237 + 2119.000 -10.2541 + 2120.000 -8.9035 + 2121.000 9.3100 + 2122.000 -9.9623 + 2123.000 -9.8423 + 2124.000 8.6932 + 2125.000 -8.7253 + 2126.000 -8.9691 + 2127.000 54.1005 + 2128.000 -30.7010 + 2129.000 -33.5007 + 2130.000 20.0144 + 2131.000 -14.7387 + 2132.000 -13.9776 + 2133.000 43.8213 + 2134.000 -26.8049 + 2135.000 -26.3978 + 2136.000 46.4533 + 2137.000 -25.0091 + 2138.000 -26.0887 + 2139.000 24.1588 + 2140.000 -17.2247 + 2141.000 -20.0802 + 2142.000 -15.8398 + 2143.000 6.6607 + 2144.000 3.5835 + 2145.000 -13.8240 + 2146.000 2.1584 + 2147.000 3.9727 + 2148.000 30.1415 + 2149.000 -17.5841 + 2150.000 -18.7368 + 2151.000 43.5517 + 2152.000 -28.9551 + 2153.000 -27.6378 + 2154.000 13.2266 + 2155.000 -10.2704 + 2156.000 -7.4209 + 2157.000 7.8312 + 2158.000 -9.0270 + 2159.000 -10.3554 + 2160.000 25.0659 + 2161.000 -14.6653 + 2162.000 -13.4513 + 2163.000 21.1493 + 2164.000 -17.4307 + 2165.000 -11.6790 + 2166.000 -15.1789 + 2167.000 0.9033 + 2168.000 10.0530 + 2169.000 7.4359 + 2170.000 -8.2832 + 2171.000 -8.6327 + 2172.000 35.2575 + 2173.000 -21.4888 + 2174.000 -17.1233 + 2175.000 18.1640 + 2176.000 -14.9214 + 2177.000 -11.3452 + 2178.000 16.2403 + 2179.000 -13.5338 + 2180.000 -13.8005 + 2181.000 22.3858 + 2182.000 -14.9385 + 2183.000 -16.1138 + 2184.000 24.3405 + 2185.000 -21.2334 + 2186.000 -15.0352 + 2187.000 -3.4796 + 2188.000 -3.2876 + 2189.000 -0.4901 + 2190.000 23.9967 + 2191.000 -17.8319 + 2192.000 -13.2385 + 2193.000 34.6692 + 2194.000 -22.0846 + 2195.000 -23.6266 + 2196.000 22.5554 + 2197.000 -13.2389 + 2198.000 -21.0537 + 2199.000 5.5379 + 2200.000 -7.0276 + 2201.000 -8.3831 + 2202.000 12.0546 + 2203.000 -9.8538 + 2204.000 -10.2939 + 2205.000 -1.4034 + 2206.000 -5.1899 + 2207.000 -3.8525 + 2208.000 -6.3338 + 2209.000 -4.0296 + 2210.000 5.3248 + 2211.000 9.9908 + 2212.000 -10.3630 + 2213.000 -10.8761 + 2214.000 5.7772 + 2215.000 -6.0078 + 2216.000 -7.8462 + 2217.000 39.4997 + 2218.000 -22.3961 + 2219.000 -23.5994 + 2220.000 30.2785 + 2221.000 -23.7754 + 2222.000 -18.3045 + 2223.000 34.3853 + 2224.000 -19.0108 + 2225.000 -25.2245 + 2226.000 -13.1111 + 2227.000 8.0930 + 2228.000 1.8663 + 2229.000 20.4021 + 2230.000 -15.4734 + 2231.000 -16.5106 + 2232.000 27.3125 + 2233.000 -18.2173 + 2234.000 -15.4661 + 2235.000 31.5493 + 2236.000 -17.6244 + 2237.000 -16.5217 + 2238.000 -6.9413 + 2239.000 3.4748 + 2240.000 -6.1781 + 2241.000 -9.0552 + 2242.000 -1.5414 + 2243.000 -2.3237 + 2244.000 18.8091 + 2245.000 -14.9785 + 2246.000 -15.6778 + 2247.000 13.2428 + 2248.000 -12.3022 + 2249.000 -13.1165 + 2250.000 -0.6553 + 2251.000 -1.8234 + 2252.000 -2.1398 + 2253.000 -1.0130 + 2254.000 -6.7717 + 2255.000 -2.9290 + 2256.000 18.5430 + 2257.000 -14.2712 + 2258.000 -13.1501 + 2259.000 13.6714 + 2260.000 -12.9687 + 2261.000 -14.4969 + 2262.000 -0.9418 + 2263.000 -5.7461 + 2264.000 1.2019 + 2265.000 26.3256 + 2266.000 -17.7533 + 2267.000 -12.9626 + 2268.000 12.1840 + 2269.000 -9.6432 + 2270.000 -9.5847 + 2271.000 28.4230 + 2272.000 -17.6638 + 2273.000 -17.8255 + 2274.000 10.7354 + 2275.000 -13.2782 + 2276.000 -8.7896 + 2277.000 10.2356 + 2278.000 -9.2113 + 2279.000 -8.4567 + 2280.000 25.6028 + 2281.000 -11.9405 + 2282.000 -18.3406 + 2283.000 15.4336 + 2284.000 -12.0102 + 2285.000 -12.2561 + 2286.000 28.3351 + 2287.000 -18.9555 + 2288.000 -17.5710 + 2289.000 -0.2679 + 2290.000 -6.1697 + 2291.000 -5.7087 + 2292.000 22.3074 + 2293.000 -15.9355 + 2294.000 -14.5443 + 2295.000 -6.0358 + 2296.000 -3.3442 + 2297.000 -1.3781 + 2298.000 13.9443 + 2299.000 -14.7833 + 2300.000 -10.1687 + 2301.000 29.2516 + 2302.000 -21.2589 + 2303.000 -16.2736 + 2304.000 7.8766 + 2305.000 -9.1626 + 2306.000 -8.4016 + 2307.000 3.9506 + 2308.000 -8.9541 + 2309.000 -4.6723 + 2310.000 17.9147 + 2311.000 -14.8864 + 2312.000 -12.1052 + 2313.000 18.5616 + 2314.000 -15.2669 + 2315.000 -12.9072 + 2316.000 -7.9391 + 2317.000 2.0854 + 2318.000 -2.6528 + 2319.000 40.9529 + 2320.000 -23.2606 + 2321.000 -22.8745 + 2322.000 39.9227 + 2323.000 -24.2205 + 2324.000 -25.6306 + 2325.000 16.8762 + 2326.000 -12.2335 + 2327.000 -13.5418 + 2328.000 0.5903 + 2329.000 -1.8939 + 2330.000 -4.6400 + 2331.000 2.1733 + 2332.000 -4.9231 + 2333.000 -4.3432 + 2334.000 5.3226 + 2335.000 -8.0454 + 2336.000 -5.3890 + 2337.000 4.3765 + 2338.000 -6.3974 + 2339.000 -8.7853 + 2340.000 0.7608 + 2341.000 -5.6959 + 2342.000 -4.7258 + 2343.000 21.8565 + 2344.000 -15.9438 + 2345.000 -19.2464 + 2346.000 -9.5838 + 2347.000 0.5047 + 2348.000 4.9295 + 2349.000 -15.6683 + 2350.000 3.4552 + 2351.000 2.2401 + 2352.000 19.0586 + 2353.000 -10.7793 + 2354.000 -18.3868 + 2355.000 14.9435 + 2356.000 -15.1680 + 2357.000 -11.9364 + 2358.000 1.2736 + 2359.000 -2.6059 + 2360.000 -7.3606 + 2361.000 6.0823 + 2362.000 -7.8331 + 2363.000 -4.7744 + 2364.000 17.3736 + 2365.000 -7.2566 + 2366.000 -13.9006 + 2367.000 -17.8243 + 2368.000 3.5626 + 2369.000 5.2900 + 2370.000 14.8781 + 2371.000 -13.8144 + 2372.000 -12.6559 + 2373.000 17.7009 + 2374.000 -13.6828 + 2375.000 -14.3057 + 2376.000 7.1618 + 2377.000 -7.9139 + 2378.000 -2.4632 + 2379.000 -14.8800 + 2380.000 4.1796 + 2381.000 -1.4139 + 2382.000 8.8936 + 2383.000 -9.0109 + 2384.000 -9.1936 + 2385.000 -3.8221 + 2386.000 -2.1089 + 2387.000 -3.8784 + 2388.000 4.4979 + 2389.000 -6.8214 + 2390.000 -2.6802 + 2391.000 10.4728 + 2392.000 -10.0848 + 2393.000 -8.1743 + 2394.000 5.6866 + 2395.000 -7.3280 + 2396.000 -6.6899 + 2397.000 32.4800 + 2398.000 -17.3698 + 2399.000 -23.0923 + 2400.000 -14.8283 + 2401.000 1.1141 + 2402.000 2.9863 + 2403.000 23.0428 + 2404.000 -13.5370 + 2405.000 -15.9917 + 2406.000 37.7413 + 2407.000 -23.4565 + 2408.000 -23.5388 + 2409.000 -4.0719 + 2410.000 -3.1973 + 2411.000 -2.2644 + 2412.000 27.6545 + 2413.000 -19.6279 + 2414.000 -15.8140 + 2415.000 -15.8778 + 2416.000 -0.2795 + 2417.000 6.4023 + 2418.000 36.5386 + 2419.000 -24.6867 + 2420.000 -24.4942 + 2421.000 2.6994 + 2422.000 -10.9140 + 2423.000 -4.2099 + 2424.000 27.4486 + 2425.000 -16.3574 + 2426.000 -19.1432 + 2427.000 -8.9991 + 2428.000 4.3856 + 2429.000 0.1043 + 2430.000 22.3462 + 2431.000 -18.4897 + 2432.000 -16.0551 + 2433.000 19.1159 + 2434.000 -15.8178 + 2435.000 -12.0800 + 2436.000 14.1939 + 2437.000 -8.2910 + 2438.000 -11.7801 + 2439.000 5.1319 + 2440.000 -6.5890 + 2441.000 -5.1265 + 2442.000 -6.0057 + 2443.000 -0.6491 + 2444.000 -2.0740 + 2445.000 11.6377 + 2446.000 -8.6189 + 2447.000 -11.3527 + 2448.000 19.4710 + 2449.000 -14.1828 + 2450.000 -15.4091 + 2451.000 -3.0702 + 2452.000 -0.9463 + 2453.000 -3.9931 + 2454.000 1.5551 + 2455.000 -5.1079 + 2456.000 -6.0458 + 2457.000 2.6889 + 2458.000 -5.8476 + 2459.000 -6.6022 + 2460.000 -14.2475 + 2461.000 8.4457 + 2462.000 0.6855 + 2463.000 1.9172 + 2464.000 -6.5182 + 2465.000 -5.7958 + 2466.000 24.7002 + 2467.000 -20.0636 + 2468.000 -19.6862 + 2469.000 12.0642 + 2470.000 -9.7248 + 2471.000 -12.4457 + 2472.000 30.2184 + 2473.000 -19.4668 + 2474.000 -14.8211 + 2475.000 12.0309 + 2476.000 -3.7348 + 2477.000 -14.5590 + 2478.000 15.5659 + 2479.000 -10.8386 + 2480.000 -10.3723 + 2481.000 7.8762 + 2482.000 -7.6107 + 2483.000 -8.9390 + 2484.000 5.7566 + 2485.000 -9.9303 + 2486.000 -4.3361 + 2487.000 43.9191 + 2488.000 -23.1645 + 2489.000 -22.9472 + 2490.000 26.2934 + 2491.000 -16.8666 + 2492.000 -18.1728 + 2493.000 45.3173 + 2494.000 -29.8228 + 2495.000 -23.9875 + 2496.000 5.4035 + 2497.000 -5.4136 + 2498.000 -7.0756 + 2499.000 14.3294 + 2500.000 -12.4951 + 2501.000 -11.7790 + 2502.000 -2.4405 + 2503.000 -0.9545 + 2504.000 -0.1253 + 2505.000 26.0428 + 2506.000 -14.6190 + 2507.000 -20.5384 + 2508.000 27.7952 + 2509.000 -18.9239 + 2510.000 -20.0953 + 2511.000 22.4149 + 2512.000 -15.5368 + 2513.000 -12.5835 + 2514.000 32.0427 + 2515.000 -22.3123 + 2516.000 -20.4810 + 2517.000 -2.6662 + 2518.000 -1.6666 + 2519.000 -2.2471 + 2520.000 -6.0768 + 2521.000 -0.4137 + 2522.000 -3.1235 + 2523.000 15.5393 + 2524.000 -12.7059 + 2525.000 -12.5459 + 2526.000 14.5897 + 2527.000 -14.9166 + 2528.000 -9.8520 + 2529.000 26.2047 + 2530.000 -17.0405 + 2531.000 -17.5672 + 2532.000 10.4407 + 2533.000 -9.6688 + 2534.000 -10.1537 + 2535.000 -2.3000 + 2536.000 -1.7292 + 2537.000 -4.5768 + 2538.000 15.2113 + 2539.000 -11.5909 + 2540.000 -12.3113 + 2541.000 12.5131 + 2542.000 -12.4021 + 2543.000 -13.3094 + 2544.000 2.4712 + 2545.000 -1.7605 + 2546.000 -4.3230 + 2547.000 18.1762 + 2548.000 -12.9403 + 2549.000 -10.9194 + 2550.000 -8.0282 + 2551.000 0.8319 + 2552.000 -0.6178 + 2553.000 0.2358 + 2554.000 -6.7714 + 2555.000 -6.3372 + 2556.000 -17.6788 + 2557.000 5.1419 + 2558.000 5.3182 + 2559.000 -3.8882 + 2560.000 -0.6612 + 2561.000 -1.4058 + 2562.000 -12.1824 + 2563.000 3.6156 + 2564.000 2.5138 + 2565.000 -19.7151 + 2566.000 3.8354 + 2567.000 9.8178 + 2568.000 -12.4446 + 2569.000 1.9854 + 2570.000 1.6078 + 2571.000 -13.9147 + 2572.000 1.8948 + 2573.000 0.9849 + 2574.000 -19.6477 + 2575.000 3.3264 + 2576.000 10.2638 + 2577.000 -14.5836 + 2578.000 -0.0872 + 2579.000 2.6805 + 2580.000 -6.9563 + 2581.000 0.4052 + 2582.000 0.5966 + 2583.000 -12.4380 + 2584.000 -1.9463 + 2585.000 3.7326 + 2586.000 -18.2323 + 2587.000 3.7254 + 2588.000 5.2592 + 2589.000 -8.2598 + 2590.000 -0.3324 + 2591.000 -0.5451 + 2592.000 -19.1092 + 2593.000 5.7683 + 2594.000 0.8593 + 2595.000 -22.3180 + 2596.000 8.2600 + 2597.000 5.0786 + 2598.000 -6.9319 + 2599.000 -2.3855 + 2600.000 -1.7770 + 2601.000 -12.2773 + 2602.000 -0.0107 + 2603.000 2.4912 + 2604.000 -11.2207 + 2605.000 3.2333 + 2606.000 -0.7804 + 2607.000 -17.9693 + 2608.000 3.1535 + 2609.000 3.4112 + 2610.000 -19.4614 + 2611.000 8.9417 + 2612.000 3.2786 + 2613.000 -22.8377 + 2614.000 11.8487 + 2615.000 3.2981 + 2616.000 -8.5525 + 2617.000 0.3207 + 2618.000 -0.6577 + 2619.000 -12.4130 + 2620.000 2.7299 + 2621.000 1.6402 + 2622.000 -19.2923 + 2623.000 3.8571 + 2624.000 3.4200 + 2625.000 -30.3210 + 2626.000 12.8970 + 2627.000 12.6998 + 2628.000 -22.3483 + 2629.000 5.6119 + 2630.000 10.2656 + 2631.000 -7.9225 + 2632.000 -0.9195 + 2633.000 3.7611 + 2634.000 -3.6580 + 2635.000 -2.9118 + 2636.000 -3.2472 + 2637.000 -17.4145 + 2638.000 0.5067 + 2639.000 4.7823 + 2640.000 -0.9773 + 2641.000 -1.7782 + 2642.000 -5.1919 + 2643.000 -6.5285 + 2644.000 3.8620 + 2645.000 -1.4692 + 2646.000 -25.2923 + 2647.000 11.3555 + 2648.000 7.9282 + 2649.000 -11.2512 + 2650.000 0.5495 + 2651.000 5.8623 + 2652.000 -8.1862 + 2653.000 -0.4826 + 2654.000 1.1290 + 2655.000 -9.4953 + 2656.000 0.1057 + 2657.000 -1.2102 + 2658.000 -18.0689 + 2659.000 1.9167 + 2660.000 6.0232 + 2661.000 -11.7690 + 2662.000 0.2524 + 2663.000 2.6688 + 2664.000 -12.2944 + 2665.000 0.4693 + 2666.000 3.5249 + 2667.000 -9.8225 + 2668.000 0.8338 + 2669.000 -2.8843 + 2670.000 0.1325 + 2671.000 -3.6136 + 2672.000 -6.9804 + 2673.000 -10.3710 + 2674.000 1.8584 + 2675.000 1.0654 + 2676.000 -21.1172 + 2677.000 4.4865 + 2678.000 6.1120 + 2679.000 -30.8839 + 2680.000 11.8610 + 2681.000 13.8772 + 2682.000 -10.9351 + 2683.000 1.5451 + 2684.000 -1.3099 + 2685.000 -16.1267 + 2686.000 3.2443 + 2687.000 3.8736 + 2688.000 -17.1478 + 2689.000 1.5107 + 2690.000 4.6679 + 2691.000 -13.1837 + 2692.000 7.7467 + 2693.000 1.7505 + 2694.000 -15.9681 + 2695.000 2.6967 + 2696.000 2.4857 + 2697.000 -5.8973 + 2698.000 -0.1682 + 2699.000 -2.2786 + 2700.000 -18.8141 + 2701.000 6.0516 + 2702.000 5.4188 + 2703.000 -5.9898 + 2704.000 0.8831 + 2705.000 -1.0502 + 2706.000 -5.0769 + 2707.000 -4.0228 + 2708.000 -3.3527 + 2709.000 -7.8274 + 2710.000 -0.8877 + 2711.000 1.7267 + 2712.000 0.3379 + 2713.000 -6.6059 + 2714.000 -4.8904 + 2715.000 -9.4512 + 2716.000 2.3169 + 2717.000 -0.0666 + 2718.000 -11.2086 + 2719.000 -1.2862 + 2720.000 1.0963 + 2721.000 -15.7419 + 2722.000 2.5600 + 2723.000 5.0853 + 2724.000 -19.2968 + 2725.000 7.4776 + 2726.000 6.2228 + 2727.000 -25.9367 + 2728.000 8.8688 + 2729.000 10.0187 + 2730.000 -21.8887 + 2731.000 8.1158 + 2732.000 4.7609 + 2733.000 -13.2357 + 2734.000 1.3598 + 2735.000 1.0399 + 2736.000 -22.1755 + 2737.000 6.5521 + 2738.000 7.3661 + 2739.000 -10.0232 + 2740.000 4.8698 + 2741.000 -0.4721 + 2742.000 -13.3121 + 2743.000 3.9138 + 2744.000 3.4591 + 2745.000 -14.1667 + 2746.000 1.0318 + 2747.000 1.8984 + 2748.000 -11.4093 + 2749.000 -0.8272 + 2750.000 -1.2983 + 2751.000 -10.9380 + 2752.000 0.5419 + 2753.000 1.9542 + 2754.000 -16.8962 + 2755.000 2.8687 + 2756.000 3.7644 + 2757.000 -14.0111 + 2758.000 -1.2213 + 2759.000 3.1937 + 2760.000 -25.1231 + 2761.000 9.1955 + 2762.000 6.8638 + 2763.000 -14.5595 + 2764.000 1.6496 + 2765.000 2.4022 + 2766.000 -30.0544 + 2767.000 13.1629 + 2768.000 13.0989 + 2769.000 -9.6522 + 2770.000 3.3283 + 2771.000 -2.8891 + 2772.000 -15.2653 + 2773.000 4.2635 + 2774.000 2.1165 + 2775.000 -6.2844 + 2776.000 -0.4103 + 2777.000 1.6688 + 2778.000 -14.9897 + 2779.000 1.2425 + 2780.000 2.3437 + 2781.000 -26.9609 + 2782.000 10.0228 + 2783.000 10.2382 + 2784.000 -28.8321 + 2785.000 12.6248 + 2786.000 7.3416 + 2787.000 -18.9395 + 2788.000 5.1974 + 2789.000 5.1472 + 2790.000 -25.9572 + 2791.000 11.7218 + 2792.000 9.1667 + 2793.000 -10.3271 + 2794.000 2.2213 + 2795.000 3.0950 + 2796.000 -24.2174 + 2797.000 9.3565 + 2798.000 8.7041 + 2799.000 -31.9131 + 2800.000 15.1057 + 2801.000 11.0400 + 2802.000 -33.2241 + 2803.000 16.9390 + 2804.000 12.3768 + 2805.000 -15.3063 + 2806.000 2.5436 + 2807.000 9.6222 + 2808.000 -20.2537 + 2809.000 6.7758 + 2810.000 7.5633 + 2811.000 -19.9737 + 2812.000 4.1722 + 2813.000 6.4442 + 2814.000 -27.7919 + 2815.000 6.7650 + 2816.000 9.0451 + 2817.000 -25.4785 + 2818.000 8.6725 + 2819.000 6.8263 + 2820.000 -40.9933 + 2821.000 15.6264 + 2822.000 18.7595 + 2823.000 -16.9167 + 2824.000 8.9472 + 2825.000 4.1019 + 2826.000 -21.3880 + 2827.000 10.2551 + 2828.000 5.7528 + 2829.000 -35.0697 + 2830.000 9.2922 + 2831.000 15.5692 + 2832.000 -35.5062 + 2833.000 12.7562 + 2834.000 12.6095 + 2835.000 -23.9397 + 2836.000 7.0458 + 2837.000 6.3509 + 2838.000 -26.4591 + 2839.000 14.1134 + 2840.000 10.4039 + 2841.000 -21.7334 + 2842.000 5.2061 + 2843.000 11.3806 + 2844.000 -26.7807 + 2845.000 12.4399 + 2846.000 6.7158 + 2847.000 -24.1253 + 2848.000 8.8772 + 2849.000 6.1881 + 2850.000 -30.0862 + 2851.000 9.4814 + 2852.000 14.6183 + 2853.000 -18.7688 + 2854.000 5.6573 + 2855.000 3.8182 + 2856.000 -16.6624 + 2857.000 7.7425 + 2858.000 6.6396 + 2859.000 -17.8680 + 2860.000 3.4799 + 2861.000 5.9971 + 2862.000 -19.0631 + 2863.000 6.5394 + 2864.000 8.0084 + 2865.000 -25.9873 + 2866.000 7.4815 + 2867.000 9.2615 + 2868.000 -24.3566 + 2869.000 5.3203 + 2870.000 7.6022 + 2871.000 -8.7989 + 2872.000 0.6973 + 2873.000 -0.8248 + 2874.000 -34.0343 + 2875.000 11.9223 + 2876.000 11.6270 + 2877.000 -18.5441 + 2878.000 2.9571 + 2879.000 6.9287 + 2880.000 -21.7114 + 2881.000 6.8116 + 2882.000 3.5728 + 2883.000 -26.3726 + 2884.000 9.6796 + 2885.000 7.3785 + 2886.000 -33.8652 + 2887.000 15.4454 + 2888.000 14.9822 + 2889.000 -10.2245 + 2890.000 0.0835 + 2891.000 1.4269 + 2892.000 -35.4000 + 2893.000 13.4800 + 2894.000 10.8907 + 2895.000 -14.8351 + 2896.000 -0.3045 + 2897.000 2.6803 + 2898.000 -12.8644 + 2899.000 3.1513 + 2900.000 1.5926 + 2901.000 -22.2508 + 2902.000 3.8246 + 2903.000 10.2171 + 2904.000 -21.5145 + 2905.000 2.2765 + 2906.000 7.3790 + 2907.000 -19.0233 + 2908.000 8.6070 + 2909.000 4.5224 + 2910.000 -14.1649 + 2911.000 7.2929 + 2912.000 0.6145 + 2913.000 -14.4009 + 2914.000 2.1407 + 2915.000 3.1141 + 2916.000 -38.2934 + 2917.000 12.2831 + 2918.000 15.0508 + 2919.000 -17.4515 + 2920.000 7.1780 + 2921.000 3.6505 + 2922.000 -40.9559 + 2923.000 16.9466 + 2924.000 14.9459 + 2925.000 -15.3588 + 2926.000 5.2572 + 2927.000 5.7719 + 2928.000 -20.5704 + 2929.000 6.7795 + 2930.000 7.2892 + 2931.000 -24.1842 + 2932.000 7.3517 + 2933.000 7.1162 + 2934.000 -15.1060 + 2935.000 3.1658 + 2936.000 4.3402 + 2937.000 -18.4712 + 2938.000 3.8627 + 2939.000 5.0899 + 2940.000 7.6129 + 2941.000 -6.5931 + 2942.000 -6.8301 + 2943.000 -2.2788 + 2944.000 -2.4402 + 2945.000 -4.6469 + 2946.000 4.8973 + 2947.000 -6.9318 + 2948.000 -6.2350 + 2949.000 7.8974 + 2950.000 -5.3380 + 2951.000 -8.0114 + 2952.000 5.0692 + 2953.000 -2.5400 + 2954.000 -7.4264 + 2955.000 5.1360 + 2956.000 -9.8627 + 2957.000 -2.2962 + 2958.000 5.0998 + 2959.000 -5.7636 + 2960.000 -7.4420 + 2961.000 8.2368 + 2962.000 -10.0090 + 2963.000 -7.1758 + 2964.000 -7.4445 + 2965.000 -1.5461 + 2966.000 -1.0581 + 2967.000 -9.4959 + 2968.000 -0.0746 + 2969.000 -4.4680 + 2970.000 20.7625 + 2971.000 -18.2913 + 2972.000 -15.8321 + 2973.000 4.9620 + 2974.000 -6.7962 + 2975.000 -8.0658 + 2976.000 -3.4972 + 2977.000 -3.1459 + 2978.000 -1.1987 + 2979.000 -4.1443 + 2980.000 -1.5392 + 2981.000 -4.4465 + 2982.000 -12.4366 + 2983.000 0.6318 + 2984.000 0.7030 + 2985.000 -9.6003 + 2986.000 3.1538 + 2987.000 -1.9139 + 2988.000 4.1693 + 2989.000 -2.8122 + 2990.000 -5.9789 + 2991.000 -14.7380 + 2992.000 -0.3021 + 2993.000 2.5306 + 2994.000 3.9223 + 2995.000 -10.3395 + 2996.000 -3.7351 + 2997.000 6.6440 + 2998.000 -7.8769 + 2999.000 -7.7838 + 3000.000 8.6577 + 3001.000 -10.9624 + 3002.000 -8.2175 + 3003.000 -4.7183 + 3004.000 3.7588 + 3005.000 -5.5313 + 3006.000 12.9436 + 3007.000 -11.1209 + 3008.000 -13.5013 + 3009.000 3.8764 + 3010.000 -7.6784 + 3011.000 -4.8834 + 3012.000 -33.6775 + 3013.000 14.4208 + 3014.000 14.4400 + 3015.000 9.6030 + 3016.000 -4.2758 + 3017.000 -8.0892 + 3018.000 10.7264 + 3019.000 -10.4778 + 3020.000 -4.9104 + 3021.000 -23.5633 + 3022.000 10.5443 + 3023.000 8.8336 + 3024.000 -1.7065 + 3025.000 0.4192 + 3026.000 -0.2922 + 3027.000 2.4563 + 3028.000 -1.8306 + 3029.000 -7.2342 + 3030.000 -8.7527 + 3031.000 1.6810 + 3032.000 -0.7249 + 3033.000 -3.8156 + 3034.000 -2.9133 + 3035.000 0.0952 + 3036.000 2.5391 + 3037.000 -4.6966 + 3038.000 -1.6819 + 3039.000 12.8714 + 3040.000 -10.3100 + 3041.000 -11.3218 + 3042.000 -9.6563 + 3043.000 -0.1501 + 3044.000 3.2578 + 3045.000 7.6855 + 3046.000 -9.8041 + 3047.000 -6.3850 + 3048.000 9.9761 + 3049.000 -8.4727 + 3050.000 -11.0709 + 3051.000 -3.5277 + 3052.000 -0.2472 + 3053.000 -6.1730 + 3054.000 -15.6413 + 3055.000 0.8998 + 3056.000 1.3051 + 3057.000 -1.7007 + 3058.000 -1.8732 + 3059.000 -2.2323 + 3060.000 6.2933 + 3061.000 -5.0404 + 3062.000 -5.7051 + 3063.000 11.3322 + 3064.000 -10.3824 + 3065.000 -8.9997 + 3066.000 19.7304 + 3067.000 -12.3808 + 3068.000 -12.5146 + 3069.000 6.1336 + 3070.000 -8.0928 + 3071.000 -7.3804 + 3072.000 -1.6309 + 3073.000 -4.5460 + 3074.000 -3.5284 + 3075.000 -11.3442 + 3076.000 2.3896 + 3077.000 2.9450 + 3078.000 34.8407 + 3079.000 -23.5410 + 3080.000 -22.9615 + 3081.000 -10.3136 + 3082.000 1.1383 + 3083.000 -0.8034 + 3084.000 -14.9937 + 3085.000 2.1166 + 3086.000 3.4358 + 3087.000 24.3273 + 3088.000 -15.9630 + 3089.000 -18.3258 + 3090.000 5.7739 + 3091.000 -9.2251 + 3092.000 -7.3217 + 3093.000 9.0798 + 3094.000 -10.1883 + 3095.000 -7.4312 + 3096.000 -17.9791 + 3097.000 3.9887 + 3098.000 8.0082 + 3099.000 9.3369 + 3100.000 -9.0726 + 3101.000 -12.7116 + 3102.000 6.2066 + 3103.000 -6.3616 + 3104.000 -7.9762 + 3105.000 -0.0612 + 3106.000 -1.1437 + 3107.000 -1.4443 + 3108.000 19.5930 + 3109.000 -13.0159 + 3110.000 -15.2348 + 3111.000 16.3359 + 3112.000 -14.9586 + 3113.000 -14.8382 + 3114.000 -17.6019 + 3115.000 5.6798 + 3116.000 6.9023 + 3117.000 17.3943 + 3118.000 -15.3408 + 3119.000 -13.2059 + 3120.000 -3.0987 + 3121.000 -1.0547 + 3122.000 -1.0165 + 3123.000 -13.8212 + 3124.000 2.1465 + 3125.000 2.9441 + 3126.000 15.3121 + 3127.000 -11.3850 + 3128.000 -11.8390 + 3129.000 -9.9913 + 3130.000 -0.1538 + 3131.000 1.5209 + 3132.000 4.0496 + 3133.000 -9.7950 + 3134.000 -3.2204 + 3135.000 -18.4967 + 3136.000 6.8582 + 3137.000 5.2097 + 3138.000 10.4342 + 3139.000 -13.7704 + 3140.000 -8.1477 + 3141.000 6.6522 + 3142.000 -3.7395 + 3143.000 -8.4516 + 3144.000 -12.4156 + 3145.000 3.1034 + 3146.000 2.3433 + 3147.000 -27.4457 + 3148.000 10.7198 + 3149.000 10.3126 + 3150.000 -7.5655 + 3151.000 -0.1762 + 3152.000 -3.2356 + 3153.000 -5.2328 + 3154.000 -2.1130 + 3155.000 -0.7070 + 3156.000 16.1934 + 3157.000 -7.5201 + 3158.000 -14.0464 + 3159.000 23.2113 + 3160.000 -16.9354 + 3161.000 -14.5662 + 3162.000 19.3426 + 3163.000 -13.8727 + 3164.000 -14.7090 + 3165.000 17.7187 + 3166.000 -9.9706 + 3167.000 -14.3135 + 3168.000 11.9674 + 3169.000 -7.9258 + 3170.000 -9.6533 + 3171.000 0.6691 + 3172.000 -4.9291 + 3173.000 -5.7073 + 3174.000 0.8947 + 3175.000 -4.9215 + 3176.000 -6.3670 + 3177.000 -5.8287 + 3178.000 1.4897 + 3179.000 0.6573 + 3180.000 -15.9799 + 3181.000 2.1691 + 3182.000 3.4170 + 3183.000 -7.5640 + 3184.000 -1.0378 + 3185.000 -2.3174 + 3186.000 -0.1381 + 3187.000 -1.9138 + 3188.000 -5.4131 + 3189.000 -0.9044 + 3190.000 -5.7805 + 3191.000 -6.4169 + 3192.000 -1.4703 + 3193.000 -2.8431 + 3194.000 -3.5598 + 3195.000 2.8745 + 3196.000 -6.5761 + 3197.000 -6.2845 + 3198.000 39.7248 + 3199.000 -23.1819 + 3200.000 -26.9294 + 3201.000 23.6469 + 3202.000 -17.8793 + 3203.000 -17.1721 + 3204.000 -18.0453 + 3205.000 7.5226 + 3206.000 4.0036 + 3207.000 26.6874 + 3208.000 -15.9470 + 3209.000 -15.9653 + 3210.000 20.1294 + 3211.000 -16.8448 + 3212.000 -13.7502 + 3213.000 3.7978 + 3214.000 -4.0433 + 3215.000 -4.2289 + 3216.000 -0.1685 + 3217.000 -3.8397 + 3218.000 -5.2492 + 3219.000 12.4924 + 3220.000 -11.5936 + 3221.000 -11.0004 + 3222.000 19.2280 + 3223.000 -10.2393 + 3224.000 -12.9639 + 3225.000 11.1069 + 3226.000 -4.8330 + 3227.000 -9.0185 + 3228.000 3.0818 + 3229.000 -7.9839 + 3230.000 -0.5528 + 3231.000 8.2878 + 3232.000 -7.0255 + 3233.000 -9.7149 + 3234.000 0.0459 + 3235.000 -5.2437 + 3236.000 -3.5917 + 3237.000 4.1574 + 3238.000 -8.6767 + 3239.000 -5.7911 + 3240.000 9.7550 + 3241.000 -9.0633 + 3242.000 -14.7514 + 3243.000 3.2575 + 3244.000 -7.8486 + 3245.000 -8.2875 + 3246.000 -4.8638 + 3247.000 -2.0834 + 3248.000 -3.1867 + 3249.000 -6.0248 + 3250.000 -0.9651 + 3251.000 -1.0683 + 3252.000 1.4890 + 3253.000 -3.2895 + 3254.000 -6.7960 + 3255.000 13.2270 + 3256.000 -13.3993 + 3257.000 -10.9292 + 3258.000 11.2041 + 3259.000 -8.2860 + 3260.000 -12.4688 + 3261.000 -1.6166 + 3262.000 0.7560 + 3263.000 -4.3098 + 3264.000 13.6364 + 3265.000 -13.5237 + 3266.000 -11.3223 + 3267.000 -6.4950 + 3268.000 -4.5045 + 3269.000 2.5345 + 3270.000 20.9648 + 3271.000 -13.2746 + 3272.000 -14.4694 + 3273.000 9.7401 + 3274.000 -10.0082 + 3275.000 -7.9659 + 3276.000 10.7887 + 3277.000 -4.9195 + 3278.000 -13.8820 + 3279.000 4.7022 + 3280.000 -6.8907 + 3281.000 -10.0934 + 3282.000 29.4952 + 3283.000 -18.3887 + 3284.000 -18.1065 + 3285.000 -12.1138 + 3286.000 4.0840 + 3287.000 3.3288 + 3288.000 1.1733 + 3289.000 -1.1655 + 3290.000 -3.5668 + 3291.000 -0.1096 + 3292.000 -5.0918 + 3293.000 1.2112 + 3294.000 -2.1544 + 3295.000 0.2561 + 3296.000 -1.2187 + 3297.000 2.8843 + 3298.000 -2.5588 + 3299.000 -1.8692 + 3300.000 -14.5431 + 3301.000 7.4104 + 3302.000 1.5296 + 3303.000 20.4268 + 3304.000 -13.7584 + 3305.000 -16.3832 + 3306.000 2.3656 + 3307.000 -6.8080 + 3308.000 -3.8085 + 3309.000 15.6724 + 3310.000 -12.0789 + 3311.000 -8.0363 + 3312.000 1.0963 + 3313.000 -4.0880 + 3314.000 -4.9900 + 3315.000 8.8656 + 3316.000 -8.9835 + 3317.000 -6.9383 + 3318.000 7.1555 + 3319.000 -9.1152 + 3320.000 -7.5859 + 3321.000 -3.8377 + 3322.000 -0.9382 + 3323.000 -4.4815 + 3324.000 17.7270 + 3325.000 -12.5160 + 3326.000 -17.0362 + 3327.000 10.0158 + 3328.000 -11.0788 + 3329.000 -10.7890 + 3330.000 16.9455 + 3331.000 -10.8401 + 3332.000 -12.4991 + 3333.000 5.7072 + 3334.000 -3.8487 + 3335.000 -5.6332 + 3336.000 4.3508 + 3337.000 -7.3568 + 3338.000 -5.6017 + 3339.000 -2.3972 + 3340.000 -2.0247 + 3341.000 -1.1965 + 3342.000 -2.3531 + 3343.000 -4.2579 + 3344.000 -4.1255 + 3345.000 10.1257 + 3346.000 -11.1746 + 3347.000 -8.6788 + 3348.000 -3.7040 + 3349.000 -1.4784 + 3350.000 -0.6006 + 3351.000 6.3761 + 3352.000 -7.2370 + 3353.000 -10.9215 + 3354.000 31.7078 + 3355.000 -18.5714 + 3356.000 -21.9077 + 3357.000 9.7278 + 3358.000 -10.7796 + 3359.000 -9.5356 + 3360.000 8.1651 + 3361.000 -6.8244 + 3362.000 -10.2811 + 3363.000 -8.7905 + 3364.000 -1.9517 + 3365.000 1.0740 + 3366.000 -9.2543 + 3367.000 -0.1727 + 3368.000 1.5920 + 3369.000 -7.2769 + 3370.000 -2.3824 + 3371.000 2.7425 + 3372.000 1.4660 + 3373.000 -3.7540 + 3374.000 -8.9445 + 3375.000 -13.3093 + 3376.000 2.5305 + 3377.000 2.4042 + 3378.000 -19.2515 + 3379.000 8.5485 + 3380.000 7.6888 + 3381.000 26.6627 + 3382.000 -16.2583 + 3383.000 -17.9995 + 3384.000 7.4327 + 3385.000 -10.6420 + 3386.000 -10.1012 + 3387.000 23.2182 + 3388.000 -14.1107 + 3389.000 -15.4091 + 3390.000 -4.8662 + 3391.000 -3.8994 + 3392.000 -1.2930 + 3393.000 20.1155 + 3394.000 -12.0825 + 3395.000 -13.0780 + 3396.000 18.5502 + 3397.000 -13.9158 + 3398.000 -15.0703 + 3399.000 -3.9612 + 3400.000 -2.5481 + 3401.000 -1.5282 + 3402.000 12.0654 + 3403.000 -11.6226 + 3404.000 -8.3082 + 3405.000 -12.7448 + 3406.000 -1.8954 + 3407.000 4.6122 + 3408.000 10.3222 + 3409.000 -8.4633 + 3410.000 -8.5927 + 3411.000 -3.6032 + 3412.000 -7.7830 + 3413.000 -0.5432 + 3414.000 -11.7509 + 3415.000 5.5986 + 3416.000 0.4429 + 3417.000 1.7578 + 3418.000 -3.8328 + 3419.000 -4.7749 + 3420.000 -11.5904 + 3421.000 1.9584 + 3422.000 2.9462 + 3423.000 14.4698 + 3424.000 -11.1702 + 3425.000 -12.8444 + 3426.000 13.8555 + 3427.000 -12.1041 + 3428.000 -10.7181 + 3429.000 -0.6424 + 3430.000 0.9063 + 3431.000 -5.1584 + 3432.000 1.1565 + 3433.000 -6.8881 + 3434.000 -3.9893 + 3435.000 27.4228 + 3436.000 -16.8381 + 3437.000 -20.3658 + 3438.000 12.1330 + 3439.000 -8.7402 + 3440.000 -10.8124 + 3441.000 31.5024 + 3442.000 -19.6555 + 3443.000 -19.2199 + 3444.000 -1.5890 + 3445.000 -2.5963 + 3446.000 -3.6282 + 3447.000 14.4172 + 3448.000 -12.9400 + 3449.000 -12.7120 + 3450.000 17.2324 + 3451.000 -11.1133 + 3452.000 -11.8441 + 3453.000 17.3690 + 3454.000 -15.4725 + 3455.000 -13.8329 + 3456.000 7.1142 + 3457.000 -7.1989 + 3458.000 -9.2517 + 3459.000 26.2673 + 3460.000 -17.2099 + 3461.000 -17.6967 + 3462.000 21.1385 + 3463.000 -17.0662 + 3464.000 -16.0003 + 3465.000 5.4766 + 3466.000 -5.2107 + 3467.000 -7.4490 + 3468.000 9.7902 + 3469.000 -8.6532 + 3470.000 -10.5174 + 3471.000 40.5697 + 3472.000 -24.8608 + 3473.000 -26.1635 + 3474.000 10.5540 + 3475.000 -9.5073 + 3476.000 -12.6534 + 3477.000 8.7669 + 3478.000 -5.3343 + 3479.000 -9.0056 + 3480.000 6.9589 + 3481.000 -5.7696 + 3482.000 -8.0633 + 3483.000 3.7126 + 3484.000 -9.3663 + 3485.000 -6.4010 + 3486.000 -24.9590 + 3487.000 8.5473 + 3488.000 9.8153 + 3489.000 -12.2631 + 3490.000 3.5682 + 3491.000 1.8894 + 3492.000 -15.8674 + 3493.000 5.9527 + 3494.000 3.9989 + 3495.000 -30.6623 + 3496.000 13.5848 + 3497.000 15.4366 + 3498.000 -16.5443 + 3499.000 4.6339 + 3500.000 3.3536 + 3501.000 -22.3549 + 3502.000 5.4282 + 3503.000 7.5536 + 3504.000 -20.4507 + 3505.000 6.0796 + 3506.000 1.3756 + 3507.000 -26.9362 + 3508.000 11.2964 + 3509.000 7.1973 + 3510.000 -12.9830 + 3511.000 0.1424 + 3512.000 2.8637 + 3513.000 -15.8799 + 3514.000 5.4879 + 3515.000 1.6955 + 3516.000 -12.7685 + 3517.000 0.6015 + 3518.000 1.7451 + 3519.000 -26.6746 + 3520.000 13.2727 + 3521.000 6.8770 + 3522.000 -17.0921 + 3523.000 8.4425 + 3524.000 0.2992 + 3525.000 -11.5196 + 3526.000 2.5116 + 3527.000 0.7449 + 3528.000 -31.5912 + 3529.000 13.8457 + 3530.000 12.9735 + 3531.000 -23.8730 + 3532.000 11.1511 + 3533.000 9.5955 + 3534.000 -23.9117 + 3535.000 10.3948 + 3536.000 11.1250 + 3537.000 -11.8285 + 3538.000 1.7795 + 3539.000 -0.7069 + 3540.000 -20.5561 + 3541.000 4.9595 + 3542.000 8.0485 + 3543.000 -8.8903 + 3544.000 0.5945 + 3545.000 3.8882 + 3546.000 -13.9231 + 3547.000 2.3248 + 3548.000 4.1626 + 3549.000 -13.0488 + 3550.000 3.0614 + 3551.000 -1.9105 + 3552.000 -13.0811 + 3553.000 1.2353 + 3554.000 0.4255 + 3555.000 -7.7784 + 3556.000 1.3585 + 3557.000 -0.3709 + 3558.000 -19.4374 + 3559.000 3.0906 + 3560.000 5.8533 + 3561.000 -32.3955 + 3562.000 13.0242 + 3563.000 14.0577 + 3564.000 -8.3397 + 3565.000 0.6546 + 3566.000 0.0599 + 3567.000 -12.9715 + 3568.000 -0.0201 + 3569.000 2.1719 + 3570.000 -30.2441 + 3571.000 9.0447 + 3572.000 13.9527 + 3573.000 -7.9976 + 3574.000 0.7365 + 3575.000 -1.7644 + 3576.000 -7.7851 + 3577.000 0.3457 + 3578.000 -0.5111 + 3579.000 -0.3839 + 3580.000 -1.2032 + 3581.000 -3.3882 + 3582.000 -10.8286 + 3583.000 -0.3010 + 3584.000 -0.4666 + 3585.000 -11.0062 + 3586.000 0.3934 + 3587.000 3.5788 + 3588.000 -14.3729 + 3589.000 3.0886 + 3590.000 3.4476 + 3591.000 -23.2301 + 3592.000 8.9736 + 3593.000 8.0092 + 3594.000 -33.8464 + 3595.000 12.6302 + 3596.000 14.1935 + 3597.000 -17.0530 + 3598.000 5.4180 + 3599.000 3.0796 + 3600.000 -15.5637 + 3601.000 2.7243 + 3602.000 4.2771 + 3603.000 -19.8032 + 3604.000 10.0343 + 3605.000 3.1389 + 3606.000 -15.7440 + 3607.000 4.2000 + 3608.000 4.1692 + 3609.000 -20.7312 + 3610.000 3.5509 + 3611.000 5.3295 + 3612.000 -11.9550 + 3613.000 3.8910 + 3614.000 1.9471 + 3615.000 -11.9625 + 3616.000 -1.9630 + 3617.000 1.0438 + 3618.000 -24.2978 + 3619.000 9.0978 + 3620.000 6.2020 + 3621.000 -10.9214 + 3622.000 1.4743 + 3623.000 0.9359 + 3624.000 -15.9933 + 3625.000 2.2327 + 3626.000 3.1855 + 3627.000 -28.0057 + 3628.000 10.9744 + 3629.000 10.1117 + 3630.000 -27.0683 + 3631.000 12.1328 + 3632.000 6.4004 + 3633.000 -15.6714 + 3634.000 6.5112 + 3635.000 3.9477 + 3636.000 -38.3073 + 3637.000 13.6390 + 3638.000 15.6591 + 3639.000 -36.6756 + 3640.000 18.9739 + 3641.000 14.7408 + 3642.000 -35.1829 + 3643.000 13.4210 + 3644.000 12.2602 + 3645.000 -49.5335 + 3646.000 24.5180 + 3647.000 19.7655 + 3648.000 -38.3962 + 3649.000 17.2495 + 3650.000 14.7498 + 3651.000 -30.8655 + 3652.000 11.4276 + 3653.000 11.3493 + 3654.000 -31.0472 + 3655.000 9.5880 + 3656.000 13.6801 + 3657.000 -37.4687 + 3658.000 19.2283 + 3659.000 11.4995 + 3660.000 -41.3693 + 3661.000 17.8183 + 3662.000 16.1590 + 3663.000 -39.2186 + 3664.000 15.4118 + 3665.000 18.8895 + 3666.000 -23.5711 + 3667.000 5.3931 + 3668.000 8.7344 + 3669.000 -36.3997 + 3670.000 14.1408 + 3671.000 17.6310 + 3672.000 -9.6845 + 3673.000 0.0946 + 3674.000 3.9804 + 3675.000 -27.1843 + 3676.000 13.1571 + 3677.000 9.0445 + 3678.000 -50.1913 + 3679.000 19.7943 + 3680.000 21.3168 + 3681.000 -27.7629 + 3682.000 6.2729 + 3683.000 13.9307 + 3684.000 -4.4345 + 3685.000 -0.8539 + 3686.000 -2.2449 + 3687.000 -43.2903 + 3688.000 14.8608 + 3689.000 17.5374 + 3690.000 -30.6266 + 3691.000 12.3976 + 3692.000 8.9219 + 3693.000 -19.3814 + 3694.000 5.0527 + 3695.000 4.7636 + 3696.000 -22.6148 + 3697.000 8.8665 + 3698.000 7.1166 + 3699.000 -42.7977 + 3700.000 17.7611 + 3701.000 15.9030 + 3702.000 -18.5203 + 3703.000 4.6549 + 3704.000 2.0675 + 3705.000 -26.9736 + 3706.000 6.2869 + 3707.000 9.2915 + 3708.000 -47.2992 + 3709.000 18.7986 + 3710.000 19.9416 + 3711.000 -28.4033 + 3712.000 11.6286 + 3713.000 7.9287 + 3714.000 -35.9333 + 3715.000 12.1587 + 3716.000 14.3015 + 3717.000 -38.9554 + 3718.000 19.0317 + 3719.000 16.1068 + 3720.000 -18.5699 + 3721.000 5.7035 + 3722.000 4.2030 + 3723.000 -26.6246 + 3724.000 6.0925 + 3725.000 5.7880 + 3726.000 -44.5814 + 3727.000 17.8411 + 3728.000 18.9401 + 3729.000 -31.2548 + 3730.000 14.8705 + 3731.000 10.2487 + 3732.000 -27.8160 + 3733.000 13.5513 + 3734.000 11.4385 + 3735.000 -16.1274 + 3736.000 0.5877 + 3737.000 3.6416 + 3738.000 -13.3518 + 3739.000 0.7696 + 3740.000 0.8995 + 3741.000 -43.1900 + 3742.000 15.5684 + 3743.000 23.4806 + 3744.000 -23.3081 + 3745.000 7.3788 + 3746.000 9.3966 + 3747.000 -43.2696 + 3748.000 15.8355 + 3749.000 20.6160 + 3750.000 -44.1470 + 3751.000 22.0617 + 3752.000 16.9587 + 3753.000 -26.1373 + 3754.000 10.1519 + 3755.000 7.4374 + 3756.000 -53.3258 + 3757.000 27.5449 + 3758.000 19.3332 + 3759.000 -26.0146 + 3760.000 5.4878 + 3761.000 9.5760 + 3762.000 -23.3762 + 3763.000 8.3373 + 3764.000 7.1024 + 3765.000 -21.8282 + 3766.000 3.4806 + 3767.000 7.4952 + 3768.000 -18.8738 + 3769.000 3.1542 + 3770.000 8.2246 + 3771.000 -32.2535 + 3772.000 11.4190 + 3773.000 12.0000 + 3774.000 -27.0884 + 3775.000 10.2938 + 3776.000 6.9727 + 3777.000 -33.6347 + 3778.000 11.8971 + 3779.000 14.5733 + 3780.000 -24.3067 + 3781.000 13.6865 + 3782.000 7.4841 + 3783.000 -28.6587 + 3784.000 8.5280 + 3785.000 9.4191 + 3786.000 -13.0161 + 3787.000 3.9781 + 3788.000 2.5025 + 3789.000 -20.9029 + 3790.000 7.8191 + 3791.000 2.8119 + 3792.000 -13.7736 + 3793.000 0.2553 + 3794.000 1.5753 + 3795.000 -18.7566 + 3796.000 3.2106 + 3797.000 3.8864 + 3798.000 -5.9856 + 3799.000 -2.9118 + 3800.000 -0.3137 + 3801.000 -33.5698 + 3802.000 16.6253 + 3803.000 9.6187 + 3804.000 -49.4198 + 3805.000 21.1801 + 3806.000 19.4416 + 3807.000 -26.2539 + 3808.000 11.4004 + 3809.000 10.4230 + 3810.000 -14.0640 + 3811.000 1.0134 + 3812.000 1.3431 + 3813.000 -30.5696 + 3814.000 9.2379 + 3815.000 11.4578 + 3816.000 -47.9194 + 3817.000 21.3088 + 3818.000 17.3359 + 3819.000 -37.4811 + 3820.000 13.3421 + 3821.000 16.6330 + 3822.000 -25.8735 + 3823.000 5.6848 + 3824.000 7.1792 + 3825.000 -16.1270 + 3826.000 1.3128 + 3827.000 2.8393 + 3828.000 -24.4091 + 3829.000 9.2846 + 3830.000 7.4287 + 3831.000 -27.6660 + 3832.000 11.2503 + 3833.000 7.3160 + 3834.000 -4.8708 + 3835.000 -2.7091 + 3836.000 -1.7615 + 3837.000 -17.2482 + 3838.000 5.8245 + 3839.000 3.3645 + 3840.000 -21.5621 + 3841.000 6.5937 + 3842.000 11.1076 + 3843.000 -20.2948 + 3844.000 5.3435 + 3845.000 3.8254 + 3846.000 -25.0159 + 3847.000 4.4564 + 3848.000 10.1029 + 3849.000 -29.1523 + 3850.000 10.0072 + 3851.000 8.9812 + 3852.000 -17.1733 + 3853.000 5.1932 + 3854.000 6.0169 + 3855.000 -18.1868 + 3856.000 6.2489 + 3857.000 5.1404 + 3858.000 -15.2190 + 3859.000 1.6746 + 3860.000 2.7155 + 3861.000 -23.3672 + 3862.000 6.4627 + 3863.000 6.1770 + 3864.000 22.5188 + 3865.000 -17.9154 + 3866.000 -14.2890 + 3867.000 23.3382 + 3868.000 -13.4574 + 3869.000 -16.0317 + 3870.000 11.6401 + 3871.000 -8.9363 + 3872.000 -7.6100 + 3873.000 29.3155 + 3874.000 -17.6972 + 3875.000 -18.4835 + 3876.000 8.1586 + 3877.000 -9.8870 + 3878.000 -10.0237 + 3879.000 7.0991 + 3880.000 -8.4054 + 3881.000 -6.6122 + 3882.000 31.2435 + 3883.000 -24.3346 + 3884.000 -19.7300 + 3885.000 51.9550 + 3886.000 -26.2127 + 3887.000 -27.2567 + 3888.000 42.9818 + 3889.000 -26.2326 + 3890.000 -22.6447 + 3891.000 11.8936 + 3892.000 -11.7879 + 3893.000 -9.9892 + 3894.000 23.5852 + 3895.000 -13.9018 + 3896.000 -20.1274 + 3897.000 4.7183 + 3898.000 -8.7197 + 3899.000 -4.7327 + 3900.000 17.1714 + 3901.000 -17.9807 + 3902.000 -8.1894 + 3903.000 -14.0271 + 3904.000 7.3581 + 3905.000 2.1410 + 3906.000 24.8833 + 3907.000 -16.2717 + 3908.000 -14.6890 + 3909.000 23.8174 + 3910.000 -16.4258 + 3911.000 -14.1629 + 3912.000 17.0081 + 3913.000 -13.5583 + 3914.000 -8.8306 + 3915.000 10.5224 + 3916.000 -10.7990 + 3917.000 -4.3320 + 3918.000 22.0497 + 3919.000 -16.0014 + 3920.000 -11.0725 + 3921.000 47.5467 + 3922.000 -28.4215 + 3923.000 -22.0565 + 3924.000 5.1253 + 3925.000 -6.4367 + 3926.000 -8.8882 + 3927.000 22.4152 + 3928.000 -12.1647 + 3929.000 -16.2057 + 3930.000 13.4434 + 3931.000 -12.0961 + 3932.000 -14.4773 + 3933.000 17.3070 + 3934.000 -13.7469 + 3935.000 -12.8026 + 3936.000 18.0023 + 3937.000 -16.8360 + 3938.000 -12.5086 + 3939.000 19.9927 + 3940.000 -17.3889 + 3941.000 -9.3899 + 3942.000 -17.3684 + 3943.000 9.8591 + 3944.000 1.7877 + 3945.000 19.6215 + 3946.000 -15.5862 + 3947.000 -13.6464 + 3948.000 1.3707 + 3949.000 -1.9790 + 3950.000 -7.3462 + 3951.000 -7.3626 + 3952.000 -5.0545 + 3953.000 -0.2668 + 3954.000 54.2925 + 3955.000 -28.7402 + 3956.000 -26.8362 + 3957.000 8.0861 + 3958.000 -7.0475 + 3959.000 -10.5744 + 3960.000 7.6754 + 3961.000 -7.6262 + 3962.000 -10.5285 + 3963.000 -6.3800 + 3964.000 -2.9679 + 3965.000 -1.8613 + 3966.000 25.2789 + 3967.000 -16.6890 + 3968.000 -17.4743 + 3969.000 41.6925 + 3970.000 -24.6758 + 3971.000 -26.8073 + 3972.000 -6.6952 + 3973.000 -2.5661 + 3974.000 0.8881 + 3975.000 44.1080 + 3976.000 -27.5853 + 3977.000 -28.6517 + 3978.000 -0.4618 + 3979.000 -2.4023 + 3980.000 -3.6570 + 3981.000 -11.5769 + 3982.000 0.5126 + 3983.000 1.9332 + 3984.000 22.5232 + 3985.000 -12.1324 + 3986.000 -19.7837 + 3987.000 15.5090 + 3988.000 -10.7818 + 3989.000 -11.4054 + 3990.000 23.2922 + 3991.000 -11.0806 + 3992.000 -18.4957 + 3993.000 38.7864 + 3994.000 -26.4413 + 3995.000 -22.8149 + 3996.000 34.8532 + 3997.000 -18.6344 + 3998.000 -21.5958 + 3999.000 40.3529 + 4000.000 -25.6951 + 4001.000 -23.8759 + 4002.000 43.6169 + 4003.000 -22.3065 + 4004.000 -28.3983 + 4005.000 25.2882 + 4006.000 -18.6435 + 4007.000 -18.6189 + 4008.000 11.7218 + 4009.000 -9.4671 + 4010.000 -14.7663 + 4011.000 8.2790 + 4012.000 -10.7362 + 4013.000 -5.0701 + 4014.000 28.3364 + 4015.000 -18.3222 + 4016.000 -18.6048 + 4017.000 0.6468 + 4018.000 -3.4257 + 4019.000 -4.6397 + 4020.000 32.3951 + 4021.000 -15.7639 + 4022.000 -20.5173 + 4023.000 4.1520 + 4024.000 -4.4829 + 4025.000 -7.8011 + 4026.000 61.0854 + 4027.000 -33.7859 + 4028.000 -32.2495 + 4029.000 -4.0351 + 4030.000 -4.4686 + 4031.000 0.2933 + 4032.000 37.9654 + 4033.000 -23.5271 + 4034.000 -25.4882 + 4035.000 28.4343 + 4036.000 -19.6634 + 4037.000 -13.8467 + 4038.000 -11.6849 + 4039.000 3.6350 + 4040.000 -0.9011 + 4041.000 -11.7945 + 4042.000 1.3568 + 4043.000 -3.0186 + 4044.000 19.7072 + 4045.000 -12.3294 + 4046.000 -11.8243 + 4047.000 -1.9206 + 4048.000 -0.8472 + 4049.000 -3.1688 + 4050.000 5.4541 + 4051.000 -9.0827 + 4052.000 -3.6340 + 4053.000 18.6717 + 4054.000 -9.7261 + 4055.000 -15.3084 + 4056.000 -11.5793 + 4057.000 5.2089 + 4058.000 -1.0249 + 4059.000 4.1863 + 4060.000 -1.3011 + 4061.000 -8.0690 + 4062.000 20.5406 + 4063.000 -17.1986 + 4064.000 -14.7720 + 4065.000 43.7365 + 4066.000 -28.1653 + 4067.000 -24.8155 + 4068.000 45.1452 + 4069.000 -25.7837 + 4070.000 -28.5749 + 4071.000 6.8499 + 4072.000 -7.3241 + 4073.000 -9.9952 + 4074.000 64.0552 + 4075.000 -37.3265 + 4076.000 -34.8198 + 4077.000 54.2463 + 4078.000 -30.3379 + 4079.000 -29.3310 + 4080.000 12.4915 + 4081.000 -9.1557 + 4082.000 -9.6411 + 4083.000 19.6230 + 4084.000 -16.0169 + 4085.000 -14.7349 + 4086.000 21.8655 + 4087.000 -15.4686 + 4088.000 -15.7000 + 4089.000 18.0323 + 4090.000 -14.6384 + 4091.000 -11.5560 + 4092.000 -22.3132 + 4093.000 7.4190 + 4094.000 10.0209 + 4095.000 -11.6573 + 4096.000 7.2268 + 4097.000 1.7009 + 4098.000 22.1779 + 4099.000 -11.5495 + 4100.000 -16.1282 + 4101.000 -20.3928 + 4102.000 6.8331 + 4103.000 3.7443 + 4104.000 28.6335 + 4105.000 -21.4015 + 4106.000 -17.9887 + 4107.000 -9.3937 + 4108.000 0.6637 + 4109.000 -2.0827 + 4110.000 30.2379 + 4111.000 -16.5767 + 4112.000 -19.6798 + 4113.000 -13.1391 + 4114.000 5.7300 + 4115.000 1.2515 + 4116.000 -14.8545 + 4117.000 2.7854 + 4118.000 3.1927 + 4119.000 -2.7915 + 4120.000 -9.0797 + 4121.000 -1.8796 + 4122.000 -9.4052 + 4123.000 2.6020 + 4124.000 3.4428 + 4125.000 -7.2951 + 4126.000 -0.3611 + 4127.000 -2.5977 + 4128.000 1.2638 + 4129.000 -6.7175 + 4130.000 -4.6452 + 4131.000 23.4855 + 4132.000 -16.2519 + 4133.000 -16.3730 + 4134.000 -3.4687 + 4135.000 -2.8657 + 4136.000 -2.5807 + 4137.000 -6.1758 + 4138.000 -2.8300 + 4139.000 -0.9849 + 4140.000 28.7899 + 4141.000 -17.8374 + 4142.000 -23.8263 + 4143.000 58.0116 + 4144.000 -35.3019 + 4145.000 -34.2032 + 4146.000 7.6921 + 4147.000 -3.3470 + 4148.000 -11.8716 + 4149.000 12.3111 + 4150.000 -9.9649 + 4151.000 -12.4663 + 4152.000 7.3239 + 4153.000 -5.0751 + 4154.000 -7.9611 + 4155.000 46.9744 + 4156.000 -28.4381 + 4157.000 -31.6678 + 4158.000 15.8261 + 4159.000 -14.8933 + 4160.000 -12.1496 + 4161.000 0.3624 + 4162.000 -3.2956 + 4163.000 -5.5915 + 4164.000 7.3061 + 4165.000 -6.5883 + 4166.000 -8.9549 + 4167.000 -20.5798 + 4168.000 6.3172 + 4169.000 5.2784 + 4170.000 -1.9274 + 4171.000 -0.9225 + 4172.000 -8.6033 + 4173.000 10.6800 + 4174.000 -7.9673 + 4175.000 -10.2459 + 4176.000 15.3242 + 4177.000 -13.7425 + 4178.000 -9.1678 + 4179.000 6.8756 + 4180.000 -9.1849 + 4181.000 -9.3843 + 4182.000 24.5461 + 4183.000 -18.7424 + 4184.000 -15.9070 + 4185.000 33.1627 + 4186.000 -22.5077 + 4187.000 -20.4604 + 4188.000 30.1087 + 4189.000 -18.3355 + 4190.000 -21.3518 + 4191.000 25.0489 + 4192.000 -18.4496 + 4193.000 -14.6064 + 4194.000 30.0823 + 4195.000 -18.0304 + 4196.000 -21.3130 + 4197.000 25.9371 + 4198.000 -13.9295 + 4199.000 -18.7333 + 4200.000 48.1035 + 4201.000 -25.6049 + 4202.000 -30.4401 + 4203.000 38.3150 + 4204.000 -24.7323 + 4205.000 -22.0319 + 4206.000 2.4840 + 4207.000 -3.6690 + 4208.000 -5.8420 + 4209.000 10.8183 + 4210.000 -6.0686 + 4211.000 -12.3202 + 4212.000 9.8943 + 4213.000 -12.0320 + 4214.000 -8.2778 + 4215.000 -8.5324 + 4216.000 0.0391 + 4217.000 -2.7796 + 4218.000 22.4693 + 4219.000 -19.1212 + 4220.000 -17.9563 + 4221.000 48.4535 + 4222.000 -28.4982 + 4223.000 -25.2852 + 4224.000 46.0903 + 4225.000 -27.8458 + 4226.000 -28.9820 + 4227.000 49.4740 + 4228.000 -27.7105 + 4229.000 -24.2524 + 4230.000 47.5462 + 4231.000 -28.6715 + 4232.000 -30.1984 + 4233.000 -11.2676 + 4234.000 0.0495 + 4235.000 2.8318 + 4236.000 -3.1164 + 4237.000 -1.9902 + 4238.000 -2.3810 + 4239.000 -14.2363 + 4240.000 5.3681 + 4241.000 4.6178 + 4242.000 8.9313 + 4243.000 -6.2556 + 4244.000 -6.5898 + 4245.000 8.3340 + 4246.000 -8.3425 + 4247.000 -7.8412 + 4248.000 -17.7874 + 4249.000 3.2805 + 4250.000 6.9421 + 4251.000 -0.1612 + 4252.000 -4.6229 + 4253.000 -3.9674 + 4254.000 1.6000 + 4255.000 -6.7249 + 4256.000 -6.6125 + 4257.000 -8.3442 + 4258.000 -0.6232 + 4259.000 3.7614 + 4260.000 -20.3735 + 4261.000 4.3815 + 4262.000 4.6262 + 4263.000 -42.0444 + 4264.000 11.5519 + 4265.000 12.3138 + 4266.000 -0.8543 + 4267.000 -7.2880 + 4268.000 -4.1621 + 4269.000 -2.3625 + 4270.000 -4.1303 + 4271.000 -3.2866 + 4272.000 9.1510 + 4273.000 -9.0981 + 4274.000 -8.8466 + 4275.000 21.7291 + 4276.000 -16.9148 + 4277.000 -12.8811 + 4278.000 -7.6536 + 4279.000 1.5420 + 4280.000 0.4634 + 4281.000 -11.1213 + 4282.000 -0.7815 + 4283.000 2.2717 + 4284.000 13.8317 + 4285.000 -10.0986 + 4286.000 -10.6652 + 4287.000 -5.4260 + 4288.000 -1.3892 + 4289.000 -0.2863 + 4290.000 -22.4343 + 4291.000 13.9373 + 4292.000 4.3817 + 4293.000 13.6068 + 4294.000 -9.7571 + 4295.000 -7.6929 + 4296.000 -25.9091 + 4297.000 7.4583 + 4298.000 9.3534 + 4299.000 -54.1684 + 4300.000 18.8115 + 4301.000 20.5686 + 4302.000 5.6734 + 4303.000 -5.3490 + 4304.000 -8.6391 + 4305.000 -8.8107 + 4306.000 5.9744 + 4307.000 -0.2915 + 4308.000 12.6776 + 4309.000 -13.2500 + 4310.000 -12.4410 + 4311.000 -7.2935 + 4312.000 1.2336 + 4313.000 -2.0528 + 4314.000 8.2621 + 4315.000 -8.3551 + 4316.000 -10.5117 + 4317.000 -26.0883 + 4318.000 8.2981 + 4319.000 11.2504 + 4320.000 4.5604 + 4321.000 -2.7891 + 4322.000 -8.6127 + 4323.000 -28.8223 + 4324.000 11.4605 + 4325.000 8.3496 + 4326.000 -13.0589 + 4327.000 0.0934 + 4328.000 4.5674 + 4329.000 4.9622 + 4330.000 -1.7285 + 4331.000 -8.8444 + 4332.000 19.1401 + 4333.000 -16.6452 + 4334.000 -14.1914 + 4335.000 2.5707 + 4336.000 -2.9873 + 4337.000 -6.6708 + 4338.000 16.5649 + 4339.000 -15.1851 + 4340.000 -14.7207 + 4341.000 26.5514 + 4342.000 -18.5593 + 4343.000 -16.3779 + 4344.000 26.7024 + 4345.000 -18.7819 + 4346.000 -18.4143 + 4347.000 -80.7825 + 4348.000 26.4308 + 4349.000 30.9248 + 4350.000 2.6226 + 4351.000 -4.5267 + 4352.000 -3.4982 + 4353.000 -18.7896 + 4354.000 2.9949 + 4355.000 2.4533 + 4356.000 -29.7275 + 4357.000 7.0086 + 4358.000 9.6692 + 4359.000 24.8086 + 4360.000 -17.9249 + 4361.000 -13.4426 + 4362.000 -34.6832 + 4363.000 14.2009 + 4364.000 17.3826 + 4365.000 18.4278 + 4366.000 -12.5501 + 4367.000 -13.8986 + 4368.000 34.3815 + 4369.000 -25.1056 + 4370.000 -22.6129 + 4371.000 -3.4408 + 4372.000 -2.0853 + 4373.000 -7.6424 + 4374.000 -24.3554 + 4375.000 7.8561 + 4376.000 8.0571 + 4377.000 9.8060 + 4378.000 -6.6447 + 4379.000 -8.5444 + 4380.000 -11.6698 + 4381.000 4.5389 + 4382.000 1.1657 + 4383.000 -1.4327 + 4384.000 -4.9923 + 4385.000 -2.9489 + 4386.000 -39.5969 + 4387.000 15.9952 + 4388.000 10.0400 + 4389.000 1.5763 + 4390.000 -8.6857 + 4391.000 -6.9625 + 4392.000 -28.0601 + 4393.000 8.3697 + 4394.000 7.7702 + 4395.000 -0.1218 + 4396.000 -8.3386 + 4397.000 -3.6852 + 4398.000 -7.8733 + 4399.000 -2.6009 + 4400.000 1.9946 + 4401.000 8.5121 + 4402.000 -9.0455 + 4403.000 -8.4204 + 4404.000 6.8328 + 4405.000 -2.4015 + 4406.000 -5.9050 + 4407.000 -3.6710 + 4408.000 -0.5397 + 4409.000 -1.0514 + 4410.000 21.4950 + 4411.000 -15.8906 + 4412.000 -14.7015 + 4413.000 -32.2021 + 4414.000 7.7834 + 4415.000 14.6688 + 4416.000 15.0990 + 4417.000 -11.1774 + 4418.000 -9.1849 + 4419.000 6.7095 + 4420.000 -7.6926 + 4421.000 -10.8033 + 4422.000 23.8868 + 4423.000 -13.9282 + 4424.000 -20.4335 + 4425.000 -29.9031 + 4426.000 11.4172 + 4427.000 10.3496 + 4428.000 14.6247 + 4429.000 -9.1701 + 4430.000 -9.4160 + 4431.000 -28.5038 + 4432.000 8.2835 + 4433.000 12.0690 + 4434.000 -15.9833 + 4435.000 5.2031 + 4436.000 0.9613 + 4437.000 8.9156 + 4438.000 -6.7123 + 4439.000 -13.3343 + 4440.000 -25.1639 + 4441.000 11.8787 + 4442.000 7.7469 + 4443.000 17.6595 + 4444.000 -17.8812 + 4445.000 -15.1915 + 4446.000 -47.7477 + 4447.000 21.2922 + 4448.000 20.6097 + 4449.000 -25.7892 + 4450.000 3.7271 + 4451.000 10.0149 + 4452.000 10.0534 + 4453.000 -11.9751 + 4454.000 -11.6208 + 4455.000 -72.3124 + 4456.000 60.0503 + 4457.000 24.0262 + 4458.000 -24.2624 + 4459.000 10.1206 + 4460.000 7.9808 + 4461.000 24.6863 + 4462.000 -15.9396 + 4463.000 -14.1627 + 4464.000 -10.7324 + 4465.000 -0.4527 + 4466.000 0.8682 + 4467.000 -15.0695 + 4468.000 3.5061 + 4469.000 4.2309 + 4470.000 -24.3579 + 4471.000 8.5986 + 4472.000 10.2391 + 4473.000 11.0798 + 4474.000 -10.6743 + 4475.000 -8.2746 + 4476.000 19.9953 + 4477.000 -8.9267 + 4478.000 -11.3276 + 4479.000 -17.0547 + 4480.000 6.6503 + 4481.000 4.2220 + 4482.000 17.2540 + 4483.000 -14.5588 + 4484.000 -14.7109 + 4485.000 -8.6486 + 4486.000 -2.9956 + 4487.000 3.2609 + 4488.000 15.2843 + 4489.000 -9.3796 + 4490.000 -12.5095 + 4491.000 -18.1850 + 4492.000 9.6979 + 4493.000 3.1655 + 4494.000 9.7455 + 4495.000 -7.7467 + 4496.000 -11.0070 + 4497.000 17.4396 + 4498.000 -13.2322 + 4499.000 -10.6869 + 4500.000 23.7718 + 4501.000 -18.8952 + 4502.000 -13.8773 + 4503.000 21.3059 + 4504.000 -13.7397 + 4505.000 -15.1785 + 4506.000 4.3716 + 4507.000 -4.6342 + 4508.000 -3.1104 + 4509.000 10.5932 + 4510.000 -11.5814 + 4511.000 -10.0215 + 4512.000 9.9909 + 4513.000 -9.6512 + 4514.000 -11.4389 + 4515.000 -31.3792 + 4516.000 13.2710 + 4517.000 9.9496 + 4518.000 24.3885 + 4519.000 -19.8829 + 4520.000 -17.4035 + 4521.000 24.1102 + 4522.000 -17.3691 + 4523.000 -18.9462 + 4524.000 -85.3328 + 4525.000 27.6046 + 4526.000 62.7549 + 4527.000 -30.5688 + 4528.000 11.6555 + 4529.000 10.5419 + 4530.000 -39.5177 + 4531.000 11.9191 + 4532.000 19.6249 + 4533.000 -24.3029 + 4534.000 10.9399 + 4535.000 4.2672 + 4536.000 -5.9902 + 4537.000 0.3857 + 4538.000 -1.6648 + 4539.000 -27.6653 + 4540.000 11.1781 + 4541.000 9.3389 + 4542.000 -56.5179 + 4543.000 19.4537 + 4544.000 28.6506 + 4545.000 -17.5290 + 4546.000 4.9641 + 4547.000 3.7478 + 4548.000 4.4785 + 4549.000 -7.7016 + 4550.000 -6.7394 + 4551.000 22.8748 + 4552.000 -11.6734 + 4553.000 -16.7348 + 4554.000 3.6906 + 4555.000 -6.8019 + 4556.000 -9.3876 + 4557.000 39.9209 + 4558.000 -23.3827 + 4559.000 -24.6888 + 4560.000 -26.2291 + 4561.000 9.1776 + 4562.000 8.9624 + 4563.000 -11.5293 + 4564.000 1.8232 + 4565.000 0.8830 + 4566.000 4.2650 + 4567.000 -7.8326 + 4568.000 -8.1167 + 4569.000 -25.2196 + 4570.000 7.9509 + 4571.000 7.4859 + 4572.000 -26.1736 + 4573.000 7.3746 + 4574.000 11.8281 + 4575.000 6.3686 + 4576.000 -7.5358 + 4577.000 -8.7026 + 4578.000 -11.6477 + 4579.000 0.1446 + 4580.000 -0.7859 + 4581.000 48.8336 + 4582.000 -24.8204 + 4583.000 -23.0935 + 4584.000 -21.5418 + 4585.000 4.6588 + 4586.000 4.9424 + 4587.000 -23.2219 + 4588.000 9.4091 + 4589.000 5.4403 + 4590.000 8.1739 + 4591.000 -8.9535 + 4592.000 -9.9803 + 4593.000 44.7132 + 4594.000 -28.4392 + 4595.000 -24.7648 + 4596.000 24.4728 + 4597.000 -14.9730 + 4598.000 -21.8466 + 4599.000 31.4075 + 4600.000 -17.7557 + 4601.000 -20.2787 + 4602.000 35.9097 + 4603.000 -22.8948 + 4604.000 -23.7959 + 4605.000 10.3346 + 4606.000 -10.3354 + 4607.000 -10.7313 + 4608.000 -1.1148 + 4609.000 -0.9921 + 4610.000 -1.8020 + 4611.000 -6.7072 + 4612.000 -1.5418 + 4613.000 -7.1124 + 4614.000 -4.9031 + 4615.000 4.1917 + 4616.000 1.6485 + 4617.000 -42.1220 + 4618.000 14.9471 + 4619.000 17.8669 + 4620.000 -16.5927 + 4621.000 0.8060 + 4622.000 9.9985 + 4623.000 -37.5755 + 4624.000 15.4727 + 4625.000 17.4566 + 4626.000 -32.9964 + 4627.000 8.4140 + 4628.000 7.9008 + 4629.000 45.8463 + 4630.000 -22.8345 + 4631.000 -26.8813 + 4632.000 -26.5301 + 4633.000 10.9756 + 4634.000 12.0862 + 4635.000 -24.1217 + 4636.000 9.2273 + 4637.000 9.3987 + 4638.000 -38.5151 + 4639.000 13.0389 + 4640.000 19.6765 + 4641.000 -30.8434 + 4642.000 10.2579 + 4643.000 10.2023 + 4644.000 -39.3455 + 4645.000 12.8070 + 4646.000 19.7884 + 4647.000 -32.1684 + 4648.000 8.9835 + 4649.000 11.2043 + 4650.000 -24.5388 + 4651.000 9.2243 + 4652.000 9.0948 + 4653.000 -26.8031 + 4654.000 8.2468 + 4655.000 9.4441 + 4656.000 -29.2803 + 4657.000 6.2218 + 4658.000 12.3265 + 4659.000 -45.5997 + 4660.000 21.0606 + 4661.000 19.9742 + 4662.000 -25.2749 + 4663.000 10.1281 + 4664.000 9.2096 + 4665.000 -24.4998 + 4666.000 7.9834 + 4667.000 7.8363 + 4668.000 -19.9435 + 4669.000 6.9187 + 4670.000 10.2585 + 4671.000 -24.5230 + 4672.000 8.7643 + 4673.000 11.3047 + 4674.000 -28.3014 + 4675.000 11.7513 + 4676.000 8.1480 + 4677.000 -26.8572 + 4678.000 6.9056 + 4679.000 7.6397 + 4680.000 -25.0229 + 4681.000 6.4617 + 4682.000 7.5086 + 4683.000 -34.5837 + 4684.000 16.3880 + 4685.000 10.5657 + 4686.000 -33.5366 + 4687.000 18.7253 + 4688.000 10.2399 + 4689.000 -29.9289 + 4690.000 7.1892 + 4691.000 12.3887 + 4692.000 -23.7781 + 4693.000 8.8040 + 4694.000 7.8004 + 4695.000 -35.8545 + 4696.000 12.7916 + 4697.000 11.4832 + 4698.000 -25.5343 + 4699.000 9.7892 + 4700.000 7.3228 + 4701.000 -31.4729 + 4702.000 11.9077 + 4703.000 9.1172 + 4704.000 -35.6073 + 4705.000 12.7783 + 4706.000 16.3947 + 4707.000 -26.0815 + 4708.000 9.0851 + 4709.000 11.7485 + 4710.000 -25.7593 + 4711.000 8.5924 + 4712.000 8.2339 + 4713.000 -48.9656 + 4714.000 18.4388 + 4715.000 21.9011 + 4716.000 -11.0172 + 4717.000 4.1633 + 4718.000 0.1312 + 4719.000 -26.8140 + 4720.000 12.2194 + 4721.000 9.1483 + 4722.000 -41.1385 + 4723.000 18.8821 + 4724.000 16.2186 + 4725.000 -26.3713 + 4726.000 8.5801 + 4727.000 12.9425 + 4728.000 -25.0169 + 4729.000 8.5249 + 4730.000 7.9597 + 4731.000 -25.7453 + 4732.000 7.3056 + 4733.000 5.7040 + 4734.000 -34.5988 + 4735.000 10.2984 + 4736.000 14.3935 + 4737.000 -31.2846 + 4738.000 10.6214 + 4739.000 11.9833 + 4740.000 -38.4073 + 4741.000 16.6098 + 4742.000 16.6368 + 4743.000 -20.3054 + 4744.000 5.7676 + 4745.000 6.2018 + 4746.000 -30.0812 + 4747.000 10.3617 + 4748.000 7.8045 + 4749.000 -19.0360 + 4750.000 6.8415 + 4751.000 2.5361 + 4752.000 -21.8703 + 4753.000 9.2536 + 4754.000 8.1958 + 4755.000 -35.1813 + 4756.000 15.0973 + 4757.000 10.9952 + 4758.000 -28.7505 + 4759.000 7.8377 + 4760.000 9.2502 + 4761.000 -32.6096 + 4762.000 10.2083 + 4763.000 10.8657 + 4764.000 -25.2741 + 4765.000 9.1274 + 4766.000 8.1523 + 4767.000 -23.1104 + 4768.000 7.1741 + 4769.000 7.9303 + 4770.000 -21.0747 + 4771.000 10.8462 + 4772.000 9.4226 + 4773.000 -24.1686 + 4774.000 6.7861 + 4775.000 6.4157 + 4776.000 -31.2611 + 4777.000 13.0826 + 4778.000 10.2968 + 4779.000 -30.7649 + 4780.000 12.3217 + 4781.000 9.5696 + 4782.000 -33.1263 + 4783.000 13.1190 + 4784.000 12.6201 + 4785.000 -32.6043 + 4786.000 8.5860 + 4787.000 11.9360 + 4788.000 -29.9282 + 4789.000 9.4837 + 4790.000 12.3191 + 4791.000 -35.9899 + 4792.000 15.5853 + 4793.000 16.7526 + 4794.000 -35.4021 + 4795.000 13.2651 + 4796.000 12.3354 + 4797.000 -30.7316 + 4798.000 10.1934 + 4799.000 8.9967 + 4800.000 -34.7032 + 4801.000 13.1283 + 4802.000 12.2671 + 4803.000 -43.8244 + 4804.000 17.5884 + 4805.000 17.7799 + 4806.000 -31.6624 + 4807.000 10.3594 + 4808.000 11.0551 + 4809.000 -17.7390 + 4810.000 7.9448 + 4811.000 2.5170 + 4812.000 -35.5824 + 4813.000 12.0975 + 4814.000 11.1772 + 4815.000 -34.6789 + 4816.000 13.2260 + 4817.000 8.8035 + 4818.000 -32.0822 + 4819.000 13.8993 + 4820.000 13.1165 + 4821.000 -29.0731 + 4822.000 9.5239 + 4823.000 8.3904 + 4824.000 -22.3698 + 4825.000 5.6767 + 4826.000 8.5299 + 4827.000 -20.8907 + 4828.000 6.9116 + 4829.000 6.5155 + 4830.000 -34.0138 + 4831.000 12.5693 + 4832.000 12.2733 + 4833.000 -35.5269 + 4834.000 14.9158 + 4835.000 11.8295 + 4836.000 -38.6167 + 4837.000 12.6746 + 4838.000 14.7882 + 4839.000 -35.0082 + 4840.000 14.5466 + 4841.000 14.3988 + 4842.000 -22.0137 + 4843.000 6.5868 + 4844.000 8.4144 + 4845.000 -27.4028 + 4846.000 8.4975 + 4847.000 6.0318 + 4848.000 -31.4361 + 4849.000 11.5422 + 4850.000 10.8295 + 4851.000 -17.2049 + 4852.000 6.0489 + 4853.000 4.5510 + 4854.000 -34.7116 + 4855.000 13.3654 + 4856.000 13.1016 + 4857.000 -43.6837 + 4858.000 20.7736 + 4859.000 17.0093 + 4860.000 -38.3817 + 4861.000 15.4736 + 4862.000 13.3414 + 4863.000 -38.5448 + 4864.000 19.1224 + 4865.000 15.0491 + 4866.000 -14.4819 + 4867.000 1.5279 + 4868.000 2.6290 + 4869.000 -56.7602 + 4870.000 22.4310 + 4871.000 26.9560 + 4872.000 -39.8585 + 4873.000 21.7264 + 4874.000 14.8712 + 4875.000 -8.5465 + 4876.000 0.1483 + 4877.000 1.7757 + 4878.000 -22.4709 + 4879.000 8.5018 + 4880.000 8.4756 + 4881.000 -52.5515 + 4882.000 27.0912 + 4883.000 21.3208 + 4884.000 -55.2982 + 4885.000 21.8969 + 4886.000 23.1875 + 4887.000 -54.6219 + 4888.000 21.1101 + 4889.000 23.7911 + 4890.000 -43.4209 + 4891.000 20.9648 + 4892.000 16.6844 + 4893.000 -16.1840 + 4894.000 1.3504 + 4895.000 3.8666 + 4896.000 -52.6532 + 4897.000 23.1697 + 4898.000 19.7460 + 4899.000 -36.9185 + 4900.000 10.5241 + 4901.000 11.7879 + 4902.000 -45.7587 + 4903.000 19.5060 + 4904.000 20.5334 + 4905.000 -92.0185 + 4906.000 47.1076 + 4907.000 36.5932 + 4908.000 -4.8290 + 4909.000 -0.1118 + 4910.000 2.2822 + 4911.000 -15.1036 + 4912.000 3.1583 + 4913.000 4.2155 + 4914.000 -25.6551 + 4915.000 10.5140 + 4916.000 5.3131 + 4917.000 -21.1744 + 4918.000 7.0438 + 4919.000 8.1479 + 4920.000 -23.2992 + 4921.000 8.2532 + 4922.000 6.8591 + 4923.000 -47.9222 + 4924.000 20.5919 + 4925.000 20.3559 + 4926.000 -20.1821 + 4927.000 10.7529 + 4928.000 5.5843 + 4929.000 -8.4069 + 4930.000 -0.4980 + 4931.000 0.2769 + 4932.000 -11.6966 + 4933.000 1.4011 + 4934.000 1.9944 + 4935.000 -19.5697 + 4936.000 7.5736 + 4937.000 3.8251 + 4938.000 -51.6832 + 4939.000 18.7723 + 4940.000 24.1680 + 4941.000 -35.9160 + 4942.000 12.8472 + 4943.000 13.8745 + 4944.000 -10.3474 + 4945.000 -0.6283 + 4946.000 -2.4987 + 4947.000 -25.9267 + 4948.000 7.9400 + 4949.000 7.8156 + 4950.000 -2.6104 + 4951.000 -1.0817 + 4952.000 -4.5876 + 4953.000 -13.8439 + 4954.000 2.4440 + 4955.000 -0.2596 + 4956.000 -64.4472 + 4957.000 26.1457 + 4958.000 25.5211 + 4959.000 -58.1979 + 4960.000 25.9316 + 4961.000 25.2657 + 4962.000 -57.1846 + 4963.000 23.1092 + 4964.000 29.8911 + 4965.000 -54.8400 + 4966.000 22.9218 + 4967.000 21.4662 + 4968.000 -22.5648 + 4969.000 4.5834 + 4970.000 3.3960 + 4971.000 -43.4535 + 4972.000 12.8778 + 4973.000 20.5556 + 4974.000 -54.8787 + 4975.000 20.9550 + 4976.000 25.5940 + 4977.000 -65.2306 + 4978.000 31.8072 + 4979.000 23.2236 + 4980.000 -56.0395 + 4981.000 24.5367 + 4982.000 23.6034 + 4983.000 -52.6525 + 4984.000 23.7741 + 4985.000 23.0180 + 4986.000 -37.8463 + 4987.000 14.9866 + 4988.000 14.2589 + 4989.000 -50.2119 + 4990.000 23.5534 + 4991.000 15.7722 + 4992.000 -54.7228 + 4993.000 22.2520 + 4994.000 25.4263 + 4995.000 -34.6232 + 4996.000 15.7983 + 4997.000 12.1240 + 4998.000 -13.4062 + 4999.000 3.5513 + 5000.000 5.9154 + 5001.000 -48.7481 + 5002.000 19.2129 + 5003.000 16.3785 + 5004.000 -11.9196 + 5005.000 -1.3475 + 5006.000 1.8731 + 5007.000 -35.0510 + 5008.000 12.4497 + 5009.000 16.6066 + 5010.000 -12.0563 + 5011.000 1.6014 + 5012.000 2.0878 + 5013.000 -13.8743 + 5014.000 0.6592 + 5015.000 4.3755 + 5016.000 -5.3434 + 5017.000 -3.0716 + 5018.000 -3.5710 + 5019.000 -20.9768 + 5020.000 9.2493 + 5021.000 8.1668 + 5022.000 -17.7657 + 5023.000 2.3980 + 5024.000 6.3664 + 5025.000 -79.0229 + 5026.000 36.7778 + 5027.000 29.1701 + 5028.000 -33.5713 + 5029.000 9.6569 + 5030.000 13.6102 + 5031.000 -58.5031 + 5032.000 25.9994 + 5033.000 21.2048 + 5034.000 -1.0914 + 5035.000 -3.7774 + 5036.000 -6.5675 + 5037.000 -26.8511 + 5038.000 6.9626 + 5039.000 9.0918 + 5040.000 -13.5464 + 5041.000 3.4376 + 5042.000 1.6505 + 5043.000 -8.4536 + 5044.000 0.6584 + 5045.000 0.1748 + 5046.000 -56.0407 + 5047.000 20.3226 + 5048.000 25.5768 + 5049.000 -38.8555 + 5050.000 11.5960 + 5051.000 16.8164 + 5052.000 -14.5909 + 5053.000 2.5137 + 5054.000 4.0183 + 5055.000 -40.6593 + 5056.000 15.8502 + 5057.000 17.1733 + 5058.000 -62.7437 + 5059.000 22.3529 + 5060.000 25.7466 + 5061.000 -19.7565 + 5062.000 5.0397 + 5063.000 3.5867 + 5064.000 -48.1431 + 5065.000 16.3938 + 5066.000 22.3687 + 5067.000 -29.6251 + 5068.000 10.6035 + 5069.000 11.6435 + 5070.000 -60.1387 + 5071.000 22.3308 + 5072.000 31.4333 + 5073.000 -91.2046 + 5074.000 38.3881 + 5075.000 38.2418 + 5076.000 -14.7426 + 5077.000 5.4365 + 5078.000 2.7638 + 5079.000 -14.4065 + 5080.000 2.0827 + 5081.000 4.0995 + 5082.000 -36.3254 + 5083.000 12.4212 + 5084.000 11.4749 + 5085.000 -16.0726 + 5086.000 -1.8190 + 5087.000 7.0793 + 5088.000 -2.1195 + 5089.000 -4.5929 + 5090.000 -2.4034 + 5091.000 -8.9588 + 5092.000 4.2104 + 5093.000 3.1629 + 5094.000 2.0992 + 5095.000 -3.9403 + 5096.000 -5.0942 + 5097.000 -34.4203 + 5098.000 7.4620 + 5099.000 15.8738 + 5100.000 -18.2399 + 5101.000 6.3953 + 5102.000 -0.8539 + 5103.000 -77.2376 + 5104.000 32.1273 + 5105.000 35.3233 + 5106.000 -39.8674 + 5107.000 15.7583 + 5108.000 16.4110 + 5109.000 -34.1700 + 5110.000 16.3997 + 5111.000 14.7823 + 5112.000 -7.4998 + 5113.000 2.7666 + 5114.000 -2.9412 + 5115.000 -26.3838 + 5116.000 6.5350 + 5117.000 12.4681 + 5118.000 -34.4562 + 5119.000 10.8107 + 5120.000 13.9057 + 5121.000 -20.9168 + 5122.000 8.8235 + 5123.000 6.1341 + 5124.000 0.7050 + 5125.000 -4.8891 + 5126.000 -7.4432 + 5127.000 -16.9066 + 5128.000 1.6295 + 5129.000 3.7468 + 5130.000 -45.4744 + 5131.000 18.6690 + 5132.000 18.5561 + 5133.000 -7.9899 + 5134.000 0.9803 + 5135.000 0.6664 + 5136.000 -2.4022 + 5137.000 -4.3461 + 5138.000 -1.1479 + 5139.000 -22.9040 + 5140.000 4.0980 + 5141.000 8.4367 + 5142.000 -25.0712 + 5143.000 7.3246 + 5144.000 8.5322 + 5145.000 -59.9577 + 5146.000 23.4263 + 5147.000 28.7786 + 5148.000 -38.1283 + 5149.000 14.3296 + 5150.000 16.2262 + 5151.000 -81.7283 + 5152.000 37.2857 + 5153.000 36.5574 + 5154.000 -26.6316 + 5155.000 10.9441 + 5156.000 9.9887 + 5157.000 -34.3318 + 5158.000 14.9156 + 5159.000 10.7487 + 5160.000 -11.6558 + 5161.000 0.2802 + 5162.000 1.8751 + 5163.000 -23.8494 + 5164.000 10.1243 + 5165.000 5.1749 + 5166.000 -11.6937 + 5167.000 1.9244 + 5168.000 2.9495 + 5169.000 -18.9653 + 5170.000 6.5959 + 5171.000 7.8325 + 5172.000 -49.3975 + 5173.000 20.0429 + 5174.000 22.9036 + 5175.000 -41.5877 + 5176.000 17.8514 + 5177.000 12.5705 + 5178.000 -20.5009 + 5179.000 6.0134 + 5180.000 6.4942 + 5181.000 -48.9929 + 5182.000 18.5703 + 5183.000 20.7691 + 5184.000 -61.4453 + 5185.000 26.8160 + 5186.000 29.5978 + 5187.000 -87.7741 + 5188.000 31.2111 + 5189.000 42.0962 + 5190.000 -40.6744 + 5191.000 15.8864 + 5192.000 19.0760 + 5193.000 -26.7677 + 5194.000 8.5648 + 5195.000 8.2639 + 5196.000 -46.6631 + 5197.000 17.7695 + 5198.000 18.0840 + 5199.000 -62.2371 + 5200.000 26.5618 + 5201.000 22.5308 + 5202.000 -15.0392 + 5203.000 2.4779 + 5204.000 3.0450 + 5205.000 -17.5716 + 5206.000 3.9700 + 5207.000 5.4649 + 5208.000 -23.6329 + 5209.000 6.0941 + 5210.000 8.5601 + 5211.000 -1.6160 + 5212.000 -10.4855 + 5213.000 12.9286 + 5214.000 2.1677 + 5215.000 -7.7320 + 5216.000 -2.7582 + 5217.000 10.4424 + 5218.000 -12.2426 + 5219.000 -7.7032 + 5220.000 38.6574 + 5221.000 -23.0197 + 5222.000 -18.4865 + 5223.000 3.0072 + 5224.000 -4.7143 + 5225.000 -8.2023 + 5226.000 8.5826 + 5227.000 -11.9162 + 5228.000 -5.9962 + 5229.000 -6.0290 + 5230.000 -5.7247 + 5231.000 0.3856 + 5232.000 2.8300 + 5233.000 -4.7389 + 5234.000 -4.7017 + 5235.000 -3.6715 + 5236.000 -0.6109 + 5237.000 0.0425 + 5238.000 38.6534 + 5239.000 -21.4303 + 5240.000 -22.5644 + 5241.000 -10.5467 + 5242.000 4.1494 + 5243.000 4.0443 + 5244.000 19.7796 + 5245.000 -13.6280 + 5246.000 -18.3463 + 5247.000 -3.7180 + 5248.000 -0.8966 + 5249.000 -5.9698 + 5250.000 -12.2394 + 5251.000 11.2172 + 5252.000 -1.0171 + 5253.000 -18.4392 + 5254.000 12.8301 + 5255.000 10.8788 + 5256.000 -70.3547 + 5257.000 27.0211 + 5258.000 24.8877 + 5259.000 7.3928 + 5260.000 -7.5333 + 5261.000 -6.8150 + 5262.000 51.2075 + 5263.000 -28.6069 + 5264.000 -27.0259 + 5265.000 8.4085 + 5266.000 -4.9489 + 5267.000 -10.9213 + 5268.000 14.9518 + 5269.000 -11.9877 + 5270.000 -13.0598 + 5271.000 46.2413 + 5272.000 -24.8399 + 5273.000 -28.7621 + 5274.000 58.5798 + 5275.000 -31.3629 + 5276.000 -28.5063 + 5277.000 -2.3579 + 5278.000 -2.6016 + 5279.000 -3.8532 + 5280.000 46.9199 + 5281.000 -26.9806 + 5282.000 -24.2747 + 5283.000 5.0329 + 5284.000 -5.3069 + 5285.000 -7.3546 + 5286.000 -17.1549 + 5287.000 6.7484 + 5288.000 7.3225 + 5289.000 23.7211 + 5290.000 -14.6743 + 5291.000 -13.3235 + 5292.000 -71.0155 + 5293.000 55.2037 + 5294.000 23.7732 + 5295.000 8.9626 + 5296.000 -7.4260 + 5297.000 -8.0672 + 5298.000 4.6457 + 5299.000 -3.2692 + 5300.000 -6.5693 + 5301.000 28.8766 + 5302.000 -12.8058 + 5303.000 -16.5893 + 5304.000 17.4783 + 5305.000 -11.4415 + 5306.000 -14.1948 + 5307.000 45.3593 + 5308.000 -26.2031 + 5309.000 -26.1967 + 5310.000 9.7195 + 5311.000 -5.3086 + 5312.000 -11.2529 + 5313.000 -57.7803 + 5314.000 21.2511 + 5315.000 52.5164 + 5316.000 -5.9372 + 5317.000 2.0289 + 5318.000 -4.7780 + 5319.000 10.8010 + 5320.000 -12.6223 + 5321.000 -5.6568 + 5322.000 9.4897 + 5323.000 -4.2756 + 5324.000 -9.6198 + 5325.000 2.8965 + 5326.000 2.8151 + 5327.000 -11.8395 + 5328.000 7.9392 + 5329.000 -7.0239 + 5330.000 -9.1875 + 5331.000 -6.5001 + 5332.000 1.7156 + 5333.000 -0.5538 + 5334.000 1.1935 + 5335.000 -7.0166 + 5336.000 -1.3897 + 5337.000 22.1843 + 5338.000 -17.4186 + 5339.000 -15.4071 + 5340.000 16.9985 + 5341.000 -15.0389 + 5342.000 -7.8364 + 5343.000 14.5278 + 5344.000 -11.7281 + 5345.000 -12.1918 + 5346.000 53.2957 + 5347.000 -31.1945 + 5348.000 -31.2960 + 5349.000 25.3565 + 5350.000 -14.0115 + 5351.000 -16.1437 + 5352.000 21.6252 + 5353.000 -11.2466 + 5354.000 -14.0397 + 5355.000 24.7279 + 5356.000 -18.7904 + 5357.000 -15.4125 + 5358.000 4.9239 + 5359.000 -1.3376 + 5360.000 -6.3388 + 5361.000 35.8627 + 5362.000 -21.1686 + 5363.000 -23.1724 + 5364.000 24.7732 + 5365.000 -14.9203 + 5366.000 -14.6836 + 5367.000 -6.4354 + 5368.000 -1.0106 + 5369.000 -3.4922 + 5370.000 50.5323 + 5371.000 -28.2425 + 5372.000 -28.1456 + 5373.000 -23.3372 + 5374.000 8.5231 + 5375.000 6.1768 + 5376.000 8.9260 + 5377.000 -10.2818 + 5378.000 -7.6303 + 5379.000 35.7284 + 5380.000 -20.8377 + 5381.000 -20.0240 + 5382.000 33.1548 + 5383.000 -17.6837 + 5384.000 -16.4850 + 5385.000 -7.1105 + 5386.000 8.2882 + 5387.000 0.9295 + 5388.000 65.9544 + 5389.000 -32.9685 + 5390.000 -35.4711 + 5391.000 26.9620 + 5392.000 -11.8603 + 5393.000 -13.2616 + 5394.000 -3.3799 + 5395.000 -2.1573 + 5396.000 -3.4516 + 5397.000 11.7296 + 5398.000 -12.0776 + 5399.000 -10.3159 + 5400.000 -42.1826 + 5401.000 11.4918 + 5402.000 14.1141 + 5403.000 -18.3853 + 5404.000 2.5261 + 5405.000 2.4336 + 5406.000 31.6214 + 5407.000 -17.7344 + 5408.000 -24.2117 + 5409.000 -13.7926 + 5410.000 5.2667 + 5411.000 3.9631 + 5412.000 46.1621 + 5413.000 -25.0421 + 5414.000 -28.1838 + 5415.000 20.7064 + 5416.000 -11.5989 + 5417.000 -10.3572 + 5418.000 4.2005 + 5419.000 -8.4046 + 5420.000 -4.5882 + 5421.000 -31.4879 + 5422.000 8.8193 + 5423.000 17.5148 + 5424.000 47.1953 + 5425.000 -26.8335 + 5426.000 -25.0948 + 5427.000 2.4286 + 5428.000 -7.6630 + 5429.000 -6.5889 + 5430.000 56.1053 + 5431.000 -23.6917 + 5432.000 -31.7961 + 5433.000 3.6094 + 5434.000 -2.1519 + 5435.000 -7.9126 + 5436.000 28.6849 + 5437.000 -19.3671 + 5438.000 -16.4849 + 5439.000 31.2966 + 5440.000 -18.9264 + 5441.000 -20.8279 + 5442.000 38.6477 + 5443.000 -25.7310 + 5444.000 -23.1722 + 5445.000 -11.3330 + 5446.000 0.2382 + 5447.000 5.1407 + 5448.000 34.5502 + 5449.000 -18.9751 + 5450.000 -19.1488 + 5451.000 4.9470 + 5452.000 1.5732 + 5453.000 -5.3425 + 5454.000 10.5397 + 5455.000 -4.5493 + 5456.000 -5.9369 + 5457.000 44.6127 + 5458.000 -20.7487 + 5459.000 -26.0054 + 5460.000 -11.7383 + 5461.000 1.8911 + 5462.000 0.9432 + 5463.000 49.4573 + 5464.000 -28.4303 + 5465.000 -26.0561 + 5466.000 21.9178 + 5467.000 -12.2511 + 5468.000 -12.3729 + 5469.000 -1.2410 + 5470.000 -4.9500 + 5471.000 -4.3062 + 5472.000 6.8209 + 5473.000 -9.7200 + 5474.000 -11.4451 + 5475.000 3.4288 + 5476.000 -5.3239 + 5477.000 -7.2372 + 5478.000 22.6199 + 5479.000 -13.4205 + 5480.000 -12.6196 + 5481.000 48.6487 + 5482.000 -26.7760 + 5483.000 -21.7964 + 5484.000 -2.6759 + 5485.000 0.9817 + 5486.000 -0.8819 + 5487.000 3.9192 + 5488.000 -5.7101 + 5489.000 -3.2857 + 5490.000 -8.4969 + 5491.000 -1.3863 + 5492.000 1.0050 + 5493.000 40.0327 + 5494.000 -17.3267 + 5495.000 -21.5930 + 5496.000 10.1330 + 5497.000 -8.9049 + 5498.000 -12.4914 + 5499.000 17.3286 + 5500.000 -12.2823 + 5501.000 -14.7847 + 5502.000 -3.9043 + 5503.000 -1.8512 + 5504.000 -6.0372 + 5505.000 41.3491 + 5506.000 -20.5749 + 5507.000 -25.0466 + 5508.000 28.4856 + 5509.000 -14.5030 + 5510.000 -15.9185 + 5511.000 43.2623 + 5512.000 -30.6330 + 5513.000 -24.8517 + 5514.000 34.0623 + 5515.000 -20.1477 + 5516.000 -23.2596 + 5517.000 32.4751 + 5518.000 -16.2930 + 5519.000 -22.0582 + 5520.000 38.8413 + 5521.000 -23.7715 + 5522.000 -22.7779 + 5523.000 14.7218 + 5524.000 -8.8267 + 5525.000 -9.8162 + 5526.000 6.8036 + 5527.000 -6.9206 + 5528.000 -8.6227 + 5529.000 18.0097 + 5530.000 -9.9662 + 5531.000 -12.9713 + 5532.000 17.5293 + 5533.000 -11.3698 + 5534.000 -16.4000 + 5535.000 -9.7625 + 5536.000 0.3579 + 5537.000 4.3327 + 5538.000 -27.0728 + 5539.000 10.0793 + 5540.000 11.1321 + 5541.000 -15.5591 + 5542.000 5.4780 + 5543.000 3.8210 + 5544.000 -15.6527 + 5545.000 8.7176 + 5546.000 4.4822 + 5547.000 -22.6003 + 5548.000 8.7839 + 5549.000 7.3145 + 5550.000 -33.0889 + 5551.000 10.5160 + 5552.000 16.3609 + 5553.000 -18.3481 + 5554.000 5.5054 + 5555.000 3.3892 + 5556.000 -26.6335 + 5557.000 8.0830 + 5558.000 7.4003 + 5559.000 -38.9116 + 5560.000 13.7007 + 5561.000 20.6333 + 5562.000 -28.1480 + 5563.000 6.4631 + 5564.000 9.3669 + 5565.000 -21.4950 + 5566.000 6.6970 + 5567.000 8.6454 + 5568.000 -14.6639 + 5569.000 2.5440 + 5570.000 2.5581 + 5571.000 -20.9892 + 5572.000 3.2312 + 5573.000 8.4658 + 5574.000 -25.6430 + 5575.000 7.1810 + 5576.000 9.2694 + 5577.000 -24.4809 + 5578.000 8.8050 + 5579.000 8.3471 + 5580.000 -20.9479 + 5581.000 6.0716 + 5582.000 5.7635 + 5583.000 -24.9954 + 5584.000 8.0855 + 5585.000 5.1185 + 5586.000 -16.0429 + 5587.000 4.5485 + 5588.000 3.5387 + 5589.000 -17.0285 + 5590.000 5.5169 + 5591.000 7.7515 + 5592.000 -24.1221 + 5593.000 6.7788 + 5594.000 9.4608 + 5595.000 -21.7243 + 5596.000 7.0410 + 5597.000 5.5334 + 5598.000 -16.6101 + 5599.000 5.7728 + 5600.000 3.3789 + 5601.000 -13.0480 + 5602.000 -0.5618 + 5603.000 1.3193 + 5604.000 -30.8442 + 5605.000 13.1316 + 5606.000 8.8865 + 5607.000 -18.7709 + 5608.000 4.1049 + 5609.000 3.1789 + 5610.000 -20.6978 + 5611.000 6.4735 + 5612.000 7.2908 + 5613.000 -10.6297 + 5614.000 2.5482 + 5615.000 2.7263 + 5616.000 -17.1157 + 5617.000 6.5142 + 5618.000 3.9088 + 5619.000 -10.9487 + 5620.000 0.8723 + 5621.000 -0.0880 + 5622.000 -33.9178 + 5623.000 15.7800 + 5624.000 10.3789 + 5625.000 -12.9450 + 5626.000 1.1684 + 5627.000 2.0751 + 5628.000 -22.1379 + 5629.000 6.7073 + 5630.000 3.2400 + 5631.000 -3.5633 + 5632.000 -5.5141 + 5633.000 -1.2398 + 5634.000 -26.5740 + 5635.000 8.4966 + 5636.000 8.6438 + 5637.000 -36.3476 + 5638.000 14.0979 + 5639.000 12.5678 + 5640.000 -18.3843 + 5641.000 2.0689 + 5642.000 4.1659 + 5643.000 -0.1759 + 5644.000 -4.3234 + 5645.000 -2.9349 + 5646.000 9.4487 + 5647.000 -7.6468 + 5648.000 -10.5236 + 5649.000 -40.7329 + 5650.000 14.4282 + 5651.000 21.3289 + 5652.000 5.0734 + 5653.000 -6.1224 + 5654.000 -2.7976 + 5655.000 -14.5367 + 5656.000 3.1205 + 5657.000 2.7471 + 5658.000 -11.3379 + 5659.000 2.3807 + 5660.000 -1.5071 + 5661.000 -11.4169 + 5662.000 3.3231 + 5663.000 0.8843 + 5664.000 -19.9281 + 5665.000 8.4330 + 5666.000 6.3179 + 5667.000 -44.1105 + 5668.000 22.5729 + 5669.000 17.2087 + 5670.000 -29.0146 + 5671.000 8.4662 + 5672.000 14.6294 + 5673.000 -26.1363 + 5674.000 6.6806 + 5675.000 9.1865 + 5676.000 -1.2983 + 5677.000 -4.9779 + 5678.000 -3.4482 + 5679.000 -27.8972 + 5680.000 10.7836 + 5681.000 8.4697 + 5682.000 -26.6256 + 5683.000 5.3310 + 5684.000 9.4613 + 5685.000 -17.2104 + 5686.000 2.8887 + 5687.000 4.5097 + 5688.000 -30.3676 + 5689.000 12.0478 + 5690.000 12.8704 + 5691.000 -11.4756 + 5692.000 -2.0540 + 5693.000 1.5620 + 5694.000 -24.3615 + 5695.000 9.3305 + 5696.000 4.7206 + 5697.000 10.9452 + 5698.000 -4.6202 + 5699.000 -13.4971 + 5700.000 -15.0735 + 5701.000 3.6690 + 5702.000 1.1395 + 5703.000 -4.3699 + 5704.000 -2.5012 + 5705.000 0.3815 + 5706.000 -24.0644 + 5707.000 5.6668 + 5708.000 6.9237 + 5709.000 -27.8249 + 5710.000 6.0848 + 5711.000 13.1436 + 5712.000 -19.7872 + 5713.000 7.2770 + 5714.000 1.6115 + 5715.000 -24.0324 + 5716.000 8.9902 + 5717.000 4.6864 + 5718.000 -37.4146 + 5719.000 14.0466 + 5720.000 13.3675 + 5721.000 -15.3378 + 5722.000 3.4236 + 5723.000 5.7090 + 5724.000 -15.5162 + 5725.000 0.7812 + 5726.000 1.6988 + 5727.000 -18.1691 + 5728.000 1.6439 + 5729.000 3.2939 + 5730.000 -9.2067 + 5731.000 -0.3361 + 5732.000 0.9938 + 5733.000 -12.8940 + 5734.000 2.5171 + 5735.000 0.5437 + 5736.000 -16.4682 + 5737.000 4.8006 + 5738.000 2.9469 + 5739.000 -3.4567 + 5740.000 0.2756 + 5741.000 -0.3808 + 5742.000 -18.3979 + 5743.000 3.9193 + 5744.000 5.6696 + 5745.000 -31.7818 + 5746.000 8.2232 + 5747.000 14.0325 + 5748.000 -0.1071 + 5749.000 -4.1375 + 5750.000 -0.3608 + 5751.000 -5.5212 + 5752.000 0.7995 + 5753.000 1.5912 + 5754.000 -12.4818 + 5755.000 1.1408 + 5756.000 -3.6569 + 5757.000 -12.4112 + 5758.000 5.5466 + 5759.000 0.8883 + 5760.000 -9.6482 + 5761.000 -0.9610 + 5762.000 1.0406 + 5763.000 4.3702 + 5764.000 -5.7830 + 5765.000 -2.9856 + 5766.000 -15.2168 + 5767.000 1.3201 + 5768.000 3.8793 + 5769.000 -23.1657 + 5770.000 8.2246 + 5771.000 7.9943 + 5772.000 -20.3631 + 5773.000 8.0084 + 5774.000 7.5664 + 5775.000 -14.5595 + 5776.000 0.0361 + 5777.000 2.6809 + 5778.000 -14.8158 + 5779.000 3.8882 + 5780.000 -0.0861 + 5781.000 -22.5279 + 5782.000 10.8507 + 5783.000 5.9454 + 5784.000 -9.1310 + 5785.000 -1.7248 + 5786.000 0.4935 + 5787.000 -8.0995 + 5788.000 0.3586 + 5789.000 -2.1659 + 5790.000 -25.1750 + 5791.000 9.0459 + 5792.000 8.9138 + 5793.000 -22.5804 + 5794.000 11.1805 + 5795.000 5.7456 + 5796.000 -25.9553 + 5797.000 10.5161 + 5798.000 9.4640 + 5799.000 -11.6791 + 5800.000 2.9947 + 5801.000 -0.3753 + 5802.000 -11.4123 + 5803.000 2.4849 + 5804.000 -0.8611 + 5805.000 -27.8964 + 5806.000 7.7691 + 5807.000 8.9933 + 5808.000 2.0661 + 5809.000 -0.7211 + 5810.000 -6.7467 + 5811.000 -27.0748 + 5812.000 8.8058 + 5813.000 5.8151 + 5814.000 9.6267 + 5815.000 -7.6551 + 5816.000 -9.0798 + 5817.000 -28.0899 + 5818.000 12.6361 + 5819.000 10.3571 + 5820.000 -17.8414 + 5821.000 3.5400 + 5822.000 2.8847 + 5823.000 -25.3121 + 5824.000 8.8411 + 5825.000 8.8822 + 5826.000 -11.2045 + 5827.000 0.8729 + 5828.000 3.6868 + 5829.000 -28.4210 + 5830.000 8.5992 + 5831.000 9.3432 + 5832.000 -34.5227 + 5833.000 13.5817 + 5834.000 13.6716 + 5835.000 -29.5893 + 5836.000 12.2781 + 5837.000 8.7650 + 5838.000 -6.6045 + 5839.000 -1.9047 + 5840.000 -2.9419 + 5841.000 -9.5536 + 5842.000 0.3954 + 5843.000 -1.8372 + 5844.000 -19.7225 + 5845.000 6.4477 + 5846.000 4.0274 + 5847.000 -18.4779 + 5848.000 7.3697 + 5849.000 0.9773 + 5850.000 -27.9709 + 5851.000 12.4445 + 5852.000 8.1928 + 5853.000 -19.6937 + 5854.000 5.8614 + 5855.000 5.5349 + 5856.000 -12.7560 + 5857.000 3.0012 + 5858.000 -0.8075 + 5859.000 -14.9184 + 5860.000 2.1791 + 5861.000 3.7836 + 5862.000 -27.5823 + 5863.000 8.3253 + 5864.000 8.3263 + 5865.000 -35.1787 + 5866.000 13.9951 + 5867.000 14.0092 + 5868.000 -35.4004 + 5869.000 15.9651 + 5870.000 10.0615 + 5871.000 -34.2339 + 5872.000 11.7495 + 5873.000 13.7183 + 5874.000 -23.7750 + 5875.000 10.7393 + 5876.000 6.7511 + 5877.000 -30.8504 + 5878.000 13.2522 + 5879.000 13.5326 + 5880.000 -1.3610 + 5881.000 0.4990 + 5882.000 -2.6067 + 5883.000 3.1957 + 5884.000 -7.8251 + 5885.000 -4.5891 + 5886.000 -16.6050 + 5887.000 0.9524 + 5888.000 4.6070 + 5889.000 -73.4220 + 5890.000 30.0448 + 5891.000 35.1690 + 5892.000 -100.3506 + 5893.000 52.2909 + 5894.000 40.4816 + 5895.000 -71.5551 + 5896.000 30.3404 + 5897.000 25.6380 + 5898.000 -62.3632 + 5899.000 33.1855 + 5900.000 28.1675 + 5901.000 -103.8001 + 5902.000 47.4939 + 5903.000 44.7211 + 5904.000 -75.0805 + 5905.000 31.7678 + 5906.000 34.6743 + 5907.000 -48.7768 + 5908.000 15.2205 + 5909.000 20.6428 + 5910.000 -60.6452 + 5911.000 31.7297 + 5912.000 34.2096 + 5913.000 -54.6816 + 5914.000 22.1607 + 5915.000 25.3349 + 5916.000 -71.8528 + 5917.000 37.9165 + 5918.000 30.4256 + 5919.000 -57.4359 + 5920.000 26.2112 + 5921.000 22.7889 + 5922.000 -97.9483 + 5923.000 56.5149 + 5924.000 46.6262 + 5925.000 -45.7170 + 5926.000 18.4189 + 5927.000 18.0408 + 5928.000 -117.3981 + 5929.000 52.4830 + 5930.000 71.2648 + 5931.000 -88.6250 + 5932.000 33.9909 + 5933.000 37.3698 + 5934.000 -74.8305 + 5935.000 29.6293 + 5936.000 38.3516 + 5937.000 -51.5845 + 5938.000 24.6165 + 5939.000 17.7034 + 5940.000 -79.9980 + 5941.000 35.2975 + 5942.000 31.0494 + 5943.000 -38.7850 + 5944.000 15.4195 + 5945.000 11.1825 + 5946.000 -95.2879 + 5947.000 39.7745 + 5948.000 37.5864 + 5949.000 -98.7581 + 5950.000 50.1163 + 5951.000 44.7947 + 5952.000 -45.9687 + 5953.000 20.2424 + 5954.000 20.3901 + 5955.000 -59.3713 + 5956.000 26.1660 + 5957.000 20.5151 + 5958.000 -81.5724 + 5959.000 34.7968 + 5960.000 35.9298 + 5961.000 -39.5914 + 5962.000 16.5532 + 5963.000 18.5296 + 5964.000 -139.5153 + 5965.000 95.5534 + 5966.000 60.6363 + 5967.000 -62.8004 + 5968.000 25.2356 + 5969.000 29.1852 + 5970.000 -29.6754 + 5971.000 10.0875 + 5972.000 12.9028 + 5973.000 -34.1510 + 5974.000 13.1118 + 5975.000 10.9013 + 5976.000 -79.5755 + 5977.000 35.0444 + 5978.000 40.0276 + 5979.000 -99.1999 + 5980.000 46.2895 + 5981.000 46.6846 + 5982.000 -39.5346 + 5983.000 18.6002 + 5984.000 17.1066 + 5985.000 -125.6357 + 5986.000 53.7574 + 5987.000 84.0255 + 5988.000 -27.8710 + 5989.000 10.7348 + 5990.000 6.0037 + 5991.000 -48.7564 + 5992.000 20.9814 + 5993.000 20.2979 + 5994.000 -45.4918 + 5995.000 21.0726 + 5996.000 16.0964 + 5997.000 -51.4451 + 5998.000 19.1823 + 5999.000 20.1661 + 6000.000 -73.4090 + 6001.000 29.0874 + 6002.000 29.7725 + 6003.000 -49.2211 + 6004.000 15.0269 + 6005.000 23.4563 + 6006.000 -110.0564 + 6007.000 42.2909 + 6008.000 41.6225 + 6009.000 -51.5139 + 6010.000 23.4226 + 6011.000 17.8690 + 6012.000 -57.4653 + 6013.000 28.0601 + 6014.000 20.6801 + 6015.000 -63.9322 + 6016.000 29.9169 + 6017.000 31.7461 + 6018.000 -45.7929 + 6019.000 19.7387 + 6020.000 15.9148 + 6021.000 -52.5350 + 6022.000 25.1914 + 6023.000 22.6564 + 6024.000 -61.5168 + 6025.000 22.7500 + 6026.000 24.8194 + 6027.000 -42.2493 + 6028.000 11.0496 + 6029.000 13.8950 + 6030.000 -27.2601 + 6031.000 7.7791 + 6032.000 9.6318 + 6033.000 -41.1595 + 6034.000 19.8996 + 6035.000 13.2708 + 6036.000 -40.5289 + 6037.000 17.6148 + 6038.000 15.0668 + 6039.000 -75.5097 + 6040.000 36.2912 + 6041.000 30.3915 + 6042.000 -38.0227 + 6043.000 15.3943 + 6044.000 13.7969 + 6045.000 -52.2251 + 6046.000 24.2530 + 6047.000 17.3476 + 6048.000 -39.5974 + 6049.000 16.8919 + 6050.000 16.7417 + 6051.000 -58.6308 + 6052.000 24.9780 + 6053.000 26.4731 + 6054.000 -84.0631 + 6055.000 41.9183 + 6056.000 38.5799 + 6057.000 -19.9653 + 6058.000 6.5514 + 6059.000 2.4926 + 6060.000 -38.7569 + 6061.000 12.0231 + 6062.000 14.8665 + 6063.000 -79.8837 + 6064.000 32.6596 + 6065.000 39.7925 + 6066.000 -28.1216 + 6067.000 10.2963 + 6068.000 10.4026 + 6069.000 -21.7659 + 6070.000 5.6088 + 6071.000 9.0833 + 6072.000 -48.1253 + 6073.000 20.9567 + 6074.000 20.7119 + 6075.000 -41.8888 + 6076.000 19.6772 + 6077.000 16.6369 + 6078.000 -52.0094 + 6079.000 19.3341 + 6080.000 22.7058 + 6081.000 -83.4444 + 6082.000 46.0867 + 6083.000 40.8907 + 6084.000 -43.4941 + 6085.000 17.7674 + 6086.000 15.7436 + 6087.000 -56.3783 + 6088.000 21.3746 + 6089.000 23.5012 + 6090.000 -38.5456 + 6091.000 14.0787 + 6092.000 15.4933 + 6093.000 -52.8681 + 6094.000 21.5921 + 6095.000 25.3994 + 6096.000 -56.4095 + 6097.000 22.6742 + 6098.000 26.7371 + 6099.000 6.4824 + 6100.000 -7.8194 + 6101.000 -8.0735 + 6102.000 3.1921 + 6103.000 -4.7554 + 6104.000 -6.9710 + 6105.000 2.2984 + 6106.000 -4.8936 + 6107.000 -4.9661 + 6108.000 15.2574 + 6109.000 -12.0215 + 6110.000 -10.4876 + 6111.000 8.5507 + 6112.000 -5.2338 + 6113.000 -9.2020 + 6114.000 -2.1823 + 6115.000 0.7513 + 6116.000 -3.9347 + 6117.000 29.5089 + 6118.000 -21.8276 + 6119.000 -19.8324 + 6120.000 12.8699 + 6121.000 -9.2356 + 6122.000 -11.7402 + 6123.000 23.1785 + 6124.000 -18.9716 + 6125.000 -15.4910 + 6126.000 -9.3507 + 6127.000 -0.0079 + 6128.000 -0.9477 + 6129.000 -14.0987 + 6130.000 1.4788 + 6131.000 -2.5238 + 6132.000 11.0979 + 6133.000 -12.5487 + 6134.000 -10.7863 + 6135.000 8.3097 + 6136.000 -8.3640 + 6137.000 -9.8355 + 6138.000 12.4744 + 6139.000 -11.8164 + 6140.000 -12.1265 + 6141.000 21.7245 + 6142.000 -14.0933 + 6143.000 -13.6957 + 6144.000 1.6319 + 6145.000 -7.5134 + 6146.000 -4.4519 + 6147.000 17.0296 + 6148.000 -12.2511 + 6149.000 -15.0885 + 6150.000 5.8102 + 6151.000 -6.8102 + 6152.000 -9.4111 + 6153.000 9.3632 + 6154.000 -8.0844 + 6155.000 -9.5967 + 6156.000 -0.6659 + 6157.000 -4.4439 + 6158.000 -2.2362 + 6159.000 -1.1129 + 6160.000 -2.9671 + 6161.000 -6.8275 + 6162.000 1.5624 + 6163.000 -6.6750 + 6164.000 -2.7398 + 6165.000 -25.7379 + 6166.000 7.4679 + 6167.000 5.5754 + 6168.000 19.8574 + 6169.000 -11.8239 + 6170.000 -14.5432 + 6171.000 -19.4675 + 6172.000 8.5401 + 6173.000 3.0461 + 6174.000 29.0262 + 6175.000 -20.6752 + 6176.000 -16.8989 + 6177.000 -28.5089 + 6178.000 4.2307 + 6179.000 9.6841 + 6180.000 2.3502 + 6181.000 -9.4392 + 6182.000 -2.8410 + 6183.000 -14.8288 + 6184.000 3.5713 + 6185.000 0.1819 + 6186.000 -0.3734 + 6187.000 -4.3552 + 6188.000 -4.4927 + 6189.000 2.3044 + 6190.000 -6.9480 + 6191.000 -6.1665 + 6192.000 -10.4297 + 6193.000 -2.4154 + 6194.000 2.9933 + 6195.000 -0.5980 + 6196.000 -1.9369 + 6197.000 -6.7042 + 6198.000 62.2191 + 6199.000 -33.2105 + 6200.000 -33.9649 + 6201.000 16.5430 + 6202.000 -13.0521 + 6203.000 -12.6535 + 6204.000 47.9577 + 6205.000 -27.5264 + 6206.000 -28.1414 + 6207.000 36.3701 + 6208.000 -19.9152 + 6209.000 -26.1986 + 6210.000 -2.7984 + 6211.000 -4.3341 + 6212.000 -1.1001 + 6213.000 -28.7229 + 6214.000 12.0549 + 6215.000 7.5762 + 6216.000 12.1758 + 6217.000 -5.0365 + 6218.000 -8.7105 + 6219.000 20.0790 + 6220.000 -15.7529 + 6221.000 -10.2103 + 6222.000 -34.7716 + 6223.000 15.3652 + 6224.000 13.0144 + 6225.000 4.4911 + 6226.000 -2.3699 + 6227.000 -3.4890 + 6228.000 12.8022 + 6229.000 -6.4439 + 6230.000 -13.6157 + 6231.000 -18.8971 + 6232.000 7.5730 + 6233.000 4.7126 + 6234.000 -1.7220 + 6235.000 -3.8974 + 6236.000 -0.5919 + 6237.000 -1.9074 + 6238.000 -1.9093 + 6239.000 -0.1138 + 6240.000 15.0780 + 6241.000 -10.4436 + 6242.000 -13.6498 + 6243.000 3.6178 + 6244.000 -6.7057 + 6245.000 -6.0537 + 6246.000 -21.0227 + 6247.000 3.0298 + 6248.000 9.3601 + 6249.000 8.0791 + 6250.000 -10.4603 + 6251.000 -5.9266 + 6252.000 29.8259 + 6253.000 -19.8429 + 6254.000 -19.5828 + 6255.000 -13.5052 + 6256.000 5.1627 + 6257.000 -0.7681 + 6258.000 -33.1348 + 6259.000 8.0147 + 6260.000 9.3733 + 6261.000 -15.5099 + 6262.000 4.2168 + 6263.000 4.1435 + 6264.000 18.5238 + 6265.000 -13.3972 + 6266.000 -11.1708 + 6267.000 -0.9786 + 6268.000 -4.7868 + 6269.000 -4.0865 + 6270.000 36.8755 + 6271.000 -23.1418 + 6272.000 -26.1381 + 6273.000 10.5503 + 6274.000 -7.4889 + 6275.000 -9.1756 + 6276.000 23.8117 + 6277.000 -17.8432 + 6278.000 -14.3937 + 6279.000 14.3626 + 6280.000 -10.6223 + 6281.000 -9.0273 + 6282.000 14.6620 + 6283.000 -12.8902 + 6284.000 -10.6776 + 6285.000 1.0440 + 6286.000 -5.0539 + 6287.000 -6.0201 + 6288.000 0.2491 + 6289.000 -7.3666 + 6290.000 -2.5782 + 6291.000 38.1739 + 6292.000 -22.3382 + 6293.000 -25.5971 + 6294.000 -9.8257 + 6295.000 3.4853 + 6296.000 -2.1637 + 6297.000 9.5094 + 6298.000 -9.8671 + 6299.000 -8.8511 + 6300.000 19.7386 + 6301.000 -14.3450 + 6302.000 -14.2654 + 6303.000 -12.6927 + 6304.000 3.5873 + 6305.000 -0.2642 + 6306.000 -32.5733 + 6307.000 12.5734 + 6308.000 12.1163 + 6309.000 36.2573 + 6310.000 -22.0202 + 6311.000 -22.1158 + 6312.000 3.5533 + 6313.000 -7.0681 + 6314.000 -7.0199 + 6315.000 37.4799 + 6316.000 -25.3114 + 6317.000 -19.0910 + 6318.000 -16.1507 + 6319.000 3.0468 + 6320.000 6.7399 + 6321.000 29.9429 + 6322.000 -20.7011 + 6323.000 -19.7234 + 6324.000 7.9413 + 6325.000 -9.5356 + 6326.000 -9.8784 + 6327.000 10.8914 + 6328.000 -9.5908 + 6329.000 -10.6293 + 6330.000 1.0576 + 6331.000 -1.8639 + 6332.000 -3.0459 + 6333.000 14.8897 + 6334.000 -12.2636 + 6335.000 -14.2096 + 6336.000 25.2028 + 6337.000 -15.5676 + 6338.000 -13.9776 + 6339.000 5.3546 + 6340.000 -7.7365 + 6341.000 -9.3200 + 6342.000 -27.4620 + 6343.000 14.4289 + 6344.000 15.0026 + 6345.000 28.5960 + 6346.000 -20.8528 + 6347.000 -20.2429 + 6348.000 -21.4210 + 6349.000 7.3385 + 6350.000 8.1120 + 6351.000 -9.6349 + 6352.000 -0.3762 + 6353.000 0.4907 + 6354.000 47.3519 + 6355.000 -28.0707 + 6356.000 -29.0544 + 6357.000 -27.3434 + 6358.000 9.9502 + 6359.000 9.5902 + 6360.000 30.7643 + 6361.000 -18.4549 + 6362.000 -19.3731 + 6363.000 -23.1821 + 6364.000 6.6243 + 6365.000 6.2866 + 6366.000 30.6267 + 6367.000 -21.5434 + 6368.000 -20.3343 + 6369.000 -16.6207 + 6370.000 3.6293 + 6371.000 5.2051 + 6372.000 -36.4191 + 6373.000 17.3315 + 6374.000 14.2008 + 6375.000 19.2962 + 6376.000 -18.2796 + 6377.000 -12.8754 + 6378.000 24.7889 + 6379.000 -13.4327 + 6380.000 -19.0494 + 6381.000 -15.4288 + 6382.000 5.0211 + 6383.000 4.9533 + 6384.000 -27.1608 + 6385.000 9.8672 + 6386.000 7.9393 + 6387.000 -15.1149 + 6388.000 4.0105 + 6389.000 3.9490 + 6390.000 -23.8887 + 6391.000 9.5569 + 6392.000 3.9350 + 6393.000 -1.5738 + 6394.000 -3.8160 + 6395.000 -2.9579 + 6396.000 -10.3773 + 6397.000 0.7194 + 6398.000 -2.4815 + 6399.000 -11.3919 + 6400.000 4.5273 + 6401.000 2.1125 + 6402.000 47.7241 + 6403.000 -27.6399 + 6404.000 -29.8831 + 6405.000 23.5863 + 6406.000 -17.3474 + 6407.000 -15.7485 + 6408.000 8.5358 + 6409.000 -9.3298 + 6410.000 -11.1464 + 6411.000 20.3725 + 6412.000 -10.7632 + 6413.000 -15.6093 + 6414.000 12.1580 + 6415.000 -9.4764 + 6416.000 -11.6192 + 6417.000 -1.1516 + 6418.000 -4.2403 + 6419.000 -3.9717 + 6420.000 34.2888 + 6421.000 -22.9072 + 6422.000 -25.6484 + 6423.000 12.8202 + 6424.000 -13.1364 + 6425.000 -10.6542 + 6426.000 -5.4562 + 6427.000 -1.4034 + 6428.000 -3.4304 + 6429.000 14.2410 + 6430.000 -11.0100 + 6431.000 -10.8824 + 6432.000 2.5996 + 6433.000 -3.9979 + 6434.000 -9.9701 + 6435.000 24.2746 + 6436.000 -18.0286 + 6437.000 -15.3741 + 6438.000 1.3119 + 6439.000 -3.7143 + 6440.000 -5.6358 + 6441.000 -5.7194 + 6442.000 -1.3169 + 6443.000 -2.7656 + 6444.000 6.0136 + 6445.000 -5.4936 + 6446.000 -8.3915 + 6447.000 -18.3242 + 6448.000 8.0946 + 6449.000 7.5981 + 6450.000 5.4798 + 6451.000 -3.5259 + 6452.000 -6.4825 + 6453.000 7.4962 + 6454.000 -3.3080 + 6455.000 -8.9609 + 6456.000 45.4645 + 6457.000 -26.9210 + 6458.000 -21.0147 + 6459.000 -28.5104 + 6460.000 10.5086 + 6461.000 9.1134 + 6462.000 -7.0425 + 6463.000 -2.3736 + 6464.000 -2.6646 + 6465.000 1.0131 + 6466.000 -5.7989 + 6467.000 -5.1595 + 6468.000 9.0198 + 6469.000 -5.9015 + 6470.000 -7.5805 + 6471.000 18.6848 + 6472.000 -16.6159 + 6473.000 -12.8209 + 6474.000 -2.8149 + 6475.000 -3.9267 + 6476.000 -6.2708 + 6477.000 4.4176 + 6478.000 -6.1423 + 6479.000 -6.8101 + 6480.000 11.9593 + 6481.000 -12.8655 + 6482.000 -9.7413 + 6483.000 23.7067 + 6484.000 -15.9100 + 6485.000 -15.4159 + 6486.000 13.8057 + 6487.000 -11.0729 + 6488.000 -11.8259 + 6489.000 -31.4973 + 6490.000 11.5092 + 6491.000 10.6943 + 6492.000 43.2771 + 6493.000 -23.5354 + 6494.000 -29.8973 + 6495.000 23.3022 + 6496.000 -17.2787 + 6497.000 -15.3414 + 6498.000 21.4658 + 6499.000 -15.7649 + 6500.000 -14.8284 + 6501.000 -11.8930 + 6502.000 -0.3485 + 6503.000 1.8415 + 6504.000 7.2515 + 6505.000 -6.4483 + 6506.000 -7.6543 + 6507.000 18.0194 + 6508.000 -12.2835 + 6509.000 -12.8656 + 6510.000 20.8886 + 6511.000 -14.3788 + 6512.000 -16.1192 + 6513.000 35.8476 + 6514.000 -21.4659 + 6515.000 -19.6663 + 6516.000 40.0709 + 6517.000 -19.3448 + 6518.000 -27.6333 + 6519.000 7.7832 + 6520.000 -3.7200 + 6521.000 -7.3569 + 6522.000 36.7680 + 6523.000 -19.1353 + 6524.000 -24.8709 + 6525.000 22.3861 + 6526.000 -17.8787 + 6527.000 -16.9799 + 6528.000 19.3487 + 6529.000 -16.2130 + 6530.000 -14.5456 + 6531.000 24.8803 + 6532.000 -17.1440 + 6533.000 -22.0669 + 6534.000 -2.4267 + 6535.000 -4.1796 + 6536.000 -5.8394 + 6537.000 34.9791 + 6538.000 -22.3553 + 6539.000 -21.0212 + 6540.000 35.4843 + 6541.000 -23.3074 + 6542.000 -21.7755 + 6543.000 22.3679 + 6544.000 -13.6904 + 6545.000 -16.9534 + 6546.000 27.4105 + 6547.000 -18.0374 + 6548.000 -18.4447 + 6549.000 7.7125 + 6550.000 -8.1417 + 6551.000 -11.2098 + 6552.000 23.6644 + 6553.000 -15.3039 + 6554.000 -17.5689 + 6555.000 3.8468 + 6556.000 -3.7622 + 6557.000 -7.7338 + 6558.000 4.3823 + 6559.000 -4.9627 + 6560.000 -6.2400 + 6561.000 26.2485 + 6562.000 -13.6490 + 6563.000 -20.4232 + 6564.000 44.9776 + 6565.000 -27.2527 + 6566.000 -24.4328 + 6567.000 25.9510 + 6568.000 -18.2926 + 6569.000 -17.9779 + 6570.000 0.7686 + 6571.000 -1.4568 + 6572.000 -5.4565 + 6573.000 18.5156 + 6574.000 -12.0141 + 6575.000 -14.8441 + 6576.000 41.1118 + 6577.000 -27.2978 + 6578.000 -25.1182 + 6579.000 30.6380 + 6580.000 -22.3202 + 6581.000 -19.1469 + 6582.000 -5.7631 + 6583.000 -4.8246 + 6584.000 2.7869 + 6585.000 47.8585 + 6586.000 -26.8687 + 6587.000 -27.4766 + 6588.000 18.5613 + 6589.000 -12.1432 + 6590.000 -14.1503 + 6591.000 11.7114 + 6592.000 -9.7121 + 6593.000 -10.8961 + 6594.000 31.3186 + 6595.000 -20.5837 + 6596.000 -17.5146 + 6597.000 35.9917 + 6598.000 -18.2767 + 6599.000 -18.6377 + 6600.000 27.2921 + 6601.000 -17.6666 + 6602.000 -17.4607 + 6603.000 14.5038 + 6604.000 -7.5325 + 6605.000 -14.4076 + 6606.000 4.8618 + 6607.000 -2.9681 + 6608.000 -4.9587 + 6609.000 5.4262 + 6610.000 -8.9774 + 6611.000 -1.3666 + 6612.000 10.7798 + 6613.000 -5.8863 + 6614.000 -8.8012 + 6615.000 19.3777 + 6616.000 -11.4836 + 6617.000 -9.2679 + 6618.000 -9.7067 + 6619.000 6.1340 + 6620.000 -1.4881 + 6621.000 21.5330 + 6622.000 -13.2313 + 6623.000 -17.3240 + 6624.000 17.0523 + 6625.000 -14.3613 + 6626.000 -11.9629 + 6627.000 25.3360 + 6628.000 -16.9872 + 6629.000 -13.9707 + 6630.000 10.0066 + 6631.000 -6.7169 + 6632.000 -9.7400 + 6633.000 17.4281 + 6634.000 -12.8554 + 6635.000 -11.0200 + 6636.000 25.3275 + 6637.000 -18.2159 + 6638.000 -16.0560 + 6639.000 18.9976 + 6640.000 -14.7982 + 6641.000 -12.8639 + 6642.000 20.0744 + 6643.000 -14.1707 + 6644.000 -16.2685 + 6645.000 18.1060 + 6646.000 -12.2083 + 6647.000 -16.6856 + 6648.000 17.8177 + 6649.000 -14.8308 + 6650.000 -15.5890 + 6651.000 38.7020 + 6652.000 -20.6943 + 6653.000 -25.0127 + 6654.000 -4.3250 + 6655.000 -0.7523 + 6656.000 -0.7709 + 6657.000 30.6609 + 6658.000 -21.5345 + 6659.000 -17.8373 + 6660.000 28.4388 + 6661.000 -20.4865 + 6662.000 -19.5573 + 6663.000 24.5919 + 6664.000 -12.0364 + 6665.000 -16.3977 + 6666.000 30.3362 + 6667.000 -22.6187 + 6668.000 -19.0679 + 6669.000 -7.0670 + 6670.000 -0.3164 + 6671.000 1.5908 + 6672.000 10.9396 + 6673.000 -12.5438 + 6674.000 -10.3089 + 6675.000 55.2036 + 6676.000 -27.8038 + 6677.000 -28.8459 + 6678.000 32.6590 + 6679.000 -22.0511 + 6680.000 -18.6620 + 6681.000 11.7085 + 6682.000 -11.2908 + 6683.000 -10.1218 + 6684.000 36.2871 + 6685.000 -22.4139 + 6686.000 -26.2026 + 6687.000 -4.2883 + 6688.000 -1.4892 + 6689.000 -5.1825 + 6690.000 3.2531 + 6691.000 -8.4569 + 6692.000 -6.3031 + 6693.000 29.1502 + 6694.000 -17.4137 + 6695.000 -20.2210 + 6696.000 34.4210 + 6697.000 -21.2814 + 6698.000 -21.3271 + 6699.000 26.9801 + 6700.000 -12.3102 + 6701.000 -18.9634 + 6702.000 -8.3793 + 6703.000 -1.5266 + 6704.000 0.6449 + 6705.000 22.1865 + 6706.000 -12.4479 + 6707.000 -12.2386 + 6708.000 8.6758 + 6709.000 -11.5015 + 6710.000 -5.0277 + 6711.000 7.9537 + 6712.000 -10.1570 + 6713.000 -9.8636 + 6714.000 -10.9897 + 6715.000 0.2107 + 6716.000 1.9614 + 6717.000 -20.2384 + 6718.000 9.2003 + 6719.000 7.3860 + 6720.000 31.0209 + 6721.000 -21.1386 + 6722.000 -20.7474 + 6723.000 3.9117 + 6724.000 -6.4515 + 6725.000 -9.4178 + 6726.000 22.6892 + 6727.000 -13.9171 + 6728.000 -11.9740 + 6729.000 43.4114 + 6730.000 -23.4211 + 6731.000 -24.6179 + 6732.000 21.5585 + 6733.000 -13.3615 + 6734.000 -14.3274 + 6735.000 14.4779 + 6736.000 -12.4912 + 6737.000 -11.8242 + 6738.000 7.0545 + 6739.000 -8.3158 + 6740.000 -5.2505 + 6741.000 28.1994 + 6742.000 -19.1763 + 6743.000 -16.6464 + 6744.000 8.0376 + 6745.000 -12.3139 + 6746.000 -10.0503 + 6747.000 35.3671 + 6748.000 -21.0481 + 6749.000 -20.5799 + 6750.000 11.3800 + 6751.000 -8.8920 + 6752.000 -10.2504 + 6753.000 6.1647 + 6754.000 -13.4749 + 6755.000 -4.4837 + 6756.000 -2.5123 + 6757.000 1.2087 + 6758.000 -6.1598 + 6759.000 26.0603 + 6760.000 -17.5385 + 6761.000 -17.0757 + 6762.000 15.3126 + 6763.000 -9.7780 + 6764.000 -12.1584 + 6765.000 20.7930 + 6766.000 -14.8105 + 6767.000 -13.4799 + 6768.000 11.8457 + 6769.000 -9.3477 + 6770.000 -12.5817 + 6771.000 26.5804 + 6772.000 -17.4376 + 6773.000 -19.0542 + 6774.000 1.9562 + 6775.000 -8.6184 + 6776.000 -4.7956 + 6777.000 23.1345 + 6778.000 -15.9017 + 6779.000 -20.3212 + 6780.000 34.1777 + 6781.000 -18.6886 + 6782.000 -19.0868 + 6783.000 39.3331 + 6784.000 -24.4028 + 6785.000 -25.4671 + 6786.000 52.4659 + 6787.000 -29.2334 + 6788.000 -28.6234 + 6789.000 5.6994 + 6790.000 -9.5590 + 6791.000 -9.5077 + 6792.000 -3.0297 + 6793.000 -5.5152 + 6794.000 -4.0106 + 6795.000 -4.0128 + 6796.000 -0.5582 + 6797.000 -3.3481 + 6798.000 17.9139 + 6799.000 -11.4281 + 6800.000 -12.4668 + 6801.000 35.8296 + 6802.000 -22.4450 + 6803.000 -25.3694 + 6804.000 -2.1849 + 6805.000 -4.2883 + 6806.000 -3.8119 + 6807.000 -8.2230 + 6808.000 2.3688 + 6809.000 -2.1432 + 6810.000 15.3891 + 6811.000 -13.8275 + 6812.000 -12.2354 + 6813.000 32.8903 + 6814.000 -17.0851 + 6815.000 -22.4492 + 6816.000 15.3604 + 6817.000 -9.1195 + 6818.000 -11.4898 + 6819.000 5.3496 + 6820.000 -1.7071 + 6821.000 -7.9037 + 6822.000 21.5316 + 6823.000 -10.8997 + 6824.000 -16.2901 + 6825.000 54.6474 + 6826.000 -27.8718 + 6827.000 -27.7199 + 6828.000 22.0981 + 6829.000 -16.7059 + 6830.000 -16.6525 + 6831.000 34.0047 + 6832.000 -20.7706 + 6833.000 -24.1618 + 6834.000 55.3364 + 6835.000 -27.0226 + 6836.000 -29.5018 + 6837.000 37.8152 + 6838.000 -22.3866 + 6839.000 -22.8799 + 6840.000 33.3599 + 6841.000 -20.4620 + 6842.000 -23.4108 + 6843.000 53.8522 + 6844.000 -26.4865 + 6845.000 -31.9975 + 6846.000 35.9478 + 6847.000 -22.2565 + 6848.000 -19.7534 + 6849.000 15.1672 + 6850.000 -8.5866 + 6851.000 -16.0499 + 6852.000 33.1758 + 6853.000 -17.1105 + 6854.000 -20.9331 + 6855.000 13.5887 + 6856.000 -13.9531 + 6857.000 -11.5068 + 6858.000 -47.6568 + 6859.000 19.6280 + 6860.000 20.3678 + 6861.000 -33.4067 + 6862.000 12.6978 + 6863.000 11.2566 + 6864.000 -39.8062 + 6865.000 20.3609 + 6866.000 13.9913 + 6867.000 -35.4234 + 6868.000 16.5297 + 6869.000 14.6963 + 6870.000 -44.6349 + 6871.000 21.1767 + 6872.000 23.3804 + 6873.000 -43.6782 + 6874.000 18.2725 + 6875.000 13.9869 + 6876.000 -38.0721 + 6877.000 12.0723 + 6878.000 17.1670 + 6879.000 -29.5004 + 6880.000 10.8196 + 6881.000 6.1630 + 6882.000 -21.8117 + 6883.000 7.3625 + 6884.000 7.2215 + 6885.000 -36.1415 + 6886.000 15.4246 + 6887.000 15.5570 + 6888.000 -32.0579 + 6889.000 12.9815 + 6890.000 9.6661 + 6891.000 -22.5941 + 6892.000 9.3585 + 6893.000 6.7834 + 6894.000 -53.9316 + 6895.000 26.8705 + 6896.000 21.1514 + 6897.000 -17.4727 + 6898.000 4.4240 + 6899.000 6.1694 + 6900.000 -13.4399 + 6901.000 0.7039 + 6902.000 4.4721 + 6903.000 -22.7644 + 6904.000 8.4748 + 6905.000 5.5136 + 6906.000 -1.0260 + 6907.000 -2.5601 + 6908.000 -1.4818 + 6909.000 5.3645 + 6910.000 -8.4438 + 6911.000 -6.5720 + 6912.000 -38.7610 + 6913.000 20.1571 + 6914.000 13.5058 + 6915.000 -11.0733 + 6916.000 1.2041 + 6917.000 1.9048 + 6918.000 -13.8354 + 6919.000 0.2992 + 6920.000 -2.1046 + 6921.000 -20.7847 + 6922.000 7.6148 + 6923.000 5.1667 + 6924.000 -19.7896 + 6925.000 10.1375 + 6926.000 2.3543 + 6927.000 -24.4415 + 6928.000 11.9708 + 6929.000 9.5555 + 6930.000 -33.2645 + 6931.000 15.3986 + 6932.000 16.3183 + 6933.000 -18.7093 + 6934.000 4.9853 + 6935.000 2.2098 + 6936.000 -36.8347 + 6937.000 11.0759 + 6938.000 15.8797 + 6939.000 -18.8376 + 6940.000 5.4165 + 6941.000 8.4109 + 6942.000 -41.9507 + 6943.000 18.1372 + 6944.000 18.8135 + 6945.000 -17.7093 + 6946.000 3.0889 + 6947.000 3.8598 + 6948.000 -21.3575 + 6949.000 6.8287 + 6950.000 1.9525 + 6951.000 -14.5802 + 6952.000 2.9536 + 6953.000 0.9499 + 6954.000 -12.4243 + 6955.000 4.1124 + 6956.000 -1.3821 + 6957.000 -9.1348 + 6958.000 -0.2417 + 6959.000 2.6593 + 6960.000 -30.0042 + 6961.000 6.5310 + 6962.000 11.5689 + 6963.000 -41.6163 + 6964.000 12.5177 + 6965.000 19.9096 + 6966.000 -18.5639 + 6967.000 4.5617 + 6968.000 0.8710 + 6969.000 -17.1075 + 6970.000 4.7143 + 6971.000 4.9400 + 6972.000 -0.6336 + 6973.000 -5.9641 + 6974.000 -5.3644 + 6975.000 -36.5184 + 6976.000 10.6284 + 6977.000 16.6563 + 6978.000 -25.2021 + 6979.000 7.2667 + 6980.000 6.4439 + 6981.000 -31.2262 + 6982.000 13.0988 + 6983.000 10.0698 + 6984.000 -11.6747 + 6985.000 1.0689 + 6986.000 1.9883 + 6987.000 8.5014 + 6988.000 -3.8682 + 6989.000 -9.2961 + 6990.000 2.3876 + 6991.000 -5.5269 + 6992.000 -8.8092 + 6993.000 -16.9903 + 6994.000 2.3680 + 6995.000 2.7655 + 6996.000 -10.2120 + 6997.000 0.2918 + 6998.000 4.5040 + 6999.000 -3.4456 + 7000.000 -0.3831 + 7001.000 0.3881 + 7002.000 -18.3187 + 7003.000 4.6350 + 7004.000 5.0782 + 7005.000 -15.5287 + 7006.000 1.6338 + 7007.000 3.8291 + 7008.000 -17.0037 + 7009.000 6.3440 + 7010.000 5.1534 + 7011.000 -30.8410 + 7012.000 12.8413 + 7013.000 12.6875 + 7014.000 -30.1584 + 7015.000 10.2369 + 7016.000 8.9157 + 7017.000 -19.0926 + 7018.000 7.2883 + 7019.000 3.2904 + 7020.000 -19.4478 + 7021.000 7.8024 + 7022.000 5.9982 + 7023.000 -11.0982 + 7024.000 -0.1355 + 7025.000 3.0285 + 7026.000 -33.6942 + 7027.000 18.2809 + 7028.000 10.3702 + 7029.000 -27.8913 + 7030.000 9.5843 + 7031.000 10.8058 + 7032.000 -3.7621 + 7033.000 0.0235 + 7034.000 -3.1780 + 7035.000 -15.4710 + 7036.000 4.0840 + 7037.000 1.3750 + 7038.000 -33.7787 + 7039.000 9.3282 + 7040.000 11.5258 + 7041.000 -3.3284 + 7042.000 1.8599 + 7043.000 -3.9661 + 7044.000 -18.6163 + 7045.000 7.0446 + 7046.000 4.8768 + 7047.000 -29.2706 + 7048.000 14.9795 + 7049.000 11.1087 + 7050.000 -17.3320 + 7051.000 9.1028 + 7052.000 4.1864 + 7053.000 -14.7436 + 7054.000 -1.1797 + 7055.000 2.0574 + 7056.000 -36.0112 + 7057.000 17.0145 + 7058.000 11.6662 + 7059.000 -14.9048 + 7060.000 4.7587 + 7061.000 1.5466 + 7062.000 -19.5702 + 7063.000 5.4839 + 7064.000 5.6994 + 7065.000 -19.2730 + 7066.000 4.7190 + 7067.000 7.0930 + 7068.000 -26.9011 + 7069.000 7.6275 + 7070.000 9.6077 + 7071.000 -52.7573 + 7072.000 25.4505 + 7073.000 21.2823 + 7074.000 -48.1178 + 7075.000 25.5478 + 7076.000 15.1482 + 7077.000 10.9085 + 7078.000 -8.1502 + 7079.000 -5.8102 + 7080.000 9.1376 + 7081.000 -9.1946 + 7082.000 -10.8257 + 7083.000 -107.4616 + 7084.000 49.1963 + 7085.000 67.3226 + 7086.000 -60.7967 + 7087.000 28.7480 + 7088.000 31.0361 + 7089.000 -64.5325 + 7090.000 29.7080 + 7091.000 32.3736 + 7092.000 -59.3899 + 7093.000 22.1268 + 7094.000 28.0097 + 7095.000 -44.7310 + 7096.000 22.8488 + 7097.000 18.3099 + 7098.000 -66.5767 + 7099.000 29.9467 + 7100.000 29.9560 + 7101.000 -58.3339 + 7102.000 25.4097 + 7103.000 28.3230 + 7104.000 -41.3946 + 7105.000 15.5100 + 7106.000 19.4082 + 7107.000 -54.9093 + 7108.000 21.8314 + 7109.000 27.5284 + 7110.000 -73.5950 + 7111.000 42.5291 + 7112.000 33.1569 + 7113.000 -55.4920 + 7114.000 25.6446 + 7115.000 22.7620 + 7116.000 -91.2355 + 7117.000 36.2084 + 7118.000 39.2656 + 7119.000 -26.8572 + 7120.000 10.5873 + 7121.000 8.4249 + 7122.000 -42.8794 + 7123.000 17.7632 + 7124.000 14.4192 + 7125.000 -25.2485 + 7126.000 12.1025 + 7127.000 10.9424 + 7128.000 -109.9276 + 7129.000 78.8763 + 7130.000 39.0668 + 7131.000 -79.5823 + 7132.000 39.2929 + 7133.000 30.0884 + 7134.000 -52.6224 + 7135.000 22.7706 + 7136.000 24.7170 + 7137.000 -52.3744 + 7138.000 25.8566 + 7139.000 22.6544 + 7140.000 -58.6445 + 7141.000 22.7921 + 7142.000 23.4070 + 7143.000 -49.4766 + 7144.000 24.4504 + 7145.000 24.4803 + 7146.000 -47.5944 + 7147.000 14.8137 + 7148.000 21.7010 + 7149.000 -64.3971 + 7150.000 22.6845 + 7151.000 22.8813 + 7152.000 -57.5863 + 7153.000 23.2016 + 7154.000 25.2370 + 7155.000 -92.9307 + 7156.000 44.8293 + 7157.000 36.2471 + 7158.000 -55.1718 + 7159.000 21.0945 + 7160.000 25.2872 + 7161.000 -68.6669 + 7162.000 31.3465 + 7163.000 27.6904 + 7164.000 -50.9831 + 7165.000 19.2041 + 7166.000 21.7772 + 7167.000 -73.4083 + 7168.000 35.3100 + 7169.000 30.1040 + 7170.000 -60.3444 + 7171.000 31.0596 + 7172.000 31.0547 + 7173.000 -40.7666 + 7174.000 22.2830 + 7175.000 18.5927 + 7176.000 -47.8694 + 7177.000 22.1764 + 7178.000 21.6947 + 7179.000 -40.3076 + 7180.000 12.2205 + 7181.000 15.3563 + 7182.000 -26.7430 + 7183.000 6.1434 + 7184.000 10.3835 + 7185.000 -61.5524 + 7186.000 29.4632 + 7187.000 24.3024 + 7188.000 -48.6508 + 7189.000 21.7955 + 7190.000 22.8067 + 7191.000 -47.1499 + 7192.000 16.2159 + 7193.000 16.9716 + 7194.000 -61.0874 + 7195.000 25.4053 + 7196.000 28.2429 + 7197.000 -63.6516 + 7198.000 26.2111 + 7199.000 28.1523 + 7200.000 -59.1522 + 7201.000 24.8877 + 7202.000 24.1315 + 7203.000 -51.4967 + 7204.000 22.5252 + 7205.000 18.0688 + 7206.000 -23.5847 + 7207.000 5.3638 + 7208.000 7.9219 + 7209.000 -37.7644 + 7210.000 17.1441 + 7211.000 13.8156 + 7212.000 -40.1982 + 7213.000 16.4707 + 7214.000 21.2112 + 7215.000 -39.7395 + 7216.000 14.5552 + 7217.000 12.9334 + 7218.000 -58.9141 + 7219.000 24.8011 + 7220.000 22.2901 + 7221.000 -35.2367 + 7222.000 14.4424 + 7223.000 15.8729 + 7224.000 -40.1188 + 7225.000 17.7676 + 7226.000 16.2034 + 7227.000 -55.7321 + 7228.000 23.5197 + 7229.000 25.0455 + 7230.000 -1.1166 + 7231.000 -4.4910 + 7232.000 -2.7571 + 7233.000 5.8423 + 7234.000 -4.9797 + 7235.000 -6.2855 + 7236.000 -1.3324 + 7237.000 -5.5582 + 7238.000 -3.5644 + 7239.000 4.2675 + 7240.000 -8.9160 + 7241.000 -4.7840 + 7242.000 13.9237 + 7243.000 -9.4301 + 7244.000 -10.7840 + 7245.000 -8.9967 + 7246.000 -0.9920 + 7247.000 1.7887 + 7248.000 -15.9439 + 7249.000 8.6071 + 7250.000 4.3593 + 7251.000 -3.1771 + 7252.000 -1.9431 + 7253.000 -2.4389 + 7254.000 0.7055 + 7255.000 -3.2254 + 7256.000 -1.7922 + 7257.000 -2.2356 + 7258.000 -3.9397 + 7259.000 0.2433 + 7260.000 -5.1027 + 7261.000 -2.9363 + 7262.000 3.2912 + 7263.000 -2.7001 + 7264.000 -3.4076 + 7265.000 -0.0101 + 7266.000 6.0932 + 7267.000 -8.4032 + 7268.000 -3.0846 + 7269.000 -8.4725 + 7270.000 0.8975 + 7271.000 -2.9718 + 7272.000 5.8094 + 7273.000 -2.9999 + 7274.000 -7.4415 + 7275.000 -10.0648 + 7276.000 -0.8776 + 7277.000 -1.5966 + 7278.000 4.8294 + 7279.000 -4.3305 + 7280.000 -6.8856 + 7281.000 -1.4098 + 7282.000 -5.9089 + 7283.000 0.1495 + 7284.000 18.8039 + 7285.000 -14.5486 + 7286.000 -14.7578 + 7287.000 -27.1215 + 7288.000 5.2640 + 7289.000 10.0781 + 7290.000 -19.2265 + 7291.000 6.3322 + 7292.000 2.6394 + 7293.000 -17.5130 + 7294.000 5.9605 + 7295.000 1.7155 + 7296.000 -38.0600 + 7297.000 12.3753 + 7298.000 14.0119 + 7299.000 -3.5475 + 7300.000 -2.1812 + 7301.000 -3.1299 + 7302.000 3.5118 + 7303.000 -6.0515 + 7304.000 -6.2070 + 7305.000 11.3440 + 7306.000 -10.4058 + 7307.000 -11.8072 + 7308.000 -21.9375 + 7309.000 6.6656 + 7310.000 10.3212 + 7311.000 6.8211 + 7312.000 -9.7207 + 7313.000 -7.8712 + 7314.000 -41.8034 + 7315.000 14.6596 + 7316.000 18.3504 + 7317.000 1.2337 + 7318.000 -1.0576 + 7319.000 -6.2180 + 7320.000 0.3334 + 7321.000 -4.4781 + 7322.000 -4.2174 + 7323.000 6.1767 + 7324.000 -8.0584 + 7325.000 -7.4337 + 7326.000 2.3467 + 7327.000 -4.1234 + 7328.000 -5.7644 + 7329.000 -2.5957 + 7330.000 0.5527 + 7331.000 -5.1707 + 7332.000 -15.3735 + 7333.000 3.0870 + 7334.000 -0.6057 + 7335.000 -5.0667 + 7336.000 -3.3448 + 7337.000 0.7656 + 7338.000 -0.1314 + 7339.000 1.2440 + 7340.000 -1.4308 + 7341.000 -10.1897 + 7342.000 1.9327 + 7343.000 -0.1177 + 7344.000 5.3448 + 7345.000 -9.1292 + 7346.000 -6.6522 + 7347.000 -22.1235 + 7348.000 5.2907 + 7349.000 9.4610 + 7350.000 8.6248 + 7351.000 -10.5376 + 7352.000 -8.8061 + 7353.000 0.5724 + 7354.000 -3.1203 + 7355.000 -3.8696 + 7356.000 -18.0976 + 7357.000 7.2728 + 7358.000 4.0701 + 7359.000 -1.8486 + 7360.000 0.0846 + 7361.000 -4.8476 + 7362.000 -9.9270 + 7363.000 -1.0731 + 7364.000 0.1695 + 7365.000 5.5900 + 7366.000 -8.0828 + 7367.000 -6.6352 + 7368.000 2.5604 + 7369.000 -2.2009 + 7370.000 -6.1451 + 7371.000 -11.4783 + 7372.000 2.3553 + 7373.000 0.6918 + 7374.000 8.9496 + 7375.000 -10.4467 + 7376.000 -8.9649 + 7377.000 -10.6746 + 7378.000 2.7103 + 7379.000 0.3623 + 7380.000 0.6401 + 7381.000 -5.7392 + 7382.000 -4.8433 + 7383.000 -25.1361 + 7384.000 12.3046 + 7385.000 8.3733 + 7386.000 3.0448 + 7387.000 -2.3453 + 7388.000 -6.2387 + 7389.000 20.3499 + 7390.000 -13.9350 + 7391.000 -12.1391 + 7392.000 6.6048 + 7393.000 -3.3822 + 7394.000 -8.6120 + 7395.000 -33.0236 + 7396.000 16.2912 + 7397.000 11.2766 + 7398.000 -44.0799 + 7399.000 16.8120 + 7400.000 16.0716 + 7401.000 -10.2630 + 7402.000 -2.7889 + 7403.000 5.7834 + 7404.000 -21.5423 + 7405.000 8.5450 + 7406.000 8.4102 + 7407.000 -29.0324 + 7408.000 11.9152 + 7409.000 8.3669 + 7410.000 -18.9082 + 7411.000 2.7408 + 7412.000 5.1922 + 7413.000 -29.8898 + 7414.000 11.2339 + 7415.000 13.3138 + 7416.000 -36.3944 + 7417.000 12.6903 + 7418.000 14.0748 + 7419.000 7.1442 + 7420.000 -11.9828 + 7421.000 -8.8878 + 7422.000 1.9330 + 7423.000 -4.8950 + 7424.000 -6.0583 + 7425.000 -2.9467 + 7426.000 0.7962 + 7427.000 -6.3415 + 7428.000 -2.9574 + 7429.000 -0.6129 + 7430.000 -2.5450 + 7431.000 3.4415 + 7432.000 -5.9451 + 7433.000 -7.8108 + 7434.000 3.4963 + 7435.000 -7.5737 + 7436.000 -5.1747 + 7437.000 -11.3048 + 7438.000 2.5583 + 7439.000 -0.2676 + 7440.000 -28.4754 + 7441.000 11.3522 + 7442.000 4.6288 + 7443.000 -1.3471 + 7444.000 -6.0167 + 7445.000 -1.8480 + 7446.000 -10.0054 + 7447.000 0.4486 + 7448.000 -1.7000 + 7449.000 8.3814 + 7450.000 -8.5504 + 7451.000 -8.5138 + 7452.000 14.4100 + 7453.000 -9.8419 + 7454.000 -15.5690 + 7455.000 -3.1861 + 7456.000 -1.4098 + 7457.000 -3.6102 + 7458.000 21.3361 + 7459.000 -16.9124 + 7460.000 -17.3465 + 7461.000 21.0362 + 7462.000 -13.0992 + 7463.000 -15.1313 + 7464.000 -25.0342 + 7465.000 9.6867 + 7466.000 5.6901 + 7467.000 -25.3937 + 7468.000 5.7973 + 7469.000 8.4153 + 7470.000 0.0588 + 7471.000 -5.2542 + 7472.000 -1.3413 + 7473.000 -10.7287 + 7474.000 -0.6008 + 7475.000 -2.2694 + 7476.000 -2.4204 + 7477.000 -2.7251 + 7478.000 -4.6734 + 7479.000 6.9254 + 7480.000 -10.1915 + 7481.000 -6.1581 + 7482.000 24.0586 + 7483.000 -18.0621 + 7484.000 -20.0177 + 7485.000 -3.0679 + 7486.000 -0.4815 + 7487.000 -4.0231 + 7488.000 10.8924 + 7489.000 -9.4908 + 7490.000 -8.5425 + 7491.000 19.1795 + 7492.000 -12.1336 + 7493.000 -12.7563 + 7494.000 -15.6528 + 7495.000 5.0668 + 7496.000 4.4426 + 7497.000 -28.7422 + 7498.000 13.5199 + 7499.000 10.3084 + 7500.000 -30.3724 + 7501.000 11.1012 + 7502.000 11.3909 + 7503.000 -21.2002 + 7504.000 7.5832 + 7505.000 7.2562 + 7506.000 -5.1412 + 7507.000 1.4689 + 7508.000 0.3921 + 7509.000 -37.8725 + 7510.000 15.1142 + 7511.000 14.1490 + 7512.000 -30.2757 + 7513.000 8.4980 + 7514.000 11.0026 + 7515.000 -20.9341 + 7516.000 4.8865 + 7517.000 11.8783 + 7518.000 -3.2387 + 7519.000 -2.2336 + 7520.000 -3.4710 + 7521.000 -16.7097 + 7522.000 6.9343 + 7523.000 5.4412 + 7524.000 -24.2474 + 7525.000 7.9826 + 7526.000 7.2598 + 7527.000 -15.9275 + 7528.000 4.9659 + 7529.000 4.6234 + 7530.000 -86.7343 + 7531.000 28.6632 + 7532.000 44.0834 + 7533.000 -0.4879 + 7534.000 -3.3626 + 7535.000 -0.8865 + 7536.000 -25.1458 + 7537.000 7.9976 + 7538.000 10.0698 + 7539.000 -22.0080 + 7540.000 5.2711 + 7541.000 9.9667 + 7542.000 -3.8874 + 7543.000 -0.1155 + 7544.000 -4.7339 + 7545.000 -12.1096 + 7546.000 6.8541 + 7547.000 1.4376 + 7548.000 -10.7256 + 7549.000 -2.0435 + 7550.000 1.2589 + 7551.000 -14.8510 + 7552.000 7.1514 + 7553.000 3.2129 + 7554.000 -23.9579 + 7555.000 6.1792 + 7556.000 11.1755 + 7557.000 -28.0773 + 7558.000 8.0635 + 7559.000 8.9336 + 7560.000 1.2804 + 7561.000 -7.2235 + 7562.000 -3.5380 + 7563.000 -37.1095 + 7564.000 10.5163 + 7565.000 18.1297 + 7566.000 -1.7612 + 7567.000 -2.0773 + 7568.000 -2.9207 + 7569.000 -4.0805 + 7570.000 -1.8363 + 7571.000 -4.6511 + 7572.000 -42.9154 + 7573.000 18.9388 + 7574.000 16.3501 + 7575.000 -16.2916 + 7576.000 2.5411 + 7577.000 2.0952 + 7578.000 -0.4883 + 7579.000 -1.6367 + 7580.000 0.0530 + 7581.000 -28.9130 + 7582.000 6.5443 + 7583.000 11.4959 + 7584.000 -16.4513 + 7585.000 0.2984 + 7586.000 1.4004 + 7587.000 -10.8089 + 7588.000 3.8332 + 7589.000 3.2344 + 7590.000 -74.7177 + 7591.000 33.6772 + 7592.000 25.3551 + 7593.000 -20.7777 + 7594.000 6.7734 + 7595.000 4.9985 + 7596.000 -34.3638 + 7597.000 10.9754 + 7598.000 15.0977 + 7599.000 -24.3119 + 7600.000 11.0301 + 7601.000 5.2836 + 7602.000 5.1462 + 7603.000 -9.7802 + 7604.000 -7.5910 + 7605.000 -19.2098 + 7606.000 3.1341 + 7607.000 4.8124 + 7608.000 -8.2784 + 7609.000 2.2815 + 7610.000 2.2114 + 7611.000 -13.0671 + 7612.000 3.5112 + 7613.000 3.3664 + 7614.000 -34.1837 + 7615.000 11.2125 + 7616.000 11.5802 + 7617.000 1.9589 + 7618.000 -5.2313 + 7619.000 -4.8079 + 7620.000 -19.4184 + 7621.000 3.6517 + 7622.000 5.9508 + 7623.000 -27.9085 + 7624.000 10.9331 + 7625.000 10.2662 + 7626.000 3.4853 + 7627.000 -3.1849 + 7628.000 -4.5823 + 7629.000 -21.3912 + 7630.000 8.7260 + 7631.000 5.1648 + 7632.000 -22.6735 + 7633.000 4.2700 + 7634.000 7.1677 + 7635.000 -30.9030 + 7636.000 9.9621 + 7637.000 10.8756 + 7638.000 -32.2759 + 7639.000 14.7096 + 7640.000 14.2816 + 7641.000 -20.8376 + 7642.000 2.4154 + 7643.000 7.5187 + 7644.000 -35.0802 + 7645.000 10.7477 + 7646.000 11.1575 + 7647.000 -3.1481 + 7648.000 -2.1320 + 7649.000 -3.1283 + 7650.000 -16.0547 + 7651.000 2.6554 + 7652.000 3.8119 + 7653.000 0.1928 + 7654.000 0.4928 + 7655.000 -1.2702 + 7656.000 -17.1197 + 7657.000 7.2074 + 7658.000 4.1082 + 7659.000 1.1925 + 7660.000 -4.2207 + 7661.000 -2.0065 + 7662.000 -13.4846 + 7663.000 6.8346 + 7664.000 1.5744 + 7665.000 -7.2752 + 7666.000 0.4977 + 7667.000 -1.9452 + 7668.000 -5.3430 + 7669.000 -1.4771 + 7670.000 -0.3480 + 7671.000 -88.5399 + 7672.000 67.8312 + 7673.000 34.3964 + 7674.000 -14.1101 + 7675.000 4.0677 + 7676.000 5.5995 + 7677.000 -15.0470 + 7678.000 2.5380 + 7679.000 2.1788 + 7680.000 -9.7249 + 7681.000 -0.3319 + 7682.000 -2.2308 + 7683.000 -25.1462 + 7684.000 5.0983 + 7685.000 11.6951 + 7686.000 -17.3912 + 7687.000 5.3485 + 7688.000 2.3558 + 7689.000 -33.6486 + 7690.000 10.1433 + 7691.000 11.1650 + 7692.000 -24.7392 + 7693.000 7.4580 + 7694.000 9.4286 + 7695.000 -27.0370 + 7696.000 12.5911 + 7697.000 5.5257 + 7698.000 -30.8752 + 7699.000 13.0804 + 7700.000 10.7551 + 7701.000 -30.5203 + 7702.000 11.1812 + 7703.000 10.1249 + 7704.000 -19.8141 + 7705.000 5.3495 + 7706.000 5.1102 + 7707.000 7.7135 + 7708.000 -3.8979 + 7709.000 -10.2731 + 7710.000 3.0169 + 7711.000 -6.3907 + 7712.000 -8.6469 + 7713.000 -18.2201 + 7714.000 4.3087 + 7715.000 4.7880 + 7716.000 -9.2979 + 7717.000 0.2774 + 7718.000 -2.3367 + 7719.000 -21.5639 + 7720.000 6.2301 + 7721.000 7.6811 + 7722.000 -14.0911 + 7723.000 2.7102 + 7724.000 0.3772 + 7725.000 -1.5527 + 7726.000 -4.3204 + 7727.000 -1.1341 + 7728.000 -28.6366 + 7729.000 11.9245 + 7730.000 7.0454 + 7731.000 -23.2751 + 7732.000 7.5113 + 7733.000 6.1409 + 7734.000 -23.2645 + 7735.000 4.3306 + 7736.000 3.9677 + 7737.000 -17.5211 + 7738.000 3.4945 + 7739.000 0.9142 + 7740.000 -20.2250 + 7741.000 9.4433 + 7742.000 5.3456 + 7743.000 -15.0883 + 7744.000 4.2012 + 7745.000 -1.5412 + 7746.000 -61.7341 + 7747.000 37.8349 + 7748.000 24.3257 + 7749.000 -20.7282 + 7750.000 5.2510 + 7751.000 7.0799 + 7752.000 -12.7958 + 7753.000 3.0791 + 7754.000 -2.9032 + 7755.000 -62.1258 + 7756.000 28.9916 + 7757.000 28.2929 + 7758.000 -30.5453 + 7759.000 9.2404 + 7760.000 14.0163 + 7761.000 -21.2970 + 7762.000 7.6882 + 7763.000 7.5795 + 7764.000 -64.7166 + 7765.000 29.2242 + 7766.000 27.0666 + 7767.000 -18.8029 + 7768.000 11.8688 + 7769.000 6.7811 + 7770.000 -0.3818 + 7771.000 -6.7516 + 7772.000 -3.8381 + 7773.000 -25.6722 + 7774.000 9.5520 + 7775.000 12.8896 + 7776.000 -41.6798 + 7777.000 14.7630 + 7778.000 21.7638 + 7779.000 -8.4751 + 7780.000 1.5423 + 7781.000 2.9333 + 7782.000 -35.0922 + 7783.000 12.3283 + 7784.000 13.3326 + 7785.000 -32.3214 + 7786.000 15.5067 + 7787.000 14.0519 + 7788.000 -34.9517 + 7789.000 14.0794 + 7790.000 14.4828 + 7791.000 -31.0681 + 7792.000 12.1849 + 7793.000 15.6595 + 7794.000 -26.9294 + 7795.000 10.6743 + 7796.000 12.8742 + 7797.000 -36.2840 + 7798.000 15.5687 + 7799.000 12.7061 + 7800.000 -30.6293 + 7801.000 8.2651 + 7802.000 9.2441 + 7803.000 -33.6887 + 7804.000 8.8616 + 7805.000 14.2112 + 7806.000 -33.8659 + 7807.000 11.3908 + 7808.000 11.3664 + 7809.000 -26.7232 + 7810.000 9.4596 + 7811.000 8.5079 + 7812.000 -25.5525 + 7813.000 8.9200 + 7814.000 6.8714 + 7815.000 -28.4165 + 7816.000 9.6487 + 7817.000 14.3103 + 7818.000 -15.3984 + 7819.000 4.9477 + 7820.000 7.5342 + 7821.000 -36.4575 + 7822.000 11.2049 + 7823.000 12.9378 + 7824.000 -28.3790 + 7825.000 11.8960 + 7826.000 9.8658 + 7827.000 -35.9302 + 7828.000 17.7799 + 7829.000 15.2159 + 7830.000 -30.5122 + 7831.000 10.6592 + 7832.000 10.6838 + 7833.000 -32.5732 + 7834.000 11.7991 + 7835.000 10.1604 + 7836.000 -26.5853 + 7837.000 6.5162 + 7838.000 10.4485 + 7839.000 -12.7021 + 7840.000 6.7581 + 7841.000 4.6457 + 7842.000 -46.5017 + 7843.000 21.3350 + 7844.000 21.2196 + 7845.000 -18.5937 + 7846.000 4.5294 + 7847.000 5.1715 + 7848.000 -26.8749 + 7849.000 11.5308 + 7850.000 11.2658 + 7851.000 -30.6897 + 7852.000 9.2052 + 7853.000 9.3776 + 7854.000 -26.1196 + 7855.000 7.6508 + 7856.000 8.1578 + 7857.000 -31.7216 + 7858.000 11.5579 + 7859.000 11.7987 + 7860.000 -17.8243 + 7861.000 9.5081 + 7862.000 7.4112 + 7863.000 -32.1383 + 7864.000 13.1042 + 7865.000 9.7644 + 7866.000 -31.3204 + 7867.000 12.2854 + 7868.000 12.5385 + 7869.000 -33.4399 + 7870.000 10.1088 + 7871.000 16.3224 + 7872.000 -30.7720 + 7873.000 13.4366 + 7874.000 13.5663 + 7875.000 -32.2089 + 7876.000 11.3432 + 7877.000 11.5320 + 7878.000 -32.1824 + 7879.000 10.7786 + 7880.000 9.7504 + 7881.000 -33.2159 + 7882.000 11.2971 + 7883.000 15.5525 + 7884.000 -38.7695 + 7885.000 14.9179 + 7886.000 14.9513 + 7887.000 -22.1721 + 7888.000 10.5051 + 7889.000 4.9327 + 7890.000 -31.8853 + 7891.000 12.6714 + 7892.000 9.0225 + 7893.000 -44.5599 + 7894.000 20.7577 + 7895.000 18.9109 + 7896.000 -36.6937 + 7897.000 12.8041 + 7898.000 12.3734 + 7899.000 -30.6705 + 7900.000 11.5034 + 7901.000 11.5811 + 7902.000 -35.5192 + 7903.000 12.5103 + 7904.000 11.4284 + 7905.000 -38.9294 + 7906.000 13.6005 + 7907.000 14.8294 + 7908.000 -30.2240 + 7909.000 10.0107 + 7910.000 12.9285 + 7911.000 -32.3140 + 7912.000 11.6066 + 7913.000 9.0970 + 7914.000 -35.7459 + 7915.000 12.9203 + 7916.000 13.1535 + 7917.000 -27.7072 + 7918.000 11.8445 + 7919.000 9.5830 + 7920.000 -37.6100 + 7921.000 18.4275 + 7922.000 16.1247 + 7923.000 -39.4744 + 7924.000 13.1980 + 7925.000 15.6907 + 7926.000 -35.8938 + 7927.000 13.0173 + 7928.000 12.2174 + 7929.000 -33.9793 + 7930.000 15.1754 + 7931.000 12.9971 + 7932.000 -26.3156 + 7933.000 6.5635 + 7934.000 8.7964 + 7935.000 -21.2330 + 7936.000 7.6949 + 7937.000 8.8735 + 7938.000 -22.2627 + 7939.000 7.2284 + 7940.000 9.2915 + 7941.000 -36.7259 + 7942.000 17.5453 + 7943.000 13.8416 + 7944.000 -45.1323 + 7945.000 18.0422 + 7946.000 19.8267 + 7947.000 -20.6292 + 7948.000 11.3161 + 7949.000 5.6720 + 7950.000 -20.4209 + 7951.000 3.3760 + 7952.000 7.2268 + 7953.000 -49.5427 + 7954.000 20.6522 + 7955.000 20.1462 + 7956.000 -54.4401 + 7957.000 21.8725 + 7958.000 25.7490 + 7959.000 -30.5623 + 7960.000 10.7469 + 7961.000 13.9863 + 7962.000 -16.6876 + 7963.000 5.9859 + 7964.000 8.4483 + 7965.000 -29.7911 + 7966.000 10.0755 + 7967.000 11.1539 + 7968.000 -21.1801 + 7969.000 6.1565 + 7970.000 4.5416 + 7971.000 -14.6145 + 7972.000 0.9343 + 7973.000 6.3188 + 7974.000 -35.5125 + 7975.000 13.8242 + 7976.000 12.0005 + 7977.000 -22.0256 + 7978.000 8.7971 + 7979.000 8.1323 + 7980.000 -11.4194 + 7981.000 5.2145 + 7982.000 3.0747 + 7983.000 -20.2184 + 7984.000 5.7898 + 7985.000 7.8154 + 7986.000 -21.3242 + 7987.000 7.5329 + 7988.000 6.6088 + 7989.000 -31.2097 + 7990.000 12.2175 + 7991.000 12.1867 + 7992.000 -30.1380 + 7993.000 8.6794 + 7994.000 6.7345 + 7995.000 -18.0970 + 7996.000 5.5941 + 7997.000 3.4973 + 7998.000 -29.6820 + 7999.000 9.6588 + 8000.000 8.1285 + 8001.000 -28.7624 + 8002.000 10.7641 + 8003.000 9.3943 + 8004.000 -13.5863 + 8005.000 4.9152 + 8006.000 5.1283 + 8007.000 -20.8018 + 8008.000 3.4465 + 8009.000 4.4664 + 8010.000 -28.6606 + 8011.000 7.3515 + 8012.000 11.4679 + 8013.000 -29.9423 + 8014.000 10.6853 + 8015.000 12.1372 + 8016.000 -11.3080 + 8017.000 2.2504 + 8018.000 0.7343 + 8019.000 -17.9488 + 8020.000 6.8497 + 8021.000 2.3725 + 8022.000 -22.7990 + 8023.000 9.1639 + 8024.000 10.2773 + 8025.000 -26.5225 + 8026.000 5.7135 + 8027.000 7.8845 + 8028.000 -21.9520 + 8029.000 6.4585 + 8030.000 6.5232 + 8031.000 -17.1136 + 8032.000 6.0078 + 8033.000 3.5860 + 8034.000 -39.3786 + 8035.000 14.5463 + 8036.000 18.6604 + 8037.000 -23.4650 + 8038.000 5.6210 + 8039.000 5.6995 + 8040.000 -26.8432 + 8041.000 12.3187 + 8042.000 9.7617 + 8043.000 -18.8565 + 8044.000 4.6084 + 8045.000 8.5635 + 8046.000 -18.4330 + 8047.000 4.7085 + 8048.000 5.5332 + 8049.000 -20.6294 + 8050.000 5.8625 + 8051.000 2.8765 + 8052.000 -32.1923 + 8053.000 11.5786 + 8054.000 11.9352 + 8055.000 -17.9106 + 8056.000 3.4954 + 8057.000 7.6083 + 8058.000 -46.6465 + 8059.000 15.0935 + 8060.000 18.4191 + 8061.000 -24.3624 + 8062.000 5.6737 + 8063.000 9.2058 + 8064.000 -22.2345 + 8065.000 10.2782 + 8066.000 7.3605 + 8067.000 -30.8219 + 8068.000 8.3547 + 8069.000 12.7751 + 8070.000 -43.0412 + 8071.000 15.5499 + 8072.000 19.3606 + 8073.000 -36.5914 + 8074.000 12.5391 + 8075.000 14.7308 + 8076.000 -28.8124 + 8077.000 12.5322 + 8078.000 10.0069 + 8079.000 -17.5438 + 8080.000 2.6694 + 8081.000 4.4458 + 8082.000 -21.7604 + 8083.000 5.3996 + 8084.000 7.6943 + 8085.000 -11.9708 + 8086.000 -0.0245 + 8087.000 2.2777 + 8088.000 -13.6720 + 8089.000 1.0006 + 8090.000 1.4070 + 8091.000 0.8775 + 8092.000 -5.2334 + 8093.000 -2.8730 + 8094.000 -9.2245 + 8095.000 3.1497 + 8096.000 -0.3815 + 8097.000 -31.6386 + 8098.000 9.7492 + 8099.000 9.2568 + 8100.000 -10.9782 + 8101.000 0.1878 + 8102.000 2.6921 + 8103.000 -23.8142 + 8104.000 12.1585 + 8105.000 4.1320 + 8106.000 -23.0152 + 8107.000 6.3977 + 8108.000 3.2596 + 8109.000 -44.1258 + 8110.000 15.7292 + 8111.000 16.3882 + 8112.000 -24.1267 + 8113.000 9.7830 + 8114.000 9.0431 + 8115.000 -37.5427 + 8116.000 11.6380 + 8117.000 15.0289 + 8118.000 -31.0467 + 8119.000 10.5402 + 8120.000 10.0179 + 8121.000 -45.7056 + 8122.000 17.5105 + 8123.000 16.9575 + 8124.000 -47.5880 + 8125.000 20.1050 + 8126.000 21.5121 + 8127.000 -41.8811 + 8128.000 18.3518 + 8129.000 16.8731 + 8130.000 -46.9919 + 8131.000 20.0164 + 8132.000 18.7027 + 8133.000 -40.4323 + 8134.000 18.9554 + 8135.000 16.6821 + 8136.000 -51.5343 + 8137.000 20.6179 + 8138.000 21.1017 + 8139.000 -28.8334 + 8140.000 10.6014 + 8141.000 10.9016 + 8142.000 -15.3118 + 8143.000 6.4031 + 8144.000 7.8953 + 8145.000 -35.5678 + 8146.000 14.7718 + 8147.000 17.1013 + 8148.000 -42.5849 + 8149.000 17.1914 + 8150.000 15.5963 + 8151.000 -32.9206 + 8152.000 13.6428 + 8153.000 11.6054 + 8154.000 -29.9342 + 8155.000 11.5865 + 8156.000 11.5101 + 8157.000 -43.3928 + 8158.000 18.6992 + 8159.000 16.5240 + 8160.000 -41.9628 + 8161.000 18.3644 + 8162.000 17.1548 + 8163.000 -33.1506 + 8164.000 11.5335 + 8165.000 12.6555 + 8166.000 26.2750 + 8167.000 -16.8495 + 8168.000 -15.7192 + 8169.000 12.5316 + 8170.000 -9.7631 + 8171.000 -12.9230 + 8172.000 15.8691 + 8173.000 -12.8425 + 8174.000 -11.9723 + 8175.000 10.0727 + 8176.000 -9.4690 + 8177.000 -9.6876 + 8178.000 14.9455 + 8179.000 -11.5955 + 8180.000 -12.7107 + 8181.000 13.0411 + 8182.000 -11.9343 + 8183.000 -11.1877 + 8184.000 8.0718 + 8185.000 -8.2917 + 8186.000 -8.7043 + 8187.000 25.8308 + 8188.000 -15.6367 + 8189.000 -16.6209 + 8190.000 24.6714 + 8191.000 -17.5110 + 8192.000 -15.8479 + 8193.000 2.6791 + 8194.000 -0.9153 + 8195.000 -7.6946 + 8196.000 18.3258 + 8197.000 -12.4573 + 8198.000 -14.1688 + 8199.000 9.9017 + 8200.000 -7.9610 + 8201.000 -11.9898 + 8202.000 0.3367 + 8203.000 -4.6443 + 8204.000 -1.3273 + 8205.000 4.5160 + 8206.000 -8.2340 + 8207.000 -6.0293 + 8208.000 39.2854 + 8209.000 -22.5504 + 8210.000 -20.7294 + 8211.000 3.7044 + 8212.000 -7.3903 + 8213.000 -4.7965 + 8214.000 24.4486 + 8215.000 -15.4010 + 8216.000 -17.9918 + 8217.000 23.3045 + 8218.000 -17.0123 + 8219.000 -12.4991 + 8220.000 26.6197 + 8221.000 -15.6136 + 8222.000 -17.5172 + 8223.000 15.4810 + 8224.000 -12.5233 + 8225.000 -11.8443 + 8226.000 17.0575 + 8227.000 -10.8220 + 8228.000 -12.8622 + 8229.000 8.2219 + 8230.000 -6.9308 + 8231.000 -9.2757 + 8232.000 -3.1076 + 8233.000 -2.8263 + 8234.000 -0.9797 + 8235.000 27.2402 + 8236.000 -18.8552 + 8237.000 -17.5584 + 8238.000 18.3043 + 8239.000 -13.1932 + 8240.000 -11.8720 + 8241.000 -19.9346 + 8242.000 2.6926 + 8243.000 7.0066 + 8244.000 16.9490 + 8245.000 -12.1270 + 8246.000 -13.4465 + 8247.000 -15.3645 + 8248.000 4.1209 + 8249.000 -0.0183 + 8250.000 -12.0324 + 8251.000 -1.8143 + 8252.000 5.4879 + 8253.000 -6.7846 + 8254.000 0.5838 + 8255.000 -3.9431 + 8256.000 21.2224 + 8257.000 -17.1543 + 8258.000 -18.1943 + 8259.000 29.5060 + 8260.000 -14.7722 + 8261.000 -21.7943 + 8262.000 16.9703 + 8263.000 -14.1064 + 8264.000 -15.3733 + 8265.000 -32.9791 + 8266.000 4.2593 + 8267.000 10.4145 + 8268.000 -6.6898 + 8269.000 -0.5704 + 8270.000 -2.5510 + 8271.000 0.5129 + 8272.000 -2.2395 + 8273.000 -8.4707 + 8274.000 -12.2324 + 8275.000 1.3341 + 8276.000 0.9351 + 8277.000 4.5536 + 8278.000 -5.7603 + 8279.000 -6.6316 + 8280.000 8.8461 + 8281.000 -9.6494 + 8282.000 -8.3773 + 8283.000 31.6776 + 8284.000 -21.5327 + 8285.000 -21.8077 + 8286.000 -0.8408 + 8287.000 -3.2689 + 8288.000 -0.1793 + 8289.000 21.8573 + 8290.000 -17.9205 + 8291.000 -14.0843 + 8292.000 -21.8017 + 8293.000 4.2851 + 8294.000 6.6000 + 8295.000 19.6108 + 8296.000 -9.0042 + 8297.000 -14.9475 + 8298.000 10.5713 + 8299.000 -9.3169 + 8300.000 -9.8865 + 8301.000 22.6121 + 8302.000 -15.8159 + 8303.000 -15.7496 + 8304.000 11.9332 + 8305.000 -9.6944 + 8306.000 -8.9888 + 8307.000 12.6199 + 8308.000 -7.4037 + 8309.000 -12.5936 + 8310.000 -16.0577 + 8311.000 3.8448 + 8312.000 0.3170 + 8313.000 8.1555 + 8314.000 -10.3850 + 8315.000 -6.0273 + 8316.000 13.6930 + 8317.000 -5.9773 + 8318.000 -8.6511 + 8319.000 13.1916 + 8320.000 -12.8685 + 8321.000 -12.0459 + 8322.000 -10.4085 + 8323.000 -2.8401 + 8324.000 2.8513 + 8325.000 28.5617 + 8326.000 -20.8257 + 8327.000 -17.6789 + 8328.000 17.7626 + 8329.000 -11.0427 + 8330.000 -13.0581 + 8331.000 -9.8874 + 8332.000 0.8670 + 8333.000 0.4908 + 8334.000 22.2776 + 8335.000 -14.8036 + 8336.000 -14.4667 + 8337.000 -10.4842 + 8338.000 -2.1024 + 8339.000 1.8853 + 8340.000 15.5395 + 8341.000 -11.8548 + 8342.000 -11.6184 + 8343.000 16.6191 + 8344.000 -13.5801 + 8345.000 -8.1009 + 8346.000 19.3758 + 8347.000 -14.2678 + 8348.000 -13.8490 + 8349.000 -1.0609 + 8350.000 -3.9160 + 8351.000 -5.5084 + 8352.000 0.8330 + 8353.000 -8.1892 + 8354.000 -1.6751 + 8355.000 32.8737 + 8356.000 -21.9887 + 8357.000 -20.0749 + 8358.000 -9.0831 + 8359.000 3.2789 + 8360.000 -3.2306 + 8361.000 26.3107 + 8362.000 -18.5323 + 8363.000 -19.4363 + 8364.000 -20.1574 + 8365.000 4.4737 + 8366.000 6.3346 + 8367.000 9.7144 + 8368.000 -9.3337 + 8369.000 -5.8060 + 8370.000 3.5375 + 8371.000 -6.3996 + 8372.000 -6.3658 + 8373.000 7.9240 + 8374.000 -10.9582 + 8375.000 -8.7378 + 8376.000 5.1521 + 8377.000 -7.2142 + 8378.000 -4.8109 + 8379.000 16.4797 + 8380.000 -9.0682 + 8381.000 -12.4677 + 8382.000 3.6338 + 8383.000 -5.8153 + 8384.000 -6.6234 + 8385.000 14.6921 + 8386.000 -13.5356 + 8387.000 -11.4097 + 8388.000 -6.2428 + 8389.000 -3.1096 + 8390.000 1.8975 + 8391.000 18.3764 + 8392.000 -12.4659 + 8393.000 -18.4427 + 8394.000 3.0221 + 8395.000 -7.0249 + 8396.000 -3.7985 + 8397.000 -8.9973 + 8398.000 1.9023 + 8399.000 -0.0306 + 8400.000 -11.7495 + 8401.000 0.7944 + 8402.000 1.9823 + 8403.000 44.4873 + 8404.000 -23.6785 + 8405.000 -21.9704 + 8406.000 12.2490 + 8407.000 -13.5842 + 8408.000 -8.5373 + 8409.000 -12.0433 + 8410.000 6.0196 + 8411.000 0.7798 + 8412.000 21.6884 + 8413.000 -16.6687 + 8414.000 -18.5038 + 8415.000 -15.1743 + 8416.000 3.9756 + 8417.000 3.7830 + 8418.000 32.4618 + 8419.000 -22.2332 + 8420.000 -18.5029 + 8421.000 19.7507 + 8422.000 -11.5891 + 8423.000 -15.8981 + 8424.000 -11.9229 + 8425.000 3.5293 + 8426.000 1.7273 + 8427.000 -22.9074 + 8428.000 8.9126 + 8429.000 6.3635 + 8430.000 -4.6378 + 8431.000 -5.3919 + 8432.000 3.2832 + 8433.000 -5.7933 + 8434.000 0.2013 + 8435.000 -0.0269 + 8436.000 -10.5511 + 8437.000 1.7079 + 8438.000 -0.8700 + 8439.000 0.6630 + 8440.000 -6.1931 + 8441.000 -4.4869 + 8442.000 -16.6122 + 8443.000 7.2714 + 8444.000 -1.0230 + 8445.000 -13.9611 + 8446.000 2.5110 + 8447.000 6.0912 + 8448.000 -20.7712 + 8449.000 5.6215 + 8450.000 7.2820 + 8451.000 10.2515 + 8452.000 -11.1828 + 8453.000 -11.1542 + 8454.000 -13.3273 + 8455.000 3.3768 + 8456.000 3.9032 + 8457.000 18.5814 + 8458.000 -13.7491 + 8459.000 -12.8236 + 8460.000 10.3621 + 8461.000 -6.4331 + 8462.000 -11.6263 + 8463.000 -1.7794 + 8464.000 -3.4847 + 8465.000 -3.9240 + 8466.000 44.3262 + 8467.000 -26.7767 + 8468.000 -27.5156 + 8469.000 20.2046 + 8470.000 -15.8653 + 8471.000 -15.6144 + 8472.000 1.6681 + 8473.000 -3.9299 + 8474.000 -9.7178 + 8475.000 27.4056 + 8476.000 -20.2834 + 8477.000 -17.3339 + 8478.000 15.3532 + 8479.000 -12.4121 + 8480.000 -12.3648 + 8481.000 -5.3274 + 8482.000 -2.5381 + 8483.000 -2.1061 + 8484.000 -23.9265 + 8485.000 10.8943 + 8486.000 3.3832 + 8487.000 29.5130 + 8488.000 -17.6780 + 8489.000 -14.6024 + 8490.000 -6.9474 + 8491.000 1.5160 + 8492.000 -2.8652 + 8493.000 17.1961 + 8494.000 -11.7036 + 8495.000 -11.7652 + 8496.000 5.9640 + 8497.000 -8.7269 + 8498.000 -8.6165 + 8499.000 29.1722 + 8500.000 -21.8198 + 8501.000 -16.7132 + 8502.000 -1.7584 + 8503.000 -3.9291 + 8504.000 -3.3494 + 8505.000 -15.9752 + 8506.000 3.7035 + 8507.000 1.5115 + 8508.000 -19.2052 + 8509.000 2.9959 + 8510.000 6.0127 + 8511.000 2.1164 + 8512.000 -5.1816 + 8513.000 -5.5037 + 8514.000 -0.3366 + 8515.000 -5.7569 + 8516.000 -0.9077 + 8517.000 -7.3219 + 8518.000 -1.7347 + 8519.000 -1.1933 + 8520.000 10.6356 + 8521.000 -10.4400 + 8522.000 -9.2397 + 8523.000 6.1159 + 8524.000 -5.3698 + 8525.000 -4.3779 + 8526.000 -0.1743 + 8527.000 -5.7084 + 8528.000 -5.4873 + 8529.000 0.4218 + 8530.000 -4.8735 + 8531.000 -5.0102 + 8532.000 7.4355 + 8533.000 -8.5590 + 8534.000 -9.4506 + 8535.000 7.5316 + 8536.000 -8.1190 + 8537.000 -7.9223 + 8538.000 6.0026 + 8539.000 -4.7100 + 8540.000 -7.6609 + 8541.000 7.0073 + 8542.000 -8.1782 + 8543.000 -8.1290 + 8544.000 6.2973 + 8545.000 -7.1868 + 8546.000 -7.1478 + 8547.000 -9.1209 + 8548.000 2.5874 + 8549.000 0.3535 + 8550.000 -25.5638 + 8551.000 9.4889 + 8552.000 8.9164 + 8553.000 46.8555 + 8554.000 -28.5972 + 8555.000 -22.5851 + 8556.000 -21.6844 + 8557.000 9.8272 + 8558.000 7.8949 + 8559.000 -26.9679 + 8560.000 8.5338 + 8561.000 10.0459 + 8562.000 -14.0106 + 8563.000 0.3321 + 8564.000 3.4481 + 8565.000 0.2728 + 8566.000 -5.0645 + 8567.000 0.9719 + 8568.000 -5.5617 + 8569.000 -2.3908 + 8570.000 -4.2202 + 8571.000 -22.3123 + 8572.000 4.3519 + 8573.000 4.4321 + 8574.000 -36.9504 + 8575.000 15.6917 + 8576.000 13.4403 + 8577.000 -11.0288 + 8578.000 0.2977 + 8579.000 -1.2334 + 8580.000 9.2206 + 8581.000 -11.0691 + 8582.000 -6.5807 + 8583.000 1.7053 + 8584.000 -7.0694 + 8585.000 -6.7178 + 8586.000 17.6306 + 8587.000 -12.2324 + 8588.000 -12.8765 + 8589.000 -34.8409 + 8590.000 11.8847 + 8591.000 14.1817 + 8592.000 -5.0313 + 8593.000 2.3079 + 8594.000 -1.2713 + 8595.000 22.7387 + 8596.000 -14.5906 + 8597.000 -13.8452 + 8598.000 5.9878 + 8599.000 -4.0589 + 8600.000 -7.0421 + 8601.000 -2.7125 + 8602.000 -2.2998 + 8603.000 0.7514 + 8604.000 -20.1806 + 8605.000 6.8095 + 8606.000 8.2733 + 8607.000 -41.7043 + 8608.000 18.4412 + 8609.000 10.3243 + 8610.000 -0.0290 + 8611.000 -3.1695 + 8612.000 -5.7111 + 8613.000 -20.4121 + 8614.000 3.7767 + 8615.000 8.1427 + 8616.000 -12.0707 + 8617.000 -0.1694 + 8618.000 7.7883 + 8619.000 -53.2448 + 8620.000 31.0344 + 8621.000 9.4836 + 8622.000 27.5442 + 8623.000 -18.4569 + 8624.000 -18.3726 + 8625.000 -3.3728 + 8626.000 -0.8231 + 8627.000 -4.6406 + 8628.000 -15.5892 + 8629.000 4.9269 + 8630.000 3.3653 + 8631.000 -2.3629 + 8632.000 -0.9508 + 8633.000 -1.4884 + 8634.000 -74.8441 + 8635.000 24.9665 + 8636.000 60.5380 + 8637.000 -30.5194 + 8638.000 12.5238 + 8639.000 10.2059 + 8640.000 -11.4265 + 8641.000 1.6581 + 8642.000 2.4010 + 8643.000 -10.2363 + 8644.000 -0.7789 + 8645.000 0.0775 + 8646.000 35.8585 + 8647.000 -24.7981 + 8648.000 -22.9287 + 8649.000 22.9180 + 8650.000 -16.5870 + 8651.000 -15.7952 + 8652.000 -13.5699 + 8653.000 -0.5286 + 8654.000 0.5930 + 8655.000 -30.9488 + 8656.000 9.0147 + 8657.000 11.2297 + 8658.000 -51.8423 + 8659.000 21.9095 + 8660.000 26.6363 + 8661.000 -31.9911 + 8662.000 10.7528 + 8663.000 7.3432 + 8664.000 30.9156 + 8665.000 -23.7401 + 8666.000 -17.6142 + 8667.000 9.3569 + 8668.000 -9.5999 + 8669.000 -10.1359 + 8670.000 31.2488 + 8671.000 -17.5122 + 8672.000 -21.0051 + 8673.000 18.7494 + 8674.000 -14.2277 + 8675.000 -16.0855 + 8676.000 -14.0145 + 8677.000 2.4015 + 8678.000 2.5244 + 8679.000 11.5582 + 8680.000 -10.3894 + 8681.000 -9.1066 + 8682.000 -5.4450 + 8683.000 -0.3636 + 8684.000 -0.5335 + 8685.000 19.3823 + 8686.000 -13.4902 + 8687.000 -10.0002 + 8688.000 4.6435 + 8689.000 -6.5048 + 8690.000 -7.3351 + 8691.000 6.7974 + 8692.000 -10.2400 + 8693.000 -9.1636 + 8694.000 16.6301 + 8695.000 -7.5904 + 8696.000 -13.5789 + 8697.000 6.1649 + 8698.000 -5.8865 + 8699.000 -7.7091 + 8700.000 -7.8110 + 8701.000 -1.6552 + 8702.000 0.2913 + 8703.000 18.7892 + 8704.000 -14.6695 + 8705.000 -13.4020 + 8706.000 -21.7681 + 8707.000 8.9583 + 8708.000 6.4091 + 8709.000 25.1347 + 8710.000 -16.6596 + 8711.000 -19.6917 + 8712.000 2.6709 + 8713.000 -9.9863 + 8714.000 -3.0367 + 8715.000 19.6101 + 8716.000 -8.6479 + 8717.000 -11.7844 + 8718.000 -6.4981 + 8719.000 -3.5382 + 8720.000 -0.3419 + 8721.000 5.6133 + 8722.000 -10.9070 + 8723.000 -6.1466 + 8724.000 -24.2418 + 8725.000 8.3594 + 8726.000 5.0125 + 8727.000 -37.3788 + 8728.000 17.5193 + 8729.000 10.9531 + 8730.000 -1.3473 + 8731.000 -3.8490 + 8732.000 -4.7636 + 8733.000 -51.2571 + 8734.000 25.7901 + 8735.000 24.3412 + 8736.000 27.9657 + 8737.000 -17.1808 + 8738.000 -15.5891 + 8739.000 -18.7398 + 8740.000 8.1524 + 8741.000 3.9976 + 8742.000 -24.6427 + 8743.000 8.0943 + 8744.000 11.5499 + 8745.000 -14.3301 + 8746.000 4.0348 + 8747.000 0.5774 + 8748.000 -19.8100 + 8749.000 2.3775 + 8750.000 3.0952 + 8751.000 -15.2119 + 8752.000 -2.1886 + 8753.000 7.6849 + 8754.000 -87.5558 + 8755.000 69.6171 + 8756.000 32.5862 + 8757.000 -0.6452 + 8758.000 -3.1920 + 8759.000 -6.9148 + 8760.000 -3.7517 + 8761.000 -5.3001 + 8762.000 -0.9190 + 8763.000 -29.1930 + 8764.000 9.2494 + 8765.000 12.4312 + 8766.000 20.4024 + 8767.000 -16.9997 + 8768.000 -14.5943 + 8769.000 -11.6101 + 8770.000 1.5743 + 8771.000 0.2565 + 8772.000 -45.0405 + 8773.000 17.1475 + 8774.000 18.3029 + 8775.000 -5.6416 + 8776.000 1.3792 + 8777.000 -3.1351 + 8778.000 11.4889 + 8779.000 -11.1513 + 8780.000 -11.8455 + 8781.000 5.5877 + 8782.000 -6.8898 + 8783.000 -7.6254 + 8784.000 -56.0374 + 8785.000 20.4100 + 8786.000 26.4441 + 8787.000 39.2643 + 8788.000 -22.2313 + 8789.000 -26.7618 + 8790.000 -11.7806 + 8791.000 0.6931 + 8792.000 -0.8354 + 8793.000 -29.2259 + 8794.000 8.8932 + 8795.000 11.0029 + 8796.000 19.3702 + 8797.000 -9.2421 + 8798.000 -15.4635 + 8799.000 7.5645 + 8800.000 -10.3958 + 8801.000 -9.4784 + 8802.000 -21.9257 + 8803.000 12.6701 + 8804.000 6.8473 + 8805.000 -29.3300 + 8806.000 7.4242 + 8807.000 11.3159 + 8808.000 2.7213 + 8809.000 -0.2832 + 8810.000 -4.9388 + 8811.000 -52.5580 + 8812.000 17.1114 + 8813.000 25.6422 + 8814.000 21.4775 + 8815.000 -13.9462 + 8816.000 -10.9278 + 8817.000 -3.2898 + 8818.000 -4.4505 + 8819.000 -0.7333 + 8820.000 -27.5410 + 8821.000 12.3835 + 8822.000 11.2072 + 8823.000 13.7698 + 8824.000 -12.6496 + 8825.000 -9.6655 + 8826.000 19.3825 + 8827.000 -13.9034 + 8828.000 -13.2319 + 8829.000 7.7420 + 8830.000 -9.9636 + 8831.000 -3.6604 + 8832.000 -3.9226 + 8833.000 0.5818 + 8834.000 0.0798 + 8835.000 6.0525 + 8836.000 -8.8920 + 8837.000 -9.0335 + 8838.000 13.6714 + 8839.000 -9.7433 + 8840.000 -13.2182 + 8841.000 -31.8502 + 8842.000 18.1111 + 8843.000 9.1755 + 8844.000 6.1648 + 8845.000 -9.0856 + 8846.000 -3.9607 + 8847.000 10.2665 + 8848.000 -8.9816 + 8849.000 -10.2785 + 8850.000 -11.6294 + 8851.000 -1.8692 + 8852.000 -0.7823 + 8853.000 -26.9002 + 8854.000 9.6662 + 8855.000 11.7144 + 8856.000 -7.2616 + 8857.000 -0.9482 + 8858.000 -1.0508 + 8859.000 -33.4414 + 8860.000 16.1733 + 8861.000 10.7757 + 8862.000 19.8519 + 8863.000 -10.6624 + 8864.000 -16.6130 + 8865.000 -38.3156 + 8866.000 20.9730 + 8867.000 10.1111 + 8868.000 14.5163 + 8869.000 -9.1682 + 8870.000 -13.7191 + 8871.000 -64.2009 + 8872.000 23.9736 + 8873.000 37.7847 + 8874.000 -18.2891 + 8875.000 5.5457 + 8876.000 2.1707 + 8877.000 42.7610 + 8878.000 -22.8192 + 8879.000 -25.6156 + 8880.000 20.9094 + 8881.000 -13.5368 + 8882.000 -18.3644 + 8883.000 43.2727 + 8884.000 -22.9008 + 8885.000 -20.8584 + 8886.000 -1.3973 + 8887.000 -5.6009 + 8888.000 -0.8823 + 8889.000 33.6980 + 8890.000 -23.4112 + 8891.000 -20.7656 + 8892.000 -8.8528 + 8893.000 -0.6736 + 8894.000 -3.1592 + 8895.000 0.4938 + 8896.000 -3.7780 + 8897.000 -6.0141 + 8898.000 -18.8623 + 8899.000 6.2355 + 8900.000 4.9543 + 8901.000 -24.8364 + 8902.000 11.6818 + 8903.000 8.3324 + 8904.000 8.4080 + 8905.000 -9.3816 + 8906.000 -11.3808 + 8907.000 10.1869 + 8908.000 -11.8677 + 8909.000 -10.1449 + 8910.000 10.2768 + 8911.000 -5.8481 + 8912.000 -10.9997 + 8913.000 19.7591 + 8914.000 -14.2485 + 8915.000 -12.1338 + 8916.000 23.0593 + 8917.000 -15.1461 + 8918.000 -20.6859 + 8919.000 -7.6598 + 8920.000 0.5263 + 8921.000 0.5628 + 8922.000 -40.8430 + 8923.000 15.8025 + 8924.000 22.7459 + 8925.000 -51.2817 + 8926.000 18.9980 + 8927.000 13.4728 + 8928.000 11.0045 + 8929.000 -9.8512 + 8930.000 -10.1462 + 8931.000 21.3458 + 8932.000 -13.9605 + 8933.000 -15.5487 + 8934.000 17.6913 + 8935.000 -12.7315 + 8936.000 -16.8421 + 8937.000 -5.6583 + 8938.000 1.2878 + 8939.000 -3.1282 + 8940.000 9.6621 + 8941.000 -10.9665 + 8942.000 -8.0609 + 8943.000 -6.7825 + 8944.000 -0.9351 + 8945.000 -1.1156 + 8946.000 -21.8518 + 8947.000 8.2307 + 8948.000 7.4864 + 8949.000 -9.4177 + 8950.000 0.0286 + 8951.000 2.6926 + 8952.000 2.7690 + 8953.000 -1.4443 + 8954.000 -4.0771 + 8955.000 9.8711 + 8956.000 -10.6173 + 8957.000 -9.4079 + 8958.000 22.6009 + 8959.000 -18.8601 + 8960.000 -17.0351 + 8961.000 -29.0095 + 8962.000 10.0740 + 8963.000 12.2044 + 8964.000 -25.8798 + 8965.000 13.5624 + 8966.000 10.1469 + 8967.000 -21.0646 + 8968.000 6.4627 + 8969.000 6.1887 + 8970.000 -34.5444 + 8971.000 11.0056 + 8972.000 17.4238 + 8973.000 -1.7075 + 8974.000 -1.1772 + 8975.000 -0.8239 + 8976.000 -29.5357 + 8977.000 9.9483 + 8978.000 10.6146 + 8979.000 -26.7709 + 8980.000 13.1424 + 8981.000 7.9937 + 8982.000 -28.4922 + 8983.000 10.9879 + 8984.000 11.0161 + 8985.000 -31.2897 + 8986.000 11.7643 + 8987.000 10.6006 + 8988.000 -26.9883 + 8989.000 9.8051 + 8990.000 13.4401 + 8991.000 -34.9946 + 8992.000 12.0396 + 8993.000 14.3599 + 8994.000 -36.4088 + 8995.000 13.4150 + 8996.000 14.2413 + 8997.000 -33.2486 + 8998.000 13.5255 + 8999.000 11.2275 + 9000.000 -28.2454 + 9001.000 7.9344 + 9002.000 7.6263 + 9003.000 -24.4273 + 9004.000 10.2625 + 9005.000 7.5408 + 9006.000 -35.3923 + 9007.000 12.7072 + 9008.000 15.3044 + 9009.000 -37.0319 + 9010.000 11.9560 + 9011.000 15.9792 + 9012.000 -31.5103 + 9013.000 11.0608 + 9014.000 10.1042 + 9015.000 -40.2314 + 9016.000 13.0838 + 9017.000 17.8736 + 9018.000 -33.8309 + 9019.000 13.3184 + 9020.000 8.5043 + 9021.000 -28.8742 + 9022.000 7.7823 + 9023.000 10.6850 + 9024.000 -28.5288 + 9025.000 8.7895 + 9026.000 8.0932 + 9027.000 -24.7468 + 9028.000 8.2813 + 9029.000 7.4840 + 9030.000 -31.6469 + 9031.000 9.8900 + 9032.000 12.0902 + 9033.000 -21.4908 + 9034.000 6.0892 + 9035.000 10.8399 + 9036.000 -16.6501 + 9037.000 3.9571 + 9038.000 9.1493 + 9039.000 -27.2200 + 9040.000 5.5141 + 9041.000 8.5646 + 9042.000 -26.2642 + 9043.000 11.6631 + 9044.000 7.8546 + 9045.000 -27.9964 + 9046.000 13.2961 + 9047.000 11.3032 + 9048.000 -23.7971 + 9049.000 7.5481 + 9050.000 7.2934 + 9051.000 -18.7172 + 9052.000 3.6163 + 9053.000 3.8069 + 9054.000 -24.6914 + 9055.000 5.7624 + 9056.000 9.9948 + 9057.000 -10.1456 + 9058.000 5.9222 + 9059.000 3.7889 + 9060.000 -42.6724 + 9061.000 18.2866 + 9062.000 18.2284 + 9063.000 -40.6380 + 9064.000 11.8011 + 9065.000 16.9947 + 9066.000 -39.3679 + 9067.000 16.1203 + 9068.000 14.1476 + 9069.000 -32.5129 + 9070.000 11.6467 + 9071.000 12.0726 + 9072.000 -33.8390 + 9073.000 11.8487 + 9074.000 11.9554 + 9075.000 -38.2904 + 9076.000 12.1044 + 9077.000 18.4679 + 9078.000 -42.0651 + 9079.000 19.0718 + 9080.000 12.8415 + 9081.000 -42.8089 + 9082.000 15.4378 + 9083.000 16.3051 + 9084.000 -25.7390 + 9085.000 6.2068 + 9086.000 6.9607 + 9087.000 -24.9608 + 9088.000 8.1594 + 9089.000 6.8660 + 9090.000 -24.7302 + 9091.000 8.5780 + 9092.000 8.5503 + 9093.000 -25.3634 + 9094.000 8.7305 + 9095.000 6.8590 + 9096.000 -47.4343 + 9097.000 18.3896 + 9098.000 20.6039 + 9099.000 -35.2025 + 9100.000 12.8591 + 9101.000 11.5873 + 9102.000 -34.2046 + 9103.000 16.5605 + 9104.000 12.8023 + 9105.000 -55.3566 + 9106.000 21.0599 + 9107.000 22.6307 + 9108.000 -45.8886 + 9109.000 21.7763 + 9110.000 18.7983 + 9111.000 -46.5039 + 9112.000 16.8603 + 9113.000 19.5561 + 9114.000 -25.7365 + 9115.000 6.5017 + 9116.000 12.2233 + 9117.000 -34.6911 + 9118.000 15.2753 + 9119.000 13.9574 + 9120.000 -38.5055 + 9121.000 14.1927 + 9122.000 14.3813 + 9123.000 -35.8274 + 9124.000 12.8258 + 9125.000 12.5964 + 9126.000 -37.8152 + 9127.000 17.6743 + 9128.000 10.8508 + 9129.000 -27.3867 + 9130.000 7.9279 + 9131.000 11.8906 + 9132.000 -34.2026 + 9133.000 11.5969 + 9134.000 11.8968 + 9135.000 -34.4306 + 9136.000 12.5028 + 9137.000 14.4161 + 9138.000 -31.6500 + 9139.000 12.1941 + 9140.000 11.3323 + 9141.000 -33.0852 + 9142.000 13.5347 + 9143.000 8.6034 + 9144.000 -23.7135 + 9145.000 10.2497 + 9146.000 6.5534 + 9147.000 -21.0650 + 9148.000 6.6842 + 9149.000 3.0373 + 9150.000 -37.3252 + 9151.000 17.2352 + 9152.000 15.8356 + 9153.000 -33.1214 + 9154.000 11.1873 + 9155.000 10.6800 + 9156.000 -21.7402 + 9157.000 7.0255 + 9158.000 7.9854 + 9159.000 -29.5888 + 9160.000 10.5592 + 9161.000 11.1592 + 9162.000 -24.1282 + 9163.000 6.7513 + 9164.000 5.6982 + 9165.000 -27.1658 + 9166.000 8.4416 + 9167.000 7.9185 + 9168.000 -33.6971 + 9169.000 12.9267 + 9170.000 11.7341 + 9171.000 -21.9546 + 9172.000 6.0221 + 9173.000 8.0309 + 9174.000 -24.3662 + 9175.000 7.3613 + 9176.000 5.1728 + 9177.000 -26.5312 + 9178.000 7.6454 + 9179.000 9.6633 + 9180.000 -22.4495 + 9181.000 9.7130 + 9182.000 11.0591 + 9183.000 -38.4646 + 9184.000 17.5116 + 9185.000 12.7623 + 9186.000 -28.5096 + 9187.000 9.2699 + 9188.000 9.5864 + 9189.000 -23.2283 + 9190.000 10.0859 + 9191.000 6.9249 + 9192.000 -38.2688 + 9193.000 16.4381 + 9194.000 14.5988 + 9195.000 -23.2542 + 9196.000 12.2330 + 9197.000 8.9423 + 9198.000 -20.3602 + 9199.000 3.2443 + 9200.000 6.9874 + 9201.000 -31.1888 + 9202.000 10.0836 + 9203.000 9.2409 + 9204.000 -49.0571 + 9205.000 21.2859 + 9206.000 19.3528 + 9207.000 -42.1164 + 9208.000 19.3079 + 9209.000 17.6625 + 9210.000 -33.4499 + 9211.000 10.1645 + 9212.000 13.0847 + 9213.000 -18.9504 + 9214.000 5.7490 + 9215.000 7.8856 + 9216.000 -26.8363 + 9217.000 10.2761 + 9218.000 11.3757 + 9219.000 -30.1941 + 9220.000 7.6823 + 9221.000 11.5173 + 9222.000 -18.6403 + 9223.000 7.5676 + 9224.000 8.2813 + 9225.000 -40.8506 + 9226.000 16.1097 + 9227.000 16.5766 + 9228.000 -37.9403 + 9229.000 14.3699 + 9230.000 11.7261 + 9231.000 -49.9308 + 9232.000 21.4209 + 9233.000 19.6408 + 9234.000 -35.5676 + 9235.000 15.7663 + 9236.000 16.8175 + 9237.000 -15.6756 + 9238.000 8.0704 + 9239.000 5.0892 + 9240.000 -37.0218 + 9241.000 16.9415 + 9242.000 14.4777 + 9243.000 -24.7865 + 9244.000 8.6840 + 9245.000 7.9466 + 9246.000 -30.3230 + 9247.000 8.9562 + 9248.000 7.6193 + 9249.000 -22.8771 + 9250.000 7.6557 + 9251.000 6.4577 + 9252.000 -30.6012 + 9253.000 11.4005 + 9254.000 7.9625 + 9255.000 -43.9870 + 9256.000 14.6555 + 9257.000 21.8838 + 9258.000 -25.7735 + 9259.000 11.5182 + 9260.000 7.1951 + 9261.000 -33.7495 + 9262.000 15.9801 + 9263.000 15.8137 + 9264.000 -23.9645 + 9265.000 8.7982 + 9266.000 6.5141 + 9267.000 -40.1166 + 9268.000 14.7273 + 9269.000 18.9175 + 9270.000 -36.2350 + 9271.000 11.5755 + 9272.000 11.0204 + 9273.000 -34.6384 + 9274.000 17.0393 + 9275.000 13.4779 + 9276.000 -24.6116 + 9277.000 7.0125 + 9278.000 10.8073 + 9279.000 -29.5506 + 9280.000 9.6863 + 9281.000 11.3551 + 9282.000 -27.3354 + 9283.000 9.5753 + 9284.000 5.9366 + 9285.000 -41.7533 + 9286.000 16.6893 + 9287.000 16.7998 + 9288.000 -19.6798 + 9289.000 3.6848 + 9290.000 8.7849 + 9291.000 -26.8912 + 9292.000 7.3254 + 9293.000 10.5932 + 9294.000 -37.2516 + 9295.000 12.7385 + 9296.000 16.7096 + 9297.000 -48.8222 + 9298.000 18.2709 + 9299.000 19.0750 + 9300.000 -40.0744 + 9301.000 17.4020 + 9302.000 17.5497 + 9303.000 -15.6331 + 9304.000 1.4261 + 9305.000 4.2827 + 9306.000 -29.9523 + 9307.000 8.9672 + 9308.000 11.1310 + 9309.000 -19.9829 + 9310.000 4.2848 + 9311.000 6.9420 + 9312.000 -24.0080 + 9313.000 5.6830 + 9314.000 7.2899 + 9315.000 -8.3247 + 9316.000 -0.3239 + 9317.000 1.9511 + 9318.000 -22.2100 + 9319.000 10.4445 + 9320.000 5.8569 + 9321.000 -19.9943 + 9322.000 9.9763 + 9323.000 3.4063 + 9324.000 -30.3505 + 9325.000 10.2416 + 9326.000 7.6392 + 9327.000 -51.9874 + 9328.000 20.5281 + 9329.000 22.2535 + 9330.000 -49.8917 + 9331.000 24.0097 + 9332.000 23.8396 + 9333.000 -32.8377 + 9334.000 11.0619 + 9335.000 14.6251 + 9336.000 -65.3287 + 9337.000 29.0557 + 9338.000 26.4404 + 9339.000 -56.6581 + 9340.000 29.1847 + 9341.000 25.1520 + 9342.000 -34.0969 + 9343.000 14.5482 + 9344.000 14.3522 + 9345.000 -13.4915 + 9346.000 6.0330 + 9347.000 6.4214 + 9348.000 -45.0789 + 9349.000 18.2669 + 9350.000 16.8262 + 9351.000 -6.3217 + 9352.000 -1.2682 + 9353.000 -1.3916 + 9354.000 -7.0348 + 9355.000 -0.2173 + 9356.000 -1.5234 + 9357.000 -3.6346 + 9358.000 -3.6747 + 9359.000 -1.8318 + 9360.000 4.2561 + 9361.000 -7.5401 + 9362.000 -6.2522 + 9363.000 1.6927 + 9364.000 -3.9587 + 9365.000 -6.1451 + 9366.000 5.6292 + 9367.000 -9.5796 + 9368.000 -6.1373 + 9369.000 -12.4615 + 9370.000 5.8836 + 9371.000 -0.5935 + 9372.000 -1.5239 + 9373.000 -2.8329 + 9374.000 -4.5272 + 9375.000 -4.7346 + 9376.000 -2.2981 + 9377.000 -2.6000 + 9378.000 2.0800 + 9379.000 -5.4209 + 9380.000 -3.9751 + 9381.000 -7.8667 + 9382.000 -2.2539 + 9383.000 0.0445 + 9384.000 2.7381 + 9385.000 -5.4332 + 9386.000 -7.6143 + 9387.000 -3.2123 + 9388.000 -2.0621 + 9389.000 -5.0862 + 9390.000 -5.3692 + 9391.000 -0.4869 + 9392.000 -2.7944 + 9393.000 -2.3142 + 9394.000 -1.4436 + 9395.000 -0.7072 + 9396.000 -3.2664 + 9397.000 -0.5612 + 9398.000 -3.4893 + 9399.000 -8.0437 + 9400.000 -0.9315 + 9401.000 1.7639 + 9402.000 3.2922 + 9403.000 -4.0920 + 9404.000 -6.0035 + 9405.000 5.9439 + 9406.000 -7.3993 + 9407.000 -6.0933 + 9408.000 -22.9754 + 9409.000 4.0546 + 9410.000 9.5299 + 9411.000 -24.9307 + 9412.000 10.4837 + 9413.000 4.5329 + 9414.000 -17.3320 + 9415.000 0.9760 + 9416.000 6.9563 + 9417.000 -8.6186 + 9418.000 1.4482 + 9419.000 -3.6579 + 9420.000 10.5936 + 9421.000 -11.0377 + 9422.000 -12.2365 + 9423.000 15.2860 + 9424.000 -10.3627 + 9425.000 -13.2759 + 9426.000 4.7111 + 9427.000 -6.0341 + 9428.000 -10.0253 + 9429.000 -33.2545 + 9430.000 16.0025 + 9431.000 9.9285 + 9432.000 5.8184 + 9433.000 -8.5354 + 9434.000 -3.1068 + 9435.000 -24.2644 + 9436.000 12.6869 + 9437.000 10.8558 + 9438.000 -5.6102 + 9439.000 2.2308 + 9440.000 1.8123 + 9441.000 7.9369 + 9442.000 -4.5870 + 9443.000 -9.3260 + 9444.000 -8.7052 + 9445.000 -0.2747 + 9446.000 2.5419 + 9447.000 -9.7130 + 9448.000 4.4469 + 9449.000 3.0766 + 9450.000 -7.4485 + 9451.000 -1.1169 + 9452.000 -0.3628 + 9453.000 -22.3891 + 9454.000 4.2008 + 9455.000 8.7592 + 9456.000 8.2676 + 9457.000 -7.2432 + 9458.000 -9.0155 + 9459.000 -17.0389 + 9460.000 5.3024 + 9461.000 3.8623 + 9462.000 6.3848 + 9463.000 -7.0882 + 9464.000 -5.5265 + 9465.000 -9.6032 + 9466.000 -0.8326 + 9467.000 0.2624 + 9468.000 14.2085 + 9469.000 -12.3218 + 9470.000 -13.2708 + 9471.000 -4.1952 + 9472.000 -0.0396 + 9473.000 -2.2747 + 9474.000 5.3854 + 9475.000 -7.8883 + 9476.000 -3.4504 + 9477.000 4.7789 + 9478.000 -6.9520 + 9479.000 -5.9230 + 9480.000 -7.1007 + 9481.000 -1.2565 + 9482.000 -1.5545 + 9483.000 -10.2173 + 9484.000 -2.2827 + 9485.000 3.3977 + 9486.000 13.9646 + 9487.000 -11.2878 + 9488.000 -13.4178 + 9489.000 -15.7343 + 9490.000 6.0430 + 9491.000 0.1828 + 9492.000 1.4083 + 9493.000 -4.6903 + 9494.000 -6.2167 + 9495.000 -25.3647 + 9496.000 7.6420 + 9497.000 8.2330 + 9498.000 8.8718 + 9499.000 -10.4414 + 9500.000 -5.1649 + 9501.000 4.2233 + 9502.000 -7.7212 + 9503.000 -4.4207 + 9504.000 -23.0381 + 9505.000 6.0705 + 9506.000 10.5394 + 9507.000 -7.0297 + 9508.000 -3.0009 + 9509.000 2.0763 + 9510.000 -4.1251 + 9511.000 -3.3030 + 9512.000 -4.1306 + 9513.000 -2.2113 + 9514.000 -3.6846 + 9515.000 -6.3654 + 9516.000 11.7377 + 9517.000 -12.3813 + 9518.000 -8.6543 + 9519.000 -15.9540 + 9520.000 5.5039 + 9521.000 4.0462 + 9522.000 -13.8437 + 9523.000 2.2360 + 9524.000 2.2959 + 9525.000 16.8791 + 9526.000 -13.3188 + 9527.000 -12.2228 + 9528.000 8.0331 + 9529.000 -10.3429 + 9530.000 -6.4527 + 9531.000 -24.4525 + 9532.000 11.6918 + 9533.000 7.6785 + 9534.000 9.7005 + 9535.000 -11.0197 + 9536.000 -10.6680 + 9537.000 -20.4888 + 9538.000 6.3503 + 9539.000 6.8467 + 9540.000 23.0571 + 9541.000 -16.6539 + 9542.000 -14.1041 + 9543.000 9.2419 + 9544.000 -5.5821 + 9545.000 -10.2762 + 9546.000 -20.4623 + 9547.000 7.1797 + 9548.000 6.6967 + 9549.000 -34.2724 + 9550.000 14.7205 + 9551.000 11.4585 + 9552.000 -20.6562 + 9553.000 6.7271 + 9554.000 7.4097 + 9555.000 -28.5339 + 9556.000 11.6616 + 9557.000 7.0392 + 9558.000 -9.6638 + 9559.000 0.2400 + 9560.000 0.6959 + 9561.000 -18.0691 + 9562.000 7.3853 + 9563.000 0.3906 + 9564.000 -11.7123 + 9565.000 1.3847 + 9566.000 3.4362 + 9567.000 12.5276 + 9568.000 -7.1763 + 9569.000 -12.4793 + 9570.000 -6.5404 + 9571.000 -1.0743 + 9572.000 -1.1134 + 9573.000 17.7461 + 9574.000 -13.1805 + 9575.000 -16.2951 + 9576.000 1.2118 + 9577.000 -7.7726 + 9578.000 -5.2371 + 9579.000 5.0788 + 9580.000 -6.8970 + 9581.000 -6.5886 + 9582.000 -5.3298 + 9583.000 -0.2249 + 9584.000 -5.7527 + 9585.000 12.5889 + 9586.000 -11.8647 + 9587.000 -9.2684 + 9588.000 -8.4825 + 9589.000 1.2972 + 9590.000 -0.1398 + 9591.000 -4.4674 + 9592.000 -0.3533 + 9593.000 -3.4553 + 9594.000 -4.4512 + 9595.000 1.1648 + 9596.000 -1.8150 + 9597.000 -2.5610 + 9598.000 1.9064 + 9599.000 -4.1759 + 9600.000 9.1252 + 9601.000 -8.9285 + 9602.000 -6.2775 + 9603.000 -7.4604 + 9604.000 -1.1943 + 9605.000 -0.6895 + 9606.000 5.8417 + 9607.000 -6.1394 + 9608.000 -4.4453 + 9609.000 2.9988 + 9610.000 -7.4920 + 9611.000 -4.7201 + 9612.000 1.8696 + 9613.000 -2.5644 + 9614.000 -2.7805 + 9615.000 -3.0074 + 9616.000 -3.7736 + 9617.000 -3.4852 + 9618.000 -21.5570 + 9619.000 7.9264 + 9620.000 5.9824 + 9621.000 9.3632 + 9622.000 -8.9127 + 9623.000 -9.1805 + 9624.000 -18.0131 + 9625.000 3.0197 + 9626.000 5.6647 + 9627.000 -8.1381 + 9628.000 0.4711 + 9629.000 0.4225 + 9630.000 -2.8563 + 9631.000 -2.3935 + 9632.000 -3.3294 + 9633.000 1.9621 + 9634.000 -6.6030 + 9635.000 -6.1046 + 9636.000 4.2357 + 9637.000 -6.1945 + 9638.000 -5.9135 + 9639.000 6.5168 + 9640.000 -5.9943 + 9641.000 -9.7172 + 9642.000 -1.4405 + 9643.000 -5.1981 + 9644.000 -3.3629 + 9645.000 -2.8382 + 9646.000 0.2017 + 9647.000 -4.4260 + 9648.000 19.6626 + 9649.000 -13.2099 + 9650.000 -14.3228 + 9651.000 9.1427 + 9652.000 -7.5249 + 9653.000 -8.9750 + 9654.000 -2.0985 + 9655.000 -3.3020 + 9656.000 -3.5904 + 9657.000 6.6323 + 9658.000 -8.2594 + 9659.000 -8.6414 + 9660.000 -6.5547 + 9661.000 -1.0138 + 9662.000 -3.0331 + 9663.000 14.4862 + 9664.000 -9.6459 + 9665.000 -13.7025 + 9666.000 -11.6917 + 9667.000 3.8627 + 9668.000 -0.5461 + 9669.000 -5.1046 + 9670.000 0.7963 + 9671.000 -0.3712 + 9672.000 0.9083 + 9673.000 -1.6278 + 9674.000 -5.6324 + 9675.000 18.7021 + 9676.000 -14.0200 + 9677.000 -10.7421 + 9678.000 -12.0862 + 9679.000 3.9338 + 9680.000 1.5933 + 9681.000 1.9311 + 9682.000 -4.7616 + 9683.000 -5.5277 + 9684.000 -0.1466 + 9685.000 -6.4688 + 9686.000 -1.6739 + 9687.000 22.3611 + 9688.000 -14.9840 + 9689.000 -18.4943 + 9690.000 18.5770 + 9691.000 -15.4974 + 9692.000 -11.5407 + 9693.000 14.0831 + 9694.000 -11.5143 + 9695.000 -14.6496 + 9696.000 -2.5387 + 9697.000 -6.2893 + 9698.000 -4.9366 + 9699.000 -1.4111 + 9700.000 -0.9534 + 9701.000 -4.3041 + 9702.000 1.6258 + 9703.000 -5.4440 + 9704.000 -9.5952 + 9705.000 -1.5541 + 9706.000 0.3102 + 9707.000 -6.4180 + 9708.000 -4.9158 + 9709.000 -3.2443 + 9710.000 3.2511 + 9711.000 0.7030 + 9712.000 0.2711 + 9713.000 -1.4007 + 9714.000 2.6950 + 9715.000 -2.4411 + 9716.000 -1.3389 + 9717.000 -7.6411 + 9718.000 3.6539 + 9719.000 -1.0669 + 9720.000 -1.4420 + 9721.000 -5.0241 + 9722.000 -1.7860 + 9723.000 2.9078 + 9724.000 -2.3026 + 9725.000 -3.5978 + 9726.000 2.4470 + 9727.000 -5.9569 + 9728.000 -3.7710 + 9729.000 1.5469 + 9730.000 -7.3729 + 9731.000 -3.7948 + 9732.000 -5.3661 + 9733.000 0.3449 + 9734.000 -2.6213 + 9735.000 6.3826 + 9736.000 -6.0638 + 9737.000 -8.1658 + 9738.000 -12.1406 + 9739.000 3.2121 + 9740.000 3.1587 + 9741.000 19.6500 + 9742.000 -14.7815 + 9743.000 -13.2591 + 9744.000 8.3490 + 9745.000 -9.4809 + 9746.000 -8.5154 + 9747.000 -1.1400 + 9748.000 -0.4827 + 9749.000 -3.6858 + 9750.000 -1.1130 + 9751.000 -5.2383 + 9752.000 -0.1273 + 9753.000 -3.1594 + 9754.000 -3.3952 + 9755.000 -2.8779 + 9756.000 7.8831 + 9757.000 -10.1987 + 9758.000 -8.5319 + 9759.000 1.9066 + 9760.000 -8.7412 + 9761.000 -2.8207 + 9762.000 -6.6607 + 9763.000 -2.1804 + 9764.000 -1.7700 + 9765.000 8.9534 + 9766.000 -7.7132 + 9767.000 -11.7123 + 9768.000 -13.1035 + 9769.000 1.2464 + 9770.000 0.6353 + 9771.000 0.7581 + 9772.000 -5.7540 + 9773.000 -4.5086 + 9774.000 -6.4330 + 9775.000 -1.8398 + 9776.000 2.2642 + 9777.000 -14.9833 + 9778.000 2.9678 + 9779.000 4.7031 + 9780.000 -9.2139 + 9781.000 -2.3211 + 9782.000 3.4671 + 9783.000 -15.0603 + 9784.000 2.3828 + 9785.000 6.1644 + 9786.000 -4.7969 + 9787.000 -3.0540 + 9788.000 -4.1833 + 9789.000 12.0307 + 9790.000 -12.4594 + 9791.000 -13.4134 + 9792.000 -9.3082 + 9793.000 -1.0608 + 9794.000 2.2398 + 9795.000 15.2269 + 9796.000 -8.8166 + 9797.000 -11.8657 + 9798.000 18.6005 + 9799.000 -14.9869 + 9800.000 -14.7271 + 9801.000 0.0308 + 9802.000 -3.0362 + 9803.000 -3.2269 + 9804.000 -10.3647 + 9805.000 -1.9656 + 9806.000 3.3295 + 9807.000 -1.3974 + 9808.000 0.6529 + 9809.000 -2.8149 + 9810.000 -8.1692 + 9811.000 -2.8723 + 9812.000 -2.3056 + 9813.000 14.0802 + 9814.000 -11.0127 + 9815.000 -9.0094 + 9816.000 10.1362 + 9817.000 -11.0671 + 9818.000 -7.1299 + 9819.000 -9.2809 + 9820.000 4.0462 + 9821.000 -1.1106 + 9822.000 7.1206 + 9823.000 -8.2319 + 9824.000 -6.7000 + 9825.000 0.6879 + 9826.000 -3.1119 + 9827.000 -4.7171 + 9828.000 -5.0198 + 9829.000 -1.0940 + 9830.000 0.2462 + 9831.000 -6.7458 + 9832.000 -0.6034 + 9833.000 -3.5702 + 9834.000 9.7263 + 9835.000 -8.2814 + 9836.000 -10.4201 + 9837.000 -0.9180 + 9838.000 -0.5697 + 9839.000 -7.2781 + 9840.000 8.9161 + 9841.000 -9.2467 + 9842.000 -6.2580 + 9843.000 -5.0698 + 9844.000 1.8430 + 9845.000 -3.1933 + 9846.000 28.6242 + 9847.000 -17.1122 + 9848.000 -18.4950 + 9849.000 -4.9857 + 9850.000 -2.9178 + 9851.000 -3.9748 + 9852.000 -11.9829 + 9853.000 -1.6113 + 9854.000 0.1984 + 9855.000 11.5378 + 9856.000 -8.9527 + 9857.000 -10.2953 + 9858.000 18.5623 + 9859.000 -12.1374 + 9860.000 -17.2475 + 9861.000 -10.5959 + 9862.000 0.1187 + 9863.000 0.6525 + 9864.000 -15.7729 + 9865.000 6.0989 + 9866.000 2.5469 + 9867.000 23.2242 + 9868.000 -12.1661 + 9869.000 -17.6900 + 9870.000 -2.7386 + 9871.000 1.7276 + 9872.000 -4.2569 + 9873.000 12.9124 + 9874.000 -5.7006 + 9875.000 -12.0452 + 9876.000 12.6772 + 9877.000 -9.7838 + 9878.000 -9.9729 + 9879.000 4.9620 + 9880.000 -6.0744 + 9881.000 -7.3309 + 9882.000 40.4989 + 9883.000 -22.6037 + 9884.000 -21.4875 + 9885.000 25.6374 + 9886.000 -17.8941 + 9887.000 -14.4926 + 9888.000 5.8876 + 9889.000 -4.0177 + 9890.000 -5.5856 + 9891.000 5.1782 + 9892.000 -6.6364 + 9893.000 -8.8755 + 9894.000 6.3728 + 9895.000 -6.8012 + 9896.000 -7.5859 + 9897.000 9.4241 + 9898.000 -7.3455 + 9899.000 -7.4003 + 9900.000 23.3164 + 9901.000 -18.0750 + 9902.000 -16.3543 + 9903.000 -29.8370 + 9904.000 10.9206 + 9905.000 12.6834 + 9906.000 -26.5945 + 9907.000 13.6146 + 9908.000 10.5407 + 9909.000 -20.0332 + 9910.000 6.5495 + 9911.000 4.9845 + 9912.000 -28.3884 + 9913.000 13.0928 + 9914.000 8.7320 + 9915.000 -26.0691 + 9916.000 8.7574 + 9917.000 9.5191 + 9918.000 -30.3495 + 9919.000 10.5853 + 9920.000 11.8121 + 9921.000 -29.6058 + 9922.000 11.2073 + 9923.000 9.8965 + 9924.000 -29.4437 + 9925.000 11.8250 + 9926.000 10.8500 + 9927.000 -24.9395 + 9928.000 11.4979 + 9929.000 7.4409 + 9930.000 -24.0592 + 9931.000 7.5043 + 9932.000 9.0894 + 9933.000 -23.6015 + 9934.000 6.0125 + 9935.000 9.8306 + 9936.000 -6.9155 + 9937.000 -2.4391 + 9938.000 -1.3042 + 9939.000 -20.0601 + 9940.000 5.4452 + 9941.000 6.2388 + 9942.000 -21.3172 + 9943.000 5.8876 + 9944.000 2.3083 + 9945.000 -23.9436 + 9946.000 11.7840 + 9947.000 5.0467 + 9948.000 -19.6892 + 9949.000 10.3541 + 9950.000 9.2454 + 9951.000 -27.7096 + 9952.000 12.0863 + 9953.000 13.2247 + 9954.000 -25.4793 + 9955.000 7.2837 + 9956.000 10.5744 + 9957.000 -19.3899 + 9958.000 9.0880 + 9959.000 7.7276 + 9960.000 -42.3927 + 9961.000 19.3040 + 9962.000 18.6021 + 9963.000 -24.2341 + 9964.000 5.3731 + 9965.000 8.2756 + 9966.000 -21.9154 + 9967.000 7.8717 + 9968.000 5.0965 + 9969.000 -16.1905 + 9970.000 3.1356 + 9971.000 6.2923 + 9972.000 -25.3780 + 9973.000 6.6539 + 9974.000 8.1915 + 9975.000 -32.6245 + 9976.000 9.1685 + 9977.000 15.5799 + 9978.000 -25.2223 + 9979.000 9.3117 + 9980.000 4.3264 + 9981.000 -22.5184 + 9982.000 5.0337 + 9983.000 7.1053 + 9984.000 -33.2965 + 9985.000 9.9443 + 9986.000 15.1908 + 9987.000 -27.1528 + 9988.000 8.8571 + 9989.000 9.1572 + 9990.000 -8.6105 + 9991.000 3.7123 + 9992.000 -0.9186 + 9993.000 -14.4299 + 9994.000 2.3295 + 9995.000 1.1772 + 9996.000 -23.8273 + 9997.000 11.8890 + 9998.000 8.9263 + 9999.000 -14.7630 +10000.000 4.8214 +10001.000 5.8224 +10002.000 -22.2246 +10003.000 5.7983 +10004.000 7.2551 +10005.000 -23.5550 +10006.000 9.2968 +10007.000 8.3773 +10008.000 -30.6896 +10009.000 12.3285 +10010.000 12.8488 +10011.000 -32.0056 +10012.000 11.4722 +10013.000 9.8315 +10014.000 -20.9583 +10015.000 7.3246 +10016.000 5.0020 +10017.000 -28.4153 +10018.000 13.3238 +10019.000 6.7102 +10020.000 -22.6972 +10021.000 6.7732 +10022.000 8.7874 +10023.000 -14.4234 +10024.000 4.7916 +10025.000 1.8526 +10026.000 -20.7082 +10027.000 6.5487 +10028.000 3.8850 +10029.000 -9.5152 +10030.000 4.8466 +10031.000 -0.6641 +10032.000 -37.8675 +10033.000 20.6640 +10034.000 15.9299 +10035.000 -24.1347 +10036.000 11.6939 +10037.000 7.7200 +10038.000 -23.3551 +10039.000 8.0194 +10040.000 7.5510 +10041.000 -24.9362 +10042.000 9.4686 +10043.000 6.3908 +10044.000 -22.6506 +10045.000 5.6495 +10046.000 7.5907 +10047.000 -18.7618 +10048.000 8.2680 +10049.000 8.6564 +10050.000 -32.3800 +10051.000 14.9235 +10052.000 9.4316 +10053.000 -19.9061 +10054.000 6.5517 +10055.000 6.5537 +10056.000 -8.7924 +10057.000 -1.4377 +10058.000 -1.2613 diff --git a/test/Test_EneDecomp/1d23.lj1264.dat.save b/test/Test_EneDecomp/1d23.lj1264.dat.save new file mode 100644 index 0000000000..344925fd91 --- /dev/null +++ b/test/Test_EneDecomp/1d23.lj1264.dat.save @@ -0,0 +1,10059 @@ +#Atom Cppt + 1.000 14.0031 + 2.000 -5.1290 + 3.000 1.7625 + 4.000 2.9186 + 5.000 3.0236 + 6.000 11.2244 + 7.000 1.1511 + 8.000 2.0522 + 9.000 11.5517 + 10.000 -2.3221 + 11.000 0.0802 + 12.000 3.2086 + 13.000 4.2743 + 14.000 -24.9764 + 15.000 -1.4638 + 16.000 -25.6457 + 17.000 -2.9492 + 18.000 -32.8356 + 19.000 -20.7753 + 20.000 -38.8836 + 21.000 -12.0486 + 22.000 -10.7543 + 23.000 2.7532 + 24.000 0.1427 + 25.000 10.5652 + 26.000 4.5923 + 27.000 2.1336 + 28.000 -15.9992 + 29.000 57.6194 + 30.000 -41.9279 + 31.000 -32.9408 + 32.000 -11.4943 + 33.000 2.7762 + 34.000 0.0473 + 35.000 0.0916 + 36.000 5.6831 + 37.000 0.6657 + 38.000 15.5767 + 39.000 7.0343 + 40.000 -8.4833 + 41.000 -0.7055 + 42.000 -3.5775 + 43.000 -7.9552 + 44.000 34.8147 + 45.000 2.7385 + 46.000 -31.9163 + 47.000 11.8272 + 48.000 9.1748 + 49.000 -44.9682 + 50.000 -63.4026 + 51.000 42.4003 + 52.000 -45.8146 + 53.000 -43.0596 + 54.000 3.7093 + 55.000 -12.4931 + 56.000 0.3808 + 57.000 -1.9244 + 58.000 12.7260 + 59.000 0.0072 + 60.000 -0.9827 + 61.000 -11.6442 + 62.000 37.7238 + 63.000 -33.1147 + 64.000 -24.0336 + 65.000 0.3803 + 66.000 1.5333 + 67.000 -3.7410 + 68.000 -3.7984 + 69.000 -2.6352 + 70.000 -6.6854 + 71.000 29.1672 + 72.000 6.5983 + 73.000 -13.1529 + 74.000 2.2373 + 75.000 -11.1432 + 76.000 -10.0040 + 77.000 53.0248 + 78.000 1.4422 + 79.000 -55.4146 + 80.000 60.1062 + 81.000 -44.6717 + 82.000 -40.1328 + 83.000 7.1293 + 84.000 -43.6790 + 85.000 -2.3942 + 86.000 35.9122 + 87.000 -35.4350 + 88.000 -2.8614 + 89.000 -6.6104 + 90.000 15.3303 + 91.000 -1.6341 + 92.000 -2.4708 + 93.000 11.5671 + 94.000 -9.5012 + 95.000 1.9226 + 96.000 7.0879 + 97.000 15.7241 + 98.000 2.2310 + 99.000 -6.0461 + 100.000 -6.3891 + 101.000 -5.5340 + 102.000 -8.7043 + 103.000 33.9272 + 104.000 4.8889 + 105.000 -10.8848 + 106.000 2.6360 + 107.000 27.3712 + 108.000 -20.5697 + 109.000 1.2506 + 110.000 18.0981 + 111.000 -4.5211 + 112.000 -5.4150 + 113.000 -4.5136 + 114.000 -35.1490 + 115.000 23.6007 + 116.000 32.1090 + 117.000 -47.1857 + 118.000 -43.4538 + 119.000 21.6662 + 120.000 -3.6870 + 121.000 -7.7696 + 122.000 15.1596 + 123.000 -1.9007 + 124.000 -1.4017 + 125.000 16.3508 + 126.000 -7.5302 + 127.000 5.8788 + 128.000 -2.2846 + 129.000 11.7894 + 130.000 2.1432 + 131.000 -5.7966 + 132.000 -5.9880 + 133.000 -2.2816 + 134.000 -6.5017 + 135.000 26.4351 + 136.000 11.8670 + 137.000 -5.4013 + 138.000 1.3993 + 139.000 3.8325 + 140.000 -10.7943 + 141.000 -7.1963 + 142.000 -8.1632 + 143.000 -52.0310 + 144.000 25.0853 + 145.000 -46.4058 + 146.000 -31.4640 + 147.000 -18.6682 + 148.000 -32.4009 + 149.000 -5.8489 + 150.000 -2.2159 + 151.000 -6.4917 + 152.000 13.6064 + 153.000 -0.5047 + 154.000 0.3522 + 155.000 7.4423 + 156.000 -1.0175 + 157.000 0.6394 + 158.000 -0.4951 + 159.000 8.1518 + 160.000 2.9807 + 161.000 -2.9993 + 162.000 -4.5366 + 163.000 0.6800 + 164.000 -3.3540 + 165.000 19.6085 + 166.000 6.3742 + 167.000 -10.2710 + 168.000 -1.1273 + 169.000 -4.0061 + 170.000 -8.8192 + 171.000 30.4788 + 172.000 3.8538 + 173.000 -29.3738 + 174.000 4.8333 + 175.000 10.0481 + 176.000 -46.6234 + 177.000 -63.4243 + 178.000 47.3267 + 179.000 -50.6774 + 180.000 -45.2651 + 181.000 1.8748 + 182.000 -12.2279 + 183.000 -1.5169 + 184.000 -6.5256 + 185.000 14.2882 + 186.000 -1.4894 + 187.000 -3.3984 + 188.000 6.9897 + 189.000 1.0299 + 190.000 -3.2952 + 191.000 -1.1298 + 192.000 10.0459 + 193.000 2.0568 + 194.000 -4.1722 + 195.000 -5.1249 + 196.000 -3.4275 + 197.000 -7.3582 + 198.000 28.7160 + 199.000 6.1592 + 200.000 -12.3120 + 201.000 1.5170 + 202.000 -12.1703 + 203.000 -12.1652 + 204.000 53.0501 + 205.000 1.6542 + 206.000 -52.1189 + 207.000 50.0389 + 208.000 -38.6524 + 209.000 -35.7787 + 210.000 6.6278 + 211.000 -44.5170 + 212.000 -2.7481 + 213.000 34.8515 + 214.000 -34.7848 + 215.000 -3.0829 + 216.000 -7.3440 + 217.000 16.0777 + 218.000 -0.8717 + 219.000 -1.5507 + 220.000 18.0165 + 221.000 -10.7988 + 222.000 12.2567 + 223.000 8.3534 + 224.000 15.1486 + 225.000 3.5267 + 226.000 -5.9006 + 227.000 -6.6656 + 228.000 -4.6379 + 229.000 -8.1071 + 230.000 31.8147 + 231.000 3.6869 + 232.000 -11.4821 + 233.000 2.5777 + 234.000 25.7842 + 235.000 -18.5102 + 236.000 1.0906 + 237.000 14.7593 + 238.000 -2.8689 + 239.000 -4.1269 + 240.000 -3.4454 + 241.000 -31.7221 + 242.000 17.3398 + 243.000 31.2757 + 244.000 -47.8594 + 245.000 -45.1166 + 246.000 27.9990 + 247.000 -3.1508 + 248.000 -6.8784 + 249.000 14.3512 + 250.000 -1.4972 + 251.000 -1.4143 + 252.000 15.8256 + 253.000 -4.9521 + 254.000 9.0296 + 255.000 -4.8091 + 256.000 11.1466 + 257.000 2.3499 + 258.000 -6.0001 + 259.000 -6.3164 + 260.000 -4.1191 + 261.000 -9.1160 + 262.000 34.8470 + 263.000 13.5387 + 264.000 -11.0616 + 265.000 2.3195 + 266.000 3.6159 + 267.000 -12.6652 + 268.000 -2.4180 + 269.000 -10.1004 + 270.000 -54.0343 + 271.000 21.0172 + 272.000 -41.3035 + 273.000 -30.9734 + 274.000 -15.8933 + 275.000 -45.0944 + 276.000 14.8905 + 277.000 -2.7980 + 278.000 -6.3833 + 279.000 14.9068 + 280.000 -1.8362 + 281.000 -0.6153 + 282.000 14.4367 + 283.000 0.9609 + 284.000 1.5609 + 285.000 -8.3448 + 286.000 6.8801 + 287.000 2.7693 + 288.000 -5.6609 + 289.000 -5.1148 + 290.000 0.7087 + 291.000 -5.1167 + 292.000 23.6162 + 293.000 10.2427 + 294.000 -4.0303 + 295.000 0.8437 + 296.000 -3.0373 + 297.000 -6.2920 + 298.000 29.8568 + 299.000 6.8475 + 300.000 -18.4856 + 301.000 -2.1111 + 302.000 -7.8424 + 303.000 -30.0647 + 304.000 -33.9520 + 305.000 -4.1374 + 306.000 -22.0299 + 307.000 -21.9915 + 308.000 -15.8968 + 309.000 -7.9827 + 310.000 0.3665 + 311.000 -1.7780 + 312.000 12.1230 + 313.000 1.9927 + 314.000 2.8631 + 315.000 16.5309 + 316.000 -2.0172 + 317.000 24.6650 + 318.000 -22.4918 + 319.000 2.2482 + 320.000 2.3724 + 321.000 2.7851 + 322.000 12.7332 + 323.000 2.1828 + 324.000 -1.2394 + 325.000 13.0686 + 326.000 -2.1304 + 327.000 0.5110 + 328.000 2.9212 + 329.000 0.7601 + 330.000 -19.9276 + 331.000 -5.2355 + 332.000 -24.5791 + 333.000 -5.4198 + 334.000 -29.9446 + 335.000 -19.8183 + 336.000 -48.5261 + 337.000 -0.6968 + 338.000 -27.8569 + 339.000 2.6825 + 340.000 -0.5721 + 341.000 12.3373 + 342.000 4.9098 + 343.000 1.2803 + 344.000 -14.8681 + 345.000 48.1656 + 346.000 -37.7613 + 347.000 -29.0501 + 348.000 -7.2430 + 349.000 2.0465 + 350.000 -1.4630 + 351.000 -1.7764 + 352.000 2.3938 + 353.000 -2.3694 + 354.000 17.5701 + 355.000 7.3022 + 356.000 -7.9898 + 357.000 -0.9756 + 358.000 -3.9440 + 359.000 -8.5126 + 360.000 36.3600 + 361.000 3.2565 + 362.000 -30.8363 + 363.000 12.7618 + 364.000 6.4811 + 365.000 -43.0851 + 366.000 -56.5857 + 367.000 33.8601 + 368.000 -42.6318 + 369.000 -38.3258 + 370.000 -1.7742 + 371.000 -11.7453 + 372.000 1.0888 + 373.000 -3.3495 + 374.000 13.8868 + 375.000 0.2619 + 376.000 -0.4680 + 377.000 -2.2248 + 378.000 28.0422 + 379.000 -19.1605 + 380.000 -19.4813 + 381.000 -1.0619 + 382.000 1.7330 + 383.000 -3.0998 + 384.000 -3.6420 + 385.000 -0.3905 + 386.000 -4.8275 + 387.000 25.5972 + 388.000 5.4681 + 389.000 -10.9710 + 390.000 1.2362 + 391.000 -9.9389 + 392.000 -8.7033 + 393.000 44.0919 + 394.000 2.0679 + 395.000 -50.6632 + 396.000 55.3528 + 397.000 -44.4539 + 398.000 -36.7858 + 399.000 6.5382 + 400.000 -42.7470 + 401.000 -2.6012 + 402.000 32.8716 + 403.000 -32.2419 + 404.000 -2.1012 + 405.000 -5.5810 + 406.000 13.2211 + 407.000 -1.3206 + 408.000 -1.8755 + 409.000 7.5501 + 410.000 -3.6810 + 411.000 0.3479 + 412.000 -0.9054 + 413.000 14.1594 + 414.000 1.8036 + 415.000 -5.5298 + 416.000 -6.2705 + 417.000 -5.5531 + 418.000 -9.1126 + 419.000 33.8187 + 420.000 4.1739 + 421.000 -12.8861 + 422.000 2.9760 + 423.000 25.2233 + 424.000 -17.2325 + 425.000 1.4942 + 426.000 9.6264 + 427.000 -1.4419 + 428.000 -1.3200 + 429.000 -2.3377 + 430.000 -24.1664 + 431.000 1.8601 + 432.000 29.1028 + 433.000 -46.9306 + 434.000 -46.1935 + 435.000 29.9565 + 436.000 -3.5401 + 437.000 -7.7228 + 438.000 15.3101 + 439.000 -2.9114 + 440.000 -2.7981 + 441.000 21.4259 + 442.000 -21.3776 + 443.000 13.9214 + 444.000 9.1730 + 445.000 19.5129 + 446.000 2.6773 + 447.000 -6.9262 + 448.000 -6.9241 + 449.000 -6.1713 + 450.000 -9.8449 + 451.000 36.9232 + 452.000 12.9094 + 453.000 -14.5330 + 454.000 2.7789 + 455.000 4.0644 + 456.000 -17.1827 + 457.000 7.8761 + 458.000 -14.1506 + 459.000 -66.9658 + 460.000 30.3330 + 461.000 -43.0341 + 462.000 -35.3449 + 463.000 -4.8126 + 464.000 -57.9413 + 465.000 25.1660 + 466.000 -4.4182 + 467.000 -8.3560 + 468.000 16.6821 + 469.000 -2.9599 + 470.000 -2.4270 + 471.000 21.3833 + 472.000 -20.5218 + 473.000 8.8294 + 474.000 9.4573 + 475.000 18.5361 + 476.000 2.4821 + 477.000 -6.5928 + 478.000 -6.6767 + 479.000 -5.2243 + 480.000 -9.0218 + 481.000 36.5040 + 482.000 6.7259 + 483.000 -13.7917 + 484.000 -2.5797 + 485.000 -6.3625 + 486.000 -14.3535 + 487.000 55.0311 + 488.000 -2.4567 + 489.000 -41.8412 + 490.000 25.5940 + 491.000 13.3002 + 492.000 -45.4704 + 493.000 -63.2720 + 494.000 24.2654 + 495.000 -34.2625 + 496.000 -30.8711 + 497.000 9.8618 + 498.000 -16.3457 + 499.000 -3.1565 + 500.000 -7.9935 + 501.000 16.3744 + 502.000 -1.5112 + 503.000 -3.3700 + 504.000 16.8701 + 505.000 -2.1545 + 506.000 9.2924 + 507.000 5.3363 + 508.000 22.7145 + 509.000 8.8310 + 510.000 -4.7557 + 511.000 -4.5605 + 512.000 0.7901 + 513.000 -5.0552 + 514.000 29.3076 + 515.000 9.0353 + 516.000 -1.8480 + 517.000 1.9610 + 518.000 -10.8688 + 519.000 -11.3460 + 520.000 53.7074 + 521.000 1.9611 + 522.000 -54.2014 + 523.000 65.4411 + 524.000 -48.5211 + 525.000 -42.8421 + 526.000 3.7501 + 527.000 -32.8292 + 528.000 -1.0848 + 529.000 13.1520 + 530.000 -28.5721 + 531.000 -0.9631 + 532.000 -5.5720 + 533.000 12.8218 + 534.000 0.8772 + 535.000 1.8812 + 536.000 5.0573 + 537.000 12.0295 + 538.000 -5.6872 + 539.000 -8.2902 + 540.000 1.8617 + 541.000 1.9117 + 542.000 -2.7780 + 543.000 -4.1451 + 544.000 1.6412 + 545.000 -2.5329 + 546.000 17.8780 + 547.000 4.0153 + 548.000 -7.8184 + 549.000 1.7647 + 550.000 24.2262 + 551.000 -17.1778 + 552.000 1.1471 + 553.000 14.3140 + 554.000 -3.0152 + 555.000 -3.6978 + 556.000 -4.0795 + 557.000 -27.1631 + 558.000 12.0202 + 559.000 27.2897 + 560.000 -46.3461 + 561.000 -37.9652 + 562.000 19.3080 + 563.000 -1.5655 + 564.000 -5.1439 + 565.000 12.7574 + 566.000 -0.8733 + 567.000 -0.6505 + 568.000 2.1127 + 569.000 10.6685 + 570.000 -4.7049 + 571.000 -10.2900 + 572.000 5.7611 + 573.000 1.9871 + 574.000 -4.3746 + 575.000 -4.6875 + 576.000 -2.3845 + 577.000 -7.1814 + 578.000 30.1370 + 579.000 11.6123 + 580.000 -11.5621 + 581.000 2.1147 + 582.000 4.1463 + 583.000 -12.5608 + 584.000 -1.0743 + 585.000 -10.3466 + 586.000 -56.7709 + 587.000 22.4606 + 588.000 -41.1151 + 589.000 -30.9004 + 590.000 -12.6809 + 591.000 -46.5628 + 592.000 15.4843 + 593.000 -2.8898 + 594.000 -6.3796 + 595.000 13.8720 + 596.000 -1.2983 + 597.000 -1.4607 + 598.000 10.3663 + 599.000 3.7309 + 600.000 -2.4758 + 601.000 -6.5867 + 602.000 7.0238 + 603.000 2.2867 + 604.000 -5.0298 + 605.000 -5.3499 + 606.000 0.0524 + 607.000 -6.4601 + 608.000 25.0330 + 609.000 7.9486 + 610.000 -3.6440 + 611.000 0.0356 + 612.000 -3.2836 + 613.000 -6.5630 + 614.000 35.0444 + 615.000 4.6695 + 616.000 -26.1016 + 617.000 7.2654 + 618.000 2.2426 + 619.000 -37.0689 + 620.000 -49.3153 + 621.000 23.4331 + 622.000 -35.4759 + 623.000 -33.0598 + 624.000 -6.3924 + 625.000 -10.0324 + 626.000 0.4517 + 627.000 -2.6151 + 628.000 11.1477 + 629.000 0.7770 + 630.000 1.4500 + 631.000 25.3543 + 632.000 -9.6549 + 633.000 -203.8443 + 634.000 -227.5698 + 635.000 8.7118 + 636.000 -58.1605 + 637.000 89.1364 + 638.000 -64.6153 + 639.000 21.7422 + 640.000 -56.8974 + 641.000 -46.6703 + 642.000 -27.6452 + 643.000 10.7305 + 644.000 12.1102 + 645.000 -21.6355 + 646.000 11.1845 + 647.000 8.2208 + 648.000 -19.3135 + 649.000 4.2754 + 650.000 5.0829 + 651.000 -29.6462 + 652.000 15.1145 + 653.000 9.0820 + 654.000 -28.3074 + 655.000 12.9493 + 656.000 10.6327 + 657.000 -20.2526 + 658.000 5.8038 + 659.000 5.1616 + 660.000 -23.6946 + 661.000 12.0887 + 662.000 5.4734 + 663.000 -18.4184 + 664.000 3.7841 + 665.000 5.4556 + 666.000 -38.8663 + 667.000 13.0041 + 668.000 18.1703 + 669.000 -24.7175 + 670.000 5.2109 + 671.000 13.6614 + 672.000 -31.9291 + 673.000 11.5119 + 674.000 12.4519 + 675.000 -24.3225 + 676.000 4.9808 + 677.000 8.4165 + 678.000 -20.4746 + 679.000 6.8957 + 680.000 4.0248 + 681.000 -20.0661 + 682.000 4.2307 + 683.000 5.1093 + 684.000 -13.8088 + 685.000 4.3061 + 686.000 3.3561 + 687.000 -29.5359 + 688.000 10.7297 + 689.000 8.3497 + 690.000 -35.8402 + 691.000 11.3224 + 692.000 17.5387 + 693.000 -27.6510 + 694.000 9.0486 + 695.000 10.7935 + 696.000 -30.8412 + 697.000 10.5337 + 698.000 12.3386 + 699.000 -9.4918 + 700.000 1.7532 + 701.000 -1.4471 + 702.000 -26.4965 + 703.000 8.1499 + 704.000 9.7515 + 705.000 -25.0094 + 706.000 11.6383 + 707.000 8.7761 + 708.000 -20.8781 + 709.000 6.2169 + 710.000 4.4705 + 711.000 -23.7310 + 712.000 4.4565 + 713.000 5.8942 + 714.000 -27.2596 + 715.000 9.3213 + 716.000 10.4267 + 717.000 -7.1802 + 718.000 3.6067 + 719.000 0.0370 + 720.000 -19.4775 + 721.000 1.9757 + 722.000 6.9336 + 723.000 -15.0474 + 724.000 3.3764 + 725.000 9.6606 + 726.000 -23.2368 + 727.000 6.5935 + 728.000 9.9914 + 729.000 -31.0712 + 730.000 14.3604 + 731.000 9.5910 + 732.000 -14.1533 + 733.000 4.0239 + 734.000 0.7755 + 735.000 -32.6377 + 736.000 16.2939 + 737.000 9.9429 + 738.000 -18.3191 + 739.000 4.2345 + 740.000 4.6632 + 741.000 -28.1185 + 742.000 7.6613 + 743.000 16.0813 + 744.000 -13.5719 + 745.000 1.7677 + 746.000 4.4947 + 747.000 -14.0108 + 748.000 4.1566 + 749.000 1.7065 + 750.000 -20.0243 + 751.000 5.5831 + 752.000 8.6162 + 753.000 -31.2468 + 754.000 13.7526 + 755.000 16.2109 + 756.000 -16.3433 + 757.000 2.2707 + 758.000 5.1336 + 759.000 -18.3184 + 760.000 9.0247 + 761.000 5.8949 + 762.000 -17.4563 + 763.000 5.8545 + 764.000 1.5484 + 765.000 -13.0495 + 766.000 1.5674 + 767.000 1.7716 + 768.000 -8.7397 + 769.000 -1.8323 + 770.000 0.5226 + 771.000 -26.2250 + 772.000 8.9413 + 773.000 8.3735 + 774.000 -25.4681 + 775.000 8.4894 + 776.000 7.0566 + 777.000 -13.1938 + 778.000 0.7250 + 779.000 0.1969 + 780.000 -4.1860 + 781.000 -3.8825 + 782.000 -2.3785 + 783.000 -9.8209 + 784.000 -2.3214 + 785.000 1.9143 + 786.000 -24.6335 + 787.000 7.2553 + 788.000 7.1020 + 789.000 -5.8109 + 790.000 -2.5461 + 791.000 -1.2338 + 792.000 -16.8140 + 793.000 2.4445 + 794.000 2.3454 + 795.000 15.0591 + 796.000 -10.6359 + 797.000 -8.1146 + 798.000 13.2729 + 799.000 -8.3267 + 800.000 -11.2733 + 801.000 11.3847 + 802.000 -9.8777 + 803.000 -7.2797 + 804.000 23.7799 + 805.000 -18.0046 + 806.000 -15.2586 + 807.000 16.1479 + 808.000 -12.9276 + 809.000 -13.6942 + 810.000 12.4546 + 811.000 -12.0848 + 812.000 -10.5762 + 813.000 11.0997 + 814.000 -11.7908 + 815.000 -9.0813 + 816.000 20.3666 + 817.000 -14.3563 + 818.000 -16.2053 + 819.000 12.8649 + 820.000 -11.5209 + 821.000 -11.1544 + 822.000 9.8339 + 823.000 -7.7901 + 824.000 -10.8934 + 825.000 6.0525 + 826.000 -12.4717 + 827.000 -6.4642 + 828.000 -15.6140 + 829.000 7.1364 + 830.000 3.3296 + 831.000 15.1254 + 832.000 -11.5397 + 833.000 -12.3569 + 834.000 14.6787 + 835.000 -12.7382 + 836.000 -11.7492 + 837.000 -2.7506 + 838.000 -4.7544 + 839.000 0.3329 + 840.000 2.6533 + 841.000 -8.6267 + 842.000 0.6646 + 843.000 7.7623 + 844.000 -8.4285 + 845.000 -8.1712 + 846.000 11.1277 + 847.000 -11.7520 + 848.000 -9.2760 + 849.000 -13.2009 + 850.000 6.9333 + 851.000 -1.0385 + 852.000 16.4266 + 853.000 -14.5272 + 854.000 -12.2033 + 855.000 9.6014 + 856.000 -5.6764 + 857.000 -10.9526 + 858.000 16.9264 + 859.000 -13.4225 + 860.000 -13.4057 + 861.000 -8.5184 + 862.000 0.2315 + 863.000 -3.1552 + 864.000 -35.1857 + 865.000 14.6379 + 866.000 15.6654 + 867.000 11.5456 + 868.000 -12.6583 + 869.000 -10.4373 + 870.000 10.9555 + 871.000 -9.8166 + 872.000 -11.0123 + 873.000 10.2486 + 874.000 -9.8544 + 875.000 -12.0244 + 876.000 3.9381 + 877.000 -7.7553 + 878.000 -2.1278 + 879.000 -10.7819 + 880.000 0.0859 + 881.000 4.3272 + 882.000 12.8094 + 883.000 -10.8197 + 884.000 -10.0252 + 885.000 5.1713 + 886.000 -6.1826 + 887.000 -7.8660 + 888.000 -23.4505 + 889.000 4.7971 + 890.000 9.1898 + 891.000 34.4797 + 892.000 -19.3306 + 893.000 -23.9953 + 894.000 26.9325 + 895.000 -15.8785 + 896.000 -18.1303 + 897.000 16.9118 + 898.000 -6.8485 + 899.000 -13.8477 + 900.000 7.5179 + 901.000 -9.6855 + 902.000 -8.4593 + 903.000 21.7531 + 904.000 -14.6101 + 905.000 -16.1418 + 906.000 8.7315 + 907.000 -9.7538 + 908.000 -10.2511 + 909.000 14.8709 + 910.000 -10.7247 + 911.000 -10.9125 + 912.000 4.8235 + 913.000 -9.1778 + 914.000 -7.4541 + 915.000 -1.1982 + 916.000 -5.8491 + 917.000 -1.2776 + 918.000 28.0587 + 919.000 -19.8169 + 920.000 -17.4726 + 921.000 -3.4058 + 922.000 -2.5508 + 923.000 -1.5813 + 924.000 27.1864 + 925.000 -13.9303 + 926.000 -16.6138 + 927.000 12.2976 + 928.000 -13.7110 + 929.000 -8.7511 + 930.000 -4.7393 + 931.000 -2.1665 + 932.000 1.1160 + 933.000 25.3827 + 934.000 -17.1185 + 935.000 -13.1567 + 936.000 -3.2251 + 937.000 -1.5182 + 938.000 -5.6148 + 939.000 -6.5380 + 940.000 -1.0627 + 941.000 -4.1427 + 942.000 11.4960 + 943.000 -10.4093 + 944.000 -7.2436 + 945.000 3.7073 + 946.000 -2.7989 + 947.000 -8.4881 + 948.000 32.5551 + 949.000 -19.3396 + 950.000 -24.0092 + 951.000 1.8474 + 952.000 -2.8040 + 953.000 -7.1859 + 954.000 3.2486 + 955.000 -1.8743 + 956.000 -6.8460 + 957.000 0.4545 + 958.000 1.4484 + 959.000 -4.5923 + 960.000 17.4899 + 961.000 -14.1933 + 962.000 -13.5202 + 963.000 -4.1603 + 964.000 -1.9008 + 965.000 -3.4401 + 966.000 10.2447 + 967.000 -10.4241 + 968.000 -3.8393 + 969.000 19.9373 + 970.000 -14.1008 + 971.000 -13.4620 + 972.000 14.5127 + 973.000 -10.4711 + 974.000 -11.6436 + 975.000 12.8356 + 976.000 -11.3251 + 977.000 -7.2255 + 978.000 -7.3139 + 979.000 0.0578 + 980.000 1.3611 + 981.000 -10.6832 + 982.000 5.5371 + 983.000 2.2188 + 984.000 -3.3876 + 985.000 -0.7308 + 986.000 1.1365 + 987.000 -9.5035 + 988.000 0.8879 + 989.000 -0.6419 + 990.000 15.1177 + 991.000 -14.1573 + 992.000 -10.1227 + 993.000 -8.1216 + 994.000 -0.0677 + 995.000 -1.5617 + 996.000 5.6057 + 997.000 -2.1951 + 998.000 -6.7076 + 999.000 -6.2763 + 1000.000 -5.9833 + 1001.000 -1.4088 + 1002.000 4.3754 + 1003.000 -9.6267 + 1004.000 -4.0362 + 1005.000 -13.7004 + 1006.000 4.8802 + 1007.000 4.8932 + 1008.000 -20.4692 + 1009.000 7.6747 + 1010.000 6.4681 + 1011.000 7.4460 + 1012.000 -7.5077 + 1013.000 -9.3530 + 1014.000 -11.7841 + 1015.000 1.9651 + 1016.000 0.4306 + 1017.000 15.8276 + 1018.000 -10.6886 + 1019.000 -12.8547 + 1020.000 17.5100 + 1021.000 -14.4303 + 1022.000 -13.7650 + 1023.000 17.3376 + 1024.000 -13.4336 + 1025.000 -13.4959 + 1026.000 6.2161 + 1027.000 -6.2769 + 1028.000 -9.0891 + 1029.000 -9.4825 + 1030.000 -0.7180 + 1031.000 -0.0350 + 1032.000 20.1173 + 1033.000 -14.8128 + 1034.000 -13.8676 + 1035.000 21.9907 + 1036.000 -15.4894 + 1037.000 -17.0994 + 1038.000 36.8249 + 1039.000 -22.7597 + 1040.000 -20.5124 + 1041.000 30.2152 + 1042.000 -20.9444 + 1043.000 -16.2222 + 1044.000 12.6422 + 1045.000 -9.2251 + 1046.000 -12.8086 + 1047.000 -10.7286 + 1048.000 1.7262 + 1049.000 0.3125 + 1050.000 -25.6656 + 1051.000 10.0011 + 1052.000 12.0577 + 1053.000 -0.0278 + 1054.000 -3.8401 + 1055.000 -6.7380 + 1056.000 12.8031 + 1057.000 -10.8834 + 1058.000 -6.9349 + 1059.000 8.0224 + 1060.000 -8.0677 + 1061.000 -9.7745 + 1062.000 41.6446 + 1063.000 -26.0397 + 1064.000 -24.1155 + 1065.000 11.7121 + 1066.000 -10.9526 + 1067.000 -10.9823 + 1068.000 33.3910 + 1069.000 -21.6373 + 1070.000 -19.7557 + 1071.000 20.9235 + 1072.000 -17.3408 + 1073.000 -16.9841 + 1074.000 -11.3039 + 1075.000 1.2460 + 1076.000 2.1235 + 1077.000 -3.6813 + 1078.000 0.1820 + 1079.000 0.8097 + 1080.000 4.7676 + 1081.000 -4.2930 + 1082.000 -5.7869 + 1083.000 7.9701 + 1084.000 -8.6929 + 1085.000 -6.8922 + 1086.000 -11.6205 + 1087.000 0.9768 + 1088.000 3.1215 + 1089.000 5.5225 + 1090.000 -7.2175 + 1091.000 -6.4898 + 1092.000 7.6506 + 1093.000 -10.4575 + 1094.000 -10.4104 + 1095.000 -8.5101 + 1096.000 0.0015 + 1097.000 1.1606 + 1098.000 -9.2832 + 1099.000 -0.7298 + 1100.000 0.1337 + 1101.000 2.6918 + 1102.000 -8.2901 + 1103.000 -6.3112 + 1104.000 -1.6811 + 1105.000 -3.3148 + 1106.000 -4.1551 + 1107.000 11.0424 + 1108.000 -12.7285 + 1109.000 -9.4601 + 1110.000 -12.9485 + 1111.000 4.3083 + 1112.000 2.9724 + 1113.000 9.9950 + 1114.000 -8.4466 + 1115.000 -10.2623 + 1116.000 -8.7282 + 1117.000 0.0519 + 1118.000 -0.1725 + 1119.000 -22.0666 + 1120.000 4.7428 + 1121.000 9.2992 + 1122.000 -21.7217 + 1123.000 3.7653 + 1124.000 12.1646 + 1125.000 -5.4948 + 1126.000 -0.5184 + 1127.000 -2.5021 + 1128.000 6.2846 + 1129.000 -7.7323 + 1130.000 -8.4116 + 1131.000 -0.3767 + 1132.000 -0.4741 + 1133.000 -7.3744 + 1134.000 -8.5659 + 1135.000 -2.0081 + 1136.000 2.1253 + 1137.000 9.5272 + 1138.000 -3.8406 + 1139.000 -10.7715 + 1140.000 -4.1095 + 1141.000 -2.4244 + 1142.000 -4.4602 + 1143.000 -9.8842 + 1144.000 -1.6349 + 1145.000 -1.8428 + 1146.000 -19.5112 + 1147.000 8.3242 + 1148.000 6.9732 + 1149.000 -18.4420 + 1150.000 2.3658 + 1151.000 4.9882 + 1152.000 -3.4099 + 1153.000 -2.5342 + 1154.000 -2.1630 + 1155.000 -11.5335 + 1156.000 0.0937 + 1157.000 -0.5965 + 1158.000 -20.7008 + 1159.000 3.5028 + 1160.000 10.2534 + 1161.000 5.4909 + 1162.000 -7.5795 + 1163.000 -2.7970 + 1164.000 -12.7916 + 1165.000 2.1257 + 1166.000 4.2793 + 1167.000 19.2765 + 1168.000 -13.8050 + 1169.000 -16.2329 + 1170.000 -5.5973 + 1171.000 -5.7820 + 1172.000 -0.5743 + 1173.000 5.7620 + 1174.000 -7.7990 + 1175.000 -11.7946 + 1176.000 -20.3909 + 1177.000 6.1075 + 1178.000 6.0290 + 1179.000 5.4655 + 1180.000 -3.0609 + 1181.000 -6.8064 + 1182.000 -8.9277 + 1183.000 0.0367 + 1184.000 0.1365 + 1185.000 1.7011 + 1186.000 -6.3148 + 1187.000 -4.4273 + 1188.000 -16.9947 + 1189.000 2.9155 + 1190.000 2.2974 + 1191.000 -16.9258 + 1192.000 2.9366 + 1193.000 4.4764 + 1194.000 -19.3541 + 1195.000 3.7074 + 1196.000 4.1354 + 1197.000 -6.0008 + 1198.000 -4.1521 + 1199.000 -0.1950 + 1200.000 -5.3815 + 1201.000 -4.5750 + 1202.000 1.6452 + 1203.000 0.8006 + 1204.000 -5.5950 + 1205.000 -3.3803 + 1206.000 8.7382 + 1207.000 -3.7851 + 1208.000 -7.0281 + 1209.000 -16.9475 + 1210.000 0.8585 + 1211.000 5.2230 + 1212.000 8.6917 + 1213.000 -7.8703 + 1214.000 -6.9240 + 1215.000 15.2619 + 1216.000 -11.4545 + 1217.000 -9.2324 + 1218.000 8.8368 + 1219.000 -9.0822 + 1220.000 -12.4292 + 1221.000 14.0930 + 1222.000 -9.9782 + 1223.000 -13.8959 + 1224.000 -24.7245 + 1225.000 6.0861 + 1226.000 10.3329 + 1227.000 -13.2335 + 1228.000 4.8532 + 1229.000 -0.5039 + 1230.000 -2.1333 + 1231.000 -3.5490 + 1232.000 -4.9016 + 1233.000 23.2512 + 1234.000 -16.1964 + 1235.000 -19.5705 + 1236.000 -21.4081 + 1237.000 10.1510 + 1238.000 5.7324 + 1239.000 -15.8285 + 1240.000 10.7215 + 1241.000 0.3412 + 1242.000 -6.0624 + 1243.000 -2.9823 + 1244.000 -1.7502 + 1245.000 -4.6637 + 1246.000 -3.0518 + 1247.000 -2.7845 + 1248.000 -22.5953 + 1249.000 5.3665 + 1250.000 14.7791 + 1251.000 -11.3563 + 1252.000 0.4293 + 1253.000 1.8929 + 1254.000 -10.3170 + 1255.000 1.2463 + 1256.000 1.3994 + 1257.000 -18.0584 + 1258.000 4.9941 + 1259.000 6.9048 + 1260.000 16.1576 + 1261.000 -12.5206 + 1262.000 -11.8115 + 1263.000 6.1687 + 1264.000 -3.1080 + 1265.000 -4.5806 + 1266.000 -21.9739 + 1267.000 8.3226 + 1268.000 10.3936 + 1269.000 15.4010 + 1270.000 -13.2522 + 1271.000 -12.2206 + 1272.000 -5.2832 + 1273.000 -4.5699 + 1274.000 0.8097 + 1275.000 6.5341 + 1276.000 -6.3213 + 1277.000 -7.4525 + 1278.000 -15.4754 + 1279.000 8.3148 + 1280.000 3.3742 + 1281.000 8.4673 + 1282.000 -11.7818 + 1283.000 -8.6062 + 1284.000 -0.1500 + 1285.000 -5.8907 + 1286.000 -3.8967 + 1287.000 -7.2622 + 1288.000 1.5382 + 1289.000 1.7416 + 1290.000 -13.4418 + 1291.000 3.0410 + 1292.000 4.1730 + 1293.000 -21.5460 + 1294.000 7.8583 + 1295.000 5.2517 + 1296.000 0.5832 + 1297.000 -5.2160 + 1298.000 -6.6409 + 1299.000 -21.1515 + 1300.000 7.0141 + 1301.000 4.7741 + 1302.000 -12.5180 + 1303.000 1.2250 + 1304.000 1.3939 + 1305.000 -2.1123 + 1306.000 -1.5006 + 1307.000 -3.4791 + 1308.000 7.3409 + 1309.000 -8.6628 + 1310.000 -8.9043 + 1311.000 8.7845 + 1312.000 -11.2169 + 1313.000 -10.6320 + 1314.000 -24.1654 + 1315.000 9.0277 + 1316.000 7.2968 + 1317.000 -17.2233 + 1318.000 3.4041 + 1319.000 3.8654 + 1320.000 -14.9174 + 1321.000 0.3136 + 1322.000 4.4561 + 1323.000 12.1251 + 1324.000 -10.7653 + 1325.000 -10.3760 + 1326.000 14.0327 + 1327.000 -13.2245 + 1328.000 -12.7244 + 1329.000 -1.1018 + 1330.000 -4.9331 + 1331.000 -3.1240 + 1332.000 -24.1443 + 1333.000 12.4282 + 1334.000 9.9324 + 1335.000 26.0142 + 1336.000 -13.3864 + 1337.000 -21.7745 + 1338.000 -14.1266 + 1339.000 0.4360 + 1340.000 2.6007 + 1341.000 -11.5807 + 1342.000 -0.4747 + 1343.000 -0.7145 + 1344.000 -6.6209 + 1345.000 -3.1239 + 1346.000 0.8935 + 1347.000 -12.6312 + 1348.000 1.5566 + 1349.000 1.6096 + 1350.000 -6.3885 + 1351.000 -2.0869 + 1352.000 -1.6422 + 1353.000 -8.3098 + 1354.000 -2.1691 + 1355.000 -2.1573 + 1356.000 11.3353 + 1357.000 -8.5403 + 1358.000 -8.2878 + 1359.000 -14.0838 + 1360.000 4.6093 + 1361.000 5.4751 + 1362.000 -10.4162 + 1363.000 2.8358 + 1364.000 3.0388 + 1365.000 -26.7293 + 1366.000 7.1096 + 1367.000 13.1565 + 1368.000 -20.4659 + 1369.000 5.0270 + 1370.000 5.2968 + 1371.000 -24.7424 + 1372.000 5.9713 + 1373.000 12.7691 + 1374.000 -20.6918 + 1375.000 3.4230 + 1376.000 5.6821 + 1377.000 -11.9572 + 1378.000 3.0327 + 1379.000 2.9710 + 1380.000 -19.9532 + 1381.000 1.4243 + 1382.000 7.3938 + 1383.000 -34.0617 + 1384.000 15.6668 + 1385.000 13.4901 + 1386.000 -14.2715 + 1387.000 2.7434 + 1388.000 2.6745 + 1389.000 -14.0172 + 1390.000 0.6845 + 1391.000 2.1880 + 1392.000 -26.4109 + 1393.000 12.5734 + 1394.000 6.4484 + 1395.000 -22.2267 + 1396.000 12.3187 + 1397.000 4.5512 + 1398.000 -13.3317 + 1399.000 3.2806 + 1400.000 2.7229 + 1401.000 -26.8861 + 1402.000 8.1012 + 1403.000 7.1303 + 1404.000 -37.7907 + 1405.000 16.8888 + 1406.000 15.8439 + 1407.000 -26.1760 + 1408.000 7.8007 + 1409.000 11.8547 + 1410.000 -18.0168 + 1411.000 4.4948 + 1412.000 8.1451 + 1413.000 -16.9871 + 1414.000 4.3912 + 1415.000 3.8651 + 1416.000 -29.6739 + 1417.000 7.2597 + 1418.000 11.1103 + 1419.000 0.9885 + 1420.000 -1.5801 + 1421.000 -5.7664 + 1422.000 -10.1146 + 1423.000 5.4281 + 1424.000 0.7381 + 1425.000 -29.8118 + 1426.000 13.3535 + 1427.000 10.3124 + 1428.000 -14.0363 + 1429.000 2.4912 + 1430.000 6.6616 + 1431.000 -13.7563 + 1432.000 2.4104 + 1433.000 3.7840 + 1434.000 -22.7660 + 1435.000 4.6772 + 1436.000 8.7583 + 1437.000 -21.4765 + 1438.000 5.8564 + 1439.000 7.1196 + 1440.000 -10.5039 + 1441.000 1.5211 + 1442.000 2.9685 + 1443.000 -22.0609 + 1444.000 6.7041 + 1445.000 3.9618 + 1446.000 -12.0868 + 1447.000 3.1958 + 1448.000 -1.1922 + 1449.000 -25.6867 + 1450.000 10.6593 + 1451.000 5.7712 + 1452.000 -19.5054 + 1453.000 11.1033 + 1454.000 5.0675 + 1455.000 -22.4788 + 1456.000 5.8468 + 1457.000 5.9127 + 1458.000 -17.6666 + 1459.000 4.4366 + 1460.000 5.6163 + 1461.000 -15.5621 + 1462.000 8.0972 + 1463.000 6.1519 + 1464.000 -17.4357 + 1465.000 3.4583 + 1466.000 2.8892 + 1467.000 -22.3450 + 1468.000 8.5787 + 1469.000 5.7751 + 1470.000 -23.0510 + 1471.000 3.9215 + 1472.000 7.2782 + 1473.000 -21.8498 + 1474.000 5.2003 + 1475.000 8.3534 + 1476.000 -27.6431 + 1477.000 11.7858 + 1478.000 12.2683 + 1479.000 -30.8158 + 1480.000 11.8032 + 1481.000 12.0640 + 1482.000 -23.9860 + 1483.000 6.9469 + 1484.000 6.8394 + 1485.000 -21.0932 + 1486.000 5.4835 + 1487.000 5.9152 + 1488.000 -28.3403 + 1489.000 8.9434 + 1490.000 7.5792 + 1491.000 -10.9842 + 1492.000 0.0474 + 1493.000 3.0118 + 1494.000 -22.8437 + 1495.000 7.1244 + 1496.000 6.2560 + 1497.000 -24.4039 + 1498.000 7.1475 + 1499.000 7.1877 + 1500.000 -39.4800 + 1501.000 17.5418 + 1502.000 18.2596 + 1503.000 -21.8064 + 1504.000 8.1909 + 1505.000 3.0169 + 1506.000 -11.8248 + 1507.000 2.2265 + 1508.000 4.6351 + 1509.000 -23.5467 + 1510.000 7.6379 + 1511.000 7.0669 + 1512.000 -22.3487 + 1513.000 8.0299 + 1514.000 8.3132 + 1515.000 -13.2207 + 1516.000 3.3589 + 1517.000 3.7099 + 1518.000 -22.8292 + 1519.000 10.6090 + 1520.000 5.9206 + 1521.000 -18.6922 + 1522.000 3.9035 + 1523.000 4.6233 + 1524.000 -24.8791 + 1525.000 13.6643 + 1526.000 6.7799 + 1527.000 -13.7681 + 1528.000 1.7651 + 1529.000 9.3192 + 1530.000 -13.5425 + 1531.000 2.9108 + 1532.000 4.4960 + 1533.000 -20.7229 + 1534.000 9.1447 + 1535.000 6.3876 + 1536.000 -20.1729 + 1537.000 5.0595 + 1538.000 5.6875 + 1539.000 -19.5090 + 1540.000 9.8744 + 1541.000 3.3523 + 1542.000 -12.4472 + 1543.000 0.4487 + 1544.000 3.0883 + 1545.000 -8.9365 + 1546.000 -2.9254 + 1547.000 -0.3421 + 1548.000 -18.4619 + 1549.000 4.0266 + 1550.000 5.9591 + 1551.000 -16.7604 + 1552.000 3.8415 + 1553.000 2.5081 + 1554.000 -14.3372 + 1555.000 0.6462 + 1556.000 7.7148 + 1557.000 -27.4826 + 1558.000 9.0900 + 1559.000 10.2700 + 1560.000 -8.4139 + 1561.000 4.1323 + 1562.000 0.2740 + 1563.000 -16.9772 + 1564.000 8.6763 + 1565.000 3.7592 + 1566.000 -19.5689 + 1567.000 1.5344 + 1568.000 6.2755 + 1569.000 -18.8622 + 1570.000 3.8032 + 1571.000 5.1320 + 1572.000 -17.8546 + 1573.000 3.2982 + 1574.000 2.9340 + 1575.000 -22.9167 + 1576.000 7.9188 + 1577.000 4.5960 + 1578.000 -19.3006 + 1579.000 4.2321 + 1580.000 5.5135 + 1581.000 -12.8221 + 1582.000 3.2090 + 1583.000 2.8961 + 1584.000 -25.7242 + 1585.000 9.1608 + 1586.000 6.5237 + 1587.000 -17.4669 + 1588.000 1.9173 + 1589.000 7.5614 + 1590.000 -16.8413 + 1591.000 2.6090 + 1592.000 5.7590 + 1593.000 -42.4158 + 1594.000 15.6398 + 1595.000 17.5328 + 1596.000 -6.6888 + 1597.000 -1.0310 + 1598.000 -2.6964 + 1599.000 -22.4512 + 1600.000 6.2189 + 1601.000 7.1334 + 1602.000 -25.3158 + 1603.000 11.5472 + 1604.000 9.7494 + 1605.000 -13.5434 + 1606.000 2.4780 + 1607.000 0.5247 + 1608.000 -15.8319 + 1609.000 0.7761 + 1610.000 1.4707 + 1611.000 -33.4072 + 1612.000 13.0057 + 1613.000 14.3955 + 1614.000 -11.1824 + 1615.000 1.8241 + 1616.000 -0.0051 + 1617.000 -13.4504 + 1618.000 0.0186 + 1619.000 3.2869 + 1620.000 -17.6325 + 1621.000 3.2128 + 1622.000 8.2120 + 1623.000 -10.8223 + 1624.000 2.0534 + 1625.000 -0.2814 + 1626.000 -9.8824 + 1627.000 3.9477 + 1628.000 2.9716 + 1629.000 -9.9222 + 1630.000 0.0514 + 1631.000 1.9123 + 1632.000 -11.5800 + 1633.000 0.4495 + 1634.000 1.8286 + 1635.000 -16.2891 + 1636.000 2.7490 + 1637.000 4.1524 + 1638.000 -21.4630 + 1639.000 7.7531 + 1640.000 4.9206 + 1641.000 -10.5714 + 1642.000 -0.5873 + 1643.000 0.8494 + 1644.000 -0.7066 + 1645.000 -2.9982 + 1646.000 -5.5251 + 1647.000 -18.5557 + 1648.000 3.7545 + 1649.000 3.9402 + 1650.000 -12.9116 + 1651.000 -0.1826 + 1652.000 3.5968 + 1653.000 -11.9476 + 1654.000 1.3759 + 1655.000 1.8209 + 1656.000 -20.8770 + 1657.000 4.0024 + 1658.000 11.6477 + 1659.000 -19.5332 + 1660.000 5.7745 + 1661.000 1.8403 + 1662.000 -11.4620 + 1663.000 -0.1295 + 1664.000 3.4960 + 1665.000 -10.4089 + 1666.000 2.2055 + 1667.000 -1.8239 + 1668.000 -13.2348 + 1669.000 3.0116 + 1670.000 5.2757 + 1671.000 -2.9236 + 1672.000 -3.2392 + 1673.000 -1.3924 + 1674.000 -16.7338 + 1675.000 2.8407 + 1676.000 2.3385 + 1677.000 -9.0350 + 1678.000 -2.6114 + 1679.000 -0.9546 + 1680.000 -1.5505 + 1681.000 -2.5391 + 1682.000 -4.7293 + 1683.000 -13.2356 + 1684.000 -0.4974 + 1685.000 5.8806 + 1686.000 -10.2322 + 1687.000 -2.8796 + 1688.000 1.6955 + 1689.000 -7.6567 + 1690.000 3.1182 + 1691.000 -0.7049 + 1692.000 -11.0128 + 1693.000 3.4350 + 1694.000 -1.9474 + 1695.000 -12.6372 + 1696.000 1.0355 + 1697.000 1.6182 + 1698.000 -7.0652 + 1699.000 -1.8652 + 1700.000 -0.0469 + 1701.000 -12.1229 + 1702.000 7.0185 + 1703.000 -1.0553 + 1704.000 0.4786 + 1705.000 -4.8124 + 1706.000 -4.3673 + 1707.000 -19.5582 + 1708.000 3.1803 + 1709.000 6.8042 + 1710.000 -6.7994 + 1711.000 1.7080 + 1712.000 -2.0810 + 1713.000 -25.2179 + 1714.000 8.2335 + 1715.000 7.1456 + 1716.000 -23.8293 + 1717.000 7.4420 + 1718.000 5.3483 + 1719.000 -11.1536 + 1720.000 -0.2234 + 1721.000 -0.8360 + 1722.000 -10.8785 + 1723.000 -1.5394 + 1724.000 1.0061 + 1725.000 -10.0965 + 1726.000 2.4630 + 1727.000 3.8846 + 1728.000 -4.9799 + 1729.000 -1.6632 + 1730.000 -1.7336 + 1731.000 -18.6170 + 1732.000 1.1964 + 1733.000 5.8244 + 1734.000 -20.8265 + 1735.000 6.1276 + 1736.000 5.4036 + 1737.000 -11.1589 + 1738.000 0.5881 + 1739.000 0.8618 + 1740.000 -9.4809 + 1741.000 -0.3727 + 1742.000 -0.3953 + 1743.000 -18.1886 + 1744.000 4.0858 + 1745.000 2.8218 + 1746.000 -8.9080 + 1747.000 0.3090 + 1748.000 1.2777 + 1749.000 -6.4097 + 1750.000 -2.3745 + 1751.000 -1.1354 + 1752.000 27.8604 + 1753.000 -17.2719 + 1754.000 -16.1262 + 1755.000 18.0636 + 1756.000 -13.0308 + 1757.000 -15.4032 + 1758.000 42.2531 + 1759.000 -27.0227 + 1760.000 -21.4456 + 1761.000 35.6396 + 1762.000 -19.8539 + 1763.000 -19.7009 + 1764.000 11.1053 + 1765.000 -12.4837 + 1766.000 -4.5439 + 1767.000 21.6836 + 1768.000 -14.9844 + 1769.000 -15.0300 + 1770.000 17.4426 + 1771.000 -11.4856 + 1772.000 -13.4380 + 1773.000 21.0927 + 1774.000 -16.1236 + 1775.000 -14.5964 + 1776.000 30.5457 + 1777.000 -21.0195 + 1778.000 -20.2840 + 1779.000 46.0030 + 1780.000 -24.1780 + 1781.000 -22.8886 + 1782.000 27.6757 + 1783.000 -16.2078 + 1784.000 -18.3905 + 1785.000 3.7041 + 1786.000 -12.3406 + 1787.000 -4.0332 + 1788.000 21.9927 + 1789.000 -16.7917 + 1790.000 -13.3783 + 1791.000 15.0333 + 1792.000 -12.2183 + 1793.000 -12.8803 + 1794.000 20.6046 + 1795.000 -16.2028 + 1796.000 -15.3718 + 1797.000 8.9745 + 1798.000 -8.6253 + 1799.000 -14.2439 + 1800.000 57.1975 + 1801.000 -28.1884 + 1802.000 -34.3092 + 1803.000 14.1639 + 1804.000 -11.9351 + 1805.000 -11.4153 + 1806.000 21.3376 + 1807.000 -16.4186 + 1808.000 -15.9536 + 1809.000 18.0389 + 1810.000 -16.4376 + 1811.000 -7.6477 + 1812.000 30.8551 + 1813.000 -20.8699 + 1814.000 -19.1767 + 1815.000 18.8916 + 1816.000 -14.8381 + 1817.000 -14.5187 + 1818.000 28.2395 + 1819.000 -20.6034 + 1820.000 -17.0972 + 1821.000 2.4013 + 1822.000 -6.9627 + 1823.000 -7.1119 + 1824.000 7.7008 + 1825.000 -5.7124 + 1826.000 -10.5833 + 1827.000 13.9131 + 1828.000 -6.3929 + 1829.000 -10.9049 + 1830.000 -4.6764 + 1831.000 -5.3004 + 1832.000 -3.3073 + 1833.000 -1.1640 + 1834.000 2.2326 + 1835.000 -7.2239 + 1836.000 22.6713 + 1837.000 -18.0738 + 1838.000 -18.5641 + 1839.000 24.4487 + 1840.000 -17.0099 + 1841.000 -14.5655 + 1842.000 17.6707 + 1843.000 -15.7255 + 1844.000 -14.3554 + 1845.000 -1.3581 + 1846.000 -3.4065 + 1847.000 -5.9175 + 1848.000 -22.3196 + 1849.000 8.5661 + 1850.000 8.4170 + 1851.000 16.4772 + 1852.000 -14.5707 + 1853.000 -11.7872 + 1854.000 13.3934 + 1855.000 -12.4441 + 1856.000 -11.6964 + 1857.000 31.3218 + 1858.000 -21.3550 + 1859.000 -23.0056 + 1860.000 19.0792 + 1861.000 -16.3952 + 1862.000 -9.7792 + 1863.000 -0.3308 + 1864.000 -4.5798 + 1865.000 -1.2558 + 1866.000 24.4187 + 1867.000 -17.2044 + 1868.000 -14.9686 + 1869.000 7.7460 + 1870.000 -8.3520 + 1871.000 -7.7095 + 1872.000 -17.1413 + 1873.000 2.1472 + 1874.000 5.3326 + 1875.000 37.8107 + 1876.000 -18.0801 + 1877.000 -23.1719 + 1878.000 27.6305 + 1879.000 -12.3699 + 1880.000 -19.2283 + 1881.000 17.5051 + 1882.000 -14.3696 + 1883.000 -13.4488 + 1884.000 40.2697 + 1885.000 -26.0169 + 1886.000 -25.3161 + 1887.000 25.3774 + 1888.000 -17.7821 + 1889.000 -19.5062 + 1890.000 21.1050 + 1891.000 -14.1556 + 1892.000 -13.1389 + 1893.000 25.5795 + 1894.000 -19.8188 + 1895.000 -17.1550 + 1896.000 9.0121 + 1897.000 -6.6432 + 1898.000 -9.3925 + 1899.000 13.6062 + 1900.000 -12.8031 + 1901.000 -9.4905 + 1902.000 51.5778 + 1903.000 -28.8517 + 1904.000 -25.5829 + 1905.000 12.5291 + 1906.000 -11.8772 + 1907.000 -9.0680 + 1908.000 49.8318 + 1909.000 -32.4096 + 1910.000 -27.8449 + 1911.000 20.5144 + 1912.000 -17.1204 + 1913.000 -13.9407 + 1914.000 4.3339 + 1915.000 -7.9934 + 1916.000 -3.4244 + 1917.000 50.5122 + 1918.000 -29.5507 + 1919.000 -28.0733 + 1920.000 22.6037 + 1921.000 -13.3477 + 1922.000 -18.2963 + 1923.000 10.2871 + 1924.000 -7.4476 + 1925.000 -10.9134 + 1926.000 5.0950 + 1927.000 -8.5019 + 1928.000 -9.6295 + 1929.000 8.2922 + 1930.000 -7.7045 + 1931.000 -7.1860 + 1932.000 20.4231 + 1933.000 -12.3247 + 1934.000 -13.5248 + 1935.000 29.2571 + 1936.000 -17.9578 + 1937.000 -18.5803 + 1938.000 29.9419 + 1939.000 -19.1336 + 1940.000 -20.3911 + 1941.000 7.5008 + 1942.000 -8.4586 + 1943.000 -8.7947 + 1944.000 25.3007 + 1945.000 -15.8991 + 1946.000 -18.8439 + 1947.000 1.2054 + 1948.000 -4.3743 + 1949.000 -2.3293 + 1950.000 49.3294 + 1951.000 -28.4541 + 1952.000 -27.4635 + 1953.000 -4.3732 + 1954.000 0.5136 + 1955.000 -3.1836 + 1956.000 6.4397 + 1957.000 -7.7334 + 1958.000 -9.7042 + 1959.000 -5.9475 + 1960.000 -2.8407 + 1961.000 -0.8873 + 1962.000 36.7058 + 1963.000 -20.4682 + 1964.000 -26.2694 + 1965.000 63.3278 + 1966.000 -35.8396 + 1967.000 -31.4436 + 1968.000 8.5100 + 1969.000 -2.0412 + 1970.000 -8.5484 + 1971.000 13.0202 + 1972.000 -11.6643 + 1973.000 -10.7604 + 1974.000 33.3699 + 1975.000 -22.9358 + 1976.000 -20.3152 + 1977.000 7.6600 + 1978.000 -7.8890 + 1979.000 -8.6205 + 1980.000 16.5382 + 1981.000 -13.9675 + 1982.000 -7.0889 + 1983.000 13.6023 + 1984.000 -10.6948 + 1985.000 -15.7343 + 1986.000 35.3483 + 1987.000 -21.7799 + 1988.000 -21.3363 + 1989.000 40.3308 + 1990.000 -22.2753 + 1991.000 -25.1926 + 1992.000 49.2998 + 1993.000 -27.2333 + 1994.000 -23.4516 + 1995.000 32.9706 + 1996.000 -20.1837 + 1997.000 -19.1467 + 1998.000 58.3354 + 1999.000 -32.7770 + 2000.000 -31.4574 + 2001.000 -6.3315 + 2002.000 0.9003 + 2003.000 0.7098 + 2004.000 20.0011 + 2005.000 -15.1588 + 2006.000 -15.3194 + 2007.000 5.1659 + 2008.000 -5.6064 + 2009.000 -5.4676 + 2010.000 -0.1791 + 2011.000 -4.3989 + 2012.000 -4.1791 + 2013.000 31.2430 + 2014.000 -20.6167 + 2015.000 -20.2522 + 2016.000 4.8573 + 2017.000 -7.6045 + 2018.000 -6.3629 + 2019.000 14.2457 + 2020.000 -15.4015 + 2021.000 -8.3125 + 2022.000 -1.3669 + 2023.000 -2.7097 + 2024.000 -5.3079 + 2025.000 36.6929 + 2026.000 -26.3408 + 2027.000 -20.8866 + 2028.000 0.8012 + 2029.000 -4.2714 + 2030.000 -6.9926 + 2031.000 22.4498 + 2032.000 -10.9584 + 2033.000 -15.3073 + 2034.000 -4.3054 + 2035.000 -6.3287 + 2036.000 -3.1610 + 2037.000 5.4716 + 2038.000 -10.1736 + 2039.000 -3.8305 + 2040.000 4.8948 + 2041.000 -5.0758 + 2042.000 -6.6048 + 2043.000 -8.3279 + 2044.000 1.6842 + 2045.000 0.3154 + 2046.000 27.7593 + 2047.000 -16.8820 + 2048.000 -19.2020 + 2049.000 1.5050 + 2050.000 -4.3350 + 2051.000 -8.3998 + 2052.000 -4.9157 + 2053.000 -1.2501 + 2054.000 -2.2980 + 2055.000 28.9266 + 2056.000 -16.8886 + 2057.000 -19.2327 + 2058.000 -2.0447 + 2059.000 -2.7594 + 2060.000 -3.0705 + 2061.000 28.0547 + 2062.000 -18.9398 + 2063.000 -18.0620 + 2064.000 16.3275 + 2065.000 -6.5902 + 2066.000 -14.6662 + 2067.000 52.4739 + 2068.000 -30.3466 + 2069.000 -30.0394 + 2070.000 47.1481 + 2071.000 -26.5044 + 2072.000 -31.0135 + 2073.000 50.4933 + 2074.000 -24.2375 + 2075.000 -24.0781 + 2076.000 32.0717 + 2077.000 -17.2142 + 2078.000 -19.1891 + 2079.000 -3.3571 + 2080.000 -3.0499 + 2081.000 -3.2131 + 2082.000 41.2457 + 2083.000 -24.1875 + 2084.000 -19.3671 + 2085.000 43.6745 + 2086.000 -27.7570 + 2087.000 -22.0868 + 2088.000 20.4602 + 2089.000 -14.9354 + 2090.000 -12.1923 + 2091.000 2.6446 + 2092.000 -5.0411 + 2093.000 -5.4358 + 2094.000 -0.5496 + 2095.000 -5.4091 + 2096.000 -3.7520 + 2097.000 5.5716 + 2098.000 -7.9213 + 2099.000 -7.9442 + 2100.000 -8.6567 + 2101.000 0.0964 + 2102.000 -1.0039 + 2103.000 -22.1520 + 2104.000 7.8380 + 2105.000 10.4121 + 2106.000 -8.9679 + 2107.000 0.6359 + 2108.000 -1.4895 + 2109.000 14.9803 + 2110.000 -9.5321 + 2111.000 -14.4226 + 2112.000 12.8049 + 2113.000 -10.9764 + 2114.000 -6.5019 + 2115.000 22.3377 + 2116.000 -18.1041 + 2117.000 -19.3944 + 2118.000 12.4237 + 2119.000 -10.2541 + 2120.000 -8.9035 + 2121.000 9.3100 + 2122.000 -9.9623 + 2123.000 -9.8423 + 2124.000 8.6932 + 2125.000 -8.7253 + 2126.000 -8.9691 + 2127.000 54.1005 + 2128.000 -30.7010 + 2129.000 -33.5007 + 2130.000 20.0144 + 2131.000 -14.7387 + 2132.000 -13.9776 + 2133.000 43.8213 + 2134.000 -26.8049 + 2135.000 -26.3978 + 2136.000 46.4533 + 2137.000 -25.0091 + 2138.000 -26.0887 + 2139.000 24.1588 + 2140.000 -17.2247 + 2141.000 -20.0802 + 2142.000 -15.8398 + 2143.000 6.6607 + 2144.000 3.5835 + 2145.000 -13.8240 + 2146.000 2.1584 + 2147.000 3.9727 + 2148.000 30.1415 + 2149.000 -17.5841 + 2150.000 -18.7368 + 2151.000 43.5517 + 2152.000 -28.9551 + 2153.000 -27.6378 + 2154.000 13.2266 + 2155.000 -10.2704 + 2156.000 -7.4209 + 2157.000 7.8312 + 2158.000 -9.0270 + 2159.000 -10.3554 + 2160.000 25.0659 + 2161.000 -14.6653 + 2162.000 -13.4513 + 2163.000 21.1493 + 2164.000 -17.4307 + 2165.000 -11.6790 + 2166.000 -15.1789 + 2167.000 0.9033 + 2168.000 10.0530 + 2169.000 7.4359 + 2170.000 -8.2832 + 2171.000 -8.6327 + 2172.000 35.2275 + 2173.000 -21.4888 + 2174.000 -17.1233 + 2175.000 18.1640 + 2176.000 -14.9214 + 2177.000 -11.3452 + 2178.000 16.2403 + 2179.000 -13.5338 + 2180.000 -13.8005 + 2181.000 22.3858 + 2182.000 -14.9385 + 2183.000 -16.1138 + 2184.000 24.3405 + 2185.000 -21.2334 + 2186.000 -15.0352 + 2187.000 -3.4796 + 2188.000 -3.2876 + 2189.000 -0.4901 + 2190.000 23.9967 + 2191.000 -17.8319 + 2192.000 -13.2385 + 2193.000 34.6692 + 2194.000 -22.0846 + 2195.000 -23.6266 + 2196.000 22.5554 + 2197.000 -13.2389 + 2198.000 -21.0537 + 2199.000 5.5379 + 2200.000 -7.0276 + 2201.000 -8.3831 + 2202.000 12.0546 + 2203.000 -9.8538 + 2204.000 -10.2939 + 2205.000 -1.4034 + 2206.000 -5.1899 + 2207.000 -3.8525 + 2208.000 -6.3338 + 2209.000 -4.0296 + 2210.000 5.3248 + 2211.000 9.9908 + 2212.000 -10.3630 + 2213.000 -10.8761 + 2214.000 5.7772 + 2215.000 -6.0078 + 2216.000 -7.8462 + 2217.000 39.4997 + 2218.000 -22.3961 + 2219.000 -23.5994 + 2220.000 30.2785 + 2221.000 -23.7754 + 2222.000 -18.3045 + 2223.000 34.3853 + 2224.000 -19.0108 + 2225.000 -25.2245 + 2226.000 -13.1111 + 2227.000 8.0930 + 2228.000 1.8663 + 2229.000 20.4021 + 2230.000 -15.4734 + 2231.000 -16.5106 + 2232.000 27.3125 + 2233.000 -18.2173 + 2234.000 -15.4661 + 2235.000 31.5493 + 2236.000 -17.6244 + 2237.000 -16.5217 + 2238.000 -6.9577 + 2239.000 3.4748 + 2240.000 -6.1781 + 2241.000 -9.0552 + 2242.000 -1.5414 + 2243.000 -2.3237 + 2244.000 18.8091 + 2245.000 -14.9785 + 2246.000 -15.6778 + 2247.000 13.2428 + 2248.000 -12.3022 + 2249.000 -13.1165 + 2250.000 -0.6553 + 2251.000 -1.8234 + 2252.000 -2.1398 + 2253.000 -1.0130 + 2254.000 -6.7717 + 2255.000 -2.9290 + 2256.000 18.5430 + 2257.000 -14.2712 + 2258.000 -13.1501 + 2259.000 13.6714 + 2260.000 -12.9687 + 2261.000 -14.4969 + 2262.000 -0.9418 + 2263.000 -5.7461 + 2264.000 1.2019 + 2265.000 26.3256 + 2266.000 -17.7533 + 2267.000 -12.9626 + 2268.000 12.1840 + 2269.000 -9.6432 + 2270.000 -9.5847 + 2271.000 28.3852 + 2272.000 -17.6638 + 2273.000 -17.8255 + 2274.000 10.7354 + 2275.000 -13.2782 + 2276.000 -8.7896 + 2277.000 10.2356 + 2278.000 -9.2113 + 2279.000 -8.4567 + 2280.000 25.6028 + 2281.000 -11.9405 + 2282.000 -18.3406 + 2283.000 15.4336 + 2284.000 -12.0102 + 2285.000 -12.2561 + 2286.000 28.3351 + 2287.000 -18.9555 + 2288.000 -17.5710 + 2289.000 -0.2679 + 2290.000 -6.1697 + 2291.000 -5.7087 + 2292.000 22.3074 + 2293.000 -15.9355 + 2294.000 -14.5443 + 2295.000 -6.0358 + 2296.000 -3.3442 + 2297.000 -1.3781 + 2298.000 13.9443 + 2299.000 -14.7833 + 2300.000 -10.1687 + 2301.000 29.2516 + 2302.000 -21.2589 + 2303.000 -16.2736 + 2304.000 7.8766 + 2305.000 -9.1626 + 2306.000 -8.4016 + 2307.000 3.9506 + 2308.000 -8.9541 + 2309.000 -4.6723 + 2310.000 17.9147 + 2311.000 -14.8864 + 2312.000 -12.1052 + 2313.000 18.5616 + 2314.000 -15.2669 + 2315.000 -12.9072 + 2316.000 -7.9391 + 2317.000 2.0854 + 2318.000 -2.6528 + 2319.000 40.9053 + 2320.000 -23.2606 + 2321.000 -22.8745 + 2322.000 39.9227 + 2323.000 -24.2205 + 2324.000 -25.6306 + 2325.000 16.8762 + 2326.000 -12.2335 + 2327.000 -13.5418 + 2328.000 0.5903 + 2329.000 -1.8939 + 2330.000 -4.6400 + 2331.000 2.1733 + 2332.000 -4.9231 + 2333.000 -4.3432 + 2334.000 5.3226 + 2335.000 -8.0454 + 2336.000 -5.3890 + 2337.000 4.3765 + 2338.000 -6.3974 + 2339.000 -8.7853 + 2340.000 0.7608 + 2341.000 -5.6959 + 2342.000 -4.7258 + 2343.000 21.8565 + 2344.000 -15.9438 + 2345.000 -19.2464 + 2346.000 -9.5838 + 2347.000 0.5047 + 2348.000 4.9295 + 2349.000 -15.6683 + 2350.000 3.4552 + 2351.000 2.2401 + 2352.000 19.0000 + 2353.000 -10.7793 + 2354.000 -18.3868 + 2355.000 14.9435 + 2356.000 -15.1680 + 2357.000 -11.9364 + 2358.000 1.2736 + 2359.000 -2.6059 + 2360.000 -7.3606 + 2361.000 6.0823 + 2362.000 -7.8331 + 2363.000 -4.7744 + 2364.000 17.3736 + 2365.000 -7.2566 + 2366.000 -13.9006 + 2367.000 -17.8243 + 2368.000 3.5626 + 2369.000 5.2900 + 2370.000 14.8781 + 2371.000 -13.8144 + 2372.000 -12.6559 + 2373.000 17.7009 + 2374.000 -13.6828 + 2375.000 -14.3057 + 2376.000 7.1618 + 2377.000 -7.9139 + 2378.000 -2.4632 + 2379.000 -14.8800 + 2380.000 4.1796 + 2381.000 -1.4139 + 2382.000 8.8936 + 2383.000 -9.0109 + 2384.000 -9.1936 + 2385.000 -3.8221 + 2386.000 -2.1089 + 2387.000 -3.8784 + 2388.000 4.4979 + 2389.000 -6.8214 + 2390.000 -2.6802 + 2391.000 10.4728 + 2392.000 -10.0848 + 2393.000 -8.1743 + 2394.000 5.6866 + 2395.000 -7.3280 + 2396.000 -6.6899 + 2397.000 32.4800 + 2398.000 -17.3698 + 2399.000 -23.0923 + 2400.000 -14.8283 + 2401.000 1.1141 + 2402.000 2.9863 + 2403.000 23.0428 + 2404.000 -13.5370 + 2405.000 -15.9917 + 2406.000 37.6790 + 2407.000 -23.4565 + 2408.000 -23.5388 + 2409.000 -4.0719 + 2410.000 -3.1973 + 2411.000 -2.2644 + 2412.000 27.6545 + 2413.000 -19.6279 + 2414.000 -15.8140 + 2415.000 -15.8778 + 2416.000 -0.2795 + 2417.000 6.4023 + 2418.000 36.5101 + 2419.000 -24.6867 + 2420.000 -24.4942 + 2421.000 2.6994 + 2422.000 -10.9140 + 2423.000 -4.2099 + 2424.000 27.4486 + 2425.000 -16.3574 + 2426.000 -19.1432 + 2427.000 -8.9991 + 2428.000 4.3856 + 2429.000 0.1043 + 2430.000 22.3462 + 2431.000 -18.4897 + 2432.000 -16.0551 + 2433.000 19.1159 + 2434.000 -15.8178 + 2435.000 -12.0800 + 2436.000 14.1939 + 2437.000 -8.2910 + 2438.000 -11.7801 + 2439.000 5.1319 + 2440.000 -6.5890 + 2441.000 -5.1265 + 2442.000 -6.0057 + 2443.000 -0.6491 + 2444.000 -2.0740 + 2445.000 11.6377 + 2446.000 -8.6189 + 2447.000 -11.3527 + 2448.000 19.4710 + 2449.000 -14.1828 + 2450.000 -15.4091 + 2451.000 -3.0702 + 2452.000 -0.9463 + 2453.000 -3.9931 + 2454.000 1.5551 + 2455.000 -5.1079 + 2456.000 -6.0458 + 2457.000 2.6889 + 2458.000 -5.8476 + 2459.000 -6.6022 + 2460.000 -14.2475 + 2461.000 8.4457 + 2462.000 0.6855 + 2463.000 1.9172 + 2464.000 -6.5182 + 2465.000 -5.7958 + 2466.000 24.7002 + 2467.000 -20.0636 + 2468.000 -19.6862 + 2469.000 12.0642 + 2470.000 -9.7248 + 2471.000 -12.4457 + 2472.000 30.2184 + 2473.000 -19.4668 + 2474.000 -14.8211 + 2475.000 11.9196 + 2476.000 -3.7348 + 2477.000 -14.5590 + 2478.000 15.5659 + 2479.000 -10.8386 + 2480.000 -10.3723 + 2481.000 7.8762 + 2482.000 -7.6107 + 2483.000 -8.9390 + 2484.000 5.7566 + 2485.000 -9.9303 + 2486.000 -4.3361 + 2487.000 43.9191 + 2488.000 -23.1645 + 2489.000 -22.9472 + 2490.000 26.2765 + 2491.000 -16.8666 + 2492.000 -18.1728 + 2493.000 45.3173 + 2494.000 -29.8228 + 2495.000 -23.9875 + 2496.000 5.4035 + 2497.000 -5.4136 + 2498.000 -7.0756 + 2499.000 14.3294 + 2500.000 -12.4951 + 2501.000 -11.7790 + 2502.000 -2.4405 + 2503.000 -0.9545 + 2504.000 -0.1253 + 2505.000 26.0428 + 2506.000 -14.6190 + 2507.000 -20.5384 + 2508.000 27.7952 + 2509.000 -18.9239 + 2510.000 -20.0953 + 2511.000 22.4149 + 2512.000 -15.5368 + 2513.000 -12.5835 + 2514.000 32.0427 + 2515.000 -22.3123 + 2516.000 -20.4810 + 2517.000 -2.6662 + 2518.000 -1.6666 + 2519.000 -2.2471 + 2520.000 -6.0768 + 2521.000 -0.4137 + 2522.000 -3.1235 + 2523.000 15.5393 + 2524.000 -12.7059 + 2525.000 -12.5459 + 2526.000 14.5897 + 2527.000 -14.9166 + 2528.000 -9.8520 + 2529.000 26.2047 + 2530.000 -17.0405 + 2531.000 -17.5672 + 2532.000 10.4407 + 2533.000 -9.6688 + 2534.000 -10.1537 + 2535.000 -2.3000 + 2536.000 -1.7292 + 2537.000 -4.5768 + 2538.000 15.2113 + 2539.000 -11.5909 + 2540.000 -12.3113 + 2541.000 12.5131 + 2542.000 -12.4021 + 2543.000 -13.3094 + 2544.000 2.4712 + 2545.000 -1.7605 + 2546.000 -4.3230 + 2547.000 18.1762 + 2548.000 -12.9403 + 2549.000 -10.9194 + 2550.000 -8.0282 + 2551.000 0.8319 + 2552.000 -0.6178 + 2553.000 0.2358 + 2554.000 -6.7714 + 2555.000 -6.3372 + 2556.000 -17.6788 + 2557.000 5.1419 + 2558.000 5.3182 + 2559.000 -3.8882 + 2560.000 -0.6612 + 2561.000 -1.4058 + 2562.000 -12.1824 + 2563.000 3.6156 + 2564.000 2.5138 + 2565.000 -19.7151 + 2566.000 3.8354 + 2567.000 9.8178 + 2568.000 -12.4446 + 2569.000 1.9854 + 2570.000 1.6078 + 2571.000 -13.9147 + 2572.000 1.8948 + 2573.000 0.9849 + 2574.000 -19.6477 + 2575.000 3.3264 + 2576.000 10.2638 + 2577.000 -14.5836 + 2578.000 -0.0872 + 2579.000 2.6805 + 2580.000 -6.9563 + 2581.000 0.4052 + 2582.000 0.5966 + 2583.000 -12.4380 + 2584.000 -1.9463 + 2585.000 3.7326 + 2586.000 -18.2323 + 2587.000 3.7254 + 2588.000 5.2592 + 2589.000 -8.2598 + 2590.000 -0.3324 + 2591.000 -0.5451 + 2592.000 -19.1092 + 2593.000 5.7683 + 2594.000 0.8593 + 2595.000 -22.3180 + 2596.000 8.2600 + 2597.000 5.0786 + 2598.000 -6.9319 + 2599.000 -2.3855 + 2600.000 -1.7770 + 2601.000 -12.2773 + 2602.000 -0.0107 + 2603.000 2.4912 + 2604.000 -11.2207 + 2605.000 3.2333 + 2606.000 -0.7804 + 2607.000 -17.9693 + 2608.000 3.1535 + 2609.000 3.4112 + 2610.000 -19.4614 + 2611.000 8.9417 + 2612.000 3.2786 + 2613.000 -22.8377 + 2614.000 11.8487 + 2615.000 3.2981 + 2616.000 -8.5525 + 2617.000 0.3207 + 2618.000 -0.6577 + 2619.000 -12.4130 + 2620.000 2.7299 + 2621.000 1.6402 + 2622.000 -19.2923 + 2623.000 3.8571 + 2624.000 3.4200 + 2625.000 -30.3210 + 2626.000 12.8970 + 2627.000 12.6998 + 2628.000 -22.3483 + 2629.000 5.6119 + 2630.000 10.2656 + 2631.000 -7.9225 + 2632.000 -0.9195 + 2633.000 3.7611 + 2634.000 -3.6580 + 2635.000 -2.9118 + 2636.000 -3.2472 + 2637.000 -17.4145 + 2638.000 0.5067 + 2639.000 4.7823 + 2640.000 -0.9773 + 2641.000 -1.7782 + 2642.000 -5.1919 + 2643.000 -6.5285 + 2644.000 3.8620 + 2645.000 -1.4692 + 2646.000 -25.2923 + 2647.000 11.3555 + 2648.000 7.9282 + 2649.000 -11.2512 + 2650.000 0.5495 + 2651.000 5.8623 + 2652.000 -8.1862 + 2653.000 -0.4826 + 2654.000 1.1290 + 2655.000 -9.4953 + 2656.000 0.1057 + 2657.000 -1.2102 + 2658.000 -18.0689 + 2659.000 1.9167 + 2660.000 6.0232 + 2661.000 -11.7690 + 2662.000 0.2524 + 2663.000 2.6688 + 2664.000 -12.2944 + 2665.000 0.4693 + 2666.000 3.5249 + 2667.000 -9.8225 + 2668.000 0.8338 + 2669.000 -2.8843 + 2670.000 0.1325 + 2671.000 -3.6136 + 2672.000 -6.9804 + 2673.000 -10.3710 + 2674.000 1.8584 + 2675.000 1.0654 + 2676.000 -21.1172 + 2677.000 4.4865 + 2678.000 6.1120 + 2679.000 -30.8839 + 2680.000 11.8610 + 2681.000 13.8772 + 2682.000 -10.9351 + 2683.000 1.5451 + 2684.000 -1.3099 + 2685.000 -16.1267 + 2686.000 3.2443 + 2687.000 3.8736 + 2688.000 -17.1478 + 2689.000 1.5107 + 2690.000 4.6679 + 2691.000 -13.1837 + 2692.000 7.7467 + 2693.000 1.7505 + 2694.000 -15.9681 + 2695.000 2.6967 + 2696.000 2.4857 + 2697.000 -5.8973 + 2698.000 -0.1682 + 2699.000 -2.2786 + 2700.000 -18.8141 + 2701.000 6.0516 + 2702.000 5.4188 + 2703.000 -5.9898 + 2704.000 0.8831 + 2705.000 -1.0502 + 2706.000 -5.0769 + 2707.000 -4.0228 + 2708.000 -3.3527 + 2709.000 -7.8274 + 2710.000 -0.8877 + 2711.000 1.7267 + 2712.000 0.3379 + 2713.000 -6.6059 + 2714.000 -4.8904 + 2715.000 -9.4512 + 2716.000 2.3169 + 2717.000 -0.0666 + 2718.000 -11.2086 + 2719.000 -1.2862 + 2720.000 1.0963 + 2721.000 -15.7419 + 2722.000 2.5600 + 2723.000 5.0853 + 2724.000 -19.2968 + 2725.000 7.4776 + 2726.000 6.2228 + 2727.000 -25.9367 + 2728.000 8.8688 + 2729.000 10.0187 + 2730.000 -21.8887 + 2731.000 8.1158 + 2732.000 4.7609 + 2733.000 -13.2357 + 2734.000 1.3598 + 2735.000 1.0399 + 2736.000 -22.1755 + 2737.000 6.5521 + 2738.000 7.3661 + 2739.000 -10.0232 + 2740.000 4.8698 + 2741.000 -0.4721 + 2742.000 -13.3121 + 2743.000 3.9138 + 2744.000 3.4591 + 2745.000 -14.1667 + 2746.000 1.0318 + 2747.000 1.8984 + 2748.000 -11.4093 + 2749.000 -0.8272 + 2750.000 -1.2983 + 2751.000 -10.9380 + 2752.000 0.5419 + 2753.000 1.9542 + 2754.000 -16.8962 + 2755.000 2.8687 + 2756.000 3.7644 + 2757.000 -14.0111 + 2758.000 -1.2213 + 2759.000 3.1937 + 2760.000 -25.1231 + 2761.000 9.1955 + 2762.000 6.8638 + 2763.000 -14.5595 + 2764.000 1.6496 + 2765.000 2.4022 + 2766.000 -30.0544 + 2767.000 13.1629 + 2768.000 13.0989 + 2769.000 -9.6522 + 2770.000 3.3283 + 2771.000 -2.8891 + 2772.000 -15.2653 + 2773.000 4.2635 + 2774.000 2.1165 + 2775.000 -6.2844 + 2776.000 -0.4103 + 2777.000 1.6688 + 2778.000 -14.9897 + 2779.000 1.2425 + 2780.000 2.3437 + 2781.000 -26.9609 + 2782.000 10.0228 + 2783.000 10.2382 + 2784.000 -28.8321 + 2785.000 12.6248 + 2786.000 7.3416 + 2787.000 -18.9395 + 2788.000 5.1974 + 2789.000 5.1472 + 2790.000 -25.9572 + 2791.000 11.7218 + 2792.000 9.1667 + 2793.000 -10.3271 + 2794.000 2.2213 + 2795.000 3.0950 + 2796.000 -24.2174 + 2797.000 9.3565 + 2798.000 8.7041 + 2799.000 -31.9131 + 2800.000 15.1057 + 2801.000 11.0400 + 2802.000 -33.2241 + 2803.000 16.9390 + 2804.000 12.3768 + 2805.000 -15.3063 + 2806.000 2.5436 + 2807.000 9.6222 + 2808.000 -20.2537 + 2809.000 6.7758 + 2810.000 7.5633 + 2811.000 -19.9737 + 2812.000 4.1722 + 2813.000 6.4442 + 2814.000 -27.7919 + 2815.000 6.7650 + 2816.000 9.0451 + 2817.000 -25.4785 + 2818.000 8.6725 + 2819.000 6.8263 + 2820.000 -40.9933 + 2821.000 15.6264 + 2822.000 18.7595 + 2823.000 -16.9167 + 2824.000 8.9472 + 2825.000 4.1019 + 2826.000 -21.3880 + 2827.000 10.2551 + 2828.000 5.7528 + 2829.000 -35.0697 + 2830.000 9.2922 + 2831.000 15.5692 + 2832.000 -35.5062 + 2833.000 12.7562 + 2834.000 12.6095 + 2835.000 -23.9397 + 2836.000 7.0458 + 2837.000 6.3509 + 2838.000 -26.4591 + 2839.000 14.1134 + 2840.000 10.4039 + 2841.000 -21.7334 + 2842.000 5.2061 + 2843.000 11.3806 + 2844.000 -26.7807 + 2845.000 12.4399 + 2846.000 6.7158 + 2847.000 -24.1253 + 2848.000 8.8772 + 2849.000 6.1881 + 2850.000 -30.0862 + 2851.000 9.4814 + 2852.000 14.6183 + 2853.000 -18.7688 + 2854.000 5.6573 + 2855.000 3.8182 + 2856.000 -16.6624 + 2857.000 7.7425 + 2858.000 6.6396 + 2859.000 -17.8680 + 2860.000 3.4799 + 2861.000 5.9971 + 2862.000 -19.0631 + 2863.000 6.5394 + 2864.000 8.0084 + 2865.000 -25.9873 + 2866.000 7.4815 + 2867.000 9.2615 + 2868.000 -24.3566 + 2869.000 5.3203 + 2870.000 7.6022 + 2871.000 -8.7989 + 2872.000 0.6973 + 2873.000 -0.8248 + 2874.000 -34.0343 + 2875.000 11.9223 + 2876.000 11.6270 + 2877.000 -18.5441 + 2878.000 2.9571 + 2879.000 6.9287 + 2880.000 -21.7114 + 2881.000 6.8116 + 2882.000 3.5728 + 2883.000 -26.3726 + 2884.000 9.6796 + 2885.000 7.3785 + 2886.000 -33.8652 + 2887.000 15.4454 + 2888.000 14.9822 + 2889.000 -10.2245 + 2890.000 0.0835 + 2891.000 1.4269 + 2892.000 -35.4000 + 2893.000 13.4800 + 2894.000 10.8907 + 2895.000 -14.8351 + 2896.000 -0.3045 + 2897.000 2.6803 + 2898.000 -12.8644 + 2899.000 3.1513 + 2900.000 1.5926 + 2901.000 -22.2508 + 2902.000 3.8246 + 2903.000 10.2171 + 2904.000 -21.5145 + 2905.000 2.2765 + 2906.000 7.3790 + 2907.000 -19.0233 + 2908.000 8.6070 + 2909.000 4.5224 + 2910.000 -14.1649 + 2911.000 7.2929 + 2912.000 0.6145 + 2913.000 -14.4009 + 2914.000 2.1407 + 2915.000 3.1141 + 2916.000 -38.2934 + 2917.000 12.2831 + 2918.000 15.0508 + 2919.000 -17.4515 + 2920.000 7.1780 + 2921.000 3.6505 + 2922.000 -40.9559 + 2923.000 16.9466 + 2924.000 14.9459 + 2925.000 -15.3588 + 2926.000 5.2572 + 2927.000 5.7719 + 2928.000 -20.5704 + 2929.000 6.7795 + 2930.000 7.2892 + 2931.000 -24.1842 + 2932.000 7.3517 + 2933.000 7.1162 + 2934.000 -15.1060 + 2935.000 3.1658 + 2936.000 4.3402 + 2937.000 -18.4712 + 2938.000 3.8627 + 2939.000 5.0899 + 2940.000 7.6129 + 2941.000 -6.5931 + 2942.000 -6.8301 + 2943.000 -2.2788 + 2944.000 -2.4402 + 2945.000 -4.6469 + 2946.000 4.8973 + 2947.000 -6.9318 + 2948.000 -6.2350 + 2949.000 7.8974 + 2950.000 -5.3380 + 2951.000 -8.0114 + 2952.000 5.0692 + 2953.000 -2.5400 + 2954.000 -7.4264 + 2955.000 5.1360 + 2956.000 -9.8627 + 2957.000 -2.2962 + 2958.000 5.0998 + 2959.000 -5.7636 + 2960.000 -7.4420 + 2961.000 8.2368 + 2962.000 -10.0090 + 2963.000 -7.1758 + 2964.000 -7.4445 + 2965.000 -1.5461 + 2966.000 -1.0581 + 2967.000 -9.4959 + 2968.000 -0.0746 + 2969.000 -4.4680 + 2970.000 20.7625 + 2971.000 -18.2913 + 2972.000 -15.8321 + 2973.000 4.9620 + 2974.000 -6.7962 + 2975.000 -8.0658 + 2976.000 -3.4972 + 2977.000 -3.1459 + 2978.000 -1.1987 + 2979.000 -4.1443 + 2980.000 -1.5392 + 2981.000 -4.4465 + 2982.000 -12.4366 + 2983.000 0.6318 + 2984.000 0.7030 + 2985.000 -9.6003 + 2986.000 3.1538 + 2987.000 -1.9139 + 2988.000 4.1693 + 2989.000 -2.8122 + 2990.000 -5.9789 + 2991.000 -14.7380 + 2992.000 -0.3021 + 2993.000 2.5306 + 2994.000 3.9223 + 2995.000 -10.3395 + 2996.000 -3.7351 + 2997.000 6.6440 + 2998.000 -7.8769 + 2999.000 -7.7838 + 3000.000 8.6577 + 3001.000 -10.9624 + 3002.000 -8.2175 + 3003.000 -4.7183 + 3004.000 3.7588 + 3005.000 -5.5313 + 3006.000 12.9436 + 3007.000 -11.1209 + 3008.000 -13.5013 + 3009.000 3.8764 + 3010.000 -7.6784 + 3011.000 -4.8834 + 3012.000 -33.6775 + 3013.000 14.4208 + 3014.000 14.4400 + 3015.000 9.6030 + 3016.000 -4.2758 + 3017.000 -8.0892 + 3018.000 10.7264 + 3019.000 -10.4778 + 3020.000 -4.9104 + 3021.000 -23.5633 + 3022.000 10.5443 + 3023.000 8.8336 + 3024.000 -1.7065 + 3025.000 0.4192 + 3026.000 -0.2922 + 3027.000 2.4563 + 3028.000 -1.8306 + 3029.000 -7.2342 + 3030.000 -8.7527 + 3031.000 1.6810 + 3032.000 -0.7249 + 3033.000 -3.8156 + 3034.000 -2.9133 + 3035.000 0.0952 + 3036.000 2.5391 + 3037.000 -4.6966 + 3038.000 -1.6819 + 3039.000 12.8714 + 3040.000 -10.3100 + 3041.000 -11.3218 + 3042.000 -9.6563 + 3043.000 -0.1501 + 3044.000 3.2578 + 3045.000 7.6855 + 3046.000 -9.8041 + 3047.000 -6.3850 + 3048.000 9.9761 + 3049.000 -8.4727 + 3050.000 -11.0709 + 3051.000 -3.5277 + 3052.000 -0.2472 + 3053.000 -6.1730 + 3054.000 -15.6413 + 3055.000 0.8998 + 3056.000 1.3051 + 3057.000 -1.7007 + 3058.000 -1.8732 + 3059.000 -2.2323 + 3060.000 6.2933 + 3061.000 -5.0404 + 3062.000 -5.7051 + 3063.000 11.3322 + 3064.000 -10.3824 + 3065.000 -8.9997 + 3066.000 19.7304 + 3067.000 -12.3808 + 3068.000 -12.5146 + 3069.000 6.1336 + 3070.000 -8.0928 + 3071.000 -7.3804 + 3072.000 -1.6309 + 3073.000 -4.5460 + 3074.000 -3.5284 + 3075.000 -11.3442 + 3076.000 2.3896 + 3077.000 2.9450 + 3078.000 34.8407 + 3079.000 -23.5410 + 3080.000 -22.9615 + 3081.000 -10.3136 + 3082.000 1.1383 + 3083.000 -0.8034 + 3084.000 -14.9937 + 3085.000 2.1166 + 3086.000 3.4358 + 3087.000 24.3273 + 3088.000 -15.9630 + 3089.000 -18.3258 + 3090.000 5.7739 + 3091.000 -9.2251 + 3092.000 -7.3217 + 3093.000 9.0798 + 3094.000 -10.1883 + 3095.000 -7.4312 + 3096.000 -17.9791 + 3097.000 3.9887 + 3098.000 8.0082 + 3099.000 9.3369 + 3100.000 -9.0726 + 3101.000 -12.7116 + 3102.000 6.2066 + 3103.000 -6.3616 + 3104.000 -7.9762 + 3105.000 -0.0612 + 3106.000 -1.1437 + 3107.000 -1.4443 + 3108.000 19.5930 + 3109.000 -13.0159 + 3110.000 -15.2348 + 3111.000 16.3359 + 3112.000 -14.9586 + 3113.000 -14.8382 + 3114.000 -17.6019 + 3115.000 5.6798 + 3116.000 6.9023 + 3117.000 17.3943 + 3118.000 -15.3408 + 3119.000 -13.2059 + 3120.000 -3.0987 + 3121.000 -1.0547 + 3122.000 -1.0165 + 3123.000 -13.8212 + 3124.000 2.1465 + 3125.000 2.9441 + 3126.000 15.3121 + 3127.000 -11.3850 + 3128.000 -11.8390 + 3129.000 -9.9913 + 3130.000 -0.1538 + 3131.000 1.5209 + 3132.000 4.0496 + 3133.000 -9.7950 + 3134.000 -3.2204 + 3135.000 -18.4967 + 3136.000 6.8582 + 3137.000 5.2097 + 3138.000 10.4342 + 3139.000 -13.7704 + 3140.000 -8.1477 + 3141.000 6.6522 + 3142.000 -3.7395 + 3143.000 -8.4516 + 3144.000 -12.4156 + 3145.000 3.1034 + 3146.000 2.3433 + 3147.000 -27.4457 + 3148.000 10.7198 + 3149.000 10.3126 + 3150.000 -7.5655 + 3151.000 -0.1762 + 3152.000 -3.2356 + 3153.000 -5.2328 + 3154.000 -2.1130 + 3155.000 -0.7070 + 3156.000 16.1934 + 3157.000 -7.5201 + 3158.000 -14.0464 + 3159.000 23.2113 + 3160.000 -16.9354 + 3161.000 -14.5662 + 3162.000 19.3426 + 3163.000 -13.8727 + 3164.000 -14.7090 + 3165.000 17.7187 + 3166.000 -9.9706 + 3167.000 -14.3135 + 3168.000 11.9674 + 3169.000 -7.9258 + 3170.000 -9.6533 + 3171.000 0.6691 + 3172.000 -4.9291 + 3173.000 -5.7073 + 3174.000 0.8947 + 3175.000 -4.9215 + 3176.000 -6.3670 + 3177.000 -5.8287 + 3178.000 1.4897 + 3179.000 0.6573 + 3180.000 -15.9799 + 3181.000 2.1691 + 3182.000 3.4170 + 3183.000 -7.5640 + 3184.000 -1.0378 + 3185.000 -2.3174 + 3186.000 -0.1381 + 3187.000 -1.9138 + 3188.000 -5.4131 + 3189.000 -0.9044 + 3190.000 -5.7805 + 3191.000 -6.4169 + 3192.000 -1.4703 + 3193.000 -2.8431 + 3194.000 -3.5598 + 3195.000 2.8745 + 3196.000 -6.5761 + 3197.000 -6.2845 + 3198.000 39.7248 + 3199.000 -23.1819 + 3200.000 -26.9294 + 3201.000 23.6469 + 3202.000 -17.8793 + 3203.000 -17.1721 + 3204.000 -18.0453 + 3205.000 7.5226 + 3206.000 4.0036 + 3207.000 26.6874 + 3208.000 -15.9470 + 3209.000 -15.9653 + 3210.000 20.1294 + 3211.000 -16.8448 + 3212.000 -13.7502 + 3213.000 3.7978 + 3214.000 -4.0433 + 3215.000 -4.2289 + 3216.000 -0.1685 + 3217.000 -3.8397 + 3218.000 -5.2492 + 3219.000 12.4924 + 3220.000 -11.5936 + 3221.000 -11.0004 + 3222.000 19.2280 + 3223.000 -10.2393 + 3224.000 -12.9639 + 3225.000 11.1069 + 3226.000 -4.8330 + 3227.000 -9.0185 + 3228.000 3.0818 + 3229.000 -7.9839 + 3230.000 -0.5528 + 3231.000 8.2878 + 3232.000 -7.0255 + 3233.000 -9.7149 + 3234.000 0.0459 + 3235.000 -5.2437 + 3236.000 -3.5917 + 3237.000 4.1574 + 3238.000 -8.6767 + 3239.000 -5.7911 + 3240.000 9.7550 + 3241.000 -9.0633 + 3242.000 -14.7514 + 3243.000 3.2575 + 3244.000 -7.8486 + 3245.000 -8.2875 + 3246.000 -4.8638 + 3247.000 -2.0834 + 3248.000 -3.1867 + 3249.000 -6.0248 + 3250.000 -0.9651 + 3251.000 -1.0683 + 3252.000 1.4890 + 3253.000 -3.2895 + 3254.000 -6.7960 + 3255.000 13.2270 + 3256.000 -13.3993 + 3257.000 -10.9292 + 3258.000 11.2041 + 3259.000 -8.2860 + 3260.000 -12.4688 + 3261.000 -1.6166 + 3262.000 0.7560 + 3263.000 -4.3098 + 3264.000 13.6364 + 3265.000 -13.5237 + 3266.000 -11.3223 + 3267.000 -6.4950 + 3268.000 -4.5045 + 3269.000 2.5345 + 3270.000 20.9648 + 3271.000 -13.2746 + 3272.000 -14.4694 + 3273.000 9.7401 + 3274.000 -10.0082 + 3275.000 -7.9659 + 3276.000 10.7887 + 3277.000 -4.9195 + 3278.000 -13.8820 + 3279.000 4.7022 + 3280.000 -6.8907 + 3281.000 -10.0934 + 3282.000 29.4952 + 3283.000 -18.3887 + 3284.000 -18.1065 + 3285.000 -12.1138 + 3286.000 4.0840 + 3287.000 3.3288 + 3288.000 1.1733 + 3289.000 -1.1655 + 3290.000 -3.5668 + 3291.000 -0.1096 + 3292.000 -5.0918 + 3293.000 1.2112 + 3294.000 -2.1544 + 3295.000 0.2561 + 3296.000 -1.2187 + 3297.000 2.8843 + 3298.000 -2.5588 + 3299.000 -1.8692 + 3300.000 -14.5431 + 3301.000 7.4104 + 3302.000 1.5296 + 3303.000 20.4268 + 3304.000 -13.7584 + 3305.000 -16.3832 + 3306.000 2.3656 + 3307.000 -6.8080 + 3308.000 -3.8085 + 3309.000 15.6724 + 3310.000 -12.0789 + 3311.000 -8.0363 + 3312.000 1.0963 + 3313.000 -4.0880 + 3314.000 -4.9900 + 3315.000 8.8656 + 3316.000 -8.9835 + 3317.000 -6.9383 + 3318.000 7.1555 + 3319.000 -9.1152 + 3320.000 -7.5859 + 3321.000 -3.8377 + 3322.000 -0.9382 + 3323.000 -4.4815 + 3324.000 17.7270 + 3325.000 -12.5160 + 3326.000 -17.0362 + 3327.000 10.0158 + 3328.000 -11.0788 + 3329.000 -10.7890 + 3330.000 16.9455 + 3331.000 -10.8401 + 3332.000 -12.4991 + 3333.000 5.7072 + 3334.000 -3.8487 + 3335.000 -5.6332 + 3336.000 4.3508 + 3337.000 -7.3568 + 3338.000 -5.6017 + 3339.000 -2.3972 + 3340.000 -2.0247 + 3341.000 -1.1965 + 3342.000 -2.3531 + 3343.000 -4.2579 + 3344.000 -4.1255 + 3345.000 10.1257 + 3346.000 -11.1746 + 3347.000 -8.6788 + 3348.000 -3.7040 + 3349.000 -1.4784 + 3350.000 -0.6006 + 3351.000 6.3761 + 3352.000 -7.2370 + 3353.000 -10.9215 + 3354.000 31.7078 + 3355.000 -18.5714 + 3356.000 -21.9077 + 3357.000 9.7278 + 3358.000 -10.7796 + 3359.000 -9.5356 + 3360.000 8.1651 + 3361.000 -6.8244 + 3362.000 -10.2811 + 3363.000 -8.7905 + 3364.000 -1.9517 + 3365.000 1.0740 + 3366.000 -9.2543 + 3367.000 -0.1727 + 3368.000 1.5920 + 3369.000 -7.2769 + 3370.000 -2.3824 + 3371.000 2.7425 + 3372.000 1.4660 + 3373.000 -3.7540 + 3374.000 -8.9445 + 3375.000 -13.3093 + 3376.000 2.5305 + 3377.000 2.4042 + 3378.000 -19.2515 + 3379.000 8.5485 + 3380.000 7.6888 + 3381.000 26.6627 + 3382.000 -16.2583 + 3383.000 -17.9995 + 3384.000 7.4327 + 3385.000 -10.6420 + 3386.000 -10.1012 + 3387.000 23.2182 + 3388.000 -14.1107 + 3389.000 -15.4091 + 3390.000 -4.8662 + 3391.000 -3.8994 + 3392.000 -1.2930 + 3393.000 20.1155 + 3394.000 -12.0825 + 3395.000 -13.0780 + 3396.000 18.5502 + 3397.000 -13.9158 + 3398.000 -15.0703 + 3399.000 -3.9612 + 3400.000 -2.5481 + 3401.000 -1.5282 + 3402.000 12.0654 + 3403.000 -11.6226 + 3404.000 -8.3082 + 3405.000 -12.7448 + 3406.000 -1.8954 + 3407.000 4.6122 + 3408.000 10.3222 + 3409.000 -8.4633 + 3410.000 -8.5927 + 3411.000 -3.6032 + 3412.000 -7.7830 + 3413.000 -0.5432 + 3414.000 -11.7509 + 3415.000 5.5986 + 3416.000 0.4429 + 3417.000 1.7578 + 3418.000 -3.8328 + 3419.000 -4.7749 + 3420.000 -11.5904 + 3421.000 1.9584 + 3422.000 2.9462 + 3423.000 14.4698 + 3424.000 -11.1702 + 3425.000 -12.8444 + 3426.000 13.8555 + 3427.000 -12.1041 + 3428.000 -10.7181 + 3429.000 -0.6424 + 3430.000 0.9063 + 3431.000 -5.1584 + 3432.000 1.1565 + 3433.000 -6.8881 + 3434.000 -3.9893 + 3435.000 27.4228 + 3436.000 -16.8381 + 3437.000 -20.3658 + 3438.000 12.1330 + 3439.000 -8.7402 + 3440.000 -10.8124 + 3441.000 31.5024 + 3442.000 -19.6555 + 3443.000 -19.2199 + 3444.000 -1.5890 + 3445.000 -2.5963 + 3446.000 -3.6282 + 3447.000 14.4172 + 3448.000 -12.9400 + 3449.000 -12.7120 + 3450.000 17.2324 + 3451.000 -11.1133 + 3452.000 -11.8441 + 3453.000 17.3690 + 3454.000 -15.4725 + 3455.000 -13.8329 + 3456.000 7.1142 + 3457.000 -7.1989 + 3458.000 -9.2517 + 3459.000 26.2673 + 3460.000 -17.2099 + 3461.000 -17.6967 + 3462.000 21.1385 + 3463.000 -17.0662 + 3464.000 -16.0003 + 3465.000 5.4766 + 3466.000 -5.2107 + 3467.000 -7.4490 + 3468.000 9.7902 + 3469.000 -8.6532 + 3470.000 -10.5174 + 3471.000 40.5697 + 3472.000 -24.8608 + 3473.000 -26.1635 + 3474.000 10.5540 + 3475.000 -9.5073 + 3476.000 -12.6534 + 3477.000 8.7669 + 3478.000 -5.3343 + 3479.000 -9.0056 + 3480.000 6.9589 + 3481.000 -5.7696 + 3482.000 -8.0633 + 3483.000 3.7126 + 3484.000 -9.3663 + 3485.000 -6.4010 + 3486.000 -24.9590 + 3487.000 8.5473 + 3488.000 9.8153 + 3489.000 -12.2631 + 3490.000 3.5682 + 3491.000 1.8894 + 3492.000 -15.8674 + 3493.000 5.9527 + 3494.000 3.9989 + 3495.000 -30.6623 + 3496.000 13.5848 + 3497.000 15.4366 + 3498.000 -16.5443 + 3499.000 4.6339 + 3500.000 3.3536 + 3501.000 -22.3549 + 3502.000 5.4282 + 3503.000 7.5536 + 3504.000 -20.4507 + 3505.000 6.0796 + 3506.000 1.3756 + 3507.000 -26.9362 + 3508.000 11.2964 + 3509.000 7.1973 + 3510.000 -12.9830 + 3511.000 0.1424 + 3512.000 2.8637 + 3513.000 -15.8799 + 3514.000 5.4879 + 3515.000 1.6955 + 3516.000 -12.7685 + 3517.000 0.6015 + 3518.000 1.7451 + 3519.000 -26.6746 + 3520.000 13.2727 + 3521.000 6.8770 + 3522.000 -17.0921 + 3523.000 8.4425 + 3524.000 0.2992 + 3525.000 -11.5196 + 3526.000 2.5116 + 3527.000 0.7449 + 3528.000 -31.5912 + 3529.000 13.8457 + 3530.000 12.9735 + 3531.000 -23.8730 + 3532.000 11.1511 + 3533.000 9.5955 + 3534.000 -23.9117 + 3535.000 10.3948 + 3536.000 11.1250 + 3537.000 -11.8285 + 3538.000 1.7795 + 3539.000 -0.7069 + 3540.000 -20.5561 + 3541.000 4.9595 + 3542.000 8.0485 + 3543.000 -8.8903 + 3544.000 0.5945 + 3545.000 3.8882 + 3546.000 -13.9231 + 3547.000 2.3248 + 3548.000 4.1626 + 3549.000 -13.0488 + 3550.000 3.0614 + 3551.000 -1.9105 + 3552.000 -13.0811 + 3553.000 1.2353 + 3554.000 0.4255 + 3555.000 -7.7784 + 3556.000 1.3585 + 3557.000 -0.3709 + 3558.000 -19.4374 + 3559.000 3.0906 + 3560.000 5.8533 + 3561.000 -32.3955 + 3562.000 13.0242 + 3563.000 14.0577 + 3564.000 -8.3397 + 3565.000 0.6546 + 3566.000 0.0599 + 3567.000 -12.9715 + 3568.000 -0.0201 + 3569.000 2.1719 + 3570.000 -30.2441 + 3571.000 9.0447 + 3572.000 13.9527 + 3573.000 -7.9976 + 3574.000 0.7365 + 3575.000 -1.7644 + 3576.000 -7.7851 + 3577.000 0.3457 + 3578.000 -0.5111 + 3579.000 -0.3839 + 3580.000 -1.2032 + 3581.000 -3.3882 + 3582.000 -10.8286 + 3583.000 -0.3010 + 3584.000 -0.4666 + 3585.000 -11.0062 + 3586.000 0.3934 + 3587.000 3.5788 + 3588.000 -14.3729 + 3589.000 3.0886 + 3590.000 3.4476 + 3591.000 -23.2301 + 3592.000 8.9736 + 3593.000 8.0092 + 3594.000 -33.8464 + 3595.000 12.6302 + 3596.000 14.1935 + 3597.000 -17.0530 + 3598.000 5.4180 + 3599.000 3.0796 + 3600.000 -15.5637 + 3601.000 2.7243 + 3602.000 4.2771 + 3603.000 -19.8032 + 3604.000 10.0343 + 3605.000 3.1389 + 3606.000 -15.7440 + 3607.000 4.2000 + 3608.000 4.1692 + 3609.000 -20.7312 + 3610.000 3.5509 + 3611.000 5.3295 + 3612.000 -11.9550 + 3613.000 3.8910 + 3614.000 1.9471 + 3615.000 -11.9625 + 3616.000 -1.9630 + 3617.000 1.0438 + 3618.000 -24.2978 + 3619.000 9.0978 + 3620.000 6.2020 + 3621.000 -10.9214 + 3622.000 1.4743 + 3623.000 0.9359 + 3624.000 -15.9933 + 3625.000 2.2327 + 3626.000 3.1855 + 3627.000 -28.0057 + 3628.000 10.9744 + 3629.000 10.1117 + 3630.000 -27.0683 + 3631.000 12.1328 + 3632.000 6.4004 + 3633.000 -15.6714 + 3634.000 6.5112 + 3635.000 3.9477 + 3636.000 -38.3073 + 3637.000 13.6390 + 3638.000 15.6591 + 3639.000 -36.6756 + 3640.000 18.9739 + 3641.000 14.7408 + 3642.000 -35.1829 + 3643.000 13.4210 + 3644.000 12.2602 + 3645.000 -49.5335 + 3646.000 24.5180 + 3647.000 19.7655 + 3648.000 -38.3962 + 3649.000 17.2495 + 3650.000 14.7498 + 3651.000 -30.8655 + 3652.000 11.4276 + 3653.000 11.3493 + 3654.000 -31.0472 + 3655.000 9.5880 + 3656.000 13.6801 + 3657.000 -37.4687 + 3658.000 19.2283 + 3659.000 11.4995 + 3660.000 -41.3693 + 3661.000 17.8183 + 3662.000 16.1590 + 3663.000 -39.2186 + 3664.000 15.4118 + 3665.000 18.8895 + 3666.000 -23.5711 + 3667.000 5.3931 + 3668.000 8.7344 + 3669.000 -36.3997 + 3670.000 14.1408 + 3671.000 17.6310 + 3672.000 -9.6845 + 3673.000 0.0946 + 3674.000 3.9804 + 3675.000 -27.1843 + 3676.000 13.1571 + 3677.000 9.0445 + 3678.000 -50.1913 + 3679.000 19.7943 + 3680.000 21.3168 + 3681.000 -27.7629 + 3682.000 6.2729 + 3683.000 13.9307 + 3684.000 -4.4345 + 3685.000 -0.8539 + 3686.000 -2.2449 + 3687.000 -43.2903 + 3688.000 14.8608 + 3689.000 17.5374 + 3690.000 -30.6266 + 3691.000 12.3976 + 3692.000 8.9219 + 3693.000 -19.3814 + 3694.000 5.0527 + 3695.000 4.7636 + 3696.000 -22.6148 + 3697.000 8.8665 + 3698.000 7.1166 + 3699.000 -42.7977 + 3700.000 17.7611 + 3701.000 15.9030 + 3702.000 -18.5203 + 3703.000 4.6549 + 3704.000 2.0675 + 3705.000 -26.9736 + 3706.000 6.2869 + 3707.000 9.2915 + 3708.000 -47.2992 + 3709.000 18.7986 + 3710.000 19.9416 + 3711.000 -28.4033 + 3712.000 11.6286 + 3713.000 7.9287 + 3714.000 -35.9333 + 3715.000 12.1587 + 3716.000 14.3015 + 3717.000 -38.9554 + 3718.000 19.0317 + 3719.000 16.1068 + 3720.000 -18.5699 + 3721.000 5.7035 + 3722.000 4.2030 + 3723.000 -26.6246 + 3724.000 6.0925 + 3725.000 5.7880 + 3726.000 -44.5814 + 3727.000 17.8411 + 3728.000 18.9401 + 3729.000 -31.2739 + 3730.000 14.8705 + 3731.000 10.2487 + 3732.000 -27.8160 + 3733.000 13.5513 + 3734.000 11.4385 + 3735.000 -16.1274 + 3736.000 0.5877 + 3737.000 3.6416 + 3738.000 -13.3518 + 3739.000 0.7696 + 3740.000 0.8995 + 3741.000 -43.2161 + 3742.000 15.5684 + 3743.000 23.4806 + 3744.000 -23.3081 + 3745.000 7.3788 + 3746.000 9.3966 + 3747.000 -43.2696 + 3748.000 15.8355 + 3749.000 20.6160 + 3750.000 -44.1470 + 3751.000 22.0617 + 3752.000 16.9587 + 3753.000 -26.1373 + 3754.000 10.1519 + 3755.000 7.4374 + 3756.000 -53.3258 + 3757.000 27.5449 + 3758.000 19.3332 + 3759.000 -26.0146 + 3760.000 5.4878 + 3761.000 9.5760 + 3762.000 -23.3762 + 3763.000 8.3373 + 3764.000 7.1024 + 3765.000 -21.8282 + 3766.000 3.4806 + 3767.000 7.4952 + 3768.000 -18.8738 + 3769.000 3.1542 + 3770.000 8.2246 + 3771.000 -32.2535 + 3772.000 11.4190 + 3773.000 12.0000 + 3774.000 -27.0884 + 3775.000 10.2938 + 3776.000 6.9727 + 3777.000 -33.6347 + 3778.000 11.8971 + 3779.000 14.5733 + 3780.000 -24.3067 + 3781.000 13.6865 + 3782.000 7.4841 + 3783.000 -28.6587 + 3784.000 8.5280 + 3785.000 9.4191 + 3786.000 -13.0161 + 3787.000 3.9781 + 3788.000 2.5025 + 3789.000 -20.9029 + 3790.000 7.8191 + 3791.000 2.8119 + 3792.000 -13.7736 + 3793.000 0.2553 + 3794.000 1.5753 + 3795.000 -18.7566 + 3796.000 3.2106 + 3797.000 3.8864 + 3798.000 -5.9856 + 3799.000 -2.9118 + 3800.000 -0.3137 + 3801.000 -33.5698 + 3802.000 16.6253 + 3803.000 9.6187 + 3804.000 -49.4198 + 3805.000 21.1801 + 3806.000 19.4416 + 3807.000 -26.2539 + 3808.000 11.4004 + 3809.000 10.4230 + 3810.000 -14.0640 + 3811.000 1.0134 + 3812.000 1.3431 + 3813.000 -30.5696 + 3814.000 9.2379 + 3815.000 11.4578 + 3816.000 -47.9194 + 3817.000 21.3088 + 3818.000 17.3359 + 3819.000 -37.4811 + 3820.000 13.3421 + 3821.000 16.6330 + 3822.000 -25.8735 + 3823.000 5.6848 + 3824.000 7.1792 + 3825.000 -16.1270 + 3826.000 1.3128 + 3827.000 2.8393 + 3828.000 -24.4091 + 3829.000 9.2846 + 3830.000 7.4287 + 3831.000 -27.6660 + 3832.000 11.2503 + 3833.000 7.3160 + 3834.000 -4.8708 + 3835.000 -2.7091 + 3836.000 -1.7615 + 3837.000 -17.2482 + 3838.000 5.8245 + 3839.000 3.3645 + 3840.000 -21.5621 + 3841.000 6.5937 + 3842.000 11.1076 + 3843.000 -20.2948 + 3844.000 5.3435 + 3845.000 3.8254 + 3846.000 -25.0159 + 3847.000 4.4564 + 3848.000 10.1029 + 3849.000 -29.1523 + 3850.000 10.0072 + 3851.000 8.9812 + 3852.000 -17.1733 + 3853.000 5.1932 + 3854.000 6.0169 + 3855.000 -18.1868 + 3856.000 6.2489 + 3857.000 5.1404 + 3858.000 -15.2190 + 3859.000 1.6746 + 3860.000 2.7155 + 3861.000 -23.3672 + 3862.000 6.4627 + 3863.000 6.1770 + 3864.000 22.5188 + 3865.000 -17.9154 + 3866.000 -14.2890 + 3867.000 23.3382 + 3868.000 -13.4574 + 3869.000 -16.0317 + 3870.000 11.6401 + 3871.000 -8.9363 + 3872.000 -7.6100 + 3873.000 29.3155 + 3874.000 -17.6972 + 3875.000 -18.4835 + 3876.000 8.1586 + 3877.000 -9.8870 + 3878.000 -10.0237 + 3879.000 7.0991 + 3880.000 -8.4054 + 3881.000 -6.6122 + 3882.000 31.2435 + 3883.000 -24.3346 + 3884.000 -19.7300 + 3885.000 51.9550 + 3886.000 -26.2127 + 3887.000 -27.2567 + 3888.000 42.9818 + 3889.000 -26.2326 + 3890.000 -22.6447 + 3891.000 11.8936 + 3892.000 -11.7879 + 3893.000 -9.9892 + 3894.000 23.5852 + 3895.000 -13.9018 + 3896.000 -20.1274 + 3897.000 4.7183 + 3898.000 -8.7197 + 3899.000 -4.7327 + 3900.000 17.1714 + 3901.000 -17.9807 + 3902.000 -8.1894 + 3903.000 -14.0271 + 3904.000 7.3581 + 3905.000 2.1410 + 3906.000 24.8833 + 3907.000 -16.2717 + 3908.000 -14.6890 + 3909.000 23.8174 + 3910.000 -16.4258 + 3911.000 -14.1629 + 3912.000 17.0081 + 3913.000 -13.5583 + 3914.000 -8.8306 + 3915.000 10.5224 + 3916.000 -10.7990 + 3917.000 -4.3320 + 3918.000 22.0497 + 3919.000 -16.0014 + 3920.000 -11.0725 + 3921.000 47.5467 + 3922.000 -28.4215 + 3923.000 -22.0565 + 3924.000 5.1253 + 3925.000 -6.4367 + 3926.000 -8.8882 + 3927.000 22.4152 + 3928.000 -12.1647 + 3929.000 -16.2057 + 3930.000 13.4434 + 3931.000 -12.0961 + 3932.000 -14.4773 + 3933.000 17.3070 + 3934.000 -13.7469 + 3935.000 -12.8026 + 3936.000 18.0023 + 3937.000 -16.8360 + 3938.000 -12.5086 + 3939.000 19.9927 + 3940.000 -17.3889 + 3941.000 -9.3899 + 3942.000 -17.3684 + 3943.000 9.8591 + 3944.000 1.7877 + 3945.000 19.6215 + 3946.000 -15.5862 + 3947.000 -13.6464 + 3948.000 1.3707 + 3949.000 -1.9790 + 3950.000 -7.3462 + 3951.000 -7.3626 + 3952.000 -5.0545 + 3953.000 -0.2668 + 3954.000 54.2925 + 3955.000 -28.7402 + 3956.000 -26.8362 + 3957.000 8.0861 + 3958.000 -7.0475 + 3959.000 -10.5744 + 3960.000 7.6754 + 3961.000 -7.6262 + 3962.000 -10.5285 + 3963.000 -6.3800 + 3964.000 -2.9679 + 3965.000 -1.8613 + 3966.000 25.2789 + 3967.000 -16.6890 + 3968.000 -17.4743 + 3969.000 41.6925 + 3970.000 -24.6758 + 3971.000 -26.8073 + 3972.000 -6.6952 + 3973.000 -2.5661 + 3974.000 0.8881 + 3975.000 44.1080 + 3976.000 -27.5853 + 3977.000 -28.6517 + 3978.000 -0.4618 + 3979.000 -2.4023 + 3980.000 -3.6570 + 3981.000 -11.5769 + 3982.000 0.5126 + 3983.000 1.9332 + 3984.000 22.5232 + 3985.000 -12.1324 + 3986.000 -19.7837 + 3987.000 15.5090 + 3988.000 -10.7818 + 3989.000 -11.4054 + 3990.000 23.2922 + 3991.000 -11.0806 + 3992.000 -18.4957 + 3993.000 38.7864 + 3994.000 -26.4413 + 3995.000 -22.8149 + 3996.000 34.8532 + 3997.000 -18.6344 + 3998.000 -21.5958 + 3999.000 40.3529 + 4000.000 -25.6951 + 4001.000 -23.8759 + 4002.000 43.6169 + 4003.000 -22.3065 + 4004.000 -28.3983 + 4005.000 25.2882 + 4006.000 -18.6435 + 4007.000 -18.6189 + 4008.000 11.7218 + 4009.000 -9.4671 + 4010.000 -14.7663 + 4011.000 8.2790 + 4012.000 -10.7362 + 4013.000 -5.0701 + 4014.000 28.3364 + 4015.000 -18.3222 + 4016.000 -18.6048 + 4017.000 0.6468 + 4018.000 -3.4257 + 4019.000 -4.6397 + 4020.000 32.3951 + 4021.000 -15.7639 + 4022.000 -20.5173 + 4023.000 4.1520 + 4024.000 -4.4829 + 4025.000 -7.8011 + 4026.000 61.0854 + 4027.000 -33.7859 + 4028.000 -32.2495 + 4029.000 -4.0351 + 4030.000 -4.4686 + 4031.000 0.2933 + 4032.000 37.9654 + 4033.000 -23.5271 + 4034.000 -25.4882 + 4035.000 28.4343 + 4036.000 -19.6634 + 4037.000 -13.8467 + 4038.000 -11.6849 + 4039.000 3.6350 + 4040.000 -0.9011 + 4041.000 -11.7945 + 4042.000 1.3568 + 4043.000 -3.0186 + 4044.000 19.7072 + 4045.000 -12.3294 + 4046.000 -11.8243 + 4047.000 -1.9206 + 4048.000 -0.8472 + 4049.000 -3.1688 + 4050.000 5.4541 + 4051.000 -9.0827 + 4052.000 -3.6340 + 4053.000 18.6717 + 4054.000 -9.7261 + 4055.000 -15.3084 + 4056.000 -11.5793 + 4057.000 5.2089 + 4058.000 -1.0249 + 4059.000 4.1863 + 4060.000 -1.3011 + 4061.000 -8.0690 + 4062.000 20.5406 + 4063.000 -17.1986 + 4064.000 -14.7720 + 4065.000 43.7365 + 4066.000 -28.1653 + 4067.000 -24.8155 + 4068.000 45.1452 + 4069.000 -25.7837 + 4070.000 -28.5749 + 4071.000 6.8499 + 4072.000 -7.3241 + 4073.000 -9.9952 + 4074.000 64.0552 + 4075.000 -37.3265 + 4076.000 -34.8198 + 4077.000 54.2463 + 4078.000 -30.3379 + 4079.000 -29.3310 + 4080.000 12.4915 + 4081.000 -9.1557 + 4082.000 -9.6411 + 4083.000 19.6230 + 4084.000 -16.0169 + 4085.000 -14.7349 + 4086.000 21.8655 + 4087.000 -15.4686 + 4088.000 -15.7000 + 4089.000 18.0323 + 4090.000 -14.6384 + 4091.000 -11.5560 + 4092.000 -22.3132 + 4093.000 7.4190 + 4094.000 10.0209 + 4095.000 -11.6573 + 4096.000 7.2268 + 4097.000 1.7009 + 4098.000 22.1779 + 4099.000 -11.5495 + 4100.000 -16.1282 + 4101.000 -20.3928 + 4102.000 6.8331 + 4103.000 3.7443 + 4104.000 28.6335 + 4105.000 -21.4015 + 4106.000 -17.9887 + 4107.000 -9.3937 + 4108.000 0.6637 + 4109.000 -2.0827 + 4110.000 30.2379 + 4111.000 -16.5767 + 4112.000 -19.6798 + 4113.000 -13.1391 + 4114.000 5.7300 + 4115.000 1.2515 + 4116.000 -14.8545 + 4117.000 2.7854 + 4118.000 3.1927 + 4119.000 -2.7915 + 4120.000 -9.0797 + 4121.000 -1.8796 + 4122.000 -9.4052 + 4123.000 2.6020 + 4124.000 3.4428 + 4125.000 -7.2951 + 4126.000 -0.3611 + 4127.000 -2.5977 + 4128.000 1.2638 + 4129.000 -6.7175 + 4130.000 -4.6452 + 4131.000 23.4855 + 4132.000 -16.2519 + 4133.000 -16.3730 + 4134.000 -3.4687 + 4135.000 -2.8657 + 4136.000 -2.5807 + 4137.000 -6.1758 + 4138.000 -2.8300 + 4139.000 -0.9849 + 4140.000 28.7899 + 4141.000 -17.8374 + 4142.000 -23.8263 + 4143.000 58.0116 + 4144.000 -35.3019 + 4145.000 -34.2032 + 4146.000 7.6921 + 4147.000 -3.3470 + 4148.000 -11.8716 + 4149.000 12.3111 + 4150.000 -9.9649 + 4151.000 -12.4663 + 4152.000 7.3239 + 4153.000 -5.0751 + 4154.000 -7.9611 + 4155.000 46.9744 + 4156.000 -28.4381 + 4157.000 -31.6678 + 4158.000 15.8261 + 4159.000 -14.8933 + 4160.000 -12.1496 + 4161.000 0.3624 + 4162.000 -3.2956 + 4163.000 -5.5915 + 4164.000 7.3061 + 4165.000 -6.5883 + 4166.000 -8.9549 + 4167.000 -20.5798 + 4168.000 6.3172 + 4169.000 5.2784 + 4170.000 -1.9274 + 4171.000 -0.9225 + 4172.000 -8.6033 + 4173.000 10.6800 + 4174.000 -7.9673 + 4175.000 -10.2459 + 4176.000 15.3242 + 4177.000 -13.7425 + 4178.000 -9.1678 + 4179.000 6.8756 + 4180.000 -9.1849 + 4181.000 -9.3843 + 4182.000 24.5461 + 4183.000 -18.7424 + 4184.000 -15.9070 + 4185.000 33.1627 + 4186.000 -22.5077 + 4187.000 -20.4604 + 4188.000 30.1087 + 4189.000 -18.3355 + 4190.000 -21.3518 + 4191.000 25.0489 + 4192.000 -18.4496 + 4193.000 -14.6064 + 4194.000 30.0823 + 4195.000 -18.0304 + 4196.000 -21.3130 + 4197.000 25.9371 + 4198.000 -13.9295 + 4199.000 -18.7333 + 4200.000 48.1035 + 4201.000 -25.6049 + 4202.000 -30.4401 + 4203.000 38.3150 + 4204.000 -24.7323 + 4205.000 -22.0319 + 4206.000 2.4840 + 4207.000 -3.6690 + 4208.000 -5.8420 + 4209.000 10.8183 + 4210.000 -6.0686 + 4211.000 -12.3202 + 4212.000 9.8943 + 4213.000 -12.0320 + 4214.000 -8.2778 + 4215.000 -8.5324 + 4216.000 0.0391 + 4217.000 -2.7796 + 4218.000 22.4693 + 4219.000 -19.1212 + 4220.000 -17.9563 + 4221.000 48.4535 + 4222.000 -28.4982 + 4223.000 -25.2852 + 4224.000 46.0903 + 4225.000 -27.8458 + 4226.000 -28.9820 + 4227.000 49.4740 + 4228.000 -27.7105 + 4229.000 -24.2524 + 4230.000 47.5462 + 4231.000 -28.6715 + 4232.000 -30.1984 + 4233.000 -11.2676 + 4234.000 0.0495 + 4235.000 2.8318 + 4236.000 -3.1164 + 4237.000 -1.9902 + 4238.000 -2.3810 + 4239.000 -14.2624 + 4240.000 5.3681 + 4241.000 4.6178 + 4242.000 8.9313 + 4243.000 -6.2556 + 4244.000 -6.5898 + 4245.000 8.3340 + 4246.000 -8.3425 + 4247.000 -7.8412 + 4248.000 -17.7874 + 4249.000 3.2805 + 4250.000 6.9421 + 4251.000 -0.1612 + 4252.000 -4.6229 + 4253.000 -3.9674 + 4254.000 1.6000 + 4255.000 -6.7249 + 4256.000 -6.6125 + 4257.000 -8.3789 + 4258.000 -0.6232 + 4259.000 3.7614 + 4260.000 -20.4115 + 4261.000 4.3815 + 4262.000 4.6262 + 4263.000 -42.2085 + 4264.000 11.5519 + 4265.000 12.3138 + 4266.000 -0.8543 + 4267.000 -7.2880 + 4268.000 -4.1621 + 4269.000 -2.3625 + 4270.000 -4.1303 + 4271.000 -3.2866 + 4272.000 9.1510 + 4273.000 -9.0981 + 4274.000 -8.8466 + 4275.000 21.7291 + 4276.000 -16.9148 + 4277.000 -12.8811 + 4278.000 -7.6536 + 4279.000 1.5420 + 4280.000 0.4634 + 4281.000 -11.1467 + 4282.000 -0.7815 + 4283.000 2.2717 + 4284.000 13.8317 + 4285.000 -10.0986 + 4286.000 -10.6652 + 4287.000 -5.4260 + 4288.000 -1.3892 + 4289.000 -0.2863 + 4290.000 -22.5280 + 4291.000 13.9373 + 4292.000 4.3817 + 4293.000 13.6068 + 4294.000 -9.7571 + 4295.000 -7.6929 + 4296.000 -25.9447 + 4297.000 7.4583 + 4298.000 9.3534 + 4299.000 -54.6076 + 4300.000 18.8115 + 4301.000 20.5686 + 4302.000 5.6734 + 4303.000 -5.3490 + 4304.000 -8.6391 + 4305.000 -8.8107 + 4306.000 5.9744 + 4307.000 -0.2915 + 4308.000 12.6776 + 4309.000 -13.2500 + 4310.000 -12.4410 + 4311.000 -7.2935 + 4312.000 1.2336 + 4313.000 -2.0528 + 4314.000 8.2621 + 4315.000 -8.3551 + 4316.000 -10.5117 + 4317.000 -26.1069 + 4318.000 8.2981 + 4319.000 11.2504 + 4320.000 4.5604 + 4321.000 -2.7891 + 4322.000 -8.6127 + 4323.000 -28.8574 + 4324.000 11.4605 + 4325.000 8.3496 + 4326.000 -13.0589 + 4327.000 0.0934 + 4328.000 4.5674 + 4329.000 4.9622 + 4330.000 -1.7285 + 4331.000 -8.8444 + 4332.000 19.1401 + 4333.000 -16.6452 + 4334.000 -14.1914 + 4335.000 2.5454 + 4336.000 -2.9873 + 4337.000 -6.6708 + 4338.000 16.5649 + 4339.000 -15.1851 + 4340.000 -14.7207 + 4341.000 26.5514 + 4342.000 -18.5593 + 4343.000 -16.3779 + 4344.000 26.7024 + 4345.000 -18.7819 + 4346.000 -18.4143 + 4347.000 -82.0667 + 4348.000 26.4308 + 4349.000 30.9248 + 4350.000 2.5989 + 4351.000 -4.5267 + 4352.000 -3.4982 + 4353.000 -18.8101 + 4354.000 2.9949 + 4355.000 2.4533 + 4356.000 -29.8591 + 4357.000 7.0086 + 4358.000 9.6692 + 4359.000 24.8086 + 4360.000 -17.9249 + 4361.000 -13.4426 + 4362.000 -34.8962 + 4363.000 14.2009 + 4364.000 17.3826 + 4365.000 18.4278 + 4366.000 -12.5501 + 4367.000 -13.8986 + 4368.000 34.3815 + 4369.000 -25.1056 + 4370.000 -22.6129 + 4371.000 -3.4408 + 4372.000 -2.0853 + 4373.000 -7.6424 + 4374.000 -24.3554 + 4375.000 7.8561 + 4376.000 8.0571 + 4377.000 9.8060 + 4378.000 -6.6447 + 4379.000 -8.5444 + 4380.000 -11.7066 + 4381.000 4.5389 + 4382.000 1.1657 + 4383.000 -1.4327 + 4384.000 -4.9923 + 4385.000 -2.9489 + 4386.000 -39.7447 + 4387.000 15.9952 + 4388.000 10.0400 + 4389.000 1.5414 + 4390.000 -8.6857 + 4391.000 -6.9625 + 4392.000 -28.0860 + 4393.000 8.3697 + 4394.000 7.7702 + 4395.000 -0.1218 + 4396.000 -8.3386 + 4397.000 -3.6852 + 4398.000 -7.8733 + 4399.000 -2.6009 + 4400.000 1.9946 + 4401.000 8.5121 + 4402.000 -9.0455 + 4403.000 -8.4204 + 4404.000 6.8328 + 4405.000 -2.4015 + 4406.000 -5.9050 + 4407.000 -3.6710 + 4408.000 -0.5397 + 4409.000 -1.0514 + 4410.000 21.4950 + 4411.000 -15.8906 + 4412.000 -14.7015 + 4413.000 -32.2790 + 4414.000 7.7834 + 4415.000 14.6688 + 4416.000 15.0990 + 4417.000 -11.1774 + 4418.000 -9.1849 + 4419.000 6.7095 + 4420.000 -7.6926 + 4421.000 -10.8033 + 4422.000 23.8868 + 4423.000 -13.9282 + 4424.000 -20.4335 + 4425.000 -29.9203 + 4426.000 11.4172 + 4427.000 10.3496 + 4428.000 14.6247 + 4429.000 -9.1701 + 4430.000 -9.4160 + 4431.000 -28.5038 + 4432.000 8.2835 + 4433.000 12.0690 + 4434.000 -15.9833 + 4435.000 5.2031 + 4436.000 0.9613 + 4437.000 8.9156 + 4438.000 -6.7123 + 4439.000 -13.3343 + 4440.000 -25.1639 + 4441.000 11.8787 + 4442.000 7.7469 + 4443.000 17.6595 + 4444.000 -17.8812 + 4445.000 -15.1915 + 4446.000 -47.8638 + 4447.000 21.2922 + 4448.000 20.6097 + 4449.000 -25.9009 + 4450.000 3.7271 + 4451.000 10.0149 + 4452.000 10.0534 + 4453.000 -11.9751 + 4454.000 -11.6208 + 4455.000 -73.3742 + 4456.000 60.0503 + 4457.000 24.0262 + 4458.000 -24.3323 + 4459.000 10.1206 + 4460.000 7.9808 + 4461.000 24.6863 + 4462.000 -15.9396 + 4463.000 -14.1627 + 4464.000 -10.7324 + 4465.000 -0.4527 + 4466.000 0.8682 + 4467.000 -15.0695 + 4468.000 3.5061 + 4469.000 4.2309 + 4470.000 -24.3579 + 4471.000 8.5986 + 4472.000 10.2391 + 4473.000 11.0798 + 4474.000 -10.6743 + 4475.000 -8.2746 + 4476.000 19.9953 + 4477.000 -8.9267 + 4478.000 -11.3276 + 4479.000 -17.0547 + 4480.000 6.6503 + 4481.000 4.2220 + 4482.000 17.2540 + 4483.000 -14.5588 + 4484.000 -14.7109 + 4485.000 -8.6486 + 4486.000 -2.9956 + 4487.000 3.2609 + 4488.000 15.2843 + 4489.000 -9.3796 + 4490.000 -12.5095 + 4491.000 -18.1850 + 4492.000 9.6979 + 4493.000 3.1655 + 4494.000 9.7455 + 4495.000 -7.7467 + 4496.000 -11.0070 + 4497.000 17.4396 + 4498.000 -13.2322 + 4499.000 -10.6869 + 4500.000 23.7718 + 4501.000 -18.8952 + 4502.000 -13.8773 + 4503.000 21.3059 + 4504.000 -13.7397 + 4505.000 -15.1785 + 4506.000 4.3716 + 4507.000 -4.6342 + 4508.000 -3.1104 + 4509.000 10.5932 + 4510.000 -11.5814 + 4511.000 -10.0215 + 4512.000 9.9909 + 4513.000 -9.6512 + 4514.000 -11.4389 + 4515.000 -31.3976 + 4516.000 13.2710 + 4517.000 9.9496 + 4518.000 24.3885 + 4519.000 -19.8829 + 4520.000 -17.4035 + 4521.000 24.1102 + 4522.000 -17.3691 + 4523.000 -18.9462 + 4524.000 -86.3211 + 4525.000 27.6046 + 4526.000 62.7549 + 4527.000 -30.5879 + 4528.000 11.6555 + 4529.000 10.5419 + 4530.000 -39.6930 + 4531.000 11.9191 + 4532.000 19.6249 + 4533.000 -24.3029 + 4534.000 10.9399 + 4535.000 4.2672 + 4536.000 -5.9902 + 4537.000 0.3857 + 4538.000 -1.6648 + 4539.000 -27.6653 + 4540.000 11.1781 + 4541.000 9.3389 + 4542.000 -56.7465 + 4543.000 19.4537 + 4544.000 28.6506 + 4545.000 -17.5290 + 4546.000 4.9641 + 4547.000 3.7478 + 4548.000 4.4785 + 4549.000 -7.7016 + 4550.000 -6.7394 + 4551.000 22.8748 + 4552.000 -11.6734 + 4553.000 -16.7348 + 4554.000 3.6906 + 4555.000 -6.8019 + 4556.000 -9.3876 + 4557.000 39.9209 + 4558.000 -23.3827 + 4559.000 -24.6888 + 4560.000 -26.2291 + 4561.000 9.1776 + 4562.000 8.9624 + 4563.000 -11.5293 + 4564.000 1.8232 + 4565.000 0.8830 + 4566.000 4.2650 + 4567.000 -7.8326 + 4568.000 -8.1167 + 4569.000 -25.2196 + 4570.000 7.9509 + 4571.000 7.4859 + 4572.000 -26.2089 + 4573.000 7.3746 + 4574.000 11.8281 + 4575.000 6.3686 + 4576.000 -7.5358 + 4577.000 -8.7026 + 4578.000 -11.6654 + 4579.000 0.1446 + 4580.000 -0.7859 + 4581.000 48.8336 + 4582.000 -24.8204 + 4583.000 -23.0935 + 4584.000 -21.5418 + 4585.000 4.6588 + 4586.000 4.9424 + 4587.000 -23.2394 + 4588.000 9.4091 + 4589.000 5.4403 + 4590.000 8.1739 + 4591.000 -8.9535 + 4592.000 -9.9803 + 4593.000 44.7132 + 4594.000 -28.4392 + 4595.000 -24.7648 + 4596.000 24.4728 + 4597.000 -14.9730 + 4598.000 -21.8466 + 4599.000 31.4075 + 4600.000 -17.7557 + 4601.000 -20.2787 + 4602.000 35.9097 + 4603.000 -22.8948 + 4604.000 -23.7959 + 4605.000 10.3135 + 4606.000 -10.3354 + 4607.000 -10.7313 + 4608.000 -1.1451 + 4609.000 -0.9921 + 4610.000 -1.8020 + 4611.000 -6.7353 + 4612.000 -1.5418 + 4613.000 -7.1124 + 4614.000 -4.9031 + 4615.000 4.1917 + 4616.000 1.6485 + 4617.000 -42.3817 + 4618.000 14.9471 + 4619.000 17.8669 + 4620.000 -16.6934 + 4621.000 0.8060 + 4622.000 9.9985 + 4623.000 -37.6505 + 4624.000 15.4727 + 4625.000 17.4566 + 4626.000 -33.1218 + 4627.000 8.4140 + 4628.000 7.9008 + 4629.000 45.8463 + 4630.000 -22.8345 + 4631.000 -26.8813 + 4632.000 -26.5301 + 4633.000 10.9756 + 4634.000 12.0862 + 4635.000 -24.1217 + 4636.000 9.2273 + 4637.000 9.3987 + 4638.000 -38.5151 + 4639.000 13.0389 + 4640.000 19.6765 + 4641.000 -30.8434 + 4642.000 10.2579 + 4643.000 10.2023 + 4644.000 -39.3455 + 4645.000 12.8070 + 4646.000 19.7884 + 4647.000 -32.1684 + 4648.000 8.9835 + 4649.000 11.2043 + 4650.000 -24.5388 + 4651.000 9.2243 + 4652.000 9.0948 + 4653.000 -26.8031 + 4654.000 8.2468 + 4655.000 9.4441 + 4656.000 -29.2803 + 4657.000 6.2218 + 4658.000 12.3265 + 4659.000 -45.5997 + 4660.000 21.0606 + 4661.000 19.9742 + 4662.000 -25.2749 + 4663.000 10.1281 + 4664.000 9.2096 + 4665.000 -24.4998 + 4666.000 7.9834 + 4667.000 7.8363 + 4668.000 -19.9435 + 4669.000 6.9187 + 4670.000 10.2585 + 4671.000 -24.5230 + 4672.000 8.7643 + 4673.000 11.3047 + 4674.000 -28.3014 + 4675.000 11.7513 + 4676.000 8.1480 + 4677.000 -26.8572 + 4678.000 6.9056 + 4679.000 7.6397 + 4680.000 -25.0229 + 4681.000 6.4617 + 4682.000 7.5086 + 4683.000 -34.5837 + 4684.000 16.3880 + 4685.000 10.5657 + 4686.000 -33.5366 + 4687.000 18.7253 + 4688.000 10.2399 + 4689.000 -29.9289 + 4690.000 7.1892 + 4691.000 12.3887 + 4692.000 -23.7781 + 4693.000 8.8040 + 4694.000 7.8004 + 4695.000 -35.8545 + 4696.000 12.7916 + 4697.000 11.4832 + 4698.000 -25.5343 + 4699.000 9.7892 + 4700.000 7.3228 + 4701.000 -31.4961 + 4702.000 11.9077 + 4703.000 9.1172 + 4704.000 -35.6073 + 4705.000 12.7783 + 4706.000 16.3947 + 4707.000 -26.0815 + 4708.000 9.0851 + 4709.000 11.7485 + 4710.000 -25.7593 + 4711.000 8.5924 + 4712.000 8.2339 + 4713.000 -49.0576 + 4714.000 18.4388 + 4715.000 21.9011 + 4716.000 -11.0172 + 4717.000 4.1633 + 4718.000 0.1312 + 4719.000 -26.8140 + 4720.000 12.2194 + 4721.000 9.1483 + 4722.000 -41.1385 + 4723.000 18.8821 + 4724.000 16.2186 + 4725.000 -26.3713 + 4726.000 8.5801 + 4727.000 12.9425 + 4728.000 -25.0169 + 4729.000 8.5249 + 4730.000 7.9597 + 4731.000 -25.7453 + 4732.000 7.3056 + 4733.000 5.7040 + 4734.000 -34.5988 + 4735.000 10.2984 + 4736.000 14.3935 + 4737.000 -31.2846 + 4738.000 10.6214 + 4739.000 11.9833 + 4740.000 -38.4073 + 4741.000 16.6098 + 4742.000 16.6368 + 4743.000 -20.3054 + 4744.000 5.7676 + 4745.000 6.2018 + 4746.000 -30.0812 + 4747.000 10.3617 + 4748.000 7.8045 + 4749.000 -19.0360 + 4750.000 6.8415 + 4751.000 2.5361 + 4752.000 -21.8703 + 4753.000 9.2536 + 4754.000 8.1958 + 4755.000 -35.1813 + 4756.000 15.0973 + 4757.000 10.9952 + 4758.000 -28.7505 + 4759.000 7.8377 + 4760.000 9.2502 + 4761.000 -32.6096 + 4762.000 10.2083 + 4763.000 10.8657 + 4764.000 -25.2741 + 4765.000 9.1274 + 4766.000 8.1523 + 4767.000 -23.1104 + 4768.000 7.1741 + 4769.000 7.9303 + 4770.000 -21.0747 + 4771.000 10.8462 + 4772.000 9.4226 + 4773.000 -24.1686 + 4774.000 6.7861 + 4775.000 6.4157 + 4776.000 -31.2611 + 4777.000 13.0826 + 4778.000 10.2968 + 4779.000 -30.7649 + 4780.000 12.3217 + 4781.000 9.5696 + 4782.000 -33.1263 + 4783.000 13.1190 + 4784.000 12.6201 + 4785.000 -32.6043 + 4786.000 8.5860 + 4787.000 11.9360 + 4788.000 -29.9282 + 4789.000 9.4837 + 4790.000 12.3191 + 4791.000 -35.9899 + 4792.000 15.5853 + 4793.000 16.7526 + 4794.000 -35.4021 + 4795.000 13.2651 + 4796.000 12.3354 + 4797.000 -30.7316 + 4798.000 10.1934 + 4799.000 8.9967 + 4800.000 -34.7217 + 4801.000 13.1283 + 4802.000 12.2671 + 4803.000 -43.8543 + 4804.000 17.5884 + 4805.000 17.7799 + 4806.000 -31.6624 + 4807.000 10.3594 + 4808.000 11.0551 + 4809.000 -17.7390 + 4810.000 7.9448 + 4811.000 2.5170 + 4812.000 -35.5824 + 4813.000 12.0975 + 4814.000 11.1772 + 4815.000 -34.7116 + 4816.000 13.2260 + 4817.000 8.8035 + 4818.000 -32.0822 + 4819.000 13.8993 + 4820.000 13.1165 + 4821.000 -29.0731 + 4822.000 9.5239 + 4823.000 8.3904 + 4824.000 -22.3698 + 4825.000 5.6767 + 4826.000 8.5299 + 4827.000 -20.8907 + 4828.000 6.9116 + 4829.000 6.5155 + 4830.000 -34.0138 + 4831.000 12.5693 + 4832.000 12.2733 + 4833.000 -35.5639 + 4834.000 14.9158 + 4835.000 11.8295 + 4836.000 -38.6477 + 4837.000 12.6746 + 4838.000 14.7882 + 4839.000 -35.0082 + 4840.000 14.5466 + 4841.000 14.3988 + 4842.000 -22.0137 + 4843.000 6.5868 + 4844.000 8.4144 + 4845.000 -27.4028 + 4846.000 8.4975 + 4847.000 6.0318 + 4848.000 -31.4361 + 4849.000 11.5422 + 4850.000 10.8295 + 4851.000 -17.2049 + 4852.000 6.0489 + 4853.000 4.5510 + 4854.000 -34.7447 + 4855.000 13.3654 + 4856.000 13.1016 + 4857.000 -43.7729 + 4858.000 20.7736 + 4859.000 17.0093 + 4860.000 -38.3817 + 4861.000 15.4736 + 4862.000 13.3414 + 4863.000 -38.5448 + 4864.000 19.1224 + 4865.000 15.0491 + 4866.000 -14.4819 + 4867.000 1.5279 + 4868.000 2.6290 + 4869.000 -56.8293 + 4870.000 22.4310 + 4871.000 26.9560 + 4872.000 -39.8585 + 4873.000 21.7264 + 4874.000 14.8712 + 4875.000 -8.5465 + 4876.000 0.1483 + 4877.000 1.7757 + 4878.000 -22.4709 + 4879.000 8.5018 + 4880.000 8.4756 + 4881.000 -52.5696 + 4882.000 27.0912 + 4883.000 21.3208 + 4884.000 -55.3208 + 4885.000 21.8969 + 4886.000 23.1875 + 4887.000 -54.6576 + 4888.000 21.1101 + 4889.000 23.7911 + 4890.000 -43.4209 + 4891.000 20.9648 + 4892.000 16.6844 + 4893.000 -16.1840 + 4894.000 1.3504 + 4895.000 3.8666 + 4896.000 -52.6532 + 4897.000 23.1697 + 4898.000 19.7460 + 4899.000 -36.9617 + 4900.000 10.5241 + 4901.000 11.7879 + 4902.000 -45.7587 + 4903.000 19.5060 + 4904.000 20.5334 + 4905.000 -92.4621 + 4906.000 47.1076 + 4907.000 36.5932 + 4908.000 -4.8290 + 4909.000 -0.1118 + 4910.000 2.2822 + 4911.000 -15.1036 + 4912.000 3.1583 + 4913.000 4.2155 + 4914.000 -25.6551 + 4915.000 10.5140 + 4916.000 5.3131 + 4917.000 -21.1744 + 4918.000 7.0438 + 4919.000 8.1479 + 4920.000 -23.2992 + 4921.000 8.2532 + 4922.000 6.8591 + 4923.000 -47.9222 + 4924.000 20.5919 + 4925.000 20.3559 + 4926.000 -20.1821 + 4927.000 10.7529 + 4928.000 5.5843 + 4929.000 -8.4069 + 4930.000 -0.4980 + 4931.000 0.2769 + 4932.000 -11.6966 + 4933.000 1.4011 + 4934.000 1.9944 + 4935.000 -19.5697 + 4936.000 7.5736 + 4937.000 3.8251 + 4938.000 -51.7334 + 4939.000 18.7723 + 4940.000 24.1680 + 4941.000 -35.9160 + 4942.000 12.8472 + 4943.000 13.8745 + 4944.000 -10.3474 + 4945.000 -0.6283 + 4946.000 -2.4987 + 4947.000 -25.9267 + 4948.000 7.9400 + 4949.000 7.8156 + 4950.000 -2.6104 + 4951.000 -1.0817 + 4952.000 -4.5876 + 4953.000 -13.8439 + 4954.000 2.4440 + 4955.000 -0.2596 + 4956.000 -64.4929 + 4957.000 26.1457 + 4958.000 25.5211 + 4959.000 -58.2556 + 4960.000 25.9316 + 4961.000 25.2657 + 4962.000 -57.2499 + 4963.000 23.1092 + 4964.000 29.8911 + 4965.000 -54.8607 + 4966.000 22.9218 + 4967.000 21.4662 + 4968.000 -22.5648 + 4969.000 4.5834 + 4970.000 3.3960 + 4971.000 -43.4752 + 4972.000 12.8778 + 4973.000 20.5556 + 4974.000 -54.8787 + 4975.000 20.9550 + 4976.000 25.5940 + 4977.000 -65.6812 + 4978.000 31.8072 + 4979.000 23.2236 + 4980.000 -56.0647 + 4981.000 24.5367 + 4982.000 23.6034 + 4983.000 -52.6525 + 4984.000 23.7741 + 4985.000 23.0180 + 4986.000 -37.8848 + 4987.000 14.9866 + 4988.000 14.2589 + 4989.000 -50.3240 + 4990.000 23.5534 + 4991.000 15.7722 + 4992.000 -54.7228 + 4993.000 22.2520 + 4994.000 25.4263 + 4995.000 -34.6566 + 4996.000 15.7983 + 4997.000 12.1240 + 4998.000 -13.4062 + 4999.000 3.5513 + 5000.000 5.9154 + 5001.000 -48.8051 + 5002.000 19.2129 + 5003.000 16.3785 + 5004.000 -11.9196 + 5005.000 -1.3475 + 5006.000 1.8731 + 5007.000 -35.0510 + 5008.000 12.4497 + 5009.000 16.6066 + 5010.000 -12.0563 + 5011.000 1.6014 + 5012.000 2.0878 + 5013.000 -13.8743 + 5014.000 0.6592 + 5015.000 4.3755 + 5016.000 -5.3434 + 5017.000 -3.0716 + 5018.000 -3.5710 + 5019.000 -20.9768 + 5020.000 9.2493 + 5021.000 8.1668 + 5022.000 -17.7657 + 5023.000 2.3980 + 5024.000 6.3664 + 5025.000 -79.6770 + 5026.000 36.7778 + 5027.000 29.1701 + 5028.000 -33.5713 + 5029.000 9.6569 + 5030.000 13.6102 + 5031.000 -58.5264 + 5032.000 25.9994 + 5033.000 21.2048 + 5034.000 -1.0914 + 5035.000 -3.7774 + 5036.000 -6.5675 + 5037.000 -26.8511 + 5038.000 6.9626 + 5039.000 9.0918 + 5040.000 -13.5464 + 5041.000 3.4376 + 5042.000 1.6505 + 5043.000 -8.4536 + 5044.000 0.6584 + 5045.000 0.1748 + 5046.000 -56.1489 + 5047.000 20.3226 + 5048.000 25.5768 + 5049.000 -38.8555 + 5050.000 11.5960 + 5051.000 16.8164 + 5052.000 -14.5909 + 5053.000 2.5137 + 5054.000 4.0183 + 5055.000 -40.6762 + 5056.000 15.8502 + 5057.000 17.1733 + 5058.000 -62.8677 + 5059.000 22.3529 + 5060.000 25.7466 + 5061.000 -19.7565 + 5062.000 5.0397 + 5063.000 3.5867 + 5064.000 -48.2020 + 5065.000 16.3938 + 5066.000 22.3687 + 5067.000 -29.6251 + 5068.000 10.6035 + 5069.000 11.6435 + 5070.000 -60.4944 + 5071.000 22.3308 + 5072.000 31.4333 + 5073.000 -92.4919 + 5074.000 38.3881 + 5075.000 38.2418 + 5076.000 -14.7426 + 5077.000 5.4365 + 5078.000 2.7638 + 5079.000 -14.4065 + 5080.000 2.0827 + 5081.000 4.0995 + 5082.000 -36.3254 + 5083.000 12.4212 + 5084.000 11.4749 + 5085.000 -16.0726 + 5086.000 -1.8190 + 5087.000 7.0793 + 5088.000 -2.1195 + 5089.000 -4.5929 + 5090.000 -2.4034 + 5091.000 -8.9892 + 5092.000 4.2104 + 5093.000 3.1629 + 5094.000 2.0992 + 5095.000 -3.9403 + 5096.000 -5.0942 + 5097.000 -34.4701 + 5098.000 7.4620 + 5099.000 15.8738 + 5100.000 -18.2749 + 5101.000 6.3953 + 5102.000 -0.8539 + 5103.000 -77.9460 + 5104.000 32.1273 + 5105.000 35.3233 + 5106.000 -39.8984 + 5107.000 15.7583 + 5108.000 16.4110 + 5109.000 -34.1934 + 5110.000 16.3997 + 5111.000 14.7823 + 5112.000 -7.4998 + 5113.000 2.7666 + 5114.000 -2.9412 + 5115.000 -26.4633 + 5116.000 6.5350 + 5117.000 12.4681 + 5118.000 -34.4562 + 5119.000 10.8107 + 5120.000 13.9057 + 5121.000 -20.9168 + 5122.000 8.8235 + 5123.000 6.1341 + 5124.000 0.7050 + 5125.000 -4.8891 + 5126.000 -7.4432 + 5127.000 -16.9066 + 5128.000 1.6295 + 5129.000 3.7468 + 5130.000 -45.4744 + 5131.000 18.6690 + 5132.000 18.5561 + 5133.000 -7.9899 + 5134.000 0.9803 + 5135.000 0.6664 + 5136.000 -2.4022 + 5137.000 -4.3461 + 5138.000 -1.1479 + 5139.000 -22.9040 + 5140.000 4.0980 + 5141.000 8.4367 + 5142.000 -25.0712 + 5143.000 7.3246 + 5144.000 8.5322 + 5145.000 -60.0452 + 5146.000 23.4263 + 5147.000 28.7786 + 5148.000 -38.1283 + 5149.000 14.3296 + 5150.000 16.2262 + 5151.000 -82.3134 + 5152.000 37.2857 + 5153.000 36.5574 + 5154.000 -26.6316 + 5155.000 10.9441 + 5156.000 9.9887 + 5157.000 -34.3318 + 5158.000 14.9156 + 5159.000 10.7487 + 5160.000 -11.6558 + 5161.000 0.2802 + 5162.000 1.8751 + 5163.000 -23.8494 + 5164.000 10.1243 + 5165.000 5.1749 + 5166.000 -11.6937 + 5167.000 1.9244 + 5168.000 2.9495 + 5169.000 -18.9653 + 5170.000 6.5959 + 5171.000 7.8325 + 5172.000 -49.4447 + 5173.000 20.0429 + 5174.000 22.9036 + 5175.000 -41.6108 + 5176.000 17.8514 + 5177.000 12.5705 + 5178.000 -20.5009 + 5179.000 6.0134 + 5180.000 6.4942 + 5181.000 -48.9929 + 5182.000 18.5703 + 5183.000 20.7691 + 5184.000 -61.5001 + 5185.000 26.8160 + 5186.000 29.5978 + 5187.000 -88.3706 + 5188.000 31.2111 + 5189.000 42.0962 + 5190.000 -40.6940 + 5191.000 15.8864 + 5192.000 19.0760 + 5193.000 -26.7677 + 5194.000 8.5648 + 5195.000 8.2639 + 5196.000 -46.6935 + 5197.000 17.7695 + 5198.000 18.0840 + 5199.000 -62.2916 + 5200.000 26.5618 + 5201.000 22.5308 + 5202.000 -15.0392 + 5203.000 2.4779 + 5204.000 3.0450 + 5205.000 -17.5716 + 5206.000 3.9700 + 5207.000 5.4649 + 5208.000 -23.6527 + 5209.000 6.0941 + 5210.000 8.5601 + 5211.000 -1.9961 + 5212.000 -10.4855 + 5213.000 12.9286 + 5214.000 1.7831 + 5215.000 -7.7320 + 5216.000 -2.7582 + 5217.000 10.4424 + 5218.000 -12.2426 + 5219.000 -7.7032 + 5220.000 38.6574 + 5221.000 -23.0197 + 5222.000 -18.4865 + 5223.000 3.0072 + 5224.000 -4.7143 + 5225.000 -8.2023 + 5226.000 8.5826 + 5227.000 -11.9162 + 5228.000 -5.9962 + 5229.000 -6.0290 + 5230.000 -5.7247 + 5231.000 0.3856 + 5232.000 2.8003 + 5233.000 -4.7389 + 5234.000 -4.7017 + 5235.000 -3.6715 + 5236.000 -0.6109 + 5237.000 0.0425 + 5238.000 38.5589 + 5239.000 -21.4303 + 5240.000 -22.5644 + 5241.000 -10.5695 + 5242.000 4.1494 + 5243.000 4.0443 + 5244.000 19.6881 + 5245.000 -13.6280 + 5246.000 -18.3463 + 5247.000 -3.7180 + 5248.000 -0.8966 + 5249.000 -5.9698 + 5250.000 -12.3711 + 5251.000 11.2172 + 5252.000 -1.0171 + 5253.000 -18.8824 + 5254.000 12.8301 + 5255.000 10.8788 + 5256.000 -71.4488 + 5257.000 27.0211 + 5258.000 24.8877 + 5259.000 7.3928 + 5260.000 -7.5333 + 5261.000 -6.8150 + 5262.000 51.2075 + 5263.000 -28.6069 + 5264.000 -27.0259 + 5265.000 8.3538 + 5266.000 -4.9489 + 5267.000 -10.9213 + 5268.000 14.9061 + 5269.000 -11.9877 + 5270.000 -13.0598 + 5271.000 46.2413 + 5272.000 -24.8399 + 5273.000 -28.7621 + 5274.000 58.5798 + 5275.000 -31.3629 + 5276.000 -28.5063 + 5277.000 -2.3579 + 5278.000 -2.6016 + 5279.000 -3.8532 + 5280.000 46.9199 + 5281.000 -26.9806 + 5282.000 -24.2747 + 5283.000 5.0329 + 5284.000 -5.3069 + 5285.000 -7.3546 + 5286.000 -17.1549 + 5287.000 6.7484 + 5288.000 7.3225 + 5289.000 23.7211 + 5290.000 -14.6743 + 5291.000 -13.3235 + 5292.000 -71.9618 + 5293.000 55.2037 + 5294.000 23.7732 + 5295.000 8.9626 + 5296.000 -7.4260 + 5297.000 -8.0672 + 5298.000 4.6457 + 5299.000 -3.2692 + 5300.000 -6.5693 + 5301.000 28.8766 + 5302.000 -12.8058 + 5303.000 -16.5893 + 5304.000 17.4783 + 5305.000 -11.4415 + 5306.000 -14.1948 + 5307.000 45.3155 + 5308.000 -26.2031 + 5309.000 -26.1967 + 5310.000 9.7195 + 5311.000 -5.3086 + 5312.000 -11.2529 + 5313.000 -58.7337 + 5314.000 21.2511 + 5315.000 52.5164 + 5316.000 -5.9372 + 5317.000 2.0289 + 5318.000 -4.7780 + 5319.000 10.7234 + 5320.000 -12.6223 + 5321.000 -5.6568 + 5322.000 9.4897 + 5323.000 -4.2756 + 5324.000 -9.6198 + 5325.000 2.7391 + 5326.000 2.8151 + 5327.000 -11.8395 + 5328.000 7.9392 + 5329.000 -7.0239 + 5330.000 -9.1875 + 5331.000 -6.5445 + 5332.000 1.7156 + 5333.000 -0.5538 + 5334.000 1.1935 + 5335.000 -7.0166 + 5336.000 -1.3897 + 5337.000 22.1843 + 5338.000 -17.4186 + 5339.000 -15.4071 + 5340.000 16.9985 + 5341.000 -15.0389 + 5342.000 -7.8364 + 5343.000 14.5278 + 5344.000 -11.7281 + 5345.000 -12.1918 + 5346.000 53.2957 + 5347.000 -31.1945 + 5348.000 -31.2960 + 5349.000 25.3565 + 5350.000 -14.0115 + 5351.000 -16.1437 + 5352.000 21.6252 + 5353.000 -11.2466 + 5354.000 -14.0397 + 5355.000 24.7279 + 5356.000 -18.7904 + 5357.000 -15.4125 + 5358.000 4.8311 + 5359.000 -1.3376 + 5360.000 -6.3388 + 5361.000 35.8627 + 5362.000 -21.1686 + 5363.000 -23.1724 + 5364.000 24.6705 + 5365.000 -14.9203 + 5366.000 -14.6836 + 5367.000 -6.4354 + 5368.000 -1.0106 + 5369.000 -3.4922 + 5370.000 50.5323 + 5371.000 -28.2425 + 5372.000 -28.1456 + 5373.000 -23.3372 + 5374.000 8.5231 + 5375.000 6.1768 + 5376.000 8.9260 + 5377.000 -10.2818 + 5378.000 -7.6303 + 5379.000 35.7284 + 5380.000 -20.8377 + 5381.000 -20.0240 + 5382.000 33.1548 + 5383.000 -17.6837 + 5384.000 -16.4850 + 5385.000 -7.1676 + 5386.000 8.2882 + 5387.000 0.9295 + 5388.000 65.9544 + 5389.000 -32.9685 + 5390.000 -35.4711 + 5391.000 26.9620 + 5392.000 -11.8603 + 5393.000 -13.2616 + 5394.000 -3.3799 + 5395.000 -2.1573 + 5396.000 -3.4516 + 5397.000 11.7296 + 5398.000 -12.0776 + 5399.000 -10.3159 + 5400.000 -42.3483 + 5401.000 11.4918 + 5402.000 14.1141 + 5403.000 -18.4650 + 5404.000 2.5261 + 5405.000 2.4336 + 5406.000 31.6214 + 5407.000 -17.7344 + 5408.000 -24.2117 + 5409.000 -13.8137 + 5410.000 5.2667 + 5411.000 3.9631 + 5412.000 46.1621 + 5413.000 -25.0421 + 5414.000 -28.1838 + 5415.000 20.7064 + 5416.000 -11.5989 + 5417.000 -10.3572 + 5418.000 4.2005 + 5419.000 -8.4046 + 5420.000 -4.5882 + 5421.000 -31.5490 + 5422.000 8.8193 + 5423.000 17.5148 + 5424.000 47.1953 + 5425.000 -26.8335 + 5426.000 -25.0948 + 5427.000 2.4286 + 5428.000 -7.6630 + 5429.000 -6.5889 + 5430.000 56.0809 + 5431.000 -23.6917 + 5432.000 -31.7961 + 5433.000 3.6094 + 5434.000 -2.1519 + 5435.000 -7.9126 + 5436.000 28.6849 + 5437.000 -19.3671 + 5438.000 -16.4849 + 5439.000 31.2966 + 5440.000 -18.9264 + 5441.000 -20.8279 + 5442.000 38.6477 + 5443.000 -25.7310 + 5444.000 -23.1722 + 5445.000 -11.3541 + 5446.000 0.2382 + 5447.000 5.1407 + 5448.000 34.5271 + 5449.000 -18.9751 + 5450.000 -19.1488 + 5451.000 4.7887 + 5452.000 1.5732 + 5453.000 -5.3425 + 5454.000 10.5397 + 5455.000 -4.5493 + 5456.000 -5.9369 + 5457.000 44.6127 + 5458.000 -20.7487 + 5459.000 -26.0054 + 5460.000 -11.7383 + 5461.000 1.8911 + 5462.000 0.9432 + 5463.000 49.4573 + 5464.000 -28.4303 + 5465.000 -26.0561 + 5466.000 21.9178 + 5467.000 -12.2511 + 5468.000 -12.3729 + 5469.000 -1.2410 + 5470.000 -4.9500 + 5471.000 -4.3062 + 5472.000 6.8209 + 5473.000 -9.7200 + 5474.000 -11.4451 + 5475.000 3.4288 + 5476.000 -5.3239 + 5477.000 -7.2372 + 5478.000 22.6199 + 5479.000 -13.4205 + 5480.000 -12.6196 + 5481.000 48.5982 + 5482.000 -26.7760 + 5483.000 -21.7964 + 5484.000 -2.7058 + 5485.000 0.9817 + 5486.000 -0.8819 + 5487.000 3.9192 + 5488.000 -5.7101 + 5489.000 -3.2857 + 5490.000 -8.4969 + 5491.000 -1.3863 + 5492.000 1.0050 + 5493.000 39.9717 + 5494.000 -17.3267 + 5495.000 -21.5930 + 5496.000 10.1330 + 5497.000 -8.9049 + 5498.000 -12.4914 + 5499.000 17.3286 + 5500.000 -12.2823 + 5501.000 -14.7847 + 5502.000 -3.9392 + 5503.000 -1.8512 + 5504.000 -6.0372 + 5505.000 41.3491 + 5506.000 -20.5749 + 5507.000 -25.0466 + 5508.000 28.4856 + 5509.000 -14.5030 + 5510.000 -15.9185 + 5511.000 43.2283 + 5512.000 -30.6330 + 5513.000 -24.8517 + 5514.000 34.0623 + 5515.000 -20.1477 + 5516.000 -23.2596 + 5517.000 32.4751 + 5518.000 -16.2930 + 5519.000 -22.0582 + 5520.000 38.8413 + 5521.000 -23.7715 + 5522.000 -22.7779 + 5523.000 14.7218 + 5524.000 -8.8267 + 5525.000 -9.8162 + 5526.000 6.7870 + 5527.000 -6.9206 + 5528.000 -8.6227 + 5529.000 18.0097 + 5530.000 -9.9662 + 5531.000 -12.9713 + 5532.000 17.5293 + 5533.000 -11.3698 + 5534.000 -16.4000 + 5535.000 -9.7831 + 5536.000 0.3579 + 5537.000 4.3327 + 5538.000 -27.0728 + 5539.000 10.0793 + 5540.000 11.1321 + 5541.000 -15.5591 + 5542.000 5.4780 + 5543.000 3.8210 + 5544.000 -15.6527 + 5545.000 8.7176 + 5546.000 4.4822 + 5547.000 -22.6003 + 5548.000 8.7839 + 5549.000 7.3145 + 5550.000 -33.0889 + 5551.000 10.5160 + 5552.000 16.3609 + 5553.000 -18.3481 + 5554.000 5.5054 + 5555.000 3.3892 + 5556.000 -26.6335 + 5557.000 8.0830 + 5558.000 7.4003 + 5559.000 -38.9116 + 5560.000 13.7007 + 5561.000 20.6333 + 5562.000 -28.1480 + 5563.000 6.4631 + 5564.000 9.3669 + 5565.000 -21.4950 + 5566.000 6.6970 + 5567.000 8.6454 + 5568.000 -14.6639 + 5569.000 2.5440 + 5570.000 2.5581 + 5571.000 -20.9892 + 5572.000 3.2312 + 5573.000 8.4658 + 5574.000 -25.6430 + 5575.000 7.1810 + 5576.000 9.2694 + 5577.000 -24.4809 + 5578.000 8.8050 + 5579.000 8.3471 + 5580.000 -20.9479 + 5581.000 6.0716 + 5582.000 5.7635 + 5583.000 -24.9954 + 5584.000 8.0855 + 5585.000 5.1185 + 5586.000 -16.0429 + 5587.000 4.5485 + 5588.000 3.5387 + 5589.000 -17.0285 + 5590.000 5.5169 + 5591.000 7.7515 + 5592.000 -24.1221 + 5593.000 6.7788 + 5594.000 9.4608 + 5595.000 -21.7243 + 5596.000 7.0410 + 5597.000 5.5334 + 5598.000 -16.6101 + 5599.000 5.7728 + 5600.000 3.3789 + 5601.000 -13.0480 + 5602.000 -0.5618 + 5603.000 1.3193 + 5604.000 -30.8442 + 5605.000 13.1316 + 5606.000 8.8865 + 5607.000 -18.7709 + 5608.000 4.1049 + 5609.000 3.1789 + 5610.000 -20.6978 + 5611.000 6.4735 + 5612.000 7.2908 + 5613.000 -10.6297 + 5614.000 2.5482 + 5615.000 2.7263 + 5616.000 -17.1157 + 5617.000 6.5142 + 5618.000 3.9088 + 5619.000 -10.9487 + 5620.000 0.8723 + 5621.000 -0.0880 + 5622.000 -33.9178 + 5623.000 15.7800 + 5624.000 10.3789 + 5625.000 -12.9450 + 5626.000 1.1684 + 5627.000 2.0751 + 5628.000 -22.1379 + 5629.000 6.7073 + 5630.000 3.2400 + 5631.000 -3.5633 + 5632.000 -5.5141 + 5633.000 -1.2398 + 5634.000 -26.5740 + 5635.000 8.4966 + 5636.000 8.6438 + 5637.000 -36.3476 + 5638.000 14.0979 + 5639.000 12.5678 + 5640.000 -18.3843 + 5641.000 2.0689 + 5642.000 4.1659 + 5643.000 -0.1759 + 5644.000 -4.3234 + 5645.000 -2.9349 + 5646.000 9.4487 + 5647.000 -7.6468 + 5648.000 -10.5236 + 5649.000 -40.7329 + 5650.000 14.4282 + 5651.000 21.3289 + 5652.000 5.0734 + 5653.000 -6.1224 + 5654.000 -2.7976 + 5655.000 -14.5367 + 5656.000 3.1205 + 5657.000 2.7471 + 5658.000 -11.3379 + 5659.000 2.3807 + 5660.000 -1.5071 + 5661.000 -11.4169 + 5662.000 3.3231 + 5663.000 0.8843 + 5664.000 -19.9281 + 5665.000 8.4330 + 5666.000 6.3179 + 5667.000 -44.1105 + 5668.000 22.5729 + 5669.000 17.2087 + 5670.000 -29.0146 + 5671.000 8.4662 + 5672.000 14.6294 + 5673.000 -26.1363 + 5674.000 6.6806 + 5675.000 9.1865 + 5676.000 -1.2983 + 5677.000 -4.9779 + 5678.000 -3.4482 + 5679.000 -27.8972 + 5680.000 10.7836 + 5681.000 8.4697 + 5682.000 -26.6256 + 5683.000 5.3310 + 5684.000 9.4613 + 5685.000 -17.2104 + 5686.000 2.8887 + 5687.000 4.5097 + 5688.000 -30.3676 + 5689.000 12.0478 + 5690.000 12.8704 + 5691.000 -11.4756 + 5692.000 -2.0540 + 5693.000 1.5620 + 5694.000 -24.3615 + 5695.000 9.3305 + 5696.000 4.7206 + 5697.000 10.9452 + 5698.000 -4.6202 + 5699.000 -13.4971 + 5700.000 -15.0735 + 5701.000 3.6690 + 5702.000 1.1395 + 5703.000 -4.3699 + 5704.000 -2.5012 + 5705.000 0.3815 + 5706.000 -24.0644 + 5707.000 5.6668 + 5708.000 6.9237 + 5709.000 -27.8249 + 5710.000 6.0848 + 5711.000 13.1436 + 5712.000 -19.7872 + 5713.000 7.2770 + 5714.000 1.6115 + 5715.000 -24.0324 + 5716.000 8.9902 + 5717.000 4.6864 + 5718.000 -37.4146 + 5719.000 14.0466 + 5720.000 13.3675 + 5721.000 -15.3378 + 5722.000 3.4236 + 5723.000 5.7090 + 5724.000 -15.5162 + 5725.000 0.7812 + 5726.000 1.6988 + 5727.000 -18.1691 + 5728.000 1.6439 + 5729.000 3.2939 + 5730.000 -9.2067 + 5731.000 -0.3361 + 5732.000 0.9938 + 5733.000 -12.8940 + 5734.000 2.5171 + 5735.000 0.5437 + 5736.000 -16.4682 + 5737.000 4.8006 + 5738.000 2.9469 + 5739.000 -3.4567 + 5740.000 0.2756 + 5741.000 -0.3808 + 5742.000 -18.4155 + 5743.000 3.9193 + 5744.000 5.6696 + 5745.000 -31.8117 + 5746.000 8.2232 + 5747.000 14.0325 + 5748.000 -0.1071 + 5749.000 -4.1375 + 5750.000 -0.3608 + 5751.000 -5.5212 + 5752.000 0.7995 + 5753.000 1.5912 + 5754.000 -12.4818 + 5755.000 1.1408 + 5756.000 -3.6569 + 5757.000 -12.4112 + 5758.000 5.5466 + 5759.000 0.8883 + 5760.000 -9.6482 + 5761.000 -0.9610 + 5762.000 1.0406 + 5763.000 4.3702 + 5764.000 -5.7830 + 5765.000 -2.9856 + 5766.000 -15.2168 + 5767.000 1.3201 + 5768.000 3.8793 + 5769.000 -23.1657 + 5770.000 8.2246 + 5771.000 7.9943 + 5772.000 -20.3631 + 5773.000 8.0084 + 5774.000 7.5664 + 5775.000 -14.5595 + 5776.000 0.0361 + 5777.000 2.6809 + 5778.000 -14.8158 + 5779.000 3.8882 + 5780.000 -0.0861 + 5781.000 -22.5279 + 5782.000 10.8507 + 5783.000 5.9454 + 5784.000 -9.1310 + 5785.000 -1.7248 + 5786.000 0.4935 + 5787.000 -8.0995 + 5788.000 0.3586 + 5789.000 -2.1659 + 5790.000 -25.1750 + 5791.000 9.0459 + 5792.000 8.9138 + 5793.000 -22.5804 + 5794.000 11.1805 + 5795.000 5.7456 + 5796.000 -25.9553 + 5797.000 10.5161 + 5798.000 9.4640 + 5799.000 -11.6791 + 5800.000 2.9947 + 5801.000 -0.3753 + 5802.000 -11.4123 + 5803.000 2.4849 + 5804.000 -0.8611 + 5805.000 -27.8964 + 5806.000 7.7691 + 5807.000 8.9933 + 5808.000 2.0661 + 5809.000 -0.7211 + 5810.000 -6.7467 + 5811.000 -27.0748 + 5812.000 8.8058 + 5813.000 5.8151 + 5814.000 9.6267 + 5815.000 -7.6551 + 5816.000 -9.0798 + 5817.000 -28.0899 + 5818.000 12.6361 + 5819.000 10.3571 + 5820.000 -17.8414 + 5821.000 3.5400 + 5822.000 2.8847 + 5823.000 -25.3121 + 5824.000 8.8411 + 5825.000 8.8822 + 5826.000 -11.2045 + 5827.000 0.8729 + 5828.000 3.6868 + 5829.000 -28.4210 + 5830.000 8.5992 + 5831.000 9.3432 + 5832.000 -34.5227 + 5833.000 13.5817 + 5834.000 13.6716 + 5835.000 -29.5893 + 5836.000 12.2781 + 5837.000 8.7650 + 5838.000 -6.6045 + 5839.000 -1.9047 + 5840.000 -2.9419 + 5841.000 -9.5536 + 5842.000 0.3954 + 5843.000 -1.8372 + 5844.000 -19.7225 + 5845.000 6.4477 + 5846.000 4.0274 + 5847.000 -18.4779 + 5848.000 7.3697 + 5849.000 0.9773 + 5850.000 -27.9709 + 5851.000 12.4445 + 5852.000 8.1928 + 5853.000 -19.6937 + 5854.000 5.8614 + 5855.000 5.5349 + 5856.000 -12.7560 + 5857.000 3.0012 + 5858.000 -0.8075 + 5859.000 -14.9184 + 5860.000 2.1791 + 5861.000 3.7836 + 5862.000 -27.5823 + 5863.000 8.3253 + 5864.000 8.3263 + 5865.000 -35.1787 + 5866.000 13.9951 + 5867.000 14.0092 + 5868.000 -35.4004 + 5869.000 15.9651 + 5870.000 10.0615 + 5871.000 -34.2339 + 5872.000 11.7495 + 5873.000 13.7183 + 5874.000 -23.7750 + 5875.000 10.7393 + 5876.000 6.7511 + 5877.000 -30.9152 + 5878.000 13.2522 + 5879.000 13.5326 + 5880.000 -1.3610 + 5881.000 0.4990 + 5882.000 -2.6067 + 5883.000 3.1957 + 5884.000 -7.8251 + 5885.000 -4.5891 + 5886.000 -16.6226 + 5887.000 0.9524 + 5888.000 4.6070 + 5889.000 -73.4778 + 5890.000 30.0448 + 5891.000 35.1690 + 5892.000 -100.5579 + 5893.000 52.2909 + 5894.000 40.4816 + 5895.000 -71.7279 + 5896.000 30.3404 + 5897.000 25.6380 + 5898.000 -62.4045 + 5899.000 33.1855 + 5900.000 28.1675 + 5901.000 -104.0724 + 5902.000 47.4939 + 5903.000 44.7211 + 5904.000 -75.1896 + 5905.000 31.7678 + 5906.000 34.6743 + 5907.000 -48.7768 + 5908.000 15.2205 + 5909.000 20.6428 + 5910.000 -60.8512 + 5911.000 31.7297 + 5912.000 34.2096 + 5913.000 -54.7219 + 5914.000 22.1607 + 5915.000 25.3349 + 5916.000 -71.9418 + 5917.000 37.9165 + 5918.000 30.4256 + 5919.000 -57.4359 + 5920.000 26.2112 + 5921.000 22.7889 + 5922.000 -98.2102 + 5923.000 56.5149 + 5924.000 46.6262 + 5925.000 -45.7170 + 5926.000 18.4189 + 5927.000 18.0408 + 5928.000 -118.5515 + 5929.000 52.4830 + 5930.000 71.2648 + 5931.000 -88.8223 + 5932.000 33.9909 + 5933.000 37.3698 + 5934.000 -74.8887 + 5935.000 29.6293 + 5936.000 38.3516 + 5937.000 -51.6659 + 5938.000 24.6165 + 5939.000 17.7034 + 5940.000 -80.1067 + 5941.000 35.2975 + 5942.000 31.0494 + 5943.000 -38.8204 + 5944.000 15.4195 + 5945.000 11.1825 + 5946.000 -96.1800 + 5947.000 39.7745 + 5948.000 37.5864 + 5949.000 -99.4257 + 5950.000 50.1163 + 5951.000 44.7947 + 5952.000 -45.9923 + 5953.000 20.2424 + 5954.000 20.3901 + 5955.000 -59.4191 + 5956.000 26.1660 + 5957.000 20.5151 + 5958.000 -81.7093 + 5959.000 34.7968 + 5960.000 35.9298 + 5961.000 -39.6079 + 5962.000 16.5532 + 5963.000 18.5296 + 5964.000 -140.7636 + 5965.000 95.5534 + 5966.000 60.6363 + 5967.000 -62.8728 + 5968.000 25.2356 + 5969.000 29.1852 + 5970.000 -29.6754 + 5971.000 10.0875 + 5972.000 12.9028 + 5973.000 -34.1708 + 5974.000 13.1118 + 5975.000 10.9013 + 5976.000 -79.7052 + 5977.000 35.0444 + 5978.000 40.0276 + 5979.000 -99.4642 + 5980.000 46.2895 + 5981.000 46.6846 + 5982.000 -39.5346 + 5983.000 18.6002 + 5984.000 17.1066 + 5985.000 -126.6081 + 5986.000 53.7574 + 5987.000 84.0255 + 5988.000 -27.8710 + 5989.000 10.7348 + 5990.000 6.0037 + 5991.000 -48.7564 + 5992.000 20.9814 + 5993.000 20.2979 + 5994.000 -45.4918 + 5995.000 21.0726 + 5996.000 16.0964 + 5997.000 -51.5020 + 5998.000 19.1823 + 5999.000 20.1661 + 6000.000 -73.4737 + 6001.000 29.0874 + 6002.000 29.7725 + 6003.000 -49.2518 + 6004.000 15.0269 + 6005.000 23.4563 + 6006.000 -111.2474 + 6007.000 42.2909 + 6008.000 41.6225 + 6009.000 -51.5139 + 6010.000 23.4226 + 6011.000 17.8690 + 6012.000 -57.4965 + 6013.000 28.0601 + 6014.000 20.6801 + 6015.000 -63.9652 + 6016.000 29.9169 + 6017.000 31.7461 + 6018.000 -45.8292 + 6019.000 19.7387 + 6020.000 15.9148 + 6021.000 -52.5753 + 6022.000 25.1914 + 6023.000 22.6564 + 6024.000 -61.5378 + 6025.000 22.7500 + 6026.000 24.8194 + 6027.000 -42.2669 + 6028.000 11.0496 + 6029.000 13.8950 + 6030.000 -27.2601 + 6031.000 7.7791 + 6032.000 9.6318 + 6033.000 -41.1772 + 6034.000 19.8996 + 6035.000 13.2708 + 6036.000 -40.5289 + 6037.000 17.6148 + 6038.000 15.0668 + 6039.000 -75.6454 + 6040.000 36.2912 + 6041.000 30.3915 + 6042.000 -38.0396 + 6043.000 15.3943 + 6044.000 13.7969 + 6045.000 -52.3055 + 6046.000 24.2530 + 6047.000 17.3476 + 6048.000 -39.5974 + 6049.000 16.8919 + 6050.000 16.7417 + 6051.000 -58.6308 + 6052.000 24.9780 + 6053.000 26.4731 + 6054.000 -84.2164 + 6055.000 41.9183 + 6056.000 38.5799 + 6057.000 -19.9653 + 6058.000 6.5514 + 6059.000 2.4926 + 6060.000 -38.7569 + 6061.000 12.0231 + 6062.000 14.8665 + 6063.000 -79.9703 + 6064.000 32.6596 + 6065.000 39.7925 + 6066.000 -28.1216 + 6067.000 10.2963 + 6068.000 10.4026 + 6069.000 -21.7659 + 6070.000 5.6088 + 6071.000 9.0833 + 6072.000 -48.1253 + 6073.000 20.9567 + 6074.000 20.7119 + 6075.000 -41.8888 + 6076.000 19.6772 + 6077.000 16.6369 + 6078.000 -52.0956 + 6079.000 19.3341 + 6080.000 22.7058 + 6081.000 -83.6432 + 6082.000 46.0867 + 6083.000 40.8907 + 6084.000 -43.4941 + 6085.000 17.7674 + 6086.000 15.7436 + 6087.000 -56.3783 + 6088.000 21.3746 + 6089.000 23.5012 + 6090.000 -38.5641 + 6091.000 14.0787 + 6092.000 15.4933 + 6093.000 -52.8909 + 6094.000 21.5921 + 6095.000 25.3994 + 6096.000 -56.4345 + 6097.000 22.6742 + 6098.000 26.7371 + 6099.000 6.4824 + 6100.000 -7.8194 + 6101.000 -8.0735 + 6102.000 3.1921 + 6103.000 -4.7554 + 6104.000 -6.9710 + 6105.000 2.2984 + 6106.000 -4.8936 + 6107.000 -4.9661 + 6108.000 15.2574 + 6109.000 -12.0215 + 6110.000 -10.4876 + 6111.000 8.5507 + 6112.000 -5.2338 + 6113.000 -9.2020 + 6114.000 -2.1823 + 6115.000 0.7513 + 6116.000 -3.9347 + 6117.000 29.5089 + 6118.000 -21.8276 + 6119.000 -19.8324 + 6120.000 12.8699 + 6121.000 -9.2356 + 6122.000 -11.7402 + 6123.000 23.1785 + 6124.000 -18.9716 + 6125.000 -15.4910 + 6126.000 -9.3507 + 6127.000 -0.0079 + 6128.000 -0.9477 + 6129.000 -14.0987 + 6130.000 1.4788 + 6131.000 -2.5238 + 6132.000 11.0979 + 6133.000 -12.5487 + 6134.000 -10.7863 + 6135.000 8.3097 + 6136.000 -8.3640 + 6137.000 -9.8355 + 6138.000 12.4744 + 6139.000 -11.8164 + 6140.000 -12.1265 + 6141.000 21.7245 + 6142.000 -14.0933 + 6143.000 -13.6957 + 6144.000 1.6319 + 6145.000 -7.5134 + 6146.000 -4.4519 + 6147.000 17.0296 + 6148.000 -12.2511 + 6149.000 -15.0885 + 6150.000 5.8102 + 6151.000 -6.8102 + 6152.000 -9.4111 + 6153.000 9.3632 + 6154.000 -8.0844 + 6155.000 -9.5967 + 6156.000 -0.6659 + 6157.000 -4.4439 + 6158.000 -2.2362 + 6159.000 -1.1129 + 6160.000 -2.9671 + 6161.000 -6.8275 + 6162.000 1.5624 + 6163.000 -6.6750 + 6164.000 -2.7398 + 6165.000 -25.7379 + 6166.000 7.4679 + 6167.000 5.5754 + 6168.000 19.8574 + 6169.000 -11.8239 + 6170.000 -14.5432 + 6171.000 -19.4675 + 6172.000 8.5401 + 6173.000 3.0461 + 6174.000 29.0262 + 6175.000 -20.6752 + 6176.000 -16.8989 + 6177.000 -28.5089 + 6178.000 4.2307 + 6179.000 9.6841 + 6180.000 2.3502 + 6181.000 -9.4392 + 6182.000 -2.8410 + 6183.000 -14.8288 + 6184.000 3.5713 + 6185.000 0.1819 + 6186.000 -0.3734 + 6187.000 -4.3552 + 6188.000 -4.4927 + 6189.000 2.3044 + 6190.000 -6.9480 + 6191.000 -6.1665 + 6192.000 -10.4297 + 6193.000 -2.4154 + 6194.000 2.9933 + 6195.000 -0.5980 + 6196.000 -1.9369 + 6197.000 -6.7042 + 6198.000 62.2191 + 6199.000 -33.2105 + 6200.000 -33.9649 + 6201.000 16.5191 + 6202.000 -13.0521 + 6203.000 -12.6535 + 6204.000 47.9577 + 6205.000 -27.5264 + 6206.000 -28.1414 + 6207.000 36.3701 + 6208.000 -19.9152 + 6209.000 -26.1986 + 6210.000 -2.7984 + 6211.000 -4.3341 + 6212.000 -1.1001 + 6213.000 -28.7229 + 6214.000 12.0549 + 6215.000 7.5762 + 6216.000 12.1758 + 6217.000 -5.0365 + 6218.000 -8.7105 + 6219.000 20.0790 + 6220.000 -15.7529 + 6221.000 -10.2103 + 6222.000 -34.7716 + 6223.000 15.3652 + 6224.000 13.0144 + 6225.000 4.4911 + 6226.000 -2.3699 + 6227.000 -3.4890 + 6228.000 12.8022 + 6229.000 -6.4439 + 6230.000 -13.6157 + 6231.000 -18.8971 + 6232.000 7.5730 + 6233.000 4.7126 + 6234.000 -1.7220 + 6235.000 -3.8974 + 6236.000 -0.5919 + 6237.000 -1.9074 + 6238.000 -1.9093 + 6239.000 -0.1138 + 6240.000 15.0780 + 6241.000 -10.4436 + 6242.000 -13.6498 + 6243.000 3.6178 + 6244.000 -6.7057 + 6245.000 -6.0537 + 6246.000 -21.0227 + 6247.000 3.0298 + 6248.000 9.3601 + 6249.000 8.0791 + 6250.000 -10.4603 + 6251.000 -5.9266 + 6252.000 29.8259 + 6253.000 -19.8429 + 6254.000 -19.5828 + 6255.000 -13.5052 + 6256.000 5.1627 + 6257.000 -0.7681 + 6258.000 -33.1348 + 6259.000 8.0147 + 6260.000 9.3733 + 6261.000 -15.5099 + 6262.000 4.2168 + 6263.000 4.1435 + 6264.000 18.5238 + 6265.000 -13.3972 + 6266.000 -11.1708 + 6267.000 -0.9786 + 6268.000 -4.7868 + 6269.000 -4.0865 + 6270.000 36.8755 + 6271.000 -23.1418 + 6272.000 -26.1381 + 6273.000 10.5503 + 6274.000 -7.4889 + 6275.000 -9.1756 + 6276.000 23.8117 + 6277.000 -17.8432 + 6278.000 -14.3937 + 6279.000 14.3626 + 6280.000 -10.6223 + 6281.000 -9.0273 + 6282.000 14.6620 + 6283.000 -12.8902 + 6284.000 -10.6776 + 6285.000 1.0440 + 6286.000 -5.0539 + 6287.000 -6.0201 + 6288.000 0.2491 + 6289.000 -7.3666 + 6290.000 -2.5782 + 6291.000 38.1739 + 6292.000 -22.3382 + 6293.000 -25.5971 + 6294.000 -9.8257 + 6295.000 3.4853 + 6296.000 -2.1637 + 6297.000 9.4809 + 6298.000 -9.8671 + 6299.000 -8.8511 + 6300.000 19.7386 + 6301.000 -14.3450 + 6302.000 -14.2654 + 6303.000 -12.6927 + 6304.000 3.5873 + 6305.000 -0.2642 + 6306.000 -32.5733 + 6307.000 12.5734 + 6308.000 12.1163 + 6309.000 36.2573 + 6310.000 -22.0202 + 6311.000 -22.1158 + 6312.000 3.5533 + 6313.000 -7.0681 + 6314.000 -7.0199 + 6315.000 37.4799 + 6316.000 -25.3114 + 6317.000 -19.0910 + 6318.000 -16.1507 + 6319.000 3.0468 + 6320.000 6.7399 + 6321.000 29.9267 + 6322.000 -20.7011 + 6323.000 -19.7234 + 6324.000 7.9413 + 6325.000 -9.5356 + 6326.000 -9.8784 + 6327.000 10.8914 + 6328.000 -9.5908 + 6329.000 -10.6293 + 6330.000 1.0576 + 6331.000 -1.8639 + 6332.000 -3.0459 + 6333.000 14.8897 + 6334.000 -12.2636 + 6335.000 -14.2096 + 6336.000 25.2028 + 6337.000 -15.5676 + 6338.000 -13.9776 + 6339.000 5.3546 + 6340.000 -7.7365 + 6341.000 -9.3200 + 6342.000 -27.4620 + 6343.000 14.4289 + 6344.000 15.0026 + 6345.000 28.5644 + 6346.000 -20.8528 + 6347.000 -20.2429 + 6348.000 -21.4210 + 6349.000 7.3385 + 6350.000 8.1120 + 6351.000 -9.6349 + 6352.000 -0.3762 + 6353.000 0.4907 + 6354.000 47.3519 + 6355.000 -28.0707 + 6356.000 -29.0544 + 6357.000 -27.3434 + 6358.000 9.9502 + 6359.000 9.5902 + 6360.000 30.7643 + 6361.000 -18.4549 + 6362.000 -19.3731 + 6363.000 -23.1821 + 6364.000 6.6243 + 6365.000 6.2866 + 6366.000 30.6267 + 6367.000 -21.5434 + 6368.000 -20.3343 + 6369.000 -16.6207 + 6370.000 3.6293 + 6371.000 5.2051 + 6372.000 -36.4191 + 6373.000 17.3315 + 6374.000 14.2008 + 6375.000 19.2962 + 6376.000 -18.2796 + 6377.000 -12.8754 + 6378.000 24.7889 + 6379.000 -13.4327 + 6380.000 -19.0494 + 6381.000 -15.4288 + 6382.000 5.0211 + 6383.000 4.9533 + 6384.000 -27.1608 + 6385.000 9.8672 + 6386.000 7.9393 + 6387.000 -15.1149 + 6388.000 4.0105 + 6389.000 3.9490 + 6390.000 -23.8887 + 6391.000 9.5569 + 6392.000 3.9350 + 6393.000 -1.5738 + 6394.000 -3.8160 + 6395.000 -2.9579 + 6396.000 -10.3773 + 6397.000 0.7194 + 6398.000 -2.4815 + 6399.000 -11.3919 + 6400.000 4.5273 + 6401.000 2.1125 + 6402.000 47.7049 + 6403.000 -27.6399 + 6404.000 -29.8831 + 6405.000 23.5863 + 6406.000 -17.3474 + 6407.000 -15.7485 + 6408.000 8.5358 + 6409.000 -9.3298 + 6410.000 -11.1464 + 6411.000 20.3725 + 6412.000 -10.7632 + 6413.000 -15.6093 + 6414.000 12.1580 + 6415.000 -9.4764 + 6416.000 -11.6192 + 6417.000 -1.1516 + 6418.000 -4.2403 + 6419.000 -3.9717 + 6420.000 34.2888 + 6421.000 -22.9072 + 6422.000 -25.6484 + 6423.000 12.8202 + 6424.000 -13.1364 + 6425.000 -10.6542 + 6426.000 -5.4562 + 6427.000 -1.4034 + 6428.000 -3.4304 + 6429.000 14.2410 + 6430.000 -11.0100 + 6431.000 -10.8824 + 6432.000 2.5996 + 6433.000 -3.9979 + 6434.000 -9.9701 + 6435.000 24.2746 + 6436.000 -18.0286 + 6437.000 -15.3741 + 6438.000 1.3119 + 6439.000 -3.7143 + 6440.000 -5.6358 + 6441.000 -5.7194 + 6442.000 -1.3169 + 6443.000 -2.7656 + 6444.000 6.0136 + 6445.000 -5.4936 + 6446.000 -8.3915 + 6447.000 -18.3242 + 6448.000 8.0946 + 6449.000 7.5981 + 6450.000 5.4798 + 6451.000 -3.5259 + 6452.000 -6.4825 + 6453.000 7.4962 + 6454.000 -3.3080 + 6455.000 -8.9609 + 6456.000 45.4645 + 6457.000 -26.9210 + 6458.000 -21.0147 + 6459.000 -28.5104 + 6460.000 10.5086 + 6461.000 9.1134 + 6462.000 -7.0425 + 6463.000 -2.3736 + 6464.000 -2.6646 + 6465.000 1.0131 + 6466.000 -5.7989 + 6467.000 -5.1595 + 6468.000 9.0198 + 6469.000 -5.9015 + 6470.000 -7.5805 + 6471.000 18.6848 + 6472.000 -16.6159 + 6473.000 -12.8209 + 6474.000 -2.8149 + 6475.000 -3.9267 + 6476.000 -6.2708 + 6477.000 4.4176 + 6478.000 -6.1423 + 6479.000 -6.8101 + 6480.000 11.9593 + 6481.000 -12.8655 + 6482.000 -9.7413 + 6483.000 23.7067 + 6484.000 -15.9100 + 6485.000 -15.4159 + 6486.000 13.7886 + 6487.000 -11.0729 + 6488.000 -11.8259 + 6489.000 -31.4973 + 6490.000 11.5092 + 6491.000 10.6943 + 6492.000 43.2771 + 6493.000 -23.5354 + 6494.000 -29.8973 + 6495.000 23.2233 + 6496.000 -17.2787 + 6497.000 -15.3414 + 6498.000 21.4658 + 6499.000 -15.7649 + 6500.000 -14.8284 + 6501.000 -11.8930 + 6502.000 -0.3485 + 6503.000 1.8415 + 6504.000 7.2515 + 6505.000 -6.4483 + 6506.000 -7.6543 + 6507.000 18.0194 + 6508.000 -12.2835 + 6509.000 -12.8656 + 6510.000 20.8886 + 6511.000 -14.3788 + 6512.000 -16.1192 + 6513.000 35.8476 + 6514.000 -21.4659 + 6515.000 -19.6663 + 6516.000 40.0709 + 6517.000 -19.3448 + 6518.000 -27.6333 + 6519.000 7.7832 + 6520.000 -3.7200 + 6521.000 -7.3569 + 6522.000 36.7680 + 6523.000 -19.1353 + 6524.000 -24.8709 + 6525.000 22.3861 + 6526.000 -17.8787 + 6527.000 -16.9799 + 6528.000 19.3487 + 6529.000 -16.2130 + 6530.000 -14.5456 + 6531.000 24.8803 + 6532.000 -17.1440 + 6533.000 -22.0669 + 6534.000 -2.4267 + 6535.000 -4.1796 + 6536.000 -5.8394 + 6537.000 34.9791 + 6538.000 -22.3553 + 6539.000 -21.0212 + 6540.000 35.4843 + 6541.000 -23.3074 + 6542.000 -21.7755 + 6543.000 22.3679 + 6544.000 -13.6904 + 6545.000 -16.9534 + 6546.000 27.4105 + 6547.000 -18.0374 + 6548.000 -18.4447 + 6549.000 7.7125 + 6550.000 -8.1417 + 6551.000 -11.2098 + 6552.000 23.6644 + 6553.000 -15.3039 + 6554.000 -17.5689 + 6555.000 3.8468 + 6556.000 -3.7622 + 6557.000 -7.7338 + 6558.000 4.3823 + 6559.000 -4.9627 + 6560.000 -6.2400 + 6561.000 26.2485 + 6562.000 -13.6490 + 6563.000 -20.4232 + 6564.000 44.9776 + 6565.000 -27.2527 + 6566.000 -24.4328 + 6567.000 25.9510 + 6568.000 -18.2926 + 6569.000 -17.9779 + 6570.000 0.7686 + 6571.000 -1.4568 + 6572.000 -5.4565 + 6573.000 18.5156 + 6574.000 -12.0141 + 6575.000 -14.8441 + 6576.000 41.1118 + 6577.000 -27.2978 + 6578.000 -25.1182 + 6579.000 30.6380 + 6580.000 -22.3202 + 6581.000 -19.1469 + 6582.000 -5.7631 + 6583.000 -4.8246 + 6584.000 2.7869 + 6585.000 47.8585 + 6586.000 -26.8687 + 6587.000 -27.4766 + 6588.000 18.5613 + 6589.000 -12.1432 + 6590.000 -14.1503 + 6591.000 11.7114 + 6592.000 -9.7121 + 6593.000 -10.8961 + 6594.000 31.3186 + 6595.000 -20.5837 + 6596.000 -17.5146 + 6597.000 35.9917 + 6598.000 -18.2767 + 6599.000 -18.6377 + 6600.000 27.2921 + 6601.000 -17.6666 + 6602.000 -17.4607 + 6603.000 14.5038 + 6604.000 -7.5325 + 6605.000 -14.4076 + 6606.000 4.8618 + 6607.000 -2.9681 + 6608.000 -4.9587 + 6609.000 5.4262 + 6610.000 -8.9774 + 6611.000 -1.3666 + 6612.000 10.7798 + 6613.000 -5.8863 + 6614.000 -8.8012 + 6615.000 19.3777 + 6616.000 -11.4836 + 6617.000 -9.2679 + 6618.000 -9.7067 + 6619.000 6.1340 + 6620.000 -1.4881 + 6621.000 21.5330 + 6622.000 -13.2313 + 6623.000 -17.3240 + 6624.000 17.0523 + 6625.000 -14.3613 + 6626.000 -11.9629 + 6627.000 25.3360 + 6628.000 -16.9872 + 6629.000 -13.9707 + 6630.000 10.0066 + 6631.000 -6.7169 + 6632.000 -9.7400 + 6633.000 17.4281 + 6634.000 -12.8554 + 6635.000 -11.0200 + 6636.000 25.3275 + 6637.000 -18.2159 + 6638.000 -16.0560 + 6639.000 18.9976 + 6640.000 -14.7982 + 6641.000 -12.8639 + 6642.000 20.0744 + 6643.000 -14.1707 + 6644.000 -16.2685 + 6645.000 18.1060 + 6646.000 -12.2083 + 6647.000 -16.6856 + 6648.000 17.8177 + 6649.000 -14.8308 + 6650.000 -15.5890 + 6651.000 38.7020 + 6652.000 -20.6943 + 6653.000 -25.0127 + 6654.000 -4.3250 + 6655.000 -0.7523 + 6656.000 -0.7709 + 6657.000 30.6609 + 6658.000 -21.5345 + 6659.000 -17.8373 + 6660.000 28.4388 + 6661.000 -20.4865 + 6662.000 -19.5573 + 6663.000 24.5919 + 6664.000 -12.0364 + 6665.000 -16.3977 + 6666.000 30.3362 + 6667.000 -22.6187 + 6668.000 -19.0679 + 6669.000 -7.0670 + 6670.000 -0.3164 + 6671.000 1.5908 + 6672.000 10.9396 + 6673.000 -12.5438 + 6674.000 -10.3089 + 6675.000 55.2036 + 6676.000 -27.8038 + 6677.000 -28.8459 + 6678.000 32.6590 + 6679.000 -22.0511 + 6680.000 -18.6620 + 6681.000 11.7085 + 6682.000 -11.2908 + 6683.000 -10.1218 + 6684.000 36.2871 + 6685.000 -22.4139 + 6686.000 -26.2026 + 6687.000 -4.2883 + 6688.000 -1.4892 + 6689.000 -5.1825 + 6690.000 3.2531 + 6691.000 -8.4569 + 6692.000 -6.3031 + 6693.000 29.1502 + 6694.000 -17.4137 + 6695.000 -20.2210 + 6696.000 34.4210 + 6697.000 -21.2814 + 6698.000 -21.3271 + 6699.000 26.9801 + 6700.000 -12.3102 + 6701.000 -18.9634 + 6702.000 -8.3793 + 6703.000 -1.5266 + 6704.000 0.6449 + 6705.000 22.1865 + 6706.000 -12.4479 + 6707.000 -12.2386 + 6708.000 8.6758 + 6709.000 -11.5015 + 6710.000 -5.0277 + 6711.000 7.9537 + 6712.000 -10.1570 + 6713.000 -9.8636 + 6714.000 -10.9897 + 6715.000 0.2107 + 6716.000 1.9614 + 6717.000 -20.2384 + 6718.000 9.2003 + 6719.000 7.3860 + 6720.000 31.0209 + 6721.000 -21.1386 + 6722.000 -20.7474 + 6723.000 3.9117 + 6724.000 -6.4515 + 6725.000 -9.4178 + 6726.000 22.6618 + 6727.000 -13.9171 + 6728.000 -11.9740 + 6729.000 43.4114 + 6730.000 -23.4211 + 6731.000 -24.6179 + 6732.000 21.5585 + 6733.000 -13.3615 + 6734.000 -14.3274 + 6735.000 14.4779 + 6736.000 -12.4912 + 6737.000 -11.8242 + 6738.000 7.0545 + 6739.000 -8.3158 + 6740.000 -5.2505 + 6741.000 28.1994 + 6742.000 -19.1763 + 6743.000 -16.6464 + 6744.000 8.0376 + 6745.000 -12.3139 + 6746.000 -10.0503 + 6747.000 35.3671 + 6748.000 -21.0481 + 6749.000 -20.5799 + 6750.000 11.3800 + 6751.000 -8.8920 + 6752.000 -10.2504 + 6753.000 6.1647 + 6754.000 -13.4749 + 6755.000 -4.4837 + 6756.000 -2.5123 + 6757.000 1.2087 + 6758.000 -6.1598 + 6759.000 26.0603 + 6760.000 -17.5385 + 6761.000 -17.0757 + 6762.000 15.3126 + 6763.000 -9.7780 + 6764.000 -12.1584 + 6765.000 20.7930 + 6766.000 -14.8105 + 6767.000 -13.4799 + 6768.000 11.8457 + 6769.000 -9.3477 + 6770.000 -12.5817 + 6771.000 26.5804 + 6772.000 -17.4376 + 6773.000 -19.0542 + 6774.000 1.9562 + 6775.000 -8.6184 + 6776.000 -4.7956 + 6777.000 23.1345 + 6778.000 -15.9017 + 6779.000 -20.3212 + 6780.000 34.1777 + 6781.000 -18.6886 + 6782.000 -19.0868 + 6783.000 39.3331 + 6784.000 -24.4028 + 6785.000 -25.4671 + 6786.000 52.4659 + 6787.000 -29.2334 + 6788.000 -28.6234 + 6789.000 5.6994 + 6790.000 -9.5590 + 6791.000 -9.5077 + 6792.000 -3.0297 + 6793.000 -5.5152 + 6794.000 -4.0106 + 6795.000 -4.0128 + 6796.000 -0.5582 + 6797.000 -3.3481 + 6798.000 17.9139 + 6799.000 -11.4281 + 6800.000 -12.4668 + 6801.000 35.8296 + 6802.000 -22.4450 + 6803.000 -25.3694 + 6804.000 -2.1849 + 6805.000 -4.2883 + 6806.000 -3.8119 + 6807.000 -8.2230 + 6808.000 2.3688 + 6809.000 -2.1432 + 6810.000 15.3891 + 6811.000 -13.8275 + 6812.000 -12.2354 + 6813.000 32.8903 + 6814.000 -17.0851 + 6815.000 -22.4492 + 6816.000 15.3604 + 6817.000 -9.1195 + 6818.000 -11.4898 + 6819.000 5.3496 + 6820.000 -1.7071 + 6821.000 -7.9037 + 6822.000 21.5316 + 6823.000 -10.8997 + 6824.000 -16.2901 + 6825.000 54.6474 + 6826.000 -27.8718 + 6827.000 -27.7199 + 6828.000 22.0981 + 6829.000 -16.7059 + 6830.000 -16.6525 + 6831.000 34.0047 + 6832.000 -20.7706 + 6833.000 -24.1618 + 6834.000 55.3364 + 6835.000 -27.0226 + 6836.000 -29.5018 + 6837.000 37.8152 + 6838.000 -22.3866 + 6839.000 -22.8799 + 6840.000 33.3599 + 6841.000 -20.4620 + 6842.000 -23.4108 + 6843.000 53.8522 + 6844.000 -26.4865 + 6845.000 -31.9975 + 6846.000 35.9478 + 6847.000 -22.2565 + 6848.000 -19.7534 + 6849.000 15.1672 + 6850.000 -8.5866 + 6851.000 -16.0499 + 6852.000 33.1758 + 6853.000 -17.1105 + 6854.000 -20.9331 + 6855.000 13.5887 + 6856.000 -13.9531 + 6857.000 -11.5068 + 6858.000 -47.6568 + 6859.000 19.6280 + 6860.000 20.3678 + 6861.000 -33.4067 + 6862.000 12.6978 + 6863.000 11.2566 + 6864.000 -39.8273 + 6865.000 20.3609 + 6866.000 13.9913 + 6867.000 -35.4234 + 6868.000 16.5297 + 6869.000 14.6963 + 6870.000 -44.6349 + 6871.000 21.1767 + 6872.000 23.3804 + 6873.000 -43.6782 + 6874.000 18.2725 + 6875.000 13.9869 + 6876.000 -38.0721 + 6877.000 12.0723 + 6878.000 17.1670 + 6879.000 -29.5004 + 6880.000 10.8196 + 6881.000 6.1630 + 6882.000 -21.8117 + 6883.000 7.3625 + 6884.000 7.2215 + 6885.000 -36.1415 + 6886.000 15.4246 + 6887.000 15.5570 + 6888.000 -32.0579 + 6889.000 12.9815 + 6890.000 9.6661 + 6891.000 -22.5941 + 6892.000 9.3585 + 6893.000 6.7834 + 6894.000 -53.9316 + 6895.000 26.8705 + 6896.000 21.1514 + 6897.000 -17.4727 + 6898.000 4.4240 + 6899.000 6.1694 + 6900.000 -13.4399 + 6901.000 0.7039 + 6902.000 4.4721 + 6903.000 -22.7644 + 6904.000 8.4748 + 6905.000 5.5136 + 6906.000 -1.0260 + 6907.000 -2.5601 + 6908.000 -1.4818 + 6909.000 5.3645 + 6910.000 -8.4438 + 6911.000 -6.5720 + 6912.000 -38.7610 + 6913.000 20.1571 + 6914.000 13.5058 + 6915.000 -11.0733 + 6916.000 1.2041 + 6917.000 1.9048 + 6918.000 -13.8354 + 6919.000 0.2992 + 6920.000 -2.1046 + 6921.000 -20.7847 + 6922.000 7.6148 + 6923.000 5.1667 + 6924.000 -19.7896 + 6925.000 10.1375 + 6926.000 2.3543 + 6927.000 -24.4415 + 6928.000 11.9708 + 6929.000 9.5555 + 6930.000 -33.2645 + 6931.000 15.3986 + 6932.000 16.3183 + 6933.000 -18.7093 + 6934.000 4.9853 + 6935.000 2.2098 + 6936.000 -36.8347 + 6937.000 11.0759 + 6938.000 15.8797 + 6939.000 -18.8376 + 6940.000 5.4165 + 6941.000 8.4109 + 6942.000 -41.9507 + 6943.000 18.1372 + 6944.000 18.8135 + 6945.000 -17.7093 + 6946.000 3.0889 + 6947.000 3.8598 + 6948.000 -21.3575 + 6949.000 6.8287 + 6950.000 1.9525 + 6951.000 -14.5802 + 6952.000 2.9536 + 6953.000 0.9499 + 6954.000 -12.4243 + 6955.000 4.1124 + 6956.000 -1.3821 + 6957.000 -9.1348 + 6958.000 -0.2417 + 6959.000 2.6593 + 6960.000 -30.0042 + 6961.000 6.5310 + 6962.000 11.5689 + 6963.000 -41.6163 + 6964.000 12.5177 + 6965.000 19.9096 + 6966.000 -18.5639 + 6967.000 4.5617 + 6968.000 0.8710 + 6969.000 -17.1075 + 6970.000 4.7143 + 6971.000 4.9400 + 6972.000 -0.6336 + 6973.000 -5.9641 + 6974.000 -5.3644 + 6975.000 -36.5184 + 6976.000 10.6284 + 6977.000 16.6563 + 6978.000 -25.2021 + 6979.000 7.2667 + 6980.000 6.4439 + 6981.000 -31.2262 + 6982.000 13.0988 + 6983.000 10.0698 + 6984.000 -11.6747 + 6985.000 1.0689 + 6986.000 1.9883 + 6987.000 8.5014 + 6988.000 -3.8682 + 6989.000 -9.2961 + 6990.000 2.3876 + 6991.000 -5.5269 + 6992.000 -8.8092 + 6993.000 -16.9903 + 6994.000 2.3680 + 6995.000 2.7655 + 6996.000 -10.2120 + 6997.000 0.2918 + 6998.000 4.5040 + 6999.000 -3.4456 + 7000.000 -0.3831 + 7001.000 0.3881 + 7002.000 -18.3187 + 7003.000 4.6350 + 7004.000 5.0782 + 7005.000 -15.5287 + 7006.000 1.6338 + 7007.000 3.8291 + 7008.000 -17.0037 + 7009.000 6.3440 + 7010.000 5.1534 + 7011.000 -30.8410 + 7012.000 12.8413 + 7013.000 12.6875 + 7014.000 -30.1584 + 7015.000 10.2369 + 7016.000 8.9157 + 7017.000 -19.0926 + 7018.000 7.2883 + 7019.000 3.2904 + 7020.000 -19.4478 + 7021.000 7.8024 + 7022.000 5.9982 + 7023.000 -11.0982 + 7024.000 -0.1355 + 7025.000 3.0285 + 7026.000 -33.6942 + 7027.000 18.2809 + 7028.000 10.3702 + 7029.000 -27.8913 + 7030.000 9.5843 + 7031.000 10.8058 + 7032.000 -3.7621 + 7033.000 0.0235 + 7034.000 -3.1780 + 7035.000 -15.4710 + 7036.000 4.0840 + 7037.000 1.3750 + 7038.000 -33.7787 + 7039.000 9.3282 + 7040.000 11.5258 + 7041.000 -3.3284 + 7042.000 1.8599 + 7043.000 -3.9661 + 7044.000 -18.6163 + 7045.000 7.0446 + 7046.000 4.8768 + 7047.000 -29.2706 + 7048.000 14.9795 + 7049.000 11.1087 + 7050.000 -17.3320 + 7051.000 9.1028 + 7052.000 4.1864 + 7053.000 -14.7436 + 7054.000 -1.1797 + 7055.000 2.0574 + 7056.000 -36.0112 + 7057.000 17.0145 + 7058.000 11.6662 + 7059.000 -14.9048 + 7060.000 4.7587 + 7061.000 1.5466 + 7062.000 -19.5702 + 7063.000 5.4839 + 7064.000 5.6994 + 7065.000 -19.2730 + 7066.000 4.7190 + 7067.000 7.0930 + 7068.000 -26.9011 + 7069.000 7.6275 + 7070.000 9.6077 + 7071.000 -52.7573 + 7072.000 25.4505 + 7073.000 21.2823 + 7074.000 -48.1178 + 7075.000 25.5478 + 7076.000 15.1482 + 7077.000 10.9085 + 7078.000 -8.1502 + 7079.000 -5.8102 + 7080.000 9.1376 + 7081.000 -9.1946 + 7082.000 -10.8257 + 7083.000 -108.1552 + 7084.000 49.1963 + 7085.000 67.3226 + 7086.000 -60.9185 + 7087.000 28.7480 + 7088.000 31.0361 + 7089.000 -64.5891 + 7090.000 29.7080 + 7091.000 32.3736 + 7092.000 -59.4159 + 7093.000 22.1268 + 7094.000 28.0097 + 7095.000 -44.7693 + 7096.000 22.8488 + 7097.000 18.3099 + 7098.000 -66.6017 + 7099.000 29.9467 + 7100.000 29.9560 + 7101.000 -58.3339 + 7102.000 25.4097 + 7103.000 28.3230 + 7104.000 -41.3946 + 7105.000 15.5100 + 7106.000 19.4082 + 7107.000 -55.0358 + 7108.000 21.8314 + 7109.000 27.5284 + 7110.000 -73.7804 + 7111.000 42.5291 + 7112.000 33.1569 + 7113.000 -55.5810 + 7114.000 25.6446 + 7115.000 22.7620 + 7116.000 -91.7206 + 7117.000 36.2084 + 7118.000 39.2656 + 7119.000 -26.8572 + 7120.000 10.5873 + 7121.000 8.4249 + 7122.000 -42.8794 + 7123.000 17.7632 + 7124.000 14.4192 + 7125.000 -25.2485 + 7126.000 12.1025 + 7127.000 10.9424 + 7128.000 -111.0625 + 7129.000 78.8763 + 7130.000 39.0668 + 7131.000 -79.8327 + 7132.000 39.2929 + 7133.000 30.0884 + 7134.000 -52.6556 + 7135.000 22.7706 + 7136.000 24.7170 + 7137.000 -52.5027 + 7138.000 25.8566 + 7139.000 22.6544 + 7140.000 -58.7746 + 7141.000 22.7921 + 7142.000 23.4070 + 7143.000 -49.5010 + 7144.000 24.4504 + 7145.000 24.4803 + 7146.000 -47.6301 + 7147.000 14.8137 + 7148.000 21.7010 + 7149.000 -64.5617 + 7150.000 22.6845 + 7151.000 22.8813 + 7152.000 -57.6324 + 7153.000 23.2016 + 7154.000 25.2370 + 7155.000 -93.7358 + 7156.000 44.8293 + 7157.000 36.2471 + 7158.000 -55.1942 + 7159.000 21.0945 + 7160.000 25.2872 + 7161.000 -68.8593 + 7162.000 31.3465 + 7163.000 27.6904 + 7164.000 -51.0170 + 7165.000 19.2041 + 7166.000 21.7772 + 7167.000 -73.5239 + 7168.000 35.3100 + 7169.000 30.1040 + 7170.000 -60.5055 + 7171.000 31.0596 + 7172.000 31.0547 + 7173.000 -40.9227 + 7174.000 22.2830 + 7175.000 18.5927 + 7176.000 -47.9970 + 7177.000 22.1764 + 7178.000 21.6947 + 7179.000 -40.3076 + 7180.000 12.2205 + 7181.000 15.3563 + 7182.000 -26.7430 + 7183.000 6.1434 + 7184.000 10.3835 + 7185.000 -61.5764 + 7186.000 29.4632 + 7187.000 24.3024 + 7188.000 -48.6508 + 7189.000 21.7955 + 7190.000 22.8067 + 7191.000 -47.1800 + 7192.000 16.2159 + 7193.000 16.9716 + 7194.000 -61.1180 + 7195.000 25.4053 + 7196.000 28.2429 + 7197.000 -63.6738 + 7198.000 26.2111 + 7199.000 28.1523 + 7200.000 -59.1977 + 7201.000 24.8877 + 7202.000 24.1315 + 7203.000 -51.4967 + 7204.000 22.5252 + 7205.000 18.0688 + 7206.000 -23.5847 + 7207.000 5.3638 + 7208.000 7.9219 + 7209.000 -37.7644 + 7210.000 17.1441 + 7211.000 13.8156 + 7212.000 -40.1982 + 7213.000 16.4707 + 7214.000 21.2112 + 7215.000 -39.7395 + 7216.000 14.5552 + 7217.000 12.9334 + 7218.000 -58.9602 + 7219.000 24.8011 + 7220.000 22.2901 + 7221.000 -35.2367 + 7222.000 14.4424 + 7223.000 15.8729 + 7224.000 -40.1188 + 7225.000 17.7676 + 7226.000 16.2034 + 7227.000 -55.7321 + 7228.000 23.5197 + 7229.000 25.0455 + 7230.000 -1.1166 + 7231.000 -4.4910 + 7232.000 -2.7571 + 7233.000 5.8423 + 7234.000 -4.9797 + 7235.000 -6.2855 + 7236.000 -1.3324 + 7237.000 -5.5582 + 7238.000 -3.5644 + 7239.000 4.2675 + 7240.000 -8.9160 + 7241.000 -4.7840 + 7242.000 13.9237 + 7243.000 -9.4301 + 7244.000 -10.7840 + 7245.000 -8.9967 + 7246.000 -0.9920 + 7247.000 1.7887 + 7248.000 -15.9439 + 7249.000 8.6071 + 7250.000 4.3593 + 7251.000 -3.1771 + 7252.000 -1.9431 + 7253.000 -2.4389 + 7254.000 0.7055 + 7255.000 -3.2254 + 7256.000 -1.7922 + 7257.000 -2.2356 + 7258.000 -3.9397 + 7259.000 0.2433 + 7260.000 -5.1027 + 7261.000 -2.9363 + 7262.000 3.2912 + 7263.000 -2.7001 + 7264.000 -3.4076 + 7265.000 -0.0101 + 7266.000 6.0932 + 7267.000 -8.4032 + 7268.000 -3.0846 + 7269.000 -8.4725 + 7270.000 0.8975 + 7271.000 -2.9718 + 7272.000 5.8094 + 7273.000 -2.9999 + 7274.000 -7.4415 + 7275.000 -10.0648 + 7276.000 -0.8776 + 7277.000 -1.5966 + 7278.000 4.8294 + 7279.000 -4.3305 + 7280.000 -6.8856 + 7281.000 -1.4098 + 7282.000 -5.9089 + 7283.000 0.1495 + 7284.000 18.8039 + 7285.000 -14.5486 + 7286.000 -14.7578 + 7287.000 -27.1215 + 7288.000 5.2640 + 7289.000 10.0781 + 7290.000 -19.2265 + 7291.000 6.3322 + 7292.000 2.6394 + 7293.000 -17.5130 + 7294.000 5.9605 + 7295.000 1.7155 + 7296.000 -38.0952 + 7297.000 12.3753 + 7298.000 14.0119 + 7299.000 -3.5475 + 7300.000 -2.1812 + 7301.000 -3.1299 + 7302.000 3.5118 + 7303.000 -6.0515 + 7304.000 -6.2070 + 7305.000 11.3440 + 7306.000 -10.4058 + 7307.000 -11.8072 + 7308.000 -21.9591 + 7309.000 6.6656 + 7310.000 10.3212 + 7311.000 6.8211 + 7312.000 -9.7207 + 7313.000 -7.8712 + 7314.000 -41.8261 + 7315.000 14.6596 + 7316.000 18.3504 + 7317.000 1.2337 + 7318.000 -1.0576 + 7319.000 -6.2180 + 7320.000 0.3334 + 7321.000 -4.4781 + 7322.000 -4.2174 + 7323.000 6.1767 + 7324.000 -8.0584 + 7325.000 -7.4337 + 7326.000 2.3467 + 7327.000 -4.1234 + 7328.000 -5.7644 + 7329.000 -2.5957 + 7330.000 0.5527 + 7331.000 -5.1707 + 7332.000 -15.3735 + 7333.000 3.0870 + 7334.000 -0.6057 + 7335.000 -5.0667 + 7336.000 -3.3448 + 7337.000 0.7656 + 7338.000 -0.1314 + 7339.000 1.2440 + 7340.000 -1.4308 + 7341.000 -10.1897 + 7342.000 1.9327 + 7343.000 -0.1177 + 7344.000 5.3448 + 7345.000 -9.1292 + 7346.000 -6.6522 + 7347.000 -22.1235 + 7348.000 5.2907 + 7349.000 9.4610 + 7350.000 8.6248 + 7351.000 -10.5376 + 7352.000 -8.8061 + 7353.000 0.5724 + 7354.000 -3.1203 + 7355.000 -3.8696 + 7356.000 -18.0976 + 7357.000 7.2728 + 7358.000 4.0701 + 7359.000 -1.8486 + 7360.000 0.0846 + 7361.000 -4.8476 + 7362.000 -9.9270 + 7363.000 -1.0731 + 7364.000 0.1695 + 7365.000 5.5900 + 7366.000 -8.0828 + 7367.000 -6.6352 + 7368.000 2.5604 + 7369.000 -2.2009 + 7370.000 -6.1451 + 7371.000 -11.4783 + 7372.000 2.3553 + 7373.000 0.6918 + 7374.000 8.9496 + 7375.000 -10.4467 + 7376.000 -8.9649 + 7377.000 -10.6746 + 7378.000 2.7103 + 7379.000 0.3623 + 7380.000 0.6401 + 7381.000 -5.7392 + 7382.000 -4.8433 + 7383.000 -25.1534 + 7384.000 12.3046 + 7385.000 8.3733 + 7386.000 3.0448 + 7387.000 -2.3453 + 7388.000 -6.2387 + 7389.000 20.3499 + 7390.000 -13.9350 + 7391.000 -12.1391 + 7392.000 6.6048 + 7393.000 -3.3822 + 7394.000 -8.6120 + 7395.000 -33.0236 + 7396.000 16.2912 + 7397.000 11.2766 + 7398.000 -44.1068 + 7399.000 16.8120 + 7400.000 16.0716 + 7401.000 -10.2630 + 7402.000 -2.7889 + 7403.000 5.7834 + 7404.000 -21.5423 + 7405.000 8.5450 + 7406.000 8.4102 + 7407.000 -29.0324 + 7408.000 11.9152 + 7409.000 8.3669 + 7410.000 -18.9082 + 7411.000 2.7408 + 7412.000 5.1922 + 7413.000 -29.8898 + 7414.000 11.2339 + 7415.000 13.3138 + 7416.000 -36.3944 + 7417.000 12.6903 + 7418.000 14.0748 + 7419.000 7.1442 + 7420.000 -11.9828 + 7421.000 -8.8878 + 7422.000 1.9330 + 7423.000 -4.8950 + 7424.000 -6.0583 + 7425.000 -2.9467 + 7426.000 0.7962 + 7427.000 -6.3415 + 7428.000 -2.9574 + 7429.000 -0.6129 + 7430.000 -2.5450 + 7431.000 3.4415 + 7432.000 -5.9451 + 7433.000 -7.8108 + 7434.000 3.4963 + 7435.000 -7.5737 + 7436.000 -5.1747 + 7437.000 -11.3048 + 7438.000 2.5583 + 7439.000 -0.2676 + 7440.000 -28.4754 + 7441.000 11.3522 + 7442.000 4.6288 + 7443.000 -1.3471 + 7444.000 -6.0167 + 7445.000 -1.8480 + 7446.000 -10.0054 + 7447.000 0.4486 + 7448.000 -1.7000 + 7449.000 8.3814 + 7450.000 -8.5504 + 7451.000 -8.5138 + 7452.000 14.4100 + 7453.000 -9.8419 + 7454.000 -15.5690 + 7455.000 -3.1861 + 7456.000 -1.4098 + 7457.000 -3.6102 + 7458.000 21.3361 + 7459.000 -16.9124 + 7460.000 -17.3465 + 7461.000 21.0362 + 7462.000 -13.0992 + 7463.000 -15.1313 + 7464.000 -25.0342 + 7465.000 9.6867 + 7466.000 5.6901 + 7467.000 -25.3937 + 7468.000 5.7973 + 7469.000 8.4153 + 7470.000 0.0588 + 7471.000 -5.2542 + 7472.000 -1.3413 + 7473.000 -10.7287 + 7474.000 -0.6008 + 7475.000 -2.2694 + 7476.000 -2.4204 + 7477.000 -2.7251 + 7478.000 -4.6734 + 7479.000 6.9254 + 7480.000 -10.1915 + 7481.000 -6.1581 + 7482.000 24.0586 + 7483.000 -18.0621 + 7484.000 -20.0177 + 7485.000 -3.0679 + 7486.000 -0.4815 + 7487.000 -4.0231 + 7488.000 10.8924 + 7489.000 -9.4908 + 7490.000 -8.5425 + 7491.000 19.1795 + 7492.000 -12.1336 + 7493.000 -12.7563 + 7494.000 -15.6528 + 7495.000 5.0668 + 7496.000 4.4426 + 7497.000 -28.7422 + 7498.000 13.5199 + 7499.000 10.3084 + 7500.000 -30.3724 + 7501.000 11.1012 + 7502.000 11.3909 + 7503.000 -21.2002 + 7504.000 7.5832 + 7505.000 7.2562 + 7506.000 -5.1412 + 7507.000 1.4689 + 7508.000 0.3921 + 7509.000 -38.0046 + 7510.000 15.1142 + 7511.000 14.1490 + 7512.000 -30.2923 + 7513.000 8.4980 + 7514.000 11.0026 + 7515.000 -21.0460 + 7516.000 4.8865 + 7517.000 11.8783 + 7518.000 -3.2387 + 7519.000 -2.2336 + 7520.000 -3.4710 + 7521.000 -16.7097 + 7522.000 6.9343 + 7523.000 5.4412 + 7524.000 -24.2652 + 7525.000 7.9826 + 7526.000 7.2598 + 7527.000 -15.9275 + 7528.000 4.9659 + 7529.000 4.6234 + 7530.000 -87.8732 + 7531.000 28.6632 + 7532.000 44.0834 + 7533.000 -0.4879 + 7534.000 -3.3626 + 7535.000 -0.8865 + 7536.000 -25.1458 + 7537.000 7.9976 + 7538.000 10.0698 + 7539.000 -22.0080 + 7540.000 5.2711 + 7541.000 9.9667 + 7542.000 -3.8874 + 7543.000 -0.1155 + 7544.000 -4.7339 + 7545.000 -12.1096 + 7546.000 6.8541 + 7547.000 1.4376 + 7548.000 -10.7256 + 7549.000 -2.0435 + 7550.000 1.2589 + 7551.000 -14.8689 + 7552.000 7.1514 + 7553.000 3.2129 + 7554.000 -23.9579 + 7555.000 6.1792 + 7556.000 11.1755 + 7557.000 -28.0773 + 7558.000 8.0635 + 7559.000 8.9336 + 7560.000 1.2804 + 7561.000 -7.2235 + 7562.000 -3.5380 + 7563.000 -37.2205 + 7564.000 10.5163 + 7565.000 18.1297 + 7566.000 -1.7612 + 7567.000 -2.0773 + 7568.000 -2.9207 + 7569.000 -4.0805 + 7570.000 -1.8363 + 7571.000 -4.6511 + 7572.000 -42.9413 + 7573.000 18.9388 + 7574.000 16.3501 + 7575.000 -16.2916 + 7576.000 2.5411 + 7577.000 2.0952 + 7578.000 -0.4883 + 7579.000 -1.6367 + 7580.000 0.0530 + 7581.000 -28.9656 + 7582.000 6.5443 + 7583.000 11.4959 + 7584.000 -16.4513 + 7585.000 0.2984 + 7586.000 1.4004 + 7587.000 -10.8339 + 7588.000 3.8332 + 7589.000 3.2344 + 7590.000 -75.8788 + 7591.000 33.6772 + 7592.000 25.3551 + 7593.000 -20.7777 + 7594.000 6.7734 + 7595.000 4.9985 + 7596.000 -34.4881 + 7597.000 10.9754 + 7598.000 15.0977 + 7599.000 -24.3119 + 7600.000 11.0301 + 7601.000 5.2836 + 7602.000 5.1462 + 7603.000 -9.7802 + 7604.000 -7.5910 + 7605.000 -19.2438 + 7606.000 3.1341 + 7607.000 4.8124 + 7608.000 -8.3155 + 7609.000 2.2815 + 7610.000 2.2114 + 7611.000 -13.0671 + 7612.000 3.5112 + 7613.000 3.3664 + 7614.000 -34.2074 + 7615.000 11.2125 + 7616.000 11.5802 + 7617.000 1.9589 + 7618.000 -5.2313 + 7619.000 -4.8079 + 7620.000 -19.4184 + 7621.000 3.6517 + 7622.000 5.9508 + 7623.000 -27.9085 + 7624.000 10.9331 + 7625.000 10.2662 + 7626.000 3.4853 + 7627.000 -3.1849 + 7628.000 -4.5823 + 7629.000 -21.3912 + 7630.000 8.7260 + 7631.000 5.1648 + 7632.000 -22.7246 + 7633.000 4.2700 + 7634.000 7.1677 + 7635.000 -30.9030 + 7636.000 9.9621 + 7637.000 10.8756 + 7638.000 -32.3180 + 7639.000 14.7096 + 7640.000 14.2816 + 7641.000 -20.8860 + 7642.000 2.4154 + 7643.000 7.5187 + 7644.000 -35.1476 + 7645.000 10.7477 + 7646.000 11.1575 + 7647.000 -3.1481 + 7648.000 -2.1320 + 7649.000 -3.1283 + 7650.000 -16.0547 + 7651.000 2.6554 + 7652.000 3.8119 + 7653.000 0.1928 + 7654.000 0.4928 + 7655.000 -1.2702 + 7656.000 -17.1197 + 7657.000 7.2074 + 7658.000 4.1082 + 7659.000 1.1925 + 7660.000 -4.2207 + 7661.000 -2.0065 + 7662.000 -13.4846 + 7663.000 6.8346 + 7664.000 1.5744 + 7665.000 -7.2752 + 7666.000 0.4977 + 7667.000 -1.9452 + 7668.000 -5.3430 + 7669.000 -1.4771 + 7670.000 -0.3480 + 7671.000 -89.7584 + 7672.000 67.8312 + 7673.000 34.3964 + 7674.000 -14.1101 + 7675.000 4.0677 + 7676.000 5.5995 + 7677.000 -15.0470 + 7678.000 2.5380 + 7679.000 2.1788 + 7680.000 -9.7249 + 7681.000 -0.3319 + 7682.000 -2.2308 + 7683.000 -25.1826 + 7684.000 5.0983 + 7685.000 11.6951 + 7686.000 -17.3912 + 7687.000 5.3485 + 7688.000 2.3558 + 7689.000 -33.6486 + 7690.000 10.1433 + 7691.000 11.1650 + 7692.000 -24.7392 + 7693.000 7.4580 + 7694.000 9.4286 + 7695.000 -27.0370 + 7696.000 12.5911 + 7697.000 5.5257 + 7698.000 -30.8752 + 7699.000 13.0804 + 7700.000 10.7551 + 7701.000 -30.5203 + 7702.000 11.1812 + 7703.000 10.1249 + 7704.000 -19.8141 + 7705.000 5.3495 + 7706.000 5.1102 + 7707.000 7.7135 + 7708.000 -3.8979 + 7709.000 -10.2731 + 7710.000 3.0169 + 7711.000 -6.3907 + 7712.000 -8.6469 + 7713.000 -18.2201 + 7714.000 4.3087 + 7715.000 4.7880 + 7716.000 -9.2979 + 7717.000 0.2774 + 7718.000 -2.3367 + 7719.000 -21.5639 + 7720.000 6.2301 + 7721.000 7.6811 + 7722.000 -14.0911 + 7723.000 2.7102 + 7724.000 0.3772 + 7725.000 -1.5527 + 7726.000 -4.3204 + 7727.000 -1.1341 + 7728.000 -28.6366 + 7729.000 11.9245 + 7730.000 7.0454 + 7731.000 -23.2751 + 7732.000 7.5113 + 7733.000 6.1409 + 7734.000 -23.3052 + 7735.000 4.3306 + 7736.000 3.9677 + 7737.000 -17.5443 + 7738.000 3.4945 + 7739.000 0.9142 + 7740.000 -20.2759 + 7741.000 9.4433 + 7742.000 5.3456 + 7743.000 -15.1148 + 7744.000 4.2012 + 7745.000 -1.5412 + 7746.000 -62.2496 + 7747.000 37.8349 + 7748.000 24.3257 + 7749.000 -20.7474 + 7750.000 5.2510 + 7751.000 7.0799 + 7752.000 -12.7958 + 7753.000 3.0791 + 7754.000 -2.9032 + 7755.000 -62.4209 + 7756.000 28.9916 + 7757.000 28.2929 + 7758.000 -30.5896 + 7759.000 9.2404 + 7760.000 14.0163 + 7761.000 -21.3155 + 7762.000 7.6882 + 7763.000 7.5795 + 7764.000 -64.8182 + 7765.000 29.2242 + 7766.000 27.0666 + 7767.000 -18.8221 + 7768.000 11.8688 + 7769.000 6.7811 + 7770.000 -0.3818 + 7771.000 -6.7516 + 7772.000 -3.8381 + 7773.000 -25.6722 + 7774.000 9.5520 + 7775.000 12.8896 + 7776.000 -41.6798 + 7777.000 14.7630 + 7778.000 21.7638 + 7779.000 -8.4751 + 7780.000 1.5423 + 7781.000 2.9333 + 7782.000 -35.0922 + 7783.000 12.3283 + 7784.000 13.3326 + 7785.000 -32.3214 + 7786.000 15.5067 + 7787.000 14.0519 + 7788.000 -34.9517 + 7789.000 14.0794 + 7790.000 14.4828 + 7791.000 -31.0681 + 7792.000 12.1849 + 7793.000 15.6595 + 7794.000 -26.9294 + 7795.000 10.6743 + 7796.000 12.8742 + 7797.000 -36.2840 + 7798.000 15.5687 + 7799.000 12.7061 + 7800.000 -30.6293 + 7801.000 8.2651 + 7802.000 9.2441 + 7803.000 -33.6887 + 7804.000 8.8616 + 7805.000 14.2112 + 7806.000 -33.8659 + 7807.000 11.3908 + 7808.000 11.3664 + 7809.000 -26.7232 + 7810.000 9.4596 + 7811.000 8.5079 + 7812.000 -25.5525 + 7813.000 8.9200 + 7814.000 6.8714 + 7815.000 -28.4165 + 7816.000 9.6487 + 7817.000 14.3103 + 7818.000 -15.3984 + 7819.000 4.9477 + 7820.000 7.5342 + 7821.000 -36.4575 + 7822.000 11.2049 + 7823.000 12.9378 + 7824.000 -28.3790 + 7825.000 11.8960 + 7826.000 9.8658 + 7827.000 -35.9302 + 7828.000 17.7799 + 7829.000 15.2159 + 7830.000 -30.5122 + 7831.000 10.6592 + 7832.000 10.6838 + 7833.000 -32.5732 + 7834.000 11.7991 + 7835.000 10.1604 + 7836.000 -26.5853 + 7837.000 6.5162 + 7838.000 10.4485 + 7839.000 -12.7021 + 7840.000 6.7581 + 7841.000 4.6457 + 7842.000 -46.5017 + 7843.000 21.3350 + 7844.000 21.2196 + 7845.000 -18.5937 + 7846.000 4.5294 + 7847.000 5.1715 + 7848.000 -26.8749 + 7849.000 11.5308 + 7850.000 11.2658 + 7851.000 -30.6897 + 7852.000 9.2052 + 7853.000 9.3776 + 7854.000 -26.1196 + 7855.000 7.6508 + 7856.000 8.1578 + 7857.000 -31.7216 + 7858.000 11.5579 + 7859.000 11.7987 + 7860.000 -17.8243 + 7861.000 9.5081 + 7862.000 7.4112 + 7863.000 -32.1383 + 7864.000 13.1042 + 7865.000 9.7644 + 7866.000 -31.3204 + 7867.000 12.2854 + 7868.000 12.5385 + 7869.000 -33.4399 + 7870.000 10.1088 + 7871.000 16.3224 + 7872.000 -30.7720 + 7873.000 13.4366 + 7874.000 13.5663 + 7875.000 -32.2089 + 7876.000 11.3432 + 7877.000 11.5320 + 7878.000 -32.1824 + 7879.000 10.7786 + 7880.000 9.7504 + 7881.000 -33.2159 + 7882.000 11.2971 + 7883.000 15.5525 + 7884.000 -38.7695 + 7885.000 14.9179 + 7886.000 14.9513 + 7887.000 -22.1721 + 7888.000 10.5051 + 7889.000 4.9327 + 7890.000 -31.8853 + 7891.000 12.6714 + 7892.000 9.0225 + 7893.000 -44.5599 + 7894.000 20.7577 + 7895.000 18.9109 + 7896.000 -36.6937 + 7897.000 12.8041 + 7898.000 12.3734 + 7899.000 -30.6705 + 7900.000 11.5034 + 7901.000 11.5811 + 7902.000 -35.5192 + 7903.000 12.5103 + 7904.000 11.4284 + 7905.000 -38.9294 + 7906.000 13.6005 + 7907.000 14.8294 + 7908.000 -30.2240 + 7909.000 10.0107 + 7910.000 12.9285 + 7911.000 -32.3140 + 7912.000 11.6066 + 7913.000 9.0970 + 7914.000 -35.7459 + 7915.000 12.9203 + 7916.000 13.1535 + 7917.000 -27.7072 + 7918.000 11.8445 + 7919.000 9.5830 + 7920.000 -37.6100 + 7921.000 18.4275 + 7922.000 16.1247 + 7923.000 -39.4744 + 7924.000 13.1980 + 7925.000 15.6907 + 7926.000 -35.8938 + 7927.000 13.0173 + 7928.000 12.2174 + 7929.000 -33.9793 + 7930.000 15.1754 + 7931.000 12.9971 + 7932.000 -26.3156 + 7933.000 6.5635 + 7934.000 8.7964 + 7935.000 -21.2330 + 7936.000 7.6949 + 7937.000 8.8735 + 7938.000 -22.2627 + 7939.000 7.2284 + 7940.000 9.2915 + 7941.000 -36.7259 + 7942.000 17.5453 + 7943.000 13.8416 + 7944.000 -45.1323 + 7945.000 18.0422 + 7946.000 19.8267 + 7947.000 -20.6292 + 7948.000 11.3161 + 7949.000 5.6720 + 7950.000 -20.4209 + 7951.000 3.3760 + 7952.000 7.2268 + 7953.000 -49.5427 + 7954.000 20.6522 + 7955.000 20.1462 + 7956.000 -54.4401 + 7957.000 21.8725 + 7958.000 25.7490 + 7959.000 -30.5623 + 7960.000 10.7469 + 7961.000 13.9863 + 7962.000 -16.6876 + 7963.000 5.9859 + 7964.000 8.4483 + 7965.000 -29.7911 + 7966.000 10.0755 + 7967.000 11.1539 + 7968.000 -21.1801 + 7969.000 6.1565 + 7970.000 4.5416 + 7971.000 -14.6145 + 7972.000 0.9343 + 7973.000 6.3188 + 7974.000 -35.5125 + 7975.000 13.8242 + 7976.000 12.0005 + 7977.000 -22.0256 + 7978.000 8.7971 + 7979.000 8.1323 + 7980.000 -11.4194 + 7981.000 5.2145 + 7982.000 3.0747 + 7983.000 -20.2184 + 7984.000 5.7898 + 7985.000 7.8154 + 7986.000 -21.3242 + 7987.000 7.5329 + 7988.000 6.6088 + 7989.000 -31.2097 + 7990.000 12.2175 + 7991.000 12.1867 + 7992.000 -30.1380 + 7993.000 8.6794 + 7994.000 6.7345 + 7995.000 -18.0970 + 7996.000 5.5941 + 7997.000 3.4973 + 7998.000 -29.6820 + 7999.000 9.6588 + 8000.000 8.1285 + 8001.000 -28.7624 + 8002.000 10.7641 + 8003.000 9.3943 + 8004.000 -13.5863 + 8005.000 4.9152 + 8006.000 5.1283 + 8007.000 -20.8018 + 8008.000 3.4465 + 8009.000 4.4664 + 8010.000 -28.6606 + 8011.000 7.3515 + 8012.000 11.4679 + 8013.000 -29.9423 + 8014.000 10.6853 + 8015.000 12.1372 + 8016.000 -11.3080 + 8017.000 2.2504 + 8018.000 0.7343 + 8019.000 -17.9488 + 8020.000 6.8497 + 8021.000 2.3725 + 8022.000 -22.7990 + 8023.000 9.1639 + 8024.000 10.2773 + 8025.000 -26.5225 + 8026.000 5.7135 + 8027.000 7.8845 + 8028.000 -21.9520 + 8029.000 6.4585 + 8030.000 6.5232 + 8031.000 -17.1136 + 8032.000 6.0078 + 8033.000 3.5860 + 8034.000 -39.4178 + 8035.000 14.5463 + 8036.000 18.6604 + 8037.000 -23.4650 + 8038.000 5.6210 + 8039.000 5.6995 + 8040.000 -26.8432 + 8041.000 12.3187 + 8042.000 9.7617 + 8043.000 -18.8565 + 8044.000 4.6084 + 8045.000 8.5635 + 8046.000 -18.4330 + 8047.000 4.7085 + 8048.000 5.5332 + 8049.000 -20.6294 + 8050.000 5.8625 + 8051.000 2.8765 + 8052.000 -32.1923 + 8053.000 11.5786 + 8054.000 11.9352 + 8055.000 -17.9106 + 8056.000 3.4954 + 8057.000 7.6083 + 8058.000 -46.6465 + 8059.000 15.0935 + 8060.000 18.4191 + 8061.000 -24.3624 + 8062.000 5.6737 + 8063.000 9.2058 + 8064.000 -22.2345 + 8065.000 10.2782 + 8066.000 7.3605 + 8067.000 -30.8219 + 8068.000 8.3547 + 8069.000 12.7751 + 8070.000 -43.0412 + 8071.000 15.5499 + 8072.000 19.3606 + 8073.000 -36.5914 + 8074.000 12.5391 + 8075.000 14.7308 + 8076.000 -28.8124 + 8077.000 12.5322 + 8078.000 10.0069 + 8079.000 -17.5438 + 8080.000 2.6694 + 8081.000 4.4458 + 8082.000 -21.7604 + 8083.000 5.3996 + 8084.000 7.6943 + 8085.000 -11.9708 + 8086.000 -0.0245 + 8087.000 2.2777 + 8088.000 -13.6720 + 8089.000 1.0006 + 8090.000 1.4070 + 8091.000 0.8775 + 8092.000 -5.2334 + 8093.000 -2.8730 + 8094.000 -9.2245 + 8095.000 3.1497 + 8096.000 -0.3815 + 8097.000 -31.6386 + 8098.000 9.7492 + 8099.000 9.2568 + 8100.000 -10.9782 + 8101.000 0.1878 + 8102.000 2.6921 + 8103.000 -23.8142 + 8104.000 12.1585 + 8105.000 4.1320 + 8106.000 -23.0400 + 8107.000 6.3977 + 8108.000 3.2596 + 8109.000 -44.1643 + 8110.000 15.7292 + 8111.000 16.3882 + 8112.000 -24.1267 + 8113.000 9.7830 + 8114.000 9.0431 + 8115.000 -37.6272 + 8116.000 11.6380 + 8117.000 15.0289 + 8118.000 -31.0467 + 8119.000 10.5402 + 8120.000 10.0179 + 8121.000 -45.7257 + 8122.000 17.5105 + 8123.000 16.9575 + 8124.000 -47.5880 + 8125.000 20.1050 + 8126.000 21.5121 + 8127.000 -41.8983 + 8128.000 18.3518 + 8129.000 16.8731 + 8130.000 -46.9919 + 8131.000 20.0164 + 8132.000 18.7027 + 8133.000 -40.4790 + 8134.000 18.9554 + 8135.000 16.6821 + 8136.000 -51.5701 + 8137.000 20.6179 + 8138.000 21.1017 + 8139.000 -28.8334 + 8140.000 10.6014 + 8141.000 10.9016 + 8142.000 -15.3118 + 8143.000 6.4031 + 8144.000 7.8953 + 8145.000 -35.5678 + 8146.000 14.7718 + 8147.000 17.1013 + 8148.000 -42.5849 + 8149.000 17.1914 + 8150.000 15.5963 + 8151.000 -32.9206 + 8152.000 13.6428 + 8153.000 11.6054 + 8154.000 -29.9342 + 8155.000 11.5865 + 8156.000 11.5101 + 8157.000 -43.3928 + 8158.000 18.6992 + 8159.000 16.5240 + 8160.000 -41.9628 + 8161.000 18.3644 + 8162.000 17.1548 + 8163.000 -33.1506 + 8164.000 11.5335 + 8165.000 12.6555 + 8166.000 26.2750 + 8167.000 -16.8495 + 8168.000 -15.7192 + 8169.000 12.5316 + 8170.000 -9.7631 + 8171.000 -12.9230 + 8172.000 15.8691 + 8173.000 -12.8425 + 8174.000 -11.9723 + 8175.000 10.0727 + 8176.000 -9.4690 + 8177.000 -9.6876 + 8178.000 14.9455 + 8179.000 -11.5955 + 8180.000 -12.7107 + 8181.000 13.0411 + 8182.000 -11.9343 + 8183.000 -11.1877 + 8184.000 8.0718 + 8185.000 -8.2917 + 8186.000 -8.7043 + 8187.000 25.8308 + 8188.000 -15.6367 + 8189.000 -16.6209 + 8190.000 24.6714 + 8191.000 -17.5110 + 8192.000 -15.8479 + 8193.000 2.6791 + 8194.000 -0.9153 + 8195.000 -7.6946 + 8196.000 18.3258 + 8197.000 -12.4573 + 8198.000 -14.1688 + 8199.000 9.9017 + 8200.000 -7.9610 + 8201.000 -11.9898 + 8202.000 0.3367 + 8203.000 -4.6443 + 8204.000 -1.3273 + 8205.000 4.5160 + 8206.000 -8.2340 + 8207.000 -6.0293 + 8208.000 39.2854 + 8209.000 -22.5504 + 8210.000 -20.7294 + 8211.000 3.7044 + 8212.000 -7.3903 + 8213.000 -4.7965 + 8214.000 24.4486 + 8215.000 -15.4010 + 8216.000 -17.9918 + 8217.000 23.3045 + 8218.000 -17.0123 + 8219.000 -12.4991 + 8220.000 26.6197 + 8221.000 -15.6136 + 8222.000 -17.5172 + 8223.000 15.4810 + 8224.000 -12.5233 + 8225.000 -11.8443 + 8226.000 17.0575 + 8227.000 -10.8220 + 8228.000 -12.8622 + 8229.000 8.2219 + 8230.000 -6.9308 + 8231.000 -9.2757 + 8232.000 -3.1076 + 8233.000 -2.8263 + 8234.000 -0.9797 + 8235.000 27.2402 + 8236.000 -18.8552 + 8237.000 -17.5584 + 8238.000 18.3043 + 8239.000 -13.1932 + 8240.000 -11.8720 + 8241.000 -19.9346 + 8242.000 2.6926 + 8243.000 7.0066 + 8244.000 16.9490 + 8245.000 -12.1270 + 8246.000 -13.4465 + 8247.000 -15.3645 + 8248.000 4.1209 + 8249.000 -0.0183 + 8250.000 -12.0548 + 8251.000 -1.8143 + 8252.000 5.4879 + 8253.000 -6.7846 + 8254.000 0.5838 + 8255.000 -3.9431 + 8256.000 21.2224 + 8257.000 -17.1543 + 8258.000 -18.1943 + 8259.000 29.5060 + 8260.000 -14.7722 + 8261.000 -21.7943 + 8262.000 16.9703 + 8263.000 -14.1064 + 8264.000 -15.3733 + 8265.000 -33.1056 + 8266.000 4.2593 + 8267.000 10.4145 + 8268.000 -6.6898 + 8269.000 -0.5704 + 8270.000 -2.5510 + 8271.000 0.4949 + 8272.000 -2.2395 + 8273.000 -8.4707 + 8274.000 -12.2324 + 8275.000 1.3341 + 8276.000 0.9351 + 8277.000 4.5536 + 8278.000 -5.7603 + 8279.000 -6.6316 + 8280.000 8.8461 + 8281.000 -9.6494 + 8282.000 -8.3773 + 8283.000 31.6776 + 8284.000 -21.5327 + 8285.000 -21.8077 + 8286.000 -0.8408 + 8287.000 -3.2689 + 8288.000 -0.1793 + 8289.000 21.8573 + 8290.000 -17.9205 + 8291.000 -14.0843 + 8292.000 -21.8017 + 8293.000 4.2851 + 8294.000 6.6000 + 8295.000 19.6108 + 8296.000 -9.0042 + 8297.000 -14.9475 + 8298.000 10.5713 + 8299.000 -9.3169 + 8300.000 -9.8865 + 8301.000 22.6121 + 8302.000 -15.8159 + 8303.000 -15.7496 + 8304.000 11.9332 + 8305.000 -9.6944 + 8306.000 -8.9888 + 8307.000 12.6199 + 8308.000 -7.4037 + 8309.000 -12.5936 + 8310.000 -16.0577 + 8311.000 3.8448 + 8312.000 0.3170 + 8313.000 8.1555 + 8314.000 -10.3850 + 8315.000 -6.0273 + 8316.000 13.6930 + 8317.000 -5.9773 + 8318.000 -8.6511 + 8319.000 13.1916 + 8320.000 -12.8685 + 8321.000 -12.0459 + 8322.000 -10.4085 + 8323.000 -2.8401 + 8324.000 2.8513 + 8325.000 28.5617 + 8326.000 -20.8257 + 8327.000 -17.6789 + 8328.000 17.7626 + 8329.000 -11.0427 + 8330.000 -13.0581 + 8331.000 -9.8874 + 8332.000 0.8670 + 8333.000 0.4908 + 8334.000 22.2776 + 8335.000 -14.8036 + 8336.000 -14.4667 + 8337.000 -10.5262 + 8338.000 -2.1024 + 8339.000 1.8853 + 8340.000 15.5395 + 8341.000 -11.8548 + 8342.000 -11.6184 + 8343.000 16.6191 + 8344.000 -13.5801 + 8345.000 -8.1009 + 8346.000 19.3758 + 8347.000 -14.2678 + 8348.000 -13.8490 + 8349.000 -1.0609 + 8350.000 -3.9160 + 8351.000 -5.5084 + 8352.000 0.8330 + 8353.000 -8.1892 + 8354.000 -1.6751 + 8355.000 32.8737 + 8356.000 -21.9887 + 8357.000 -20.0749 + 8358.000 -9.0831 + 8359.000 3.2789 + 8360.000 -3.2306 + 8361.000 26.3107 + 8362.000 -18.5323 + 8363.000 -19.4363 + 8364.000 -20.1574 + 8365.000 4.4737 + 8366.000 6.3346 + 8367.000 9.7144 + 8368.000 -9.3337 + 8369.000 -5.8060 + 8370.000 3.5375 + 8371.000 -6.3996 + 8372.000 -6.3658 + 8373.000 7.9240 + 8374.000 -10.9582 + 8375.000 -8.7378 + 8376.000 5.1521 + 8377.000 -7.2142 + 8378.000 -4.8109 + 8379.000 16.4797 + 8380.000 -9.0682 + 8381.000 -12.4677 + 8382.000 3.6338 + 8383.000 -5.8153 + 8384.000 -6.6234 + 8385.000 14.6921 + 8386.000 -13.5356 + 8387.000 -11.4097 + 8388.000 -6.2428 + 8389.000 -3.1096 + 8390.000 1.8975 + 8391.000 18.3764 + 8392.000 -12.4659 + 8393.000 -18.4427 + 8394.000 3.0221 + 8395.000 -7.0249 + 8396.000 -3.7985 + 8397.000 -8.9973 + 8398.000 1.9023 + 8399.000 -0.0306 + 8400.000 -11.7495 + 8401.000 0.7944 + 8402.000 1.9823 + 8403.000 44.4873 + 8404.000 -23.6785 + 8405.000 -21.9704 + 8406.000 12.2490 + 8407.000 -13.5842 + 8408.000 -8.5373 + 8409.000 -12.0433 + 8410.000 6.0196 + 8411.000 0.7798 + 8412.000 21.6884 + 8413.000 -16.6687 + 8414.000 -18.5038 + 8415.000 -15.1743 + 8416.000 3.9756 + 8417.000 3.7830 + 8418.000 32.4618 + 8419.000 -22.2332 + 8420.000 -18.5029 + 8421.000 19.7507 + 8422.000 -11.5891 + 8423.000 -15.8981 + 8424.000 -11.9229 + 8425.000 3.5293 + 8426.000 1.7273 + 8427.000 -22.9286 + 8428.000 8.9126 + 8429.000 6.3635 + 8430.000 -4.6378 + 8431.000 -5.3919 + 8432.000 3.2832 + 8433.000 -5.7933 + 8434.000 0.2013 + 8435.000 -0.0269 + 8436.000 -10.5511 + 8437.000 1.7079 + 8438.000 -0.8700 + 8439.000 0.6630 + 8440.000 -6.1931 + 8441.000 -4.4869 + 8442.000 -16.6122 + 8443.000 7.2714 + 8444.000 -1.0230 + 8445.000 -13.9611 + 8446.000 2.5110 + 8447.000 6.0912 + 8448.000 -20.7712 + 8449.000 5.6215 + 8450.000 7.2820 + 8451.000 10.2515 + 8452.000 -11.1828 + 8453.000 -11.1542 + 8454.000 -13.3273 + 8455.000 3.3768 + 8456.000 3.9032 + 8457.000 18.5814 + 8458.000 -13.7491 + 8459.000 -12.8236 + 8460.000 10.3621 + 8461.000 -6.4331 + 8462.000 -11.6263 + 8463.000 -1.7794 + 8464.000 -3.4847 + 8465.000 -3.9240 + 8466.000 44.3262 + 8467.000 -26.7767 + 8468.000 -27.5156 + 8469.000 20.2046 + 8470.000 -15.8653 + 8471.000 -15.6144 + 8472.000 1.6681 + 8473.000 -3.9299 + 8474.000 -9.7178 + 8475.000 27.4056 + 8476.000 -20.2834 + 8477.000 -17.3339 + 8478.000 15.3532 + 8479.000 -12.4121 + 8480.000 -12.3648 + 8481.000 -5.3888 + 8482.000 -2.5381 + 8483.000 -2.1061 + 8484.000 -23.9429 + 8485.000 10.8943 + 8486.000 3.3832 + 8487.000 29.5130 + 8488.000 -17.6780 + 8489.000 -14.6024 + 8490.000 -6.9474 + 8491.000 1.5160 + 8492.000 -2.8652 + 8493.000 17.1408 + 8494.000 -11.7036 + 8495.000 -11.7652 + 8496.000 5.8959 + 8497.000 -8.7269 + 8498.000 -8.6165 + 8499.000 29.1722 + 8500.000 -21.8198 + 8501.000 -16.7132 + 8502.000 -1.7584 + 8503.000 -3.9291 + 8504.000 -3.3494 + 8505.000 -15.9752 + 8506.000 3.7035 + 8507.000 1.5115 + 8508.000 -19.2052 + 8509.000 2.9959 + 8510.000 6.0127 + 8511.000 2.1164 + 8512.000 -5.1816 + 8513.000 -5.5037 + 8514.000 -0.3366 + 8515.000 -5.7569 + 8516.000 -0.9077 + 8517.000 -7.3219 + 8518.000 -1.7347 + 8519.000 -1.1933 + 8520.000 10.6356 + 8521.000 -10.4400 + 8522.000 -9.2397 + 8523.000 6.1159 + 8524.000 -5.3698 + 8525.000 -4.3779 + 8526.000 -0.1743 + 8527.000 -5.7084 + 8528.000 -5.4873 + 8529.000 0.4218 + 8530.000 -4.8735 + 8531.000 -5.0102 + 8532.000 7.4355 + 8533.000 -8.5590 + 8534.000 -9.4506 + 8535.000 7.5316 + 8536.000 -8.1190 + 8537.000 -7.9223 + 8538.000 6.0026 + 8539.000 -4.7100 + 8540.000 -7.6609 + 8541.000 7.0073 + 8542.000 -8.1782 + 8543.000 -8.1290 + 8544.000 6.2973 + 8545.000 -7.1868 + 8546.000 -7.1478 + 8547.000 -9.1209 + 8548.000 2.5874 + 8549.000 0.3535 + 8550.000 -25.5638 + 8551.000 9.4889 + 8552.000 8.9164 + 8553.000 46.8555 + 8554.000 -28.5972 + 8555.000 -22.5851 + 8556.000 -21.6844 + 8557.000 9.8272 + 8558.000 7.8949 + 8559.000 -26.9679 + 8560.000 8.5338 + 8561.000 10.0459 + 8562.000 -14.0106 + 8563.000 0.3321 + 8564.000 3.4481 + 8565.000 0.2382 + 8566.000 -5.0645 + 8567.000 0.9719 + 8568.000 -5.5617 + 8569.000 -2.3908 + 8570.000 -4.2202 + 8571.000 -22.3539 + 8572.000 4.3519 + 8573.000 4.4321 + 8574.000 -37.0157 + 8575.000 15.6917 + 8576.000 13.4403 + 8577.000 -11.0288 + 8578.000 0.2977 + 8579.000 -1.2334 + 8580.000 9.2206 + 8581.000 -11.0691 + 8582.000 -6.5807 + 8583.000 1.7053 + 8584.000 -7.0694 + 8585.000 -6.7178 + 8586.000 17.6306 + 8587.000 -12.2324 + 8588.000 -12.8765 + 8589.000 -35.0083 + 8590.000 11.8847 + 8591.000 14.1817 + 8592.000 -5.0313 + 8593.000 2.3079 + 8594.000 -1.2713 + 8595.000 22.7387 + 8596.000 -14.5906 + 8597.000 -13.8452 + 8598.000 5.9878 + 8599.000 -4.0589 + 8600.000 -7.0421 + 8601.000 -2.7125 + 8602.000 -2.2998 + 8603.000 0.7514 + 8604.000 -20.1990 + 8605.000 6.8095 + 8606.000 8.2733 + 8607.000 -42.3167 + 8608.000 18.4412 + 8609.000 10.3243 + 8610.000 -0.0290 + 8611.000 -3.1695 + 8612.000 -5.7111 + 8613.000 -20.4817 + 8614.000 3.7767 + 8615.000 8.1427 + 8616.000 -12.0880 + 8617.000 -0.1694 + 8618.000 7.7883 + 8619.000 -54.0784 + 8620.000 31.0344 + 8621.000 9.4836 + 8622.000 27.5442 + 8623.000 -18.4569 + 8624.000 -18.3726 + 8625.000 -3.3728 + 8626.000 -0.8231 + 8627.000 -4.6406 + 8628.000 -15.6060 + 8629.000 4.9269 + 8630.000 3.3653 + 8631.000 -2.3629 + 8632.000 -0.9508 + 8633.000 -1.4884 + 8634.000 -75.7812 + 8635.000 24.9665 + 8636.000 60.5380 + 8637.000 -30.5671 + 8638.000 12.5238 + 8639.000 10.2059 + 8640.000 -11.4265 + 8641.000 1.6581 + 8642.000 2.4010 + 8643.000 -10.2363 + 8644.000 -0.7789 + 8645.000 0.0775 + 8646.000 35.8585 + 8647.000 -24.7981 + 8648.000 -22.9287 + 8649.000 22.9180 + 8650.000 -16.5870 + 8651.000 -15.7952 + 8652.000 -13.6013 + 8653.000 -0.5286 + 8654.000 0.5930 + 8655.000 -30.9966 + 8656.000 9.0147 + 8657.000 11.2297 + 8658.000 -52.1743 + 8659.000 21.9095 + 8660.000 26.6363 + 8661.000 -32.0440 + 8662.000 10.7528 + 8663.000 7.3432 + 8664.000 30.8931 + 8665.000 -23.7401 + 8666.000 -17.6142 + 8667.000 9.3569 + 8668.000 -9.5999 + 8669.000 -10.1359 + 8670.000 31.2488 + 8671.000 -17.5122 + 8672.000 -21.0051 + 8673.000 18.7494 + 8674.000 -14.2277 + 8675.000 -16.0855 + 8676.000 -14.0145 + 8677.000 2.4015 + 8678.000 2.5244 + 8679.000 11.5582 + 8680.000 -10.3894 + 8681.000 -9.1066 + 8682.000 -5.4985 + 8683.000 -0.3636 + 8684.000 -0.5335 + 8685.000 19.3823 + 8686.000 -13.4902 + 8687.000 -10.0002 + 8688.000 4.6435 + 8689.000 -6.5048 + 8690.000 -7.3351 + 8691.000 6.7974 + 8692.000 -10.2400 + 8693.000 -9.1636 + 8694.000 16.6301 + 8695.000 -7.5904 + 8696.000 -13.5789 + 8697.000 6.1649 + 8698.000 -5.8865 + 8699.000 -7.7091 + 8700.000 -7.8110 + 8701.000 -1.6552 + 8702.000 0.2913 + 8703.000 18.7892 + 8704.000 -14.6695 + 8705.000 -13.4020 + 8706.000 -21.7681 + 8707.000 8.9583 + 8708.000 6.4091 + 8709.000 25.1347 + 8710.000 -16.6596 + 8711.000 -19.6917 + 8712.000 2.6709 + 8713.000 -9.9863 + 8714.000 -3.0367 + 8715.000 19.6101 + 8716.000 -8.6479 + 8717.000 -11.7844 + 8718.000 -6.4981 + 8719.000 -3.5382 + 8720.000 -0.3419 + 8721.000 5.6133 + 8722.000 -10.9070 + 8723.000 -6.1466 + 8724.000 -24.3363 + 8725.000 8.3594 + 8726.000 5.0125 + 8727.000 -37.4560 + 8728.000 17.5193 + 8729.000 10.9531 + 8730.000 -1.3473 + 8731.000 -3.8490 + 8732.000 -4.7636 + 8733.000 -51.5418 + 8734.000 25.7901 + 8735.000 24.3412 + 8736.000 27.9657 + 8737.000 -17.1808 + 8738.000 -15.5891 + 8739.000 -18.7861 + 8740.000 8.1524 + 8741.000 3.9976 + 8742.000 -24.6685 + 8743.000 8.0943 + 8744.000 11.5499 + 8745.000 -14.3491 + 8746.000 4.0348 + 8747.000 0.5774 + 8748.000 -19.8477 + 8749.000 2.3775 + 8750.000 3.0952 + 8751.000 -15.2119 + 8752.000 -2.1886 + 8753.000 7.6849 + 8754.000 -88.8118 + 8755.000 69.6171 + 8756.000 32.5862 + 8757.000 -0.6452 + 8758.000 -3.1920 + 8759.000 -6.9148 + 8760.000 -3.7517 + 8761.000 -5.3001 + 8762.000 -0.9190 + 8763.000 -29.1930 + 8764.000 9.2494 + 8765.000 12.4312 + 8766.000 20.4024 + 8767.000 -16.9997 + 8768.000 -14.5943 + 8769.000 -11.6101 + 8770.000 1.5743 + 8771.000 0.2565 + 8772.000 -45.0874 + 8773.000 17.1475 + 8774.000 18.3029 + 8775.000 -5.6416 + 8776.000 1.3792 + 8777.000 -3.1351 + 8778.000 11.4889 + 8779.000 -11.1513 + 8780.000 -11.8455 + 8781.000 5.5877 + 8782.000 -6.8898 + 8783.000 -7.6254 + 8784.000 -56.1054 + 8785.000 20.4100 + 8786.000 26.4441 + 8787.000 39.2643 + 8788.000 -22.2313 + 8789.000 -26.7618 + 8790.000 -11.7971 + 8791.000 0.6931 + 8792.000 -0.8354 + 8793.000 -29.2259 + 8794.000 8.8932 + 8795.000 11.0029 + 8796.000 19.3702 + 8797.000 -9.2421 + 8798.000 -15.4635 + 8799.000 7.5645 + 8800.000 -10.3958 + 8801.000 -9.4784 + 8802.000 -22.0392 + 8803.000 12.6701 + 8804.000 6.8473 + 8805.000 -29.3524 + 8806.000 7.4242 + 8807.000 11.3159 + 8808.000 2.7213 + 8809.000 -0.2832 + 8810.000 -4.9388 + 8811.000 -52.7927 + 8812.000 17.1114 + 8813.000 25.6422 + 8814.000 21.4775 + 8815.000 -13.9462 + 8816.000 -10.9278 + 8817.000 -3.2898 + 8818.000 -4.4505 + 8819.000 -0.7333 + 8820.000 -27.5778 + 8821.000 12.3835 + 8822.000 11.2072 + 8823.000 13.7698 + 8824.000 -12.6496 + 8825.000 -9.6655 + 8826.000 19.3825 + 8827.000 -13.9034 + 8828.000 -13.2319 + 8829.000 7.7420 + 8830.000 -9.9636 + 8831.000 -3.6604 + 8832.000 -3.9226 + 8833.000 0.5818 + 8834.000 0.0798 + 8835.000 6.0525 + 8836.000 -8.8920 + 8837.000 -9.0335 + 8838.000 13.6714 + 8839.000 -9.7433 + 8840.000 -13.2182 + 8841.000 -31.9049 + 8842.000 18.1111 + 8843.000 9.1755 + 8844.000 6.1648 + 8845.000 -9.0856 + 8846.000 -3.9607 + 8847.000 10.2665 + 8848.000 -8.9816 + 8849.000 -10.2785 + 8850.000 -11.6294 + 8851.000 -1.8692 + 8852.000 -0.7823 + 8853.000 -26.9674 + 8854.000 9.6662 + 8855.000 11.7144 + 8856.000 -7.2616 + 8857.000 -0.9482 + 8858.000 -1.0508 + 8859.000 -33.4605 + 8860.000 16.1733 + 8861.000 10.7757 + 8862.000 19.8519 + 8863.000 -10.6624 + 8864.000 -16.6130 + 8865.000 -38.5152 + 8866.000 20.9730 + 8867.000 10.1111 + 8868.000 14.5163 + 8869.000 -9.1682 + 8870.000 -13.7191 + 8871.000 -64.5654 + 8872.000 23.9736 + 8873.000 37.7847 + 8874.000 -18.2891 + 8875.000 5.5457 + 8876.000 2.1707 + 8877.000 42.7610 + 8878.000 -22.8192 + 8879.000 -25.6156 + 8880.000 20.9094 + 8881.000 -13.5368 + 8882.000 -18.3644 + 8883.000 43.2727 + 8884.000 -22.9008 + 8885.000 -20.8584 + 8886.000 -1.4502 + 8887.000 -5.6009 + 8888.000 -0.8823 + 8889.000 33.6980 + 8890.000 -23.4112 + 8891.000 -20.7656 + 8892.000 -8.8528 + 8893.000 -0.6736 + 8894.000 -3.1592 + 8895.000 0.4938 + 8896.000 -3.7780 + 8897.000 -6.0141 + 8898.000 -18.8867 + 8899.000 6.2355 + 8900.000 4.9543 + 8901.000 -24.8896 + 8902.000 11.6818 + 8903.000 8.3324 + 8904.000 8.4080 + 8905.000 -9.3816 + 8906.000 -11.3808 + 8907.000 10.1869 + 8908.000 -11.8677 + 8909.000 -10.1449 + 8910.000 10.2768 + 8911.000 -5.8481 + 8912.000 -10.9997 + 8913.000 19.7591 + 8914.000 -14.2485 + 8915.000 -12.1338 + 8916.000 23.0593 + 8917.000 -15.1461 + 8918.000 -20.6859 + 8919.000 -7.6598 + 8920.000 0.5263 + 8921.000 0.5628 + 8922.000 -40.9895 + 8923.000 15.8025 + 8924.000 22.7459 + 8925.000 -51.5261 + 8926.000 18.9980 + 8927.000 13.4728 + 8928.000 11.0045 + 8929.000 -9.8512 + 8930.000 -10.1462 + 8931.000 21.3458 + 8932.000 -13.9605 + 8933.000 -15.5487 + 8934.000 17.6913 + 8935.000 -12.7315 + 8936.000 -16.8421 + 8937.000 -5.6583 + 8938.000 1.2878 + 8939.000 -3.1282 + 8940.000 9.6621 + 8941.000 -10.9665 + 8942.000 -8.0609 + 8943.000 -6.7825 + 8944.000 -0.9351 + 8945.000 -1.1156 + 8946.000 -21.8518 + 8947.000 8.2307 + 8948.000 7.4864 + 8949.000 -9.4177 + 8950.000 0.0286 + 8951.000 2.6926 + 8952.000 2.7690 + 8953.000 -1.4443 + 8954.000 -4.0771 + 8955.000 9.8711 + 8956.000 -10.6173 + 8957.000 -9.4079 + 8958.000 22.6009 + 8959.000 -18.8601 + 8960.000 -17.0351 + 8961.000 -29.0095 + 8962.000 10.0740 + 8963.000 12.2044 + 8964.000 -25.8798 + 8965.000 13.5624 + 8966.000 10.1469 + 8967.000 -21.0646 + 8968.000 6.4627 + 8969.000 6.1887 + 8970.000 -34.5444 + 8971.000 11.0056 + 8972.000 17.4238 + 8973.000 -1.7075 + 8974.000 -1.1772 + 8975.000 -0.8239 + 8976.000 -29.5357 + 8977.000 9.9483 + 8978.000 10.6146 + 8979.000 -26.7709 + 8980.000 13.1424 + 8981.000 7.9937 + 8982.000 -28.4922 + 8983.000 10.9879 + 8984.000 11.0161 + 8985.000 -31.2897 + 8986.000 11.7643 + 8987.000 10.6006 + 8988.000 -26.9883 + 8989.000 9.8051 + 8990.000 13.4401 + 8991.000 -34.9946 + 8992.000 12.0396 + 8993.000 14.3599 + 8994.000 -36.4088 + 8995.000 13.4150 + 8996.000 14.2413 + 8997.000 -33.2486 + 8998.000 13.5255 + 8999.000 11.2275 + 9000.000 -28.2454 + 9001.000 7.9344 + 9002.000 7.6263 + 9003.000 -24.4273 + 9004.000 10.2625 + 9005.000 7.5408 + 9006.000 -35.3923 + 9007.000 12.7072 + 9008.000 15.3044 + 9009.000 -37.0319 + 9010.000 11.9560 + 9011.000 15.9792 + 9012.000 -31.5466 + 9013.000 11.0608 + 9014.000 10.1042 + 9015.000 -40.2642 + 9016.000 13.0838 + 9017.000 17.8736 + 9018.000 -33.8309 + 9019.000 13.3184 + 9020.000 8.5043 + 9021.000 -28.8742 + 9022.000 7.7823 + 9023.000 10.6850 + 9024.000 -28.5288 + 9025.000 8.7895 + 9026.000 8.0932 + 9027.000 -24.7468 + 9028.000 8.2813 + 9029.000 7.4840 + 9030.000 -31.6777 + 9031.000 9.8900 + 9032.000 12.0902 + 9033.000 -21.4908 + 9034.000 6.0892 + 9035.000 10.8399 + 9036.000 -16.6501 + 9037.000 3.9571 + 9038.000 9.1493 + 9039.000 -27.2200 + 9040.000 5.5141 + 9041.000 8.5646 + 9042.000 -26.2642 + 9043.000 11.6631 + 9044.000 7.8546 + 9045.000 -27.9964 + 9046.000 13.2961 + 9047.000 11.3032 + 9048.000 -23.7971 + 9049.000 7.5481 + 9050.000 7.2934 + 9051.000 -18.7172 + 9052.000 3.6163 + 9053.000 3.8069 + 9054.000 -24.6914 + 9055.000 5.7624 + 9056.000 9.9948 + 9057.000 -10.1456 + 9058.000 5.9222 + 9059.000 3.7889 + 9060.000 -42.6724 + 9061.000 18.2866 + 9062.000 18.2284 + 9063.000 -40.6649 + 9064.000 11.8011 + 9065.000 16.9947 + 9066.000 -39.3881 + 9067.000 16.1203 + 9068.000 14.1476 + 9069.000 -32.5399 + 9070.000 11.6467 + 9071.000 12.0726 + 9072.000 -33.8390 + 9073.000 11.8487 + 9074.000 11.9554 + 9075.000 -38.2904 + 9076.000 12.1044 + 9077.000 18.4679 + 9078.000 -42.0850 + 9079.000 19.0718 + 9080.000 12.8415 + 9081.000 -42.8307 + 9082.000 15.4378 + 9083.000 16.3051 + 9084.000 -25.7390 + 9085.000 6.2068 + 9086.000 6.9607 + 9087.000 -24.9608 + 9088.000 8.1594 + 9089.000 6.8660 + 9090.000 -24.7302 + 9091.000 8.5780 + 9092.000 8.5503 + 9093.000 -25.3634 + 9094.000 8.7305 + 9095.000 6.8590 + 9096.000 -47.5694 + 9097.000 18.3896 + 9098.000 20.6039 + 9099.000 -35.2261 + 9100.000 12.8591 + 9101.000 11.5873 + 9102.000 -34.2046 + 9103.000 16.5605 + 9104.000 12.8023 + 9105.000 -55.5221 + 9106.000 21.0599 + 9107.000 22.6307 + 9108.000 -45.9410 + 9109.000 21.7763 + 9110.000 18.7983 + 9111.000 -46.5927 + 9112.000 16.8603 + 9113.000 19.5561 + 9114.000 -25.7365 + 9115.000 6.5017 + 9116.000 12.2233 + 9117.000 -34.6911 + 9118.000 15.2753 + 9119.000 13.9574 + 9120.000 -38.5055 + 9121.000 14.1927 + 9122.000 14.3813 + 9123.000 -35.8274 + 9124.000 12.8258 + 9125.000 12.5964 + 9126.000 -37.8152 + 9127.000 17.6743 + 9128.000 10.8508 + 9129.000 -27.3867 + 9130.000 7.9279 + 9131.000 11.8906 + 9132.000 -34.2026 + 9133.000 11.5969 + 9134.000 11.8968 + 9135.000 -34.4306 + 9136.000 12.5028 + 9137.000 14.4161 + 9138.000 -31.6686 + 9139.000 12.1941 + 9140.000 11.3323 + 9141.000 -33.0852 + 9142.000 13.5347 + 9143.000 8.6034 + 9144.000 -23.7314 + 9145.000 10.2497 + 9146.000 6.5534 + 9147.000 -21.0650 + 9148.000 6.6842 + 9149.000 3.0373 + 9150.000 -37.3252 + 9151.000 17.2352 + 9152.000 15.8356 + 9153.000 -33.1214 + 9154.000 11.1873 + 9155.000 10.6800 + 9156.000 -21.7402 + 9157.000 7.0255 + 9158.000 7.9854 + 9159.000 -29.5888 + 9160.000 10.5592 + 9161.000 11.1592 + 9162.000 -24.1282 + 9163.000 6.7513 + 9164.000 5.6982 + 9165.000 -27.1658 + 9166.000 8.4416 + 9167.000 7.9185 + 9168.000 -33.6971 + 9169.000 12.9267 + 9170.000 11.7341 + 9171.000 -21.9546 + 9172.000 6.0221 + 9173.000 8.0309 + 9174.000 -24.3662 + 9175.000 7.3613 + 9176.000 5.1728 + 9177.000 -26.5312 + 9178.000 7.6454 + 9179.000 9.6633 + 9180.000 -22.4495 + 9181.000 9.7130 + 9182.000 11.0591 + 9183.000 -38.4646 + 9184.000 17.5116 + 9185.000 12.7623 + 9186.000 -28.5096 + 9187.000 9.2699 + 9188.000 9.5864 + 9189.000 -23.2283 + 9190.000 10.0859 + 9191.000 6.9249 + 9192.000 -38.2688 + 9193.000 16.4381 + 9194.000 14.5988 + 9195.000 -23.2542 + 9196.000 12.2330 + 9197.000 8.9423 + 9198.000 -20.3602 + 9199.000 3.2443 + 9200.000 6.9874 + 9201.000 -31.2194 + 9202.000 10.0836 + 9203.000 9.2409 + 9204.000 -49.0571 + 9205.000 21.2859 + 9206.000 19.3528 + 9207.000 -42.1164 + 9208.000 19.3079 + 9209.000 17.6625 + 9210.000 -33.4499 + 9211.000 10.1645 + 9212.000 13.0847 + 9213.000 -18.9504 + 9214.000 5.7490 + 9215.000 7.8856 + 9216.000 -26.8363 + 9217.000 10.2761 + 9218.000 11.3757 + 9219.000 -30.1941 + 9220.000 7.6823 + 9221.000 11.5173 + 9222.000 -18.6403 + 9223.000 7.5676 + 9224.000 8.2813 + 9225.000 -40.8506 + 9226.000 16.1097 + 9227.000 16.5766 + 9228.000 -37.9403 + 9229.000 14.3699 + 9230.000 11.7261 + 9231.000 -49.9308 + 9232.000 21.4209 + 9233.000 19.6408 + 9234.000 -35.5676 + 9235.000 15.7663 + 9236.000 16.8175 + 9237.000 -15.6756 + 9238.000 8.0704 + 9239.000 5.0892 + 9240.000 -37.0218 + 9241.000 16.9415 + 9242.000 14.4777 + 9243.000 -24.7865 + 9244.000 8.6840 + 9245.000 7.9466 + 9246.000 -30.3230 + 9247.000 8.9562 + 9248.000 7.6193 + 9249.000 -22.8771 + 9250.000 7.6557 + 9251.000 6.4577 + 9252.000 -30.6012 + 9253.000 11.4005 + 9254.000 7.9625 + 9255.000 -44.0104 + 9256.000 14.6555 + 9257.000 21.8838 + 9258.000 -25.7735 + 9259.000 11.5182 + 9260.000 7.1951 + 9261.000 -33.7495 + 9262.000 15.9801 + 9263.000 15.8137 + 9264.000 -23.9645 + 9265.000 8.7982 + 9266.000 6.5141 + 9267.000 -40.1166 + 9268.000 14.7273 + 9269.000 18.9175 + 9270.000 -36.2350 + 9271.000 11.5755 + 9272.000 11.0204 + 9273.000 -34.6384 + 9274.000 17.0393 + 9275.000 13.4779 + 9276.000 -24.6116 + 9277.000 7.0125 + 9278.000 10.8073 + 9279.000 -29.5506 + 9280.000 9.6863 + 9281.000 11.3551 + 9282.000 -27.3354 + 9283.000 9.5753 + 9284.000 5.9366 + 9285.000 -41.7533 + 9286.000 16.6893 + 9287.000 16.7998 + 9288.000 -19.6798 + 9289.000 3.6848 + 9290.000 8.7849 + 9291.000 -26.8912 + 9292.000 7.3254 + 9293.000 10.5932 + 9294.000 -37.2516 + 9295.000 12.7385 + 9296.000 16.7096 + 9297.000 -48.8222 + 9298.000 18.2709 + 9299.000 19.0750 + 9300.000 -40.0744 + 9301.000 17.4020 + 9302.000 17.5497 + 9303.000 -15.6331 + 9304.000 1.4261 + 9305.000 4.2827 + 9306.000 -29.9523 + 9307.000 8.9672 + 9308.000 11.1310 + 9309.000 -19.9829 + 9310.000 4.2848 + 9311.000 6.9420 + 9312.000 -24.0080 + 9313.000 5.6830 + 9314.000 7.2899 + 9315.000 -8.3247 + 9316.000 -0.3239 + 9317.000 1.9511 + 9318.000 -22.2100 + 9319.000 10.4445 + 9320.000 5.8569 + 9321.000 -19.9943 + 9322.000 9.9763 + 9323.000 3.4063 + 9324.000 -30.3505 + 9325.000 10.2416 + 9326.000 7.6392 + 9327.000 -51.9874 + 9328.000 20.5281 + 9329.000 22.2535 + 9330.000 -49.9226 + 9331.000 24.0097 + 9332.000 23.8396 + 9333.000 -32.8377 + 9334.000 11.0619 + 9335.000 14.6251 + 9336.000 -65.3453 + 9337.000 29.0557 + 9338.000 26.4404 + 9339.000 -56.6581 + 9340.000 29.1847 + 9341.000 25.1520 + 9342.000 -34.0969 + 9343.000 14.5482 + 9344.000 14.3522 + 9345.000 -13.4915 + 9346.000 6.0330 + 9347.000 6.4214 + 9348.000 -45.0789 + 9349.000 18.2669 + 9350.000 16.8262 + 9351.000 -6.3217 + 9352.000 -1.2682 + 9353.000 -1.3916 + 9354.000 -7.0348 + 9355.000 -0.2173 + 9356.000 -1.5234 + 9357.000 -3.6346 + 9358.000 -3.6747 + 9359.000 -1.8318 + 9360.000 4.2561 + 9361.000 -7.5401 + 9362.000 -6.2522 + 9363.000 1.6927 + 9364.000 -3.9587 + 9365.000 -6.1451 + 9366.000 5.6292 + 9367.000 -9.5796 + 9368.000 -6.1373 + 9369.000 -12.4615 + 9370.000 5.8836 + 9371.000 -0.5935 + 9372.000 -1.5239 + 9373.000 -2.8329 + 9374.000 -4.5272 + 9375.000 -4.7346 + 9376.000 -2.2981 + 9377.000 -2.6000 + 9378.000 2.0800 + 9379.000 -5.4209 + 9380.000 -3.9751 + 9381.000 -7.8667 + 9382.000 -2.2539 + 9383.000 0.0445 + 9384.000 2.7381 + 9385.000 -5.4332 + 9386.000 -7.6143 + 9387.000 -3.2123 + 9388.000 -2.0621 + 9389.000 -5.0862 + 9390.000 -5.3692 + 9391.000 -0.4869 + 9392.000 -2.7944 + 9393.000 -2.3142 + 9394.000 -1.4436 + 9395.000 -0.7072 + 9396.000 -3.2664 + 9397.000 -0.5612 + 9398.000 -3.4893 + 9399.000 -8.0437 + 9400.000 -0.9315 + 9401.000 1.7639 + 9402.000 3.2922 + 9403.000 -4.0920 + 9404.000 -6.0035 + 9405.000 5.9439 + 9406.000 -7.3993 + 9407.000 -6.0933 + 9408.000 -22.9754 + 9409.000 4.0546 + 9410.000 9.5299 + 9411.000 -24.9307 + 9412.000 10.4837 + 9413.000 4.5329 + 9414.000 -17.3320 + 9415.000 0.9760 + 9416.000 6.9563 + 9417.000 -8.6186 + 9418.000 1.4482 + 9419.000 -3.6579 + 9420.000 10.5936 + 9421.000 -11.0377 + 9422.000 -12.2365 + 9423.000 15.2860 + 9424.000 -10.3627 + 9425.000 -13.2759 + 9426.000 4.7111 + 9427.000 -6.0341 + 9428.000 -10.0253 + 9429.000 -33.2545 + 9430.000 16.0025 + 9431.000 9.9285 + 9432.000 5.8184 + 9433.000 -8.5354 + 9434.000 -3.1068 + 9435.000 -24.2644 + 9436.000 12.6869 + 9437.000 10.8558 + 9438.000 -5.6102 + 9439.000 2.2308 + 9440.000 1.8123 + 9441.000 7.9369 + 9442.000 -4.5870 + 9443.000 -9.3260 + 9444.000 -8.7052 + 9445.000 -0.2747 + 9446.000 2.5419 + 9447.000 -9.7130 + 9448.000 4.4469 + 9449.000 3.0766 + 9450.000 -7.4485 + 9451.000 -1.1169 + 9452.000 -0.3628 + 9453.000 -22.3891 + 9454.000 4.2008 + 9455.000 8.7592 + 9456.000 8.2676 + 9457.000 -7.2432 + 9458.000 -9.0155 + 9459.000 -17.0389 + 9460.000 5.3024 + 9461.000 3.8623 + 9462.000 6.3848 + 9463.000 -7.0882 + 9464.000 -5.5265 + 9465.000 -9.6032 + 9466.000 -0.8326 + 9467.000 0.2624 + 9468.000 14.2085 + 9469.000 -12.3218 + 9470.000 -13.2708 + 9471.000 -4.1952 + 9472.000 -0.0396 + 9473.000 -2.2747 + 9474.000 5.3854 + 9475.000 -7.8883 + 9476.000 -3.4504 + 9477.000 4.7789 + 9478.000 -6.9520 + 9479.000 -5.9230 + 9480.000 -7.1007 + 9481.000 -1.2565 + 9482.000 -1.5545 + 9483.000 -10.2173 + 9484.000 -2.2827 + 9485.000 3.3977 + 9486.000 13.9646 + 9487.000 -11.2878 + 9488.000 -13.4178 + 9489.000 -15.7343 + 9490.000 6.0430 + 9491.000 0.1828 + 9492.000 1.4083 + 9493.000 -4.6903 + 9494.000 -6.2167 + 9495.000 -25.3647 + 9496.000 7.6420 + 9497.000 8.2330 + 9498.000 8.8718 + 9499.000 -10.4414 + 9500.000 -5.1649 + 9501.000 4.2233 + 9502.000 -7.7212 + 9503.000 -4.4207 + 9504.000 -23.0381 + 9505.000 6.0705 + 9506.000 10.5394 + 9507.000 -7.0297 + 9508.000 -3.0009 + 9509.000 2.0763 + 9510.000 -4.1251 + 9511.000 -3.3030 + 9512.000 -4.1306 + 9513.000 -2.2113 + 9514.000 -3.6846 + 9515.000 -6.3654 + 9516.000 11.7377 + 9517.000 -12.3813 + 9518.000 -8.6543 + 9519.000 -15.9540 + 9520.000 5.5039 + 9521.000 4.0462 + 9522.000 -13.8437 + 9523.000 2.2360 + 9524.000 2.2959 + 9525.000 16.8791 + 9526.000 -13.3188 + 9527.000 -12.2228 + 9528.000 8.0331 + 9529.000 -10.3429 + 9530.000 -6.4527 + 9531.000 -24.4525 + 9532.000 11.6918 + 9533.000 7.6785 + 9534.000 9.7005 + 9535.000 -11.0197 + 9536.000 -10.6680 + 9537.000 -20.4888 + 9538.000 6.3503 + 9539.000 6.8467 + 9540.000 23.0571 + 9541.000 -16.6539 + 9542.000 -14.1041 + 9543.000 9.2419 + 9544.000 -5.5821 + 9545.000 -10.2762 + 9546.000 -20.4623 + 9547.000 7.1797 + 9548.000 6.6967 + 9549.000 -34.2724 + 9550.000 14.7205 + 9551.000 11.4585 + 9552.000 -20.6562 + 9553.000 6.7271 + 9554.000 7.4097 + 9555.000 -28.5339 + 9556.000 11.6616 + 9557.000 7.0392 + 9558.000 -9.6638 + 9559.000 0.2400 + 9560.000 0.6959 + 9561.000 -18.0691 + 9562.000 7.3853 + 9563.000 0.3906 + 9564.000 -11.7123 + 9565.000 1.3847 + 9566.000 3.4362 + 9567.000 12.5276 + 9568.000 -7.1763 + 9569.000 -12.4793 + 9570.000 -6.5404 + 9571.000 -1.0743 + 9572.000 -1.1134 + 9573.000 17.7461 + 9574.000 -13.1805 + 9575.000 -16.2951 + 9576.000 1.2118 + 9577.000 -7.7726 + 9578.000 -5.2371 + 9579.000 5.0788 + 9580.000 -6.8970 + 9581.000 -6.5886 + 9582.000 -5.3298 + 9583.000 -0.2249 + 9584.000 -5.7527 + 9585.000 12.5889 + 9586.000 -11.8647 + 9587.000 -9.2684 + 9588.000 -8.4825 + 9589.000 1.2972 + 9590.000 -0.1398 + 9591.000 -4.4674 + 9592.000 -0.3533 + 9593.000 -3.4553 + 9594.000 -4.4512 + 9595.000 1.1648 + 9596.000 -1.8150 + 9597.000 -2.5610 + 9598.000 1.9064 + 9599.000 -4.1759 + 9600.000 9.1252 + 9601.000 -8.9285 + 9602.000 -6.2775 + 9603.000 -7.4604 + 9604.000 -1.1943 + 9605.000 -0.6895 + 9606.000 5.8417 + 9607.000 -6.1394 + 9608.000 -4.4453 + 9609.000 2.9988 + 9610.000 -7.4920 + 9611.000 -4.7201 + 9612.000 1.8696 + 9613.000 -2.5644 + 9614.000 -2.7805 + 9615.000 -3.0074 + 9616.000 -3.7736 + 9617.000 -3.4852 + 9618.000 -21.5570 + 9619.000 7.9264 + 9620.000 5.9824 + 9621.000 9.3632 + 9622.000 -8.9127 + 9623.000 -9.1805 + 9624.000 -18.0131 + 9625.000 3.0197 + 9626.000 5.6647 + 9627.000 -8.1381 + 9628.000 0.4711 + 9629.000 0.4225 + 9630.000 -2.8563 + 9631.000 -2.3935 + 9632.000 -3.3294 + 9633.000 1.9621 + 9634.000 -6.6030 + 9635.000 -6.1046 + 9636.000 4.2357 + 9637.000 -6.1945 + 9638.000 -5.9135 + 9639.000 6.5168 + 9640.000 -5.9943 + 9641.000 -9.7172 + 9642.000 -1.4405 + 9643.000 -5.1981 + 9644.000 -3.3629 + 9645.000 -2.8382 + 9646.000 0.2017 + 9647.000 -4.4260 + 9648.000 19.6626 + 9649.000 -13.2099 + 9650.000 -14.3228 + 9651.000 9.1427 + 9652.000 -7.5249 + 9653.000 -8.9750 + 9654.000 -2.0985 + 9655.000 -3.3020 + 9656.000 -3.5904 + 9657.000 6.6323 + 9658.000 -8.2594 + 9659.000 -8.6414 + 9660.000 -6.5547 + 9661.000 -1.0138 + 9662.000 -3.0331 + 9663.000 14.4862 + 9664.000 -9.6459 + 9665.000 -13.7025 + 9666.000 -11.6917 + 9667.000 3.8627 + 9668.000 -0.5461 + 9669.000 -5.1046 + 9670.000 0.7963 + 9671.000 -0.3712 + 9672.000 0.9083 + 9673.000 -1.6278 + 9674.000 -5.6324 + 9675.000 18.7021 + 9676.000 -14.0200 + 9677.000 -10.7421 + 9678.000 -12.0862 + 9679.000 3.9338 + 9680.000 1.5933 + 9681.000 1.9311 + 9682.000 -4.7616 + 9683.000 -5.5277 + 9684.000 -0.1466 + 9685.000 -6.4688 + 9686.000 -1.6739 + 9687.000 22.3611 + 9688.000 -14.9840 + 9689.000 -18.4943 + 9690.000 18.5770 + 9691.000 -15.4974 + 9692.000 -11.5407 + 9693.000 14.0831 + 9694.000 -11.5143 + 9695.000 -14.6496 + 9696.000 -2.5387 + 9697.000 -6.2893 + 9698.000 -4.9366 + 9699.000 -1.4111 + 9700.000 -0.9534 + 9701.000 -4.3041 + 9702.000 1.6258 + 9703.000 -5.4440 + 9704.000 -9.5952 + 9705.000 -1.5541 + 9706.000 0.3102 + 9707.000 -6.4180 + 9708.000 -4.9158 + 9709.000 -3.2443 + 9710.000 3.2511 + 9711.000 0.7030 + 9712.000 0.2711 + 9713.000 -1.4007 + 9714.000 2.6950 + 9715.000 -2.4411 + 9716.000 -1.3389 + 9717.000 -7.6411 + 9718.000 3.6539 + 9719.000 -1.0669 + 9720.000 -1.4420 + 9721.000 -5.0241 + 9722.000 -1.7860 + 9723.000 2.9078 + 9724.000 -2.3026 + 9725.000 -3.5978 + 9726.000 2.4470 + 9727.000 -5.9569 + 9728.000 -3.7710 + 9729.000 1.5469 + 9730.000 -7.3729 + 9731.000 -3.7948 + 9732.000 -5.3661 + 9733.000 0.3449 + 9734.000 -2.6213 + 9735.000 6.3826 + 9736.000 -6.0638 + 9737.000 -8.1658 + 9738.000 -12.1406 + 9739.000 3.2121 + 9740.000 3.1587 + 9741.000 19.6500 + 9742.000 -14.7815 + 9743.000 -13.2591 + 9744.000 8.3490 + 9745.000 -9.4809 + 9746.000 -8.5154 + 9747.000 -1.1400 + 9748.000 -0.4827 + 9749.000 -3.6858 + 9750.000 -1.1130 + 9751.000 -5.2383 + 9752.000 -0.1273 + 9753.000 -3.1594 + 9754.000 -3.3952 + 9755.000 -2.8779 + 9756.000 7.8831 + 9757.000 -10.1987 + 9758.000 -8.5319 + 9759.000 1.9066 + 9760.000 -8.7412 + 9761.000 -2.8207 + 9762.000 -6.6607 + 9763.000 -2.1804 + 9764.000 -1.7700 + 9765.000 8.9534 + 9766.000 -7.7132 + 9767.000 -11.7123 + 9768.000 -13.1035 + 9769.000 1.2464 + 9770.000 0.6353 + 9771.000 0.7581 + 9772.000 -5.7540 + 9773.000 -4.5086 + 9774.000 -6.4330 + 9775.000 -1.8398 + 9776.000 2.2642 + 9777.000 -14.9833 + 9778.000 2.9678 + 9779.000 4.7031 + 9780.000 -9.2139 + 9781.000 -2.3211 + 9782.000 3.4671 + 9783.000 -15.0603 + 9784.000 2.3828 + 9785.000 6.1644 + 9786.000 -4.7969 + 9787.000 -3.0540 + 9788.000 -4.1833 + 9789.000 12.0307 + 9790.000 -12.4594 + 9791.000 -13.4134 + 9792.000 -9.3082 + 9793.000 -1.0608 + 9794.000 2.2398 + 9795.000 15.2269 + 9796.000 -8.8166 + 9797.000 -11.8657 + 9798.000 18.6005 + 9799.000 -14.9869 + 9800.000 -14.7271 + 9801.000 0.0308 + 9802.000 -3.0362 + 9803.000 -3.2269 + 9804.000 -10.3647 + 9805.000 -1.9656 + 9806.000 3.3295 + 9807.000 -1.3974 + 9808.000 0.6529 + 9809.000 -2.8149 + 9810.000 -8.1692 + 9811.000 -2.8723 + 9812.000 -2.3056 + 9813.000 14.0802 + 9814.000 -11.0127 + 9815.000 -9.0094 + 9816.000 10.1362 + 9817.000 -11.0671 + 9818.000 -7.1299 + 9819.000 -9.2809 + 9820.000 4.0462 + 9821.000 -1.1106 + 9822.000 7.1206 + 9823.000 -8.2319 + 9824.000 -6.7000 + 9825.000 0.6879 + 9826.000 -3.1119 + 9827.000 -4.7171 + 9828.000 -5.0198 + 9829.000 -1.0940 + 9830.000 0.2462 + 9831.000 -6.7458 + 9832.000 -0.6034 + 9833.000 -3.5702 + 9834.000 9.7263 + 9835.000 -8.2814 + 9836.000 -10.4201 + 9837.000 -0.9180 + 9838.000 -0.5697 + 9839.000 -7.2781 + 9840.000 8.9161 + 9841.000 -9.2467 + 9842.000 -6.2580 + 9843.000 -5.0698 + 9844.000 1.8430 + 9845.000 -3.1933 + 9846.000 28.6242 + 9847.000 -17.1122 + 9848.000 -18.4950 + 9849.000 -4.9857 + 9850.000 -2.9178 + 9851.000 -3.9748 + 9852.000 -11.9829 + 9853.000 -1.6113 + 9854.000 0.1984 + 9855.000 11.5378 + 9856.000 -8.9527 + 9857.000 -10.2953 + 9858.000 18.5623 + 9859.000 -12.1374 + 9860.000 -17.2475 + 9861.000 -10.5959 + 9862.000 0.1187 + 9863.000 0.6525 + 9864.000 -15.7729 + 9865.000 6.0989 + 9866.000 2.5469 + 9867.000 23.2242 + 9868.000 -12.1661 + 9869.000 -17.6900 + 9870.000 -2.7386 + 9871.000 1.7276 + 9872.000 -4.2569 + 9873.000 12.9124 + 9874.000 -5.7006 + 9875.000 -12.0452 + 9876.000 12.6772 + 9877.000 -9.7838 + 9878.000 -9.9729 + 9879.000 4.9620 + 9880.000 -6.0744 + 9881.000 -7.3309 + 9882.000 40.4989 + 9883.000 -22.6037 + 9884.000 -21.4875 + 9885.000 25.6374 + 9886.000 -17.8941 + 9887.000 -14.4926 + 9888.000 5.8876 + 9889.000 -4.0177 + 9890.000 -5.5856 + 9891.000 5.1782 + 9892.000 -6.6364 + 9893.000 -8.8755 + 9894.000 6.3728 + 9895.000 -6.8012 + 9896.000 -7.5859 + 9897.000 9.4241 + 9898.000 -7.3455 + 9899.000 -7.4003 + 9900.000 23.3164 + 9901.000 -18.0750 + 9902.000 -16.3543 + 9903.000 -29.8370 + 9904.000 10.9206 + 9905.000 12.6834 + 9906.000 -26.5945 + 9907.000 13.6146 + 9908.000 10.5407 + 9909.000 -20.0332 + 9910.000 6.5495 + 9911.000 4.9845 + 9912.000 -28.3884 + 9913.000 13.0928 + 9914.000 8.7320 + 9915.000 -26.0691 + 9916.000 8.7574 + 9917.000 9.5191 + 9918.000 -30.3495 + 9919.000 10.5853 + 9920.000 11.8121 + 9921.000 -29.6058 + 9922.000 11.2073 + 9923.000 9.8965 + 9924.000 -29.4437 + 9925.000 11.8250 + 9926.000 10.8500 + 9927.000 -24.9395 + 9928.000 11.4979 + 9929.000 7.4409 + 9930.000 -24.0592 + 9931.000 7.5043 + 9932.000 9.0894 + 9933.000 -23.6015 + 9934.000 6.0125 + 9935.000 9.8306 + 9936.000 -6.9155 + 9937.000 -2.4391 + 9938.000 -1.3042 + 9939.000 -20.0601 + 9940.000 5.4452 + 9941.000 6.2388 + 9942.000 -21.3172 + 9943.000 5.8876 + 9944.000 2.3083 + 9945.000 -23.9436 + 9946.000 11.7840 + 9947.000 5.0467 + 9948.000 -19.6892 + 9949.000 10.3541 + 9950.000 9.2454 + 9951.000 -27.7096 + 9952.000 12.0863 + 9953.000 13.2247 + 9954.000 -25.4793 + 9955.000 7.2837 + 9956.000 10.5744 + 9957.000 -19.3899 + 9958.000 9.0880 + 9959.000 7.7276 + 9960.000 -42.3927 + 9961.000 19.3040 + 9962.000 18.6021 + 9963.000 -24.2341 + 9964.000 5.3731 + 9965.000 8.2756 + 9966.000 -21.9154 + 9967.000 7.8717 + 9968.000 5.0965 + 9969.000 -16.1905 + 9970.000 3.1356 + 9971.000 6.2923 + 9972.000 -25.3780 + 9973.000 6.6539 + 9974.000 8.1915 + 9975.000 -32.6245 + 9976.000 9.1685 + 9977.000 15.5799 + 9978.000 -25.2223 + 9979.000 9.3117 + 9980.000 4.3264 + 9981.000 -22.5184 + 9982.000 5.0337 + 9983.000 7.1053 + 9984.000 -33.2965 + 9985.000 9.9443 + 9986.000 15.1908 + 9987.000 -27.1528 + 9988.000 8.8571 + 9989.000 9.1572 + 9990.000 -8.6105 + 9991.000 3.7123 + 9992.000 -0.9186 + 9993.000 -14.4299 + 9994.000 2.3295 + 9995.000 1.1772 + 9996.000 -23.8273 + 9997.000 11.8890 + 9998.000 8.9263 + 9999.000 -14.7630 +10000.000 4.8214 +10001.000 5.8224 +10002.000 -22.2246 +10003.000 5.7983 +10004.000 7.2551 +10005.000 -23.5550 +10006.000 9.2968 +10007.000 8.3773 +10008.000 -30.6896 +10009.000 12.3285 +10010.000 12.8488 +10011.000 -32.0056 +10012.000 11.4722 +10013.000 9.8315 +10014.000 -20.9583 +10015.000 7.3246 +10016.000 5.0020 +10017.000 -28.4153 +10018.000 13.3238 +10019.000 6.7102 +10020.000 -22.6972 +10021.000 6.7732 +10022.000 8.7874 +10023.000 -14.4234 +10024.000 4.7916 +10025.000 1.8526 +10026.000 -20.7082 +10027.000 6.5487 +10028.000 3.8850 +10029.000 -9.5152 +10030.000 4.8466 +10031.000 -0.6641 +10032.000 -37.8675 +10033.000 20.6640 +10034.000 15.9299 +10035.000 -24.1347 +10036.000 11.6939 +10037.000 7.7200 +10038.000 -23.3551 +10039.000 8.0194 +10040.000 7.5510 +10041.000 -24.9362 +10042.000 9.4686 +10043.000 6.3908 +10044.000 -22.6506 +10045.000 5.6495 +10046.000 7.5907 +10047.000 -18.7618 +10048.000 8.2680 +10049.000 8.6564 +10050.000 -32.3800 +10051.000 14.9235 +10052.000 9.4316 +10053.000 -19.9061 +10054.000 6.5517 +10055.000 6.5537 +10056.000 -8.7924 +10057.000 -1.4377 +10058.000 -1.2613 diff --git a/test/Test_EneDecomp/RunTest.sh b/test/Test_EneDecomp/RunTest.sh index d5ebe7820a..321c18259a 100755 --- a/test/Test_EneDecomp/RunTest.sh +++ b/test/Test_EneDecomp/RunTest.sh @@ -4,7 +4,7 @@ TESTNAME='Energy decomposition tests' -CleanFiles enedecomp.in ene.*.dat decomp.*.dat Total.*.dat +CleanFiles enedecomp.in ene.*.dat decomp.*.dat Total.*.dat 1d23.lj1264.dat 1d23.dat TESTNAME='Particle mesh Ewald tests' #Requires maxthreads 1 @@ -72,4 +72,22 @@ EOF DoTest decomp.components.tz2.dat.save decomp.components.tz2.dat fi +UNITNAME='LJ 12-6-4 decomposition' +CheckFor libpme maxthreads 1 +if [ $? -eq 0 ] ; then + cat > enedecomp.in <<EOF +parm ../1d23.tip3p.lj1264.parm7 +trajin ../1d23.tip3p.rst7 +enedecomp out 1d23.dat No1264 \ + pme cut 8.0 dsumtol 0.00001 \ + order 6 nfft 60,60,60 +enedecomp out 1d23.lj1264.dat Cppt lj1264 \ + pme cut 8.0 dsumtol 0.00001 \ + order 6 nfft 60,60,60 +EOF + RunCpptraj "$UNITNAME" + DoTest 1d23.dat.save 1d23.dat + DoTest 1d23.lj1264.dat.save 1d23.lj1264.dat +fi + EndTest diff --git a/test/Test_Energy/1d23.dat.save b/test/Test_Energy/1d23.dat.save new file mode 100644 index 0000000000..8417e29d5e --- /dev/null +++ b/test/Test_Energy/1d23.dat.save @@ -0,0 +1,2 @@ +#Frame No1264[bond] No1264[angle] No1264[dih] No1264[vdw14] No1264[elec14] No1264[vdw] No1264[elec] No1264[total] + 1 107.3642 695.8765 550.8121 190.6375 -2269.9901 2819.5846 -29883.1151 -27788.8302 diff --git a/test/Test_Energy/1d23.lj1264.dat.save b/test/Test_Energy/1d23.lj1264.dat.save new file mode 100644 index 0000000000..5807b3b93a --- /dev/null +++ b/test/Test_Energy/1d23.lj1264.dat.save @@ -0,0 +1,2 @@ +#Frame Cppt[bond] Cppt[angle] Cppt[dih] Cppt[vdw14] Cppt[elec14] Cppt[vdw] Cppt[elec] Cppt[total] + 1 107.3642 695.8765 550.8121 190.6375 -2269.9901 2702.6284 -29883.1151 -27905.7865 diff --git a/test/Test_Energy/RunTest.sh b/test/Test_Energy/RunTest.sh index 956fb318f9..eaaad9b2a5 100755 --- a/test/Test_Energy/RunTest.sh +++ b/test/Test_Energy/RunTest.sh @@ -2,7 +2,8 @@ . ../MasterTest.sh -CleanFiles ene.in ene.agr short.dat tz2.dat strip.dat elec.dat vdw.dat +CleanFiles ene.in ene.agr short.dat tz2.dat strip.dat elec.dat vdw.dat \ + 1d23.lj1264.dat 1d23.dat tz2.cmap.dat INPUT="-i ene.in" @@ -57,5 +58,36 @@ EOF DoTest vdw.dat.save vdw.dat fi +UNITNAME='Test LJ 12-6-4 energy' +CheckFor libpme maxthreads 1 +if [ $? -eq 0 ] ; then + cat > ene.in <<EOF +parm ../1d23.tip3p.lj1264.parm7 +trajin ../1d23.tip3p.rst7 +energy out 1d23.dat No1264 \ + etype pme cut 8.0 dsumtol 0.00001 \ + order 6 nfft 60,60,60 +energy out 1d23.lj1264.dat Cppt lj1264 \ + etype pme cut 8.0 dsumtol 0.00001 \ + order 6 nfft 60,60,60 +EOF + RunCpptraj "$UNITNAME" + DoTest 1d23.dat.save 1d23.dat + DoTest 1d23.lj1264.dat.save 1d23.lj1264.dat +fi + +UNITNAME='Test CMAP energy' +CheckFor maxthreads 1 +if [ $? -eq 0 ] ; then + cat > ene.in <<EOF +parm tz2.cmap.parm7 +trajin ../tz2.rst7 +energy Cppt out tz2.cmap.dat +EOF + RunCpptraj "$UNITNAME" + DoTest tz2.cmap.dat.save tz2.cmap.dat +fi + + EndTest exit 0 diff --git a/test/Test_Energy/tz2.cmap.dat.save b/test/Test_Energy/tz2.cmap.dat.save new file mode 100644 index 0000000000..f95d048fc9 --- /dev/null +++ b/test/Test_Energy/tz2.cmap.dat.save @@ -0,0 +1,2 @@ +#Frame Cppt[bond] Cppt[angle] Cppt[dih] Cppt[cmap] Cppt[vdw14] Cppt[elec14] Cppt[vdw] Cppt[elec] Cppt[kinetic] Cppt[total] + 1 0.0153 135.7030 98.7527 18.1603 52.5576 720.6593 -44.9812 -781.5956 0.0000 199.2714 diff --git a/test/Test_Energy/tz2.cmap.parm7 b/test/Test_Energy/tz2.cmap.parm7 new file mode 100644 index 0000000000..ac83bb3a81 --- /dev/null +++ b/test/Test_Energy/tz2.cmap.parm7 @@ -0,0 +1,1950 @@ +%VERSION VERSION_STAMP = V0001.000 DATE = 02/11/26 10:25:45 +%FLAG TITLE +%FORMAT(20a4) +default_name +%FLAG POINTERS +%FORMAT(10I8) + 223 12 106 124 238 170 494 477 0 0 + 1226 13 124 170 477 45 97 100 26 0 + 0 0 0 0 0 0 0 0 24 0 + 0 +%FLAG ATOM_NAME +%FORMAT(20a4) +N H1 H2 H3 CA HA CB HB2 HB3 OG HG C O N H CA HA CB HB2 HB3 +CG CD1 HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA +HA CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG CD1 +HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA HA CB +HB2 HB3 CG HG2 HG3 CD OE1 OE2 C O N H CA HA CB HB2 HB3 CG OD1 ND2 +HD21HD22C O N H CA HA2 HA3 C O N H CA HA CB HB2 HB3 CG HG2 +HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H CA HA CB HB2 HB3 +CG CD1 HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA +HA CB HB CG2 HG21HG22HG23OG1 HG1 C O N H CA HA CB HB2 HB3 CG CD1 +HD1 NE1 HE1 CE2 CZ2 HZ2 CH2 HH2 CZ3 HZ3 CE3 HE3 CD2 C O N H CA HA CB +HB2 HB3 CG HG2 HG3 CD HD2 HD3 CE HE2 HE3 NZ HZ1 HZ2 HZ3 C O N H C +H1 H2 H3 +%FLAG CHARGE +%FORMAT(5E16.8) + 3.36930327E+00 3.45859254E+00 3.45859254E+00 3.45859254E+00 1.03320441E+00 + 1.42498386E+00 4.73050908E+00 4.97468790E-01 4.97468790E-01 -1.22344522E+01 + 7.72443297E+00 1.12304035E+01 -1.04268001E+01 -7.57501011E+00 4.95464337E+00 + -5.01113250E-01 2.04636429E+00 -9.11115000E-02 6.17735970E-01 6.17735970E-01 + -2.57845545E+00 -2.98481274E+00 3.75743826E+00 -6.22838214E+00 6.21744876E+00 + 2.51467740E+00 -4.73962023E+00 2.86454556E+00 -2.06640882E+00 2.58209991E+00 + -3.59343756E+00 2.63676681E+00 -4.34966301E+00 3.09779100E+00 2.26503189E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 + 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 + 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -5.01113250E-01 2.04636429E+00 + -9.11115000E-02 6.17735970E-01 6.17735970E-01 -2.57845545E+00 -2.98481274E+00 + 3.75743826E+00 -6.22838214E+00 6.21744876E+00 2.51467740E+00 -4.73962023E+00 + 2.86454556E+00 -2.06640882E+00 2.58209991E+00 -3.59343756E+00 2.63676681E+00 + -4.34966301E+00 3.09779100E+00 2.26503189E+00 1.08841798E+01 -1.03484442E+01 + -9.40817349E+00 5.35006728E+00 7.23425310E-01 2.01356415E+00 1.02044880E+00 + -3.15245790E-01 -3.15245790E-01 2.47823280E-01 -7.74447750E-01 -7.74447750E-01 + 1.46762404E+01 -1.49204192E+01 -1.49204192E+01 9.77808618E+00 -1.06035564E+01 + -7.57501011E+00 4.95464337E+00 2.60578890E-01 1.90969704E+00 -3.71917143E+00 + 1.45231731E+00 1.45231731E+00 1.29924999E+01 -1.08076461E+01 -1.67481159E+01 + 7.64607708E+00 7.64607708E+00 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 + 4.95464337E+00 -4.59201960E-01 1.27191654E+00 1.27191654E+00 1.08841798E+01 + -1.03484442E+01 -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 + -1.71289620E-01 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 + 1.87689690E-01 -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 + 2.06823105E+00 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 + 6.19558200E+00 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 + -5.01113250E-01 2.04636429E+00 -9.11115000E-02 6.17735970E-01 6.17735970E-01 + -2.57845545E+00 -2.98481274E+00 3.75743826E+00 -6.22838214E+00 6.21744876E+00 + 2.51467740E+00 -4.73962023E+00 2.86454556E+00 -2.06640882E+00 2.58209991E+00 + -3.59343756E+00 2.63676681E+00 -4.34966301E+00 3.09779100E+00 2.26503189E+00 + 1.08841798E+01 -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -7.08847470E-01 + 1.83498561E+00 6.65842842E+00 7.83558900E-02 -4.44259674E+00 1.16987166E+00 + 1.16987166E+00 1.16987166E+00 -1.23200970E+01 7.47478746E+00 1.08841798E+01 + -1.03484442E+01 -7.57501011E+00 4.95464337E+00 -5.01113250E-01 2.04636429E+00 + -9.11115000E-02 6.17735970E-01 6.17735970E-01 -2.57845545E+00 -2.98481274E+00 + 3.75743826E+00 -6.22838214E+00 6.21744876E+00 2.51467740E+00 -4.73962023E+00 + 2.86454556E+00 -2.06640882E+00 2.58209991E+00 -3.59343756E+00 2.63676681E+00 + -4.34966301E+00 3.09779100E+00 2.26503189E+00 1.08841798E+01 -1.03484442E+01 + -6.33953817E+00 5.00566581E+00 -4.37335200E+00 2.59849998E+00 -1.71289620E-01 + 6.59647260E-01 6.59647260E-01 3.40757010E-01 1.87689690E-01 1.87689690E-01 + -8.72848170E-01 1.13160483E+00 1.13160483E+00 -2.60578890E-01 2.06823105E+00 + 2.06823105E+00 -7.02287442E+00 6.19558200E+00 6.19558200E+00 6.19558200E+00 + 1.33769904E+01 -1.07402236E+01 -7.57501011E+00 4.95464337E+00 -2.71512270E+00 + 1.77849648E+00 1.77849648E+00 1.77849648E+00 +%FLAG ATOMIC_NUMBER +%FORMAT(10I8) + 7 1 1 1 6 1 6 1 1 8 + 1 6 8 7 1 6 1 6 1 1 + 6 6 1 7 1 6 6 1 6 1 + 6 1 6 1 6 6 8 7 1 6 + 1 6 1 6 1 1 1 8 1 6 + 8 7 1 6 1 6 1 1 6 6 + 1 7 1 6 6 1 6 1 6 1 + 6 1 6 6 8 7 1 6 1 6 + 1 1 6 1 1 6 8 8 6 8 + 7 1 6 1 6 1 1 6 8 7 + 1 1 6 8 7 1 6 1 1 6 + 8 7 1 6 1 6 1 1 6 1 + 1 6 1 1 6 1 1 7 1 1 + 1 6 8 7 1 6 1 6 1 1 + 6 6 1 7 1 6 6 1 6 1 + 6 1 6 1 6 6 8 7 1 6 + 1 6 1 6 1 1 1 8 1 6 + 8 7 1 6 1 6 1 1 6 6 + 1 7 1 6 6 1 6 1 6 1 + 6 1 6 6 8 7 1 6 1 6 + 1 1 6 1 1 6 1 1 6 1 + 1 7 1 1 1 6 8 7 1 6 + 1 1 1 +%FLAG MASS +%FORMAT(5E16.8) + 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.60000000E+01 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.60000000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 + 1.00800000E+00 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.40100000E+01 1.00800000E+00 + 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.00800000E+00 1.60000000E+01 1.00800000E+00 1.20100000E+01 + 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 + 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.20100000E+01 1.20100000E+01 1.60000000E+01 + 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01 1.00800000E+00 + 1.00800000E+00 1.40100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 + 1.20100000E+01 1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 + 1.00800000E+00 1.00800000E+00 1.00800000E+00 +%FLAG ATOM_TYPE_INDEX +%FORMAT(10I8) + 1 2 2 2 3 4 3 5 5 6 + 7 8 9 1 2 3 5 3 10 10 + 8 8 11 1 2 8 8 12 8 12 + 8 12 8 12 8 8 9 1 2 3 + 5 3 5 3 10 10 10 6 7 8 + 9 1 2 3 5 3 10 10 8 8 + 11 1 2 8 8 12 8 12 8 12 + 8 12 8 8 9 1 2 3 5 3 + 10 10 3 10 10 8 9 9 8 9 + 1 2 3 5 3 10 10 8 9 1 + 2 2 8 9 1 2 3 5 5 8 + 9 1 2 3 5 3 10 10 3 10 + 10 3 10 10 3 4 4 1 2 2 + 2 8 9 1 2 3 5 3 10 10 + 8 8 11 1 2 8 8 12 8 12 + 8 12 8 12 8 8 9 1 2 3 + 5 3 5 3 10 10 10 6 7 8 + 9 1 2 3 5 3 10 10 8 8 + 11 1 2 8 8 12 8 12 8 12 + 8 12 8 8 9 1 2 3 5 3 + 10 10 3 10 10 3 10 10 3 4 + 4 1 2 2 2 8 9 1 2 3 + 5 5 5 +%FLAG NUMBER_EXCLUDED_ATOMS +%FORMAT(10I8) + 12 6 5 4 11 7 7 4 3 2 + 1 7 3 10 4 12 7 12 5 4 + 11 7 4 7 3 8 7 4 6 3 + 4 3 2 1 1 7 3 10 4 14 + 7 10 7 6 3 2 1 2 1 7 + 3 10 4 12 7 12 5 4 11 7 + 4 7 3 8 7 4 6 3 4 3 + 2 1 1 7 3 10 4 13 7 11 + 6 5 6 4 3 2 1 1 7 3 + 10 4 12 7 10 5 4 5 3 2 + 1 1 7 3 7 4 7 4 3 7 + 3 10 4 13 7 12 6 5 10 5 + 4 9 5 4 6 5 4 3 2 1 + 1 7 3 10 4 12 7 12 5 4 + 11 7 4 7 3 8 7 4 6 3 + 4 3 2 1 1 7 3 10 4 14 + 7 10 7 6 3 2 1 2 1 7 + 3 10 4 12 7 12 5 4 11 7 + 4 7 3 8 7 4 6 3 4 3 + 2 1 1 7 3 10 4 13 7 12 + 6 5 10 5 4 9 5 4 6 5 + 4 3 2 1 1 7 3 5 4 3 + 2 1 1 +%FLAG NONBONDED_PARM_INDEX +%FORMAT(10I8) + 1 2 4 7 11 16 22 29 37 46 + 56 67 2 3 5 8 12 17 23 30 + 38 47 57 68 4 5 6 9 13 18 + 24 31 39 48 58 69 7 8 9 10 + 14 19 25 32 40 49 59 70 11 12 + 13 14 15 20 26 33 41 50 60 71 + 16 17 18 19 20 21 27 34 42 51 + 61 72 22 23 24 25 26 27 28 35 + 43 52 62 73 29 30 31 32 33 34 + 35 36 44 53 63 74 37 38 39 40 + 41 42 43 44 45 54 64 75 46 47 + 48 49 50 51 52 53 54 55 65 76 + 56 57 58 59 60 61 62 63 64 65 + 66 77 67 68 69 70 71 72 73 74 + 75 76 77 78 +%FLAG RESIDUE_LABEL +%FORMAT(20a4) +SER TRP THR TRP GLU ASN GLY LYS TRP THR TRP LYS NME +%FLAG RESIDUE_POINTER +%FORMAT(10I8) + 1 14 38 52 76 91 105 112 134 158 + 172 196 218 +%FLAG BOND_FORCE_CONSTANT +%FORMAT(5E16.8) + 5.70000000E+02 4.90000000E+02 5.53000000E+02 3.40000000E+02 3.20000000E+02 + 3.40000000E+02 3.10000000E+02 3.17000000E+02 4.34000000E+02 3.67000000E+02 + 3.67000000E+02 4.69000000E+02 4.69000000E+02 4.69000000E+02 4.47000000E+02 + 4.34000000E+02 4.28000000E+02 3.67000000E+02 4.27000000E+02 5.46000000E+02 + 3.88000000E+02 3.40000000E+02 3.17000000E+02 3.40000000E+02 3.10000000E+02 + 3.17000000E+02 4.34000000E+02 3.37000000E+02 3.40000000E+02 3.10000000E+02 + 3.20000000E+02 3.10000000E+02 6.56000000E+02 3.40000000E+02 3.17000000E+02 + 3.10000000E+02 3.10000000E+02 3.17000000E+02 3.40000000E+02 3.67000000E+02 + 3.40000000E+02 3.10000000E+02 3.10000000E+02 3.40000000E+02 3.37000000E+02 +%FLAG BOND_EQUIL_VALUE +%FORMAT(5E16.8) + 1.22900000E+00 1.33500000E+00 9.60000000E-01 1.09000000E+00 1.41000000E+00 + 1.09000000E+00 1.52600000E+00 1.52200000E+00 1.01000000E+00 1.47100000E+00 + 1.08000000E+00 1.40400000E+00 1.40000000E+00 1.40000000E+00 1.41900000E+00 + 1.01000000E+00 1.38000000E+00 1.08000000E+00 1.38100000E+00 1.35200000E+00 + 1.45900000E+00 1.09000000E+00 1.49500000E+00 1.09000000E+00 1.52600000E+00 + 1.52200000E+00 1.01000000E+00 1.44900000E+00 1.09000000E+00 1.52600000E+00 + 1.41000000E+00 1.52600000E+00 1.25000000E+00 1.09000000E+00 1.52200000E+00 + 1.52600000E+00 1.52600000E+00 1.52200000E+00 1.09000000E+00 1.47100000E+00 + 1.09000000E+00 1.52600000E+00 1.52600000E+00 1.09000000E+00 1.44900000E+00 +%FLAG ANGLE_FORCE_CONSTANT +%FORMAT(5E16.8) + 8.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 3.50000000E+01 + 6.30000000E+01 5.50000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 5.00000000E+01 8.00000000E+01 7.00000000E+01 5.00000000E+01 3.50000000E+01 + 5.00000000E+01 8.00000000E+01 8.00000000E+01 5.00000000E+01 5.00000000E+01 + 6.30000000E+01 6.30000000E+01 6.30000000E+01 5.00000000E+01 6.30000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 7.00000000E+01 5.00000000E+01 + 6.30000000E+01 5.00000000E+01 7.00000000E+01 5.00000000E+01 7.00000000E+01 + 6.30000000E+01 6.30000000E+01 5.00000000E+01 3.50000000E+01 6.30000000E+01 + 7.00000000E+01 7.00000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 6.30000000E+01 8.00000000E+01 7.00000000E+01 5.00000000E+01 5.00000000E+01 + 8.00000000E+01 6.30000000E+01 5.00000000E+01 5.00000000E+01 5.00000000E+01 + 6.30000000E+01 5.00000000E+01 5.50000000E+01 5.00000000E+01 5.00000000E+01 + 4.00000000E+01 5.00000000E+01 8.00000000E+01 8.00000000E+01 5.00000000E+01 + 3.50000000E+01 7.00000000E+01 5.00000000E+01 6.30000000E+01 6.30000000E+01 + 5.00000000E+01 5.00000000E+01 4.00000000E+01 8.00000000E+01 3.50000000E+01 + 5.00000000E+01 8.00000000E+01 7.00000000E+01 6.30000000E+01 3.50000000E+01 + 5.00000000E+01 3.50000000E+01 5.00000000E+01 5.00000000E+01 3.50000000E+01 + 5.00000000E+01 8.00000000E+01 4.00000000E+01 6.30000000E+01 5.00000000E+01 + 5.00000000E+01 4.00000000E+01 8.00000000E+01 5.00000000E+01 3.50000000E+01 + 5.00000000E+01 5.00000000E+01 +%FLAG ANGLE_EQUIL_VALUE +%FORMAT(5E16.8) + 2.14501057E+00 2.09439600E+00 2.12755727E+00 1.91113635E+00 1.91113635E+00 + 1.93906163E+00 1.89368305E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 2.10137732E+00 2.03505478E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.94080696E+00 1.94080696E+00 2.09439600E+00 2.09439600E+00 + 2.09439600E+00 2.09439600E+00 2.14151991E+00 2.09439600E+00 2.09439600E+00 + 2.02807346E+00 2.14850123E+00 2.31779824E+00 1.82212452E+00 2.09439600E+00 + 1.85703112E+00 2.09439600E+00 1.94778828E+00 2.09439600E+00 1.89717371E+00 + 1.89891904E+00 2.35445017E+00 1.91113635E+00 1.91113635E+00 1.93906163E+00 + 2.18166250E+00 2.24449438E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 2.01760148E+00 2.10137732E+00 2.03505478E+00 2.06018753E+00 1.91113635E+00 + 1.91462701E+00 1.92160833E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.93906163E+00 1.91113635E+00 1.89368305E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91462701E+00 2.19911580E+00 1.91113635E+00 + 1.91113635E+00 2.04203610E+00 1.91113635E+00 1.93906163E+00 1.93906163E+00 + 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91462701E+00 2.09439600E+00 + 1.91113635E+00 2.10137732E+00 2.03505478E+00 1.93906163E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 1.91113635E+00 + 1.91113635E+00 1.94080696E+00 1.91113635E+00 1.93906163E+00 1.91113635E+00 + 1.91113635E+00 1.91113635E+00 1.91462701E+00 2.12755727E+00 1.91113635E+00 + 2.06018753E+00 1.91113635E+00 +%FLAG DIHEDRAL_FORCE_CONSTANT +%FORMAT(5E16.8) + 2.00000000E+00 2.50000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 6.61000000E-01 2.18000000E-01 4.01000000E-01 1.29000000E-01 + 1.55555556E-01 1.66666667E-01 2.00000000E-01 2.00000000E-01 4.00000000E-01 + 2.11000000E-01 4.44000000E-01 2.67000000E-01 7.00000000E-03 6.66000000E-01 + 2.46000000E-01 1.60000000E-01 3.62500000E+00 3.00000000E+00 3.50000000E+00 + 1.52500000E+00 6.52500000E+00 1.50000000E+00 1.67500000E+00 1.70000000E-02 + 3.53000000E-01 2.34000000E-01 7.40000000E-02 0.00000000E+00 3.65000000E-01 + 4.08000000E-01 8.19000000E-01 9.50000000E-02 7.90000000E-02 3.13000000E-01 + 3.10000000E-02 0.00000000E+00 0.00000000E+00 6.97000000E-01 1.19000000E-01 + 3.15000000E-01 1.56000000E-01 2.50000000E-01 4.06000000E-01 2.89000000E-01 + 1.48000000E-01 1.12000000E-01 6.43000000E-01 7.90000000E-02 2.36000000E-01 + 4.80000000E-02 1.60000000E-01 6.00000000E-03 2.51000000E-01 1.30000000E-02 + 3.37000000E-01 2.16000000E-01 1.00000000E-03 6.74000000E-01 6.00000000E-03 + 9.50000000E-02 4.21000000E-01 3.93000000E-01 1.44000000E-01 1.45000000E-01 + 1.50000000E-01 3.90000000E-01 6.40000000E-02 1.36700000E+00 2.22000000E-01 + 6.08000000E-01 5.60000000E-02 1.00000000E-01 1.84000000E-01 7.80000000E-02 + 1.04600000E+00 3.03000000E-01 3.30000000E-02 1.07000000E-01 8.00000000E-01 + 8.00000000E-02 8.28000000E-01 4.85000000E-01 3.01000000E-01 8.00000000E-03 + 6.88000000E-01 2.97000000E-01 5.90000000E-02 2.00000000E-01 2.50000000E-01 + 1.80000000E-01 1.05000000E+01 0.00000000E+00 1.10000000E+00 1.00000000E+00 +%FLAG DIHEDRAL_PERIODICITY +%FORMAT(5E16.8) + 1.00000000E+00 2.00000000E+00 2.00000000E+00 1.00000000E+00 3.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 + 3.00000000E+00 3.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 + 2.00000000E+00 4.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 4.00000000E+00 3.00000000E+00 1.00000000E+00 + 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 4.00000000E+00 1.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 + 4.00000000E+00 3.00000000E+00 1.00000000E+00 2.00000000E+00 4.00000000E+00 + 1.00000000E+00 2.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 + 4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 + 3.00000000E+00 2.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 4.00000000E+00 + 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 1.00000000E+00 + 3.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00 + 1.00000000E+00 2.00000000E+00 4.00000000E+00 1.00000000E+00 2.00000000E+00 + 3.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 +%FLAG DIHEDRAL_PHASE +%FORMAT(5E16.8) + 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.14159400E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 0.00000000E+00 0.00000000E+00 3.14159400E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159400E+00 0.00000000E+00 3.14159400E+00 + 0.00000000E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.14159400E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.14159400E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 + 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 0.00000000E+00 + 3.14159400E+00 3.14159400E+00 0.00000000E+00 3.14159400E+00 3.14159400E+00 + 0.00000000E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 +%FLAG SCEE_SCALE_FACTOR +%FORMAT(5E16.8) + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 + 1.20000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 +%FLAG SCNB_SCALE_FACTOR +%FORMAT(5E16.8) + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 + 2.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 +%FLAG SOLTY +%FORMAT(5E16.8) + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 +%FLAG LENNARD_JONES_ACOEF +%FORMAT(5E16.8) + 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03 + 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02 + 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03 + 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04 + 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03 + 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00 + 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04 + 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05 + 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03 + 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03 + 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02 3.50301067E+03 + 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04 5.34045360E+03 + 3.76169105E+03 7.91627154E+04 8.90987508E+01 8.59947003E+04 1.21014911E+03 + 4.33325458E+03 6.00750218E+04 0.00000000E+00 7.62451550E+04 4.77908183E+04 + 6.55825601E+03 4.64559155E+03 5.71629601E+03 +%FLAG LENNARD_JONES_BCOEF +%FORMAT(5E16.8) + 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01 + 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00 + 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01 + 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02 + 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01 + 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00 + 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01 + 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02 + 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01 + 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01 + 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00 1.46638650E+01 + 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01 1.81057616E+01 + 1.50233639E+01 1.26451907E+02 2.33864085E+00 1.18043746E+02 8.61880722E+00 + 1.63092814E+01 1.16187983E+02 0.00000000E+00 1.04660679E+02 1.03580945E+02 + 2.00642027E+01 1.66953734E+01 1.85196588E+01 +%FLAG BONDS_INC_HYDROGEN +%FORMAT(10I8) + 27 30 3 18 21 4 18 24 4 12 + 15 6 0 3 9 0 6 9 0 9 + 9 96 99 11 90 93 11 84 87 11 + 78 81 11 69 72 16 63 66 18 51 + 54 22 51 57 22 45 48 24 39 42 + 27 141 144 3 129 132 22 129 135 22 + 129 138 22 123 126 29 117 120 24 111 + 114 27 210 213 11 204 207 11 198 201 + 11 192 195 11 183 186 16 177 180 18 + 165 168 22 165 171 22 159 162 24 153 + 156 27 246 249 34 246 252 34 237 240 + 34 237 243 34 231 234 24 225 228 27 + 297 300 27 297 303 27 282 285 34 282 + 288 34 276 279 24 270 273 27 318 321 + 24 318 324 24 312 315 27 381 384 9 + 381 387 9 381 390 9 372 375 39 372 + 378 39 363 366 41 363 369 41 354 357 + 41 354 360 41 345 348 41 345 351 41 + 339 342 24 333 336 27 456 459 11 450 + 453 11 444 447 11 438 441 11 429 432 + 16 423 426 18 411 414 22 411 417 22 + 405 408 24 399 402 27 501 504 3 489 + 492 22 489 495 22 489 498 22 483 486 + 29 477 480 24 471 474 27 570 573 11 + 564 567 11 558 561 11 552 555 11 543 + 546 16 537 540 18 525 528 22 525 531 + 22 519 522 24 513 516 27 633 636 9 + 633 639 9 633 642 9 624 627 39 624 + 630 39 615 618 41 615 621 41 606 609 + 41 606 612 41 597 600 41 597 603 41 + 591 594 24 585 588 27 657 660 44 657 + 663 44 657 666 44 651 654 27 +%FLAG BONDS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 33 36 1 33 39 2 18 27 5 12 + 18 7 12 33 8 0 12 10 105 108 + 1 105 111 2 96 102 12 90 96 13 + 84 90 13 78 84 13 75 78 14 75 + 102 15 69 75 17 63 69 19 60 63 + 20 60 102 21 51 60 23 45 51 25 + 45 105 26 39 45 28 147 150 1 147 + 153 2 123 129 30 123 141 31 117 123 + 32 117 147 26 111 117 28 219 222 1 + 219 225 2 210 216 12 204 210 13 198 + 204 13 192 198 13 189 192 14 189 216 + 15 183 189 17 177 183 19 174 177 20 + 174 216 21 165 174 23 159 165 25 159 + 219 26 153 159 28 264 267 1 264 270 + 2 255 258 33 255 261 33 246 255 35 + 237 246 36 231 237 37 231 264 26 225 + 231 28 306 309 1 306 312 2 291 294 + 1 291 297 2 282 291 38 276 282 37 + 276 306 26 270 276 28 327 330 1 327 + 333 2 318 327 26 312 318 28 393 396 + 1 393 399 2 372 381 40 363 372 42 + 354 363 42 345 354 42 339 345 43 339 + 393 26 333 339 28 465 468 1 465 471 + 2 456 462 12 450 456 13 444 450 13 + 438 444 13 435 438 14 435 462 15 429 + 435 17 423 429 19 420 423 20 420 462 + 21 411 420 23 405 411 25 405 465 26 + 399 405 28 507 510 1 507 513 2 483 + 489 30 483 501 31 477 483 32 477 507 + 26 471 477 28 579 582 1 579 585 2 + 570 576 12 564 570 13 558 564 13 552 + 558 13 549 552 14 549 576 15 543 549 + 17 537 543 19 534 537 20 534 576 21 + 525 534 23 519 525 25 519 579 26 513 + 519 28 645 648 1 645 651 2 624 633 + 40 615 624 42 606 615 42 597 606 42 + 591 597 43 591 645 26 585 591 28 651 + 657 45 +%FLAG ANGLES_INC_HYDROGEN +%FORMAT(10I8) + 33 39 42 2 24 18 27 4 21 18 + 24 5 21 18 27 4 18 27 30 7 + 15 12 18 8 15 12 33 9 12 18 + 21 10 12 18 24 10 9 0 12 14 + 6 0 9 15 6 0 12 14 3 0 + 6 15 3 0 9 15 3 0 12 14 + 0 12 15 16 105 111 114 2 99 96 + 102 19 93 90 96 20 90 96 99 20 + 87 84 90 20 84 90 93 20 81 78 + 84 20 78 84 87 20 75 78 81 24 + 72 69 75 27 66 63 69 30 63 69 + 72 32 60 63 66 34 57 51 60 38 + 54 51 57 39 54 51 60 38 48 45 + 51 43 48 45 105 44 45 51 54 45 + 45 51 57 45 42 39 45 49 39 45 + 48 50 147 153 156 2 135 129 138 39 + 132 129 135 39 132 129 138 39 126 123 + 129 54 126 123 141 55 123 129 132 57 + 123 129 135 57 123 129 138 57 123 141 + 144 58 120 117 123 59 120 117 147 44 + 117 123 126 60 114 111 117 49 111 117 + 120 50 219 225 228 2 213 210 216 19 + 207 204 210 20 204 210 213 20 201 198 + 204 20 198 204 207 20 195 192 198 20 + 192 198 201 20 189 192 195 24 186 183 + 189 27 180 177 183 30 177 183 186 32 + 174 177 180 34 171 165 174 38 168 165 + 171 39 168 165 174 38 162 159 165 43 + 162 159 219 44 159 165 168 45 159 165 + 171 45 156 153 159 49 153 159 162 50 + 264 270 273 2 252 246 255 65 249 246 + 252 66 249 246 255 65 243 237 246 68 + 240 237 243 66 240 237 246 68 237 246 + 249 68 237 246 252 68 234 231 237 71 + 234 231 264 44 231 237 240 72 231 237 + 243 72 228 225 231 49 225 231 234 50 + 306 312 315 2 300 297 303 75 291 297 + 300 2 291 297 303 2 288 282 291 76 + 285 282 288 66 285 282 291 76 279 276 + 282 71 279 276 306 44 276 282 285 72 + 276 282 288 72 273 270 276 49 270 276 + 279 50 327 333 336 2 324 318 327 44 + 321 318 324 80 321 318 327 44 315 312 + 318 49 312 318 321 50 312 318 324 50 + 393 399 402 2 387 381 390 15 384 381 + 387 15 384 381 390 15 378 372 381 81 + 375 372 378 82 375 372 381 81 372 381 + 384 83 372 381 387 83 372 381 390 83 + 369 363 372 84 366 363 369 85 366 363 + 372 84 363 372 375 86 363 372 378 86 + 360 354 363 84 357 354 360 85 357 354 + 363 84 354 363 366 84 354 363 369 84 + 351 345 354 84 348 345 351 85 348 345 + 354 84 345 354 357 84 345 354 360 84 + 342 339 345 90 342 339 393 44 339 345 + 348 91 339 345 351 91 336 333 339 49 + 333 339 342 50 465 471 474 2 459 456 + 462 19 453 450 456 20 450 456 459 20 + 447 444 450 20 444 450 453 20 441 438 + 444 20 438 444 447 20 435 438 441 24 + 432 429 435 27 426 423 429 30 423 429 + 432 32 420 423 426 34 417 411 420 38 + 414 411 417 39 414 411 420 38 408 405 + 411 43 408 405 465 44 405 411 414 45 + 405 411 417 45 402 399 405 49 399 405 + 408 50 507 513 516 2 495 489 498 39 + 492 489 495 39 492 489 498 39 486 483 + 489 54 486 483 501 55 483 489 492 57 + 483 489 495 57 483 489 498 57 483 501 + 504 58 480 477 483 59 480 477 507 44 + 477 483 486 60 474 471 477 49 471 477 + 480 50 579 585 588 2 573 570 576 19 + 567 564 570 20 564 570 573 20 561 558 + 564 20 558 564 567 20 555 552 558 20 + 552 558 561 20 549 552 555 24 546 543 + 549 27 540 537 543 30 537 543 546 32 + 534 537 540 34 531 525 534 38 528 525 + 531 39 528 525 534 38 522 519 525 43 + 522 519 579 44 519 525 528 45 519 525 + 531 45 516 513 519 49 513 519 522 50 + 645 651 654 2 639 633 642 15 636 633 + 639 15 636 633 642 15 630 624 633 81 + 627 624 630 82 627 624 633 81 624 633 + 636 83 624 633 639 83 624 633 642 83 + 621 615 624 84 618 615 621 85 618 615 + 624 84 615 624 627 86 615 624 630 86 + 612 606 615 84 609 606 612 85 609 606 + 615 84 606 615 618 84 606 615 621 84 + 603 597 606 84 600 597 603 85 600 597 + 606 84 597 606 609 84 597 606 612 84 + 594 591 597 90 594 591 645 44 591 597 + 600 91 591 597 603 91 588 585 591 49 + 585 591 594 50 663 657 666 95 660 657 + 663 95 660 657 666 95 654 651 657 96 + 651 657 660 97 651 657 663 97 651 657 + 666 97 +%FLAG ANGLES_WITHOUT_HYDROGEN +%FORMAT(10I8) + 36 33 39 1 33 39 45 3 18 12 + 33 6 12 18 27 11 12 33 36 12 + 12 33 39 13 0 12 18 17 0 12 + 33 18 108 105 111 1 105 111 117 3 + 90 96 102 21 84 90 96 22 78 75 + 102 23 78 84 90 22 75 78 84 25 + 75 102 96 26 69 75 78 28 69 75 + 102 29 63 60 102 31 63 69 75 33 + 60 63 69 35 60 102 75 36 60 102 + 96 37 51 45 105 40 51 60 63 41 + 51 60 102 42 45 51 60 46 45 105 + 108 47 45 105 111 48 39 45 51 51 + 39 45 105 52 150 147 153 1 147 153 + 159 3 129 123 141 53 123 117 147 56 + 117 123 129 61 117 123 141 62 117 147 + 150 47 117 147 153 48 111 117 123 63 + 111 117 147 52 222 219 225 1 219 225 + 231 3 204 210 216 21 198 204 210 22 + 192 189 216 23 192 198 204 22 189 192 + 198 25 189 216 210 26 183 189 192 28 + 183 189 216 29 177 174 216 31 177 183 + 189 33 174 177 183 35 174 216 189 36 + 174 216 210 37 165 159 219 40 165 174 + 177 41 165 174 216 42 159 165 174 46 + 159 219 222 47 159 219 225 48 153 159 + 165 51 153 159 219 52 267 264 270 1 + 264 270 276 3 258 255 261 64 246 255 + 258 67 246 255 261 67 237 231 264 69 + 237 246 255 70 231 237 246 73 231 264 + 267 47 231 264 270 48 225 231 237 74 + 225 231 264 52 309 306 312 1 306 312 + 318 3 294 291 297 1 282 276 306 69 + 282 291 294 77 282 291 297 78 276 282 + 291 79 276 306 309 47 276 306 312 48 + 270 276 282 74 270 276 306 52 330 327 + 333 1 327 333 339 3 318 327 330 47 + 318 327 333 48 312 318 327 52 396 393 + 399 1 393 399 405 3 363 372 381 87 + 354 363 372 88 345 339 393 89 345 354 + 363 88 339 345 354 92 339 393 396 47 + 339 393 399 48 333 339 345 93 333 339 + 393 52 468 465 471 1 465 471 477 3 + 450 456 462 21 444 450 456 22 438 435 + 462 23 438 444 450 22 435 438 444 25 + 435 462 456 26 429 435 438 28 429 435 + 462 29 423 420 462 31 423 429 435 33 + 420 423 429 35 420 462 435 36 420 462 + 456 37 411 405 465 40 411 420 423 41 + 411 420 462 42 405 411 420 46 405 465 + 468 47 405 465 471 48 399 405 411 51 + 399 405 465 52 510 507 513 1 507 513 + 519 3 489 483 501 53 483 477 507 56 + 477 483 489 61 477 483 501 62 477 507 + 510 47 477 507 513 48 471 477 483 63 + 471 477 507 52 582 579 585 1 579 585 + 591 3 564 570 576 21 558 564 570 22 + 552 549 576 23 552 558 564 22 549 552 + 558 25 549 576 570 26 543 549 552 28 + 543 549 576 29 537 534 576 31 537 543 + 549 33 534 537 543 35 534 576 549 36 + 534 576 570 37 525 519 579 40 525 534 + 537 41 525 534 576 42 519 525 534 46 + 519 579 582 47 519 579 585 48 513 519 + 525 51 513 519 579 52 648 645 651 1 + 645 651 657 94 615 624 633 87 606 615 + 624 88 597 591 645 89 597 606 615 88 + 591 597 606 92 591 645 648 47 591 645 + 651 48 585 591 597 93 585 591 645 52 +%FLAG DIHEDRALS_INC_HYDROGEN +%FORMAT(10I8) + 36 33 39 42 1 36 33 -39 42 2 + 33 39 45 48 3 24 18 12 33 11 + 24 18 27 30 12 21 18 12 33 11 + 21 18 27 30 12 15 12 18 21 11 + 15 12 18 24 11 15 12 18 27 11 + 15 12 33 36 3 15 12 33 39 3 + 12 18 27 30 16 12 18 -27 30 17 + 12 18 -27 30 18 12 18 -27 30 19 + 12 33 39 42 2 9 0 12 15 11 + 9 0 12 18 11 9 0 12 33 11 + 6 0 12 15 11 6 0 12 18 11 + 6 0 12 33 11 3 0 12 15 11 + 3 0 12 18 11 3 0 12 33 11 + 0 12 18 21 11 0 12 18 24 11 + 108 105 111 114 1 108 105 -111 114 2 + 105 111 117 120 3 93 90 96 99 23 + 93 90 96 102 23 87 84 90 93 23 + 87 84 90 96 23 84 90 96 99 23 + 81 78 75 102 23 81 78 84 87 23 + 81 78 84 90 23 78 84 90 93 23 + 75 78 84 87 23 75 102 96 99 25 + 72 69 75 78 26 72 69 75 102 26 + 69 75 78 81 23 66 63 60 102 27 + 66 63 69 72 28 66 63 69 75 28 + 60 63 69 72 28 60 102 96 99 25 + 57 51 45 105 11 57 51 60 63 3 + 57 51 60 102 3 54 51 45 105 11 + 54 51 60 63 3 54 51 60 102 3 + 51 60 63 66 27 48 45 51 54 11 + 48 45 51 57 11 48 45 51 60 11 + 48 45 105 108 4 48 45 -105 108 3 + 48 45 -105 108 34 48 45 105 111 3 + 45 105 111 114 2 42 39 45 48 3 + 42 39 45 51 3 42 39 45 105 3 + 39 45 51 54 11 39 45 51 57 11 + 150 147 153 156 1 150 147 -153 156 2 + 147 153 159 162 3 138 129 123 141 48 + 138 129 -123 141 5 135 129 123 141 48 + 135 129 -123 141 5 132 129 123 141 48 + 132 129 -123 141 5 129 123 141 144 53 + 129 123 -141 144 54 129 123 -141 144 55 + 129 123 -141 144 56 126 123 117 147 11 + 126 123 129 132 11 126 123 129 135 11 + 126 123 129 138 11 126 123 141 144 12 + 120 117 123 126 11 120 117 123 129 11 + 120 117 123 141 48 120 117 -123 141 5 + 120 117 147 150 4 120 117 -147 150 3 + 120 117 -147 150 34 120 117 147 153 3 + 117 123 129 132 57 117 123 129 135 57 + 117 123 129 138 57 117 123 141 144 58 + 117 123 -141 144 59 117 123 -141 144 55 + 117 123 -141 144 60 117 147 153 156 2 + 114 111 117 120 3 114 111 117 123 3 + 114 111 117 147 3 111 117 123 126 11 + 222 219 225 228 1 222 219 -225 228 2 + 219 225 231 234 3 207 204 210 213 23 + 207 204 210 216 23 201 198 204 207 23 + 201 198 204 210 23 198 204 210 213 23 + 195 192 189 216 23 195 192 198 201 23 + 195 192 198 204 23 192 198 204 207 23 + 189 192 198 201 23 189 216 210 213 25 + 186 183 189 192 26 186 183 189 216 26 + 183 189 192 195 23 180 177 174 216 27 + 180 177 183 186 28 180 177 183 189 28 + 174 177 183 186 28 174 216 210 213 25 + 171 165 159 219 11 171 165 174 177 3 + 171 165 174 216 3 168 165 159 219 11 + 168 165 174 177 3 168 165 174 216 3 + 165 174 177 180 27 162 159 165 168 11 + 162 159 165 171 11 162 159 165 174 11 + 162 159 219 222 4 162 159 -219 222 3 + 162 159 -219 222 34 162 159 219 225 3 + 159 219 225 228 2 156 153 159 162 3 + 156 153 159 165 3 156 153 159 219 3 + 153 159 165 168 11 153 159 165 171 11 + 267 264 270 273 1 267 264 -270 273 2 + 264 270 276 279 3 252 246 255 258 3 + 252 246 255 261 3 249 246 255 258 3 + 249 246 255 261 3 243 237 231 264 11 + 243 237 246 249 71 243 237 246 252 71 + 243 237 246 255 11 240 237 231 264 11 + 240 237 246 249 71 240 237 246 252 71 + 240 237 246 255 11 234 231 237 240 11 + 234 231 237 243 11 234 231 237 246 11 + 234 231 264 267 4 234 231 -264 267 3 + 234 231 -264 267 34 234 231 264 270 3 + 231 237 246 249 57 231 237 246 252 57 + 231 264 270 273 2 228 225 231 234 3 + 228 225 231 237 3 228 225 231 264 3 + 225 231 237 240 11 225 231 237 243 11 + 309 306 312 315 1 309 306 -312 315 2 + 306 312 318 321 3 306 312 318 324 3 + 294 291 297 300 1 294 291 -297 300 2 + 294 291 297 303 1 294 291 -297 303 2 + 288 282 276 306 11 288 282 291 294 85 + 288 282 -291 294 3 288 282 -291 294 86 + 288 282 291 297 3 285 282 276 306 11 + 285 282 291 294 85 285 282 -291 294 3 + 285 282 -291 294 86 285 282 291 297 3 + 282 291 297 300 2 282 291 297 303 2 + 279 276 282 285 11 279 276 282 288 11 + 279 276 282 291 11 279 276 306 309 4 + 279 276 -306 309 3 279 276 -306 309 34 + 279 276 306 312 3 276 306 312 315 2 + 273 270 276 279 3 273 270 276 282 3 + 273 270 276 306 3 270 276 282 285 11 + 270 276 282 288 11 330 327 333 336 1 + 330 327 -333 336 2 327 333 339 342 3 + 324 318 327 330 4 324 318 -327 330 3 + 324 318 -327 330 34 324 318 327 333 3 + 321 318 327 330 4 321 318 -327 330 3 + 321 318 -327 330 34 321 318 327 333 3 + 318 327 333 336 2 315 312 318 321 3 + 315 312 318 324 3 315 312 318 327 3 + 396 393 399 402 1 396 393 -399 402 2 + 393 399 405 408 3 378 372 381 384 11 + 378 372 381 387 11 378 372 381 390 11 + 375 372 381 384 11 375 372 381 387 11 + 375 372 381 390 11 369 363 372 375 11 + 369 363 372 378 11 369 363 372 381 11 + 366 363 372 375 11 366 363 372 378 11 + 366 363 372 381 11 363 372 381 384 11 + 363 372 381 387 11 363 372 381 390 11 + 360 354 363 366 71 360 354 363 369 71 + 360 354 363 372 57 357 354 363 366 71 + 357 354 363 369 71 357 354 363 372 57 + 354 363 372 375 11 354 363 372 378 11 + 351 345 339 393 11 351 345 354 357 71 + 351 345 354 360 71 351 345 354 363 57 + 348 345 339 393 11 348 345 354 357 71 + 348 345 354 360 71 348 345 354 363 57 + 345 354 363 366 57 345 354 363 369 57 + 342 339 345 348 11 342 339 345 351 11 + 342 339 345 354 11 342 339 393 396 4 + 342 339 -393 396 3 342 339 -393 396 34 + 342 339 393 399 3 339 345 354 357 57 + 339 345 354 360 57 339 393 399 402 2 + 336 333 339 342 3 336 333 339 345 3 + 336 333 339 393 3 333 339 345 348 11 + 333 339 345 351 11 468 465 471 474 1 + 468 465 -471 474 2 465 471 477 480 3 + 453 450 456 459 23 453 450 456 462 23 + 447 444 450 453 23 447 444 450 456 23 + 444 450 456 459 23 441 438 435 462 23 + 441 438 444 447 23 441 438 444 450 23 + 438 444 450 453 23 435 438 444 447 23 + 435 462 456 459 25 432 429 435 438 26 + 432 429 435 462 26 429 435 438 441 23 + 426 423 420 462 27 426 423 429 432 28 + 426 423 429 435 28 420 423 429 432 28 + 420 462 456 459 25 417 411 405 465 11 + 417 411 420 423 3 417 411 420 462 3 + 414 411 405 465 11 414 411 420 423 3 + 414 411 420 462 3 411 420 423 426 27 + 408 405 411 414 11 408 405 411 417 11 + 408 405 411 420 11 408 405 465 468 4 + 408 405 -465 468 3 408 405 -465 468 34 + 408 405 465 471 3 405 465 471 474 2 + 402 399 405 408 3 402 399 405 411 3 + 402 399 405 465 3 399 405 411 414 11 + 399 405 411 417 11 510 507 513 516 1 + 510 507 -513 516 2 507 513 519 522 3 + 498 489 483 501 48 498 489 -483 501 5 + 495 489 483 501 48 495 489 -483 501 5 + 492 489 483 501 48 492 489 -483 501 5 + 489 483 501 504 53 489 483 -501 504 54 + 489 483 -501 504 55 489 483 -501 504 56 + 486 483 477 507 11 486 483 489 492 11 + 486 483 489 495 11 486 483 489 498 11 + 486 483 501 504 12 480 477 483 486 11 + 480 477 483 489 11 480 477 483 501 48 + 480 477 -483 501 5 480 477 507 510 4 + 480 477 -507 510 3 480 477 -507 510 34 + 480 477 507 513 3 477 483 489 492 57 + 477 483 489 495 57 477 483 489 498 57 + 477 483 501 504 58 477 483 -501 504 59 + 477 483 -501 504 55 477 483 -501 504 60 + 477 507 513 516 2 474 471 477 480 3 + 474 471 477 483 3 474 471 477 507 3 + 471 477 483 486 11 582 579 585 588 1 + 582 579 -585 588 2 579 585 591 594 3 + 567 564 570 573 23 567 564 570 576 23 + 561 558 564 567 23 561 558 564 570 23 + 558 564 570 573 23 555 552 549 576 23 + 555 552 558 561 23 555 552 558 564 23 + 552 558 564 567 23 549 552 558 561 23 + 549 576 570 573 25 546 543 549 552 26 + 546 543 549 576 26 543 549 552 555 23 + 540 537 534 576 27 540 537 543 546 28 + 540 537 543 549 28 534 537 543 546 28 + 534 576 570 573 25 531 525 519 579 11 + 531 525 534 537 3 531 525 534 576 3 + 528 525 519 579 11 528 525 534 537 3 + 528 525 534 576 3 525 534 537 540 27 + 522 519 525 528 11 522 519 525 531 11 + 522 519 525 534 11 522 519 579 582 4 + 522 519 -579 582 3 522 519 -579 582 34 + 522 519 579 585 3 519 579 585 588 2 + 516 513 519 522 3 516 513 519 525 3 + 516 513 519 579 3 513 519 525 528 11 + 513 519 525 531 11 648 645 651 654 1 + 648 645 -651 654 2 645 651 657 660 3 + 645 651 657 663 3 645 651 657 666 3 + 630 624 633 636 11 630 624 633 639 11 + 630 624 633 642 11 627 624 633 636 11 + 627 624 633 639 11 627 624 633 642 11 + 621 615 624 627 11 621 615 624 630 11 + 621 615 624 633 11 618 615 624 627 11 + 618 615 624 630 11 618 615 624 633 11 + 615 624 633 636 11 615 624 633 639 11 + 615 624 633 642 11 612 606 615 618 71 + 612 606 615 621 71 612 606 615 624 57 + 609 606 615 618 71 609 606 615 621 71 + 609 606 615 624 57 606 615 624 627 11 + 606 615 624 630 11 603 597 591 645 11 + 603 597 606 609 71 603 597 606 612 71 + 603 597 606 615 57 600 597 591 645 11 + 600 597 606 609 71 600 597 606 612 71 + 600 597 606 615 57 597 606 615 618 57 + 597 606 615 621 57 594 591 597 600 11 + 594 591 597 603 11 594 591 597 606 11 + 594 591 645 648 4 594 591 -645 648 3 + 594 591 -645 648 34 594 591 645 651 3 + 591 597 606 609 57 591 597 606 612 57 + 591 645 651 654 2 588 585 591 594 3 + 588 585 591 597 3 588 585 591 645 3 + 585 591 597 600 11 585 591 597 603 11 + 654 651 657 660 3 654 651 657 663 3 + 654 651 657 666 3 90 102 -96 -99 99 + 84 96 -90 -93 99 78 90 -84 -87 99 + 75 84 -78 -81 99 63 75 -69 -72 100 + 60 69 -63 -66 99 33 45 -39 -42 99 + 105 114 -111 -117 99 204 216 -210 -213 99 + 198 210 -204 -207 99 192 204 -198 -201 99 + 189 198 -192 -195 99 177 189 -183 -186 100 + 174 183 -177 -180 99 147 156 -153 -159 99 + 219 228 -225 -231 99 291 300 -297 -303 100 + 264 273 -270 -276 99 306 315 -312 -318 99 + 327 336 -333 -339 99 450 462 -456 -459 99 + 444 456 -450 -453 99 438 450 -444 -447 99 + 435 444 -438 -441 99 423 435 -429 -432 100 + 420 429 -423 -426 99 393 402 -399 -405 99 + 465 474 -471 -477 99 564 576 -570 -573 99 + 558 570 -564 -567 99 552 564 -558 -561 99 + 549 558 -552 -555 99 537 549 -543 -546 100 + 534 543 -537 -540 99 507 516 -513 -519 99 + 579 588 -585 -591 99 645 657 -651 -654 99 +%FLAG DIHEDRALS_WITHOUT_HYDROGEN +%FORMAT(10I8) + 36 33 39 45 2 33 39 45 51 4 + 33 39 -45 51 3 33 39 -45 51 5 + 33 39 -45 51 6 33 39 45 105 4 + 33 39 -45 105 3 33 39 -45 105 5 + 33 39 -45 105 6 27 18 12 33 7 + 27 18 -12 33 8 27 18 -12 33 9 + 27 18 -12 33 10 18 12 33 36 3 + 18 12 33 39 13 18 12 -33 39 14 + 18 12 -33 39 15 18 12 -33 39 6 + 12 33 39 45 2 0 12 18 27 20 + 0 12 -18 27 21 0 12 -18 27 9 + 0 12 -18 27 22 0 12 33 36 3 + 0 12 33 39 3 108 105 111 117 2 + 105 111 117 123 4 105 111 -117 123 3 + 105 111 -117 123 5 105 111 -117 123 6 + 105 111 117 147 4 105 111 -117 147 3 + 105 111 -117 147 5 105 111 -117 147 6 + 84 78 75 102 23 84 90 -96 102 23 + 78 75 102 96 24 78 84 -90 96 23 + 75 78 84 90 23 75 102 -96 90 25 + 69 63 -60 102 27 69 75 78 84 23 + 69 75 102 96 24 63 60 -102 75 29 + 63 60 102 96 29 63 69 75 78 26 + 63 69 -75 102 26 60 51 45 105 30 + 60 51 -45 105 31 60 51 -45 105 32 + 60 51 -45 105 33 60 63 -69 75 28 + 60 102 -75 69 24 60 102 75 78 24 + 60 102 96 90 25 51 45 105 108 3 + 51 45 105 111 4 51 45 -105 111 3 + 51 45 -105 111 5 51 45 -105 111 6 + 51 60 63 69 27 51 60 102 75 29 + 51 60 102 96 29 45 51 60 63 4 + 45 51 -60 63 3 45 51 -60 63 5 + 45 51 -60 63 6 45 51 60 102 35 + 45 51 -60 102 36 45 51 -60 102 37 + 45 51 -60 102 38 45 105 111 117 2 + 39 45 51 60 39 39 45 -51 60 40 + 39 45 -51 60 32 39 45 -51 60 41 + 39 45 105 108 3 39 45 105 111 42 + 39 45 -105 111 43 39 45 -105 111 34 + 39 45 -105 111 6 150 147 153 159 2 + 147 153 159 165 4 147 153 -159 165 3 + 147 153 -159 165 5 147 153 -159 165 6 + 147 153 159 219 4 147 153 -159 219 3 + 147 153 -159 219 5 147 153 -159 219 6 + 141 123 117 147 44 141 123 -117 147 45 + 141 123 -117 147 46 141 123 -117 147 47 + 129 123 117 147 49 129 123 -117 147 50 + 129 123 -117 147 51 129 123 -117 147 52 + 123 117 147 150 3 123 117 147 153 4 + 123 117 -147 153 3 123 117 -147 153 5 + 123 117 -147 153 6 117 147 153 159 2 + 111 117 123 129 61 111 117 -123 129 62 + 111 117 -123 129 51 111 117 -123 129 63 + 111 117 123 141 64 111 117 -123 141 65 + 111 117 -123 141 46 111 117 -123 141 66 + 111 117 147 150 3 111 117 147 153 42 + 111 117 -147 153 43 111 117 -147 153 34 + 111 117 -147 153 6 222 219 225 231 2 + 219 225 231 237 4 219 225 -231 237 3 + 219 225 -231 237 5 219 225 -231 237 6 + 219 225 231 264 4 219 225 -231 264 3 + 219 225 -231 264 5 219 225 -231 264 6 + 198 192 189 216 23 198 204 -210 216 23 + 192 189 216 210 24 192 198 -204 210 23 + 189 192 198 204 23 189 216 -210 204 25 + 183 177 -174 216 27 183 189 192 198 23 + 183 189 216 210 24 177 174 -216 189 29 + 177 174 216 210 29 177 183 189 192 26 + 177 183 -189 216 26 174 165 159 219 30 + 174 165 -159 219 31 174 165 -159 219 32 + 174 165 -159 219 33 174 177 -183 189 28 + 174 216 -189 183 24 174 216 189 192 24 + 174 216 210 204 25 165 159 219 222 3 + 165 159 219 225 4 165 159 -219 225 3 + 165 159 -219 225 5 165 159 -219 225 6 + 165 174 177 183 27 165 174 216 189 29 + 165 174 216 210 29 159 165 174 177 4 + 159 165 -174 177 3 159 165 -174 177 5 + 159 165 -174 177 6 159 165 174 216 35 + 159 165 -174 216 36 159 165 -174 216 37 + 159 165 -174 216 38 159 219 225 231 2 + 153 159 165 174 39 153 159 -165 174 40 + 153 159 -165 174 32 153 159 -165 174 41 + 153 159 219 222 3 153 159 219 225 42 + 153 159 -219 225 43 153 159 -219 225 34 + 153 159 -219 225 6 267 264 270 276 2 + 264 270 276 282 4 264 270 -276 282 3 + 264 270 -276 282 5 264 270 -276 282 6 + 264 270 276 306 4 264 270 -276 306 3 + 264 270 -276 306 5 264 270 -276 306 6 + 246 237 231 264 67 246 237 -231 264 68 + 246 237 -231 264 69 246 237 -231 264 70 + 237 231 264 267 3 237 231 264 270 4 + 237 231 -264 270 3 237 231 -264 270 5 + 237 231 -264 270 6 237 246 255 258 72 + 237 246 -255 258 73 237 246 255 261 72 + 237 246 -255 261 73 231 237 246 255 74 + 231 237 -246 255 75 231 237 -246 255 76 + 231 237 -246 255 77 231 264 270 276 2 + 225 231 237 246 78 225 231 -237 246 79 + 225 231 -237 246 69 225 231 -237 246 80 + 225 231 264 267 3 225 231 264 270 42 + 225 231 -264 270 43 225 231 -264 270 34 + 225 231 -264 270 6 309 306 312 318 2 + 306 312 318 327 4 306 312 -318 327 3 + 306 312 -318 327 5 306 312 -318 327 6 + 291 282 276 306 81 291 282 -276 306 82 + 291 282 -276 306 83 291 282 -276 306 84 + 282 276 306 309 3 282 276 306 312 4 + 282 276 -306 312 3 282 276 -306 312 5 + 282 276 -306 312 6 276 282 291 294 4 + 276 282 291 297 87 276 282 -291 297 88 + 276 282 -291 297 89 276 282 -291 297 90 + 276 306 312 318 2 270 276 282 291 91 + 270 276 -282 291 92 270 276 -282 291 83 + 270 276 -282 291 93 270 276 306 309 3 + 270 276 306 312 42 270 276 -306 312 43 + 270 276 -306 312 34 270 276 -306 312 6 + 330 327 333 339 2 327 333 339 345 4 + 327 333 -339 345 3 327 333 -339 345 5 + 327 333 -339 345 6 327 333 339 393 4 + 327 333 -339 393 3 327 333 -339 393 5 + 327 333 -339 393 6 318 327 333 339 2 + 312 318 327 330 3 312 318 327 333 42 + 312 318 -327 333 43 312 318 -327 333 34 + 312 318 -327 333 6 396 393 399 405 2 + 393 399 405 411 4 393 399 -405 411 3 + 393 399 -405 411 5 393 399 -405 411 6 + 393 399 405 465 4 393 399 -405 465 3 + 393 399 -405 465 5 393 399 -405 465 6 + 354 345 339 393 11 354 363 372 381 11 + 345 339 393 396 3 345 339 393 399 4 + 345 339 -393 399 3 345 339 -393 399 5 + 345 339 -393 399 6 345 354 363 372 94 + 345 354 -363 372 95 345 354 -363 372 96 + 339 345 354 363 94 339 345 -354 363 95 + 339 345 -354 363 96 339 393 399 405 2 + 333 339 345 354 11 333 339 393 396 3 + 333 339 393 399 42 333 339 -393 399 43 + 333 339 -393 399 34 333 339 -393 399 6 + 468 465 471 477 2 465 471 477 483 4 + 465 471 -477 483 3 465 471 -477 483 5 + 465 471 -477 483 6 465 471 477 507 4 + 465 471 -477 507 3 465 471 -477 507 5 + 465 471 -477 507 6 444 438 435 462 23 + 444 450 -456 462 23 438 435 462 456 24 + 438 444 -450 456 23 435 438 444 450 23 + 435 462 -456 450 25 429 423 -420 462 27 + 429 435 438 444 23 429 435 462 456 24 + 423 420 -462 435 29 423 420 462 456 29 + 423 429 435 438 26 423 429 -435 462 26 + 420 411 405 465 30 420 411 -405 465 31 + 420 411 -405 465 32 420 411 -405 465 33 + 420 423 -429 435 28 420 462 -435 429 24 + 420 462 435 438 24 420 462 456 450 25 + 411 405 465 468 3 411 405 465 471 4 + 411 405 -465 471 3 411 405 -465 471 5 + 411 405 -465 471 6 411 420 423 429 27 + 411 420 462 435 29 411 420 462 456 29 + 405 411 420 423 4 405 411 -420 423 3 + 405 411 -420 423 5 405 411 -420 423 6 + 405 411 420 462 35 405 411 -420 462 36 + 405 411 -420 462 37 405 411 -420 462 38 + 405 465 471 477 2 399 405 411 420 39 + 399 405 -411 420 40 399 405 -411 420 32 + 399 405 -411 420 41 399 405 465 468 3 + 399 405 465 471 42 399 405 -465 471 43 + 399 405 -465 471 34 399 405 -465 471 6 + 510 507 513 519 2 507 513 519 525 4 + 507 513 -519 525 3 507 513 -519 525 5 + 507 513 -519 525 6 507 513 519 579 4 + 507 513 -519 579 3 507 513 -519 579 5 + 507 513 -519 579 6 501 483 477 507 44 + 501 483 -477 507 45 501 483 -477 507 46 + 501 483 -477 507 47 489 483 477 507 49 + 489 483 -477 507 50 489 483 -477 507 51 + 489 483 -477 507 52 483 477 507 510 3 + 483 477 507 513 4 483 477 -507 513 3 + 483 477 -507 513 5 483 477 -507 513 6 + 477 507 513 519 2 471 477 483 489 61 + 471 477 -483 489 62 471 477 -483 489 51 + 471 477 -483 489 63 471 477 483 501 64 + 471 477 -483 501 65 471 477 -483 501 46 + 471 477 -483 501 66 471 477 507 510 3 + 471 477 507 513 42 471 477 -507 513 43 + 471 477 -507 513 34 471 477 -507 513 6 + 582 579 585 591 2 579 585 591 597 4 + 579 585 -591 597 3 579 585 -591 597 5 + 579 585 -591 597 6 579 585 591 645 4 + 579 585 -591 645 3 579 585 -591 645 5 + 579 585 -591 645 6 558 552 549 576 23 + 558 564 -570 576 23 552 549 576 570 24 + 552 558 -564 570 23 549 552 558 564 23 + 549 576 -570 564 25 543 537 -534 576 27 + 543 549 552 558 23 543 549 576 570 24 + 537 534 -576 549 29 537 534 576 570 29 + 537 543 549 552 26 537 543 -549 576 26 + 534 525 519 579 30 534 525 -519 579 31 + 534 525 -519 579 32 534 525 -519 579 33 + 534 537 -543 549 28 534 576 -549 543 24 + 534 576 549 552 24 534 576 570 564 25 + 525 519 579 582 3 525 519 579 585 4 + 525 519 -579 585 3 525 519 -579 585 5 + 525 519 -579 585 6 525 534 537 543 27 + 525 534 576 549 29 525 534 576 570 29 + 519 525 534 537 4 519 525 -534 537 3 + 519 525 -534 537 5 519 525 -534 537 6 + 519 525 534 576 35 519 525 -534 576 36 + 519 525 -534 576 37 519 525 -534 576 38 + 519 579 585 591 2 513 519 525 534 39 + 513 519 -525 534 40 513 519 -525 534 32 + 513 519 -525 534 41 513 519 579 582 3 + 513 519 579 585 42 513 519 -579 585 43 + 513 519 -579 585 34 513 519 -579 585 6 + 648 645 651 657 2 606 597 591 645 11 + 606 615 624 633 11 597 591 645 648 3 + 597 591 645 651 4 597 591 -645 651 3 + 597 591 -645 651 5 597 591 -645 651 6 + 597 606 615 624 94 597 606 -615 624 95 + 597 606 -615 624 96 591 597 606 615 94 + 591 597 -606 615 95 591 597 -606 615 96 + 591 645 651 657 2 585 591 597 606 11 + 585 591 645 648 3 585 591 645 651 42 + 585 591 -645 651 43 585 591 -645 651 34 + 585 591 -645 651 6 12 39 -33 -36 97 + 45 111 -105 -108 97 60 75 -102 -96 98 + 69 78 -75 -102 98 102 51 -60 -63 99 + 117 153 -147 -150 97 159 225 -219 -222 97 + 174 210 -216 -189 98 192 216 -189 -183 98 + 216 165 -174 -177 99 231 270 -264 -267 97 + 246 258 -255 -261 97 276 312 -306 -309 97 + 282 297 -291 -294 97 318 333 -327 -330 97 + 339 399 -393 -396 97 405 471 -465 -468 97 + 420 456 -462 -435 98 438 462 -435 -429 98 + 462 411 -420 -423 99 477 513 -507 -510 97 + 519 585 -579 -582 97 534 570 -576 -549 98 + 552 576 -549 -543 98 576 525 -534 -537 99 + 591 651 -645 -648 97 +%FLAG EXCLUDED_ATOMS_LIST +%FORMAT(10I8) + 2 3 4 5 6 7 8 9 10 12 + 13 14 3 4 5 6 7 12 4 5 + 6 7 12 5 6 7 12 6 7 8 + 9 10 11 12 13 14 15 16 7 8 + 9 10 12 13 14 8 9 10 11 12 + 13 14 9 10 11 12 10 11 12 11 + 12 0 13 14 15 16 17 18 36 14 + 15 16 15 16 17 18 19 20 21 36 + 37 38 16 17 18 36 17 18 19 20 + 21 22 35 36 37 38 39 40 18 19 + 20 21 36 37 38 19 20 21 22 23 + 24 26 33 35 36 37 38 20 21 22 + 35 36 21 22 35 36 22 23 24 25 + 26 27 31 33 34 35 36 23 24 25 + 26 27 33 35 24 25 26 35 25 26 + 27 28 29 33 35 26 27 35 27 28 + 29 30 31 33 34 35 28 29 30 31 + 32 33 35 29 30 31 35 30 31 32 + 33 34 35 31 32 33 32 33 34 35 + 33 34 35 34 35 35 0 37 38 39 + 40 41 42 50 38 39 40 39 40 41 + 42 43 44 48 50 51 52 40 41 42 + 50 41 42 43 44 45 46 47 48 49 + 50 51 52 53 54 42 43 44 48 50 + 51 52 43 44 45 46 47 48 49 50 + 51 52 44 45 46 47 48 49 50 45 + 46 47 48 49 50 46 47 48 47 48 + 48 49 50 0 51 52 53 54 55 56 + 74 52 53 54 53 54 55 56 57 58 + 59 74 75 76 54 55 56 74 55 56 + 57 58 59 60 73 74 75 76 77 78 + 56 57 58 59 74 75 76 57 58 59 + 60 61 62 64 71 73 74 75 76 58 + 59 60 73 74 59 60 73 74 60 61 + 62 63 64 65 69 71 72 73 74 61 + 62 63 64 65 71 73 62 63 64 73 + 63 64 65 66 67 71 73 64 65 73 + 65 66 67 68 69 71 72 73 66 67 + 68 69 70 71 73 67 68 69 73 68 + 69 70 71 72 73 69 70 71 70 71 + 72 73 71 72 73 72 73 73 0 75 + 76 77 78 79 80 89 76 77 78 77 + 78 79 80 81 82 83 89 90 91 78 + 79 80 89 79 80 81 82 83 84 85 + 86 89 90 91 92 93 80 81 82 83 + 89 90 91 81 82 83 84 85 86 87 + 88 89 90 91 82 83 84 85 86 89 + 83 84 85 86 89 84 85 86 87 88 + 89 85 86 87 88 86 87 88 87 88 + 88 0 90 91 92 93 94 95 103 91 + 92 93 92 93 94 95 96 97 98 103 + 104 105 93 94 95 103 94 95 96 97 + 98 99 100 103 104 105 106 107 95 96 + 97 98 103 104 105 96 97 98 99 100 + 101 102 103 104 105 97 98 99 100 103 + 98 99 100 103 99 100 101 102 103 100 + 101 102 101 102 102 0 104 105 106 107 + 108 109 110 105 106 107 106 107 108 109 + 110 111 112 107 108 109 110 108 109 110 + 111 112 113 114 109 110 111 112 110 111 + 112 111 112 113 114 115 116 132 112 113 + 114 113 114 115 116 117 118 119 132 133 + 134 114 115 116 132 115 116 117 118 119 + 120 121 122 132 133 134 135 136 116 117 + 118 119 132 133 134 117 118 119 120 121 + 122 123 124 125 132 133 134 118 119 120 + 121 122 132 119 120 121 122 132 120 121 + 122 123 124 125 126 127 128 132 121 122 + 123 124 125 122 123 124 125 123 124 125 + 126 127 128 129 130 131 124 125 126 127 + 128 125 126 127 128 126 127 128 129 130 + 131 127 128 129 130 131 128 129 130 131 + 129 130 131 130 131 131 0 133 134 135 + 136 137 138 156 134 135 136 135 136 137 + 138 139 140 141 156 157 158 136 137 138 + 156 137 138 139 140 141 142 155 156 157 + 158 159 160 138 139 140 141 156 157 158 + 139 140 141 142 143 144 146 153 155 156 + 157 158 140 141 142 155 156 141 142 155 + 156 142 143 144 145 146 147 151 153 154 + 155 156 143 144 145 146 147 153 155 144 + 145 146 155 145 146 147 148 149 153 155 + 146 147 155 147 148 149 150 151 153 154 + 155 148 149 150 151 152 153 155 149 150 + 151 155 150 151 152 153 154 155 151 152 + 153 152 153 154 155 153 154 155 154 155 + 155 0 157 158 159 160 161 162 170 158 + 159 160 159 160 161 162 163 164 168 170 + 171 172 160 161 162 170 161 162 163 164 + 165 166 167 168 169 170 171 172 173 174 + 162 163 164 168 170 171 172 163 164 165 + 166 167 168 169 170 171 172 164 165 166 + 167 168 169 170 165 166 167 168 169 170 + 166 167 168 167 168 168 169 170 0 171 + 172 173 174 175 176 194 172 173 174 173 + 174 175 176 177 178 179 194 195 196 174 + 175 176 194 175 176 177 178 179 180 193 + 194 195 196 197 198 176 177 178 179 194 + 195 196 177 178 179 180 181 182 184 191 + 193 194 195 196 178 179 180 193 194 179 + 180 193 194 180 181 182 183 184 185 189 + 191 192 193 194 181 182 183 184 185 191 + 193 182 183 184 193 183 184 185 186 187 + 191 193 184 185 193 185 186 187 188 189 + 191 192 193 186 187 188 189 190 191 193 + 187 188 189 193 188 189 190 191 192 193 + 189 190 191 190 191 192 193 191 192 193 + 192 193 193 0 195 196 197 198 199 200 + 216 196 197 198 197 198 199 200 201 202 + 203 216 217 218 198 199 200 216 199 200 + 201 202 203 204 205 206 216 217 218 219 + 220 200 201 202 203 216 217 218 201 202 + 203 204 205 206 207 208 209 216 217 218 + 202 203 204 205 206 216 203 204 205 206 + 216 204 205 206 207 208 209 210 211 212 + 216 205 206 207 208 209 206 207 208 209 + 207 208 209 210 211 212 213 214 215 208 + 209 210 211 212 209 210 211 212 210 211 + 212 213 214 215 211 212 213 214 215 212 + 213 214 215 213 214 215 214 215 215 0 + 217 218 219 220 221 222 223 218 219 220 + 219 220 221 222 223 220 221 222 223 221 + 222 223 222 223 223 0 +%FLAG HBOND_ACOEF +%FORMAT(5E16.8) + +%FLAG HBOND_BCOEF +%FORMAT(5E16.8) + +%FLAG HBCUT +%FORMAT(5E16.8) + +%FLAG AMBER_ATOM_TYPE +%FORMAT(20a4) +N3 H H H CX HP 2C H1 H1 OH HO C O N H XC H1 CT HC HC +C* CW H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H XC +H1 3C H1 CT HC HC HC OH HO C O N H XC H1 CT HC HC C* CW +H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H XC H1 2C +HC HC 2C HC HC CO O2 O2 C O N H XC H1 2C HC HC C O N +H H C O N H XC H1 H1 C O N H XC H1 C8 HC HC C8 HC +HC C8 HC HC C8 HP HP N3 H H H C O N H XC H1 CT HC HC +C* CW H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H XC +H1 3C H1 CT HC HC HC OH HO C O N H XC H1 CT HC HC C* CW +H4 NA H CN CA HA CA HA CA HA CA HA CB C O N H XC H1 C8 +HC HC C8 HC HC C8 HC HC C8 HP HP N3 H H H C O N H CT +H1 H1 H1 +%FLAG TREE_CHAIN_CLASSIFICATION +%FORMAT(20a4) +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA +%FLAG JOIN_ARRAY +%FORMAT(10I8) + 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 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 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 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 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 +%FLAG IROTAT +%FORMAT(10I8) + 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 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 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 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 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 +%FLAG RADIUS_SET +%FORMAT(1a80) +modified Bondi radii (mbondi) +%FLAG RADII +%FORMAT(5E16.8) + 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.50000000E+00 + 8.00000000E-01 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.50000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 + 1.30000000E+00 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.55000000E+00 1.30000000E+00 + 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.30000000E+00 1.50000000E+00 8.00000000E-01 1.70000000E+00 + 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 + 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.70000000E+00 1.70000000E+00 1.50000000E+00 + 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.70000000E+00 1.30000000E+00 + 1.30000000E+00 1.55000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 + 1.70000000E+00 1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 + 1.30000000E+00 1.30000000E+00 1.30000000E+00 +%FLAG SCREEN +%FORMAT(5E16.8) + 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 + 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 + 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 + 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 + 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 + 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 +%FLAG CMAP_COUNT +%FORMAT(2I8) + 11 6 +%FLAG CMAP_RESOLUTION +%FORMAT(20I4) + 24 24 24 24 24 24 +%FLAG CMAP_PARAMETER_01 +%COMMENT Gly CMAP +%FORMAT(8F9.5) + 0.82366 1.09817 1.13106 1.38658 2.11377 3.63194 5.20835 4.52792 + 4.24857 3.42100 2.57125 2.21561 4.26659 2.21561 2.57125 3.42110 + 4.24858 4.52792 4.29107 3.63184 2.03731 1.32036 1.12797 1.09814 + 1.01976 0.89767 0.89484 1.21525 1.97095 3.70570 4.38855 4.65256 + 4.43948 3.89754 4.21954 2.92219 1.83300 1.61528 2.13407 3.13273 + 4.03304 4.37836 4.21500 3.54162 2.14871 1.44646 1.20387 1.08264 + 0.94294 0.79652 0.83328 1.24136 2.06053 3.43883 4.17385 4.53101 + 4.43115 4.03641 3.71837 2.02965 1.28863 1.21833 1.89263 2.85593 + 4.80291 4.23497 4.08718 3.49858 2.17811 1.53114 1.22608 1.06909 + 1.06124 0.90425 0.95129 1.35925 1.80900 3.18916 3.85055 4.27470 + 4.17515 3.68355 2.71193 1.96823 0.88051 1.02084 1.59189 2.52883 + 3.47767 4.03244 3.86779 3.39508 2.23969 1.66969 1.33019 1.16679 + 1.08157 1.02005 1.10493 1.29605 1.79270 2.88632 3.63402 4.05349 + 3.97657 3.35415 2.24207 1.18576 0.74267 0.67495 1.31122 2.24278 + 3.21905 3.69186 4.76949 4.00571 2.34764 1.77622 1.34849 1.12849 + 1.09360 0.76295 0.64220 1.00733 1.73708 2.50787 3.41571 4.45847 + 3.84910 3.11193 1.97839 1.18177 0.33803 0.43176 1.23577 2.17947 + 2.92428 3.38497 3.39138 3.10177 3.35228 2.15282 1.45287 1.28536 + 0.61764 0.23640 0.15650 0.65857 1.56522 2.44967 3.17669 3.78043 + 4.22216 2.79953 1.66579 0.59084 0.15579 0.43594 1.52040 2.27449 + 2.76979 3.16911 3.12455 2.92674 2.45824 1.88927 1.36443 0.95121 + -0.00243 -0.14438 0.06931 0.84132 1.89921 2.91978 3.46170 3.60722 + 3.77366 2.18724 1.52870 0.20777 0.22187 1.10049 2.08960 2.88893 + 3.46272 3.66327 3.40280 3.02172 2.23074 1.32476 0.62376 0.25154 + -0.24862 0.05886 0.73935 1.98217 3.25167 4.06285 4.21447 3.90130 + 2.90300 1.70374 0.74057 0.52755 1.12943 2.10802 2.78056 3.65981 + 4.30377 4.58476 4.35318 3.65296 2.33204 0.81283 0.00000 -0.29835 + 0.44379 1.32981 2.39709 3.82578 5.02459 5.42450 4.99639 4.00610 + 2.64886 1.63847 1.37610 1.71448 2.28503 2.64949 3.24747 4.17266 + 5.17265 5.75041 5.58476 4.21912 2.20540 0.64843 0.02065 -0.08593 + 2.15530 3.40478 4.51993 5.80241 6.12627 6.00746 5.12631 4.58197 + 2.80154 2.55737 2.87599 2.95502 2.71629 2.60279 3.64721 4.53964 + 5.90407 6.82108 6.15044 4.18011 2.15201 0.96807 0.81255 1.19704 + 4.21011 5.19583 5.45356 5.26216 5.22957 4.91772 4.44698 3.93537 + 3.74038 4.11322 3.92595 2.94210 2.11295 2.42266 3.12536 4.83315 + 6.43292 6.19670 5.13463 3.65052 2.40663 2.07125 2.29840 3.03351 + 5.33877 4.55338 3.87255 3.87071 3.62149 3.87069 4.31250 4.77933 + 5.37137 5.20874 3.65026 2.18763 2.20027 2.18700 3.65026 5.21405 + 5.24065 4.77943 4.31250 3.87553 3.63325 5.19982 3.88530 4.53465 + 4.20747 3.02450 2.29840 2.07135 2.40664 3.65062 5.13204 6.19680 + 6.43292 4.83351 3.12587 2.96667 2.11029 2.93241 3.92594 4.11322 + 3.74082 3.93551 4.44698 4.92068 5.53058 5.24416 5.35209 5.19605 + 2.15668 1.19704 0.81255 0.96806 2.15211 4.17062 6.15034 6.82108 + 5.90407 4.54177 3.63728 2.60267 2.71853 2.95502 2.87589 2.55737 + 2.80717 3.89294 5.12631 6.00746 6.12372 5.80230 5.01898 3.40679 + 0.45450 -0.08700 0.02065 0.64843 2.20540 4.21912 5.58476 5.75041 + 5.17265 4.16788 3.24747 2.64460 2.28503 1.72593 1.37610 1.63847 + 2.64538 4.01006 5.00425 5.42091 5.02459 3.80593 2.39681 1.32981 + -0.24862 -0.29835 0.00000 0.81283 2.33214 3.64847 4.35318 4.59008 + 4.30377 3.65991 2.78056 2.10802 1.84494 0.52754 0.74067 1.61716 + 2.90300 3.89516 4.21447 4.06285 3.25166 1.98217 0.73946 0.07427 + -0.00243 0.25154 0.64043 1.82987 2.23143 3.02038 3.40280 3.66327 + 3.46272 2.88893 2.08960 1.10049 0.22171 0.20862 1.52897 2.18595 + 3.24376 3.60722 3.46170 2.91968 1.89590 0.84888 0.07066 -0.14460 + 0.61764 0.94007 1.36444 1.88927 2.45691 2.92674 3.12469 3.16911 + 2.76979 2.27377 1.52040 0.44049 0.15579 0.59084 1.66579 2.79477 + 4.25589 3.78043 3.17669 2.45043 1.56512 0.65855 0.15650 0.23719 + 1.09360 1.28549 1.45287 2.15281 2.67683 3.10177 3.39138 3.38497 + 2.91731 2.17947 1.23582 0.43170 0.33793 1.00844 1.97383 3.11193 + 3.84910 4.46392 3.41571 2.50787 1.73708 1.00733 0.64220 0.76295 + 0.97094 1.11640 1.33640 1.77623 2.30465 3.21763 3.71128 3.69186 + 3.21905 2.24277 1.31122 0.67238 0.74272 1.18578 2.24207 3.35415 + 3.97657 4.05349 3.63266 2.88632 1.79270 1.23680 1.00391 1.05657 + 0.98044 1.16708 1.33038 1.66969 2.23969 3.39508 3.86779 4.03243 + 3.47590 2.52883 1.59193 1.02084 0.88051 1.46518 2.71203 3.68355 + 4.17470 4.27471 3.85203 3.18916 1.80900 1.35925 0.95109 0.90998 + 0.92229 1.06909 1.22608 1.53114 2.17810 3.49858 4.08708 4.23358 + 3.81032 2.85593 1.89254 1.21833 1.28863 2.03059 3.37664 4.03661 + 4.43079 4.53101 4.17385 3.43883 2.06053 1.24136 0.83440 0.79652 + 1.01976 1.08264 1.20394 1.44647 2.14870 3.54162 4.22527 4.37836 + 4.03304 3.13273 2.13407 1.61528 1.83300 2.92219 4.10899 3.89754 + 4.43948 4.65256 4.38856 3.70570 1.97095 1.21515 0.89442 0.89767 +%FLAG CMAP_PARAMETER_02 +%COMMENT Thr CMAP +%FORMAT(8F9.5) + -0.04283 0.18161 1.05439 1.03586 1.32935 1.80299 2.39623 2.93329 + 3.35590 3.57777 3.50914 1.68053 -0.39179 -0.93314 -0.64171 0.11454 + 0.89169 1.19527 1.06990 0.70217 0.45484 0.13072 -0.22279 -0.64142 + -0.89041 -0.23409 0.59158 0.55751 0.83342 1.42045 2.21734 3.18185 + 3.46319 3.49225 2.74426 0.52768 -0.99342 -1.26181 -0.82560 -0.00314 + 0.89227 1.33370 1.44561 1.23285 0.82708 0.26308 -0.20670 -0.77475 + -0.77931 -0.21773 0.28830 0.08738 0.88718 0.95262 1.87297 3.11301 + 3.13164 3.38335 1.75405 0.07220 -1.09686 -1.29826 -0.91328 -0.03110 + 0.83011 1.32603 1.46471 1.28387 0.67901 0.23347 -0.27939 -0.69694 + -0.50786 -0.10197 0.06983 -0.17637 0.06763 0.79727 2.28870 2.45490 + 2.93902 3.31058 1.67194 0.10975 -0.84848 -0.98572 0.03685 -0.00657 + 0.75442 1.26299 1.46733 1.35576 0.81372 0.99506 -0.07250 -0.48345 + 0.10617 0.89653 1.01472 0.51464 0.29597 0.97717 1.86119 2.69722 + 3.25863 3.09958 1.98360 0.61582 -0.27072 -0.59401 -0.33506 0.34299 + 0.94668 1.38632 1.66220 1.70320 1.34813 1.65038 0.62845 0.23924 + 0.72889 0.70286 0.50076 0.83792 0.58321 1.37720 2.36342 3.16093 + 3.64517 3.46287 2.41734 1.11469 0.11040 -0.17882 0.19884 0.95013 + 1.17771 1.51890 1.83892 2.02544 2.52304 1.54809 1.28633 0.94204 + 0.44986 0.84132 1.02745 0.44812 0.85346 1.66099 3.07918 3.29722 + 3.67845 3.42114 2.31098 0.98281 0.09466 0.19679 0.86348 1.00796 + 1.32832 2.00653 1.85879 2.11827 1.96393 1.65524 1.22698 0.89636 + -0.16092 -0.07801 0.36742 0.71079 1.37539 2.07819 2.78900 3.25905 + 3.45281 2.88038 1.70415 0.66784 0.52962 0.91246 1.45720 1.70827 + 1.96726 2.05687 2.25152 2.69300 1.87895 1.30437 0.67732 0.16373 + -0.59497 -0.15706 0.87552 1.51129 2.23851 2.99679 3.70183 4.34392 + 3.11511 2.42327 1.45045 0.88441 1.17792 1.80802 1.89428 2.26153 + 2.77283 3.04412 3.18064 3.02688 2.74623 0.78666 0.00000 -0.39235 + -0.35916 0.39315 1.93035 2.81662 3.65827 4.17673 4.19465 4.39392 + 2.95304 2.23500 1.84732 1.84010 2.40277 2.39122 2.40836 2.83657 + 3.53179 4.15047 4.32346 3.57356 2.03334 0.38577 -0.25814 -0.48010 + 0.90231 2.09057 3.75066 4.41890 5.21329 5.48263 4.81077 4.43634 + 3.32223 3.13901 3.21301 3.48840 3.14705 2.66483 2.64675 3.40492 + 4.64828 5.45938 5.43806 3.77072 1.88593 0.59482 0.32151 0.46925 + 2.84623 5.25750 4.89403 4.16235 4.18058 4.25905 4.39881 4.30063 + 4.27196 6.52030 5.09605 4.18296 2.87596 2.88864 2.98802 4.36666 + 5.97212 5.37136 4.65053 3.41526 2.12052 1.70730 1.91929 2.22274 + 5.08537 3.84174 2.58325 2.05517 2.09913 2.76880 4.07500 5.11462 + 6.04360 6.80346 4.29068 2.24439 1.89996 1.49269 2.85393 4.25936 + 3.68129 3.16198 3.17712 3.18147 3.06025 3.11939 3.59651 4.06844 + 2.95875 1.85563 0.75599 0.11936 0.62544 2.16551 4.28956 6.12775 + 6.83966 4.68973 2.85927 1.53513 0.96538 1.77312 2.68992 2.31815 + 1.47003 2.17589 2.43707 3.45826 3.94968 4.26320 4.42076 3.92590 + 1.51557 0.68246 -0.39230 -0.84277 0.04559 2.19451 4.72922 6.95780 + 5.40020 3.82779 2.18071 1.35124 1.31049 1.70777 2.34439 0.75006 + 0.44316 1.19441 2.39699 3.43932 4.57651 3.99795 3.91034 2.38687 + 1.04547 0.30750 -0.67905 -0.95180 0.30970 2.62028 4.94026 5.63370 + 4.90897 3.64364 2.33340 1.59932 2.28424 1.95144 0.81385 0.18108 + 0.42251 1.36588 2.52927 3.29540 3.55721 3.32056 2.55338 1.75457 + 0.60608 0.40626 -0.68634 -0.66328 0.65725 2.77987 4.62553 5.30870 + 4.70772 3.57993 2.28608 1.50195 1.07282 0.51037 0.02107 0.04398 + 0.78132 1.81193 2.65223 3.05004 3.29539 2.26809 1.28641 0.82302 + 0.22184 -0.08581 -0.51518 -0.31218 0.81241 2.48610 4.04241 4.45494 + 4.00716 2.85112 1.57321 0.70165 -0.02248 -0.39760 -0.36780 0.52170 + 1.52703 2.32447 2.45530 2.32999 1.42990 0.52248 0.32984 -0.22600 + -0.84996 -0.35427 -0.56081 -0.65299 -0.35852 0.31584 1.22816 2.03830 + 2.09882 1.37972 0.15727 -0.97399 -1.60803 -1.26567 -0.30784 0.86931 + 1.82810 1.99110 1.50663 1.56367 -0.12333 -0.81892 -1.35944 -1.44084 + -0.71561 -0.48676 -0.90866 -1.05252 -0.76509 -0.25592 1.92498 1.39249 + 1.46845 0.73400 -0.53906 -1.52276 -1.96454 -1.58268 -0.76508 0.34222 + 1.68651 1.37652 1.09906 0.28335 -0.35007 0.36504 -1.18170 -1.09588 + -0.48043 -0.38894 -0.89246 -1.00398 -0.72977 1.23204 2.16417 3.03543 + 3.37771 0.82671 -0.30503 -1.26073 -1.67429 -1.44717 -0.71385 1.24900 + 2.08698 2.14998 1.83853 0.59083 0.08661 -0.31277 -0.35513 -0.41066 + -0.69004 -0.51194 -0.32955 -0.69400 -0.07464 0.92871 2.01875 2.85811 + 2.77128 1.89030 0.66242 -0.07809 -0.10615 -0.38945 0.85104 1.94679 + 1.73514 1.93323 1.84929 1.46327 1.10934 0.57034 0.50272 0.41957 + -1.25344 -1.20087 -1.12615 -1.04924 -0.95384 -0.92645 -0.69918 -0.80083 + -0.88788 -1.12156 -1.25754 -1.27281 -1.10861 -1.24222 -1.29319 -1.21080 + -1.23111 -1.26112 -1.27972 -1.28928 -1.24905 -1.24053 -1.23026 -1.26240 + -0.80998 -0.02949 0.66142 0.58819 0.90096 1.83448 2.35428 2.68721 + 2.63478 2.57170 2.31832 1.91349 0.98844 -0.33805 -0.39669 0.23525 + 0.83158 0.85527 0.58471 0.11117 -0.22091 -0.31767 -0.30232 -0.53977 +%FLAG CMAP_PARAMETER_03 +%COMMENT Asn CMAP +%FORMAT(8F9.5) + -2.36142 -2.38282 -1.85114 -1.14945 -0.53219 0.40272 1.10739 1.54721 + 1.14822 0.56328 -0.32641 -0.97284 -1.62108 -2.61585 -2.43529 -1.76224 + -0.89168 -0.43603 -0.45868 -0.80868 -1.23357 -1.67011 -1.85428 -2.07601 + -0.99020 -0.65164 -0.16568 0.77160 0.60853 1.20633 1.86206 2.24018 + 2.09896 1.87777 1.49042 -0.23289 -1.57415 -2.03742 -1.74572 -0.99728 + -0.21593 0.22447 0.13197 -0.25978 -0.50150 -0.85141 -0.96698 -0.93705 + -0.23452 0.02251 0.30781 0.40180 0.78928 1.41471 2.15873 2.53745 + 2.41276 2.12221 1.06003 -0.37341 -1.32169 -1.52816 -1.15850 -0.48430 + 0.26694 0.62752 0.57895 0.23875 -0.14843 -0.25471 -0.16878 -0.21645 + 0.32993 0.62242 0.82014 0.83866 1.17298 1.85445 2.49579 2.76609 + 2.66051 2.28725 1.11295 -0.10052 -0.45992 -0.96562 -0.70181 0.02410 + 0.76921 1.15367 1.07940 0.77563 0.54329 0.42201 1.56320 0.28771 + 0.72778 0.84030 1.35834 0.78504 1.25359 1.90927 2.65036 2.92871 + 2.76138 2.78943 1.09211 0.00726 -0.56542 -0.81169 -0.43858 1.02217 + 0.90049 1.18949 1.23458 1.15325 0.94233 0.76064 0.77201 0.78071 + 0.95200 0.88305 0.67506 0.62695 1.20079 2.51954 2.77945 3.06364 + 2.84209 2.21279 2.07637 0.22142 0.09971 -0.64441 -0.12844 0.59565 + 0.95584 1.18330 1.26109 1.35401 1.20044 1.13471 1.25849 1.53251 + 0.98852 0.75594 0.58499 0.73124 1.33660 2.15329 2.89253 3.24156 + 3.05146 2.40135 1.25476 0.84619 -0.28833 -0.04297 0.52966 0.77004 + 1.09586 1.21028 1.84021 1.39937 1.28983 1.25273 1.30990 2.25922 + 0.43070 0.41686 0.64029 1.06650 1.77975 2.64461 3.22075 3.30475 + 2.78048 1.92844 0.86429 0.03553 0.07940 0.75937 1.21102 1.56399 + 1.77881 1.78336 2.76865 2.77098 1.21889 0.83048 0.66873 0.52960 + 0.14984 0.40714 1.05775 1.86760 2.87661 3.67525 3.97002 3.45551 + 3.16481 1.49243 0.70837 0.47291 0.83260 1.52894 1.81113 2.21287 + 2.59067 2.72250 2.63597 2.26171 1.28601 0.37915 0.00000 -0.16142 + 0.37322 1.05110 2.29853 3.46919 4.53739 5.08791 4.67687 3.55691 + 2.24775 1.47967 1.24790 1.41912 1.99678 2.09866 2.24949 2.76531 + 3.45843 3.94024 3.90981 3.00944 1.38809 0.06721 -0.25222 -0.05158 + 1.65927 2.83186 4.18526 5.41852 6.44555 6.11045 4.46824 3.61889 + 2.60459 2.56860 2.67046 2.84508 2.52977 2.20948 2.37873 3.27529 + 4.39793 5.47368 4.42754 2.90076 1.18353 0.23659 0.40642 0.93136 + 4.38128 5.67636 4.30743 4.08665 4.09042 5.21933 4.29941 3.43575 + 3.37828 4.09688 3.92159 2.86586 0.72936 1.25023 1.60873 3.38397 + 4.40792 3.56917 2.53579 1.66014 1.04446 1.31380 2.19557 3.14506 + 4.81450 4.02770 3.08165 2.65234 2.59542 2.92277 3.38903 4.59549 + 4.64414 4.42318 2.34279 0.65483 0.08515 0.48342 1.95375 3.58076 + 2.98522 2.26620 2.95565 1.76159 1.91602 2.54703 3.37308 4.33159 + 3.76265 2.68948 1.81256 1.33990 1.64654 2.73704 4.16511 5.07259 + 5.42833 3.59789 1.73708 1.37640 0.65256 1.55040 2.79264 2.49202 + 1.53215 1.55102 1.92800 2.61187 3.07623 3.54959 4.18847 4.59865 + 1.87115 1.02475 0.53761 0.43174 1.54095 3.39547 5.16780 5.81117 + 4.81530 3.41190 2.11102 1.55531 1.62597 2.09509 1.71205 0.80780 + 0.62797 1.36163 2.44562 3.46914 3.90694 4.13511 3.86763 2.92274 + 0.58000 0.17215 -0.27569 0.04547 1.59524 3.62089 4.76947 4.70111 + 4.18539 3.29728 2.38734 1.86816 1.54197 1.04924 0.13429 -0.24233 + 0.27816 1.37732 2.49883 3.11480 3.23962 2.93361 2.25515 1.28612 + -0.15494 -0.34050 -0.57789 -0.14372 1.35546 2.92020 3.92891 3.60777 + 3.33542 2.71737 1.85692 1.82747 0.47393 -0.57416 -1.11105 -0.77930 + 0.16180 1.13768 1.79580 2.04997 1.86544 1.43990 0.89481 0.25518 + -0.77548 -0.80773 -0.80786 -0.30262 0.73746 2.60772 2.12241 2.62399 + 2.02789 1.41505 0.62418 -0.17027 -1.20154 -1.87203 -1.78777 -0.88748 + -0.03581 0.62951 0.66272 0.52817 0.31799 0.04386 -0.32034 -0.63929 + -0.22789 -0.11594 0.01596 0.32123 0.85166 1.52364 1.67078 1.44123 + 1.16473 0.65131 -0.05490 -1.07546 -1.90235 -1.91447 -1.24920 -0.12634 + 0.57735 0.78964 0.59226 0.51054 0.32819 0.10384 -0.16834 -0.29474 + 0.64706 0.61584 0.56208 0.92606 1.40738 2.11648 2.40853 2.29623 + 1.88691 1.22322 0.14194 -0.86223 -1.43925 -1.15134 -0.42472 0.69828 + 1.34848 1.49478 1.31140 0.94545 0.68124 0.52936 0.48317 0.56963 + -0.99300 -0.97876 -1.01326 -0.77718 -0.18870 0.51456 1.06092 1.14814 + 0.59953 -0.34468 -1.44363 -2.36329 -2.86251 -2.71047 -1.80960 -0.75154 + -0.26256 -0.27321 -0.57516 -1.08157 -1.29577 -1.35569 -1.17839 -1.07544 + -2.18588 -2.19390 -2.07539 -1.82534 -0.57333 -0.25977 0.54635 0.71997 + 0.06649 -0.87697 -2.01012 -2.12155 -3.30791 -3.18420 -2.12738 -0.43993 + -0.72253 -0.76304 -0.88684 -1.41091 -1.66608 -1.83869 -1.74745 -1.91149 + -3.08565 -2.97228 -2.12433 -2.30328 -1.59074 -0.57423 1.86028 0.74786 + 0.15188 -0.91140 -1.98044 -2.69096 -3.09247 -2.84304 -1.43999 -1.42382 + -1.21932 -1.06603 -0.97419 -1.28634 -1.70719 -2.24687 -2.46040 -2.77219 + -3.13661 -3.14092 -2.19694 -2.18054 -1.53235 -0.40538 0.59679 0.97100 + 0.44526 -0.49049 -1.51523 -2.17362 -2.35354 -2.30396 -2.74203 -2.18508 + -1.54370 -1.02833 -0.96874 -1.21845 -1.74214 -2.32436 -1.97764 -2.84223 +%FLAG CMAP_PARAMETER_04 +%COMMENT Glu CMAP +%FORMAT(8F9.5) + 0.52228 1.03267 1.49446 1.71567 2.32213 3.14762 3.92563 4.20801 + 3.98330 3.71530 3.57288 2.58309 0.80238 0.23594 0.58492 1.30557 + 2.02633 2.29570 2.01109 1.51363 0.93886 0.42676 0.35104 0.37207 + 0.46712 0.95659 1.27142 1.47987 1.87211 2.60216 3.48241 3.94659 + 3.85343 3.66682 3.05663 1.29652 0.23104 -0.06391 0.28443 1.02181 + 1.77300 2.04294 1.74637 1.33608 0.85021 0.51827 0.34853 0.38689 + 0.71551 1.09158 1.24108 1.20382 1.48762 2.16505 2.99503 3.48416 + 3.41748 3.19096 2.31352 0.83653 0.13782 0.01262 0.40937 1.09138 + 1.81835 2.13665 1.89587 1.45341 0.93605 0.72196 0.63005 0.61667 + 1.23633 1.05303 1.11366 0.99996 1.29649 1.93418 3.18467 3.25814 + 3.22031 2.97228 2.05337 0.89582 0.32965 0.71724 0.60788 1.19799 + 1.80689 2.12562 1.97969 1.63143 1.25425 1.01734 0.88363 0.83522 + 1.30761 1.22768 1.13538 0.95957 1.32807 2.57102 2.89497 3.36108 + 3.35684 3.05473 2.14630 1.19745 0.70441 0.58511 1.95205 1.52371 + 2.01472 2.22245 2.23903 1.99722 1.68137 1.46224 1.34708 2.06156 + 1.63671 1.46009 1.09844 1.02737 1.37694 2.19199 3.07254 3.58620 + 3.60893 3.12444 2.30776 1.42648 0.85100 0.78797 1.22689 1.78722 + 1.94542 2.08451 2.19484 2.14483 2.04645 1.82787 1.84204 1.79757 + 1.12117 1.00459 0.90669 1.08242 1.47107 2.29074 3.15229 3.57314 + 3.49268 3.01074 2.09739 1.12356 0.70488 0.98375 1.57771 1.72826 + 2.12940 1.85888 2.57109 1.91976 1.72276 1.49132 1.51334 1.32669 + 0.40904 0.49960 0.68994 1.12284 1.80289 2.48352 3.11479 3.31150 + 3.03017 2.36837 1.42426 0.77455 0.87384 1.61817 2.00898 2.22704 + 2.42461 2.30922 2.15056 1.99226 1.92450 0.97224 0.73574 0.48898 + 0.08410 0.42215 1.02926 1.87467 2.69476 3.45376 3.67954 3.36972 + 2.60475 1.82014 1.20426 1.10888 1.68685 2.34030 2.58542 2.84203 + 3.12752 3.12065 2.96167 2.54976 1.40533 0.40382 0.00000 -0.04572 + 0.36011 1.15921 2.15592 3.34657 4.26643 4.67710 4.47054 3.44682 + 2.32569 1.70699 2.35063 2.04511 2.85433 2.90676 3.10746 3.48225 + 3.97016 4.27312 4.16723 3.09772 1.42370 0.02179 -0.30678 -0.03255 + 1.65294 2.88664 4.10567 5.16785 5.96730 5.95391 4.93741 3.51176 + 2.68707 2.68290 3.24086 3.62179 3.37052 3.15678 3.36134 4.16275 + 5.07925 5.82716 5.85962 3.19368 1.29808 0.25271 0.39594 1.05331 + 3.81412 5.35486 5.13605 4.60260 4.59158 4.46463 4.15203 3.69566 + 3.71043 4.45180 4.65562 5.07199 2.67441 2.96658 3.25503 4.85581 + 5.99244 4.94014 3.81956 2.68765 1.60044 1.35847 1.88601 2.75772 + 5.65413 4.51620 3.43021 3.07386 2.92666 3.32677 4.07558 4.54241 + 5.30174 5.61506 3.86867 2.36536 2.13112 2.02534 3.47267 5.02105 + 4.11316 3.37138 2.94913 2.70538 2.53778 2.86068 3.56974 4.58051 + 4.77518 3.27951 2.16376 1.58266 1.88553 3.19050 4.62223 5.93455 + 6.45147 4.76056 3.14418 2.16040 2.28057 3.08457 4.21043 3.66258 + 2.75304 2.55511 2.93208 3.39129 3.79930 4.20397 5.39326 5.43581 + 2.56508 1.67090 0.93736 0.58444 1.61800 3.62689 5.59409 6.59827 + 5.74431 4.49610 3.35132 2.97981 3.21941 3.67374 3.27120 2.07994 + 1.77993 2.39478 3.38696 4.25779 4.52985 4.93882 4.69111 3.61049 + 1.26462 0.67708 0.26532 0.30132 2.25604 3.95083 5.47476 5.55371 + 5.10155 4.30674 3.56997 3.25845 3.10422 2.55670 1.57151 0.96413 + 1.40398 2.42204 3.52777 4.13497 4.07309 3.55975 2.87817 1.99484 + 0.55176 0.19150 -0.16597 0.66095 1.62856 3.89802 4.16340 4.26209 + 4.12179 3.65628 3.05515 2.49485 1.99083 0.97560 0.41587 0.60386 + 1.44967 2.34875 2.94070 3.39727 3.25886 2.19662 1.58376 0.96441 + 0.07145 -0.02229 -0.19366 0.09658 1.21303 2.23576 2.78266 2.90510 + 2.93369 2.54580 1.95236 1.33023 0.40661 -0.27184 -0.14720 0.69359 + 1.64189 1.97936 1.87903 1.97864 1.23292 1.13701 0.51871 0.18909 + -0.01947 0.16303 0.09064 0.20405 0.73128 1.39094 1.86213 1.76276 + 1.72469 1.40183 0.86152 0.00437 -0.70891 -0.84671 -0.21411 0.78516 + 1.48423 1.42008 0.97414 0.63572 0.21567 -0.09045 -0.23085 -0.26431 + 0.23170 0.08163 0.01486 0.12279 0.73992 1.49053 1.97444 2.06779 + 1.82022 1.33979 0.43753 -0.54445 -1.08230 -0.91410 -0.20721 0.88163 + 1.56893 1.48896 1.00506 0.51282 0.15495 0.02267 0.02666 0.09482 + 0.47215 0.31619 0.08314 0.12316 1.11375 1.54478 2.34630 3.47237 + 2.30729 1.59681 0.67989 -0.18398 -0.68707 -0.72359 0.03778 1.10405 + 1.73728 1.74294 1.46729 1.10511 0.73306 0.61181 0.71670 0.63161 + 0.30966 0.18354 0.18180 0.27335 0.79409 1.71529 2.92627 3.19017 + 2.77280 1.84258 1.67508 0.27817 -0.33374 -0.33856 0.53257 1.78583 + 2.05954 2.09806 1.90196 1.58767 1.24982 1.00802 0.95508 1.73928 + -0.29951 -0.37951 0.07609 0.41404 0.99608 1.96236 3.00787 4.11080 + 3.25032 2.20114 1.30186 1.64636 0.41136 0.73319 2.05546 2.04893 + 2.01577 2.10384 2.12746 1.90819 1.43544 0.70519 0.34476 0.06379 + -0.95612 -1.18291 1.08842 1.13915 1.84130 2.84517 3.27537 3.80849 + 3.39876 2.39368 1.50634 1.02603 1.00555 0.15970 1.20267 1.90054 + 2.46726 2.63671 1.85362 1.43775 0.79424 -0.01112 -0.44922 -0.70653 +%FLAG CMAP_PARAMETER_05 +%COMMENT Lys CMAP +%FORMAT(8F9.5) + -1.13164 -0.62346 -0.24209 -0.02973 0.48480 1.23694 2.04575 2.29166 + 2.02876 1.62703 1.27127 0.35950 -1.42623 -2.05405 -1.64702 -0.75066 + 0.09360 0.45285 0.21807 -0.18586 -0.73583 -1.13344 -1.19694 -1.19062 + -0.64060 -0.32893 0.02012 0.02118 0.47137 1.14861 1.91913 2.36069 + 2.22229 1.95149 1.20614 -0.57017 -1.75076 -2.03501 -1.58763 -0.64877 + 0.30096 0.62023 0.45342 0.04313 -0.46090 -0.79564 -0.82334 -0.74223 + -0.24137 -0.11209 0.08544 0.05425 0.40854 1.14888 2.02651 2.38762 + 2.30421 2.65775 0.84980 -0.58949 -1.42718 -1.56969 -1.12474 -0.27600 + 0.57048 0.92694 0.75506 0.36313 0.41248 -0.25267 -0.29508 -0.30702 + 0.15784 0.16124 0.21528 0.19125 0.52652 1.17640 2.01822 2.39523 + 2.25697 1.97743 0.85670 -0.29822 -0.64315 -0.71138 -0.30686 0.45873 + 0.81134 1.29671 1.19500 0.84969 0.46708 0.29043 0.21746 0.16500 + 0.89392 0.71753 0.57115 0.43890 0.76485 1.44400 2.31824 2.67943 + 2.58376 2.16804 1.23014 0.82763 -0.51969 -0.73656 -0.32147 0.44935 + 1.20995 1.60156 1.65872 1.41868 1.06413 0.88918 1.40765 0.89807 + 1.39127 1.14527 0.83908 0.62088 1.03137 2.44461 3.61122 3.03639 + 2.93037 2.34216 1.25412 0.23792 -0.42524 -0.47841 0.12423 0.77695 + 1.18318 1.45904 1.64051 1.57482 1.43824 1.35338 1.42422 1.50599 + 1.03940 0.78129 0.55141 0.59044 1.11541 1.93195 3.28135 3.10600 + 2.87709 2.08673 0.97761 -0.07189 -0.55989 -0.15343 0.59138 0.86483 + 1.13795 1.36979 1.55187 1.49198 1.31001 1.19377 1.27168 1.26717 + 0.31570 0.32645 0.43538 0.89961 1.65773 2.35060 2.92667 3.00795 + 2.52682 1.60328 0.45969 0.23113 -0.28882 1.23655 1.15894 1.54835 + 1.88547 1.93525 1.86074 1.72151 1.65432 0.72519 0.57772 0.96376 + 0.01270 0.24227 0.76959 1.64854 2.60813 3.46061 3.69061 3.18918 + 2.22863 1.15788 0.39483 0.21073 0.68040 2.18832 1.80572 2.24818 + 2.70988 2.86880 2.79105 2.41410 2.01156 0.35940 0.00000 0.00646 + 0.35073 0.90201 2.00003 3.08122 4.18056 4.93815 4.63514 3.60238 + 2.75114 1.43898 1.23584 1.46770 2.07827 2.18651 2.36403 2.96159 + 3.67909 4.13912 4.10653 3.18582 1.51669 0.18861 -0.06191 0.04962 + 1.53826 2.58483 4.03310 5.05092 6.11295 6.14815 5.20647 3.81976 + 2.76531 2.50097 2.69420 2.97134 2.67683 2.45579 2.69794 3.72189 + 4.88760 5.73443 5.25225 3.32794 1.50262 0.37839 0.90315 0.93349 + 3.53826 4.97003 5.16584 4.77571 4.97699 4.94501 4.73810 4.10406 + 3.72549 4.11352 4.26970 3.27545 2.15952 2.71722 2.87070 4.71124 + 5.93638 5.07391 4.12244 2.88828 2.59390 1.43687 1.95877 2.78313 + 5.77443 4.46997 3.56825 3.21013 3.29175 3.88737 4.64985 4.86020 + 5.40449 5.58649 3.52430 1.95498 2.12058 1.64132 3.18061 4.76232 + 4.12981 3.48929 3.28524 2.96613 2.82022 3.09461 3.81784 4.80706 + 4.81125 3.11064 2.19879 1.79413 2.26340 3.62230 5.03506 6.19526 + 6.42134 4.54813 2.74872 2.01212 1.67501 2.46391 3.72853 3.32011 + 2.54393 2.64930 4.53517 3.65435 4.11000 4.43677 5.16380 5.36330 + 2.40638 1.42733 0.83483 0.72279 1.83113 3.87438 5.88103 6.54537 + 5.44021 4.07584 2.89687 2.46565 2.57255 2.85706 2.48850 1.54075 + 1.55152 2.30832 3.47039 4.36402 4.62076 5.24285 4.48773 3.44960 + 1.10697 0.48844 0.05413 0.22301 1.84021 4.72185 5.44366 5.35532 + 4.78976 3.85091 3.07756 2.70321 2.41981 1.79438 0.82855 0.52195 + 1.15697 2.28904 3.44297 4.00628 3.92284 3.44623 2.77364 1.79239 + 0.57707 0.21457 0.12757 0.11426 1.68939 3.35709 3.67419 3.88209 + 3.86371 3.22634 2.49647 1.84377 1.15687 0.09138 -0.36996 -0.04023 + 1.02408 2.05775 2.68926 2.74955 2.42499 2.04678 1.55711 1.00697 + 0.05163 0.00299 -0.17038 0.08753 1.18689 2.24636 2.73093 2.76323 + 2.65887 2.14045 1.40562 0.50704 -0.61236 -1.29634 -1.05969 -0.13291 + 0.96124 1.48528 1.46883 1.23917 0.87082 0.57255 0.35700 0.19011 + -0.10233 0.05477 -0.00840 0.09387 0.67551 1.37869 1.72925 1.53428 + 1.31553 0.82680 0.14475 -0.97642 -1.85541 -1.92868 -1.09786 0.07237 + 0.91454 0.97238 0.58573 0.26675 -0.11967 -0.34550 -0.35246 -0.32802 + 0.52160 0.15688 -0.09909 -0.06538 0.41444 1.10954 1.57762 1.58789 + 1.28279 0.65634 -0.44715 -1.51329 -2.08018 -1.90600 -1.01779 0.15231 + 0.91178 1.43560 0.45842 0.08514 -0.30926 -0.44935 -0.25988 -0.05601 + 0.17976 0.55827 -0.34578 -0.27097 0.25407 1.08656 1.80718 1.95109 + 1.58890 0.72912 -0.40442 -1.34979 -1.91684 -1.87165 -0.98156 0.28439 + 0.89099 0.90274 0.79523 0.40138 0.02081 0.00907 0.23280 0.31097 + -0.44608 -0.50159 -0.63851 -0.46568 0.06284 0.89854 2.27207 2.66185 + 2.06789 0.75765 -0.37406 -1.13229 -1.70425 -1.63652 -0.60650 0.74288 + 0.97450 0.83959 0.77625 0.54584 0.23025 0.14501 0.19838 0.06330 + -1.11297 -1.28309 -1.07056 -0.72163 -0.11182 1.28275 1.90578 2.41469 + 1.97238 0.84092 0.11079 -0.94101 -1.15465 -0.94939 0.64316 0.56647 + 0.70355 0.74958 1.63039 0.63838 0.25608 0.41040 -0.50836 -0.80252 + -1.72473 -1.92912 -1.10012 -1.05519 -0.10274 0.90677 2.05671 2.58075 + 2.16667 1.05344 0.03573 -0.05773 -0.58287 -1.40318 -1.58072 -0.87231 + 0.01980 0.51998 0.63491 0.37020 -0.25344 -0.90749 -1.16574 -1.34771 +%FLAG CMAP_PARAMETER_06 +%COMMENT Leu CMAP +%FORMAT(8F9.5) + -0.86694 -0.26821 0.11903 0.36257 0.95573 1.67477 2.43156 2.60365 + 2.27204 1.80613 1.46886 1.61233 -0.96663 -1.49770 -1.08239 -0.09973 + 0.68400 0.98069 0.74771 0.20585 -0.44627 -0.94569 -1.07455 -1.03710 + -0.32646 0.18654 0.61372 0.67096 1.01304 1.68958 2.59064 2.69380 + 2.62711 2.28315 1.55874 -0.12149 -1.21885 -1.44423 -0.97001 -0.05369 + 0.80796 1.12834 0.84158 0.41540 -0.05618 -0.48333 -0.57243 -0.49018 + -0.00270 0.44349 0.67720 0.69907 0.96098 1.51827 2.31922 2.59766 + 2.46815 2.10040 1.01494 -0.35138 -1.06078 -0.51379 -0.69064 0.13405 + 0.94764 1.25044 1.05896 0.70807 1.27955 0.00478 -0.14861 -0.13199 + 0.46773 1.06122 0.84151 0.87321 1.53577 2.26717 2.28379 2.61533 + 2.48323 2.10062 0.99888 -0.16216 -0.70927 -0.70653 -0.29305 0.40855 + 1.21244 1.57878 1.45953 1.15294 0.73992 0.44830 0.51887 0.42642 + 1.08264 1.22032 1.01432 0.92883 1.19777 1.89909 2.63517 2.91989 + 2.71483 2.15712 1.13870 0.10970 -0.35319 -0.45575 -0.07314 0.71696 + 1.39933 1.70190 1.76612 1.54603 1.28907 0.96167 1.05593 0.99887 + 1.28886 1.08719 1.25509 0.61945 1.07490 1.93759 3.19207 3.05501 + 2.85024 2.25228 1.28855 0.30319 -0.32580 -0.33934 0.94330 1.01391 + 1.36742 1.55398 1.68291 1.69903 1.58878 1.35670 1.38167 1.38984 + 0.98482 0.77092 0.58293 0.75254 1.33157 2.19094 2.97361 3.31530 + 2.98261 2.34181 1.68188 0.20860 -0.18920 0.15129 0.97347 1.18438 + 1.41087 2.18263 1.74084 1.83977 2.49337 1.40782 1.29872 1.23230 + 0.48495 0.51375 0.72118 1.16071 2.03516 2.76085 3.33781 3.33714 + 3.21881 1.91348 0.71654 -0.06047 0.05722 0.95499 1.57463 1.97846 + 2.20669 2.25753 2.16240 2.05082 1.46338 0.92763 0.63950 0.52464 + 0.07954 0.44680 1.02424 2.02016 2.99245 3.73027 3.90871 3.36270 + 2.34980 1.21384 0.31676 0.22259 0.86998 1.74017 2.65575 2.56314 + 2.94846 3.04800 2.92362 2.53858 1.53008 0.44000 0.00000 -0.00769 + 0.24993 1.09492 2.17567 3.43132 4.50566 5.05694 4.64546 3.50848 + 2.15393 1.27464 0.97041 1.34987 2.11323 2.30548 2.56683 3.12183 + 3.71616 4.15639 4.02019 3.11381 1.50702 0.51912 -0.20195 -0.08615 + 1.52978 2.82371 4.12062 5.09490 6.15608 6.08176 5.03421 3.52597 + 2.34959 2.18514 2.44731 2.85399 2.64346 2.42082 2.71715 3.68263 + 4.79352 5.66725 5.08137 3.19151 1.34349 0.25042 0.36715 0.82954 + 3.49877 5.10429 4.80281 4.54651 4.68704 4.66098 4.37663 3.68363 + 3.39535 3.95518 3.96235 2.85930 2.21248 2.20453 2.53736 4.31396 + 5.52110 4.69616 3.78755 2.61424 1.52261 1.35018 1.75048 2.53707 + 5.65682 4.15269 3.35229 3.00261 3.08500 3.54523 4.16460 4.62833 + 5.13779 5.01177 3.02054 1.47096 1.36914 1.36431 2.92161 6.08683 + 3.79124 3.26901 3.87628 3.15138 2.56586 2.96443 3.52026 4.83005 + 4.54702 3.10593 2.16146 1.79107 2.10872 3.47796 4.87594 5.92625 + 6.01846 4.12483 2.27314 1.85210 1.40705 2.31574 3.63083 3.28348 + 2.48395 2.41514 2.93210 3.56664 3.83230 4.13078 4.61915 5.21000 + 2.54403 1.68952 0.97521 0.88413 2.02670 4.01998 5.83129 6.49399 + 5.45501 4.03342 2.72981 3.04219 2.43764 2.97586 2.73313 1.73379 + 1.55615 2.30112 3.86657 4.36600 4.57747 4.78312 4.62251 3.65331 + 1.39094 0.80730 0.29380 0.53655 2.14327 4.35364 5.64162 5.52871 + 4.81227 3.89474 3.02138 2.56961 2.36903 1.91970 1.04584 0.61644 + 1.26738 2.48009 3.51320 4.14947 3.98350 3.59513 2.95805 2.05137 + 0.59467 0.26702 -0.00118 0.34338 1.95569 3.71282 4.31538 4.26902 + 3.93382 3.80334 2.45012 1.80769 1.23485 0.28708 -0.16539 0.11408 + 1.10892 2.16939 3.27563 2.90643 2.66635 2.32593 1.63311 1.04332 + -0.00101 -0.07278 -0.15248 0.39936 1.35477 2.58696 2.88424 2.91922 + 2.69118 2.08752 1.30318 0.53921 -0.47040 -1.05688 -0.84349 0.07495 + 1.13508 1.90971 1.60384 1.52061 1.19284 0.82628 0.49692 0.18749 + 0.52653 -0.01117 0.01170 0.35019 0.99208 1.68051 1.85145 1.71415 + 1.38754 0.91039 0.24804 -0.73699 -1.51069 -1.53963 -0.72203 0.43100 + 1.18026 1.23810 0.97321 0.69525 0.29409 -0.04217 -0.12688 -0.18077 + 0.41738 0.42830 0.25395 0.41670 0.84705 1.54378 1.90242 1.75429 + 1.39459 0.87970 -0.19758 -1.19662 -1.65765 -1.41581 -0.57110 0.57555 + 1.30161 1.37911 1.15311 0.73096 0.18428 0.11942 0.12025 0.23185 + 0.51056 0.47767 0.30339 0.39748 0.84570 1.55327 2.29045 2.38960 + 1.92281 1.05703 0.33844 -0.94589 -1.40734 -1.22267 -0.28396 0.91594 + 1.42889 1.47580 1.35177 1.37396 0.53214 0.53898 0.61490 0.64450 + -0.24761 -0.32226 -0.19849 -0.08985 1.01997 1.40580 2.20658 2.50290 + 1.91878 0.83859 -0.21275 -0.98048 -1.44651 -1.19821 0.00869 1.25483 + 1.43243 1.66446 1.63593 0.87150 0.53192 0.38847 0.31803 0.05867 + -0.50737 -1.45363 -0.79190 0.11592 0.23743 1.27007 2.22830 3.43018 + 2.03991 0.82982 -0.28204 -0.30716 -1.28098 -0.47386 0.89069 1.08272 + 1.18900 1.30124 1.20693 0.90441 0.47681 -0.17330 -0.62574 -1.08723 + -1.62255 -1.96136 -0.83933 -0.65406 0.11828 1.42624 2.54120 2.90447 + 2.24826 1.86505 -0.18930 -0.85728 -0.87693 -1.06001 -1.16287 0.46816 + 0.39155 1.80618 1.14253 0.79781 0.04909 -0.40498 -1.27362 -1.36635 +%FLAG CMAP_INDEX +%FORMAT(6I8) + 12 14 16 36 38 6 + 36 38 40 50 52 2 + 50 52 54 74 76 6 + 74 76 78 89 91 4 + 89 91 93 103 105 3 + 103 105 107 110 112 1 + 110 112 114 132 134 5 + 132 134 136 156 158 6 + 156 158 160 170 172 2 + 170 172 174 194 196 6 + 194 196 198 216 218 5 diff --git a/test/Test_Esander_Short/Edpdp.dat.save b/test/Test_Esander_Short/Edpdp.dat.save new file mode 100644 index 0000000000..c087fdc90d --- /dev/null +++ b/test/Test_Esander_Short/Edpdp.dat.save @@ -0,0 +1,11 @@ +#Frame DPDP[total] DPDP[vdw] DPDP[elec] DPDP[gb] DPDP[bond] DPDP[angle] DPDP[dihedral] DPDP[vdw14] DPDP[elec14] DPDP[surf] + 1 -362.4643 -115.9750 -1411.3160 -287.5523 65.3607 131.8731 137.8161 65.0756 1044.0345 8.2191 + 2 -354.7133 -120.2763 -1395.6827 -291.9428 57.7708 157.4151 132.2196 64.1154 1033.1675 8.5001 + 3 -370.7565 -125.1295 -1400.7943 -300.7252 65.6276 138.9934 132.4764 63.6082 1046.7778 8.4092 + 4 -376.7324 -117.7838 -1423.3411 -290.1824 54.0259 147.7710 128.0771 65.6641 1050.8066 8.2300 + 5 -375.7554 -124.8303 -1392.5554 -307.0641 49.4597 139.9179 129.8075 70.3971 1050.8492 8.2632 + 6 -386.0375 -118.8866 -1400.8651 -295.0492 49.2628 142.8182 138.1374 61.6022 1028.5830 8.3598 + 7 -356.8886 -117.6782 -1388.2306 -303.4668 61.8618 150.0429 127.6294 66.5359 1038.1030 8.3141 + 8 -363.6296 -125.5548 -1387.9611 -293.7736 53.1676 155.3169 137.1281 63.5159 1026.4366 8.0948 + 9 -371.4302 -120.7442 -1403.4900 -293.0892 62.9546 134.8385 133.8371 63.1068 1043.1964 7.9598 + 10 -376.8531 -126.2939 -1384.7891 -287.9323 53.8934 142.4284 138.3462 63.0387 1016.3050 8.1505 diff --git a/test/Test_Esander_Short/Esander.dat.save b/test/Test_Esander_Short/Esander.dat.save new file mode 100644 index 0000000000..c74206b91f --- /dev/null +++ b/test/Test_Esander_Short/Esander.dat.save @@ -0,0 +1,4 @@ +#Frame S[total] S[vdw] S[elec] S[bond] S[angle] S[dihedral] S[vdw14] S[elec14] + 1 -18095.5918 2502.5936 -21563.5670 35.4705 93.3672 123.6395 46.9354 665.9690 + 2 -18032.9144 2455.6270 -21457.2687 47.5936 101.2947 125.3715 38.6891 655.7783 + 3 -18096.0464 2518.4931 -21591.4285 41.2026 111.4593 137.7342 43.2846 643.2083 diff --git a/test/Test_Esander_Short/RunTest.sh b/test/Test_Esander_Short/RunTest.sh index 59dde320ed..26ba713011 100755 --- a/test/Test_Esander_Short/RunTest.sh +++ b/test/Test_Esander_Short/RunTest.sh @@ -2,22 +2,65 @@ . ../MasterTest.sh -CleanFiles esander.in gb.dat pme.dat +CleanFiles esander.in gb.dat pme.dat Esander.dat force.crd Edpdp.dat CpptrajEsander.parm7 NoWat.dat +INPUT='-i esander.in' TESTNAME='Energy via sander API short tests (GB/PME)' -Requires sanderlib maxthreads 1 +Requires sanderlib maxthreads 10 -INPUT='-i esander.in' -cat > esander.in <<EOF +UNITNAME='Short libsander tests' +CheckFor maxthreads 1 +if [ $? -eq 0 ] ; then + cat > esander.in <<EOF parm ../Test_Hbond/strip.4lztSc_nowat.parm7 trajin ../Test_Hbond/strip.4lztSc.rst7 esander 4lztSc out gb.dat \ saltcon 1.0 cut 9999.0 gbsa 1 igb 1 ntb 0 esander PME out pme.dat EOF -RunCpptraj "$TESTNAME" -DoTest gb.dat.save gb.dat -DoTest pme.dat.save pme.dat + RunCpptraj "$UNITNAME" + DoTest gb.dat.save gb.dat + DoTest pme.dat.save pme.dat +fi + +# Set to 1 if compiled with -DCPPTRAJ_ESANDER_ENERGY_ORDER +NEWORDER=0 +if [ $NEWORDER -eq 1 ] ; then + SAVEPREFIX='neworder.' +else + SAVEPREFIX='' +fi + +TestPME() { + UNITNAME='Short SANDER energy test, PME' + CheckFor netcdf maxthreads 3 + if [ $? -eq 0 ] ; then + cat > esander.in <<EOF +parm ../tz2.truncoct.parm7 +trajin ../tz2.truncoct.nc 1 3 +esander S out Esander.dat saveforces +trajout force.crd +EOF + RunCpptraj "$UNITNAME" + DoTest "$SAVEPREFIX"Esander.dat.save Esander.dat + DoTest force.crd.save force.crd + fi +} + +TestGB() { + UNITNAME="Short SANDER energy test, GB" + CheckFor netcdf maxthreads 10 + cat > esander.in <<EOF +parm ../DPDP.parm7 +trajin ../DPDP.nc 1 10 +esander DPDP out Edpdp.dat gbsa 1 +EOF + RunCpptraj "$UNITNAME" + DoTest "$SAVEPREFIX"Edpdp.dat.save Edpdp.dat +} + +TestGB +TestPME EndTest exit 0 diff --git a/test/Test_Esander_Short/force.crd.save b/test/Test_Esander_Short/force.crd.save new file mode 100644 index 0000000000..016dc938f8 --- /dev/null +++ b/test/Test_Esander_Short/force.crd.save @@ -0,0 +1,5251 @@ +Cpptraj Generated trajectory + 0.078 3.174 -8.844 0.999 3.431 -8.521 -0.183 2.306 -8.398 -0.593 + 3.841 -8.489 0.098 3.075 -10.322 -0.779 2.538 -10.682 0.153 4.463 + -10.860 -0.841 4.761 -10.526 1.011 4.880 -10.332 0.365 4.499 -12.266 + -0.294 5.139 -12.545 1.247 2.200 -10.778 2.360 2.377 -10.231 1.044 + 1.464 -11.869 0.133 1.489 -12.305 2.104 0.639 -12.432 2.786 0.289 + -11.657 1.487 -0.653 -12.960 0.630 -0.448 -13.602 2.254 -1.127 -13.572 + 1.092 -1.584 -11.914 -0.167 -2.074 -11.499 -1.082 -1.694 -11.928 0.034 + -2.946 -10.443 -0.742 -3.404 -9.987 1.353 -3.275 -10.279 2.009 -4.362 + -9.735 1.326 -5.070 -9.289 3.401 -4.481 -9.806 3.847 -5.364 -9.371 + 4.134 -3.504 -10.495 5.197 -3.695 -10.527 3.468 -2.597 -11.213 4.037 + -1.968 -11.881 2.054 -2.408 -11.171 2.783 1.383 -13.617 2.166 2.071 + -14.421 4.126 1.266 -13.806 4.657 0.696 -13.163 4.842 2.076 -14.754 + 4.205 2.372 -15.588 5.470 3.225 -13.924 6.031 2.847 -13.069 6.498 + 4.029 -14.751 7.339 3.404 -15.055 6.090 4.375 -15.700 6.894 4.869 + -14.181 4.432 4.051 -13.366 3.998 3.452 -12.753 5.829 1.040 -15.377 + 6.244 0.087 -14.670 6.200 1.253 -16.612 5.905 2.125 -17.028 7.210 + 0.481 -17.378 7.429 -0.491 -16.935 6.757 0.161 -18.799 5.848 -0.441 + -18.814 6.574 1.135 -19.254 7.757 -0.663 -19.575 8.538 -0.285 -20.599 + 8.549 0.695 -21.052 9.172 -1.368 -21.151 9.867 -1.368 -21.884 8.950 + -2.481 -20.381 9.509 -3.777 -20.453 10.215 -4.035 -21.228 9.136 -4.737 + -19.512 9.382 -5.788 -19.530 8.308 -4.357 -18.400 7.953 -5.095 -17.696 + 7.701 -3.100 -18.447 6.908 -2.824 -17.768 8.007 -2.073 -19.402 8.442 + 1.297 -17.375 8.539 2.184 -18.181 9.441 1.019 -16.557 9.389 0.318 + -15.832 10.624 1.872 -16.599 10.647 2.530 -17.468 10.541 2.701 -15.339 + 9.657 3.338 -15.335 10.355 2.068 -14.472 11.678 3.650 -15.105 12.625 + 3.111 -15.086 11.634 4.387 -15.907 11.574 4.381 -13.767 11.542 3.693 + -12.715 11.625 5.604 -13.760 11.839 1.063 -16.553 11.951 0.149 -15.675 + 12.806 1.387 -17.464 12.573 2.103 -18.137 14.069 0.715 -17.663 14.448 + 0.992 -18.646 15.148 1.280 -16.726 14.689 1.294 -15.737 15.964 0.557 + -16.716 15.712 2.623 -17.048 15.745 3.019 -18.173 16.266 3.236 -16.029 + 16.166 2.801 -15.123 16.882 4.027 -16.151 13.953 -0.882 -17.641 14.782 + -1.536 -17.018 12.988 -1.522 -18.311 12.253 -1.054 -18.821 12.941 -2.965 + -18.404 12.670 -3.316 -19.400 13.889 -3.490 -18.292 11.995 -3.707 -17.487 + 11.969 -4.976 -17.529 11.364 -2.991 -16.517 11.612 -2.019 -16.399 10.557 + -3.625 -15.474 10.321 -4.645 -15.775 11.443 -3.614 -14.182 12.524 -3.638 + -14.319 11.278 -2.724 -13.574 11.137 -4.841 -13.296 11.618 -4.716 -12.326 + 10.072 -4.839 -13.063 11.519 -6.210 -13.881 11.129 -6.445 -14.871 12.592 + -6.260 -14.068 11.276 -7.393 -13.023 11.807 -8.243 -13.451 11.661 -7.296 + -12.008 9.852 -7.803 -13.078 9.264 -7.152 -12.577 9.520 -7.775 -14.032 + 9.758 -8.715 -12.656 9.238 -2.881 -15.153 9.259 -1.656 -14.960 8.146 + -3.609 -15.005 8.194 -4.595 -15.221 6.987 -3.067 -14.351 6.746 -2.108 + -14.809 5.776 -4.025 -14.351 6.038 -4.983 -13.902 5.011 -3.519 -13.761 + 5.274 -4.348 -15.733 5.266 -5.584 -16.346 5.681 -6.479 -15.908 4.751 + -5.416 -17.609 4.571 -6.148 -18.281 4.225 -4.175 -17.846 3.547 -3.662 + -18.938 3.286 -4.231 -19.818 3.038 -2.398 -18.801 2.536 -1.988 -19.665 + 3.174 -1.653 -17.614 2.601 -0.737 -17.582 4.077 -2.123 -16.683 4.235 + -1.507 -15.810 4.605 -3.440 -16.711 7.322 -2.806 -12.833 7.801 -3.710 + -12.105 7.186 -1.546 -12.469 6.811 -0.968 -13.208 7.428 -1.085 -11.087 + 7.440 -1.889 -10.352 8.856 -0.494 -10.899 9.554 -1.301 -11.123 9.151 + 0.723 -11.755 10.088 1.191 -11.450 9.294 0.338 -12.765 8.434 1.544 + -11.758 9.109 -0.127 -9.568 10.022 -0.353 -9.374 6.336 -0.160 -10.616 + 5.576 0.387 -11.412 6.283 0.017 -9.292 6.958 -0.517 -8.763 5.234 + 0.792 -8.597 4.362 0.764 -9.251 4.850 0.127 -7.266 4.640 -0.921 + -7.478 5.675 0.118 -6.554 3.638 0.807 -6.649 3.602 1.748 -5.710 + 4.360 2.171 -5.069 2.382 2.273 -5.563 2.177 3.099 -5.021 1.505 + 1.505 -6.276 0.087 1.493 -6.257 -0.526 2.206 -5.725 -0.538 0.542 + -7.122 -1.600 0.527 -7.317 0.257 -0.295 -7.984 -0.243 -1.027 -8.600 + 1.673 -0.256 -8.026 2.269 -1.023 -8.497 2.292 0.607 -7.049 5.641 + 2.253 -8.427 6.799 2.484 -8.024 4.727 3.197 -8.589 3.823 2.843 + -8.867 4.877 4.656 -8.500 5.707 4.821 -7.813 5.111 5.335 -9.823 + 4.236 5.372 -10.472 5.447 6.366 -9.717 6.266 4.731 -10.712 6.082 + 3.684 -10.950 6.328 5.107 -11.734 7.719 4.862 -10.069 7.917 5.919 + -9.890 7.755 4.364 -9.100 8.826 4.451 -10.953 8.632 3.545 -11.528 + 8.862 5.271 -11.670 10.132 4.402 -10.278 10.895 4.381 -10.940 10.238 + 5.210 -9.681 10.186 3.611 -9.653 3.613 5.276 -7.856 2.530 4.759 + -8.048 3.690 6.391 -7.216 4.562 6.844 -6.978 2.780 6.591 -6.826 + 5.073 10.420 6.330 5.056 11.200 5.776 4.902 10.749 7.212 6.303 + -7.766 -13.643 5.393 -7.858 -13.360 6.767 -7.465 -12.862 1.908 -2.824 + 16.587 0.980 -2.708 16.789 1.994 -2.532 15.680 2.408 -11.996 7.298 + 2.852 -11.888 6.457 2.186 -11.105 7.568 -3.547 -5.919 8.169 -3.777 + -6.462 7.415 -2.708 -5.524 7.933 11.654 11.583 11.273 10.776 11.939 + 11.410 12.235 12.201 11.715 20.387 15.555 -0.257 20.631 15.023 0.500 + 19.670 15.072 -0.667 -4.502 -16.743 -7.844 -4.860 -17.606 -8.051 -5.080 + -16.401 -7.162 1.743 -1.669 14.012 1.272 -1.072 13.431 1.601 -2.536 + 13.630 9.043 -0.111 14.168 8.650 -0.607 14.886 8.395 0.562 13.959 + 13.962 -5.826 -10.237 13.933 -5.394 -11.091 14.844 -5.652 -9.910 10.789 + -17.471 11.119 11.717 -17.246 11.186 10.773 -18.428 11.135 19.894 11.231 + -4.714 19.711 11.480 -3.808 19.313 10.488 -4.879 -8.080 -10.753 -13.409 + -8.719 -11.347 -13.802 -7.990 -10.043 -14.045 9.102 0.918 3.616 8.432 + 1.594 3.512 9.299 0.636 2.723 -5.119 -14.445 -13.062 -4.933 -13.531 + -13.277 -6.074 -14.497 -13.044 -1.858 6.859 15.005 -1.954 7.576 15.632 + -1.945 6.065 15.534 1.567 1.756 6.444 0.695 1.364 6.479 2.056 + 1.199 5.837 19.389 3.108 6.839 20.003 2.714 6.220 19.941 3.620 + 7.431 2.267 10.389 14.793 2.278 9.627 15.372 3.052 10.292 14.254 + -4.593 10.163 -20.765 -4.029 9.419 -20.975 -4.350 10.834 -21.403 12.120 + 0.860 9.019 11.993 0.035 8.552 13.053 1.051 8.919 1.797 7.255 + -2.931 1.710 6.713 -3.715 1.112 7.919 -3.022 -14.695 13.696 0.533 + -14.652 13.361 -0.362 -15.131 13.003 1.028 8.589 10.066 7.868 8.861 + 10.092 6.951 7.633 10.085 7.835 7.305 -12.870 -1.975 7.185 -12.136 + -1.372 7.065 -13.642 -1.463 -8.020 -6.280 2.815 -8.777 -5.723 2.636 + -7.347 -5.971 2.208 15.568 -14.449 -6.568 16.317 -14.775 -6.069 14.876 + -15.090 -6.408 0.550 18.152 3.669 0.531 17.666 4.493 -0.340 18.074 + 3.325 6.086 15.889 -9.916 6.088 14.932 -9.919 5.175 16.126 -9.742 + 16.952 -15.457 2.430 17.881 -15.404 2.209 16.516 -14.932 1.759 7.663 + 6.021 7.308 7.049 6.722 7.089 7.997 6.258 8.174 18.240 -11.299 + 3.429 17.920 -11.605 4.277 17.699 -10.535 3.230 9.259 13.118 11.703 + 9.200 12.762 12.590 9.549 14.022 11.827 -4.904 5.816 6.204 -4.557 + 6.625 5.828 -5.845 5.856 6.030 15.732 10.019 -1.382 16.418 9.579 + -0.880 14.965 9.453 -1.287 -14.506 15.662 -2.512 -14.534 14.707 -2.567 + -14.967 15.961 -3.296 7.334 -5.247 6.515 6.492 -5.449 6.922 7.580 + -4.398 6.882 11.280 0.864 18.065 11.831 1.625 17.884 11.142 0.459 + 17.208 1.959 7.511 4.507 2.694 7.761 3.947 1.916 6.558 4.434 + 19.871 6.951 6.143 20.281 7.786 6.371 18.943 7.161 6.039 -17.094 + -17.597 -7.408 -17.387 -17.040 -6.687 -16.140 -17.515 -7.402 -12.497 -6.927 + -1.928 -12.419 -6.819 -0.980 -11.668 -7.327 -2.192 12.441 9.669 3.248 + 13.299 9.258 3.350 12.310 10.155 4.062 11.405 1.243 15.009 10.607 + 0.836 14.672 11.560 1.985 14.425 17.400 17.896 0.761 16.951 17.063 + 0.908 18.094 17.913 1.420 13.340 2.725 17.584 14.081 3.040 18.101 + 12.827 3.511 17.396 -7.129 18.474 -16.620 -7.183 19.330 -16.194 -6.917 + 17.867 -15.912 -14.936 14.965 9.803 -15.629 14.528 10.298 -14.181 14.961 + 10.392 9.693 -3.129 15.364 10.231 -2.705 16.032 8.848 -2.683 15.418 + 17.735 7.706 8.044 16.942 7.975 7.579 17.436 7.506 8.931 -17.867 + -0.001 -17.249 -17.189 0.643 -17.453 -18.687 0.433 -17.486 0.230 -22.255 + 7.430 0.928 -21.922 6.866 -0.328 -22.767 6.845 7.225 -17.002 -10.720 + 6.917 -17.420 -9.916 6.440 -16.920 -11.262 2.162 -12.658 -10.264 1.850 + -12.753 -9.364 3.024 -12.252 -10.177 -2.161 18.564 2.941 -2.562 17.695 + 2.923 -2.387 18.950 2.095 -0.602 -14.329 2.309 0.018 -14.342 1.579 + -0.086 -14.030 3.057 1.293 -16.434 -15.245 1.497 -15.949 -14.445 1.843 + -16.032 -15.916 17.594 3.177 -3.075 17.339 3.648 -3.869 17.576 2.254 + -3.328 -2.226 16.799 14.328 -1.313 16.559 14.169 -2.727 16.028 14.061 + 5.388 11.297 8.939 6.035 10.950 9.553 4.607 11.444 9.473 -9.923 + -3.972 5.616 -9.571 -4.704 5.108 -10.537 -3.542 5.021 -15.013 10.820 + 1.236 -15.658 10.258 0.806 -14.175 10.560 0.853 11.100 6.454 -0.045 + 11.359 5.660 0.422 10.222 6.264 -0.374 -5.672 -11.342 -11.671 -6.414 + -11.517 -12.250 -6.071 -11.052 -10.851 20.144 4.431 -2.217 19.459 3.951 + -2.683 20.025 5.341 -2.489 -15.486 6.912 2.116 -15.780 6.947 1.206 + -15.016 6.081 2.185 -15.460 4.508 -10.778 -15.655 3.806 -10.157 -15.046 + 4.064 -11.519 7.198 -15.790 -18.640 6.275 -15.820 -18.890 7.187 -15.718 + -17.686 -6.727 20.237 -2.282 -6.176 19.481 -2.084 -7.620 19.892 -2.271 + -17.215 -1.138 -6.449 -16.302 -1.297 -6.689 -17.717 -1.728 -7.011 7.928 + -14.378 -10.528 8.866 -14.404 -10.715 7.584 -15.183 -10.916 1.202 1.395 + 24.562 0.966 1.371 23.635 2.039 1.859 24.584 1.314 -13.480 -2.645 + 2.023 -12.920 -2.961 0.536 -12.924 -2.679 2.889 21.827 10.403 2.423 + 22.145 9.630 3.063 20.905 10.216 -19.371 -4.708 0.921 -18.658 -5.065 + 1.450 -20.167 -5.032 1.341 -3.732 -10.138 3.736 -3.837 -11.073 3.911 + -2.803 -9.969 3.891 -17.845 13.225 -2.250 -17.534 12.655 -2.953 -18.024 + 14.061 -2.681 10.303 -6.900 13.429 10.826 -6.263 12.942 10.929 -7.573 + 13.694 -4.155 -19.673 -0.734 -4.204 -20.433 -1.314 -5.066 -19.492 -0.501 + -9.056 12.616 -7.904 -8.945 12.852 -6.983 -9.908 12.181 -7.939 -3.998 + 6.676 -8.084 -4.797 7.127 -7.809 -4.042 6.674 -9.041 2.537 -20.442 + 7.582 2.348 -20.542 6.649 2.567 -19.496 7.720 -14.717 -2.732 12.265 + -14.431 -3.635 12.403 -15.590 -2.695 12.656 -2.352 -16.623 2.841 -2.251 + -17.092 2.013 -1.958 -15.765 2.681 4.933 6.378 -19.642 5.478 5.840 + -19.068 5.480 7.135 -19.851 -4.104 19.744 11.857 -4.909 19.758 11.340 + -4.395 19.885 12.758 16.935 -10.998 -14.754 16.907 -11.949 -14.651 16.650 + -10.657 -13.906 20.026 -7.319 -2.531 19.855 -7.363 -1.590 20.546 -6.523 + -2.642 13.402 0.189 19.620 13.617 1.108 19.778 12.600 0.216 19.098 + 4.118 -17.989 8.259 3.796 -18.046 9.159 4.726 -17.250 8.269 8.103 + -11.151 -7.137 8.696 -11.687 -6.612 8.440 -11.226 -8.030 4.628 -20.580 + -2.452 4.045 -19.822 -2.402 4.450 -21.072 -1.651 12.586 -6.163 10.965 + 11.819 -6.616 10.614 12.483 -5.257 10.674 2.642 -10.067 -11.702 3.358 + -10.679 -11.874 2.740 -9.390 -12.371 -4.966 3.484 4.443 -5.154 4.191 + 5.061 -5.442 2.730 4.790 -14.115 -9.614 7.454 -13.869 -9.590 8.379 + -15.010 -9.954 7.452 1.500 -7.219 -7.428 1.997 -7.922 -7.847 0.594 + -7.527 -7.438 -8.012 -14.141 -13.203 -8.023 -15.069 -13.437 -8.789 -13.777 + -13.628 1.518 -16.227 8.194 0.604 -15.949 8.249 1.571 -16.719 7.375 + 13.069 -12.886 4.242 13.801 -12.562 4.767 13.317 -13.782 4.012 13.691 + -15.583 3.220 14.499 -15.788 3.690 13.985 -15.158 2.414 -17.769 -4.365 + -1.343 -17.508 -5.274 -1.198 -18.025 -4.049 -0.476 -2.802 17.249 -8.213 + -3.341 17.788 -8.792 -2.960 17.606 -7.339 -2.947 13.026 3.282 -3.839 + 13.263 3.031 -2.405 13.327 2.552 -19.321 1.561 -14.636 -19.072 0.708 + -14.279 -19.639 1.368 -15.518 -1.382 10.581 2.393 -1.761 11.010 3.161 + -1.208 9.685 2.682 -12.203 4.822 -0.145 -12.165 3.911 -0.435 -11.399 + 5.215 -0.485 16.653 -6.318 9.862 17.498 -5.870 9.820 16.253 -6.002 + 10.672 12.200 16.187 -5.109 12.476 15.516 -4.485 11.867 15.694 -5.859 + -20.676 -8.493 3.125 -20.000 -8.486 3.803 -20.885 -9.420 3.006 16.314 + 12.774 -5.089 15.436 12.511 -5.362 16.490 13.574 -5.585 19.195 -11.129 + -1.752 20.055 -11.491 -1.966 18.934 -11.590 -0.955 -7.217 -16.442 -5.921 + -6.817 -17.279 -5.684 -7.986 -16.681 -6.438 1.912 -5.692 -16.534 2.820 + -5.518 -16.782 1.418 -4.960 -16.905 -5.869 -0.779 -11.598 -5.826 -1.721 + -11.436 -6.096 -0.400 -10.748 4.493 -15.500 -13.589 3.702 -14.975 -13.472 + 4.536 -16.047 -12.805 7.012 -3.776 -2.486 7.353 -3.580 -3.359 7.717 + -4.262 -2.058 -8.272 14.120 4.779 -8.790 14.882 5.035 -7.535 14.115 + 5.390 20.505 6.953 -8.072 20.663 6.371 -7.328 21.010 6.568 -8.788 + 3.628 18.297 -13.887 2.808 18.652 -14.231 3.412 17.399 -13.635 -7.275 + 5.829 18.188 -7.489 5.554 17.297 -7.703 6.680 18.286 -5.968 19.152 + -5.508 -6.662 18.836 -4.930 -6.151 20.086 -5.612 9.453 -16.806 4.290 + 9.505 -17.596 3.751 10.141 -16.919 4.946 -3.659 -9.096 0.917 -2.924 + -8.874 0.344 -3.704 -8.371 1.540 1.961 10.750 1.839 1.777 9.871 + 1.509 1.608 10.751 2.729 11.773 -10.785 -14.224 12.577 -10.301 -14.033 + 11.937 -11.196 -15.073 9.933 -13.072 -6.261 9.290 -13.643 -5.841 10.689 + -13.092 -5.675 -15.452 2.951 0.573 -15.471 1.994 0.584 -16.095 3.196 + -0.092 -7.376 18.712 3.633 -6.482 18.434 3.435 -7.928 18.013 3.282 + -1.741 21.452 -7.928 -1.315 21.584 -8.775 -2.517 22.012 -7.959 13.252 + -6.368 -5.507 13.915 -7.057 -5.469 12.664 -6.560 -4.776 3.187 -11.535 + 4.343 3.163 -12.418 3.974 4.049 -11.197 4.099 5.270 8.700 -5.857 + 4.580 9.344 -6.021 5.608 8.926 -4.990 2.361 -17.689 1.190 1.877 + -17.837 2.003 3.047 -17.066 1.429 11.324 -5.975 4.445 10.575 -6.447 + 4.808 11.553 -5.333 5.117 -1.980 -2.503 -5.069 -2.181 -2.958 -5.887 + -1.084 -2.186 -5.186 -6.166 -23.639 -9.157 -6.263 -22.719 -9.404 -5.964 + -24.087 -9.978 6.871 22.728 -2.733 6.919 21.850 -3.111 7.538 22.730 + -2.047 13.628 0.154 -10.940 14.333 0.758 -10.706 13.176 0.583 -11.666 + 6.707 8.329 11.090 6.110 8.046 10.397 6.769 9.277 10.980 14.180 + 6.252 5.802 13.745 5.524 5.358 15.004 6.364 5.328 -13.357 7.614 + 13.691 -13.685 7.612 12.791 -12.675 6.943 13.698 7.863 -15.424 18.611 + 8.741 -15.745 18.405 7.316 -16.209 18.615 8.717 4.629 0.115 8.361 + 3.742 0.160 8.019 5.185 0.462 8.687 -4.783 -0.453 8.180 -5.562 + -0.228 8.832 -4.341 0.383 -12.555 -3.697 -15.261 -11.861 -3.138 -15.613 + -12.243 -3.946 -14.391 12.251 -11.558 -10.850 13.195 -11.619 -11.001 12.126 + -11.918 -9.972 8.707 -18.186 -0.534 8.124 -18.879 -0.844 8.541 -17.451 + -1.123 13.728 3.863 -1.121 14.077 4.517 -1.727 12.913 3.570 -1.529 + -8.978 -1.210 -19.059 -8.255 -0.947 -19.629 -8.981 -2.166 -19.102 5.350 + -11.553 0.830 5.714 -10.924 0.207 4.986 -12.249 0.283 -20.167 -1.921 + 9.091 -19.660 -1.174 8.772 -21.023 -1.553 9.310 -1.172 21.427 13.538 + -0.954 21.278 12.618 -0.858 22.313 13.719 -18.231 14.946 4.596 -18.930 + 15.490 4.959 -18.468 14.053 4.846 -11.790 -6.796 5.907 -11.745 -6.076 + 6.537 -12.725 -6.977 5.817 -9.757 -11.650 3.798 -10.397 -12.024 3.194 + -9.426 -10.873 3.347 9.798 -14.107 -2.625 9.318 -14.914 -2.437 9.116 + -13.464 -2.820 9.964 -7.766 -7.499 10.670 -8.164 -8.009 10.411 -7.329 + -6.774 7.147 -2.737 7.434 7.065 -2.100 6.723 7.636 -2.275 8.115 + 15.168 -13.269 1.577 15.335 -12.818 0.750 14.398 -12.829 1.939 -3.953 + 10.090 8.997 -4.250 10.385 8.136 -3.747 10.897 9.469 -9.889 10.856 + 18.153 -10.224 11.148 17.305 -10.390 10.065 18.349 -18.672 -13.070 10.551 + -19.109 -12.250 10.780 -19.152 -13.393 9.788 21.289 -11.465 3.713 20.374 + -11.744 3.689 21.696 -11.914 2.972 16.458 -4.234 0.909 16.646 -5.030 + 0.411 15.516 -4.272 1.074 -13.332 -15.332 -3.682 -12.874 -15.949 -3.112 + -12.944 -15.470 -4.546 15.213 9.206 3.137 15.599 9.481 3.968 15.392 + 8.266 3.089 5.498 -13.962 -8.490 6.453 -13.920 -8.433 5.299 -14.898 + -8.482 -2.390 2.736 20.976 -3.269 3.046 20.755 -2.348 2.796 21.930 + 15.983 6.242 3.653 15.516 5.772 2.962 16.710 5.665 3.886 -11.814 + 16.676 -9.829 -12.570 17.202 -10.089 -11.125 16.926 -10.445 18.383 8.248 + 3.757 17.717 7.572 3.630 19.007 8.106 3.046 -14.612 4.696 19.130 + -14.840 5.612 19.289 -14.451 4.650 18.187 14.991 10.888 9.316 14.170 + 11.345 9.133 14.769 10.265 10.007 11.789 -13.612 -0.975 11.286 -14.026 + -0.273 11.242 -13.715 -1.754 -3.761 3.206 -7.005 -4.501 3.203 -6.398 + -3.061 3.650 -6.526 -18.880 -7.035 -3.136 -18.615 -7.344 -2.270 -19.436 + -6.276 -2.960 -10.999 -2.893 -7.594 -10.264 -3.431 -7.301 -10.806 -2.702 + -8.512 10.515 -2.015 -5.163 10.097 -2.692 -4.631 10.900 -1.414 -4.526 + -20.636 -11.502 -2.677 -20.038 -11.000 -3.231 -20.062 -12.022 -2.115 9.706 + 5.968 -4.372 9.331 6.822 -4.583 9.356 5.760 -3.505 5.167 -7.926 + -5.113 6.052 -7.868 -4.753 5.275 -8.400 -5.938 9.303 -18.256 7.100 + 10.124 -17.959 7.491 9.565 -18.676 6.281 12.186 12.024 -11.792 13.096 + 11.881 -12.053 12.197 11.951 -10.837 18.885 -8.440 -4.769 19.299 -8.261 + -3.924 19.064 -9.366 -4.932 8.375 6.088 13.566 9.033 5.429 13.343 + 7.539 5.629 13.482 -17.194 -6.684 -5.116 -16.520 -6.749 -4.440 -18.021 + -6.719 -4.635 3.863 -10.177 11.162 2.936 -9.939 11.181 3.865 -11.134 + 11.178 5.777 22.814 8.803 6.062 22.059 9.318 6.128 23.570 9.273 + -19.587 -8.501 -0.637 -20.251 -7.846 -0.421 -20.075 -9.203 -1.068 0.758 + -9.842 8.134 1.216 -9.527 7.355 -0.159 -9.614 7.981 13.166 8.084 + -1.150 12.586 7.464 -0.707 14.008 7.631 -1.199 -3.261 -6.135 4.857 + -3.323 -5.213 4.609 -4.154 -6.377 5.104 4.525 1.457 8.247 5.214 + 1.991 8.643 3.716 1.772 8.649 19.306 -14.236 -0.140 19.387 -14.665 + -0.992 19.541 -14.914 0.493 -6.697 1.449 1.761 -6.743 2.192 2.363 + -5.760 1.313 1.620 -5.384 -15.821 13.880 -5.992 -15.521 14.556 -4.883 + -16.519 14.302 18.309 -3.178 -13.098 17.415 -3.052 -12.780 18.778 -2.396 + -12.808 2.447 18.626 -5.910 1.643 19.125 -6.059 2.278 18.136 -5.106 + 0.673 -1.044 3.118 1.141 -0.228 2.941 -0.160 -0.765 3.498 -7.684 + -5.722 -3.814 -8.262 -5.026 -4.125 -6.801 -5.376 -3.943 -0.129 -5.441 + 6.861 -0.206 -6.190 6.270 0.575 -5.682 7.463 19.151 -5.340 9.462 + 19.925 -4.879 9.787 19.413 -5.670 8.602 16.085 -5.478 12.932 15.887 + -6.356 13.255 16.697 -5.118 13.574 11.130 8.745 8.160 11.441 8.926 + 9.047 10.217 9.032 8.163 7.813 -16.286 -2.338 7.180 -15.772 -1.836 + 7.278 -16.910 -2.829 11.668 -12.020 -8.316 11.955 -12.933 -8.303 11.088 + -11.940 -7.559 14.724 9.397 11.407 14.417 10.003 12.081 13.967 8.842 + 11.220 16.405 -10.446 -2.526 16.360 -9.590 -2.101 17.313 -10.521 -2.820 + -19.618 4.691 13.396 -20.223 4.193 13.947 -19.608 4.219 12.564 -2.478 + -5.636 -0.330 -1.791 -5.100 -0.726 -2.279 -5.627 0.606 -13.430 9.818 + -6.465 -14.225 9.539 -6.919 -13.158 9.050 -5.963 4.170 4.918 -4.615 + 4.994 5.011 -5.092 4.404 5.075 -3.700 -8.822 11.701 13.891 -8.735 + 11.810 14.838 -9.101 12.560 13.576 8.586 13.859 8.977 8.977 13.740 + 9.842 9.283 13.624 8.364 20.684 10.679 3.329 21.374 11.284 3.058 + 20.721 10.685 4.286 -15.704 -13.478 7.968 -15.992 -14.178 8.554 -15.156 + -12.917 8.517 5.536 -3.652 -0.353 6.135 -4.070 0.265 5.981 -3.715 + -1.198 -13.320 13.028 -9.067 -13.037 12.845 -9.963 -13.953 13.740 -9.157 + -16.983 2.777 -1.664 -17.734 3.363 -1.763 -16.872 2.382 -2.529 13.712 + -1.216 -6.256 14.186 -0.525 -6.719 12.830 -1.191 -6.628 15.353 -13.690 + -9.039 15.386 -13.963 -8.122 14.568 -14.114 -9.387 -6.063 7.126 -2.110 + -6.968 7.099 -2.420 -6.073 6.625 -1.295 15.731 10.350 5.944 15.654 + 11.258 6.239 15.464 9.829 6.702 20.495 12.553 0.233 19.956 12.286 + 0.978 21.346 12.146 0.395 3.691 6.624 -12.839 4.137 5.835 -13.147 + 2.778 6.499 -13.098 12.048 9.588 -3.680 12.495 9.216 -2.920 11.465 + 10.253 -3.314 20.011 2.385 -16.232 19.665 1.494 -16.266 19.335 2.887 + -15.777 9.275 0.480 6.227 9.862 1.196 6.467 9.216 0.528 5.272 + -4.584 4.526 1.972 -4.068 5.212 2.398 -4.707 3.863 2.651 0.627 + -1.413 -4.910 0.536 -0.563 -5.341 1.528 -1.423 -4.587 6.908 -4.070 + 2.119 6.270 -4.282 2.800 7.638 -3.668 2.591 -18.545 -12.476 -1.385 + -17.818 -11.980 -1.760 -18.399 -12.439 -0.440 -19.280 -2.292 -8.145 -19.450 + -3.229 -8.043 -20.044 -1.960 -8.615 -17.036 10.161 -0.892 -16.835 10.556 + -1.740 -16.881 9.225 -1.021 14.351 -7.839 -2.668 14.835 -7.023 -2.794 + 14.179 -7.873 -1.727 14.682 13.218 -0.502 15.333 13.209 -1.204 14.958 + 12.518 0.090 -6.399 -15.841 4.839 -6.660 -14.924 4.754 -7.221 -16.330 + 4.791 4.928 -8.743 9.097 5.082 -9.380 8.400 4.469 -9.238 9.776 + 8.147 24.176 -0.214 9.096 24.092 -0.305 7.930 23.635 0.545 10.280 + -16.792 -8.278 9.622 -16.787 -7.583 10.184 -15.941 -8.705 3.909 -14.491 + 18.051 4.795 -14.197 17.839 3.340 -13.945 17.508 -1.709 -7.739 -14.359 + -1.487 -7.407 -15.229 -1.041 -7.367 -13.783 -20.585 10.172 5.914 -21.159 + 9.892 6.626 -20.127 9.375 5.647 6.635 -10.396 11.764 5.914 -10.007 + 11.269 6.323 -10.411 12.669 -10.833 2.555 22.902 -10.560 2.255 22.035 + -11.213 3.420 22.747 6.020 -10.401 17.746 5.089 -10.598 17.851 6.125 + -9.529 18.126 -9.790 -10.264 14.489 -10.026 -10.136 13.570 -8.986 -10.784 + 14.459 -2.252 14.089 16.496 -2.721 14.921 16.424 -2.747 13.487 15.941 + 15.958 -1.712 -1.753 15.118 -1.868 -1.321 16.329 -0.961 -1.291 -9.158 + 5.657 22.206 -8.888 6.562 22.054 -10.101 5.712 22.364 -7.564 4.497 + 20.597 -7.617 4.706 19.665 -8.266 5.010 20.998 15.057 14.324 10.426 + 15.416 15.202 10.558 15.764 13.839 10.000 16.985 -6.108 -1.032 16.737 + -7.032 -1.070 16.437 -5.686 -1.694 -7.878 15.437 -1.524 -8.401 14.888 + -2.110 -7.011 15.461 -1.929 -5.517 -13.050 -7.980 -5.529 -13.715 -8.668 + -4.871 -12.409 -8.276 14.355 -4.238 -7.006 13.739 -4.833 -6.579 14.314 + -3.436 -6.484 7.844 -8.371 -8.911 7.979 -8.708 -9.797 8.707 -8.423 + -8.501 -5.308 -15.264 -0.726 -5.291 -14.340 -0.479 -6.107 -15.605 -0.324 + -14.302 -18.617 -3.869 -13.453 -18.791 -3.463 -14.787 -19.436 -3.769 -16.830 + 2.006 -18.692 -16.472 1.614 -19.488 -17.382 2.723 -19.005 19.427 -12.999 + 5.490 19.892 -13.445 4.782 18.853 -13.669 5.859 -1.151 4.189 -3.906 + -0.232 4.216 -4.172 -1.559 4.914 -4.379 14.633 -14.965 -1.451 13.676 + -14.962 -1.437 14.883 -14.240 -0.877 -11.055 -17.851 10.601 -10.399 -17.658 + 11.271 -10.644 -17.586 9.779 14.880 11.484 1.602 14.604 12.064 2.311 + 14.932 10.618 2.007 6.274 18.074 -1.425 5.834 18.523 -0.703 5.574 + 17.879 -2.048 7.252 -6.931 -0.159 7.638 -7.745 0.164 7.262 -7.022 + -1.112 -8.190 17.979 -4.189 -8.994 18.163 -4.673 -8.434 18.085 -3.270 + -15.360 -6.590 -2.693 -16.039 -6.883 -2.086 -14.537 -6.827 -2.264 -15.473 + 2.245 -15.282 -15.104 1.996 -16.129 -15.148 3.132 -15.130 -6.260 9.441 + -3.723 -6.732 9.980 -3.088 -5.946 8.693 -3.216 10.370 -2.654 1.166 + 11.156 -3.183 1.302 10.702 -1.796 0.901 7.252 -4.254 -7.951 6.774 + -4.908 -8.461 8.012 -4.037 -8.492 -7.265 18.795 17.118 -7.207 18.111 + 16.451 -8.174 18.762 17.415 -15.269 -3.903 -2.936 -15.930 -3.830 -2.248 + -15.165 -4.845 -3.070 13.846 -2.741 -11.834 13.831 -2.330 -10.970 13.216 + -2.237 -12.350 -15.145 16.364 -6.874 -14.204 16.413 -6.705 -15.218 15.847 + -7.676 5.069 21.883 -0.081 5.539 21.957 -0.912 4.253 22.363 -0.224 + 13.960 -7.234 5.491 14.190 -6.504 6.065 13.020 -7.133 5.340 16.088 + -3.579 5.490 16.373 -4.492 5.454 16.429 -3.190 4.685 19.927 -2.242 + 2.147 19.420 -2.483 1.372 20.418 -1.465 1.880 -2.608 -14.041 -0.002 + -2.620 -14.985 -0.160 -2.586 -13.959 0.952 0.786 -17.507 -7.489 0.105 + -17.113 -8.034 0.349 -17.698 -6.659 7.764 -1.190 16.664 7.032 -1.523 + 16.145 7.495 -0.307 16.918 -7.981 -11.268 -4.147 -7.812 -12.125 -4.537 + -7.113 -10.930 -3.927 19.816 2.821 -9.777 20.174 2.099 -9.260 20.585 + 3.307 -10.075 15.834 1.337 0.935 16.408 0.716 1.382 14.953 1.100 + 1.225 19.162 11.402 7.792 19.909 10.871 8.068 19.083 11.235 6.853 + -6.358 -0.418 -1.854 -5.742 0.297 -1.697 -6.035 -0.842 -2.650 13.435 + -3.049 -9.165 13.975 -3.461 -8.491 12.558 -3.017 -8.782 -19.790 -10.383 + 10.781 -20.051 -10.249 9.870 -20.449 -9.912 11.290 5.990 3.110 -2.557 + 6.029 2.522 -3.311 6.530 3.859 -2.808 -15.145 0.297 -13.547 -15.424 + 0.992 -14.142 -15.955 -0.005 -13.135 12.336 7.054 13.478 12.192 7.226 + 14.408 11.813 6.274 13.295 7.006 -14.175 11.439 7.867 -14.161 11.022 + 7.189 -14.363 12.360 2.667 -6.977 23.077 2.196 -6.909 22.246 3.583 + -6.821 22.846 -10.814 9.331 1.670 -10.393 8.539 2.005 -11.554 9.477 + 2.260 -17.916 -12.075 -8.404 -17.662 -12.989 -8.277 -17.299 -11.743 -9.056 + 6.292 -14.742 -0.121 5.339 -14.667 -0.085 6.566 -14.765 0.796 5.834 + 2.880 20.915 6.616 2.855 20.364 5.485 1.990 20.876 -3.647 -3.867 + 18.828 -3.556 -4.819 18.863 -4.269 -3.661 19.525 -17.173 -3.143 9.627 + -16.858 -2.600 8.904 -17.412 -2.516 10.310 3.144 11.786 -14.712 3.775 + 12.224 -15.283 2.308 11.866 -15.171 -1.474 -9.579 -6.001 -1.515 -9.088 + -6.822 -0.546 -9.791 -5.896 -18.736 -7.697 -7.819 -19.300 -7.447 -7.087 + -18.285 -8.484 -7.516 18.030 3.197 1.420 17.872 3.315 2.357 17.362 + 2.570 1.142 8.306 -17.860 -13.098 7.848 -17.100 -13.458 8.229 -17.760 + -12.150 -14.459 -18.284 4.632 -14.113 -19.168 4.507 -13.695 -17.760 4.876 + -17.924 7.973 11.016 -18.148 7.676 11.898 -17.223 7.385 10.736 4.596 + -1.565 22.873 4.567 -1.568 23.829 4.809 -2.468 22.637 17.123 -5.943 + 5.523 17.315 -6.614 4.867 17.892 -5.939 6.093 -11.847 -3.152 3.760 + -12.737 -3.504 3.735 -11.960 -2.208 3.646 -18.806 -1.797 11.528 -19.147 + -2.292 12.274 -19.453 -1.932 10.836 -19.942 -5.960 11.884 -20.421 -5.222 + 11.506 -19.686 -5.658 12.756 -16.368 3.928 10.869 -17.313 4.031 10.977 + -16.263 3.051 10.500 -20.173 -2.663 -2.816 -19.517 -3.099 -2.273 -19.935 + -2.897 -3.713 20.175 2.534 -0.313 20.289 3.321 -0.846 19.602 2.810 + 0.402 2.504 16.620 -4.071 2.991 16.913 -3.301 3.114 16.046 -4.536 + -9.827 -10.771 -11.330 -10.519 -11.332 -11.679 -9.252 -10.607 -12.078 -12.006 + 15.122 -7.587 -12.334 14.365 -8.072 -11.803 15.770 -8.263 -15.408 -15.026 + 3.710 -14.944 -14.652 4.460 -15.984 -15.689 4.092 1.406 5.004 -5.050 + 1.117 5.811 -5.477 2.362 5.046 -5.082 11.933 -5.187 7.229 11.487 + -5.254 8.073 12.862 -5.275 7.440 -7.523 -10.188 9.426 -7.139 -11.059 + 9.524 -7.202 -9.698 10.183 17.767 2.112 17.114 17.784 1.270 16.659 + 18.111 1.920 17.986 10.775 15.316 -7.369 11.083 15.352 -8.274 10.089 + 14.648 -7.377 -20.548 7.451 13.088 -21.357 7.321 13.584 -20.149 6.582 + 13.049 0.159 7.572 10.492 -0.350 6.838 10.836 0.807 7.165 9.917 + 16.801 9.863 -10.376 16.830 10.805 -10.212 15.883 9.683 -10.582 2.838 + -5.413 3.222 3.555 -5.841 2.753 2.339 -4.964 2.539 -5.342 0.657 + 20.949 -5.982 0.749 21.654 -4.619 1.229 21.206 -8.425 -0.481 -4.519 + -8.965 -1.262 -4.401 -7.527 -0.791 -4.407 -14.798 -0.106 -8.930 -13.912 + 0.205 -8.743 -14.676 -0.811 -9.565 10.933 3.044 2.058 10.177 3.487 + 2.443 10.672 2.865 1.155 0.193 -4.091 -17.495 -0.137 -4.105 -18.393 + -0.279 -3.370 -17.078 20.619 7.183 -3.556 21.457 7.445 -3.174 19.989 + 7.811 -3.205 17.077 -16.692 -1.441 17.845 -16.232 -1.781 16.344 -16.105 + -1.629 5.876 -9.514 -7.296 6.510 -10.166 -6.998 6.290 -9.108 -8.057 + 9.278 2.347 -8.307 8.368 2.445 -8.027 9.311 1.482 -8.716 8.321 + 6.090 9.938 7.751 5.603 10.533 8.495 6.913 10.395 21.080 5.711 + -5.661 21.519 4.978 -5.229 20.958 6.359 -4.967 -9.943 -2.341 -2.566 + -10.761 -2.056 -2.158 -9.323 -2.405 -1.839 9.733 -10.790 -1.818 9.487 + -10.874 -0.897 10.668 -10.994 -1.836 -6.131 8.569 -10.466 -5.722 9.230 + -11.025 -5.591 7.787 -10.586 -16.182 2.648 19.804 -17.011 2.827 19.361 + -15.684 3.461 19.719 5.064 -18.886 4.020 5.641 -19.631 4.189 4.848 + -18.548 4.889 16.702 -9.691 6.133 15.806 -9.920 5.886 16.604 -9.162 + 6.925 12.333 7.310 -11.959 11.521 7.638 -11.573 12.058 6.574 -12.506 + -3.915 -5.342 -14.432 -2.991 -5.100 -14.497 -3.986 -6.152 -14.936 -18.074 + 11.223 -6.045 -17.607 12.059 -6.050 -18.825 11.364 -6.622 8.282 -6.670 + -15.227 7.573 -7.228 -14.909 8.480 -7.009 -16.100 14.755 8.665 -4.952 + 13.798 8.668 -4.973 14.983 7.839 -4.526 -16.904 10.531 12.155 -16.012 + 10.186 12.120 -17.452 9.810 11.847 14.717 8.699 -12.152 13.837 8.433 + -11.886 15.104 7.905 -12.522 3.117 -18.130 -4.435 2.714 -17.412 -3.947 + 2.520 -18.868 -4.311 -11.122 16.647 -4.414 -11.233 16.572 -3.467 -11.013 + 15.745 -4.715 -19.210 5.225 -3.446 -19.082 6.170 -3.530 -19.591 5.112 + -2.575 -16.591 -10.215 -2.368 -16.489 -9.266 -2.302 -16.767 -10.500 -1.471 + 13.434 -2.152 -0.231 13.343 -1.326 0.244 13.548 -2.811 0.454 17.779 + 5.421 -13.896 18.720 5.471 -13.724 17.714 5.329 -14.847 6.770 5.543 + -5.606 7.468 5.636 -4.958 7.031 6.121 -6.323 -11.587 12.839 12.950 + -11.698 11.945 13.274 -11.288 13.334 13.712 16.313 -5.661 -8.451 15.817 + -6.450 -8.672 15.871 -5.309 -7.678 19.916 -5.390 6.753 20.552 -4.869 + 7.243 20.000 -5.084 5.850 -3.971 -2.409 5.423 -4.245 -1.503 5.562 + -3.446 -2.622 6.195 -12.127 -10.581 -9.223 -11.314 -10.927 -9.591 -11.869 + -9.764 -8.797 15.580 -7.882 -15.552 16.500 -8.090 -15.392 15.572 -6.940 + -15.722 8.292 -9.548 -4.036 8.812 -9.385 -4.823 8.862 -10.077 -3.478 + -10.427 5.623 9.721 -9.667 5.902 9.211 -10.184 5.801 10.630 15.254 + -11.288 -10.227 15.426 -12.167 -9.889 15.806 -10.714 -9.696 -6.720 -1.977 + -14.657 -6.068 -2.103 -13.968 -6.839 -1.028 -14.704 -2.653 7.697 18.978 + -3.052 6.870 18.711 -2.069 7.460 19.699 16.086 -8.410 -5.636 16.895 + -8.121 -5.214 16.140 -9.366 -5.630 -5.403 17.424 2.795 -4.679 16.878 + 3.101 -5.561 17.132 1.898 -20.836 -12.737 0.953 -20.958 -13.686 0.973 + -21.631 -12.401 0.538 11.378 -9.093 -3.670 12.288 -9.392 -3.656 10.970 + -9.533 -2.924 -0.394 -15.131 -10.109 -0.548 -15.342 -11.030 -0.924 -15.765 + -9.626 -18.901 -14.711 2.893 -18.447 -14.026 2.401 -18.653 -15.525 2.456 + 14.450 -8.413 9.231 13.920 -7.701 9.589 15.347 -8.195 9.484 -4.221 + 6.690 -10.908 -5.007 6.156 -11.027 -3.566 6.282 -11.475 -9.577 6.928 + 6.168 -10.227 6.836 5.471 -9.684 7.827 6.478 -6.206 1.743 6.016 + -7.013 1.366 5.667 -6.472 2.163 6.834 17.086 -9.985 -8.713 17.698 + -9.380 -8.294 17.555 -10.818 -8.744 15.294 -5.053 -16.794 14.363 -4.853 + -16.694 15.650 -4.984 -15.908 6.143 11.596 13.972 6.970 11.723 14.437 + 5.601 12.339 14.239 18.306 -0.008 -16.215 18.086 -0.115 -15.290 17.805 + -0.691 -16.661 19.168 -5.329 -5.231 18.703 -4.839 -4.553 19.384 -6.165 + -4.817 9.016 16.512 -4.857 9.170 17.422 -4.603 9.879 16.184 -5.108 + 6.056 -10.468 14.820 5.507 -11.199 14.536 6.107 -10.563 15.771 4.554 + 22.801 -9.455 4.217 22.600 -10.327 4.845 21.957 -9.110 -11.839 -7.750 + 11.144 -12.274 -7.812 11.994 -12.553 -7.778 10.507 -19.845 2.093 9.077 + -19.408 1.248 9.178 -20.740 1.937 9.379 17.571 -8.520 -11.117 18.495 + -8.681 -11.310 17.403 -9.016 -10.316 -0.710 12.897 0.866 -0.129 12.592 + 0.169 -0.988 12.098 1.313 1.105 -21.393 -11.287 0.472 -22.006 -11.660 + 0.624 -20.945 -10.592 -20.487 -3.219 -15.671 -20.674 -3.704 -14.867 -21.338 + -2.880 -15.949 15.589 4.708 -11.593 15.039 5.379 -11.998 16.483 4.961 + -11.823 -19.228 -15.949 -8.595 -18.437 -16.253 -8.151 -19.684 -15.421 -7.939 + -10.673 9.076 15.876 -11.427 9.659 15.963 -10.163 9.449 15.157 -18.197 + -5.598 -14.846 -17.881 -5.066 -15.576 -18.658 -4.978 -14.281 6.909 2.213 + -5.277 6.863 2.499 -6.190 7.250 1.320 -5.323 12.338 -10.977 -1.593 + 12.384 -11.861 -1.229 13.057 -10.940 -2.224 2.781 -7.539 16.703 2.556 + -6.977 15.962 3.681 -7.298 16.922 -12.331 3.643 -14.339 -12.164 3.234 + -15.188 -11.497 3.581 -13.875 -19.686 -1.729 0.886 -20.485 -2.223 0.701 + -19.702 -1.594 1.834 9.444 -12.787 2.076 10.157 -13.420 1.991 8.651 + -13.323 2.109 11.255 2.515 5.921 12.126 2.884 5.773 10.657 3.248 + 5.774 -0.092 -9.606 12.554 -1.027 -9.402 12.557 0.256 -9.119 11.807 + -14.396 -2.164 -13.080 -14.856 -1.405 -13.438 -13.990 -2.579 -13.840 -5.102 + 19.746 14.337 -4.752 20.002 15.190 -6.007 20.059 14.346 18.658 -11.762 + 0.693 18.791 -12.710 0.708 18.517 -11.525 1.609 18.286 6.741 13.729 + 17.881 6.805 12.864 17.985 5.900 14.073 0.474 -7.848 -18.185 -0.281 + -7.419 -17.781 0.724 -7.266 -18.903 -16.379 -10.487 -10.056 -15.917 -9.698 + -9.773 -16.867 -10.214 -10.833 15.948 -11.752 -6.064 15.299 -11.529 -6.732 + 15.971 -12.709 -6.062 4.165 3.418 1.097 3.752 2.590 0.850 4.038 + 3.477 2.043 -7.350 -0.523 -21.245 -7.986 0.191 -21.217 -6.832 -0.354 + -22.032 10.084 19.151 -9.611 10.126 18.828 -8.710 9.170 19.028 -9.867 + -2.089 -3.509 7.129 -1.729 -2.782 7.636 -1.445 -4.211 7.224 -10.911 + -12.450 6.723 -10.330 -12.280 5.981 -10.920 -11.629 7.214 -4.818 5.754 + 16.161 -4.990 6.646 15.857 -3.864 5.699 16.217 18.844 -5.169 -7.948 + 17.970 -5.412 -8.252 18.808 -5.281 -6.998 6.202 -7.572 14.340 6.489 + -8.449 14.595 6.634 -7.413 13.501 -12.176 -13.751 10.557 -11.242 -13.627 + 10.727 -12.489 -12.883 10.303 -6.082 -17.679 11.883 -5.324 -17.896 11.340 + -5.887 -16.809 12.230 -2.844 -7.271 14.465 -3.192 -8.089 14.822 -2.709 + -7.454 13.535 9.272 -12.051 5.189 9.868 -12.782 5.352 9.181 -12.023 + 4.237 -5.331 -16.257 7.373 -6.177 -16.422 7.790 -5.551 -16.010 6.475 + -1.585 1.096 0.411 -0.972 1.467 1.044 -2.029 1.856 0.033 -8.187 + 12.834 18.013 -8.735 12.052 18.070 -8.445 13.364 18.767 -11.233 3.249 + 5.552 -12.001 3.819 5.502 -10.914 3.357 6.448 5.417 9.306 15.366 + 5.309 8.556 14.781 5.641 10.032 14.785 -2.945 3.332 -0.194 -2.191 + 3.854 -0.467 -3.053 3.536 0.735 -14.619 4.354 -4.486 -13.892 4.096 + -3.918 -14.296 4.202 -5.374 -7.099 -0.315 13.941 -6.967 -1.215 14.236 + -7.987 -0.097 14.225 -16.519 -7.357 7.502 -16.790 -8.275 7.481 -16.757 + -7.056 8.378 3.413 20.253 5.202 3.106 20.733 4.433 3.759 20.930 + 5.784 -12.261 -5.513 -5.777 -12.670 -6.350 -5.555 -12.911 -5.065 -6.318 + -9.877 1.990 14.084 -10.068 1.563 14.919 -10.732 2.268 13.756 4.685 + -9.660 2.971 4.395 -8.926 2.429 4.948 -10.332 2.343 3.958 13.239 + 12.138 3.835 13.008 13.059 4.634 13.915 12.149 -17.714 -9.943 -6.681 + -16.810 -9.703 -6.474 -17.649 -10.824 -7.049 11.919 -16.896 5.406 12.282 + -17.286 4.611 12.424 -17.290 6.118 7.932 -14.558 14.143 7.367 -14.702 + 14.902 7.846 -15.358 13.625 19.332 0.347 7.056 18.622 0.151 6.445 + 19.355 1.303 7.098 -6.950 -7.793 -5.830 -7.152 -7.561 -4.923 -6.184 + -7.262 -6.048 -14.579 0.061 2.770 -15.111 -0.163 2.007 -13.721 -0.319 + 2.584 17.649 -0.457 1.957 18.255 0.271 2.098 18.149 -1.235 2.202 + 19.126 -3.417 -15.898 18.534 -3.350 -15.149 18.577 -3.218 -16.656 20.699 + -3.728 11.700 19.818 -3.352 11.720 21.210 -3.171 12.288 0.008 14.729 + 2.457 -0.141 14.002 1.854 0.905 15.010 2.278 -0.748 0.092 6.529 + -1.257 0.020 5.721 -0.955 -0.707 7.014 1.428 -16.394 -2.984 1.399 + -15.438 -3.017 0.545 -16.668 -3.235 -20.553 -1.160 -11.616 -21.454 -1.395 + -11.392 -20.570 -0.208 -11.712 1.897 20.714 -2.439 2.152 21.582 -2.127 + 2.330 20.628 -3.289 18.870 -7.380 3.910 19.460 -6.635 3.795 19.452 + -8.135 3.998 7.286 22.071 -10.133 6.498 22.424 -9.721 7.993 22.288 + -9.524 -3.372 -8.589 -10.795 -3.964 -9.055 -10.204 -3.767 -8.691 -11.660 + -6.360 4.914 -11.582 -6.542 5.356 -12.411 -6.055 4.043 -11.837 -19.035 + -1.157 -15.062 -19.438 -1.980 -15.340 -18.630 -0.808 -15.856 -4.391 -13.927 + -5.311 -4.636 -14.198 -6.196 -3.745 -13.233 -5.444 -17.680 -0.412 -12.540 + -18.156 -0.922 -13.196 -17.813 -0.890 -11.722 4.214 6.283 0.896 3.276 + 6.468 0.935 4.272 5.328 0.935 20.887 2.155 4.691 20.815 3.075 + 4.436 21.744 1.882 4.362 -7.722 -4.291 7.284 -8.398 -4.131 6.625 + -7.204 -3.486 7.296 -14.462 -12.501 -10.342 -15.113 -11.800 -10.384 -13.738 + -12.187 -10.883 -17.079 13.428 11.026 -17.824 13.593 11.604 -16.947 12.481 + 11.071 1.492 -8.499 10.311 1.383 -9.239 9.713 1.699 -7.758 9.742 + -16.731 13.433 -6.001 -15.833 13.395 -6.330 -17.054 14.288 -6.286 -2.019 + 12.414 -6.958 -2.312 13.056 -7.604 -1.449 11.822 -7.449 2.521 -3.293 + -1.130 3.358 -3.549 -0.744 2.004 -2.972 -0.391 -5.330 6.609 -20.188 + -4.719 6.170 -20.780 -6.161 6.153 -20.319 -9.930 -12.501 -7.113 -9.512 + -13.217 -6.636 -9.445 -11.720 -6.847 0.722 7.046 -14.013 0.707 7.431 + -14.890 0.702 6.101 -14.167 4.247 -0.718 4.516 5.015 -0.594 3.958 + 4.552 -1.290 5.220 -4.554 -10.132 9.965 -3.667 -10.448 9.795 -4.874 + -9.844 9.110 14.996 1.032 8.532 15.113 0.349 7.872 15.681 0.860 + 9.178 -7.424 -13.286 10.038 -7.423 -14.055 9.469 -6.692 -13.429 10.637 + -1.990 10.578 -2.256 -2.514 9.786 -2.133 -2.556 11.164 -2.759 -7.562 + -13.738 -5.762 -6.811 -13.510 -6.311 -7.455 -14.673 -5.587 10.047 -2.266 + 18.179 10.020 -2.004 19.099 9.493 -1.626 17.731 -18.248 8.817 -10.301 + -17.985 9.710 -10.075 -17.423 8.356 -10.453 0.186 18.624 -8.328 0.781 + 19.184 -8.826 -0.503 19.216 -8.025 -2.250 14.903 -0.438 -1.809 14.173 + -0.003 -1.565 15.319 -0.961 8.821 -2.619 3.577 9.388 -2.419 2.833 + 9.425 -2.763 4.306 -3.291 -0.464 -11.763 -3.099 -0.885 -10.925 -4.224 + -0.255 -11.718 -5.077 -19.061 -11.415 -5.031 -19.926 -11.822 -5.233 -18.461 + -12.144 4.316 4.942 19.294 4.657 4.104 19.606 3.440 5.002 19.677 + -2.434 15.927 2.385 -1.494 15.748 2.421 -2.675 15.757 1.475 11.092 + 1.064 -6.245 11.343 0.888 -5.339 11.647 1.796 -6.510 11.191 4.929 + 12.388 12.090 4.947 12.058 10.888 4.038 12.210 -13.413 -12.404 -7.403 + -13.925 -12.362 -8.211 -12.533 -12.133 -7.663 7.789 -3.035 22.505 7.784 + -2.628 21.639 8.383 -2.490 23.022 -14.576 -17.430 -6.365 -13.818 -16.846 + -6.350 -14.497 -17.946 -5.563 -9.089 -2.449 10.615 -9.343 -1.595 10.966 + -8.324 -2.702 11.133 15.885 -12.445 -0.963 16.145 -11.691 -1.492 16.558 + -13.103 -1.138 17.306 17.712 -3.692 17.067 17.121 -4.406 16.615 17.593 + -3.041 -12.082 9.255 -15.062 -11.438 9.666 -15.639 -12.699 8.829 -15.657 + 5.888 19.827 6.619 6.180 18.925 6.491 5.015 19.855 6.227 -2.367 + 12.386 -4.254 -1.663 13.005 -4.058 -2.278 12.211 -5.191 -8.768 17.020 + -7.984 -9.184 17.785 -7.587 -9.452 16.632 -8.530 -1.841 2.906 15.295 + -2.580 2.503 14.840 -1.135 2.263 15.223 0.469 12.633 7.116 0.774 + 11.731 7.210 -0.241 12.580 6.476 -3.085 6.147 3.694 -2.287 5.885 + 4.153 -3.492 6.795 4.269 -4.831 2.908 10.370 -4.747 3.721 9.872 + -4.685 2.215 9.726 -4.815 -21.275 -3.767 -5.614 -21.325 -3.243 -4.296 + -22.028 -3.484 17.033 9.941 -4.791 16.304 9.320 -4.806 16.617 10.801 + -4.849 -4.923 9.407 3.160 -5.740 8.997 2.876 -4.847 10.192 2.618 + -1.094 4.707 -1.220 -1.152 5.658 -1.125 -0.831 4.573 -2.130 -10.332 + -7.660 8.779 -10.170 -6.731 8.612 -10.927 -7.668 9.529 -9.774 -0.051 + 12.177 -10.013 0.648 11.568 -9.418 0.407 12.939 2.870 -3.673 -23.872 + 2.914 -2.763 -23.579 3.090 -3.636 -24.803 18.939 15.247 7.231 19.288 + 14.634 6.583 19.489 15.117 8.004 -8.394 18.504 11.044 -8.923 18.287 + 10.276 -7.601 17.978 10.944 0.399 2.244 1.933 0.732 3.113 1.709 + 1.184 1.709 2.049 9.222 2.098 20.659 8.685 2.288 19.889 9.929 + 2.742 20.622 2.177 16.394 0.383 2.569 15.721 0.939 2.325 17.212 + 0.858 1.958 3.393 8.725 1.152 3.266 9.226 1.737 3.104 7.840 + 9.321 10.965 1.247 9.477 11.877 1.494 10.185 10.631 1.007 -1.261 + 5.390 -7.664 -1.019 6.315 -7.710 -2.218 5.394 -7.638 -17.547 3.057 + -4.684 -16.771 3.616 -4.734 -18.184 3.575 -4.192 -10.967 3.269 17.710 + -11.142 2.921 18.584 -10.080 2.972 17.507 6.036 9.661 -16.898 6.713 + 10.279 -16.621 5.286 10.213 -17.123 11.828 0.167 -8.875 12.119 0.772 + -8.193 12.582 0.082 -9.458 9.740 1.946 -1.446 10.029 1.956 -2.358 + 8.903 1.483 -1.465 20.978 2.494 13.284 20.397 2.832 13.966 21.511 + 1.835 13.728 -19.248 15.058 -0.059 -18.943 14.364 -0.643 -20.152 15.220 + -0.332 -4.661 16.335 -13.057 -4.564 17.243 -13.344 -3.763 16.026 -12.932 + -3.084 18.691 -2.477 -2.491 18.068 -2.897 -3.729 18.143 -2.030 -14.775 + 5.873 11.727 -14.185 6.015 10.987 -15.419 5.243 11.402 -2.716 5.969 + -5.031 -2.908 6.876 -5.271 -3.493 5.678 -4.554 -7.528 -0.806 -7.227 + -8.204 -0.931 -6.561 -7.298 -1.692 -7.504 7.816 13.664 -3.818 8.463 + 13.820 -3.129 7.546 14.538 -4.096 -2.135 6.017 9.318 -2.989 5.602 + 9.198 -1.595 5.339 9.724 15.587 13.176 6.222 16.040 13.812 5.668 + 15.472 13.626 7.058 -3.882 1.549 -16.656 -4.723 1.161 -16.898 -3.400 + 0.835 -16.239 12.118 0.634 -3.776 13.009 0.843 -3.496 11.899 -0.167 + -3.301 -9.501 9.111 -7.312 -9.208 9.942 -6.939 -8.698 8.687 -7.613 + 13.577 14.729 8.320 13.894 14.809 9.220 13.528 15.631 8.003 7.102 + -15.583 -14.271 6.889 -14.852 -14.851 6.368 -15.623 -13.658 2.580 -10.579 + 16.878 3.003 -10.916 16.088 1.989 -9.896 16.561 -1.907 1.709 -3.042 + -1.097 1.384 -2.648 -1.668 2.559 -3.413 2.884 -1.183 -3.072 3.307 + -1.951 -3.455 2.593 -1.476 -2.208 -17.297 13.795 -10.655 -18.062 13.427 + -10.213 -17.585 13.932 -11.557 -4.343 10.577 -7.378 -4.461 11.333 -6.803 + -4.920 10.749 -8.122 13.977 -9.512 6.885 14.288 -9.137 7.709 14.153 + -8.834 6.232 10.488 -2.405 5.888 10.511 -2.825 6.748 10.011 -1.588 + 6.033 6.200 13.068 -10.118 6.700 12.258 -10.016 5.628 12.904 -10.867 + -11.188 -4.387 18.229 -10.561 -4.924 18.714 -12.024 -4.538 18.671 7.735 + 2.158 14.406 8.012 2.893 14.954 6.791 2.092 14.553 3.716 0.660 + 0.136 3.289 0.735 -0.717 4.416 0.022 -0.001 -17.892 2.763 -12.283 + -17.988 2.500 -13.198 -17.150 2.251 -11.963 -12.479 3.157 -3.007 -11.810 + 2.530 -3.281 -12.946 2.715 -2.298 7.821 18.588 10.863 7.136 19.111 + 10.446 7.444 17.712 10.935 17.582 -0.078 13.097 17.421 0.865 13.070 + 17.900 -0.241 13.984 -7.847 2.223 22.094 -7.693 3.043 21.626 -7.260 + 2.264 22.849 5.641 7.768 6.018 5.638 8.725 6.006 5.967 7.518 + 5.154 13.028 -5.619 13.567 12.958 -6.006 12.694 13.941 -5.760 13.819 + 3.420 16.367 -10.083 3.016 16.057 -9.272 2.927 17.156 -10.310 2.452 + -21.195 3.014 2.160 -21.716 2.265 3.408 -21.230 2.971 -0.361 9.349 + -0.060 -0.770 9.760 0.702 -0.516 9.965 -0.776 18.782 -12.171 -8.341 + 18.650 -13.018 -8.767 19.728 -12.030 -8.376 10.732 16.853 -1.778 10.474 + 17.390 -2.527 10.041 16.195 -1.705 0.658 7.240 -10.180 1.534 7.600 + -10.318 0.721 6.767 -9.351 2.658 -9.223 6.227 3.561 -8.970 6.417 + 2.737 -10.031 5.721 -2.827 14.657 -8.248 -3.588 14.734 -7.672 -2.622 + 15.558 -8.496 1.969 20.442 -9.217 1.840 21.223 -8.678 2.824 20.572 + -9.626 -3.812 -5.838 -9.730 -3.771 -6.768 -9.955 -3.322 -5.401 -10.427 + -4.178 -7.767 -15.730 -4.603 -8.624 -15.774 -3.314 -7.948 -15.359 8.905 + 8.404 -1.497 8.816 9.223 -1.985 9.444 8.634 -0.740 -6.772 5.812 + -5.177 -6.369 6.363 -5.847 -6.294 4.984 -5.227 19.023 11.874 -2.003 + 18.225 12.384 -2.143 19.332 12.145 -1.139 9.973 20.061 10.098 10.454 + 19.745 10.863 9.298 19.399 9.949 2.271 15.871 -7.305 2.801 16.667 + -7.280 1.427 16.133 -6.939 7.396 12.418 5.495 7.978 13.010 5.971 + 7.862 11.581 5.486 -7.266 10.518 -6.012 -7.030 10.233 -5.129 -7.530 + 11.432 -5.906 -14.279 15.004 3.514 -14.797 15.717 3.140 -14.822 14.660 + 4.223 7.175 -17.367 1.854 7.074 -18.231 2.253 7.672 -17.529 1.053 + -1.360 11.136 19.530 -2.311 11.021 19.511 -1.150 11.241 20.457 -10.333 + 16.484 14.119 -10.913 16.318 13.376 -10.360 17.434 14.236 18.913 -14.546 + -9.793 18.906 -15.473 -9.556 19.285 -14.526 -10.674 5.450 -9.319 6.104 + 5.466 -9.064 5.182 6.373 -9.357 6.358 -17.736 3.852 -16.337 -17.253 + 3.849 -17.163 -17.461 3.048 -15.896 -6.827 -19.602 -5.488 -6.172 -19.808 + -4.820 -6.784 -20.338 -6.099 2.379 -18.217 -9.858 2.946 -18.962 -9.657 + 1.887 -18.066 -9.051 18.216 10.989 4.982 17.305 10.760 5.167 18.617 + 10.167 4.700 7.249 9.376 2.380 7.812 9.849 1.767 7.830 8.737 + 2.794 2.654 -17.445 10.763 2.596 -16.644 11.285 2.260 -17.212 9.922 + 9.750 5.074 5.560 9.179 5.357 6.274 10.601 5.458 5.767 12.087 + 0.019 3.707 12.312 0.464 4.525 11.150 0.183 3.595 12.075 15.486 + 1.905 12.430 15.339 2.782 11.432 16.186 2.021 2.837 11.644 9.556 + 2.723 12.515 9.937 1.949 11.292 9.495 4.279 -11.756 -13.462 3.923 + -12.548 -13.058 3.933 -11.765 -14.354 13.817 12.367 4.240 14.636 12.409 + 4.734 13.236 11.834 4.783 -12.858 7.631 -10.649 -12.995 7.104 -11.437 + -11.940 7.897 -10.697 18.198 3.360 10.060 17.590 3.842 10.620 18.245 + 3.878 9.256 20.259 -9.139 -10.978 21.029 -9.318 -10.438 20.606 -8.690 + -11.749 -11.818 -15.571 8.111 -11.537 -14.779 7.653 -12.199 -15.252 8.930 + 4.551 -16.578 2.533 5.412 -16.425 2.144 4.658 -17.380 3.043 -16.136 + 7.066 -0.663 -15.185 7.002 -0.757 -16.467 7.057 -1.561 -14.685 8.054 + 4.466 -15.491 8.428 4.824 -14.929 7.753 3.591 -6.325 5.942 0.239 + -5.815 5.272 0.692 -7.145 5.993 0.730 3.636 8.645 -1.826 3.229 + 9.501 -1.961 3.038 8.027 -2.248 -2.176 -0.450 10.522 -2.853 -0.617 + 11.177 -2.639 -0.018 9.804 -6.091 -4.465 -1.097 -5.686 -4.289 -1.946 + -6.004 -5.412 -0.982 -9.356 6.581 2.003 -9.661 6.243 1.161 -9.921 + 6.159 2.650 -13.824 4.561 2.112 -14.526 3.952 1.884 -13.160 4.425 + 1.435 8.422 10.568 -3.729 7.714 9.993 -3.440 8.278 11.385 -3.251 + -19.378 11.561 9.922 -19.225 12.312 9.349 -19.586 11.947 10.773 -7.148 + 4.327 -23.657 -7.973 4.810 -23.706 -6.578 4.880 -23.124 2.257 -13.922 + 9.452 2.109 -14.734 8.967 2.060 -13.228 8.823 4.391 -3.507 15.406 + 3.644 -3.392 15.993 4.178 -4.288 14.897 7.020 -10.973 -12.280 6.342 + -11.233 -12.904 7.700 -10.570 -12.819 12.038 20.198 1.462 11.553 19.392 + 1.638 12.283 20.135 0.539 -19.322 -13.940 -4.021 -18.588 -13.330 -3.942 + -19.717 -13.952 -3.149 -9.535 -19.100 -0.301 -10.112 -18.449 0.098 -9.820 + -19.934 0.073 -13.469 10.359 13.673 -13.869 10.458 12.808 -13.105 9.474 + 13.668 -19.927 12.878 5.484 -20.878 12.879 5.377 -19.688 11.951 5.493 + 1.646 10.163 -5.791 2.502 10.564 -5.946 1.104 10.468 -6.519 -4.373 + 1.434 -1.625 -3.927 1.838 -0.881 -3.695 1.355 -2.296 0.361 -6.275 + 0.296 0.217 -6.054 -0.624 1.034 -6.955 0.276 -1.664 14.740 5.388 + -1.890 14.086 4.727 -2.252 14.554 6.120 9.397 -0.570 20.388 9.473 + 0.384 20.414 8.471 -0.731 20.207 -10.882 8.398 -18.336 -10.693 9.330 + -18.449 -10.066 8.028 -17.999 -19.040 2.326 3.577 -18.866 2.536 2.659 + -18.772 3.110 4.056 -15.619 -13.891 -6.379 -16.087 -14.133 -7.178 -14.741 + -13.656 -6.678 4.565 -1.183 8.653 5.194 -1.579 8.050 4.543 -0.259 + 8.404 -13.342 9.557 18.078 -13.163 10.442 18.394 -12.646 9.021 18.458 + -15.385 5.396 -16.379 -16.151 5.943 -16.549 -15.538 5.035 -15.506 1.825 + 4.627 4.964 1.736 3.682 5.094 2.770 4.775 4.921 -6.973 15.260 + -12.089 -7.123 15.089 -11.159 -6.023 15.209 -12.192 -6.739 14.344 16.120 + -7.250 13.882 16.785 -7.218 15.160 15.974 6.871 1.211 11.932 5.988 + 0.840 11.920 6.931 1.656 12.778 -3.969 8.473 -5.525 -4.074 9.049 + -6.282 -4.425 8.924 -4.815 9.860 -10.017 -10.996 9.343 -10.569 -10.409 + 10.524 -10.605 -11.355 -3.090 12.381 10.370 -2.565 12.048 11.097 -2.536 + 13.044 9.958 9.402 9.370 -7.646 10.257 9.539 -8.043 9.576 9.344 + -6.705 -16.450 -12.099 5.670 -16.387 -12.606 6.480 -16.982 -12.643 5.089 + 4.032 11.270 -6.298 3.378 11.796 -6.757 4.857 11.734 -6.443 4.711 + 7.871 9.038 4.455 6.975 8.820 4.136 8.420 8.505 -4.194 -13.159 + -10.508 -4.357 -13.878 -11.119 -4.619 -12.402 -10.911 -4.336 4.923 -2.929 + -4.756 5.740 -2.661 -4.000 4.548 -2.115 -13.626 -2.073 -4.592 -14.140 + -2.802 -4.243 -13.597 -1.437 -3.878 -10.091 2.004 1.426 -10.162 1.149 + 1.001 -9.553 2.524 0.830 -7.719 11.233 -2.150 -7.867 11.317 -1.208 + -8.510 10.807 -2.480 -12.463 -4.320 14.694 -13.134 -3.680 14.928 -12.439 + -4.304 13.737 6.130 -0.957 -0.443 6.952 -0.786 -0.903 5.939 -1.876 + -0.628 9.549 -18.905 2.143 9.695 -18.506 1.285 8.979 -19.653 1.965 + -0.810 4.186 11.138 -1.485 4.549 11.712 -0.117 3.902 11.734 0.371 + 12.350 -1.576 -0.442 11.896 -1.797 0.681 12.704 -2.410 1.132 19.535 + 7.341 1.510 19.750 6.488 1.857 19.150 7.833 -18.632 -10.715 -4.249 + -17.936 -10.813 -3.600 -18.203 -10.303 -5.000 7.279 14.621 0.411 6.421 + 14.328 0.102 7.348 14.265 1.297 -19.206 -1.323 16.234 -18.472 -1.713 + 16.709 -19.942 -1.382 16.842 4.616 3.518 4.309 4.962 2.644 4.127 + 5.167 3.850 5.018 4.016 14.515 -5.349 3.510 14.664 -6.148 4.869 + 14.911 -5.528 -3.819 -1.661 -16.310 -4.285 -2.049 -17.050 -4.411 -1.777 + -15.567 19.834 -8.109 8.003 19.645 -7.285 7.553 19.811 -8.770 7.312 + -2.332 -15.072 -3.925 -1.876 -14.327 -3.533 -3.103 -14.688 -4.343 -15.214 + -4.614 -10.306 -15.375 -5.288 -9.645 -14.725 -5.065 -10.993 0.975 -20.539 + -0.913 1.542 -20.629 -0.146 0.088 -20.643 -0.568 16.317 4.192 -5.559 + 16.015 4.747 -6.278 17.224 3.984 -5.782 -11.746 -16.532 -5.775 -11.356 + -17.376 -6.003 -11.616 -15.990 -6.554 16.341 -13.489 8.309 15.963 -12.666 + 7.998 15.647 -13.889 8.833 1.134 -18.859 2.994 1.505 -19.702 3.256 + 0.241 -18.874 3.336 -9.383 0.639 -10.778 -8.704 1.034 -10.231 -9.739 + -0.070 -10.243 -15.754 -15.492 -2.379 -16.335 -14.826 -2.746 -15.078 -15.614 + -3.046 -16.614 11.887 3.363 -16.060 11.749 2.595 -17.434 12.230 3.010 + 4.630 12.797 -12.191 4.584 13.675 -12.571 4.475 12.208 -12.929 0.742 + -5.362 -2.291 0.154 -4.614 -2.404 1.469 -5.019 -1.772 -2.359 -7.236 + -19.711 -2.582 -8.164 -19.785 -1.913 -7.030 -20.532 11.050 20.431 -5.250 + 10.956 21.038 -4.516 10.735 20.922 -6.009 14.679 17.304 9.128 15.483 + 17.468 8.635 14.290 18.170 9.247 -0.957 -0.078 15.400 -1.765 -0.159 + 14.893 -0.864 -0.923 15.840 -13.112 -5.998 -11.888 -12.269 -5.546 -11.845 + -13.496 -5.709 -12.716 0.391 16.859 -10.342 -0.025 17.394 -11.019 0.329 + 17.389 -9.547 7.610 -13.987 -5.138 7.275 -14.454 -4.373 6.904 -13.389 + -5.382 14.369 15.955 -0.070 13.735 15.935 0.647 14.380 15.059 -0.404 + 5.740 22.111 3.647 6.151 22.435 4.449 6.146 21.258 3.497 -0.005 + -12.643 -13.853 0.260 -12.757 -14.765 -0.264 -11.723 -13.792 -12.017 -16.912 + 5.553 -12.404 -16.042 5.455 -11.073 -16.762 5.502 -0.581 6.060 4.912 + 0.232 5.555 4.928 -0.500 6.666 5.649 0.384 19.746 10.474 -0.524 + 19.452 10.399 0.698 19.785 9.570 3.985 14.828 4.353 4.261 15.138 + 5.216 3.496 14.025 4.532 16.895 -8.766 2.609 16.009 -8.506 2.862 + 17.467 -8.241 3.170 5.789 -4.131 4.443 6.483 -4.386 5.051 5.116 + -3.740 4.999 -0.969 -20.711 -4.522 -0.025 -20.716 -4.364 -1.315 -20.088 + -3.883 -18.170 1.276 -6.971 -17.928 1.749 -6.175 -18.030 0.354 -6.753 + 8.485 0.031 -5.424 8.528 -0.891 -5.676 9.275 0.420 -5.799 -13.327 + -16.202 2.356 -13.902 -16.395 1.615 -13.896 -15.773 2.995 1.610 -11.743 + 13.566 1.155 -12.083 12.796 1.186 -10.904 13.744 -19.802 0.625 14.328 + -18.922 0.744 13.972 -19.678 0.058 15.089 13.643 -2.539 20.273 13.495 + -1.602 20.144 12.815 -2.866 20.627 10.887 -14.070 5.572 11.467 -13.719 + 4.896 11.043 -15.014 5.554 10.319 18.399 -6.819 10.758 17.558 -6.944 + 10.898 18.887 -6.233 -5.371 -7.719 -2.787 -4.893 -7.456 -2.001 -5.327 + -6.955 -3.362 -3.141 -12.799 12.612 -2.975 -12.256 11.841 -2.871 -13.679 + 12.347 -7.231 -16.094 9.278 -7.184 -16.503 10.142 -8.159 -16.127 9.048 + 1.602 17.642 11.249 1.255 18.532 11.180 0.917 17.088 10.874 2.235 + 16.146 7.634 1.735 15.973 6.837 3.106 15.792 7.452 7.637 10.736 + -9.905 8.142 10.025 -9.512 7.935 10.767 -10.814 7.934 11.738 -0.874 + 8.581 11.386 -0.262 7.100 11.375 -0.575 -15.009 -10.518 -5.699 -14.577 + -11.087 -6.336 -14.500 -10.626 -4.896 -2.506 2.077 23.694 -2.968 1.641 + 24.410 -1.967 2.740 24.125 -1.184 -2.286 16.864 -1.834 -1.756 17.326 + -1.320 -3.174 17.195 -17.242 4.729 7.605 -18.140 4.988 7.397 -17.337 + 4.046 8.269 -13.859 -3.526 17.864 -13.437 -2.963 18.513 -13.785 -3.042 + 17.042 -12.772 6.577 -19.326 -12.548 6.064 -20.102 -12.032 7.175 -19.213 + 12.987 18.552 3.617 13.736 18.857 3.105 12.267 19.125 3.354 7.077 + 19.269 2.733 7.258 18.858 1.888 6.420 18.703 3.138 6.692 2.888 + 0.030 6.526 2.684 -0.890 5.839 3.158 0.373 -8.232 -19.153 4.989 + -8.848 -19.182 4.257 -7.706 -19.946 4.891 -21.146 5.319 4.515 -20.480 + 5.207 5.193 -21.769 5.941 4.891 -16.088 6.859 9.029 -16.557 6.166 + 8.564 -15.163 6.672 8.868 -1.896 -23.433 5.387 -2.723 -23.803 5.077 + -1.897 -22.535 5.055 17.010 15.210 4.706 16.510 15.932 4.324 17.728 + 15.063 4.090 16.456 12.746 -2.498 16.377 12.848 -3.446 16.298 11.814 + -2.344 -14.214 12.560 -1.965 -13.623 12.396 -2.700 -14.873 11.868 -2.029 + -20.122 -13.914 -7.062 -20.340 -13.002 -7.255 -19.928 -13.921 -6.124 -1.725 + -17.211 -8.418 -2.643 -17.011 -8.235 -1.554 -18.017 -7.930 -18.733 15.537 + -6.712 -19.060 15.184 -7.540 -19.174 15.018 -6.039 5.255 2.346 -22.108 + 6.208 2.274 -22.041 5.097 3.272 -22.288 -11.589 16.208 -1.934 -11.475 + 15.281 -1.724 -12.531 16.308 -2.071 1.476 -3.682 -14.641 1.592 -2.862 + -15.121 1.425 -4.353 -15.321 9.189 21.103 -1.371 10.010 21.487 -1.681 + 9.362 20.875 -0.458 -5.391 -10.352 -3.195 -5.486 -9.418 -3.386 -5.853 + -10.474 -2.365 -6.013 -6.313 5.618 -6.545 -6.649 4.896 -6.646 -5.915 + 6.216 6.573 -4.662 16.849 5.862 -4.201 16.405 7.101 -5.029 16.140 + -1.654 -5.017 -7.756 -1.522 -5.952 -7.912 -0.769 -4.657 -7.699 8.069 + 9.272 16.323 7.157 9.134 16.066 8.579 8.933 15.588 -8.386 10.508 + 9.269 -8.210 10.269 10.179 -9.186 11.032 9.310 -11.597 0.701 4.402 + -11.943 0.412 3.557 -11.563 1.655 4.333 16.810 0.638 10.305 17.180 + -0.105 10.781 17.550 1.231 10.173 13.630 -10.885 -4.013 13.497 -10.607 + -4.919 14.581 -10.941 -3.918 3.129 3.612 15.063 3.023 3.108 15.870 + 2.453 4.288 15.112 5.427 7.069 13.608 4.583 6.832 13.224 5.992 + 7.244 12.855 7.471 2.840 18.771 6.816 2.312 18.315 7.714 3.518 + 18.140 12.681 -14.715 -8.658 12.565 -15.551 -9.109 12.607 -14.931 -7.729 + -19.578 8.801 9.205 -18.838 8.509 9.738 -19.508 9.755 9.201 21.129 + -7.171 -12.871 20.415 -6.802 -13.391 21.420 -6.448 -12.315 -5.485 -4.987 + 1.866 -6.238 -4.407 1.979 -4.799 -4.598 2.408 19.524 15.235 2.897 + 19.213 16.140 2.916 20.478 15.310 2.897 -3.972 20.293 4.663 -3.936 + 19.376 4.936 -3.666 20.285 3.756 8.021 -18.152 -4.502 7.637 -18.575 + -3.734 8.959 -18.330 -4.429 -7.844 -3.519 -5.932 -7.881 -3.925 -6.798 + -8.662 -3.781 -5.509 -0.324 -11.492 -3.016 -0.053 -11.077 -3.835 -1.277 + -11.410 -3.010 -16.320 7.085 -3.399 -15.785 6.321 -3.612 -16.410 7.553 + -4.229 3.061 -8.118 -15.979 2.651 -8.771 -16.546 2.592 -7.306 -16.172 + -1.675 -8.043 -8.417 -0.954 -8.672 -8.421 -2.066 -8.122 -9.288 0.602 + 9.620 -3.182 -0.217 10.046 -2.929 0.844 10.038 -4.009 3.298 -9.102 + -7.818 4.206 -9.104 -7.515 3.193 -9.942 -8.265 -0.541 -12.316 5.411 + 0.067 -11.909 6.028 -0.097 -13.116 5.129 -8.343 -3.670 -8.579 -8.288 + -2.982 -9.242 -7.968 -4.442 -9.003 7.083 -1.249 5.314 7.073 -0.328 + 5.056 7.575 -1.687 4.620 -6.713 -18.529 -0.086 -7.627 -18.809 -0.126 + -6.702 -17.839 0.577 -1.302 17.770 7.538 -0.872 16.996 7.900 -0.588 + 18.293 7.173 -18.338 -3.898 6.616 -19.205 -4.082 6.979 -17.874 -4.733 + 6.671 -14.100 -2.300 15.539 -13.678 -1.481 15.280 -14.995 -2.223 15.207 + -2.110 -19.765 -11.325 -1.226 -19.510 -11.590 -2.649 -18.999 -11.522 4.654 + -1.446 17.712 5.215 -2.196 17.514 4.157 -1.717 18.484 -3.709 5.198 + -21.874 -3.754 5.977 -22.428 -2.776 5.088 -21.691 -12.734 0.430 -14.792 + -13.490 0.284 -14.224 -13.107 0.511 -15.670 -12.243 3.541 -9.791 -12.743 + 3.099 -10.477 -12.889 3.737 -9.112 -2.670 19.062 0.510 -3.055 19.174 + -0.359 -2.068 19.800 0.603 0.115 -2.599 -22.449 -0.197 -2.625 -23.354 + 1.064 -2.702 -22.520 9.220 16.244 6.224 10.144 16.470 6.328 8.996 + 15.772 7.025 -3.792 -3.681 -7.170 -4.343 -4.440 -6.982 -3.051 -4.039 + -7.661 -5.397 -9.330 7.279 -6.183 -8.796 7.394 -5.367 -9.512 6.340 + 0.087 -2.973 20.676 0.538 -2.669 21.464 -0.532 -2.274 20.469 1.489 + -9.767 2.655 0.726 -9.982 3.192 2.233 -10.117 3.146 4.419 -17.440 + -11.564 4.517 -18.392 -11.603 3.713 -17.298 -10.933 -14.035 -17.643 8.528 + -13.503 -17.268 7.826 -13.692 -17.243 9.327 8.588 20.111 6.848 8.806 + 20.164 7.778 7.640 19.977 6.831 14.625 -5.327 19.003 15.136 -5.504 + 19.792 13.716 -5.465 19.269 -8.689 -22.169 5.830 -9.139 -22.925 6.206 + -7.764 -22.318 6.029 3.158 2.932 -1.972 4.086 2.712 -2.060 3.130 + 3.885 -2.052 20.245 14.836 -6.521 20.130 13.900 -6.357 20.001 14.950 + -7.439 -12.106 -21.059 -9.065 -12.440 -20.187 -9.274 -12.558 -21.301 -8.257 + -15.134 -6.599 -7.628 -15.812 -6.506 -6.959 -14.772 -5.718 -7.726 -6.037 + -3.679 -11.097 -5.182 -3.973 -10.784 -6.287 -4.327 -11.755 -0.505 -15.269 + -12.649 -1.344 -15.562 -13.003 -0.359 -14.415 -13.056 -0.809 19.242 15.404 + -0.994 19.933 14.767 -1.368 18.513 15.136 -10.186 2.356 -6.908 -9.529 + 1.661 -6.950 -9.677 3.162 -6.821 18.723 1.643 -12.304 19.630 1.790 + -12.038 18.245 2.394 -11.952 12.730 -12.503 -16.245 12.523 -12.285 -17.153 + 13.569 -12.071 -16.080 10.394 -4.104 -2.665 9.892 -4.185 -1.853 10.863 + -4.935 -2.740 -19.331 11.167 -11.226 -19.835 11.948 -10.995 -19.608 10.507 + -10.591 0.203 -14.083 -6.372 -0.591 -13.589 -6.169 -0.048 -14.999 -6.254 + 14.939 -1.857 11.356 14.766 -1.058 11.854 15.197 -2.500 12.016 -7.095 + 1.030 -13.447 -6.577 0.448 -12.892 -7.980 0.665 -13.417 13.601 -4.681 + 0.800 13.731 -4.803 1.741 13.150 -5.476 0.516 -11.457 5.911 14.602 + -11.072 6.742 14.880 -10.715 5.400 14.278 -14.473 -8.363 -12.262 -13.957 + -7.569 -12.402 -14.482 -8.479 -11.312 13.421 7.146 9.689 13.429 6.251 + 10.029 12.676 7.560 10.125 -6.374 -4.656 -15.691 -6.543 -3.724 -15.549 + -5.862 -4.925 -14.929 -14.496 -16.755 -0.153 -15.033 -16.190 -0.709 -13.689 + -16.883 -0.652 1.647 12.623 -12.525 2.129 12.196 -13.233 2.082 12.326 + -11.725 -3.109 -12.407 -2.294 -3.042 -12.967 -1.521 -4.034 -12.165 -2.334 + 15.571 -2.495 15.895 14.634 -2.458 16.085 15.963 -2.852 16.692 -10.671 + -2.645 -10.201 -10.647 -3.553 -10.504 -11.479 -2.290 -10.573 0.382 -9.487 + -8.505 0.735 -10.282 -8.104 0.361 -9.680 -9.442 11.803 20.137 7.346 + 11.305 20.384 8.125 12.198 20.955 7.045 5.173 17.165 3.491 4.780 + 16.337 3.766 4.454 17.648 3.083 -16.169 -12.229 10.792 -16.346 -11.340 + 11.100 -17.004 -12.687 10.889 -7.001 -12.296 3.013 -7.651 -12.740 3.557 + -6.862 -11.453 3.445 -11.732 -16.583 -1.853 -10.856 -16.299 -2.117 -11.659 + -16.741 -0.912 5.875 24.192 -6.370 6.006 24.844 -5.681 6.177 24.625 + -7.168 -11.198 13.487 1.601 -11.680 12.790 2.046 -11.303 14.250 2.169 + 13.614 -12.215 7.135 13.828 -11.283 7.095 12.659 -12.243 7.081 -11.817 + 14.987 -12.834 -11.933 14.169 -12.351 -12.633 15.467 -12.694 -6.647 0.672 + -9.330 -6.744 1.592 -9.083 -7.041 0.187 -8.605 -9.479 4.330 -15.277 + -8.741 3.750 -15.461 -10.159 4.057 -15.893 -14.554 10.215 10.890 -14.752 + 9.680 10.121 -14.258 11.051 10.529 -4.448 -10.192 -5.810 -4.126 -9.486 + -5.249 -4.821 -10.830 -5.202 -8.373 -2.126 18.950 -9.032 -2.224 18.262 + -8.874 -1.881 19.728 6.318 -13.599 -16.263 5.700 -13.182 -16.864 7.073 + -13.011 -16.251 17.114 4.748 -0.841 17.489 4.199 -0.153 17.347 4.304 + -1.657 -8.551 14.487 13.141 -9.113 15.137 13.562 -8.753 14.563 12.208 + -16.343 -14.372 -8.924 -16.052 -13.854 -9.674 -15.763 -15.134 -8.919 5.261 + 20.071 -9.309 5.919 20.091 -10.004 5.731 20.359 -8.526 13.463 -3.761 + 9.890 13.003 -3.007 9.521 14.232 -3.386 10.318 -1.482 -20.619 0.102 + -1.819 -21.362 -0.400 -2.168 -19.955 0.036 -1.948 -6.445 -17.157 -2.172 + -6.950 -17.939 -2.416 -5.617 -17.265 2.794 -5.311 -12.720 2.474 -4.654 + -13.338 3.043 -4.809 -11.944 4.201 -12.363 14.042 4.272 -12.737 13.163 + 3.314 -12.008 14.080 3.605 9.736 17.699 4.143 9.463 16.956 3.692 + 10.689 17.721 -2.429 -1.133 -22.932 -2.848 -1.869 -22.486 -1.936 -0.686 + -22.245 -3.406 -17.713 13.661 -3.051 -17.450 14.509 -2.952 -18.531 13.454 + -2.589 -17.846 0.450 -3.168 -18.595 0.308 -2.791 -17.247 -0.269 14.355 + 1.198 -1.862 14.475 2.018 -2.341 14.698 1.379 -0.987 3.295 -19.974 + -12.365 3.442 -20.920 -12.390 2.379 -19.882 -12.103 10.738 4.555 8.941 + 10.933 5.351 8.447 9.932 4.759 9.416 3.729 -13.962 0.464 3.687 + -14.012 1.419 2.827 -14.103 0.177 12.458 -2.919 3.181 12.257 -2.001 + 3.360 12.506 -3.327 4.046 -2.749 -13.447 15.831 -2.778 -12.860 15.076 + -3.562 -13.268 16.304 -5.417 -19.410 -8.295 -5.069 -19.429 -9.187 -5.271 + -20.296 -7.963 7.774 0.241 -2.739 6.854 0.333 -2.989 8.215 -0.029 + -3.544 -5.953 6.697 11.281 -6.583 6.065 11.629 -6.492 7.358 10.847 + 13.748 -15.182 6.754 12.848 -15.336 6.467 13.799 -14.235 6.883 5.568 + -4.164 23.262 6.436 -3.949 22.921 5.253 -4.863 22.691 18.193 2.170 + 4.166 19.132 1.995 4.116 17.833 1.417 4.634 19.064 -15.238 -2.597 + 19.123 -14.546 -3.256 19.495 -15.991 -3.001 1.028 1.339 -3.050 1.236 + 0.441 -3.308 1.874 1.786 -3.037 -15.958 2.176 -8.974 -16.796 1.931 + -8.582 -15.479 1.351 -9.051 -0.816 -1.667 8.555 -0.010 -2.009 8.942 + -1.256 -1.217 9.276 18.030 11.563 11.742 18.008 12.337 12.305 18.199 + 11.909 10.866 -13.145 12.298 3.290 -13.748 12.725 2.682 -13.418 12.606 + 4.154 -0.989 6.366 21.439 -0.965 7.284 21.709 -0.417 5.918 22.062 + 0.266 -12.709 -16.794 0.598 -12.041 -17.394 0.423 -13.537 -17.248 19.062 + 3.815 -5.648 19.825 4.358 -5.845 19.424 2.944 -5.482 -7.328 5.525 + 4.957 -7.616 4.810 4.388 -8.123 5.803 5.412 -8.660 -9.732 -7.442 + -8.201 -9.407 -6.668 -9.514 -9.301 -7.413 -17.003 -7.015 -0.522 -17.790 + -7.460 -0.206 -16.545 -6.745 0.274 1.806 12.920 -3.942 2.121 12.095 + -4.310 2.102 13.587 -4.561 7.121 -18.561 -8.360 7.804 -17.977 -8.031 + 6.326 -18.278 -7.908 -2.223 -10.468 -13.361 -2.215 -10.472 -12.404 -1.851 + -9.619 -13.600 -2.106 0.044 3.641 -3.051 0.023 3.489 -1.855 0.950 + 3.462 -9.299 -15.651 -2.911 -9.740 -14.881 -3.270 -8.864 -16.051 -3.664 + 0.425 18.588 -1.654 0.857 19.361 -2.019 -0.269 18.942 -1.098 2.648 + 12.112 4.537 2.243 11.251 4.641 3.281 11.995 3.828 -5.382 12.177 + 19.739 -5.942 12.336 20.499 -4.764 12.908 19.740 -3.914 2.543 -24.088 + -4.613 2.601 -23.437 -4.155 1.793 -24.631 4.250 -18.182 -14.630 4.404 + -17.283 -14.339 3.864 -18.617 -13.870 -3.922 14.891 12.084 -3.146 14.405 + 12.362 -4.627 14.550 12.635 -12.411 3.623 20.545 -13.079 3.626 19.860 + -12.378 2.714 20.845 5.545 12.376 -4.261 5.004 13.060 -4.655 6.378 + 12.808 -4.073 11.109 7.267 -15.958 11.223 6.521 -15.369 11.318 8.031 + -15.420 -14.517 -16.232 -9.306 -14.033 -15.992 -10.096 -14.082 -17.024 -8.990 + 10.298 8.093 2.045 10.607 7.740 1.211 11.004 8.669 2.338 -14.422 + -3.931 4.394 -14.442 -4.621 5.056 -15.297 -3.545 4.424 -2.407 -19.596 + -7.031 -1.974 -19.763 -6.194 -3.313 -19.397 -6.796 4.501 5.223 7.337 + 4.928 5.945 6.877 5.050 4.461 7.150 8.661 -9.443 20.861 8.728 + -9.099 21.752 9.568 -9.578 20.587 -10.028 -4.235 -4.392 -10.834 -4.696 + -4.626 -10.280 -3.667 -3.663 -3.786 -22.830 -1.254 -3.438 -23.522 -1.818 + -4.322 -23.293 -0.611 -16.529 -12.994 -3.329 -16.214 -13.380 -4.146 -16.041 + -12.175 -3.247 12.172 -5.995 16.400 11.337 -6.102 15.944 12.714 -5.490 + 15.794 -4.273 18.330 -10.501 -4.840 18.540 -9.759 -4.859 17.937 -11.148 + -13.406 -0.705 7.143 -13.918 0.066 7.385 -13.003 -0.472 6.306 -6.706 + 3.743 16.087 -6.109 4.486 16.175 -6.255 3.142 15.493 -11.258 11.689 + 6.096 -10.674 11.947 5.383 -10.737 11.085 6.626 18.616 -3.057 -0.095 + 18.257 -3.312 -0.945 17.983 -3.388 0.542 2.567 -18.727 13.037 2.226 + -17.998 13.555 2.729 -18.350 12.172 1.928 -10.174 -17.947 2.165 -10.255 + -18.871 1.272 -9.477 -17.929 -10.129 17.379 -11.932 -9.510 18.076 -11.715 + -9.729 16.584 -11.579 1.053 6.537 -21.103 0.313 5.942 -20.984 1.087 + 6.691 -22.047 3.294 -5.758 -6.154 3.916 -6.426 -5.866 2.606 -6.249 + -6.604 -10.482 -1.432 14.498 -10.421 -1.101 13.602 -10.718 -2.354 14.397 + -5.837 -10.281 -0.078 -5.881 -10.641 0.808 -5.103 -9.667 -0.051 -4.201 + -0.100 -8.247 -5.001 0.424 -8.294 -4.076 -0.263 -7.313 -0.823 11.310 + -13.019 -1.611 11.778 -12.744 -0.101 11.830 -12.668 7.460 18.305 -10.467 + 6.908 18.464 -11.233 7.044 17.568 -10.021 -0.803 -0.671 -19.752 0.058 + -0.260 -19.683 -0.628 -1.532 -20.134 9.828 -12.874 -16.845 10.738 -13.001 + -16.576 9.777 -13.271 -17.715 13.732 -15.862 13.930 14.064 -15.170 14.502 + 13.171 -15.406 13.304 14.942 8.168 7.575 14.487 8.032 8.406 14.555 + 7.523 6.982 14.543 4.981 -3.436 14.035 5.469 -4.084 15.278 4.618 + -3.931 3.793 -4.164 9.503 4.561 -4.726 9.614 4.149 -3.276 9.473 + 7.744 -6.270 -11.670 7.810 -5.320 -11.759 7.256 -6.402 -10.857 6.300 + 1.572 2.673 6.260 1.812 1.747 6.087 0.639 2.688 18.635 -11.272 + -5.576 17.680 -11.332 -5.584 18.908 -11.677 -6.400 5.755 20.058 9.415 + 5.918 19.963 8.477 4.990 19.507 9.583 -11.481 -2.639 8.151 -11.146 + -2.856 7.281 -12.024 -1.862 8.012 19.816 -13.348 -4.329 19.351 -12.567 + -4.629 20.626 -13.012 -3.945 11.748 9.805 -14.586 12.314 10.178 -15.261 + 12.144 10.083 -13.760 6.836 7.882 -12.775 7.735 7.580 -12.912 6.356 + 7.557 -13.537 12.998 3.867 -10.311 13.744 3.280 -10.196 12.738 3.748 + -11.225 11.067 -2.595 -7.843 10.791 -2.538 -6.929 11.364 -1.710 -8.059 + -7.086 18.110 -11.809 -6.494 18.695 -12.282 -7.093 17.306 -12.330 0.014 + 18.138 -14.379 -0.760 17.601 -14.212 0.201 18.555 -13.537 1.706 -2.194 + 10.331 2.193 -1.414 10.599 2.260 -2.926 10.601 0.671 10.876 -8.463 + 1.324 10.981 -9.155 0.501 9.934 -8.435 20.578 8.897 7.989 19.847 + 8.445 8.410 21.356 8.552 8.426 -12.663 11.125 -3.975 -12.043 10.406 + -4.094 -13.122 11.188 -4.813 7.327 -19.147 11.611 6.517 -19.574 11.891 + 7.362 -19.296 10.666 6.181 -13.379 17.679 6.381 -12.512 18.029 6.982 + -13.884 17.817 -0.259 -0.563 12.354 -0.514 -0.044 13.117 -0.767 -0.193 + 11.632 -9.810 -7.846 15.389 -9.014 -7.427 15.062 -9.932 -8.605 14.818 + 3.882 11.817 -2.086 2.984 12.093 -2.268 4.313 11.824 -2.940 -18.362 + -0.149 8.185 -17.607 -0.700 7.980 -18.482 0.391 7.404 -12.927 13.873 + 6.613 -13.764 13.740 6.166 -12.403 13.110 6.369 0.882 9.735 5.545 + -0.038 9.965 5.416 0.954 8.839 5.214 9.484 18.985 -3.449 10.036 + 19.384 -4.122 9.108 19.728 -2.977 18.126 -4.347 14.727 18.264 -4.068 + 15.632 18.862 -4.930 14.542 9.356 6.933 -13.142 9.652 7.688 -12.633 + 10.157 6.569 -13.518 -19.042 11.145 0.427 -18.281 10.886 -0.093 -18.741 + 11.900 0.932 -0.376 -4.163 -20.182 -0.045 -3.858 -21.026 -1.326 -4.197 + -20.295 5.218 -6.276 7.874 4.450 -6.258 7.303 5.273 -7.184 8.172 + 0.249 0.706 -16.038 0.573 1.342 -16.676 0.762 0.877 -15.248 10.259 + -8.154 8.096 10.448 -7.295 8.474 11.009 -8.695 8.342 -12.006 2.660 + -21.503 -12.870 3.035 -21.329 -12.044 2.384 -22.419 -2.899 -20.544 11.642 + -2.366 -21.043 11.023 -2.290 -20.294 12.336 12.400 6.495 -4.427 11.491 + 6.297 -4.652 12.351 6.889 -3.556 6.135 8.663 -3.191 6.734 8.277 + -2.552 5.266 8.538 -2.810 -18.285 -5.743 9.355 -18.494 -5.526 10.264 + -17.766 -5.001 9.045 -2.025 4.949 16.991 -1.940 4.299 16.293 -1.961 + 4.442 17.800 -6.673 3.491 -8.866 -7.119 4.122 -8.301 -6.577 3.945 + -9.703 -2.009 -5.084 -11.854 -2.012 -4.787 -12.764 -1.329 -5.757 -11.824 + -5.310 -9.390 18.183 -4.417 -9.490 17.854 -5.526 -8.473 18.014 -4.284 + -21.456 -10.237 -3.654 -20.767 -10.449 -3.933 -21.866 -9.446 -11.541 -4.442 + -18.427 -11.035 -3.722 -18.052 -11.905 -4.899 -17.668 -3.768 -14.538 9.126 + -4.558 -14.921 8.745 -3.836 -14.730 10.062 -0.801 8.139 2.987 -0.948 + 7.465 3.650 -0.020 7.847 2.518 -2.969 7.419 1.178 -3.758 7.157 + 1.652 -2.432 7.864 1.834 -16.583 9.712 4.975 -16.628 10.288 5.737 + -16.664 10.300 4.224 12.294 -8.742 -9.028 13.237 -8.672 -8.882 12.205 + -9.414 -9.704 -1.179 -5.001 17.593 -1.845 -5.680 17.700 -0.854 -4.842 + 18.479 -13.843 3.763 -17.733 -14.537 3.260 -18.158 -14.304 4.458 -17.263 + 13.426 18.519 -4.134 12.746 17.944 -4.484 13.832 18.011 -3.432 8.049 + -6.498 -6.035 8.670 -6.922 -6.627 7.658 -5.798 -6.558 14.236 1.212 + -7.111 14.954 1.748 -7.447 13.619 1.843 -6.740 -10.078 0.800 16.500 + -10.114 0.517 17.414 -10.057 -0.015 15.998 -1.171 -19.423 13.592 -0.630 + -18.634 13.561 -0.549 -20.133 13.753 12.358 1.102 -13.020 11.881 1.886 + -12.749 11.830 0.731 -13.727 18.146 -3.319 -3.203 18.713 -2.676 -3.629 + 17.460 -2.795 -2.789 -0.764 7.252 7.278 0.028 6.928 7.708 -1.464 + 7.084 7.909 -1.942 -9.133 8.594 -2.003 -8.529 9.334 -2.310 -8.646 + 7.856 10.793 11.564 -2.102 10.410 12.429 -1.955 11.217 11.346 -1.272 + 20.421 -4.841 4.101 20.776 -3.961 3.978 20.777 -5.348 3.371 15.508 + 2.212 -10.601 15.643 3.144 -10.772 16.081 2.018 -9.860 -19.786 4.324 + 6.756 -19.935 3.395 6.931 -20.283 4.779 7.437 7.657 -7.018 -3.078 + 7.792 -7.878 -3.476 7.639 -6.411 -3.818 14.958 7.592 13.881 14.061 + 7.315 13.693 15.365 6.828 14.289 17.202 16.307 -8.862 17.368 17.245 + -8.958 16.259 16.216 -8.993 -0.529 14.418 -3.724 0.284 13.957 -3.932 + -0.287 15.026 -3.025 0.914 -2.289 0.590 0.022 -2.140 0.278 0.966 + -1.796 1.410 8.418 14.739 -13.059 9.290 14.345 -13.069 8.332 15.108 + -12.180 -0.905 -5.628 10.753 -0.930 -4.688 10.933 -0.088 -5.757 10.270 + -15.518 -9.024 13.944 -15.028 -9.812 14.177 -15.712 -8.605 14.782 11.531 + -6.470 -2.941 11.286 -7.368 -3.164 12.325 -6.561 -2.415 -1.300 8.215 + -7.309 -1.700 8.596 -8.091 -2.041 7.988 -6.747 -13.192 -10.512 -3.574 + -13.209 -10.264 -2.650 -12.262 -10.543 -3.797 -20.827 -5.138 -1.710 -20.825 + -4.302 -2.176 -20.468 -4.932 -0.847 -7.357 2.207 -19.250 -6.982 3.027 + -18.928 -8.045 2.480 -19.857 -12.638 -5.449 8.314 -13.023 -5.020 9.078 + -11.707 -5.230 8.361 6.401 4.356 12.322 5.998 3.795 12.984 5.834 + 4.266 11.555 5.912 10.029 -0.163 5.349 9.952 -0.933 5.808 9.195 + 0.295 -9.257 -16.699 5.370 -9.131 -16.344 6.250 -8.823 -17.552 5.391 + -7.336 -11.603 14.813 -6.530 -12.117 14.774 -7.089 -10.806 15.282 17.753 + 7.185 -8.295 17.668 8.138 -8.250 18.697 7.028 -8.304 -19.719 13.333 + -8.733 -20.447 13.372 -9.352 -20.037 12.774 -8.024 5.348 -3.881 19.260 + 4.431 -3.605 19.245 5.313 -4.833 19.170 2.294 -8.354 0.727 1.893 + -8.898 1.405 2.280 -8.901 -0.058 8.748 -4.895 18.487 9.188 -4.172 + 18.040 7.825 -4.793 18.256 -9.616 5.842 -0.570 -9.310 6.350 -1.321 + -9.047 5.072 -0.554 11.375 -2.089 21.880 11.624 -1.281 22.330 10.478 + -1.932 21.586 -2.179 -0.743 20.935 -2.896 -0.395 21.466 -2.552 -0.829 + 20.057 -4.357 9.199 20.564 -4.120 8.510 19.942 -5.225 9.488 20.282 + 0.137 0.594 17.790 -0.161 -0.275 18.059 -0.091 0.648 16.862 -10.414 + -16.786 -10.285 -10.362 -15.852 -10.485 -9.511 -17.097 -10.357 0.255 15.783 + -1.527 0.432 16.702 -1.727 0.801 15.594 -0.764 11.350 12.865 -4.552 + 10.459 12.891 -4.902 11.300 12.258 -3.814 -10.376 -0.054 -13.536 -11.298 + 0.058 -13.764 -10.297 0.326 -12.662 -18.574 5.629 -11.387 -18.224 4.808 + -11.734 -17.865 5.983 -10.850 -1.922 -23.269 -4.440 -1.685 -22.367 -4.226 + -1.669 -23.373 -5.357 -11.634 -0.915 -5.837 -12.236 -1.329 -5.218 -11.420 + -1.608 -6.462 2.143 -14.674 15.152 1.391 -14.170 15.462 2.200 -15.415 + 15.755 10.137 4.813 -7.174 9.973 5.234 -6.330 10.136 3.876 -6.978 + -13.255 5.188 4.709 -13.977 4.871 5.251 -13.415 4.804 3.847 4.945 + 0.492 20.964 5.047 0.150 21.852 3.998 0.551 20.838 -0.180 1.122 + 21.429 -0.873 1.704 21.117 -0.619 0.285 21.580 -17.780 -9.115 -12.074 + -18.018 -9.682 -12.808 -18.617 -8.858 -11.688 -20.512 -4.859 -7.260 -20.973 + -5.054 -8.075 -20.497 -5.691 -6.787 2.476 -3.012 19.094 2.246 -3.109 + 18.170 1.634 -2.947 19.546 -14.013 -7.901 1.785 -14.355 -7.766 2.669 + -13.679 -8.797 1.792 8.586 -11.976 13.628 8.316 -12.892 13.698 7.892 + -11.560 13.116 -1.003 4.603 -21.380 -1.108 4.137 -20.550 -0.723 3.930 + -21.999 0.835 15.739 5.156 -0.098 15.530 5.127 1.251 15.049 4.639 + -1.701 -19.697 6.775 -1.703 -19.718 5.818 -2.433 -19.124 7.003 18.769 + 9.032 -2.444 18.949 9.878 -2.034 18.139 9.230 -3.137 -19.298 7.904 + -12.561 -19.222 8.576 -11.884 -18.927 7.118 -12.162 -9.983 9.262 -2.491 + -9.178 8.749 -2.566 -10.547 8.925 -3.188 -14.332 9.358 -2.353 -13.785 + 9.852 -1.742 -14.011 8.459 -2.289 8.154 17.206 0.336 7.714 17.606 + -0.415 7.735 16.351 0.432 3.469 -7.828 -13.194 3.294 -6.892 -13.091 + 3.366 -7.989 -14.131 3.041 4.481 -20.701 3.747 5.034 -20.367 2.339 + 5.094 -20.918 -7.035 16.165 -14.698 -6.637 15.680 -15.420 -6.632 15.798 + -13.911 9.227 12.174 -6.363 9.252 11.748 -7.220 8.547 11.703 -5.882 + -9.922 -9.980 11.695 -10.473 -9.287 11.331 -10.098 -10.742 11.143 -6.703 + -22.918 3.166 -6.265 -22.626 3.965 -6.839 -22.116 2.661 -9.395 -6.317 + 11.566 -9.639 -5.685 10.890 -10.210 -6.775 11.772 18.948 3.337 15.104 + 18.299 3.041 14.466 18.596 3.061 15.950 7.113 7.583 -7.511 6.638 + 8.048 -6.821 7.985 7.977 -7.509 -6.879 -6.301 9.397 -6.914 -7.014 + 8.759 -7.047 -5.511 8.883 -1.809 13.792 13.368 -1.044 14.366 13.391 + -1.531 13.003 13.834 5.406 -9.191 21.722 6.062 -9.883 21.642 5.045 + -9.303 22.601 17.260 12.762 9.203 17.981 12.393 8.693 16.654 12.031 + 9.325 11.120 -6.199 -10.090 11.903 -5.696 -9.869 11.307 -7.084 -9.776 + 7.985 4.687 16.944 7.412 5.055 16.271 8.608 5.386 17.137 10.997 + 4.355 17.334 10.386 5.086 17.434 10.504 3.697 16.844 -16.726 -5.712 + 2.097 -16.118 -5.145 2.573 -16.670 -6.554 2.548 6.439 3.662 6.383 + 7.104 4.280 6.686 6.589 2.873 6.903 -15.781 7.269 -11.237 -15.629 + 6.324 -11.215 -14.967 7.650 -10.909 6.278 15.656 -6.022 7.142 16.003 + -5.799 5.918 16.291 -6.642 8.500 -10.060 1.077 8.493 -9.322 1.686 + 8.876 -10.783 1.580 20.292 -3.404 -9.214 19.742 -3.976 -8.678 19.806 + -2.581 -9.261 -2.367 -12.347 -6.345 -2.089 -11.464 -6.103 -2.199 -12.403 + -7.286 -14.186 16.444 0.035 -14.171 16.415 -0.922 -14.686 15.669 0.290 + 14.778 16.871 -2.371 14.760 16.619 -1.448 14.585 16.062 -2.845 -5.040 + -9.391 -8.478 -4.662 -9.291 -7.604 -5.891 -9.802 -8.324 17.894 8.062 + -0.048 18.255 8.110 -0.933 18.661 8.041 0.524 4.264 -13.081 11.345 + 3.661 -13.687 10.914 5.135 -13.423 11.140 -12.741 -8.146 13.792 -12.900 + -7.689 14.618 -13.468 -8.764 13.717 -3.263 -15.533 11.723 -2.644 -16.081 + 11.241 -3.599 -16.103 12.415 1.591 -20.480 -7.638 1.415 -19.587 -7.343 + 0.793 -20.742 -8.098 6.816 -19.228 -15.305 7.302 -18.967 -14.523 5.909 + -18.990 -15.113 0.997 -17.364 5.645 1.661 -17.760 5.080 0.237 -17.939 + 5.560 -5.861 13.607 13.491 -5.875 13.666 14.446 -6.737 13.883 13.221 + 2.581 -6.384 11.791 2.332 -7.262 11.501 2.254 -5.803 11.104 10.125 + 8.856 -11.224 9.651 9.584 -11.625 10.562 9.244 -10.466 5.785 4.867 + 15.312 5.560 5.737 14.982 4.957 4.388 15.309 3.827 -5.829 14.122 + 4.671 -6.276 14.062 3.410 -5.989 13.275 -11.399 11.631 -7.386 -12.029 + 12.139 -7.896 -11.866 10.826 -7.162 1.712 4.687 20.082 1.176 5.479 + 20.126 1.101 3.999 19.820 -1.564 -12.726 -9.314 -1.006 -13.490 -9.458 + -2.349 -12.901 -9.832 16.792 12.398 -8.861 16.673 12.764 -9.737 17.589 + 12.813 -8.533 5.190 -13.298 7.796 4.349 -13.195 8.241 5.776 -12.690 + 8.247 -1.063 -3.126 11.747 -0.568 -3.658 12.371 -0.856 -2.223 11.986 + 13.646 12.621 -5.619 12.819 12.292 -5.268 13.590 13.571 -5.513 -18.355 + 0.535 5.540 -18.704 1.143 4.888 -17.506 0.267 5.187 -4.898 -5.464 + 14.326 -4.188 -6.105 14.371 -4.539 -4.747 13.803 -0.113 -9.730 18.303 + 0.389 -9.006 18.679 0.069 -9.686 17.365 11.285 14.232 -12.938 11.777 + 14.334 -13.752 11.586 13.398 -12.578 17.085 -2.850 -7.437 16.129 -2.824 + -7.409 17.302 -3.779 -7.353 -2.850 -15.864 -14.279 -2.894 -15.700 -15.221 + -3.489 -15.260 -13.900 -11.380 -8.597 -7.185 -11.705 -9.337 -6.672 -11.691 + -7.824 -6.713 -16.412 -10.819 0.302 -16.196 -11.473 0.967 -16.678 -10.048 + 0.803 -3.255 -0.588 18.462 -3.898 -1.207 18.810 -3.781 0.123 18.098 + 18.925 -8.206 -7.415 19.189 -7.358 -7.774 19.067 -8.122 -6.472 3.646 + 17.552 -1.698 3.589 18.222 -1.017 3.338 16.751 -1.273 7.051 2.377 + 9.362 7.907 2.315 8.938 7.240 2.302 10.297 -0.534 -17.154 -4.995 + -1.005 -17.717 -4.380 -0.914 -16.286 -4.864 -12.597 9.482 3.733 -13.366 + 8.969 3.982 -12.797 10.371 4.025 16.316 -14.872 -11.429 15.415 -14.712 + -11.710 16.308 -14.700 -10.488 -9.082 -5.347 -15.499 -9.298 -4.686 -14.841 + -8.286 -5.017 -15.916 -3.709 10.877 -11.404 -4.622 11.086 -11.605 -3.378 + 11.658 -10.960 0.398 -18.509 -11.796 1.054 -18.474 -11.100 0.576 -17.736 + -12.332 -11.707 13.734 -1.005 -12.416 13.097 -1.094 -11.718 13.976 -0.079 + -21.395 5.609 -10.802 -21.760 5.417 -11.665 -20.447 5.590 -10.933 -7.537 + 16.782 15.238 -7.042 16.644 14.430 -8.227 17.399 14.993 1.419 22.005 + 0.445 1.860 22.465 -0.270 2.096 21.897 1.113 -9.050 3.714 3.563 + -9.323 3.386 2.706 -9.653 3.300 4.181 -20.480 1.571 -12.231 -19.997 + 1.882 -12.996 -19.833 1.559 -11.526 9.959 -8.188 -20.657 10.455 -8.549 + -21.392 9.327 -7.595 -21.064 -4.233 -6.540 -7.100 -3.992 -6.329 -8.002 + -3.534 -7.116 -6.793 1.090 -14.982 -0.113 0.658 -15.822 -0.271 1.276 + -14.640 -0.987 -5.535 19.308 -8.330 -5.585 19.189 -7.382 -5.967 20.148 + -8.489 -4.872 -8.940 12.752 -4.610 -9.140 11.853 -5.818 -8.804 12.700 + 6.016 14.044 8.795 5.754 13.124 8.829 6.972 14.019 8.742 -12.751 + -1.198 -0.550 -13.202 -0.836 -1.313 -12.632 -2.125 -0.760 -20.873 -11.694 + -8.572 -20.673 -10.964 -7.985 -20.016 -12.042 -8.820 -2.743 -2.343 23.190 + -2.631 -2.036 22.290 -3.198 -1.627 23.632 10.268 22.556 1.809 9.967 + 21.743 2.215 11.162 22.668 2.132 -11.699 7.570 -7.634 -12.056 7.536 + -8.522 -10.934 8.141 -7.706 -9.260 -17.174 -7.617 -9.829 -16.426 -7.798 + -9.529 -17.839 -8.252 -17.745 -5.297 -8.566 -18.212 -5.081 -9.373 -18.116 + -6.136 -8.292 17.114 7.736 11.048 17.987 8.028 11.308 16.584 8.533 + 11.050 3.875 22.556 6.754 3.147 22.371 7.348 4.650 22.540 7.315 + -12.732 -20.607 -0.868 -12.414 -19.988 -1.525 -12.093 -21.320 -0.882 8.197 + -18.781 16.865 7.679 -18.003 16.660 7.551 -19.481 16.961 17.594 4.657 + -9.505 18.294 4.481 -10.134 17.679 5.590 -9.307 -4.824 1.334 17.379 + -4.967 1.535 16.454 -5.676 1.480 17.790 -12.332 -0.236 19.079 -13.085 + -0.552 19.579 -12.672 -0.101 18.195 -9.151 10.564 -19.108 -9.443 10.824 + -19.982 -8.255 10.253 -19.238 -2.358 13.293 -10.598 -2.686 13.717 -9.805 + -1.412 13.433 -10.570 9.771 2.094 9.042 10.082 2.992 8.928 10.548 + 1.604 9.311 -10.097 -21.679 3.439 -9.640 -21.834 4.266 -11.018 -21.851 + 3.638 0.989 4.590 22.927 1.255 4.343 22.041 1.795 4.899 23.341 + -13.840 3.523 -7.476 -13.399 2.699 -7.271 -14.702 3.260 -7.798 5.091 + -16.647 -8.353 4.263 -16.228 -8.588 4.857 -17.272 -7.666 -13.504 -20.081 + 2.190 -13.777 -19.237 1.831 -13.357 -20.633 1.422 -20.234 9.257 -8.499 + -20.927 8.599 -8.435 -19.618 8.893 -9.135 4.363 -0.081 -21.325 4.879 + -0.692 -21.851 4.584 0.782 -21.675 15.567 18.422 -6.173 14.848 18.632 + -5.577 16.256 19.047 -5.948 0.047 -21.895 13.134 0.273 -21.817 12.208 + -0.524 -22.663 13.178 8.773 -5.533 15.149 9.280 -5.973 14.468 9.249 + -4.719 15.314 -7.919 0.763 18.888 -7.269 0.215 18.449 -7.415 1.265 + 19.528 12.125 3.219 -7.684 11.634 4.005 -7.445 12.466 3.406 -8.559 + 5.517 -20.041 -10.561 5.780 -19.753 -9.687 6.221 -20.626 -10.842 -4.368 + 16.056 17.147 -4.820 15.856 16.328 -5.071 16.183 17.784 -14.545 -13.584 + -0.711 -13.973 -13.704 -1.469 -15.367 -14.004 -0.964 -1.974 4.428 -15.024 + -1.232 3.824 -15.042 -1.715 5.144 -15.604 -1.577 7.185 -1.177 -1.101 + 7.987 -0.960 -2.174 7.054 -0.441 13.233 -8.403 -0.308 13.013 -9.334 + -0.311 13.071 -8.121 0.592 -15.395 15.709 12.871 -14.583 15.307 12.563 + -15.798 15.040 13.425 -8.370 -13.417 -10.302 -7.803 -12.688 -10.046 -7.824 + -13.956 -10.874 -2.979 9.040 -13.248 -3.053 9.682 -12.542 -3.863 8.688 + -13.346 19.820 13.255 4.676 19.518 13.886 4.023 19.027 12.793 4.946 + 6.467 -1.083 2.407 6.441 -0.872 1.474 6.669 -2.018 2.436 -18.614 + -8.172 4.785 -18.763 -7.587 5.528 -17.678 -8.370 4.820 -6.306 20.277 + 9.062 -5.971 20.829 8.355 -5.823 19.456 8.974 -2.339 -5.267 -4.152 + -1.929 -4.595 -3.607 -2.338 -4.894 -5.033 11.702 15.203 -10.341 11.518 + 14.552 -11.017 11.609 16.045 -10.787 -8.704 -8.999 2.412 -9.153 -9.197 + 1.590 -8.760 -8.047 2.492 -5.490 -22.014 5.286 -5.172 -22.234 6.161 + -5.044 -21.195 5.069 -3.096 -3.876 3.151 -2.267 -4.342 3.048 -2.976 + -3.346 3.939 -17.958 -15.836 -5.584 -18.602 -15.554 -4.934 -17.438 -15.052 + -5.762 -1.360 -19.355 3.808 -1.942 -20.114 3.770 -1.884 -18.633 3.459 + -13.930 -5.369 -17.115 -13.972 -4.662 -16.472 -14.826 -5.448 -17.443 6.732 + -1.469 20.122 6.040 -0.815 20.217 6.266 -2.302 20.043 10.982 10.023 + 14.486 11.335 9.301 15.006 10.193 9.662 14.081 1.021 9.312 -12.434 + 0.648 8.556 -12.888 0.513 10.058 -12.755 -4.406 14.778 -2.244 -4.705 + 13.874 -2.341 -3.743 14.737 -1.555 -15.783 9.327 -7.527 -15.781 10.148 + -8.019 -16.705 9.172 -7.323 -1.236 -3.917 -14.398 -1.158 -3.129 -14.935 + -0.373 -4.020 -13.996 4.924 9.461 -11.328 5.420 8.810 -11.824 5.534 + 9.763 -10.654 -10.647 5.102 -11.223 -11.130 4.634 -10.542 -10.489 4.444 + -11.900 -3.353 4.172 -12.371 -2.743 4.260 -13.103 -3.770 3.322 -12.507 + -9.770 -12.177 10.119 -9.483 -11.618 9.397 -9.120 -12.880 10.150 20.318 + 1.575 -5.094 19.972 1.014 -4.400 20.999 1.048 -5.512 1.265 22.634 + 8.360 0.611 21.980 8.113 0.871 23.471 8.115 11.966 -15.377 -6.115 + 11.807 -14.545 -5.668 11.268 -15.953 -5.803 -9.165 11.368 0.695 -9.816 + 12.065 0.609 -9.663 10.613 1.006 6.525 -6.714 -20.173 7.223 -6.525 + -19.545 5.963 -7.345 -19.724 8.920 15.835 12.116 8.929 16.683 12.560 + 7.994 15.662 11.948 13.024 7.283 -8.596 13.482 6.748 -9.245 13.572 + 7.231 -7.813 -19.555 -3.000 13.921 -19.537 -3.868 14.324 -19.912 -2.428 + 14.600 -18.110 4.731 15.763 -18.227 4.351 16.633 -18.946 4.581 15.322 + -14.169 -8.086 10.063 -14.932 -8.296 10.601 -14.431 -7.312 9.565 14.391 + 1.842 11.467 15.168 1.399 11.127 13.996 1.209 12.067 15.898 -6.835 + 16.318 16.661 -7.107 16.828 15.504 -6.132 16.834 -0.624 -5.857 15.105 + -0.548 -5.783 16.056 -1.511 -6.186 14.959 -4.984 19.569 -13.322 -4.423 + 19.654 -14.093 -5.313 20.454 -13.167 20.617 2.052 10.617 19.825 2.560 + 10.439 20.740 2.124 11.563 -16.187 -3.006 -15.895 -16.883 -3.174 -16.530 + -15.784 -2.189 -16.191 1.501 -11.770 -7.863 2.272 -12.058 -7.374 0.771 + -12.238 -7.457 -5.204 1.460 14.642 -5.805 0.778 14.343 -5.207 2.108 + 13.937 -18.894 4.014 10.790 -19.207 3.340 10.187 -19.549 4.709 10.733 + 1.043 -10.102 -5.170 1.805 -10.186 -5.743 1.176 -9.270 -4.716 6.423 + -2.124 14.528 6.526 -1.878 13.609 5.598 -2.608 14.555 -19.917 -1.430 + 3.735 -20.110 -1.482 4.671 -20.381 -0.647 3.438 -3.166 -6.879 17.923 + -3.980 -6.924 17.422 -2.909 -7.793 18.045 4.033 5.393 -2.054 3.286 + 5.982 -2.155 4.744 5.957 -1.751 -11.762 3.011 12.488 -12.024 2.395 + 11.805 -11.322 3.719 12.017 -8.617 -0.443 8.268 -8.676 -1.133 8.929 + -8.699 0.372 8.763 2.954 1.880 16.990 3.057 1.659 17.915 2.968 + 1.035 16.539 -10.381 -13.280 -4.090 -11.147 -12.908 -4.526 -9.656 -12.714 + -4.355 2.901 -15.304 -9.018 2.557 -14.474 -9.349 2.123 -15.802 -8.767 + 10.479 -5.554 9.648 9.814 -5.788 10.295 10.278 -4.648 9.414 -3.528 + 21.146 -4.082 -2.780 21.143 -4.679 -3.256 20.587 -3.354 1.137 2.292 + 12.171 1.118 1.362 11.948 2.033 2.448 12.471 19.687 -1.124 9.224 + 18.929 -1.694 9.355 19.435 -0.553 8.498 -5.918 -10.024 -15.652 -6.719 + -9.547 -15.437 -5.881 -10.012 -16.609 16.496 -10.639 11.034 16.306 -9.965 + 10.381 15.636 -10.910 11.354 20.023 -1.462 -3.594 19.850 -0.680 -3.069 + 20.803 -1.850 -3.197 -10.824 -14.227 -10.974 -9.989 -13.903 -10.637 -11.049 + -13.620 -11.680 14.394 6.224 -13.717 13.444 6.151 -13.811 14.646 6.896 + -14.351 -16.236 1.669 9.420 -15.730 0.890 9.652 -15.998 1.847 8.510 + -4.985 11.931 -2.078 -5.825 11.919 -2.537 -4.800 11.010 -1.893 1.728 + 22.806 -7.818 2.241 22.773 -7.011 2.162 23.472 -8.350 13.288 4.438 + 10.598 13.731 3.591 10.541 12.555 4.367 9.986 -3.319 20.987 -10.441 + -3.603 21.543 -9.716 -3.927 20.247 -10.428 -18.101 0.622 12.188 -17.670 + 0.918 11.386 -18.456 -0.239 11.965 15.418 2.475 15.363 14.763 2.067 + 15.929 16.230 2.433 15.867 1.796 -1.669 22.879 1.816 -1.469 23.814 + 2.685 -1.962 22.678 4.360 -11.726 19.888 4.018 -12.577 20.160 5.224 + -11.674 20.298 -10.630 3.101 8.442 -10.056 2.585 9.008 -10.574 3.991 + 8.790 -0.263 13.844 -16.043 0.324 13.250 -16.512 0.001 14.718 -16.332 + -11.814 11.631 16.257 -11.640 12.520 15.946 -12.749 11.502 16.101 13.823 + -9.137 -13.969 14.281 -8.729 -14.704 14.522 -9.431 -13.385 1.987 13.121 + 14.634 2.086 12.178 14.763 1.525 13.423 15.415 -4.195 -12.002 -14.551 + -3.441 -11.550 -14.172 -4.830 -11.307 -14.722 11.874 -5.827 19.138 10.917 + -5.847 19.163 12.092 -5.952 18.214 -0.391 -0.167 -24.863 -0.147 0.648 + -25.302 -1.318 -0.057 -24.651 16.402 15.716 -6.126 16.765 15.722 -7.011 + 15.830 16.483 -6.096 13.277 0.138 13.456 12.714 0.502 14.138 13.596 + -0.687 13.823 7.075 -10.718 -19.530 8.016 -10.715 -19.707 6.814 -9.800 + -19.611 -19.568 -9.263 -9.725 -18.983 -10.010 -9.602 -19.233 -8.596 -9.126 + 7.910 -11.533 -9.905 7.803 -12.483 -9.853 7.392 -11.275 -10.667 -2.031 + 17.621 -11.992 -1.892 18.566 -12.059 -2.721 17.527 -11.335 -19.846 -11.239 + 6.142 -20.205 -11.290 5.256 -19.904 -12.134 6.475 11.349 -16.853 -1.311 + 10.524 -17.034 -1.763 12.005 -17.343 -1.806 -11.115 16.714 11.346 -10.294 + 16.955 10.916 -11.735 17.391 11.074 -4.024 0.461 1.556 -4.210 -0.264 + 0.960 -3.105 0.675 1.394 5.009 -12.275 -18.639 4.614 -12.423 -19.499 + 5.748 -11.693 -18.812 -8.206 -8.619 -15.214 -8.591 -8.047 -14.548 -8.666 + -8.389 -16.021 -1.332 21.263 0.227 -0.449 21.597 0.070 -1.908 21.903 + -0.190 -15.865 4.051 5.405 -16.146 4.339 6.274 -16.513 4.424 4.808 + -4.788 10.737 17.166 -3.923 11.072 17.405 -5.344 10.956 17.913 -13.092 + -8.114 -4.949 -13.421 -8.983 -4.721 -12.743 -7.767 -4.128 -0.463 16.613 + -6.686 -1.371 16.348 -6.537 -0.506 17.206 -7.435 11.712 13.682 0.036 + 11.827 14.308 0.752 12.603 13.480 -0.250 0.915 6.706 13.595 1.266 + 6.759 14.484 0.019 7.034 13.672 -3.282 -16.567 -1.838 -3.132 -16.012 + -2.603 -4.055 -16.190 -1.417 4.759 13.774 15.143 3.821 13.721 14.958 + 4.828 13.601 16.082 0.476 5.966 17.778 -0.206 5.578 17.230 0.854 + 5.224 18.251 17.329 -2.219 -17.690 16.498 -2.076 -17.237 17.161 -1.941 + -18.591 2.774 -8.992 20.180 3.235 -9.327 20.949 3.205 -9.416 19.438 + -5.140 17.428 -1.353 -5.466 17.247 -0.472 -4.856 16.575 -1.683 -9.420 + 16.542 2.217 -10.067 16.540 1.511 -9.873 16.139 2.958 10.683 -15.156 + 15.473 9.771 -15.020 15.219 10.912 -14.372 15.972 19.538 -7.125 0.086 + 19.035 -7.907 0.311 18.886 -6.507 -0.246 1.328 8.711 19.296 0.839 + 7.905 19.128 1.640 8.985 18.433 17.187 -5.917 -11.696 17.270 -5.522 + -10.828 17.143 -6.858 -11.528 4.207 -8.254 -19.794 3.594 -7.633 -20.185 + 3.706 -9.066 -19.711 4.020 8.574 3.282 4.057 8.580 2.326 4.631 + 9.260 3.550 -3.967 0.400 5.863 -3.220 0.998 5.887 -4.731 0.972 + 5.795 -1.419 9.388 17.453 -1.854 8.782 18.053 -1.233 10.161 17.986 + -7.495 -10.836 -9.781 -7.800 -10.314 -9.039 -8.296 -11.125 -10.217 -2.420 + 2.694 3.969 -3.338 2.957 3.909 -2.075 3.191 4.710 -16.672 -6.553 + -12.497 -17.537 -6.895 -12.724 -16.140 -7.333 -12.340 -6.508 8.505 9.280 + -7.134 9.229 9.316 -5.700 8.870 9.639 1.129 7.089 1.195 0.832 + 7.539 0.404 1.310 6.194 0.907 -6.549 -1.620 6.714 -6.140 -1.187 + 5.966 -7.159 -0.970 7.063 8.625 20.706 -7.229 9.024 19.836 -7.185 + 9.298 21.258 -7.627 -19.421 13.912 8.171 -18.694 14.526 8.074 -19.394 + 13.380 7.376 18.507 11.725 1.800 19.071 11.324 2.461 17.734 11.161 + 1.771 -5.373 3.765 12.954 -4.874 4.582 12.976 -5.099 3.339 12.142 + -4.689 5.189 8.990 -4.611 5.296 8.042 -5.170 5.964 9.280 -16.806 + 11.696 7.205 -17.543 11.794 7.808 -16.141 11.232 7.713 -8.708 0.687 + 5.487 -8.946 0.500 6.395 -9.529 0.602 5.002 -4.903 12.681 -5.140 + -5.006 13.587 -4.847 -4.093 12.385 -4.725 -3.760 -21.232 3.357 -4.413 + -20.886 2.748 -3.734 -22.171 3.173 10.093 -10.646 15.685 9.715 -9.841 + 16.040 9.449 -10.951 15.046 20.483 -11.860 -11.420 20.931 -12.074 -10.603 + 19.996 -11.059 -11.224 -6.302 12.969 10.279 -5.433 13.351 10.405 -6.223 + 12.077 10.618 -10.462 1.649 19.984 -9.573 1.319 19.858 -11.026 0.908 + 19.764 7.728 -4.840 -24.080 7.842 -5.476 -24.787 7.459 -4.035 -24.524 + -19.595 -3.624 -12.693 -19.800 -2.755 -12.349 -18.647 -3.706 -12.588 -20.596 + -5.245 -10.777 -20.125 -4.683 -11.392 -21.175 -4.649 -10.303 -6.929 0.192 + 10.923 -7.034 -0.068 11.838 -6.002 0.414 10.841 -10.567 -19.055 3.188 + -10.368 -19.984 3.074 -11.522 -19.010 3.164 -4.571 -5.736 -17.656 -4.465 + -6.488 -17.074 -5.147 -5.141 -17.176 -20.401 -7.604 -5.512 -19.980 -7.433 + -4.669 -20.097 -8.477 -5.759 3.142 6.828 12.138 2.341 6.555 12.585 + 2.869 7.556 11.580 -8.295 6.233 -9.883 -9.147 6.037 -10.273 -7.674 + 5.711 -10.390 18.519 -2.562 17.361 18.115 -2.787 18.199 19.310 -2.078 + 17.599 5.155 11.113 3.049 5.928 10.596 2.824 4.725 11.279 2.211 + 11.938 9.631 -9.196 12.631 10.255 -8.977 12.314 8.775 -8.992 -9.071 + 17.619 -0.312 -8.661 16.891 -0.780 -8.840 17.475 0.605 -2.591 10.817 + 12.694 -1.809 11.068 13.186 -2.308 10.081 12.152 -7.385 -0.929 0.514 + -7.237 -0.072 0.914 -7.074 -0.830 -0.385 14.286 -11.669 11.857 13.428 + -12.074 11.982 14.481 -11.257 12.698 0.007 -19.742 8.906 0.755 -20.117 + 8.440 -0.686 -19.693 8.247 -8.203 8.587 -12.326 -7.908 8.451 -11.426 + -8.783 7.846 -12.503 -9.964 -18.911 -5.206 -9.206 -19.276 -4.750 -9.590 + -18.422 -5.939 -19.766 8.638 0.231 -19.472 8.415 -0.652 -19.414 9.515 + 0.386 0.055 18.305 -4.643 0.171 18.048 -3.728 0.098 17.482 -5.130 + -18.154 -0.603 -9.956 -18.128 -1.315 -9.317 -19.030 -0.657 -10.338 17.182 + -8.812 9.092 18.066 -8.988 8.769 17.204 -7.894 9.362 6.830 13.411 + 2.871 6.795 13.450 3.827 6.237 12.696 2.639 -5.396 13.972 2.698 + -5.867 13.166 2.910 -5.506 14.524 3.472 -21.112 -0.975 -6.330 -20.213 + -1.290 -6.240 -21.647 -1.769 -6.324 -17.854 -9.166 1.759 -18.536 -9.165 + 1.088 -18.331 -9.095 2.586 -0.723 -5.187 2.528 -0.325 -5.819 3.128 + -0.266 -5.325 1.698 -8.039 6.061 8.199 -8.288 6.244 7.293 -7.502 + 6.811 8.456 -0.601 -22.267 2.418 -0.848 -21.446 1.992 -0.222 -22.796 + 1.716 -3.547 14.601 7.538 -4.045 13.831 7.812 -3.296 15.029 8.356 + 14.963 -4.734 -2.120 14.688 -4.415 -1.261 14.440 -4.228 -2.742 -5.749 + 14.786 6.066 -4.956 14.930 6.582 -6.153 15.652 6.001 15.875 -10.071 + -12.474 16.513 -9.392 -12.258 15.615 -10.434 -11.627 -7.694 -12.627 0.354 + -7.550 -12.812 1.282 -6.976 -12.043 0.112 -9.650 5.615 12.398 -9.181 + 4.783 12.457 -8.987 6.278 12.590 -10.008 -5.012 8.949 -10.267 -4.093 + 9.025 -9.067 -4.981 8.778 11.565 -15.004 12.404 10.916 -15.181 13.085 + 11.047 -14.825 11.620 -1.719 -22.297 9.625 -1.060 -22.244 8.934 -1.630 + -23.184 9.974 -9.823 -4.410 15.963 -10.449 -4.544 15.251 -10.359 -4.415 + 16.756 -1.568 10.876 5.717 -2.253 11.521 5.539 -1.863 10.425 6.508 + -2.997 13.443 -18.143 -2.621 12.563 -18.166 -2.785 13.771 -17.268 5.800 + -4.163 -21.007 6.237 -4.995 -20.822 5.796 -3.703 -20.168 -3.590 -12.722 + 4.703 -4.242 -12.823 5.396 -2.801 -12.425 5.156 3.602 -14.279 3.885 + 4.342 -13.980 4.413 3.962 -14.986 3.348 3.836 12.158 0.573 3.047 + 11.705 0.868 3.887 11.966 -0.364 -7.536 12.002 3.035 -8.033 12.751 + 3.363 -7.965 11.773 2.210 4.790 15.783 6.776 5.268 15.189 7.355 + 5.378 16.530 6.663 -6.032 17.507 6.146 -5.095 17.426 5.970 -6.324 + 18.210 5.565 11.511 -7.807 -17.513 11.745 -6.884 -17.413 12.344 -8.250 + -17.673 2.426 18.748 2.211 1.772 18.285 2.735 2.553 19.580 2.667 + 19.947 -14.710 8.175 19.525 -14.007 7.681 19.392 -15.475 8.024 2.413 + 1.198 20.412 2.054 0.353 20.140 1.654 1.689 20.729 9.854 13.079 + 6.840 10.322 12.318 7.183 10.339 13.323 6.051 -3.421 -0.543 14.072 + -3.957 -1.300 13.838 -4.039 0.080 14.453 -3.787 2.981 -19.147 -3.932 + 2.711 -18.240 -2.911 3.368 -19.145 0.910 11.961 18.132 0.297 11.574 + 18.757 0.617 12.867 18.038 -12.277 5.860 17.328 -11.512 5.303 17.471 + -12.453 5.789 16.390 -7.267 7.847 3.310 -7.201 7.121 3.931 -8.068 + 7.669 2.817 -0.916 -10.174 3.770 -0.989 -10.926 4.357 -1.278 -10.483 + 2.939 13.401 -10.486 -6.829 13.030 -9.636 -7.063 12.861 -11.121 -7.299 + 8.734 -7.903 -17.689 8.788 -8.814 -17.400 9.646 -7.627 -17.783 -2.909 + 13.785 -15.456 -2.791 13.967 -14.524 -2.027 13.598 -15.778 10.946 -0.082 + 0.071 11.415 -0.576 -0.601 10.442 0.568 -0.418 19.370 0.587 -2.196 + 18.940 -0.042 -1.616 19.654 1.293 -1.615 -4.880 4.676 23.449 -4.732 + 5.622 23.461 -4.957 4.434 24.372 11.809 -13.131 -4.486 11.216 -13.485 + -3.823 12.308 -12.456 -4.026 -2.150 -11.633 1.823 -2.018 -12.441 1.327 + -2.748 -11.116 1.284 3.722 -3.727 -4.272 4.310 -3.973 -3.558 3.605 + -4.532 -4.775 -3.831 8.316 5.349 -3.902 8.960 6.053 -4.178 8.765 + 4.578 -16.565 11.034 -9.823 -15.649 10.858 -10.038 -16.677 11.968 -9.999 + 8.919 -10.307 -14.401 8.672 -10.572 -15.287 9.850 -10.520 -14.338 12.086 + -6.503 -20.220 11.335 -6.934 -19.811 12.819 -7.098 -20.063 0.159 -9.926 + -11.209 1.080 -9.940 -11.470 -0.008 -10.807 -10.874 -19.385 -3.428 -5.207 + -18.490 -3.518 -5.534 -19.925 -3.866 -5.865 -7.311 10.109 5.076 -7.157 + 9.312 4.569 -7.368 10.804 4.419 12.828 -2.464 17.081 12.034 -2.388 + 17.610 13.544 -2.388 17.712 0.372 15.373 14.400 0.943 14.739 13.967 + 0.791 15.534 15.245 11.692 17.385 6.153 11.916 17.560 5.239 11.797 + 18.229 6.591 -7.100 9.896 20.136 -7.277 9.052 19.720 -7.219 10.537 + 19.435 -8.575 8.260 17.614 -9.508 8.158 17.427 -8.431 9.206 17.608 + 11.020 -16.663 8.443 10.276 -16.225 8.030 10.838 -16.612 9.382 -12.169 + 15.902 8.561 -12.501 15.278 7.915 -12.769 16.646 8.505 -3.303 -17.729 + 7.794 -2.672 -17.020 7.921 -4.073 -17.300 7.420 6.905 4.210 -18.768 + 6.049 3.850 -19.002 7.400 3.457 -18.445 -14.654 -5.843 6.500 -14.111 + -5.456 7.187 -15.311 -6.353 6.973 0.425 -17.129 14.050 0.766 -16.350 + 13.611 0.893 -17.157 14.885 11.916 -11.467 2.241 10.979 -11.641 2.324 + 12.313 -11.942 2.971 5.766 -15.847 8.935 5.990 -15.043 8.466 6.046 + -15.684 9.836 -8.234 -19.312 -2.700 -7.571 -18.660 -2.474 -8.863 -19.274 + -1.980 1.460 -2.823 5.394 0.543 -2.809 5.667 1.479 -2.301 4.592 + 5.497 24.165 1.705 5.548 23.253 1.419 5.817 24.152 2.606 -1.000 + 3.215 6.496 -1.164 2.397 6.965 -0.053 3.340 6.557 0.849 -7.366 + 3.741 1.040 -8.159 3.240 1.650 -6.845 3.680 -15.388 4.520 16.255 + -14.939 4.523 15.410 -16.310 4.389 16.037 0.569 8.308 16.327 0.586 + 7.514 16.861 -0.099 8.858 16.736 11.569 -13.596 -13.586 11.827 -12.701 + -13.809 10.629 -13.539 -13.415 -11.004 1.264 -4.349 -11.128 0.386 -4.710 + -10.965 1.835 -5.117 -14.401 -8.671 -9.655 -13.575 -9.076 -9.392 -14.516 + -7.943 -9.044 0.398 8.572 -16.442 1.080 9.229 -16.584 -0.369 9.079 + -16.174 12.610 10.741 6.001 12.222 9.993 6.454 12.774 11.382 6.693 + -8.644 5.559 15.530 -8.081 6.133 15.011 -8.201 4.710 15.513 -2.206 + 19.030 9.663 -2.923 18.679 10.191 -2.135 18.426 8.924 -12.561 12.271 + -11.743 -11.732 11.832 -11.934 -13.122 12.058 -12.489 -0.406 13.458 9.522 + 0.086 13.053 8.807 -0.068 13.038 10.313 -3.031 -2.057 -9.547 -3.443 + -2.746 -9.026 -3.385 -1.242 -9.188 9.614 -14.257 7.951 10.093 -14.090 + 7.140 8.711 -14.405 7.670 -8.557 14.887 10.409 -8.092 14.129 10.053 + -9.357 14.944 9.887 -11.326 6.755 3.982 -12.137 6.257 4.079 -11.610 + 7.666 3.910 5.655 -20.160 7.040 5.202 -19.388 7.379 6.263 -20.407 + 7.737 -18.211 13.587 1.980 -18.517 14.163 1.280 -17.951 14.182 2.684 + 9.418 -4.130 -9.311 9.877 -3.582 -8.675 10.087 -4.734 -9.634 8.896 + -8.408 16.680 8.553 -8.339 17.571 8.637 -7.589 16.259 -3.715 -0.161 + -5.110 -3.472 0.551 -4.517 -3.140 -0.885 -4.863 4.490 -15.681 13.921 + 3.638 -15.554 14.340 4.852 -14.798 13.844 5.866 21.559 -6.952 5.771 + 22.428 -6.561 6.812 21.430 -7.022 -17.035 6.546 13.953 -17.461 5.812 + 14.396 -16.451 6.135 13.316 11.709 -1.531 -2.424 12.567 -1.820 -2.116 + 11.192 -2.335 -2.483 5.216 -6.902 17.738 5.537 -6.144 17.250 5.965 + -7.183 18.264 15.209 -7.726 13.934 15.267 -7.390 14.828 14.918 -8.632 + 14.036 0.618 -9.153 -1.288 -0.207 -8.725 -1.061 0.400 -10.084 -1.336 + 15.307 -6.110 2.851 14.952 -6.046 3.737 16.143 -5.645 2.894 -9.387 + -21.130 -9.099 -10.145 -20.699 -8.705 -8.860 -21.415 -8.353 -15.112 1.623 + 7.008 -15.656 1.011 6.511 -15.060 2.401 6.452 17.820 4.769 4.823 + 18.749 4.880 5.028 17.655 3.836 4.956 -6.624 -24.355 -4.394 -7.226 + -23.832 -3.865 -7.113 -24.546 -5.194 -0.750 11.306 14.720 -1.148 10.761 + 15.399 0.192 11.218 14.864 9.480 14.257 -1.265 8.689 14.368 -0.738 + 10.175 14.106 -0.624 -9.175 -6.983 5.346 -8.915 -6.897 4.429 -10.125 + -6.865 5.337 -17.744 7.448 -14.984 -17.359 8.318 -15.095 -18.197 7.492 + -14.142 11.117 -1.915 12.096 10.514 -1.964 12.839 11.912 -1.523 12.458 + 0.550 10.274 9.085 0.704 9.491 8.556 0.346 9.936 9.957 -2.554 + -9.478 17.137 -1.708 -9.750 17.493 -2.461 -9.583 16.191 -12.775 -10.406 + 2.146 -12.831 -10.474 3.099 -11.895 -10.064 1.982 -10.367 13.218 -16.668 + -9.568 13.314 -17.186 -10.276 13.862 -15.966 18.937 -11.708 10.250 18.045 + -11.460 10.493 19.069 -11.313 9.388 15.124 4.272 1.643 15.179 3.490 + 1.094 14.772 4.947 1.063 3.674 7.169 -16.613 4.606 7.045 -16.792 + 3.635 7.971 -16.093 3.135 23.523 -5.545 3.273 22.786 -4.951 4.017 + 23.790 -5.804 6.710 -10.082 -1.016 7.266 -10.109 -0.237 7.300 -9.821 + -1.723 -4.644 3.661 -15.091 -4.379 2.975 -15.703 -3.825 4.090 -14.843 + -18.964 7.897 5.068 -18.616 7.078 4.714 -18.264 8.534 4.928 -6.804 + -20.416 2.350 -6.272 -19.622 2.300 -7.228 -20.475 1.495 -10.951 13.925 + -5.614 -11.315 14.505 -6.283 -10.765 13.109 -6.080 8.310 -9.779 7.004 + 8.704 -10.515 6.535 9.054 -9.234 7.261 -2.830 17.467 -16.990 -1.892 + 17.621 -17.099 -2.900 16.529 -16.812 -1.927 -16.109 15.801 -1.057 -15.724 + 15.689 -2.521 -15.359 15.804 -20.882 1.209 -8.246 -19.967 1.351 -8.003 + -21.114 0.379 -7.831 -16.207 -9.655 11.322 -15.948 -9.588 12.241 -17.024 + -9.159 11.267 -8.353 -13.976 6.094 -8.724 -14.318 5.280 -9.061 -13.463 + 6.483 -1.393 -18.443 -2.763 -0.648 -18.402 -2.164 -2.066 -17.905 -2.346 + -2.258 1.846 -21.811 -2.875 2.284 -22.399 -2.719 1.799 -20.974 6.531 + -2.888 -5.598 5.702 -3.363 -5.541 6.845 -3.062 -6.486 -5.635 -1.640 + 19.529 -5.537 -0.872 20.092 -6.581 -1.756 19.444 -11.363 2.979 -17.311 + -11.146 2.075 -17.538 -12.258 3.098 -17.627 -7.499 -3.043 14.839 -8.342 + -3.409 15.105 -6.889 -3.327 15.519 -4.920 8.957 14.881 -4.984 9.558 + 15.624 -4.487 9.467 14.197 -15.250 -5.325 9.515 -14.822 -5.223 10.366 + -15.691 -4.489 9.368 -8.530 6.882 -3.365 -8.135 6.566 -4.178 -9.473 + 6.798 -3.508 6.193 -6.308 -9.316 5.325 -6.709 -9.358 6.775 -7.021 + -9.054 11.067 2.104 12.133 10.235 1.853 11.732 11.729 1.635 11.625 + -4.343 -2.244 0.495 -4.110 -2.808 1.232 -4.691 -2.845 -0.165 -1.156 + 21.209 3.248 -0.581 21.502 2.541 -1.283 20.275 3.083 -5.380 -3.970 + 16.508 -4.594 -3.802 17.027 -5.113 -4.641 15.880 -13.196 6.344 9.672 + -12.329 5.944 9.743 -13.073 7.075 9.066 -5.267 17.887 8.675 -5.316 + 17.061 9.156 -5.669 17.695 7.828 -6.075 -13.592 12.929 -5.258 -13.096 + 12.887 -5.803 -14.485 13.140 4.362 17.564 12.710 4.611 18.482 12.820 + 3.421 17.590 12.536 16.947 0.312 -13.777 17.677 0.595 -13.228 16.210 + 0.853 -13.494 3.496 -11.690 -16.352 4.142 -11.903 -17.025 2.978 -10.980 + -16.733 -8.966 18.948 13.935 -9.586 19.657 14.106 -8.974 18.846 12.983 + 15.096 2.300 -13.504 15.105 3.021 -12.874 14.318 1.792 -13.275 -5.544 + 17.162 13.377 -5.501 18.087 13.621 -4.680 16.815 13.599 18.459 0.281 + -7.062 19.286 0.305 -6.582 17.809 0.024 -6.408 -4.450 -19.007 10.099 + -3.836 -18.628 9.469 -3.904 -19.547 10.670 2.464 0.768 9.865 1.906 + 1.524 9.680 2.392 0.221 9.083 -6.760 5.976 -14.407 -7.350 6.492 + -14.955 -6.460 5.269 -14.978 -1.602 -17.341 10.416 -1.242 -16.933 9.629 + -1.199 -18.209 10.443 -10.990 11.589 9.880 -10.983 11.898 10.787 -11.694 + 12.087 9.464 -15.356 14.968 -9.102 -15.129 15.621 -9.764 -15.966 14.379 + -9.546 4.768 19.317 0.720 3.889 19.176 1.073 4.916 20.258 0.816 + -8.099 10.412 -14.863 -7.905 11.269 -14.485 -8.515 10.609 -15.702 -9.978 + 6.347 -13.541 -9.770 5.622 -14.131 -10.144 5.928 -12.697 11.985 -9.489 + 11.324 11.998 -10.244 11.913 12.816 -9.539 10.852 -14.300 -5.318 12.505 + -13.950 -6.197 12.646 -15.243 -5.410 12.646 -6.056 15.707 0.688 -6.759 + 15.322 0.165 -5.869 15.050 1.358 17.941 9.898 -7.371 17.686 9.914 + -6.449 17.198 10.288 -7.832 -6.353 0.501 -17.406 -6.783 0.955 -18.131 + -6.384 -0.424 -17.651 -12.079 10.440 -0.887 -11.488 10.721 -1.585 -11.561 + 9.825 -0.368 -2.596 16.334 -3.956 -3.313 15.718 -3.804 -1.824 15.780 + -4.070 3.390 -14.526 -16.941 3.168 -13.894 -16.257 4.255 -14.852 -16.694 + 5.151 1.608 14.509 4.490 2.301 14.502 4.700 0.850 14.881 -11.856 + 6.422 20.008 -11.798 5.514 20.306 -12.159 6.358 19.103 -5.563 8.347 + -13.549 -5.700 7.405 -13.644 -6.417 8.688 -13.282 14.806 -10.447 14.404 + 15.480 -10.718 15.027 14.015 -10.901 14.694 3.542 -12.593 -6.458 4.221 + -12.797 -7.101 3.949 -12.782 -5.612 5.593 -2.548 11.611 6.378 -2.493 + 11.065 5.462 -3.486 11.748 9.357 20.914 3.960 8.798 20.238 3.577 + 9.224 20.829 4.904 0.257 9.231 -19.711 0.312 8.343 -20.063 0.827 + 9.220 -18.942 -15.514 1.697 13.163 -15.108 2.529 13.407 -16.440 1.908 + 13.041 17.339 -14.761 6.324 16.574 -14.543 6.855 17.430 -15.709 6.413 + -10.130 -4.602 2.102 -10.765 -4.001 2.490 -9.826 -4.153 1.313 -11.432 + 5.896 -3.624 -11.565 5.034 -3.229 -11.608 5.761 -4.556 -6.047 -2.200 + -4.477 -5.256 -1.905 -4.927 -6.576 -2.606 -5.163 9.283 -5.473 21.294 + 9.277 -5.002 20.461 8.519 -5.138 21.764 14.737 -5.325 7.659 14.527 + -4.977 8.525 15.674 -5.159 7.555 10.696 17.674 0.970 9.741 17.608 + 0.965 10.949 17.559 0.054 -18.657 -16.305 6.889 -17.974 -16.299 7.559 + -18.238 -16.698 6.123 -11.378 8.539 -4.723 -11.786 7.698 -4.518 -11.252 + 8.520 -5.671 13.811 -14.325 -12.218 12.913 -14.155 -12.501 14.296 -14.464 + -13.032 -13.832 7.777 -17.071 -13.292 7.301 -17.702 -14.099 7.114 -16.434 + -2.145 -8.302 -0.984 -2.303 -7.366 -0.862 -2.386 -8.468 -1.895 -19.913 + 6.135 2.164 -20.427 6.850 1.788 -20.370 5.912 2.974 2.557 -6.263 + 20.196 1.875 -5.906 19.627 2.725 -7.139 19.848 -10.962 0.392 -18.357 + -11.301 0.732 -19.184 -10.230 -0.170 -18.612 -1.905 14.379 -13.069 -0.976 + 14.604 -13.021 -2.137 14.129 -12.174 -7.463 13.362 -14.639 -7.329 14.259 + -14.332 -8.296 13.392 -15.109 -2.476 -12.231 9.622 -2.881 -13.069 9.401 + -1.947 -12.010 8.855 -4.986 10.986 6.622 -5.748 10.485 6.333 -5.196 + 11.893 6.398 9.292 -16.591 -16.269 9.294 -17.528 -16.074 8.941 -16.183 + -15.478 15.836 -2.078 -14.542 16.328 -1.322 -14.222 15.437 -1.776 -15.358 + -13.996 2.625 -12.257 -14.189 1.688 -12.286 -13.554 2.804 -13.087 -14.071 + 9.986 -10.408 -13.741 10.497 -11.148 -13.540 9.190 -10.410 -9.779 14.814 + -14.663 -9.207 15.581 -14.661 -10.524 15.068 -14.118 -0.620 22.100 -2.869 + -0.833 21.568 -3.636 0.322 21.984 -2.751 17.800 -9.632 13.190 17.393 + -10.256 12.588 17.162 -8.922 13.266 2.920 -18.371 -1.403 2.060 -18.153 + -1.762 2.820 -18.257 -0.458 -12.534 1.188 -7.724 -11.762 1.753 -7.741 + -12.524 0.794 -6.852 -5.325 12.651 -16.211 -5.855 12.692 -15.415 -4.444 + 12.893 -15.924 -2.790 2.082 -9.276 -3.390 2.419 -8.610 -3.121 1.206 + -9.476 1.106 -12.096 18.951 0.609 -11.301 19.141 1.851 -11.795 18.431 + 2.451 -14.054 -12.632 2.417 -13.743 -11.728 1.637 -13.738 -13.025 11.190 + -14.765 2.720 10.520 -15.228 3.222 11.949 -15.348 2.738 4.277 7.684 + 19.745 4.303 6.897 19.200 4.002 8.379 19.147 20.997 -0.994 12.824 + 21.592 -0.464 13.355 20.452 -0.354 12.366 -15.016 16.395 -11.385 -15.827 + 16.821 -11.663 -14.862 15.719 -12.045 -15.293 -4.681 -13.659 -15.977 -5.157 + -13.188 -15.769 -4.068 -14.218 -17.584 0.081 18.971 -17.832 -0.457 18.219 + -16.627 0.074 18.964 -19.842 -13.809 7.396 -20.793 -13.903 7.341 -19.505 + -14.692 7.243 -1.129 21.005 -5.371 -1.304 21.186 -6.294 -0.765 20.120 + -5.365 -1.571 11.043 -17.726 -1.841 10.551 -16.952 -0.615 11.065 -17.676 + -15.019 0.192 17.617 -15.063 1.148 17.608 -14.795 -0.046 16.717 1.927 + 13.043 -7.013 1.244 12.576 -7.494 1.821 13.958 -7.273 -5.157 2.721 + -21.687 -4.962 2.580 -20.761 -4.773 3.574 -21.886 -2.647 15.980 9.608 + -1.734 16.249 9.711 -2.882 15.603 10.455 -21.386 0.522 1.213 -20.498 + 0.683 1.534 -21.615 1.317 0.732 -5.026 14.416 -19.943 -5.474 13.593 + -19.748 -4.315 14.459 -19.304 6.337 -2.166 -22.478 7.176 -1.822 -22.171 + 6.245 -3.008 -22.031 14.689 11.305 -12.889 14.540 10.451 -12.483 15.385 + 11.148 -13.527 -9.489 -7.620 -2.655 -9.100 -7.583 -1.782 -8.905 -7.092 + -3.200 -1.221 21.307 7.637 -1.330 20.597 8.269 -1.700 22.043 8.018 + 3.333 18.462 9.272 2.939 18.127 10.077 3.435 17.690 8.715 -17.474 + 5.496 3.329 -16.775 5.655 2.694 -18.261 5.844 2.910 -15.261 9.350 + 8.405 -15.769 8.549 8.540 -14.587 9.102 7.772 6.736 -7.070 23.677 + 6.279 -6.857 22.863 6.366 -7.910 23.947 -10.252 10.618 -16.660 -9.897 + 10.456 -17.534 -10.415 11.561 -16.639 -4.851 -1.910 -21.208 -5.773 -1.655 + -21.191 -4.405 -1.230 -20.701 7.811 -7.744 12.161 7.927 -8.680 11.997 + 8.643 -7.462 12.542 2.949 8.771 7.259 3.709 9.050 6.748 2.198 + 8.980 6.704 19.147 14.736 -8.850 18.317 15.189 -8.701 19.396 14.981 + -9.742 -4.609 5.405 19.290 -5.435 5.342 18.810 -4.697 4.772 20.003 + -10.228 -7.580 -17.108 -10.230 -6.808 -16.541 -11.147 -7.845 -17.153 9.786 + 8.748 -5.065 10.615 8.770 -4.588 9.272 9.460 -4.684 12.741 -2.380 + 14.326 12.292 -2.121 15.131 12.649 -3.332 14.297 5.462 -0.378 -3.973 + 4.509 -0.461 -3.926 5.752 -1.183 -4.402 1.728 -15.091 12.190 1.192 + -14.459 11.710 2.027 -14.612 12.964 8.811 12.600 14.452 9.380 11.999 + 14.934 8.723 13.360 15.028 8.272 6.928 3.859 8.594 6.201 4.392 + 8.945 7.050 3.189 -7.573 -6.418 -8.089 -6.628 -6.412 -8.239 -7.691 + -6.979 -7.322 -1.031 -21.183 -8.512 -1.525 -20.596 -7.940 -1.240 -22.061 + -8.191 -1.103 -1.670 -15.839 -2.021 -1.507 -16.054 -0.671 -0.828 -15.980 + -9.428 -19.845 7.671 -8.840 -20.235 7.024 -8.951 -19.910 8.498 -6.137 + -5.652 -12.753 -6.492 -6.539 -12.690 -5.249 -5.773 -13.088 -16.967 15.374 + 7.747 -16.281 15.176 8.384 -16.498 15.512 6.924 6.654 -11.461 9.254 + 6.852 -11.327 10.181 7.081 -10.728 8.810 8.596 8.840 13.685 8.527 + 7.889 13.769 8.073 9.050 12.911 6.835 20.343 -4.017 7.301 19.564 + -3.713 7.351 20.655 -4.761 -13.147 2.080 -0.602 -14.036 2.280 -0.310 + -12.803 1.487 0.066 -13.609 -16.221 11.096 -13.073 -15.445 10.933 -12.984 + -16.888 11.380 6.525 6.771 -0.398 5.704 6.857 0.088 7.115 7.400 + 0.018 10.526 -2.866 9.772 9.644 -2.566 9.548 10.672 -2.538 10.659 + -5.408 11.067 12.412 -4.475 10.859 12.459 -5.484 11.923 12.833 -4.276 + -2.362 -13.659 -3.604 -2.996 -13.912 -3.979 -2.022 -12.815 -20.613 -4.448 + 8.829 -20.344 -3.568 9.092 -19.827 -4.982 8.940 -5.874 -6.897 17.165 + -6.533 -7.018 16.481 -5.942 -5.972 17.401 -14.492 0.002 -2.583 -15.181 + -0.384 -3.124 -14.181 0.752 -3.090 20.446 5.070 8.375 20.747 5.599 + 9.113 20.074 5.704 7.762 0.006 -17.631 -0.443 -0.778 -17.859 0.056 + 0.715 -17.656 0.200 -14.132 -10.328 4.756 -14.036 -9.953 5.631 -14.895 + -10.903 4.823 -13.751 0.423 -17.282 -14.217 -0.137 -17.903 -12.851 0.444 + -17.607 -11.509 -13.338 2.350 -11.696 -12.667 1.694 -12.112 -14.051 2.143 + -8.412 -6.991 -10.919 -8.538 -7.841 -10.496 -8.070 -6.427 -10.226 -3.013 + -4.057 -20.330 -3.484 -4.640 -19.733 -3.665 -3.407 -20.593 0.866 -4.229 + 13.526 1.634 -4.791 13.420 0.323 -4.685 14.170 -16.349 4.657 -13.696 + -16.692 4.150 -12.961 -17.122 5.061 -14.091 3.237 14.510 1.852 3.660 + 13.889 1.259 3.794 14.515 2.630 4.057 -7.770 -10.126 4.048 -8.528 + -10.710 3.532 -8.042 -9.373 0.683 -9.277 15.342 1.450 -8.747 15.127 + 0.332 -9.544 14.493 -13.961 -4.067 -7.367 -13.184 -3.543 -7.560 -14.646 + -3.423 -7.187 -1.612 1.224 -12.772 -1.809 0.772 -13.593 -2.153 0.781 + -12.119 19.315 9.171 12.084 20.052 9.257 12.688 18.924 10.045 12.057 + 8.445 -16.801 12.138 7.928 -17.600 12.039 9.255 -16.978 11.659 -12.172 + -6.671 16.379 -12.183 -5.764 16.073 -11.266 -6.955 16.251 -12.137 5.471 + -6.177 -12.560 4.807 -6.722 -12.168 6.269 -6.705 12.754 14.810 -2.856 + 12.308 13.981 -2.680 12.163 15.478 -2.509 -7.200 3.004 8.123 -7.961 + 2.861 8.686 -6.738 3.739 8.525 -16.758 -2.950 13.860 -17.688 -2.809 + 14.040 -16.547 -3.765 14.315 15.857 -13.314 4.409 15.907 -13.572 3.489 + 16.309 -14.015 4.879 12.742 19.291 -1.059 12.379 18.438 -1.297 13.689 + 19.155 -1.050 -10.701 -17.048 0.925 -10.120 -16.326 1.162 -11.453 -16.953 + 1.511 18.918 -6.194 -13.837 18.333 -6.403 -13.109 19.058 -5.250 -13.769 + 9.564 -13.726 10.770 10.132 -12.967 10.903 9.733 -13.997 9.868 6.383 + 6.930 -17.071 6.100 7.841 -16.992 7.043 6.944 -17.764 3.145 21.737 + 2.774 4.003 21.909 3.163 2.724 22.595 2.731 0.367 0.929 -22.537 + 0.319 0.255 -23.215 -0.545 1.166 -22.370 20.572 -8.757 12.435 19.626 + -8.897 12.492 20.928 -9.216 13.196 8.452 -7.714 2.644 8.889 -7.554 + 3.481 7.907 -6.940 2.506 -12.071 -0.509 1.941 -12.382 -0.840 1.099 + -11.257 -0.987 2.101 -8.408 -22.015 -3.510 -9.356 -22.114 -3.413 -8.241 + -21.095 -3.307 -3.098 5.630 12.772 -2.524 6.066 13.401 -3.325 6.314 + 12.141 2.176 5.199 -17.727 1.507 5.622 -18.265 2.639 5.924 -17.306 + -12.880 14.873 11.553 -12.159 15.469 11.350 -12.478 14.182 12.080 0.127 + -12.786 11.080 0.841 -13.077 10.512 -0.666 -12.941 10.566 0.299 19.291 + -11.835 -0.362 19.917 -12.130 0.980 19.832 -11.436 6.566 -4.380 9.725 + 6.235 -5.101 9.189 6.911 -3.750 9.092 -8.285 7.353 -22.226 -7.931 + 8.212 -21.998 -8.657 7.470 -23.100 -5.238 -17.811 3.096 -5.820 -17.176 + 3.515 -4.391 -17.368 3.054 -13.510 -11.350 10.396 -14.346 -11.698 10.705 + -13.685 -10.425 10.223 -11.908 -19.803 6.067 -11.668 -18.937 5.739 -11.453 + -19.875 6.907 -7.083 -19.873 9.718 -6.347 -19.281 9.871 -7.370 -20.130 + 10.594 7.119 22.885 5.927 7.802 23.339 6.421 6.764 22.244 6.543 + -10.939 -15.049 -8.034 -11.170 -14.166 -7.745 -10.625 -14.932 -8.931 -15.890 + -0.058 0.215 -16.724 0.014 -0.249 -15.234 -0.121 -0.479 0.811 7.618 + -5.733 -0.044 7.812 -6.117 1.218 8.476 -5.609 15.249 5.130 16.221 + 16.137 5.142 16.576 15.139 4.242 15.880 12.890 -12.401 15.115 12.357 + -12.458 15.908 13.735 -12.773 15.368 -1.633 10.036 -15.289 -1.411 10.891 + -14.919 -1.930 9.521 -14.539 21.161 -6.147 2.080 20.467 -6.422 1.481 + 21.510 -6.964 2.434 -15.075 -7.906 4.404 -14.727 -8.772 4.615 -15.025 + -7.419 5.226 0.690 4.271 -15.375 1.209 3.523 -15.079 1.189 4.632 + -16.108 -0.109 -13.985 16.882 0.331 -13.348 17.445 -1.011 -13.671 16.824 + 11.722 8.643 11.271 11.826 8.021 11.991 11.392 9.439 11.688 -10.483 + -4.956 -11.600 -10.044 -5.798 -11.477 -9.908 -4.470 -12.191 7.459 -7.832 + 19.132 7.851 -8.548 19.632 8.013 -7.075 19.324 9.132 10.176 5.250 + 8.619 10.051 4.452 9.982 9.781 5.053 4.824 17.993 -7.250 4.614 + 18.600 -7.960 4.168 18.176 -6.577 -16.986 -17.989 -2.868 -16.242 -18.528 + -2.602 -16.798 -17.124 -2.505 4.324 15.607 -12.743 5.208 15.968 -12.807 + 4.099 15.686 -11.816 -4.864 -4.862 -3.834 -4.886 -3.916 -3.974 -3.945 + -5.101 -3.953 -20.220 -9.350 8.175 -21.098 -8.983 8.273 -20.258 -9.849 + 7.359 2.766 0.831 2.618 3.142 0.277 3.302 3.325 0.683 1.855 + 6.195 15.304 11.546 5.607 16.045 11.699 5.964 14.993 10.671 -6.062 + 11.700 -18.596 -5.640 11.999 -17.790 -5.529 10.959 -18.884 -8.730 2.061 + 10.081 -8.782 2.761 10.731 -8.036 1.486 10.402 4.845 -18.561 -6.346 + 4.240 -18.221 -5.687 4.766 -19.513 -6.276 -7.956 13.081 -5.110 -8.645 + 13.004 -4.450 -7.435 13.832 -4.826 -8.185 -10.859 6.786 -8.996 -10.424 + 6.522 -7.818 -10.291 7.463 0.214 -6.748 -12.454 1.079 -6.376 -12.626 + 0.375 -7.442 -11.814 -1.626 6.818 -11.971 -1.793 7.472 -12.650 -1.112 + 7.283 -11.311 -8.303 -0.496 22.013 -8.196 0.454 21.962 -9.233 -0.642 + 21.841 -12.403 1.355 10.378 -13.118 0.725 10.465 -12.119 1.271 9.468 + -16.202 -15.867 9.164 -16.748 -16.232 9.861 -15.364 -16.320 9.254 7.134 + -14.541 2.604 6.812 -14.122 3.402 7.200 -15.469 2.830 -7.787 -7.824 + 7.388 -8.330 -7.610 6.628 -8.414 -8.070 8.068 2.920 9.581 -17.971 + 3.047 8.646 -18.132 3.344 10.011 -18.714 9.224 -7.128 5.517 8.396 + -6.723 5.772 9.438 -7.715 6.243 13.563 12.908 12.715 14.305 12.700 + 13.283 13.962 13.156 11.881 0.593 9.614 12.067 0.902 9.223 12.884 + 0.279 8.872 11.550 -7.277 2.747 -16.017 -6.516 2.606 -15.454 -7.457 + 1.887 -16.396 -19.181 8.066 -2.869 -19.447 8.980 -2.967 -18.369 7.997 + -3.370 -0.450 2.123 9.220 -0.935 1.310 9.076 -0.967 2.597 9.872 + 9.023 7.857 -17.761 8.422 8.514 -17.410 9.604 7.649 -17.029 1.257 + -6.362 -20.290 0.583 -5.684 -20.239 2.013 -5.919 -20.675 -8.512 -3.388 + -0.273 -8.016 -2.637 0.054 -7.849 -3.964 -0.654 -8.799 1.314 -2.150 + -9.707 1.164 -2.412 -8.286 0.751 -2.730 -14.173 11.725 -13.917 -14.455 + 10.836 -13.704 -14.337 11.811 -14.856 11.744 7.781 16.088 11.002 7.500 + 16.624 12.455 7.914 16.715 10.790 -13.000 16.879 10.321 -12.307 16.416 + 10.497 -12.922 17.787 -3.269 18.404 -5.725 -2.970 17.868 -4.991 -3.993 + 18.917 -5.368 -3.749 7.596 -17.863 -4.479 7.311 -18.413 -4.148 8.188 + -17.225 -5.994 -12.655 5.978 -6.826 -13.126 6.025 -6.237 -11.732 6.056 + -13.085 6.639 -13.372 -12.196 6.619 -13.727 -13.459 5.792 -13.616 -12.499 + -3.543 10.426 -12.121 -3.240 9.600 -13.038 -2.811 10.725 -12.621 -3.920 + -1.500 -12.383 -4.846 -1.449 -13.541 -3.923 -1.762 -8.393 7.786 -15.682 + -9.172 7.552 -15.178 -8.138 8.645 -15.345 1.271 11.239 -17.026 1.825 + 10.534 -17.361 1.586 12.025 -17.472 -5.739 -13.497 -3.103 -6.233 -14.311 + -3.009 -5.293 -13.583 -3.946 19.159 -1.205 -11.065 19.011 -0.280 -11.265 + 18.281 -1.586 -11.033 13.459 -9.480 17.603 13.699 -10.368 17.341 13.050 + -9.102 16.825 -17.282 -2.762 4.212 -17.985 -2.391 3.678 -17.719 -3.060 + 5.009 19.391 -10.162 6.467 19.637 -11.009 6.096 18.474 -10.049 6.217 + 16.248 -3.115 18.952 15.951 -2.446 19.568 15.606 -3.820 19.035 3.880 + -2.908 6.405 3.032 -2.827 5.968 3.704 -2.673 7.316 -18.407 -8.234 + 11.577 -18.912 -7.470 11.297 -18.943 -8.984 11.318 -10.816 10.381 -12.621 + -9.944 10.161 -12.950 -11.416 10.011 -13.269 -18.316 4.925 -0.223 -19.091 + 5.310 0.184 -17.634 5.588 -0.115 12.047 10.250 0.308 12.631 9.531 + 0.067 12.238 10.415 1.232 15.649 17.944 4.431 15.872 18.672 5.011 + 14.779 18.162 4.097 -0.337 3.105 19.050 -1.215 2.934 19.391 -0.031 + 2.253 18.739 20.219 8.435 1.691 21.079 8.454 1.270 20.128 9.301 + 2.088 -8.372 13.289 -18.323 -7.577 12.770 -18.208 -8.567 13.225 -19.258 + -10.175 -2.404 -16.550 -10.201 -1.849 -17.329 -9.458 -2.046 -16.025 9.564 + 7.009 17.550 9.597 7.154 18.496 9.195 7.818 17.197 17.036 2.812 + 13.356 16.844 3.481 12.699 16.198 2.654 13.790 -5.438 9.436 -16.136 + -5.431 9.025 -15.272 -4.989 10.271 -16.007 8.556 -0.873 9.154 8.736 + -0.104 8.612 8.385 -0.517 10.025 -14.786 14.286 -13.031 -15.432 14.367 + -13.733 -14.496 13.375 -13.077 -9.979 0.790 -21.356 -9.371 1.182 -21.982 + -10.798 1.269 -21.485 -10.480 8.998 -10.258 -10.336 9.697 -10.896 -10.249 + 9.390 -9.416 -7.066 9.376 -20.274 -7.272 8.609 -19.740 -6.110 9.383 + -20.325 -7.909 7.496 -18.540 -7.875 7.584 -17.587 -7.862 6.553 -18.695 + 0.730 12.233 11.869 1.139 12.496 12.693 0.631 11.284 11.942 -15.840 + -0.476 5.033 -15.403 -0.135 4.253 -16.330 -1.237 4.720 -6.618 7.890 + -7.664 -6.589 8.817 -7.427 -6.711 7.889 -8.617 7.700 5.440 -2.481 + 8.016 4.808 -1.836 7.221 6.089 -1.966 15.725 -1.809 7.419 15.657 + -2.512 6.772 16.171 -2.211 8.164 4.048 20.902 -4.309 4.970 20.951 + -4.058 3.930 20.003 -4.613 16.526 2.241 -8.175 16.967 3.089 -8.232 + 17.165 1.667 -7.753 -6.177 -2.104 -18.079 -6.716 -2.854 -18.332 -5.599 + -1.960 -18.829 -4.234 9.190 -1.017 -3.574 8.679 -0.549 -4.983 8.599 + -1.095 -10.104 -11.976 -0.965 -9.321 -12.494 -0.783 -10.303 -12.156 -1.884 + -5.102 -6.709 0.064 -5.372 -6.188 0.820 -4.177 -6.494 -0.056 17.486 + -2.952 9.250 17.442 -3.134 10.189 17.991 -3.680 8.888 -6.362 11.762 + -11.404 -6.778 11.905 -12.254 -6.823 12.353 -10.809 6.624 17.438 5.734 + 6.157 17.182 4.938 7.548 17.309 5.521 16.815 -0.449 5.110 16.769 + -1.128 4.437 16.423 -0.852 5.885 12.213 -7.295 2.170 12.769 -7.744 + 2.807 11.923 -6.503 2.622 11.198 -9.477 19.595 12.031 -9.756 19.975 + 11.435 -9.105 18.746 1.300 -21.109 10.983 1.770 -20.416 11.447 0.806 + -20.651 10.303 -10.339 -9.709 0.376 -10.270 -10.521 -0.127 -10.555 -9.042 + -0.276 4.192 9.207 -14.553 3.806 10.014 -14.213 3.886 8.524 -13.957 + -7.701 -7.756 -0.506 -7.540 -8.693 -0.613 -6.842 -7.387 -0.301 -10.540 + 18.785 -6.026 -10.951 18.198 -5.391 -11.214 18.928 -6.691 -20.906 -1.575 + 6.205 -21.591 -1.341 6.831 -20.105 -1.610 6.729 1.333 -8.000 -3.502 + 1.080 -8.506 -2.729 1.174 -7.089 -3.254 1.120 2.599 -18.734 1.335 + 1.908 -19.360 1.956 3.031 -18.557 8.216 10.178 -12.532 8.111 10.614 + -13.377 7.564 9.477 -12.540 12.422 12.247 8.394 12.648 13.176 8.353 + 12.059 12.127 9.271 19.854 -6.167 12.876 20.289 -6.938 12.512 20.213 + -5.432 12.379 -16.020 -1.777 7.360 -16.110 -1.346 6.510 -15.105 -2.058 + 7.390 18.043 -2.759 12.172 18.029 -1.814 12.327 18.017 -3.146 13.047 + -1.761 -1.576 -0.334 -2.625 -1.671 0.067 -1.547 -0.649 -0.225 13.585 + 15.179 4.220 14.523 15.351 4.304 13.520 14.225 4.169 -1.641 9.453 + -9.955 -2.445 9.165 -10.386 -1.085 9.766 -10.669 5.208 -6.457 21.253 + 4.416 -6.249 20.758 5.349 -7.391 21.100 -16.994 -17.191 4.879 -17.498 + -17.918 4.515 -16.104 -17.534 4.961 10.734 14.700 4.662 10.173 15.373 + 5.046 11.625 15.014 4.815 -13.675 0.245 14.967 -14.130 0.553 14.183 + -13.401 1.045 15.415 -4.894 7.776 23.110 -4.473 8.361 22.480 -5.798 + 7.705 22.804 -9.226 16.630 5.797 -9.250 16.657 6.754 -8.554 17.268 + 5.557 4.780 -12.284 -10.412 5.620 -12.299 -10.871 4.951 -12.736 -9.585 + -3.716 -3.772 12.269 -3.849 -4.602 11.811 -2.781 -3.592 12.174 -14.969 + -0.153 11.171 -15.387 0.361 11.861 -14.958 -1.047 11.512 -1.348 -7.867 + 5.675 -1.949 -7.202 5.338 -0.784 -8.079 4.931 -1.306 3.884 -18.577 + -0.525 3.391 -18.326 -1.338 4.614 -17.959 -17.365 -9.940 7.403 -17.458 + -10.547 6.669 -18.211 -9.973 7.849 6.262 12.996 -7.315 6.904 13.499 + -6.814 6.183 13.467 -8.144 -14.594 9.254 -13.530 -15.114 8.612 -13.046 + -13.802 8.780 -13.783 -1.427 6.131 -17.063 -0.878 6.882 -16.838 -2.164 + 6.508 -17.542 -10.003 3.683 -19.945 -10.414 3.569 -19.088 -10.547 3.170 + -20.542 8.399 -5.374 11.326 7.887 -6.055 11.761 7.746 -4.751 11.007 + 9.599 13.285 2.497 8.679 13.548 2.521 10.024 13.840 3.151 15.941 + 4.896 11.561 16.139 5.832 11.528 14.996 4.846 11.418 7.926 -15.964 + 6.286 8.204 -16.732 6.786 8.304 -16.094 5.417 -2.886 8.047 -20.786 + -2.090 7.522 -20.865 -3.330 7.695 -20.015 -2.927 -15.619 5.419 -3.377 + -14.898 4.978 -2.541 -16.131 4.709 -14.764 -10.810 -12.959 -14.236 -10.725 + -13.753 -14.710 -9.950 -12.542 8.477 3.692 3.280 8.602 4.052 4.158 + 7.532 3.736 3.135 -20.631 6.400 10.398 -20.316 7.277 10.180 -20.860 + 6.451 11.326 14.660 15.689 -8.755 14.075 15.267 -9.384 14.081 16.224 + -8.212 15.819 -4.844 -14.199 15.698 -3.911 -14.024 16.424 -5.138 -13.518 + -18.923 1.917 0.868 -18.597 2.699 0.423 -19.079 1.288 0.164 -7.921 + 2.101 -22.424 -7.130 2.108 -21.884 -7.801 2.830 -23.032 -10.173 2.871 + -12.659 -10.419 1.957 -12.514 -9.444 2.826 -13.279 -13.413 2.568 16.751 + -13.984 3.327 16.634 -12.578 2.938 17.036 3.172 -5.708 6.477 3.107 + -5.730 5.522 3.246 -4.777 6.690 1.922 6.266 8.420 2.201 7.096 + 8.033 2.222 5.600 7.802 -16.569 -1.307 -3.785 -17.046 -1.138 -4.598 + -16.468 -2.258 -3.760 -0.527 -5.566 20.334 -0.023 -5.950 21.051 -0.275 + -4.643 20.332 0.070 16.129 9.408 0.852 16.062 8.860 -0.178 15.221 + 9.583 -2.981 -10.179 14.119 -3.014 -11.000 13.627 -3.682 -9.647 13.743 + -4.661 -21.833 -7.155 -4.755 -22.785 -7.172 -3.954 -21.673 -6.530 -5.082 + 3.340 21.194 -5.000 3.689 22.082 -5.896 3.719 20.862 -13.068 7.550 + 7.244 -12.179 7.261 7.039 -13.554 7.425 6.429 -2.418 8.751 10.819 + -2.947 9.256 10.202 -2.171 7.963 10.334 -11.817 -12.347 -12.943 -12.359 + -11.617 -13.242 -11.159 -12.453 -13.630 -7.522 -8.562 12.320 -8.318 -9.070 + 12.165 -7.547 -7.870 11.660 -10.769 -9.380 6.374 -11.469 -8.877 5.957 + -10.564 -8.890 7.171 -8.108 3.521 12.357 -7.186 3.387 12.577 -8.588 + 3.040 13.032 15.145 -8.309 -8.127 15.522 -8.197 -7.255 15.610 -9.061 + -8.495 -1.062 -3.243 -2.246 -1.331 -2.707 -1.500 -0.879 -2.610 -2.941 + 12.795 3.863 3.853 13.496 4.157 3.270 12.155 3.455 3.270 11.740 + 6.314 6.812 11.713 7.067 7.403 12.649 6.277 6.513 10.626 -14.448 + -10.765 11.219 -13.696 -10.749 11.175 -15.180 -11.046 -8.406 -3.643 -19.838 + -8.727 -4.542 -19.911 -8.576 -3.257 -20.697 -1.321 -15.678 8.063 -1.167 + -15.541 7.128 -2.078 -15.127 8.264 9.894 -10.648 -19.604 10.829 -10.762 + -19.431 9.801 -9.718 -19.810 -6.140 16.374 -8.133 -5.979 17.308 -8.267 + -7.068 16.260 -8.338 -7.435 7.601 13.858 -6.518 7.598 14.134 -7.555 + 8.451 13.436 14.445 11.294 -8.321 15.373 11.528 -8.296 14.064 11.740 + -7.565 -9.473 9.571 6.808 -8.768 9.908 6.254 -9.221 9.824 7.696 + -10.513 -10.118 -3.982 -9.663 -10.535 -4.126 -10.304 -9.295 -3.541 -5.983 + 15.072 -17.325 -6.166 14.583 -18.128 -5.515 14.451 -16.768 -9.310 -14.826 + 11.923 -8.774 -14.070 12.164 -9.978 -14.873 12.607 -1.921 20.649 -12.770 + -1.957 21.360 -13.410 -2.786 20.654 -12.358 -5.773 15.151 -5.417 -6.010 + 15.158 -6.344 -6.189 15.934 -5.057 -20.896 11.430 -6.960 -21.293 11.194 + -6.121 -20.736 10.592 -7.393 16.561 -1.692 -10.822 16.317 -1.378 -9.952 + 15.728 -1.780 -11.287 17.575 -3.122 3.276 17.255 -3.496 2.455 18.524 + -3.074 3.164 -13.652 -2.331 -10.486 -14.019 -3.207 -10.362 -14.005 -2.041 + -11.327 -7.093 -3.723 11.883 -6.504 -3.980 12.592 -7.793 -4.376 11.904 + 6.646 -16.552 15.624 6.222 -16.785 16.450 5.999 -16.769 14.953 -9.245 + -6.763 18.399 -9.328 -6.524 17.476 -8.417 -6.369 18.675 15.512 5.828 + -7.479 16.338 6.278 -7.662 15.337 5.320 -8.271 -16.854 -4.023 -6.419 + -16.932 -4.885 -6.012 -17.109 -4.164 -7.331 -7.820 -22.336 -7.323 -8.198 + -23.099 -6.885 -6.917 -22.591 -7.511 3.685 10.636 12.014 3.246 10.686 + 11.165 4.116 11.484 12.112 -4.492 -5.918 10.688 -5.428 -6.068 10.555 + -4.145 -5.778 9.807 14.115 -2.592 -3.926 14.941 -2.193 -3.652 13.832 + -2.067 -4.674 1.459 4.355 0.238 2.143 3.859 -0.211 0.662 4.168 + -0.258 -7.140 -15.726 1.415 -7.855 -15.347 1.927 -6.377 -15.193 1.638 + -8.564 4.556 -7.194 -9.131 5.284 -7.446 -8.057 4.892 -6.455 -11.670 + -19.137 -2.992 -11.901 -18.208 -2.988 -10.973 -19.208 -3.644 12.958 -17.168 + -10.338 13.684 -16.996 -10.938 12.428 -17.827 -10.787 -2.278 -8.190 -3.664 + -1.688 -8.777 -4.138 -2.203 -7.353 -4.123 -8.182 -18.369 -9.833 -8.214 + -19.300 -10.053 -7.264 -18.126 -9.953 -7.442 13.842 -9.750 -6.830 13.820 + -9.014 -8.270 13.534 -9.383 5.872 1.286 17.417 5.260 0.571 17.590 + 5.496 1.747 16.668 -4.642 -1.632 10.772 -4.123 -2.410 10.979 -5.545 + -1.892 10.953 8.499 -10.640 -17.037 8.432 -10.540 -17.986 9.056 -11.409 + -16.916 4.027 0.202 11.965 3.632 0.513 11.150 4.427 -0.636 11.733 + 2.579 10.329 -10.517 3.471 10.173 -10.828 2.022 9.878 -11.151 -12.059 + -6.255 0.560 -11.445 -5.812 1.146 -12.676 -6.692 1.147 19.691 10.620 + -9.892 18.811 10.304 -9.688 20.243 10.258 -9.199 -7.287 -6.947 14.525 + -7.059 -7.535 13.806 -6.741 -6.173 14.384 6.950 25.018 4.394 7.764 + 25.147 3.907 7.142 24.294 4.992 4.164 4.348 10.876 4.063 5.299 + 10.830 3.931 4.040 10.000 -16.085 -13.076 1.955 -15.890 -13.718 2.638 + -15.487 -13.296 1.241 13.277 0.038 1.366 13.115 0.093 2.308 12.427 + 0.220 0.965 -9.370 -2.976 -13.438 -8.439 -2.871 -13.634 -9.679 -2.088 + -13.258 -9.544 -17.022 8.175 -10.399 -16.672 7.923 -9.591 -17.952 7.953 + 5.459 -12.254 -4.178 6.097 -12.483 -3.503 5.084 -11.424 -3.883 -11.236 + 5.815 -21.364 -10.478 6.084 -21.881 -10.925 5.067 -20.854 4.272 -6.526 + 1.300 3.641 -7.190 1.022 4.955 -6.550 0.630 3.351 -5.448 -21.816 + 4.175 -5.122 -21.454 3.167 -4.866 -22.554 8.143 -16.653 -6.675 7.510 + -15.943 -6.567 8.098 -17.141 -5.852 0.421 14.239 -10.452 0.905 13.837 + -11.172 0.599 15.176 -10.538 -10.232 17.644 8.739 -10.872 16.935 8.673 + -10.652 18.387 8.306 20.612 5.300 -13.484 20.843 4.635 -14.134 20.943 + 6.119 -13.853 16.510 9.772 13.955 15.869 9.062 13.910 16.648 10.029 + 13.043 -11.533 14.398 15.685 -12.103 14.658 16.408 -11.230 15.224 15.310 + -17.830 8.506 -5.216 -17.682 9.430 -5.417 -18.385 8.192 -5.931 -7.518 + -21.352 -0.139 -7.410 -20.971 -1.010 -7.709 -22.275 -0.304 -15.388 8.129 + 15.503 -15.956 7.518 15.033 -14.579 8.146 14.991 -16.217 11.202 -3.350 + -16.478 11.431 -4.242 -15.518 10.559 -3.463 -7.487 5.270 -20.613 -8.327 + 4.838 -20.460 -7.719 6.116 -20.995 -17.150 -3.375 -11.820 -16.339 -2.941 + -12.086 -16.866 -4.065 -11.221 -14.303 4.271 13.834 -14.493 4.812 13.067 + -13.374 4.056 13.750 3.858 -9.819 -3.587 2.984 -9.545 -3.310 4.254 + -9.026 -3.948 8.298 -6.766 -22.174 7.552 -6.865 -21.584 8.185 -5.897 + -22.559 -15.297 12.964 5.289 -15.886 12.661 4.598 -15.491 12.397 6.035 + -7.124 -2.785 2.572 -7.044 -2.195 1.823 -6.923 -2.237 3.331 -12.028 + 17.912 5.545 -11.153 17.529 5.614 -12.213 17.919 4.606 -9.860 13.926 + -3.084 -10.495 13.887 -3.800 -10.390 13.860 -2.290 7.077 -11.910 20.452 + 7.729 -11.880 21.152 7.329 -11.202 19.859 -18.125 15.417 -3.836 -18.950 + 15.661 -4.257 -17.454 15.880 -4.339 5.193 -17.497 -2.887 4.665 -17.450 + -3.685 4.551 -17.559 -2.180 2.791 -0.970 -23.637 2.083 -0.415 -23.962 + 3.175 -0.472 -22.915 -13.518 -14.226 5.904 -12.930 -13.477 6.006 -14.001 + -14.266 6.729 0.992 -14.466 4.703 1.004 -15.358 5.050 1.879 -14.327 + 4.370 -5.365 3.373 -4.827 -4.892 3.856 -4.148 -5.770 2.641 -4.362 + 16.725 -8.746 -0.168 16.856 -8.895 0.769 16.893 -9.598 -0.571 -8.934 + -14.901 3.052 -9.586 -14.228 3.250 -9.363 -15.725 3.282 1.654 18.466 + 14.186 0.781 18.529 14.574 1.542 17.876 13.440 21.032 -10.100 -6.469 + 20.551 -9.441 -6.970 20.366 -10.522 -5.927 -14.478 11.164 15.948 -14.303 + 10.755 15.101 -14.223 10.501 16.590 -19.932 10.557 -2.973 -19.610 11.123 + -2.272 -20.301 11.160 -3.618 -3.462 -0.316 -19.461 -2.531 -0.532 -19.431 + -3.522 0.545 -19.045 -7.662 -4.850 19.334 -7.679 -3.902 19.207 -7.102 + -4.979 20.100 7.125 11.031 11.202 7.893 11.553 10.971 6.814 11.413 + 12.023 11.543 -11.739 12.780 10.602 -11.881 12.878 11.902 -11.899 13.653 + 15.671 6.638 0.030 16.139 6.046 -0.559 16.315 7.310 0.255 6.020 + -13.712 5.125 5.637 -13.519 5.980 6.836 -14.171 5.325 -19.084 -0.034 + -1.017 -19.275 -0.362 -1.896 -19.340 -0.748 -0.434 17.121 17.575 7.984 + 17.696 18.338 8.039 17.665 16.893 7.590 4.365 3.193 -18.640 3.939 + 4.019 -18.409 3.911 2.903 -19.431 -13.498 -10.219 -0.713 -13.027 -10.363 + 0.108 -14.416 -10.373 -0.493 2.330 -20.907 14.477 1.606 -21.474 14.211 + 2.275 -20.156 13.886 1.926 0.596 -20.329 2.842 0.384 -20.510 1.566 + 0.846 -21.180 -2.639 -7.767 11.685 -1.908 -7.165 11.545 -3.393 -7.323 + 11.299 -11.656 17.088 0.848 -11.149 16.831 0.078 -12.549 16.803 0.652 + -9.622 -1.565 1.746 -9.140 -2.175 2.303 -8.949 -1.152 1.205 1.971 + -20.451 -3.340 2.861 -20.796 -3.271 1.658 -20.414 -2.436 -6.404 -9.892 + 4.150 -5.535 -9.539 3.958 -6.981 -9.463 3.519 -8.352 3.474 -0.494 + -8.091 2.908 -1.221 -7.780 3.215 0.229 0.705 -3.621 -7.125 1.488 + -4.151 -6.979 0.884 -2.797 -6.671 -6.509 16.596 10.828 -7.267 16.035 + 10.992 -6.143 16.764 11.696 -13.436 6.890 -1.601 -13.259 6.131 -1.045 + -12.982 6.697 -2.421 -4.988 -13.997 2.378 -5.640 -13.296 2.404 -4.225 + -13.631 2.825 -7.887 -22.938 9.331 -7.497 -22.068 9.251 -8.378 -22.907 + 10.152 -7.820 9.813 12.056 -8.430 10.305 12.606 -6.989 10.279 12.143 + -16.734 -6.415 13.307 -17.626 -6.453 13.651 -16.450 -7.328 13.276 -3.269 + 17.127 5.452 -2.739 16.337 5.347 -2.826 17.624 6.139 1.715 14.858 + -14.111 2.431 15.170 -13.558 1.548 13.966 -13.806 -4.751 -22.360 7.776 + -4.029 -22.978 7.889 -4.644 -21.733 8.491 17.499 -0.682 15.690 17.756 + -1.314 16.361 16.720 -1.065 15.286 3.585 -0.423 15.581 3.095 -0.840 + 14.872 3.691 -1.113 16.237 -11.629 15.443 3.682 -12.504 15.495 3.297 + -11.786 15.292 4.614 -4.448 0.289 8.883 -4.637 0.163 7.953 -4.646 + -0.557 9.285 1.761 -6.031 8.689 2.047 -6.123 7.781 2.178 -5.224 + 8.991 + 42.439 42.439 42.439 + -0.047 3.256 -8.629 0.688 3.921 -8.436 0.172 2.371 -8.194 -0.881 + 3.641 -8.210 -0.240 3.047 -10.148 -1.136 2.438 -10.272 -0.452 4.409 + -10.760 -1.268 4.945 -10.275 0.477 4.942 -10.561 -0.657 4.312 -12.152 + -1.033 5.137 -12.469 0.902 2.280 -10.870 2.022 2.332 -10.351 0.706 + 1.606 -12.011 -0.226 1.618 -12.400 1.828 0.912 -12.677 2.613 0.733 + -11.942 1.433 -0.400 -13.217 0.604 -0.324 -13.921 2.175 -0.847 -13.878 + 1.134 -1.401 -12.160 -0.103 -1.762 -11.684 -1.040 -1.353 -12.032 0.066 + -2.655 -10.642 -0.682 -3.021 -10.071 1.321 -2.970 -10.451 1.942 -3.959 + -9.643 1.409 -4.457 -8.847 3.317 -4.146 -9.848 3.840 -4.935 -9.329 + 4.066 -3.425 -10.763 5.074 -3.745 -10.978 3.461 -2.441 -11.584 3.965 + -1.932 -12.392 2.098 -2.214 -11.383 2.562 1.887 -13.701 1.878 2.715 + -14.350 3.815 1.704 -14.003 4.331 0.999 -13.495 4.633 2.486 -14.909 + 4.073 2.890 -15.753 5.289 3.548 -14.066 5.785 3.110 -13.200 6.390 + 4.324 -14.812 7.308 3.786 -15.051 6.112 4.605 -15.828 6.596 5.272 + -14.316 4.376 4.423 -13.435 3.474 4.172 -13.647 5.654 1.404 -15.495 + 6.333 0.724 -14.659 5.881 1.391 -16.820 5.457 1.977 -17.525 6.982 + 0.682 -17.482 7.293 -0.188 -16.904 6.624 0.219 -18.919 5.792 -0.475 + -18.806 6.266 1.123 -19.413 7.709 -0.511 -19.729 8.381 0.033 -20.804 + 8.342 1.024 -21.230 9.397 -0.808 -21.180 10.107 -0.579 -21.860 9.299 + -2.036 -20.526 9.949 -3.279 -20.615 10.678 -3.438 -21.395 9.650 -4.292 + -19.677 10.128 -5.260 -19.664 8.760 -4.118 -18.696 8.454 -4.927 -18.049 + 8.074 -2.918 -18.549 7.326 -2.855 -17.773 8.278 -1.829 -19.514 8.274 + 1.529 -17.505 8.328 2.623 -18.101 9.369 1.033 -16.907 9.241 0.124 + -16.485 10.613 1.809 -16.631 10.604 2.504 -17.470 10.352 2.656 -15.304 + 9.429 3.219 -15.447 10.278 1.962 -14.467 11.438 3.598 -14.778 12.395 + 3.077 -14.810 11.566 4.479 -15.407 11.070 4.125 -13.366 10.938 3.240 + -12.492 10.944 5.371 -13.122 11.820 0.900 -16.571 11.942 0.089 -15.661 + 12.845 1.181 -17.404 12.754 1.904 -18.104 14.115 0.511 -17.417 14.550 + 0.798 -18.374 15.127 1.164 -16.312 14.506 1.357 -15.437 15.976 0.517 + -16.091 15.682 2.506 -16.718 15.683 2.930 -17.860 16.039 3.364 -15.818 + 16.070 3.044 -14.861 16.197 4.325 -16.086 14.013 -1.030 -17.308 14.646 + -1.709 -16.456 13.358 -1.601 -18.315 12.833 -0.990 -18.925 13.264 -3.096 + -18.375 13.035 -3.292 -19.422 14.221 -3.591 -18.210 12.223 -3.689 -17.379 + 12.184 -4.923 -17.249 11.292 -2.896 -16.751 11.437 -1.899 -16.834 10.391 + -3.351 -15.741 10.203 -4.395 -15.995 11.070 -3.272 -14.363 12.084 -2.874 + -14.336 10.667 -2.458 -13.761 11.045 -4.578 -13.648 11.441 -4.401 -12.648 + 10.000 -4.882 -13.590 11.821 -5.729 -14.284 11.176 -6.006 -15.118 12.776 + -5.372 -14.670 12.106 -6.875 -13.218 12.777 -7.673 -13.537 12.567 -6.348 + -12.383 10.799 -7.455 -12.795 10.243 -6.802 -12.262 10.254 -7.818 -13.564 + 10.892 -8.192 -12.110 8.994 -2.771 -15.657 8.796 -1.578 -15.809 7.954 + -3.487 -15.297 8.147 -4.474 -15.384 6.699 -3.031 -14.675 6.396 -2.048 + -15.035 5.500 -3.903 -14.866 5.878 -4.923 -14.791 4.777 -3.680 -14.082 + 4.841 -3.818 -16.238 5.033 -4.640 -17.275 5.762 -5.432 -17.190 4.332 + -4.157 -18.368 4.313 -4.642 -19.254 3.800 -2.924 -18.182 3.163 -2.004 + -18.987 2.906 -2.136 -20.028 2.847 -0.766 -18.424 2.118 -0.111 -18.878 + 3.130 -0.415 -17.088 2.806 0.502 -16.619 3.701 -1.364 -16.287 3.954 + -1.199 -15.250 4.108 -2.644 -16.801 7.066 -2.840 -13.255 7.567 -3.740 + -12.516 6.672 -1.603 -12.771 6.534 -0.797 -13.364 6.931 -1.076 -11.410 + 7.038 -1.850 -10.650 8.372 -0.534 -11.436 9.029 -1.224 -11.965 8.562 + 0.842 -12.095 9.642 0.900 -12.232 8.096 0.855 -13.080 8.216 1.691 + -11.506 8.784 -0.376 -10.090 9.708 -0.637 -10.121 5.823 -0.047 -10.896 + 5.041 0.435 -11.688 5.790 0.090 -9.535 6.478 -0.273 -8.892 4.812 + 0.908 -8.902 3.913 0.900 -9.518 4.426 0.139 -7.625 4.142 -0.870 + -7.922 5.317 -0.147 -7.067 3.337 0.673 -6.815 3.420 1.456 -5.710 + 4.329 1.781 -5.226 2.164 1.763 -5.241 2.137 2.342 -4.414 1.174 + 1.214 -6.002 -0.265 1.336 -6.000 -0.867 1.766 -5.213 -0.975 0.614 + -6.985 -2.053 0.682 -6.974 -0.248 -0.146 -7.952 -0.857 -0.702 -8.649 + 1.179 -0.156 -8.018 1.726 -0.640 -8.813 1.894 0.466 -6.996 5.289 + 2.312 -8.515 6.399 2.515 -8.015 4.355 3.255 -8.727 3.523 2.911 + -9.185 4.480 4.730 -8.452 5.363 4.928 -7.845 4.743 5.536 -9.781 + 3.852 5.563 -10.408 4.955 6.534 -9.399 5.943 5.042 -10.675 5.784 + 4.001 -10.957 5.964 5.713 -11.533 7.344 5.269 -10.058 7.557 6.319 + -9.855 7.388 4.733 -9.111 8.381 4.703 -11.041 8.041 3.701 -11.302 + 8.485 5.310 -11.940 9.653 4.544 -10.412 10.314 4.191 -11.089 9.980 + 5.398 -9.983 9.563 3.785 -9.751 3.196 5.317 -7.903 2.052 4.934 + -8.220 3.285 6.284 -6.959 4.205 6.419 -6.564 2.463 6.544 -6.433 + 5.175 8.971 5.456 5.559 9.630 4.876 4.594 9.469 6.031 6.520 + -8.348 -12.325 5.774 -7.755 -12.416 7.200 -7.965 -12.879 1.991 -3.532 + 16.075 1.313 -4.167 16.306 1.955 -3.481 15.119 3.555 -12.148 7.565 + 4.430 -12.498 7.393 3.225 -11.894 6.703 -1.803 -4.049 8.083 -2.300 + -4.120 7.268 -1.501 -3.141 8.100 11.655 12.868 11.211 10.771 12.543 + 11.381 12.071 12.892 12.073 18.906 15.911 1.266 18.228 15.418 1.729 + 19.584 15.264 1.075 -4.294 -15.523 -7.633 -4.460 -15.932 -6.783 -4.803 + -14.713 -7.613 1.951 -2.912 13.453 1.624 -3.764 13.164 2.685 -2.726 + 12.868 9.399 -0.034 14.804 8.640 -0.283 15.331 9.266 0.895 14.616 + 13.079 -5.830 -9.364 13.726 -6.525 -9.487 13.585 -5.089 -9.031 10.513 + -17.241 10.770 11.363 -17.197 11.209 10.042 -17.937 11.229 19.350 11.373 + -4.617 19.362 12.183 -4.108 18.697 10.826 -4.182 -9.331 -10.235 -13.470 + -9.361 -11.086 -13.907 -9.774 -9.639 -14.074 9.626 0.345 3.721 9.120 + 1.151 3.625 9.056 -0.339 3.369 -4.726 -14.865 -13.199 -4.335 -14.019 + -12.980 -5.491 -14.645 -13.731 -2.572 5.764 15.635 -2.583 6.464 16.289 + -1.674 5.759 15.305 2.625 0.982 6.119 1.733 1.017 5.774 3.176 + 1.260 5.387 20.520 2.906 4.203 20.236 3.770 3.905 21.376 2.781 + 3.794 1.504 9.908 13.320 1.763 9.488 14.140 0.604 9.618 13.176 + -4.884 9.881 -20.474 -4.078 9.439 -20.207 -4.762 10.061 -21.406 11.363 + 0.186 9.190 10.970 -0.578 9.612 12.205 -0.128 8.862 1.171 6.102 + -2.280 1.119 5.427 -2.956 0.527 6.758 -2.547 -14.301 12.810 -0.165 + -14.227 12.984 -1.104 -14.681 11.933 -0.113 7.504 6.509 8.708 7.670 + 7.011 7.909 6.780 6.969 9.133 9.237 -13.393 -1.026 9.148 -13.538 + -1.968 8.379 -13.069 -0.752 -7.953 -7.756 0.719 -7.322 -7.993 0.040 + -7.433 -7.296 1.379 16.805 -14.932 -5.614 17.671 -15.224 -5.327 16.444 + -15.681 -6.087 0.248 18.612 3.428 -0.429 18.304 4.030 -0.169 19.326 + 2.946 5.632 15.882 -9.712 6.144 15.094 -9.530 5.176 16.066 -8.891 + 16.268 -16.080 3.070 17.060 -15.543 3.041 15.571 -15.495 2.770 8.577 + 4.462 7.195 8.257 5.039 7.888 8.308 3.585 7.471 18.652 -9.728 + 1.780 17.781 -10.107 1.900 19.190 -10.148 2.450 9.201 11.994 12.352 + 9.034 11.910 13.291 9.207 12.938 12.193 -4.042 5.065 6.956 -3.585 + 5.339 6.161 -4.952 4.951 6.682 14.284 9.858 -2.318 14.142 9.519 + -3.202 13.424 9.809 -1.901 -15.289 15.375 -3.479 -15.664 14.835 -4.175 + -15.472 16.275 -3.749 7.326 -4.908 5.421 6.690 -4.923 6.137 7.939 + -4.212 5.660 11.811 0.069 16.126 11.910 0.897 16.596 10.950 0.131 + 15.711 0.214 8.450 4.820 1.058 8.054 5.036 -0.402 8.050 5.435 + 18.993 7.621 6.159 19.364 8.445 6.476 19.059 7.679 5.206 9.991 + 22.729 -4.891 9.302 23.226 -5.332 10.731 22.755 -5.498 -13.298 -7.807 + -3.446 -13.005 -7.586 -2.562 -13.846 -8.583 -3.329 11.651 9.642 3.827 + 11.912 8.801 3.453 12.147 9.706 4.643 11.642 2.857 13.868 11.042 + 3.589 14.009 11.240 2.350 13.162 -10.193 -21.264 1.606 -9.894 -22.165 + 1.482 -11.140 -21.339 1.722 12.716 2.204 17.643 12.857 2.193 18.590 + 12.208 3.000 17.486 -7.959 16.895 -17.007 -8.091 17.462 -16.248 -7.528 + 16.116 -16.653 -16.125 14.907 9.834 -16.819 14.570 10.400 -15.328 14.483 + 10.152 8.739 -3.308 13.987 9.320 -2.619 14.309 9.321 -3.920 13.535 + 18.001 10.139 8.338 17.469 9.394 8.616 17.864 10.798 9.018 -17.425 + 0.553 -18.550 -16.694 1.137 -18.746 -18.192 0.998 -18.912 -0.212 -22.154 + 6.737 0.493 -22.262 6.099 -0.938 -21.788 6.231 7.786 -17.394 -10.974 + 7.961 -17.457 -10.035 6.885 -17.077 -11.029 1.718 -12.154 -10.611 1.492 + -12.172 -9.681 2.663 -12.308 -10.630 -1.948 18.490 0.885 -2.423 18.006 + 0.209 -2.022 19.407 0.621 -0.587 -14.745 2.045 -0.289 -14.198 1.318 + 0.103 -14.666 2.703 1.425 -16.745 -14.930 0.937 -17.506 -14.615 1.674 + -16.975 -15.826 17.330 5.192 -3.194 16.789 5.047 -2.418 16.823 4.813 + -3.913 -1.276 16.931 12.119 -0.407 17.332 12.099 -1.106 15.990 12.109 + 6.005 11.774 8.333 6.352 11.913 9.214 5.079 12.006 8.400 -9.654 + -2.862 4.496 -10.581 -2.778 4.719 -9.575 -2.446 3.638 -12.910 11.076 + 1.754 -12.457 11.052 0.911 -12.903 12.000 2.004 12.333 7.383 2.237 + 13.201 6.998 2.120 11.814 6.686 2.638 -5.821 -10.136 -12.571 -6.662 + -10.467 -12.255 -6.046 -9.587 -13.321 20.321 4.756 -2.007 19.505 4.500 + -2.437 20.333 5.711 -2.065 -15.606 6.543 2.613 -15.886 6.911 1.775 + -14.947 5.890 2.379 -15.809 3.436 -10.425 -15.698 2.728 -9.790 -15.177 + 3.239 -11.116 20.211 3.631 15.489 19.295 3.481 15.253 20.170 4.072 + 16.337 -6.155 20.238 -2.023 -6.268 19.407 -1.561 -6.729 20.167 -2.786 + -17.650 0.115 -7.936 -17.326 -0.722 -7.602 -18.186 -0.122 -8.693 9.327 + -14.261 -9.193 8.609 -14.886 -9.292 10.027 -14.763 -8.776 -11.225 -18.818 + -9.854 -12.068 -18.811 -10.307 -10.978 -17.895 -9.794 2.628 -12.947 -2.698 + 3.386 -12.429 -2.968 1.883 -12.355 -2.805 1.400 20.802 10.108 1.569 + 21.409 9.387 0.648 20.287 9.815 -18.610 -4.462 0.578 -18.077 -5.159 + 0.960 -19.464 -4.555 1.001 -5.131 -9.633 3.915 -4.606 -10.411 4.105 + -5.005 -9.482 2.978 -19.290 13.755 -1.461 -18.346 13.620 -1.378 -19.375 + 14.481 -2.079 10.325 -5.007 12.479 9.783 -5.501 11.864 11.209 -5.060 + 12.115 -3.318 -20.531 0.733 -3.151 -20.999 -0.085 -4.261 -20.368 0.727 + -8.826 12.897 -8.825 -9.084 13.811 -8.940 -8.418 12.870 -7.960 -4.997 + 5.053 -8.066 -5.857 5.040 -7.646 -5.180 4.889 -8.991 1.480 -20.464 + 8.282 0.864 -20.931 7.718 2.048 -19.989 7.675 -14.971 -2.236 12.203 + -14.870 -3.125 12.544 -15.918 -2.096 12.177 -3.211 -15.405 2.313 -3.352 + -16.176 1.763 -2.324 -15.118 2.100 5.415 6.526 -19.773 5.445 6.863 + -18.877 6.334 6.447 -20.030 -4.426 20.813 12.257 -5.348 20.997 12.434 + -4.251 19.996 12.723 -10.658 8.902 18.524 -10.729 7.961 18.364 -10.380 + 8.970 19.437 18.895 -6.469 -3.528 18.518 -6.819 -2.721 19.762 -6.155 + -3.271 11.897 -0.495 19.223 12.491 -1.183 18.920 12.121 0.267 18.688 + 3.944 -19.286 7.546 4.285 -19.239 8.439 4.248 -18.479 7.131 7.445 + -11.572 -5.864 7.940 -12.374 -5.693 6.892 -11.787 -6.615 4.678 -19.372 + -2.232 4.053 -18.655 -2.335 4.270 -19.955 -1.592 13.213 -5.188 11.833 + 12.922 -4.296 11.641 14.011 -5.297 11.317 2.796 -9.593 -12.695 2.858 + -10.548 -12.727 2.708 -9.328 -13.611 -6.185 4.695 5.145 -6.873 5.212 + 5.564 -6.466 3.787 5.254 -13.806 -9.508 7.094 -13.167 -9.093 6.515 + -13.832 -8.942 7.866 1.590 -7.039 -8.972 2.363 -7.494 -9.308 0.856 + -7.602 -9.216 -7.290 -14.009 -13.711 -7.525 -14.714 -13.107 -8.028 -13.957 + -14.318 1.661 -16.159 7.771 0.712 -16.073 7.676 1.990 -16.188 6.873 + 13.289 -14.104 4.745 14.130 -13.827 5.108 13.413 -15.029 4.533 13.878 + -16.864 4.489 13.401 -17.674 4.307 14.790 -17.073 4.288 -17.285 -3.084 + -1.646 -17.716 -3.676 -1.030 -17.243 -2.247 -1.185 -3.603 17.330 -8.737 + -3.883 17.607 -9.609 -3.531 18.144 -8.239 -2.713 12.955 3.857 -3.023 + 13.431 3.087 -3.219 12.142 3.856 9.450 -16.000 17.481 9.050 -16.641 + 16.893 9.657 -15.255 16.917 -2.602 10.020 2.227 -3.493 10.324 2.402 + -2.490 9.264 2.803 -11.662 4.525 0.201 -11.840 3.626 -0.075 -10.765 + 4.692 -0.089 17.962 -6.444 9.951 18.205 -5.534 9.779 17.417 -6.402 + 10.737 11.754 16.337 -4.335 12.611 16.078 -3.994 11.756 16.035 -5.243 + -20.282 -7.742 2.775 -19.515 -7.386 3.225 -20.264 -8.678 2.976 15.984 + 13.090 -4.353 15.049 12.999 -4.536 16.101 14.020 -4.157 19.125 -9.371 + -2.551 19.949 -9.060 -2.927 19.391 -9.934 -1.824 -7.612 -17.323 -6.767 + -8.366 -17.779 -6.393 -7.680 -17.480 -7.709 1.924 -5.667 -17.151 2.664 + -5.075 -17.014 1.164 -5.090 -17.215 -6.994 -0.759 -12.305 -6.909 -0.606 + -11.364 -6.428 -0.100 -12.707 4.370 -15.793 -14.251 3.881 -15.317 -14.922 + 3.699 -16.257 -13.749 8.126 -2.884 -1.546 7.891 -3.548 -2.195 8.988 + -3.152 -1.231 -8.762 15.345 6.238 -8.823 16.278 6.443 -7.830 15.195 + 6.078 21.044 6.781 -8.347 20.822 6.045 -7.777 21.260 6.376 -9.187 + -8.729 -2.242 20.332 -9.581 -2.267 19.897 -8.790 -2.906 21.018 -6.437 + 5.446 17.567 -6.438 4.512 17.357 -6.296 5.880 16.725 -5.060 19.602 + -5.884 -5.441 20.322 -5.381 -4.269 19.364 -5.399 9.839 -17.909 3.498 + 9.398 -18.752 3.386 10.355 -18.013 4.297 -5.264 -9.096 0.726 -4.787 + -8.773 -0.039 -5.412 -8.317 1.262 2.601 9.586 1.254 2.322 8.767 + 0.845 2.079 9.645 2.054 11.722 -10.213 -14.377 12.473 -10.187 -13.785 + 12.097 -10.429 -15.230 9.599 -13.434 -5.434 9.703 -14.000 -4.669 10.494 + -13.254 -5.722 -15.082 2.826 0.476 -15.219 2.720 -0.465 -15.851 3.310 + 0.777 -8.316 18.003 2.265 -7.665 17.556 1.724 -9.158 17.719 1.910 + -2.364 20.657 -8.395 -2.290 21.590 -8.593 -3.089 20.353 -8.941 12.364 + -5.318 -6.540 12.260 -5.984 -5.860 12.137 -5.769 -7.353 3.926 -11.698 + 4.858 4.362 -12.011 4.066 4.341 -10.856 5.044 5.935 8.550 -6.004 + 5.536 9.389 -6.234 6.236 8.667 -5.103 2.151 -17.348 0.449 1.749 + -17.526 1.299 3.086 -17.499 0.589 11.873 -5.662 4.433 10.920 -5.743 + 4.440 12.115 -5.595 5.357 -1.921 -3.144 -5.801 -2.401 -2.925 -6.600 + -1.030 -3.326 -6.100 7.782 -4.154 25.390 8.428 -3.535 25.048 7.341 + -4.494 24.612 6.319 21.809 -3.399 6.549 21.173 -4.076 7.107 21.880 + -2.860 14.429 -0.113 -10.703 15.332 0.162 -10.548 14.274 0.084 -11.627 + 7.037 8.613 12.164 6.635 8.264 11.368 7.031 9.562 12.039 14.429 + 6.124 5.840 14.814 6.594 5.100 14.900 5.291 5.866 -13.339 7.258 + 13.315 -13.571 6.744 12.542 -12.410 7.074 13.454 7.602 -15.073 19.252 + 8.231 -15.375 18.597 7.457 -14.151 19.038 8.244 4.600 0.411 7.569 + 4.082 -0.027 8.767 3.957 0.890 10.325 -4.141 -0.347 10.734 -4.896 + 0.077 10.248 -3.489 0.349 -11.567 -2.409 -14.803 -11.485 -1.491 -15.060 + -11.691 -2.879 -15.628 14.391 -11.089 -10.426 15.277 -11.436 -10.528 14.480 + -10.391 -9.776 6.921 -19.040 1.119 6.428 -19.612 0.531 6.986 -18.210 + 0.647 12.293 3.338 -2.077 12.887 2.611 -1.889 12.740 3.842 -2.758 + -9.071 -0.841 -19.493 -8.432 -1.010 -20.185 -9.921 -0.935 -19.924 3.766 + -10.116 -0.041 4.323 -10.280 -0.802 3.327 -10.951 0.119 -20.266 -1.923 + 8.939 -19.634 -1.355 8.497 -20.403 -1.510 9.792 -0.673 20.701 12.763 + -0.990 20.403 11.910 -0.372 21.597 12.607 -17.612 14.349 4.681 -17.061 + 14.596 5.424 -18.499 14.320 5.040 -11.978 -5.238 3.790 -12.207 -6.118 + 3.491 -12.655 -5.018 4.429 -10.557 -10.043 4.210 -9.957 -10.778 4.339 + -10.210 -9.582 3.447 11.393 -13.537 0.391 11.071 -14.117 1.081 10.625 + -13.361 -0.153 9.385 -6.990 -7.526 9.830 -7.759 -7.169 9.401 -6.352 + -6.813 7.053 -3.863 8.971 6.454 -3.400 8.385 7.496 -3.168 9.459 + 15.666 -13.060 1.245 15.827 -13.074 0.302 14.854 -13.555 1.357 -2.131 + 9.573 8.249 -2.761 9.449 7.539 -1.870 10.491 8.180 -8.445 11.713 + 20.042 -9.120 11.906 20.692 -7.708 12.272 20.288 -18.306 -13.300 9.743 + -19.027 -12.679 9.847 -18.543 -13.814 8.971 -20.630 -10.595 2.464 -21.132 + -11.308 2.068 -20.067 -10.278 1.758 17.469 -5.159 1.761 17.875 -5.882 + 2.239 17.221 -5.539 0.918 -12.100 -14.564 -2.471 -11.535 -15.336 -2.458 + -12.256 -14.396 -3.401 15.288 8.737 3.388 15.314 9.020 4.302 15.667 + 7.858 3.398 7.237 -12.690 -8.534 7.904 -13.318 -8.813 6.442 -13.214 + -8.432 -2.312 2.211 21.832 -2.364 3.141 21.611 -2.740 2.143 22.685 + 16.117 6.204 3.536 15.434 5.886 2.946 16.277 5.473 4.133 2.902 + -21.325 -10.558 1.953 -21.353 -10.438 3.033 -21.535 -11.482 18.507 7.676 + 3.466 17.603 7.381 3.353 18.909 7.551 2.606 -15.347 5.249 17.790 + -15.358 6.183 17.997 -15.121 5.212 16.861 14.652 11.094 7.883 13.957 + 11.704 8.131 14.914 10.682 8.706 13.897 -15.386 0.784 13.635 -16.245 + 1.114 13.079 -14.981 0.494 -4.911 2.528 -5.689 -5.707 2.401 -5.174 + -4.675 3.445 -5.544 -18.744 -7.336 -2.262 -19.601 -6.953 -2.448 -18.346 + -6.737 -1.631 -11.439 -2.521 -6.230 -11.104 -3.410 -6.346 -10.904 -1.986 + -6.816 10.649 -2.149 -5.314 11.058 -2.143 -4.449 10.656 -3.070 -5.576 + -20.271 -10.205 -3.077 -19.495 -10.112 -3.630 -20.197 -11.084 -2.706 9.322 + 4.486 -4.983 9.447 5.258 -4.430 9.477 3.745 -4.398 4.591 -6.832 + -4.595 4.871 -5.918 -4.641 5.246 -7.310 -5.104 9.012 -18.862 6.946 + 9.372 -18.009 6.703 9.710 -19.280 7.451 12.429 13.043 -11.006 13.198 + 12.624 -11.391 11.953 12.328 -10.583 17.468 -8.527 -4.755 17.953 -8.942 + -4.042 17.554 -7.588 -4.588 9.676 4.812 13.304 8.907 4.567 13.818 + 9.421 5.622 12.862 -16.315 -5.982 -6.207 -16.939 -6.298 -5.553 -15.975 + -5.166 -5.839 3.768 -9.716 10.720 2.985 -10.024 10.265 4.229 -10.516 + 10.972 5.121 23.019 9.377 4.778 22.451 10.067 5.863 23.467 9.781 + -19.718 -9.500 0.024 -19.488 -9.369 -0.896 -20.635 -9.772 0.005 -0.130 + -9.581 6.821 0.826 -9.555 6.776 -0.400 -9.951 5.980 13.061 7.275 + -0.918 12.483 7.121 -0.171 13.788 7.784 -0.558 -5.340 -5.113 4.805 + -6.260 -4.848 4.815 -5.176 -5.445 5.688 5.112 0.605 8.184 4.197 + 0.870 8.275 5.604 1.425 8.228 19.242 -13.563 -0.497 18.339 -13.275 + -0.633 19.431 -14.122 -1.250 -7.534 2.208 2.570 -7.363 1.511 3.203 + -7.030 1.958 1.796 -5.387 -16.376 13.889 -5.359 -16.672 14.798 -4.491 + -16.486 13.572 18.374 -2.941 -12.784 17.848 -2.643 -13.526 17.868 -2.684 + -12.013 2.444 18.841 -7.064 2.230 19.711 -7.400 2.198 18.874 -6.139 + 0.296 -1.791 2.250 0.864 -1.023 2.185 -0.510 -1.460 2.646 -7.431 + -5.076 -2.598 -7.650 -4.469 -3.305 -6.921 -5.765 -3.024 -0.102 -5.717 + 5.169 -1.057 -5.668 5.223 0.074 -6.598 4.837 19.313 -4.108 10.130 + 19.318 -3.596 10.939 19.929 -3.654 9.555 16.046 -6.230 11.809 15.611 + -6.831 12.415 16.107 -5.406 12.292 11.471 9.064 9.021 11.234 8.424 + 9.692 10.686 9.601 8.914 6.211 -16.784 -0.302 6.355 -17.435 -0.988 + 5.580 -16.172 -0.681 12.547 -12.026 -7.655 13.134 -11.654 -8.313 12.366 + -12.912 -7.969 14.099 8.929 10.220 14.252 9.603 10.882 13.188 9.056 + 9.954 15.991 -9.789 -2.149 15.519 -9.014 -2.456 16.886 -9.663 -2.462 + -19.944 5.128 11.953 -20.090 4.303 12.417 -19.867 4.875 11.033 -3.180 + -5.536 0.536 -2.934 -5.121 -0.290 -2.428 -5.390 1.111 -14.153 8.515 + -6.433 -14.617 9.136 -6.995 -13.365 8.288 -6.926 4.442 5.360 -4.213 + 5.250 5.621 -4.654 4.705 5.197 -3.307 -9.012 11.411 14.529 -9.399 + 11.361 15.403 -8.277 12.016 14.626 9.905 14.363 9.011 10.224 14.135 + 9.884 10.616 14.871 8.621 -21.422 10.152 2.275 -20.598 10.439 1.882 + -21.211 10.005 3.196 -15.505 -13.279 7.252 -15.892 -14.086 7.590 -15.164 + -12.833 8.027 5.817 -4.115 -0.462 6.209 -4.639 0.236 6.544 -3.598 + -0.810 -13.441 12.340 -9.103 -12.989 12.709 -9.861 -14.038 13.032 -8.818 + -16.143 3.339 -2.195 -17.011 3.725 -2.076 -15.837 3.691 -3.030 14.016 + -0.685 -4.594 14.079 -0.459 -5.522 13.247 -0.207 -4.282 15.753 -13.069 + -8.496 15.749 -13.041 -7.539 15.042 -13.669 -8.721 -6.140 8.486 -2.993 + -6.815 8.904 -2.460 -6.131 7.575 -2.698 15.927 8.824 5.926 15.603 + 9.427 6.595 16.507 8.229 6.400 20.468 13.881 -0.297 20.228 13.081 + 0.170 21.380 13.745 -0.553 4.518 7.295 -13.139 4.359 6.368 -13.318 + 3.897 7.515 -12.446 11.389 9.534 -1.897 11.474 8.624 -1.610 10.859 + 9.950 -1.217 5.052 -16.924 16.687 4.727 -17.653 17.215 4.924 -16.152 + 17.239 9.253 -0.244 6.501 9.869 0.384 6.878 9.126 0.055 5.601 + -5.758 4.467 2.360 -5.716 4.744 3.275 -6.424 3.780 2.348 2.452 + -1.602 -3.880 2.007 -1.603 -4.727 2.191 -0.776 -3.473 6.763 -5.958 + 1.440 7.706 -5.988 1.600 6.435 -6.789 1.782 -18.345 -12.179 -0.387 + -19.085 -11.704 -0.009 -18.237 -12.944 0.179 -19.692 -1.446 -9.597 -19.091 + -2.191 -9.582 -20.524 -1.804 -9.289 -16.130 10.505 1.510 -15.715 10.261 + 0.684 -15.400 10.681 2.103 14.496 -7.593 -2.841 14.318 -6.681 -2.610 + 13.630 -7.981 -2.966 15.457 13.602 0.719 15.578 13.188 -0.136 15.701 + 12.925 1.350 -5.156 -15.048 5.376 -5.414 -15.192 4.466 -5.948 -14.718 + 5.801 5.941 -8.604 9.067 5.272 -9.118 9.519 6.741 -8.756 9.570 + 7.113 23.811 1.690 8.040 23.622 1.547 6.897 23.350 2.501 10.723 + -15.983 -7.898 10.082 -16.360 -7.295 11.572 -16.202 -7.513 4.028 -14.367 + 17.789 3.220 -14.358 17.276 3.817 -13.865 18.577 -1.970 -7.921 -15.036 + -1.451 -8.013 -15.835 -1.689 -7.086 -14.662 -20.891 9.443 4.889 -21.186 + 9.646 5.777 -19.963 9.229 4.988 6.820 -10.542 12.673 6.053 -11.084 + 12.490 6.718 -10.285 13.589 1.218 22.550 -11.418 1.607 22.049 -12.135 + 1.321 23.464 -11.683 5.661 -10.212 18.362 4.790 -9.828 18.258 6.236 + -9.463 18.518 -8.990 -10.415 13.924 -9.217 -10.096 13.051 -8.230 -10.979 + 13.783 -2.040 16.239 16.006 -2.602 16.507 15.279 -2.646 15.896 16.662 + 16.392 -0.415 -2.359 16.310 -0.659 -1.437 16.797 0.452 -2.341 -10.172 + 5.599 21.027 -10.015 6.487 21.348 -10.918 5.287 21.540 -8.380 4.127 + 19.330 -7.876 4.667 18.721 -8.915 4.753 19.818 15.344 14.121 10.773 + 15.127 14.488 9.916 15.883 14.793 11.192 16.649 -6.592 -0.408 16.327 + -7.404 -0.016 15.903 -6.254 -0.905 -7.918 16.660 -2.919 -8.440 15.870 + -3.058 -7.735 16.985 -3.801 -6.195 -13.161 -7.765 -5.647 -13.121 -8.549 + -6.080 -12.307 -7.348 14.201 -3.618 -5.573 13.526 -4.248 -5.827 13.763 + -3.035 -4.953 7.517 -8.772 -8.957 7.694 -9.647 -9.303 8.356 -8.316 + -9.019 -6.869 -15.437 -1.568 -7.524 -14.999 -1.023 -7.344 -15.680 -2.363 + -14.619 -18.941 -4.959 -13.826 -18.654 -4.508 -14.729 -19.854 -4.694 -15.454 + 4.402 -18.621 -15.637 3.625 -19.150 -16.202 4.978 -18.775 19.106 -13.431 + 5.218 20.054 -13.560 5.227 18.750 -14.285 4.974 -1.910 4.038 -4.196 + -2.132 4.257 -5.101 -2.654 4.353 -3.683 15.485 -15.390 -1.786 15.075 + -15.524 -0.931 15.534 -14.439 -1.881 2.794 2.937 -22.247 3.383 3.664 + -22.044 3.374 2.232 -22.534 16.651 11.003 1.270 16.164 10.428 1.860 + 16.494 10.640 0.398 6.493 17.309 -2.455 6.709 18.165 -2.086 5.545 + 17.234 -2.345 5.878 -6.763 -1.575 5.918 -5.818 -1.429 6.766 -7.003 + -1.839 6.453 -19.794 -4.129 5.970 -20.327 -4.760 5.793 -19.515 -3.495 + -15.341 -5.799 -3.113 -15.715 -6.084 -2.279 -14.522 -6.288 -3.188 -14.139 + 2.084 -15.928 -14.371 1.787 -16.808 -13.957 3.018 -16.031 -5.774 11.215 + -2.724 -6.608 11.682 -2.774 -5.948 10.368 -3.134 10.336 -2.413 1.599 + 10.883 -2.338 2.381 10.481 -1.594 1.126 7.449 -4.008 -7.667 6.812 + -4.634 -8.014 7.819 -3.588 -8.443 -6.030 18.578 16.303 -6.030 18.237 + 17.197 -6.907 18.384 15.972 -15.704 -3.297 -3.892 -16.195 -3.138 -3.086 + -15.560 -4.243 -3.903 14.305 -2.866 -11.288 14.313 -2.790 -10.334 14.589 + -2.006 -11.599 -13.972 15.775 -7.477 -14.190 16.704 -7.549 -14.089 15.432 + -8.363 4.968 22.200 0.617 5.680 22.615 1.105 4.516 22.928 0.190 + 13.404 -7.855 6.361 12.900 -7.329 6.981 13.480 -7.302 5.583 15.366 + -3.871 3.684 15.506 -4.693 4.154 16.229 -3.458 3.662 20.216 -1.917 + 1.591 20.683 -2.439 0.939 20.843 -1.242 1.851 -4.113 -13.463 -0.165 + -4.156 -14.353 -0.514 -4.264 -13.566 0.774 0.257 -16.571 -9.859 -0.400 + -16.322 -10.509 -0.227 -16.613 -9.033 6.933 -0.749 16.725 6.334 -0.003 + 16.744 6.750 -1.224 17.536 -7.206 -10.265 -4.591 -7.518 -11.166 -4.518 + -6.287 -10.307 -4.324 19.862 2.622 -9.823 20.478 2.076 -9.334 20.191 + 3.513 -9.711 15.880 1.140 0.506 16.682 0.640 0.353 15.441 0.676 + 1.219 18.065 11.961 6.325 18.094 11.293 7.010 18.154 11.470 5.508 + -6.708 -0.974 -2.867 -6.015 -0.324 -2.748 -7.457 -0.470 -3.185 14.119 + -3.426 -8.451 14.279 -3.698 -7.548 13.369 -2.834 -8.394 -20.732 -11.769 + 10.209 -21.281 -11.257 9.615 -21.340 -12.369 10.640 5.239 1.946 -2.887 + 5.160 0.992 -2.888 5.903 2.132 -3.551 -14.117 0.566 -13.677 -14.131 + 1.255 -14.341 -15.036 0.323 -13.564 10.397 7.926 14.170 9.590 7.573 + 14.544 10.999 7.182 14.151 6.811 -13.139 10.300 7.581 -12.735 9.899 + 7.154 -13.904 10.762 16.135 13.773 -10.657 15.463 13.210 -11.041 16.735 + 13.957 -11.380 -9.449 9.301 2.702 -8.772 8.653 2.511 -10.272 8.817 + 2.626 -18.069 -12.794 -10.223 -17.705 -13.655 -10.018 -17.303 -12.230 -10.333 + 6.926 -12.467 -0.244 6.749 -11.617 -0.646 6.366 -12.487 0.532 -7.916 + -16.237 -12.344 -7.098 -16.566 -11.974 -8.323 -17.004 -12.746 -3.554 -4.245 + 19.087 -3.720 -4.813 19.840 -3.850 -3.379 19.371 -16.275 -3.284 9.544 + -16.195 -2.433 9.115 -16.451 -3.075 10.461 1.364 14.197 -14.365 1.546 + 13.259 -14.309 0.573 14.256 -14.900 -1.867 -9.907 -5.575 -2.297 -9.853 + -6.429 -0.939 -9.768 -5.764 -18.352 -7.939 -8.118 -17.572 -7.394 -8.008 + -18.609 -8.171 -7.225 17.647 3.296 1.362 17.716 3.014 2.275 16.955 + 2.746 0.994 7.459 -18.679 -13.509 7.678 -17.750 -13.436 7.299 -18.959 + -12.608 -16.012 -17.252 4.197 -15.611 -17.208 5.065 -15.327 -17.613 3.634 + -17.408 8.100 10.177 -17.055 7.661 10.951 -16.900 7.745 9.448 5.262 + -2.839 23.180 5.645 -2.188 23.768 5.676 -3.664 23.433 15.940 -5.808 + 5.493 15.986 -6.356 6.276 16.377 -6.324 4.814 -12.219 -2.181 5.003 + -13.097 -2.449 4.735 -12.170 -1.254 4.772 -17.687 -2.153 11.652 -17.845 + -2.316 12.582 -18.522 -2.353 11.228 -20.304 -3.953 11.737 -20.945 -3.471 + 12.259 -20.731 -4.787 11.542 -17.019 4.851 9.898 -17.961 4.703 9.816 + -16.693 4.075 10.354 -19.712 -3.249 -3.048 -18.787 -3.490 -3.086 -20.124 + -3.770 -3.737 19.886 2.631 -0.133 20.258 3.303 -0.705 19.209 3.088 + 0.365 3.817 16.568 -4.828 4.040 17.110 -4.071 3.792 15.675 -4.485 + -11.150 -10.729 -11.319 -10.495 -10.351 -11.905 -11.536 -11.446 -11.821 -11.253 + 17.120 -8.187 -11.499 16.247 -8.493 -11.409 17.690 -8.940 -16.368 -14.603 + 3.398 -15.556 -14.308 3.810 -16.409 -15.540 3.594 1.668 4.491 -4.667 + 1.369 5.264 -5.145 2.606 4.635 -4.544 12.229 -5.643 7.156 11.452 + -5.290 7.589 12.960 -5.358 7.705 -5.839 -10.807 10.845 -5.691 -9.891 + 10.609 -5.917 -10.800 11.799 16.496 1.898 17.291 16.403 1.028 16.901 + 17.341 1.870 17.739 11.267 14.541 -6.778 11.017 14.501 -7.701 10.709 + 13.891 -6.351 21.207 6.872 13.611 20.478 6.345 13.938 21.747 6.255 + 13.118 2.453 6.796 10.345 1.496 6.783 10.376 2.661 6.901 9.417 + 15.091 9.901 -10.363 14.966 10.280 -9.493 14.564 9.102 -10.355 3.242 + -7.934 3.402 3.353 -8.051 2.458 4.103 -7.655 3.712 -4.504 0.109 + 21.247 -3.999 0.900 21.435 -5.417 0.395 21.280 -9.931 -0.461 -2.426 + -10.489 -0.371 -3.199 -10.009 -1.382 -2.180 -14.326 -0.168 -10.071 -13.502 + -0.500 -10.428 -15.001 -0.706 -10.485 11.430 4.686 2.900 11.026 4.830 + 3.756 12.034 3.956 3.040 0.059 -3.894 -17.985 -0.458 -4.122 -18.757 + -0.365 -3.109 -17.636 20.910 7.231 -3.410 21.658 7.814 -3.539 20.155 + 7.817 -3.357 3.482 23.223 -1.735 3.952 23.410 -2.548 2.634 23.653 + -1.844 6.370 -8.308 -5.976 7.045 -8.824 -5.534 6.659 -8.266 -6.887 + 9.131 2.438 -8.711 8.248 2.246 -8.397 9.495 1.582 -8.940 8.813 + 6.135 11.086 8.585 6.617 10.291 8.945 6.814 11.748 20.456 5.164 + -6.120 20.501 5.686 -5.319 20.713 4.283 -5.848 -10.220 -3.032 -2.301 + -11.142 -2.901 -2.522 -10.221 -3.777 -1.701 9.583 -10.444 -1.986 9.086 + -10.419 -1.169 10.462 -10.717 -1.724 -6.008 8.048 -10.861 -5.804 8.362 + -9.981 -5.311 8.406 -11.411 -16.200 2.938 18.598 -17.125 2.832 18.375 + -15.930 3.727 18.127 4.949 -19.848 3.554 5.495 -20.459 3.059 5.535 + -19.489 4.221 15.933 -10.126 5.824 15.254 -10.187 6.496 16.257 -9.229 + 5.892 11.134 6.791 -10.801 11.403 7.635 -11.162 11.058 6.217 -11.564 + -4.425 -4.283 -16.106 -4.992 -4.012 -15.384 -3.971 -5.058 -15.776 -16.905 + 11.463 -5.168 -16.338 12.188 -5.433 -17.156 11.044 -5.991 8.317 -6.384 + -15.705 8.307 -7.072 -15.039 8.307 -6.857 -16.537 13.881 8.832 -4.800 + 14.256 8.255 -5.465 13.296 8.268 -4.294 -17.077 10.627 10.850 -16.153 + 10.669 11.096 -17.232 9.703 10.656 13.959 7.305 -10.460 13.232 6.900 + -9.986 13.937 6.897 -11.326 2.758 -17.654 -5.276 2.325 -16.804 -5.351 + 2.172 -18.174 -4.726 -10.951 16.918 -4.034 -11.590 16.628 -3.382 -10.976 + 16.242 -4.711 -18.906 4.848 -2.921 -18.390 5.564 -2.553 -19.787 4.983 + -2.571 -16.075 -9.523 -2.387 -15.822 -10.117 -1.680 -16.146 -8.666 -1.966 + 15.675 -2.069 0.037 15.840 -1.663 0.887 15.586 -3.003 0.231 18.517 + 6.641 -12.066 18.605 6.064 -11.308 17.942 7.345 -11.765 6.844 4.818 + -5.665 7.579 4.304 -5.331 7.237 5.411 -6.306 -11.210 13.405 13.326 + -10.561 13.262 14.015 -10.754 13.940 12.676 15.955 -5.863 -7.985 16.895 + -5.780 -7.821 15.643 -6.449 -7.295 20.144 -5.860 5.765 20.819 -5.552 + 6.370 19.391 -5.296 5.940 -3.408 -2.239 6.228 -3.800 -1.588 6.809 + -2.490 -1.976 6.158 -12.363 -8.584 -10.111 -11.793 -9.065 -10.711 -12.030 + -8.799 -9.239 15.496 -8.065 -13.817 16.195 -7.963 -14.463 15.269 -7.170 + -13.566 8.677 -9.657 -4.266 8.456 -10.252 -4.983 8.945 -10.233 -3.550 + -10.191 5.888 9.180 -9.384 6.382 9.036 -10.067 5.470 10.032 17.035 + -11.911 -10.388 16.581 -12.342 -9.665 17.667 -11.332 -9.962 -6.254 -2.620 + -14.689 -6.046 -2.242 -13.834 -6.313 -1.866 -15.276 -2.786 6.774 19.233 + -3.112 5.879 19.142 -2.058 6.703 19.851 15.029 -8.111 -6.141 15.696 + -8.389 -5.514 14.297 -7.818 -5.598 -4.921 17.172 2.763 -4.025 16.852 + 2.663 -5.427 16.673 2.122 21.228 -12.850 1.169 21.648 -13.562 1.651 + 20.583 -13.285 0.612 10.940 -9.599 -6.504 11.095 -10.530 -6.660 11.299 + -9.163 -7.277 -2.287 -14.292 -10.021 -1.889 -14.652 -10.814 -2.053 -14.913 + -9.332 -18.299 -14.026 1.527 -17.620 -13.966 2.199 -18.267 -14.936 1.234 + 12.989 -8.144 10.187 12.891 -7.269 10.561 13.913 -8.358 10.318 -5.860 + 4.449 -10.950 -6.576 4.513 -11.582 -5.137 4.925 -11.357 -9.643 7.927 + 6.957 -10.426 7.748 6.435 -9.826 8.764 7.384 -6.933 2.132 5.977 + -7.435 1.342 6.180 -7.032 2.684 6.753 18.326 -10.199 -8.369 18.986 + -9.530 -8.185 18.801 -11.028 -8.305 15.839 -4.845 -15.185 15.535 -4.904 + -14.279 16.192 -3.959 -15.263 6.242 11.637 14.961 6.956 12.217 14.697 + 5.592 12.220 15.353 18.351 0.522 -17.101 18.434 0.284 -16.178 18.081 + -0.288 -17.534 19.267 -4.236 -5.115 18.876 -3.587 -4.530 18.804 -5.049 + -4.914 7.595 16.757 -4.681 7.341 16.761 -3.758 8.352 17.341 -4.723 + 5.832 -10.075 15.212 5.099 -10.619 15.501 6.156 -9.664 16.013 3.798 + 21.790 -10.018 3.090 21.707 -10.657 4.175 20.912 -9.963 -11.543 -7.330 + 10.272 -11.510 -7.160 11.214 -12.443 -7.613 10.111 21.064 2.616 7.804 + 20.593 2.088 7.159 21.506 1.976 8.361 17.756 -8.890 -10.754 18.627 + -8.690 -11.096 17.918 -9.456 -10.000 -0.820 11.937 1.273 -0.242 11.353 + 0.780 -1.452 11.352 1.691 0.199 -21.954 -11.180 -0.442 -21.900 -10.471 + -0.172 -22.592 -11.790 -20.850 -2.360 -15.871 -21.208 -1.597 -15.417 -21.139 + -3.108 -15.349 15.658 4.485 -11.463 15.139 5.100 -11.981 16.075 5.028 + -10.794 -5.981 3.853 25.101 -6.499 3.445 25.795 -6.567 3.874 24.345 + -10.434 10.228 12.520 -11.365 10.380 12.681 -9.996 10.576 13.297 -17.311 + -6.329 -14.062 -16.542 -6.660 -13.597 -17.666 -5.653 -13.485 7.089 2.035 + -5.194 6.729 2.615 -5.866 7.129 1.176 -5.615 13.286 -11.647 0.023 + 12.605 -12.303 0.173 13.250 -11.476 -0.918 2.010 -8.594 14.760 1.408 + -7.851 14.809 2.697 -8.307 14.158 -11.606 4.234 -13.519 -11.043 4.718 + -14.123 -11.073 3.489 -13.240 -19.465 -1.951 0.685 -19.121 -2.844 0.701 + -19.250 -1.595 1.547 10.025 -11.541 1.943 10.793 -11.895 1.494 9.403 + -12.268 1.960 11.942 2.758 5.345 11.397 2.267 5.959 11.903 3.661 + 5.659 -1.337 -9.359 12.066 -1.129 -8.588 11.538 -2.292 -9.352 12.134 + -13.336 -1.902 -12.805 -13.627 -1.038 -13.097 -12.609 -2.120 -13.389 -3.961 + 18.393 14.185 -3.336 18.820 14.772 -4.794 18.430 14.654 20.003 -10.713 + -0.321 19.611 -11.581 -0.415 19.588 -10.347 0.460 4.375 -13.568 -19.466 + 4.193 -12.998 -20.213 3.816 -14.332 -19.605 0.769 -7.676 -19.810 0.053 + -7.473 -19.208 1.300 -6.880 -19.828 -16.264 -10.785 -10.042 -15.990 -10.007 + -9.555 -16.765 -10.440 -10.781 16.671 -12.586 -4.148 15.963 -12.027 -4.469 + 16.596 -13.387 -4.667 3.323 4.815 3.285 2.850 4.098 2.863 3.814 + 4.395 3.992 -6.876 -0.453 -21.135 -6.864 0.494 -21.275 -6.814 -0.826 + -22.014 9.077 19.980 -9.765 9.925 19.543 -9.689 8.507 19.326 -10.170 + -0.880 -1.398 6.684 -0.568 -0.494 6.642 -0.361 -1.861 6.026 -11.903 + -11.056 8.114 -11.173 -10.525 7.796 -12.681 -10.644 7.738 -6.278 6.355 + 14.855 -5.931 5.514 14.557 -5.680 7.005 14.486 18.708 -5.517 -7.410 + 19.491 -5.852 -7.846 19.041 -5.053 -6.642 6.392 -7.596 12.852 6.404 + -8.544 12.721 7.315 -7.350 12.906 -10.747 -14.049 10.333 -10.091 -14.658 + 10.672 -10.778 -13.345 10.980 -7.298 -16.715 11.841 -6.898 -16.926 10.997 + -6.558 -16.628 12.442 -1.167 -6.938 14.043 -1.345 -7.878 13.998 -1.357 + -6.616 13.162 9.512 -10.676 4.413 9.652 -11.540 4.801 9.803 -10.770 + 3.506 -4.898 -17.367 6.985 -5.553 -17.244 7.672 -4.970 -16.582 6.443 + -1.161 2.375 1.899 -0.247 2.651 1.954 -1.167 1.697 1.223 -8.260 + 13.245 17.573 -8.435 12.423 18.032 -8.205 13.900 18.269 -11.397 3.012 + 5.272 -12.075 3.686 5.221 -10.847 3.281 6.008 5.943 9.168 15.951 + 5.723 8.560 15.245 6.151 9.989 15.505 -4.305 3.642 0.362 -3.621 + 4.310 0.318 -4.675 3.735 1.240 -14.998 4.689 -4.300 -14.174 4.618 + -3.818 -14.810 4.300 -5.154 -7.823 -0.578 13.725 -7.963 -0.984 14.580 + -8.671 -0.192 13.501 -16.954 -7.893 6.528 -16.734 -8.784 6.800 -17.898 + -7.824 6.672 4.547 20.883 4.609 5.179 21.564 4.379 3.700 21.330 + 4.602 -10.504 -4.835 -6.529 -10.389 -5.667 -6.070 -10.206 -5.010 -7.421 + -10.279 1.294 13.937 -10.534 1.251 14.859 -10.483 2.191 13.673 5.978 + -9.947 3.088 5.456 -9.265 2.666 6.637 -10.183 2.435 4.485 13.195 + 11.531 5.114 13.898 11.365 3.737 13.634 11.935 -17.789 -11.146 -7.132 + -16.899 -11.497 -7.148 -17.950 -10.859 -8.030 11.688 -16.244 6.369 12.510 + -16.486 5.944 11.940 -15.600 7.031 7.505 -14.141 13.790 7.103 -13.830 + 14.601 7.063 -14.970 13.606 20.208 0.674 5.838 19.279 0.756 6.053 + 20.376 1.392 5.227 -7.825 -7.852 -5.966 -7.422 -7.414 -5.216 -7.797 + -8.783 -5.743 -15.540 0.357 2.979 -15.774 0.038 2.108 -14.755 0.887 + 2.838 18.261 0.077 0.401 18.964 0.475 0.914 18.620 -0.763 0.114 + 19.921 -4.318 -15.333 19.482 -4.069 -14.520 19.325 -4.030 -16.025 19.646 + -2.207 12.443 18.931 -2.057 13.060 20.105 -1.368 12.399 0.315 13.763 + 3.101 -0.016 13.077 2.521 1.122 14.062 2.683 -0.286 1.569 5.903 + -0.532 1.369 5.000 -1.092 1.895 6.305 1.889 -15.532 -3.805 2.144 + -14.664 -3.492 0.968 -15.438 -4.048 21.115 -1.763 -12.920 20.356 -2.294 + -13.159 20.743 -0.934 -12.620 3.505 20.177 -2.120 3.779 21.067 -1.898 + 3.302 20.215 -3.055 19.494 -6.999 3.203 19.825 -6.376 3.850 20.242 + -7.565 3.011 -8.449 3.831 23.688 -8.836 4.607 23.283 -9.144 3.480 + 24.245 -3.427 -10.409 -10.829 -4.127 -9.912 -11.251 -2.662 -10.265 -11.386 + -7.366 5.344 -13.062 -7.129 6.185 -13.454 -7.356 4.728 -13.794 -17.943 + -0.942 -16.187 -18.315 -1.721 -16.601 -17.825 -0.323 -16.907 -4.006 -15.081 + -4.601 -4.867 -14.840 -4.940 -3.424 -14.385 -4.907 -16.658 0.181 -14.004 + -16.976 -0.234 -14.806 -17.378 0.085 -13.382 4.393 6.904 1.542 3.574 + 7.369 1.369 4.118 6.065 1.914 19.734 5.334 2.785 20.171 5.996 + 3.321 19.990 5.546 1.888 -7.528 -4.137 6.769 -8.219 -4.755 6.531 + -7.893 -3.277 6.558 -14.709 -13.445 -10.343 -15.043 -12.571 -10.141 -15.403 + -14.038 -10.055 -17.011 13.805 12.367 -16.588 12.948 12.415 -17.938 13.624 + 12.525 1.808 -10.485 9.376 2.169 -11.208 8.863 0.949 -10.798 9.659 + -16.124 14.308 -6.044 -15.585 14.854 -6.617 -17.014 14.414 -6.379 -1.618 + 11.679 -7.376 -2.575 11.672 -7.336 -1.368 12.511 -6.973 3.122 -3.999 + -0.657 4.074 -4.086 -0.611 2.796 -4.558 0.048 -5.523 6.310 -19.820 + -5.156 6.089 -20.676 -5.489 5.491 -19.327 -9.607 -12.941 -9.204 -8.723 + -13.154 -9.503 -9.524 -12.074 -8.807 -0.280 7.516 -14.561 0.300 7.782 + -15.274 -0.586 6.645 -14.813 4.153 -0.755 4.675 5.063 -1.031 4.785 + 3.919 -0.360 5.514 -4.267 -8.719 9.854 -3.333 -8.903 9.753 -4.680 + -9.162 9.113 14.071 -0.031 8.398 13.790 0.419 7.602 14.671 0.583 + 8.822 -7.437 -14.607 9.379 -6.695 -14.301 8.858 -7.646 -15.467 9.016 + -1.921 10.687 -1.764 -2.867 10.783 -1.651 -1.629 11.544 -2.076 -6.728 + -14.843 -5.654 -6.761 -14.146 -6.309 -6.860 -15.649 -6.155 9.197 -2.838 + 18.167 8.878 -2.380 18.945 8.650 -2.509 17.454 -18.335 8.830 -10.043 + -17.967 9.649 -10.376 -17.714 8.157 -10.323 -0.300 18.445 -8.918 0.387 + 19.065 -9.163 -1.093 18.979 -8.855 -2.023 13.455 -0.872 -1.603 12.965 + -0.164 -1.308 13.943 -1.281 6.373 -3.357 2.816 6.731 -4.194 2.519 + 5.430 -3.437 2.678 -3.592 -0.569 -11.539 -3.883 -0.888 -10.685 -3.294 + 0.325 -11.372 -4.912 -18.009 -9.300 -5.076 -17.759 -10.209 -4.487 -17.243 + -8.914 3.442 4.518 20.373 3.816 4.530 21.254 2.503 4.397 20.514 + -2.499 16.160 2.058 -1.864 15.565 2.456 -1.979 16.913 1.778 9.962 + 0.641 -5.749 10.643 0.398 -5.122 10.439 0.844 -6.554 12.276 5.761 + 14.245 12.222 5.395 13.362 12.806 5.131 14.733 -12.936 -11.181 -8.709 + -13.469 -10.501 -9.120 -12.166 -11.256 -9.273 7.596 -1.613 22.164 6.819 + -1.160 21.837 8.288 -1.378 21.545 -16.118 -17.425 -6.566 -15.790 -17.648 + -7.437 -15.600 -17.966 -5.970 -8.522 -2.066 10.543 -9.153 -1.525 11.018 + -7.936 -2.402 11.221 17.068 -12.207 -1.388 16.392 -11.530 -1.364 17.268 + -12.313 -2.319 16.480 17.816 -5.316 15.934 17.030 -5.298 16.665 18.000 + -4.395 -11.420 10.910 -14.738 -11.424 10.891 -15.695 -11.290 9.997 -14.481 + 6.015 19.302 6.888 6.184 18.783 6.102 5.625 20.112 6.561 -0.467 + 12.668 -3.522 -0.739 13.575 -3.661 0.487 12.713 -3.450 -8.767 18.417 + -7.724 -9.115 18.932 -6.996 -9.486 17.836 -7.972 -2.952 3.180 15.641 + -3.807 2.763 15.531 -3.156 4.091 15.855 1.026 11.927 6.615 1.294 + 12.534 5.925 0.071 11.984 6.625 -3.640 7.360 3.052 -3.175 6.810 + 3.682 -4.547 7.361 3.358 -4.857 1.007 7.934 -4.834 1.151 6.988 + -5.707 0.595 8.093 -3.957 -20.578 -4.136 -4.182 -20.498 -3.210 -4.772 + -20.848 -4.559 16.705 10.249 -4.843 15.846 9.832 -4.915 16.511 11.182 + -4.753 -4.836 10.744 3.656 -5.601 10.238 3.384 -5.135 11.653 3.646 + -0.970 3.722 -1.251 -1.792 4.146 -1.006 -0.815 4.001 -2.153 -9.888 + -6.759 7.949 -9.625 -5.928 8.344 -10.296 -7.246 8.666 -10.282 -0.310 + 11.839 -11.227 -0.282 11.690 -10.130 0.334 12.531 2.772 -3.949 -22.647 + 2.642 -3.019 -22.461 3.476 -3.967 -23.295 19.673 14.538 6.741 19.205 + 13.769 6.417 20.491 14.548 6.244 -8.784 18.583 11.787 -9.404 18.434 + 11.074 -8.458 17.710 12.008 1.470 2.760 2.396 1.528 3.084 1.497 + 2.170 2.111 2.462 -5.339 -17.007 -11.670 -5.227 -17.888 -12.028 -4.980 + -16.429 -12.342 2.200 16.595 0.100 2.554 15.954 0.716 2.168 17.413 + 0.596 2.535 1.950 8.953 1.769 2.499 9.122 2.369 1.565 8.093 + 10.540 12.920 1.985 10.875 13.087 2.866 11.036 12.161 1.680 -2.558 + 4.682 -6.909 -2.348 5.615 -6.866 -3.491 4.656 -7.118 -17.590 3.739 + -5.279 -16.733 4.034 -4.971 -18.210 4.102 -4.646 -9.639 3.901 15.983 + -8.788 3.713 15.589 -9.889 3.085 16.417 8.587 9.045 -16.414 8.733 + 9.886 -16.848 8.630 9.247 -15.480 11.648 -0.433 -10.476 11.586 0.521 + -10.420 12.587 -0.610 -10.527 10.062 2.162 -0.496 10.475 2.457 -1.307 + 9.129 2.327 -0.628 -20.770 2.829 13.332 -21.186 3.172 14.123 -20.393 + 1.992 13.604 -5.006 -23.975 0.727 -4.140 -24.240 0.417 -5.496 -23.779 + -0.072 -4.227 16.087 -14.080 -4.061 17.005 -13.867 -3.725 15.596 -13.429 + -3.159 17.045 -1.272 -3.449 16.134 -1.240 -3.913 17.525 -1.617 -14.226 + 5.660 11.129 -13.546 5.862 10.486 -14.959 5.333 10.608 -4.594 4.971 + -4.530 -4.473 5.899 -4.730 -5.434 4.933 -4.072 -8.592 -1.335 -6.035 + -8.565 -2.136 -5.511 -8.143 -1.566 -6.848 8.196 14.471 -2.892 8.847 + 14.643 -2.212 8.289 15.203 -3.503 -0.705 4.758 9.442 -1.498 4.552 + 9.937 0.001 4.338 9.934 16.068 13.941 6.401 16.684 14.672 6.444 + 16.622 13.169 6.281 -2.895 1.793 -15.942 -3.261 0.924 -15.781 -1.954 + 1.687 -15.807 11.393 0.490 -3.432 11.992 0.812 -2.759 11.014 -0.304 + -3.056 -8.454 9.796 -6.065 -8.957 10.130 -6.807 -8.068 10.576 -5.666 + 11.960 15.716 8.249 12.476 16.191 8.901 12.520 15.691 7.473 6.678 + -16.244 -15.384 6.925 -15.623 -16.070 6.133 -15.734 -14.785 3.732 -11.747 + 15.609 4.013 -12.489 15.074 3.157 -12.132 16.270 -1.702 1.187 -2.704 + -1.481 1.476 -1.819 -1.155 1.725 -3.276 1.657 -1.547 -0.465 1.589 + -1.335 -1.396 1.956 -2.456 -0.448 -17.703 13.957 -10.012 -17.829 13.645 + -9.116 -18.537 13.778 -10.447 -4.873 9.730 -8.650 -4.027 9.793 -9.092 + -4.948 10.547 -8.158 13.040 -10.117 8.041 12.663 -9.622 8.769 13.285 + -9.450 7.400 9.138 -3.021 6.146 9.450 -3.425 6.955 9.498 -2.134 + 6.167 7.727 13.956 -10.074 8.642 14.225 -10.152 7.516 13.572 -10.925 + -9.493 -5.023 18.472 -9.052 -5.872 18.510 -10.011 -4.987 19.277 7.961 + 2.421 14.491 7.020 2.371 14.326 8.364 2.165 13.661 4.339 -0.758 + 0.270 3.601 -0.916 -0.319 4.908 -1.518 0.150 -19.669 2.133 -13.048 + -19.042 2.506 -13.668 -19.381 1.228 -12.930 -12.646 3.666 -3.093 -11.814 + 3.325 -3.420 -12.942 3.009 -2.462 7.460 18.156 11.078 7.689 17.308 + 10.697 6.657 18.413 10.624 17.830 0.103 12.855 16.974 0.527 12.920 + 18.328 0.661 12.258 -8.928 2.199 21.469 -8.455 2.501 20.693 -8.586 + 2.738 22.182 7.523 7.800 6.535 6.671 8.018 6.159 8.129 7.840 + 5.795 12.792 -5.967 14.498 13.662 -6.360 14.436 12.434 -6.037 13.612 + 2.561 15.048 -10.042 2.608 15.422 -9.162 1.650 15.173 -10.307 2.439 + -20.564 3.035 2.451 -21.171 2.295 3.362 -20.402 3.227 -2.058 8.386 + -0.139 -1.739 8.884 0.614 -2.085 9.022 -0.853 19.474 -12.655 -7.883 + 19.518 -13.601 -8.019 20.241 -12.311 -8.341 10.950 17.254 -1.832 10.945 + 17.211 -2.788 10.529 16.441 -1.553 2.549 7.696 -11.296 2.128 7.365 + -10.503 1.836 8.085 -11.802 2.782 -9.245 6.950 2.876 -9.519 7.862 + 3.597 -9.521 6.532 -4.394 12.101 -7.333 -4.250 12.291 -6.406 -4.306 + 12.950 -7.768 0.775 20.965 -8.978 0.765 21.423 -8.137 0.869 21.661 + -9.629 -4.888 -7.782 -10.721 -5.055 -7.545 -11.633 -3.948 -7.646 -10.606 + -4.668 -7.050 -15.066 -5.081 -7.825 -15.448 -3.747 -7.292 -14.972 9.649 + 6.478 -3.193 8.938 6.996 -2.815 10.049 6.037 -2.444 -8.320 7.172 + -5.129 -8.364 8.120 -5.251 -7.876 6.850 -5.913 18.971 12.966 -2.387 + 18.498 12.452 -1.732 19.551 13.530 -1.875 10.230 20.292 10.108 10.455 + 19.567 10.691 9.652 19.902 9.452 2.305 15.680 -7.210 1.627 16.295 + -7.491 2.750 16.127 -6.491 7.635 12.057 6.229 7.022 11.699 6.871 + 8.187 11.315 5.984 -7.021 12.291 -6.282 -6.177 11.868 -6.440 -6.915 + 13.175 -6.634 -14.026 16.302 2.972 -14.778 16.021 3.492 -14.407 16.628 + 2.156 7.066 -16.700 2.906 7.837 -16.740 3.473 6.889 -17.613 2.678 + -2.185 10.983 19.694 -2.454 11.876 19.477 -3.005 10.492 19.743 -10.318 + 16.166 13.367 -10.385 16.011 12.425 -11.224 16.168 13.674 17.981 -15.082 + -8.873 17.522 -14.577 -8.201 17.365 -15.124 -9.604 5.185 -9.225 5.533 + 5.596 -8.392 5.763 5.615 -9.489 4.720 -17.491 2.901 -14.607 -16.811 + 2.232 -14.525 -17.723 2.893 -15.536 -6.614 -20.733 -5.604 -6.239 -20.219 + -6.319 -6.756 -21.600 -5.982 2.416 -17.568 -8.539 1.954 -18.285 -8.106 + 1.721 -17.032 -8.922 18.709 11.198 3.587 17.968 11.128 2.985 19.153 + 10.353 3.520 8.501 9.527 2.335 7.744 9.867 1.857 8.741 8.727 + 1.866 3.436 -16.978 9.639 2.982 -16.671 10.424 2.844 -16.760 8.919 + 10.407 5.433 5.530 9.741 4.968 6.035 10.884 5.949 6.180 12.564 + 1.041 3.396 12.608 1.488 4.241 11.672 0.695 3.354 12.365 17.872 + 2.902 11.903 17.085 2.612 12.563 18.345 2.094 3.382 12.400 9.040 + 3.583 12.706 9.925 2.429 12.452 8.979 3.260 -12.150 -13.797 3.002 + -13.059 -13.642 2.745 -11.880 -14.556 15.463 12.836 3.827 15.279 13.244 + 4.673 14.600 12.623 3.471 -13.274 6.556 -10.023 -13.296 6.447 -10.974 + -12.898 5.739 -9.696 18.340 3.240 9.712 18.138 4.078 10.129 18.708 + 3.479 8.861 20.357 -8.052 -11.411 21.060 -8.696 -11.325 20.695 -7.269 + -10.976 -11.047 -14.179 7.297 -10.706 -13.289 7.208 -10.929 -14.389 8.224 + 4.243 -17.052 2.261 5.179 -16.852 2.251 4.176 -17.856 2.776 -15.831 + 6.570 -0.138 -14.962 6.925 0.052 -15.947 6.713 -1.077 -14.568 8.382 + 4.320 -15.117 9.144 4.502 -15.164 7.747 3.920 -6.099 5.869 -0.254 + -5.659 6.678 0.005 -5.799 5.218 0.380 3.868 8.675 -2.078 3.190 + 8.205 -2.562 3.450 8.913 -1.250 -2.675 0.370 11.698 -3.436 -0.212 + 11.694 -3.043 1.246 11.580 -4.962 -3.875 -2.698 -5.783 -4.143 -2.286 + -5.210 -3.626 -3.588 -8.283 6.890 1.524 -8.086 6.365 0.748 -8.805 + 6.310 2.079 -13.705 4.455 2.065 -14.171 3.699 1.708 -12.872 4.467 + 1.595 8.036 10.624 -4.115 7.474 9.891 -3.864 7.450 11.380 -4.133 + -18.513 11.501 8.862 -19.027 12.255 9.150 -18.036 11.223 9.644 -6.796 + 4.360 -24.328 -7.326 4.919 -24.896 -7.009 4.649 -23.441 1.843 -13.507 + 9.436 1.422 -14.263 9.028 2.525 -13.250 8.817 3.648 -5.849 16.496 + 3.173 -5.052 16.731 3.746 -5.798 15.545 7.562 -10.977 -11.564 7.884 + -11.390 -12.365 7.281 -10.104 -11.840 11.902 20.331 1.437 12.521 19.900 + 0.848 11.059 20.268 0.987 -19.387 -12.759 -3.330 -18.884 -12.789 -2.517 + -18.814 -13.162 -3.982 -10.093 -19.782 -0.633 -10.192 -20.188 0.228 -10.579 + -20.354 -1.226 -13.162 10.188 12.493 -13.370 10.595 11.652 -13.850 9.535 + 12.620 -20.335 14.616 5.219 -20.311 15.552 5.024 -20.991 14.263 4.618 + 2.154 10.049 -5.356 2.869 9.754 -5.920 1.578 10.543 -5.939 -4.798 + 1.243 -2.882 -4.056 0.899 -2.386 -4.406 1.621 -3.669 -1.001 -5.704 + 2.453 -0.544 -6.429 2.879 -1.387 -5.208 3.174 -2.022 15.056 5.772 + -2.666 14.542 5.283 -2.384 15.114 6.656 9.341 -0.831 20.126 10.279 + -0.668 20.023 8.938 0.033 20.051 -11.686 8.430 -17.623 -11.620 7.515 + -17.896 -10.917 8.571 -17.072 -18.786 2.401 3.463 -18.823 2.157 2.539 + -18.166 3.130 3.494 -15.529 -13.670 -6.485 -14.917 -14.176 -7.019 -15.239 + -12.763 -6.582 5.077 -2.526 7.804 4.958 -2.499 6.855 5.173 -1.608 + 8.059 -13.204 10.282 17.441 -12.763 10.300 18.291 -12.562 10.646 16.831 + -15.311 6.725 -15.756 -16.201 6.684 -16.107 -15.403 6.467 -14.839 2.174 + 4.568 6.470 2.756 3.823 6.622 2.743 5.334 6.541 -8.381 13.644 + -12.419 -8.532 14.504 -12.025 -7.501 13.400 -12.132 -6.234 14.997 16.304 + -6.672 14.367 16.876 -6.873 15.699 16.186 7.868 1.473 11.036 7.379 + 0.697 11.309 7.414 2.202 11.459 -5.091 7.431 -5.382 -5.484 7.441 + -6.254 -5.661 7.993 -4.856 10.886 -9.739 -11.036 10.366 -10.541 -10.992 + 11.778 -10.041 -11.210 -2.669 12.767 10.093 -2.744 11.892 10.475 -1.806 + 12.775 9.680 8.211 11.047 -8.640 9.100 11.006 -8.991 8.225 10.459 + -7.884 -17.238 -12.546 5.245 -16.716 -12.908 5.961 -17.055 -13.120 4.501 + 4.880 10.834 -6.787 5.095 11.064 -7.691 4.508 11.635 -6.418 5.748 + 8.630 9.554 6.318 9.351 9.288 5.061 9.047 10.075 -4.528 -12.751 + -9.976 -3.780 -13.343 -10.062 -4.259 -11.958 -10.440 -6.830 5.316 -2.857 + -7.750 5.572 -2.797 -6.470 5.511 -1.991 -14.224 -0.820 -3.500 -14.618 + -1.571 -3.943 -14.922 -0.166 -3.472 -10.127 2.196 1.090 -10.116 2.888 + 0.430 -9.281 2.272 1.531 -8.345 11.763 -2.322 -8.646 12.666 -2.422 + -9.140 11.235 -2.398 -12.599 -3.858 15.023 -13.008 -3.055 15.348 -13.108 + -4.087 14.245 8.182 -0.194 -0.945 8.496 -0.006 -1.829 7.876 -1.100 + -0.987 -5.034 19.811 2.192 -5.971 19.979 2.097 -4.954 18.859 2.133 + 0.855 3.883 11.434 1.430 4.560 11.790 0.441 3.492 12.204 1.674 + 12.652 -0.888 2.385 12.249 -0.391 1.880 12.456 -1.802 2.245 19.206 + 6.441 2.425 20.087 6.767 2.245 19.298 5.488 -17.994 -9.369 -4.862 + -17.136 -9.204 -4.470 -17.807 -9.916 -5.624 7.960 13.417 0.752 8.781 + 13.354 1.241 7.306 13.649 1.411 -20.022 -1.458 16.061 -19.938 -1.029 + 16.913 -20.906 -1.825 16.065 4.503 2.805 4.862 5.350 3.226 5.006 + 4.597 2.360 4.020 4.458 13.801 -4.919 3.695 13.441 -5.372 4.801 + 14.464 -5.518 -3.456 -0.937 -15.768 -4.179 -1.154 -16.357 -3.454 -1.643 + -15.122 19.427 -8.667 6.015 19.725 -7.890 5.542 19.244 -9.309 5.330 + -0.380 -12.956 -2.589 0.113 -12.206 -2.921 -1.065 -13.100 -3.242 -13.935 + -5.625 -10.106 -13.399 -6.129 -9.493 -14.793 -5.571 -9.686 1.461 -19.763 + -1.056 1.687 -19.086 -0.418 0.526 -19.638 -1.216 14.139 5.188 -7.544 + 13.992 4.448 -8.135 14.808 4.878 -6.935 -12.029 -13.971 -5.263 -12.273 + -13.053 -5.382 -11.757 -14.261 -6.133 15.543 -13.365 9.874 14.960 -13.734 + 9.210 15.500 -13.985 10.602 0.495 -18.432 2.461 0.728 -19.355 2.563 + -0.461 -18.420 2.512 -10.013 -0.121 -10.964 -9.219 -0.612 -11.173 -10.116 + -0.223 -10.018 -15.211 -14.606 -2.228 -15.405 -13.923 -2.869 -14.356 -14.365 + -1.872 -15.571 13.063 3.351 -15.774 12.976 2.420 -16.363 13.438 3.735 + 7.285 13.396 -12.848 7.445 14.339 -12.872 6.455 13.282 -13.311 0.841 + -4.700 -2.928 1.195 -4.056 -2.315 0.771 -5.505 -2.415 -1.630 -7.517 + -18.083 -1.864 -7.112 -18.918 -2.040 -8.381 -18.113 11.305 21.323 -3.105 + 11.986 21.428 -3.770 10.617 21.934 -3.368 13.934 17.709 9.038 14.847 + 17.983 8.947 13.433 18.401 8.607 -2.130 -1.114 15.009 -3.042 -1.232 + 14.742 -1.620 -1.380 14.243 -11.658 -7.655 -12.782 -11.008 -7.586 -13.481 + -11.298 -7.128 -12.068 -0.219 15.745 -9.395 -0.397 16.686 -9.411 -0.735 + 15.391 -10.119 8.750 -15.335 -3.165 8.809 -15.689 -2.278 7.869 -15.567 + -3.458 15.338 16.329 0.038 15.961 16.784 0.605 15.247 15.461 0.429 + 6.746 22.528 4.265 6.558 22.362 5.189 7.487 21.955 4.065 -0.569 + -13.236 -13.337 -0.132 -12.886 -14.113 -0.869 -12.462 -12.861 -12.467 -16.000 + 5.910 -12.377 -15.705 5.004 -11.955 -15.372 6.419 -2.381 5.987 5.075 + -1.962 5.213 4.699 -1.765 6.293 5.741 -0.850 18.743 9.290 -1.762 + 18.482 9.418 -0.514 18.129 8.638 4.532 14.767 4.340 4.639 15.000 + 5.262 3.791 14.161 4.331 16.780 -7.679 3.566 16.662 -8.614 3.399 + 17.680 -7.499 3.298 5.322 -6.510 4.262 6.069 -5.929 4.409 4.569 + -5.922 4.205 -0.170 -19.286 -4.746 0.632 -19.781 -4.572 -0.471 -19.008 + -3.882 -19.077 1.624 -6.250 -18.651 2.379 -5.845 -18.420 1.270 -6.849 + 7.689 -0.758 -5.900 8.079 -1.631 -5.844 8.382 -0.168 -5.604 -11.939 + -15.394 3.163 -11.442 -15.889 2.511 -12.851 -15.484 2.888 -0.236 -13.727 + 14.788 -1.179 -13.623 14.657 0.161 -13.150 14.136 -19.599 0.407 13.868 + -18.701 0.448 13.539 -19.557 -0.201 14.606 0.323 -19.363 -14.341 0.408 + -20.041 -13.671 -0.075 -19.812 -15.087 10.740 -13.200 5.605 11.557 -13.043 + 5.132 10.569 -14.134 5.487 10.999 18.570 -6.560 11.118 18.174 -5.697 + 11.646 18.135 -7.114 -5.962 -7.282 -3.866 -5.098 -7.677 -3.746 -5.789 + -6.464 -4.331 -3.658 -13.018 12.219 -3.857 -12.262 11.667 -3.533 -13.739 + 11.601 -7.286 -17.440 8.799 -7.060 -18.365 8.895 -8.241 -17.433 8.726 + 1.371 18.222 11.657 1.289 17.858 10.776 1.174 19.153 11.552 2.624 + 15.699 7.322 2.137 15.573 6.508 3.543 15.688 7.054 5.639 11.004 + -9.314 5.734 10.551 -10.152 6.517 10.991 -8.933 7.435 10.700 -0.302 + 6.745 10.113 0.006 7.199 11.556 0.058 -14.581 -10.908 -6.664 -13.963 + -11.051 -7.381 -14.055 -11.008 -5.871 -3.783 2.290 24.109 -4.206 1.497 + 24.439 -4.397 2.994 24.319 -0.811 -1.401 18.091 -1.551 -1.040 18.580 + -1.041 -1.262 17.172 -18.630 6.777 7.321 -19.358 6.354 6.867 -18.531 + 6.279 8.132 -14.598 -3.354 18.082 -15.381 -2.888 18.374 -14.199 -2.771 + 17.436 -12.806 4.686 -20.030 -11.996 5.005 -19.631 -13.502 5.063 -19.493 + 13.296 19.781 4.596 13.777 20.461 4.124 12.800 19.324 3.917 7.971 + 18.560 1.187 7.722 17.676 0.919 7.239 19.110 0.908 6.185 2.122 + -0.021 6.740 1.375 -0.246 5.680 2.292 -0.816 -9.043 -19.064 4.496 + -9.835 -19.077 3.958 -8.403 -19.567 3.992 -19.845 6.735 3.742 -20.354 + 6.594 4.540 -19.425 7.585 3.872 -15.590 6.611 8.392 -16.084 5.934 + 8.853 -14.745 6.204 8.200 -1.893 -21.588 4.592 -2.752 -21.181 4.476 + -1.574 -21.731 3.701 17.819 15.067 8.926 18.249 15.779 9.400 18.535 + 14.602 8.493 16.103 11.739 -1.666 16.246 12.080 -2.549 15.395 11.103 + -1.766 -13.191 12.651 -3.020 -12.972 11.887 -3.554 -13.699 13.214 -3.604 + -19.726 -13.225 -7.807 -19.218 -13.460 -8.583 -19.094 -12.798 -7.228 -1.783 + -17.434 -8.477 -2.539 -16.909 -8.215 -1.741 -18.136 -7.828 -18.577 15.076 + -6.297 -19.128 14.417 -6.719 -19.169 15.539 -5.704 -9.457 -15.338 13.040 + -8.608 -15.666 12.745 -9.262 -14.488 13.435 -12.810 16.436 -2.314 -12.642 + 15.928 -1.520 -13.584 16.027 -2.701 1.067 -3.137 -15.259 1.448 -2.807 + -16.073 0.518 -2.419 -14.943 8.483 22.029 -1.243 8.844 22.772 -0.759 + 9.064 21.299 -1.028 -4.481 -10.566 -4.144 -3.571 -10.341 -4.340 -4.481 + -11.520 -4.064 -3.854 -6.081 7.012 -3.783 -6.464 7.887 -3.654 -6.804 + 6.418 6.374 -6.118 16.887 5.419 -6.049 16.893 6.603 -6.179 15.960 + -0.611 -5.770 -7.527 -0.002 -6.121 -8.177 -0.058 -5.268 -6.928 6.916 + 8.126 18.176 6.201 7.838 18.744 6.510 8.236 17.317 -8.517 9.448 + 10.418 -7.691 9.847 10.694 -9.125 9.639 11.132 -11.360 0.443 4.401 + -11.646 0.465 3.488 -11.586 1.309 4.743 16.088 1.517 9.343 17.007 + 1.305 9.180 16.094 2.443 9.582 13.037 -11.471 -2.945 13.761 -11.214 + -3.516 12.796 -12.348 -3.243 2.529 4.358 17.557 2.761 4.275 18.482 + 2.163 3.505 17.325 5.592 5.554 14.216 5.240 6.323 13.768 5.861 + 4.968 13.509 8.413 1.660 20.212 7.509 1.353 20.280 8.364 2.423 + 19.637 14.130 -15.144 -8.172 13.502 -15.577 -8.750 14.138 -15.683 -7.381 + -19.770 9.125 8.820 -19.180 8.544 9.300 -19.286 9.947 8.741 -20.598 + -6.318 -13.699 -19.784 -5.868 -13.928 -20.845 -5.947 -12.852 -8.078 -4.668 + 3.416 -8.373 -4.420 2.540 -8.441 -3.993 3.991 17.465 14.722 3.394 + 16.755 14.085 3.479 17.205 15.447 3.962 -2.690 20.492 5.186 -2.532 + 19.563 5.017 -1.931 20.775 5.696 9.240 -18.379 -3.810 8.668 -19.018 + -3.384 10.104 -18.544 -3.434 -6.648 -2.462 -7.798 -6.511 -2.632 -6.866 + -6.821 -3.324 -8.176 0.916 -10.695 -3.178 1.041 -10.346 -4.060 0.596 + -9.950 -2.669 -16.250 6.612 -2.907 -15.932 5.920 -3.488 -16.383 7.365 + -3.483 2.209 -8.782 -15.242 2.355 -9.420 -15.940 1.748 -8.060 -15.669 + -2.834 -9.322 -8.139 -3.161 -8.432 -8.267 -1.983 -9.330 -8.578 0.187 + 9.056 -3.370 -0.459 9.627 -2.953 0.548 9.583 -4.083 3.383 -9.112 + -6.407 4.000 -8.574 -6.903 3.688 -10.010 -6.541 -0.812 -13.222 5.091 + -1.529 -13.856 5.054 -0.064 -13.684 4.715 -9.269 -5.316 -8.800 -8.870 + -6.176 -8.670 -9.557 -5.321 -9.713 6.291 -1.952 5.240 7.206 -1.745 + 5.433 6.330 -2.504 4.459 -6.975 -17.377 0.403 -6.977 -16.692 -0.266 + -6.746 -16.920 1.213 0.210 17.244 7.428 0.433 16.430 7.880 1.028 + 17.518 7.011 -18.751 -5.349 5.715 -19.075 -4.568 5.265 -19.109 -5.280 + 6.600 -13.602 -1.606 16.121 -13.317 -0.701 16.246 -14.547 -1.543 15.986 + -1.658 -19.254 -11.011 -0.830 -18.855 -10.743 -2.328 -18.756 -10.543 2.986 + -1.038 16.741 3.758 -1.289 16.232 2.364 -1.752 16.599 -3.710 6.260 + -21.953 -3.977 6.284 -22.872 -2.770 6.081 -21.983 -11.499 0.114 -15.560 + -11.797 0.856 -15.035 -12.032 0.153 -16.354 -12.624 4.003 -9.026 -13.033 + 3.574 -9.778 -11.928 3.403 -8.758 -3.304 20.955 0.035 -3.839 20.799 + -0.743 -3.918 20.883 0.766 -0.710 -2.563 -22.869 -0.485 -2.635 -23.797 + 0.012 -2.065 -22.486 9.657 17.179 6.484 10.023 16.983 5.621 10.090 + 16.562 7.074 -2.226 -3.759 -8.358 -2.995 -4.063 -8.840 -1.748 -4.558 + -8.139 -5.525 -9.172 7.365 -6.165 -8.460 7.348 -5.021 -9.061 6.558 + 0.378 -0.954 21.834 1.066 -1.428 22.299 0.812 -0.603 21.056 0.592 + -10.668 1.599 -0.273 -11.076 1.655 1.206 -11.398 1.672 4.965 -16.975 + -10.794 4.620 -17.665 -10.227 4.268 -16.319 -10.824 -14.399 -15.983 8.004 + -13.783 -15.721 7.320 -13.884 -15.963 8.810 8.857 19.273 8.119 9.215 + 18.719 7.425 7.915 19.293 7.948 14.297 -5.716 19.006 14.391 -6.551 + 19.463 13.351 -5.597 18.915 -8.395 -22.292 6.656 -8.499 -23.213 6.896 + -8.985 -22.170 5.912 2.778 2.845 -2.502 3.627 2.671 -2.909 2.900 + 3.675 -2.041 19.498 13.964 -6.138 19.445 13.011 -6.201 18.970 14.282 + -6.870 -9.838 -19.760 -7.531 -10.077 -19.096 -8.177 -10.676 -20.093 -7.208 + -13.502 -7.190 -7.177 -14.202 -6.631 -6.840 -12.923 -7.327 -6.428 -5.114 + -3.795 -11.963 -5.310 -3.684 -11.032 -5.540 -4.618 -12.201 -1.230 -15.758 + -12.150 -1.509 -16.305 -12.884 -0.811 -15.002 -12.560 0.069 19.113 14.785 + -0.033 19.668 14.012 -0.087 18.225 14.466 -8.791 1.336 -6.092 -8.925 + 0.423 -5.837 -7.908 1.543 -5.785 19.612 1.013 -12.289 19.685 1.540 + -13.084 19.904 1.596 -11.588 13.124 -11.808 -16.368 13.133 -11.742 -17.322 + 14.048 -11.804 -16.119 11.235 -4.469 -3.919 10.590 -4.982 -4.405 11.767 + -5.122 -3.465 -20.302 11.579 -10.940 -21.019 12.001 -10.468 -20.043 10.848 + -10.380 0.118 -13.918 -6.486 0.059 -14.819 -6.168 -0.474 -13.425 -5.918 + 14.406 -0.844 11.788 14.051 -0.690 12.663 15.149 -1.430 11.931 -8.180 + 1.575 -14.421 -7.854 1.900 -15.260 -8.244 0.628 -14.539 14.279 -4.440 + 0.943 14.422 -5.354 1.189 14.280 -3.965 1.774 -10.128 7.571 14.145 + -10.217 8.471 13.830 -9.316 7.257 13.748 -14.788 -6.873 -12.469 -13.997 + -7.131 -12.942 -14.482 -6.249 -11.811 14.843 6.541 10.953 13.988 6.134 + 11.094 14.659 7.480 10.928 -8.269 -4.035 -16.215 -7.730 -3.705 -15.496 + -7.638 -4.338 -16.868 -13.964 -16.022 1.096 -13.786 -15.082 1.087 -14.386 + -16.195 0.255 -0.415 13.476 -11.677 0.276 13.770 -12.270 -0.012 12.769 + -11.173 -2.948 -11.034 -0.878 -3.107 -11.968 -0.741 -3.746 -10.715 -1.299 + 14.993 -1.878 17.962 14.243 -2.304 17.545 15.456 -2.589 18.404 -9.929 + -2.511 -8.957 -9.389 -3.274 -8.752 -10.581 -2.839 -9.577 -0.176 -9.337 + -9.067 0.255 -9.978 -8.501 -0.188 -9.750 -9.931 12.233 20.076 7.788 + 11.625 20.334 8.481 11.753 20.236 6.976 5.290 17.482 2.389 5.635 + 18.133 1.778 4.343 17.502 2.250 -15.902 -11.964 9.932 -16.142 -11.269 + 10.544 -16.714 -12.451 9.793 -8.082 -12.540 1.921 -9.024 -12.685 2.000 + -7.859 -11.997 2.678 -10.654 -16.765 -1.785 -9.830 -16.796 -2.269 -10.442 + -17.133 -0.927 -20.823 -15.080 -6.189 -21.008 -14.464 -5.480 -20.324 -14.569 + -6.826 -10.166 13.732 1.742 -11.123 13.698 1.722 -9.964 14.420 2.376 + 13.030 -12.974 7.862 13.042 -12.146 8.342 12.240 -12.928 7.324 -11.447 + 17.690 -13.189 -12.337 17.352 -13.282 -11.100 17.700 -14.081 -6.805 -0.182 + -9.637 -6.296 0.557 -9.305 -6.519 -0.927 -9.109 -8.649 4.336 -15.508 + -8.070 3.620 -15.770 -9.487 4.131 -15.923 -14.536 11.269 10.213 -14.669 + 10.814 9.382 -14.181 12.123 9.965 -5.865 -10.645 -6.980 -5.906 -9.813 + -7.452 -6.350 -10.486 -6.171 -7.665 -3.151 17.553 -8.359 -3.758 17.810 + -7.676 -2.474 18.230 6.783 -13.882 -17.276 7.329 -13.337 -16.709 6.980 + -13.579 -18.162 17.109 5.318 -0.317 17.268 4.663 0.363 17.125 6.154 + 0.148 -8.349 14.460 13.807 -8.947 14.903 14.409 -8.580 14.803 12.944 + -16.818 -15.216 -9.827 -16.261 -15.990 -9.907 -17.265 -15.328 -8.988 6.128 + 20.037 -8.776 6.874 19.563 -9.143 6.467 20.913 -8.593 12.569 -2.693 + 10.853 11.685 -2.365 11.017 13.145 -2.023 11.221 -1.064 -19.424 0.015 + -1.943 -19.673 0.300 -1.034 -18.475 0.134 -0.792 -5.404 -15.342 -1.476 + -5.282 -16.001 -0.005 -5.035 -15.742 1.535 -5.096 -13.161 1.537 -4.477 + -13.892 1.513 -4.543 -12.380 3.694 -13.832 13.535 4.296 -13.682 12.806 + 2.843 -13.540 13.208 3.960 9.638 17.928 4.362 9.385 17.097 4.471 + 10.393 18.221 -3.017 -1.501 -22.558 -2.855 -0.872 -21.855 -2.147 -1.821 + -22.798 -2.818 -16.647 12.962 -2.399 -16.265 13.733 -2.174 -16.542 12.262 + -3.561 -17.202 0.291 -4.315 -17.768 0.126 -3.538 -16.608 -0.460 13.179 + 0.523 -1.229 12.791 -0.040 -0.559 14.122 0.468 -1.071 4.338 -19.159 + -12.895 3.431 -19.155 -12.591 4.766 -18.472 -12.384 10.144 3.884 10.026 + 9.532 4.619 9.993 10.085 3.564 10.927 2.879 -12.560 0.701 3.056 + -13.013 1.526 2.399 -13.200 0.175 12.421 -2.901 3.424 13.375 -2.939 + 3.493 12.114 -3.649 3.935 -3.191 -14.222 14.791 -3.190 -13.533 14.127 + -3.373 -13.763 15.612 -5.406 -20.302 -7.963 -5.156 -19.520 -8.456 -4.590 + -20.791 -7.859 9.094 1.991 -3.190 9.860 1.536 -3.542 8.472 2.010 + -3.917 -4.667 7.310 10.325 -5.546 7.183 9.968 -4.415 8.186 10.034 + 14.647 -15.124 7.537 15.097 -14.888 6.726 14.051 -14.394 7.702 6.455 + -5.332 23.109 7.315 -5.474 22.714 5.835 -5.502 22.400 18.005 2.294 + 3.864 18.960 2.314 3.928 17.760 1.430 4.195 4.894 24.152 -4.077 + 5.363 24.857 -3.631 5.400 23.364 -3.877 1.579 0.433 -2.472 1.020 + 0.533 -1.702 2.099 1.237 -2.497 -15.176 1.508 -8.157 -16.019 1.105 + -7.950 -14.737 0.869 -8.719 -0.750 0.509 9.233 -1.271 0.695 10.014 + -1.032 1.165 8.595 6.076 -8.314 -23.611 6.614 -7.526 -23.692 5.176 + -8.000 -23.699 -12.973 13.931 1.987 -13.462 13.840 1.169 -13.289 14.752 + 2.365 -0.656 6.707 20.997 -0.626 7.656 20.875 -1.059 6.589 21.858 + 0.147 -12.813 -15.920 0.866 -12.211 -16.112 0.077 -13.359 -16.703 16.169 + 3.899 -6.403 16.613 3.180 -5.954 16.643 3.994 -7.229 -8.131 6.750 + 5.166 -8.695 6.181 4.641 -8.711 7.107 5.839 -10.240 -10.924 -7.525 + -10.511 -10.767 -6.620 -9.977 -10.062 -7.849 -16.309 -6.894 -0.746 -16.949 + -7.266 -0.139 -15.855 -6.224 -0.234 2.855 11.697 -3.388 3.576 12.148 + -3.827 2.798 10.849 -3.829 7.072 -17.511 -8.296 7.436 -17.251 -7.450 + 6.129 -17.376 -8.203 -2.140 -10.293 -13.457 -1.278 -10.387 -13.052 -2.004 + -9.669 -14.169 -1.963 -0.461 3.622 -2.239 -0.191 4.497 -2.666 -0.161 + 3.045 -8.173 -16.309 -3.824 -7.674 -15.723 -4.393 -8.632 -16.894 -4.428 + -0.544 18.082 -1.899 0.010 18.475 -1.225 -1.131 17.499 -1.418 2.697 + 12.618 4.485 1.790 12.547 4.186 3.141 11.873 4.080 -4.889 12.353 + 18.521 -4.899 11.444 18.822 -4.814 12.870 19.323 -4.559 2.879 -25.174 + -5.402 3.221 -24.874 -4.441 2.066 -24.683 4.643 -18.187 -15.937 5.459 + -17.691 -16.002 4.581 -18.428 -15.013 -2.459 14.455 12.401 -2.406 13.619 + 12.863 -2.579 14.214 11.483 -12.663 3.480 19.284 -13.600 3.283 19.294 + -12.260 2.745 19.746 6.197 12.658 -3.444 5.531 13.061 -4.000 6.833 + 13.357 -3.287 11.506 6.869 -15.529 11.639 6.095 -14.981 11.689 7.607 + -14.948 -15.133 -17.594 -9.228 -14.324 -17.083 -9.202 -14.932 -18.332 -9.803 + 9.514 7.110 1.429 9.021 6.718 0.708 10.391 6.732 1.353 -14.854 + -2.983 4.757 -14.999 -3.666 5.412 -15.448 -3.207 4.041 -2.485 -19.045 + -6.186 -1.593 -18.965 -5.848 -3.025 -19.178 -5.407 4.575 6.068 6.397 + 5.150 6.738 6.767 5.157 5.514 5.877 9.243 -7.561 20.783 8.839 + -7.605 21.650 10.033 -8.096 20.859 -8.842 -3.595 -4.588 -9.352 -4.101 + -5.221 -9.485 -3.299 -3.944 -3.199 -21.646 -1.789 -3.538 -22.308 -2.392 + -2.475 -21.238 -2.265 -15.528 -12.256 -3.850 -14.625 -11.970 -3.993 -15.933 + -11.536 -3.365 11.881 -7.384 16.819 10.940 -7.509 16.693 12.170 -6.928 + 16.029 -4.237 18.802 -10.882 -4.810 19.310 -10.308 -4.605 18.925 -11.757 + -12.895 0.915 7.340 -12.028 0.657 7.653 -13.187 0.175 6.807 -6.830 + 3.035 15.915 -6.409 2.307 15.458 -6.933 2.725 16.815 -10.844 10.801 + 4.601 -11.483 10.722 3.892 -10.043 10.416 4.245 19.059 -3.329 -0.904 + 18.652 -3.010 -1.710 18.549 -4.105 -0.669 4.474 -17.939 12.094 4.051 + -17.366 12.733 4.111 -17.668 11.251 1.041 -10.167 -18.067 0.494 -10.720 + -18.625 1.153 -9.359 -18.567 -8.906 16.720 -12.357 -9.715 17.173 -12.594 + -8.263 17.028 -12.996 -12.619 -13.472 12.745 -12.920 -14.272 12.315 -12.923 + -12.765 12.175 2.677 -5.510 -6.708 3.329 -5.980 -6.187 2.435 -6.125 + -7.400 -9.073 -1.366 16.030 -10.020 -1.417 15.898 -8.783 -2.278 16.041 + -6.656 -11.076 -0.897 -7.566 -11.012 -0.607 -6.141 -10.911 -0.108 -4.272 + -0.483 -6.367 -4.418 0.451 -6.518 -3.768 -0.517 -5.554 -2.033 10.929 + -11.756 -2.685 11.354 -11.200 -1.969 11.494 -12.526 7.670 17.693 -10.439 + 7.992 17.130 -11.143 6.944 17.204 -10.054 -0.741 -1.303 -19.665 -0.544 + -1.527 -18.755 -0.664 -2.131 -20.138 8.707 -11.703 -17.644 9.567 -11.768 + -18.059 8.145 -11.316 -18.316 14.401 -16.343 12.311 14.856 -16.046 13.099 + 13.713 -15.692 12.172 16.297 7.785 8.383 15.375 7.808 8.638 16.487 + 6.855 8.254 13.965 4.324 -3.823 13.523 5.168 -3.910 14.410 4.200 + -4.662 3.116 -2.847 9.667 3.518 -3.073 10.506 3.845 -2.845 9.046 + 8.239 -6.320 -12.228 8.064 -5.389 -12.362 7.825 -6.523 -11.389 4.733 + 1.984 2.274 5.066 2.149 1.392 4.572 1.041 2.297 19.096 -11.873 + -5.320 18.192 -12.015 -5.039 19.127 -12.217 -6.212 5.388 18.893 9.531 + 5.667 19.115 8.643 4.491 18.574 9.427 -11.483 -2.776 7.628 -12.047 + -3.544 7.534 -11.604 -2.289 6.812 20.604 -13.738 -3.860 20.142 -13.048 + -4.337 21.450 -13.349 -3.637 11.923 8.884 -13.723 12.748 9.237 -14.055 + 11.796 9.323 -12.882 6.871 8.724 -12.786 7.530 8.375 -13.386 6.143 + 8.106 -12.844 12.079 2.402 -10.151 12.896 2.876 -9.999 11.669 2.861 + -10.885 12.023 -1.849 -7.936 11.600 -1.676 -7.095 11.512 -1.344 -8.570 + -7.238 19.160 -11.628 -7.855 19.739 -11.181 -7.689 18.316 -11.670 0.694 + 18.718 -14.428 1.123 17.895 -14.192 0.463 19.117 -13.590 1.049 -1.221 + 10.531 1.538 -1.924 10.101 0.477 -0.874 9.847 0.731 10.796 -7.941 + 0.623 10.883 -8.888 -0.133 10.996 -7.582 20.402 9.620 7.333 19.697 + 10.058 7.811 21.120 9.563 7.964 -12.864 10.456 -4.671 -12.077 9.925 + -4.547 -13.523 9.837 -4.985 7.165 -19.161 11.798 6.845 -20.053 11.664 + 6.412 -18.687 12.152 7.480 -12.341 18.661 7.102 -11.528 18.325 8.150 + -12.055 19.282 -0.084 0.352 12.471 -0.978 0.374 12.130 0.386 -0.230 + 11.875 -8.996 -7.580 15.529 -8.167 -7.966 15.246 -9.557 -8.332 15.721 + 4.853 11.639 -1.359 4.100 11.552 -1.943 5.552 11.979 -1.918 -18.368 + -0.099 8.100 -17.532 -0.441 8.417 -18.129 0.501 7.393 -11.502 13.190 + 5.680 -12.385 13.535 5.547 -11.513 12.333 5.253 0.911 10.693 3.274 + -0.030 10.681 3.098 1.079 9.868 3.729 9.745 18.897 -3.735 9.969 + 19.678 -3.230 9.637 19.214 -4.632 17.037 -4.469 14.104 17.825 -4.134 + 14.532 16.589 -4.970 14.785 9.394 7.557 -13.871 10.109 8.192 -13.823 + 9.813 6.713 -13.703 -18.882 10.946 0.812 -18.073 10.559 1.147 -18.828 + 11.868 1.064 -0.847 -4.110 -20.610 -1.015 -3.690 -21.454 -1.401 -4.891 + -20.617 5.735 -6.318 7.393 5.058 -6.407 6.723 5.421 -6.851 8.123 + -0.042 1.664 -15.703 0.113 2.158 -16.508 0.498 2.102 -15.046 9.891 + -9.942 8.645 10.515 -9.913 7.920 10.412 -10.220 9.398 -10.813 2.308 + -21.175 -11.495 2.789 -21.645 -10.350 1.823 -21.858 -2.781 -20.066 11.606 + -2.833 -20.768 10.958 -2.083 -20.341 12.201 12.627 6.684 -3.427 11.673 + 6.680 -3.494 12.801 6.828 -2.496 6.158 8.825 -3.324 6.612 8.233 + -2.724 5.345 9.048 -2.871 -18.539 -4.990 9.610 -18.956 -4.456 10.287 + -17.768 -4.487 9.350 0.379 4.552 15.408 -0.178 4.226 14.702 0.829 + 3.774 15.737 -5.644 2.181 -8.706 -5.982 2.676 -9.453 -5.690 2.794 + -7.972 -2.079 -6.884 -11.041 -2.201 -6.166 -11.663 -1.211 -7.231 -11.243 + 9.125 12.345 -14.742 9.435 12.099 -13.871 8.282 12.771 -14.585 -4.293 + -22.364 -10.692 -3.634 -22.193 -11.364 -4.951 -21.681 -10.822 2.931 16.032 + 14.762 2.365 15.759 14.040 3.354 16.830 14.447 -2.862 -13.311 8.497 + -3.078 -14.031 9.089 -3.711 -12.965 8.220 -0.619 7.089 2.325 -1.340 + 6.672 2.798 0.019 7.305 3.005 -4.863 8.007 0.516 -4.762 8.148 + 1.457 -3.968 7.994 0.178 -16.095 10.638 4.848 -16.003 11.454 5.339 + -16.451 10.907 4.001 12.708 -8.470 -8.245 13.655 -8.579 -8.158 12.565 + -8.355 -9.185 -1.135 -6.121 18.065 -1.450 -7.007 18.247 -1.804 -5.548 + 18.439 -13.299 5.355 -17.344 -14.107 5.057 -17.760 -13.558 6.129 -16.843 + 13.454 18.455 -4.030 13.879 17.941 -4.717 12.724 17.908 -3.739 9.326 + -4.745 -6.000 8.767 -4.529 -6.747 8.714 -4.911 -5.283 14.158 0.091 + -7.227 14.096 -0.471 -8.000 13.298 0.506 -7.164 -10.059 1.331 16.725 + -10.497 1.021 17.517 -9.425 0.646 16.518 -1.268 -19.511 13.514 -1.705 + -18.697 13.267 -0.345 -19.271 13.598 12.642 1.241 -12.909 11.931 1.874 + -12.804 12.301 0.600 -13.533 18.265 -2.431 -3.159 18.924 -1.810 -3.471 + 17.465 -1.912 -3.080 -0.359 6.219 6.934 0.588 6.250 6.797 -0.476 + 5.612 7.665 -1.658 -8.777 8.903 -1.345 -7.878 9.004 -1.107 -9.146 + 8.213 9.530 11.899 -1.761 9.103 11.662 -2.584 8.990 11.492 -1.084 + -19.964 -3.555 4.194 -20.200 -2.680 4.504 -20.679 -3.803 3.609 14.589 + 2.920 -9.351 15.053 3.343 -10.074 15.283 2.612 -8.769 21.265 6.071 + 6.037 21.038 5.249 6.473 20.731 6.731 6.478 8.353 -7.391 -2.724 + 8.244 -8.171 -3.268 9.279 -7.396 -2.480 13.544 8.518 14.598 12.612 + 8.349 14.734 13.950 7.651 14.623 16.083 17.552 -9.027 15.796 18.462 + -8.953 16.280 17.289 -8.128 -0.160 15.372 -4.063 -0.163 16.259 -4.421 + -0.009 15.491 -3.125 1.450 -4.418 1.620 0.727 -5.038 1.531 1.043 + -3.624 1.968 8.311 15.999 -12.509 9.091 15.447 -12.571 8.368 16.581 + -13.266 -0.179 -6.160 8.780 -0.394 -5.607 8.029 0.707 -5.895 9.028 + -14.462 -8.018 13.234 -13.902 -8.709 13.585 -15.204 -8.483 12.847 11.968 + -7.751 -4.909 11.622 -8.558 -5.289 11.530 -7.679 -4.060 -2.304 7.520 + -6.721 -2.441 8.153 -7.426 -3.077 7.611 -6.164 -13.122 -11.216 -4.365 + -13.067 -11.258 -3.410 -12.366 -10.690 -4.625 20.928 -5.565 -1.668 20.628 + -6.276 -1.102 20.532 -4.777 -1.294 -7.610 1.329 -18.573 -7.108 1.386 + -19.386 -8.084 0.500 -18.643 -12.414 -5.381 7.217 -11.491 -5.527 7.010 + -12.632 -6.074 7.841 6.013 3.115 12.201 5.410 2.705 12.822 5.443 + 3.558 11.572 5.696 9.170 1.381 5.325 8.290 1.450 5.449 9.598 + 2.201 -9.135 -16.360 6.050 -9.998 -16.471 6.450 -8.770 -17.245 6.018 + -6.392 -11.063 13.601 -6.202 -12.001 13.588 -6.047 -10.761 14.442 19.007 + 8.395 -9.170 18.818 9.102 -8.553 19.591 7.808 -8.691 -19.774 13.151 + -7.619 -20.256 13.311 -8.430 -20.280 12.475 -7.169 5.551 -2.431 20.075 + 5.051 -3.247 20.074 5.685 -2.234 21.002 1.920 -8.344 0.708 1.155 + -8.901 0.852 2.550 -8.912 0.263 8.124 -5.404 19.012 8.481 -4.572 + 18.700 7.605 -5.732 18.277 -9.117 4.691 -0.553 -8.938 5.054 -1.420 + -8.480 3.983 -0.453 11.534 -1.795 22.049 11.735 -0.917 22.373 12.094 + -1.901 21.280 -2.440 -0.761 23.342 -3.121 -1.088 22.754 -1.642 -0.771 + 22.813 -4.212 9.311 19.998 -3.911 8.487 19.614 -5.167 9.253 19.972 + -0.990 1.092 16.780 -1.223 0.548 16.028 -1.629 1.804 16.768 -10.332 + -16.404 -9.749 -10.490 -15.818 -10.489 -9.495 -16.824 -9.950 0.171 15.070 + -1.243 0.747 15.710 -0.825 0.648 14.242 -1.181 11.365 12.877 -3.382 + 10.775 12.999 -4.125 10.784 12.718 -2.638 -8.797 -0.794 -15.557 -9.633 + -0.559 -15.958 -8.980 -1.603 -15.079 -18.830 3.814 -10.868 -18.861 3.093 + -11.498 -18.061 3.627 -10.329 -1.795 -22.188 -4.245 -1.148 -21.528 -4.496 + -2.630 -21.831 -4.547 -11.851 -0.341 -4.383 -12.661 -0.505 -3.901 -11.734 + -1.121 -4.926 3.247 -16.480 14.130 3.222 -15.531 14.009 3.382 -16.599 + 15.070 10.660 4.526 -7.280 10.196 4.753 -6.474 10.097 3.878 -7.705 + -13.439 4.870 5.160 -14.098 5.123 5.806 -13.877 4.977 4.316 3.683 + 0.924 21.755 3.296 0.953 22.630 2.948 0.722 21.175 0.896 1.501 + 22.908 0.674 2.265 22.376 0.400 0.783 22.515 -17.384 -9.934 -12.170 + -17.877 -10.071 -12.979 -16.469 -9.913 -12.447 -20.509 -4.287 -5.475 -21.450 + -4.118 -5.430 -20.412 -5.188 -5.166 0.797 -3.578 19.107 0.317 -4.374 + 18.878 0.366 -2.885 18.608 -12.957 -7.564 2.211 -13.628 -7.614 2.892 + -13.409 -7.827 1.409 8.873 -12.365 12.408 8.444 -13.072 12.891 8.233 + -11.653 12.407 -1.429 4.707 -22.630 -1.054 4.033 -22.063 -1.804 4.221 + -23.364 0.698 14.897 5.501 -0.218 15.061 5.727 0.668 14.565 4.604 + -0.802 -18.698 5.959 -1.407 -18.819 5.227 -1.367 -18.510 6.708 18.419 + 8.284 -3.180 18.043 8.882 -3.826 17.983 7.448 -3.346 -18.579 5.990 + -12.416 -18.639 5.175 -11.918 -19.458 6.118 -12.774 -10.305 9.401 -2.202 + -10.988 8.917 -1.736 -10.334 9.056 -3.094 -14.979 10.196 -1.000 -14.506 + 10.529 -1.763 -14.762 9.264 -0.971 7.404 16.087 0.104 7.203 15.982 + -0.826 7.757 15.239 0.371 4.124 -6.538 -12.441 3.797 -7.229 -11.865 + 3.340 -6.193 -12.870 2.514 6.576 -19.304 3.332 6.399 -19.769 1.851 + 6.621 -19.993 -6.945 16.813 -14.416 -6.188 16.247 -14.569 -6.760 17.603 + -14.923 9.567 12.770 -5.635 9.178 11.906 -5.498 8.989 13.196 -6.268 + -9.816 -9.535 11.552 -10.666 -9.453 11.118 -9.193 -9.658 10.836 -8.757 + -22.958 3.946 -7.811 -22.898 4.077 -8.854 -23.380 3.092 -8.872 -5.373 + 11.904 -9.406 -5.173 11.136 -9.505 -5.501 12.610 17.469 3.821 15.244 + 17.111 3.407 14.459 17.045 3.365 15.971 7.863 6.765 -7.326 7.124 + 7.374 -7.335 8.587 7.272 -6.959 -6.426 -5.375 9.211 -6.860 -5.164 + 8.384 -6.540 -4.591 9.748 -1.932 11.853 13.877 -0.990 12.022 13.851 + -2.005 10.951 14.188 4.912 -8.975 21.230 5.776 -9.382 21.294 4.406 + -9.377 21.937 17.512 12.231 10.027 17.408 12.972 9.430 16.797 12.328 + 10.656 10.563 -6.083 -10.221 11.408 -5.960 -9.788 9.976 -6.369 -9.521 + 7.589 3.721 18.406 6.755 4.094 18.120 8.240 4.121 17.830 -2.265 + -15.071 -16.403 -1.694 -14.563 -16.980 -2.959 -14.461 -16.156 -15.620 -4.772 + 1.119 -16.182 -4.118 1.534 -14.739 -4.559 1.424 6.739 4.560 4.682 + 7.259 5.095 4.083 7.182 4.646 5.526 -16.305 6.780 -10.092 -16.311 + 5.934 -10.539 -15.783 6.630 -9.303 5.899 15.373 -6.650 6.668 15.689 + -6.177 5.389 16.163 -6.832 8.207 -9.926 0.671 8.407 -9.075 1.062 + 8.840 -10.526 1.066 20.438 -2.615 -9.084 19.933 -2.235 -8.365 19.851 + -2.569 -9.839 -2.246 -13.040 -5.187 -2.099 -12.148 -4.872 -2.592 -12.928 + -6.072 -16.551 15.449 -0.310 -16.775 15.657 -1.217 -16.325 14.519 -0.326 + 15.679 16.288 -2.710 15.662 16.137 -1.765 14.874 15.884 -3.033 -7.356 + -7.388 -9.447 -7.623 -8.230 -9.815 -6.490 -7.227 -9.822 17.326 8.191 + -0.147 17.317 8.360 -1.089 18.166 7.761 0.011 4.352 -12.505 10.990 + 3.657 -12.820 10.412 5.160 -12.833 10.594 -11.617 -6.949 12.885 -10.994 + -7.609 13.189 -12.476 -7.320 13.085 -3.589 -15.267 10.463 -4.195 -15.987 + 10.635 -2.767 -15.697 10.225 1.324 -19.880 -7.943 1.190 -20.792 -7.687 + 2.127 -19.893 -8.463 -7.517 19.395 -15.688 -7.197 20.038 -15.055 -8.110 + 19.890 -16.254 1.996 -17.035 5.014 2.388 -17.436 4.238 1.258 -17.605 + 5.231 -5.367 13.990 13.979 -5.283 14.327 14.871 -6.287 14.132 13.755 + 3.075 -7.170 11.183 3.281 -8.105 11.164 2.577 -7.018 10.379 11.176 + 9.637 -11.263 10.264 9.842 -11.468 11.335 10.067 -10.422 5.140 5.238 + 16.983 5.341 5.300 16.049 4.188 5.147 17.018 4.046 -6.222 13.763 + 4.803 -6.784 13.595 3.577 -6.197 12.930 -12.149 12.282 -6.815 -12.597 + 12.138 -7.648 -12.760 11.954 -6.155 0.926 4.327 20.040 0.175 4.893 + 20.221 0.541 3.515 19.711 -2.580 -12.297 -7.889 -2.596 -12.746 -8.734 + -2.629 -11.367 -8.112 15.811 14.596 -8.138 15.864 14.196 -9.006 16.711 + 14.856 -7.939 5.716 -13.701 6.838 6.444 -13.478 7.418 5.447 -14.577 + 7.118 -0.942 -2.522 12.002 -0.094 -2.964 11.962 -0.884 -1.833 11.340 + 13.762 11.677 -5.138 14.055 10.767 -5.094 12.844 11.646 -4.869 -17.878 + 0.736 5.633 -18.285 1.226 4.919 -17.021 1.148 5.747 -3.762 -5.720 + 14.719 -3.046 -6.305 14.473 -3.683 -4.979 14.118 -0.040 -10.630 19.320 + 0.678 -10.050 19.576 -0.332 -10.290 18.474 -3.314 -4.965 21.814 -2.818 + -4.187 21.561 -2.720 -5.452 22.386 16.701 -0.893 -5.326 16.430 -1.811 + -5.335 16.003 -0.441 -4.852 -2.566 -16.957 -14.383 -2.460 -16.457 -15.193 + -3.482 -16.827 -14.139 -10.285 -8.113 -7.659 -10.942 -7.670 -7.122 -9.456 + -7.706 -7.409 -14.814 -8.968 0.677 -15.254 -9.692 0.232 -15.455 -8.653 + 1.314 -3.331 -0.727 18.948 -3.575 -0.342 19.789 -3.808 -0.208 18.300 + 20.403 -8.489 -7.704 20.901 -7.684 -7.841 20.514 -8.685 -6.774 3.788 + 17.380 -2.088 3.601 18.313 -1.983 3.249 16.951 -1.424 7.532 1.935 + 8.170 8.324 1.541 7.804 7.719 2.022 9.105 -0.443 -15.927 -4.849 + -0.459 -16.358 -3.995 -1.254 -16.204 -5.273 -12.223 8.704 3.088 -13.093 + 8.535 3.451 -12.296 9.568 2.684 16.350 -14.601 -11.467 15.920 -14.196 + -12.220 16.739 -13.869 -10.990 -10.694 -5.171 -14.994 -10.827 -4.449 -14.380 + -10.078 -4.826 -15.640 -3.851 12.614 -10.841 -4.756 12.308 -10.775 -3.754 + 13.233 -10.118 2.148 -18.508 -11.430 2.440 -18.142 -10.595 1.264 -18.161 + -11.548 -11.780 14.115 -1.311 -12.307 13.506 -1.829 -11.510 13.607 -0.546 + -21.199 4.969 -10.355 -21.207 5.183 -11.288 -20.456 4.374 -10.252 -8.195 + 17.002 15.705 -8.848 16.754 16.359 -8.680 17.031 14.881 1.241 19.550 + -0.317 1.963 19.413 -0.930 1.631 20.041 0.407 -9.110 4.131 3.850 + -8.654 3.447 3.360 -9.789 3.666 4.337 20.297 2.833 -14.175 21.071 + 2.570 -13.677 20.623 3.484 -14.797 -18.470 10.433 13.396 -18.199 10.178 + 12.514 -18.752 11.343 13.306 -4.582 -4.603 -9.411 -4.957 -5.340 -9.893 + -5.111 -4.542 -8.616 0.912 -14.066 -0.469 0.366 -13.757 -1.192 1.332 + -14.856 -0.807 -5.444 20.309 -8.684 -5.236 19.937 -7.827 -6.099 20.982 + -8.500 -4.250 -8.565 12.658 -4.006 -8.806 11.765 -5.121 -8.178 12.572 + 7.265 14.412 8.249 7.420 13.688 7.642 8.121 14.581 8.643 -13.101 + -0.507 -0.950 -12.780 -1.401 -0.841 -13.730 -0.564 -1.669 -21.014 -11.307 + -9.535 -20.698 -10.408 -9.452 -20.280 -11.847 -9.242 12.447 16.979 -10.176 + 13.041 16.824 -10.910 12.090 17.853 -10.337 -18.250 -16.836 1.161 -18.052 + -17.479 1.841 -17.423 -16.717 0.695 -11.979 7.887 -7.909 -11.560 8.572 + -8.429 -12.224 7.217 -8.547 -10.961 -16.691 -5.403 -11.376 -16.105 -4.770 + -10.844 -16.153 -6.186 -17.443 -3.744 -9.471 -16.966 -3.277 -10.158 -17.511 + -4.642 -9.795 17.948 7.315 12.761 18.572 7.945 12.400 17.131 7.807 + 12.842 3.512 23.579 6.122 2.950 23.107 6.737 4.381 23.201 6.253 + 16.076 18.751 -1.379 15.675 19.273 -2.074 15.840 17.848 -1.593 8.560 + -18.107 15.068 7.775 -17.600 14.864 8.258 -18.781 15.678 17.072 6.129 + -9.745 17.112 5.881 -8.821 17.059 7.086 -9.735 -4.730 0.801 17.383 + -4.910 0.450 16.510 -5.556 1.203 17.654 -11.705 -0.039 18.660 -12.389 + -0.512 19.133 -12.127 0.246 17.849 17.992 -9.722 14.122 17.598 -9.337 + 13.339 18.899 -9.898 13.871 -3.595 14.357 -8.429 -3.899 15.261 -8.347 + -2.804 14.321 -7.892 10.266 2.347 7.834 10.526 3.198 8.186 10.734 + 1.711 8.375 15.527 17.811 2.603 15.446 17.662 3.545 14.647 17.659 + 2.260 -13.226 -15.544 -9.778 -12.464 -15.513 -10.356 -13.757 -14.792 -10.040 + -14.419 3.340 -6.493 -13.526 3.490 -6.804 -14.805 2.757 -7.146 5.006 + -14.371 -8.060 4.579 -14.323 -8.915 4.868 -15.274 -7.773 -14.273 -18.507 + 2.564 -14.987 -18.931 2.088 -14.036 -17.756 2.021 -19.811 9.023 -7.925 + -20.402 8.273 -7.869 -19.335 8.893 -8.746 -9.484 -19.001 11.465 -9.581 + -18.504 10.652 -8.547 -18.963 11.658 -12.716 -20.174 -7.044 -13.243 -19.556 + -6.539 -12.394 -20.801 -6.395 -12.939 17.038 13.452 -12.851 17.733 12.800 + -13.456 16.362 13.014 7.634 -5.710 14.474 6.786 -5.750 14.032 7.949 + -4.822 14.309 -6.895 2.014 18.215 -6.919 1.392 18.943 -7.635 2.600 + 18.376 11.740 2.114 -7.471 11.622 3.044 -7.275 11.882 2.085 -8.417 + 4.776 -19.636 -9.843 4.043 -20.145 -10.190 5.156 -20.194 -9.165 -4.154 + 15.793 18.189 -4.973 15.982 17.733 -4.159 14.843 18.307 -13.187 -13.373 + 0.098 -12.719 -12.627 0.474 -12.540 -13.805 -0.459 -2.779 5.758 -15.901 + -1.941 5.323 -15.742 -2.556 6.517 -16.439 -2.812 5.727 -0.917 -2.111 + 6.287 -0.584 -3.282 6.279 -1.543 11.192 -7.331 -2.002 11.491 -8.076 + -1.480 11.017 -6.643 -1.359 -14.414 14.994 12.222 -14.443 14.087 12.526 + -15.332 15.265 12.191 -7.502 -12.143 -11.477 -6.642 -12.497 -11.251 -7.744 + -12.598 -12.283 -4.072 8.901 -12.554 -3.545 9.655 -12.819 -4.659 8.747 + -13.294 19.904 13.681 3.970 19.199 14.251 3.662 19.606 12.797 3.759 + 7.500 -0.745 2.217 7.675 -0.732 1.276 7.228 -1.645 2.398 -17.682 + -7.059 3.914 -18.314 -6.364 4.096 -17.407 -7.365 4.779 6.883 -18.420 + 8.678 7.661 -18.535 8.132 6.997 -19.048 9.392 -1.653 -5.777 -4.403 + -0.879 -5.292 -4.119 -1.786 -5.506 -5.311 10.457 14.717 -9.592 11.097 + 14.051 -9.845 10.888 15.549 -9.787 -10.026 -9.241 1.524 -9.972 -9.867 + 0.802 -9.406 -8.550 1.288 -6.127 -22.839 4.960 -6.506 -22.344 5.686 + -5.835 -22.170 4.340 -3.520 -2.570 2.114 -2.998 -2.411 2.900 -3.708 + -3.508 2.137 -17.784 -14.384 -4.745 -17.643 -15.040 -4.063 -16.932 -14.295 + -5.172 -2.474 -18.868 3.405 -2.698 -19.584 2.810 -3.318 -18.545 3.720 + -0.192 14.104 16.077 -0.001 14.064 17.014 -0.755 14.872 15.980 5.964 + 0.351 20.691 5.170 0.792 20.994 5.644 -0.412 20.208 10.724 10.076 + 15.789 11.166 9.491 16.404 10.447 9.506 15.072 0.297 9.347 -12.343 + -0.018 8.748 -13.020 -0.388 10.012 -12.274 -4.350 14.663 -1.249 -5.089 + 14.289 -0.769 -3.617 14.080 -1.050 -16.723 9.805 -7.430 -16.360 9.708 + -8.310 -17.669 9.712 -7.550 -2.431 -5.212 -13.051 -2.632 -4.289 -13.201 + -1.828 -5.444 -13.757 3.665 12.564 -10.292 3.814 13.467 -10.010 4.330 + 12.056 -9.827 -10.079 4.726 -10.637 -10.837 4.581 -10.071 -9.892 3.866 + -11.013 -3.816 3.739 -13.414 -3.617 4.664 -13.269 -4.195 3.711 -14.292 + -8.320 -11.127 9.602 -7.459 -10.925 9.967 -8.456 -12.052 9.805 17.597 + 1.928 -5.200 17.474 0.981 -5.124 18.057 2.175 -4.398 1.196 22.308 + 7.844 0.325 21.965 7.642 1.057 23.243 7.991 12.354 -17.064 -5.632 + 11.765 -17.819 -5.643 12.492 -16.883 -4.702 -7.895 11.527 1.212 -8.579 + 12.188 1.321 -8.202 10.778 1.724 6.526 -6.842 -19.697 6.886 -7.430 + -19.033 5.596 -7.067 -19.737 8.470 14.562 11.711 8.785 15.278 12.263 + 7.610 14.854 11.407 11.680 8.980 -6.779 12.508 8.656 -6.422 11.191 + 9.279 -6.012 -18.233 -2.879 14.171 -18.455 -3.804 14.064 -18.611 -2.638 + 15.017 -18.013 3.827 15.515 -18.303 3.333 16.282 -18.712 3.704 14.873 + -14.092 -8.262 9.616 -14.701 -8.582 10.281 -14.515 -7.482 9.258 13.425 + 2.019 10.907 13.800 1.145 10.800 12.493 1.863 11.063 16.263 -6.113 + 16.413 17.135 -5.989 16.789 15.704 -6.311 17.164 0.681 -6.001 15.991 + 0.402 -6.354 16.836 0.092 -6.408 15.355 -4.963 19.142 -13.644 -4.635 + 19.568 -14.436 -5.904 19.319 -13.650 19.969 1.574 11.535 19.528 2.254 + 11.026 20.746 2.006 11.889 -15.629 -4.172 -15.397 -16.573 -4.325 -15.420 + -15.469 -3.558 -16.114 1.440 -11.925 -7.769 2.291 -12.058 -7.353 0.887 + -12.619 -7.411 -5.345 1.381 14.385 -5.144 0.462 14.561 -5.461 1.424 + 13.435 -19.843 4.641 9.339 -20.196 3.905 8.840 -20.557 5.278 9.365 + 0.834 -9.317 -5.574 1.779 -9.404 -5.449 0.738 -8.565 -6.159 5.166 + -2.302 15.100 4.998 -2.168 14.168 6.021 -1.897 15.249 -18.158 -0.812 + 2.902 -18.958 -0.694 3.414 -17.550 -0.162 3.255 -2.152 -8.575 18.759 + -2.934 -9.108 18.907 -1.660 -9.053 18.091 3.841 4.997 -1.557 3.027 + 5.497 -1.610 4.193 5.203 -0.692 -11.342 3.647 12.638 -11.473 3.454 + 11.709 -10.667 4.325 12.649 -10.363 -0.437 8.050 -10.723 -1.181 7.568 + -9.951 0.107 7.378 1.454 2.031 16.803 0.641 1.572 17.014 1.880 + 1.477 16.149 -8.839 -12.600 -5.034 -9.201 -12.689 -5.916 -8.293 -13.378 + -4.921 2.620 -15.271 -10.704 2.505 -15.002 -11.616 1.737 -15.489 -10.406 + 9.973 -4.522 8.496 9.414 -5.299 8.511 9.899 -4.158 9.378 -1.904 + 20.340 -3.013 -1.886 20.194 -3.959 -1.511 19.550 -2.642 -0.648 2.871 + 13.574 -0.605 2.003 13.172 -1.585 3.047 13.664 18.567 -0.794 8.847 + 17.820 -1.384 8.747 19.321 -1.314 8.571 -6.332 -9.393 -15.306 -7.261 + -9.163 -15.320 -6.281 -10.212 -15.799 15.428 -10.194 9.990 14.864 -10.642 + 9.359 15.095 -10.468 10.845 20.430 -1.111 -3.831 21.065 -0.444 -4.093 + 20.930 -1.712 -3.277 -10.904 -14.406 -11.310 -10.508 -13.995 -10.541 -11.165 + -13.671 -11.865 13.676 5.812 -12.687 12.843 5.379 -12.873 14.015 6.059 + -13.547 -15.484 2.447 10.737 -14.781 2.428 11.387 -15.037 2.339 9.898 + -5.136 12.985 0.764 -6.033 12.652 0.804 -4.618 12.242 0.453 1.182 + 22.640 -6.769 1.068 22.303 -5.880 2.128 22.623 -6.912 12.613 4.725 + 11.227 12.935 3.846 11.027 12.080 4.963 10.468 10.491 -17.688 -11.556 + 9.540 -17.625 -11.643 10.723 -16.984 -10.950 -16.946 0.763 12.330 -16.810 + 1.685 12.111 -16.863 0.304 11.494 13.900 3.321 15.265 13.278 3.017 + 14.604 13.719 2.777 16.031 2.417 -2.270 22.968 2.276 -2.266 23.915 + 3.348 -2.468 22.865 3.556 -12.715 19.787 3.700 -13.277 20.548 4.007 + -11.899 20.003 -9.709 4.182 6.890 -8.814 4.098 7.219 -10.009 5.027 + 7.225 -0.512 13.881 -16.671 0.299 13.618 -17.105 -0.560 14.827 -16.806 + -10.388 11.080 16.904 -10.754 11.647 17.583 -10.305 10.225 17.326 13.707 + -9.883 -12.688 14.465 -9.410 -13.031 14.065 -10.439 -11.996 0.953 12.730 + 14.228 1.394 12.109 14.808 0.559 13.371 14.819 -4.110 -11.972 -13.682 + -3.304 -11.465 -13.585 -4.773 -11.460 -13.218 11.495 -5.853 20.355 10.969 + -5.257 19.822 11.063 -6.702 20.261 -13.984 -18.695 8.513 -14.348 -17.818 + 8.387 -14.628 -19.281 8.115 14.820 15.827 -5.638 14.205 16.311 -6.188 + 15.243 15.211 -6.237 13.831 -0.140 14.385 14.560 -0.079 15.002 13.048 + -0.053 14.930 7.220 -10.536 -19.681 7.836 -9.968 -20.143 7.267 -11.370 + -20.149 -19.467 -9.224 -10.538 -18.671 -9.446 -11.022 -19.156 -8.732 -9.778 + 10.002 -12.135 -10.723 9.884 -12.759 -10.007 9.114 -11.854 -10.945 -1.921 + 17.838 -12.067 -1.369 18.618 -12.018 -2.755 18.110 -11.684 -20.403 -11.726 + 4.901 -20.011 -12.453 4.417 -20.416 -11.001 4.276 13.234 -16.983 -3.109 + 12.984 -17.898 -2.981 14.190 -17.000 -3.157 -10.464 14.917 10.862 -10.862 + 15.634 10.367 -9.708 14.654 10.337 -4.485 0.664 0.429 -3.726 0.388 + -0.085 -4.422 1.619 0.455 4.905 -11.313 -17.558 4.824 -12.172 -17.972 + 5.429 -10.799 -18.171 -9.791 -7.692 -14.778 -9.174 -7.575 -14.055 -9.978 + -6.804 -15.080 -0.754 21.482 0.298 -0.186 20.741 0.086 -1.533 21.350 + -0.241 -16.217 4.643 6.207 -16.106 5.549 6.496 -16.777 4.705 5.432 + -5.097 11.354 16.082 -5.029 11.935 15.324 -4.952 11.925 16.836 -11.165 + -7.384 -5.041 -11.772 -7.486 -4.308 -10.378 -7.855 -4.767 -0.206 17.606 + -6.362 -1.074 17.234 -6.522 0.056 17.974 -7.206 12.968 14.366 0.004 + 12.790 14.706 0.881 13.737 13.807 0.116 1.819 6.014 13.334 2.645 + 6.491 13.254 1.844 5.639 14.215 -4.301 -15.732 -1.980 -4.208 -15.762 + -2.932 -5.246 -15.756 -1.831 4.656 13.932 15.400 4.055 14.629 15.138 + 4.131 13.361 15.961 1.378 6.928 17.463 0.490 6.707 17.183 1.802 + 6.081 17.603 17.948 -3.318 -17.374 17.076 -3.387 -16.985 17.848 -2.668 + -18.069 2.451 -9.033 19.958 3.220 -9.243 20.487 2.796 -8.525 19.224 + -6.374 17.663 -0.902 -6.971 17.489 -1.630 -6.060 16.798 -0.638 -10.988 + 16.921 1.692 -10.905 16.304 2.419 -11.905 16.855 1.426 10.386 -14.549 + 15.379 9.627 -14.465 14.802 10.758 -13.668 15.415 19.843 -7.316 0.062 + 19.737 -7.500 0.995 19.045 -7.656 -0.341 1.688 9.088 19.153 1.380 + 8.354 18.621 2.426 9.447 18.661 15.504 -7.260 -10.398 15.939 -6.848 + -9.651 16.174 -7.823 -10.784 3.892 -7.008 -19.687 3.406 -6.989 -18.862 + 3.304 -6.598 -20.321 2.573 7.249 4.219 2.644 6.316 4.018 3.472 + 7.574 4.166 -4.044 0.723 5.313 -3.876 1.374 4.632 -4.775 0.206 + 4.975 -1.933 8.465 16.798 -1.619 9.301 17.142 -2.675 8.239 17.358 + -8.074 -9.588 -10.765 -8.310 -9.849 -11.655 -7.718 -10.383 -10.368 -3.119 + 2.901 3.632 -2.674 3.369 4.338 -2.484 2.889 2.915 -17.081 -6.319 + -10.687 -16.598 -6.884 -11.290 -17.762 -6.884 -10.322 -5.575 9.304 8.780 + -5.954 10.017 8.265 -4.984 8.859 8.173 1.556 7.159 0.385 1.294 + 6.655 -0.385 0.744 7.285 0.876 -6.255 -2.015 5.075 -5.377 -2.353 + 5.249 -6.194 -1.628 4.201 8.993 20.241 -6.077 9.628 19.658 -6.494 + 9.432 21.091 -6.046 -19.039 15.256 7.933 -18.121 15.356 7.681 -19.486 + 15.019 7.120 19.400 11.481 0.748 19.857 11.077 1.486 18.477 11.277 + 0.897 -3.729 2.858 11.955 -3.700 3.533 12.633 -3.783 3.346 11.133 + -4.423 4.260 9.504 -4.406 4.254 8.547 -4.915 5.049 9.729 -16.118 + 12.163 7.385 -16.970 12.108 7.818 -15.666 11.359 7.642 -8.548 -0.722 + 5.916 -9.110 -0.873 5.157 -7.721 -1.147 5.690 -3.967 11.933 -4.566 + -3.134 12.351 -4.347 -4.244 11.510 -3.753 -5.531 -21.499 2.609 -5.861 + -20.746 2.119 -5.245 -22.116 1.936 9.451 -11.000 15.707 9.191 -10.397 + 16.403 9.510 -10.452 14.924 -7.853 7.502 22.826 -7.736 7.947 23.665 + -7.957 8.212 22.191 -5.536 12.893 9.666 -4.582 12.815 9.684 -5.824 + 12.491 10.486 -11.406 1.654 20.873 -10.463 1.699 21.027 -11.527 0.856 + 20.357 -19.391 14.075 10.350 -19.236 14.529 9.522 -20.291 14.304 10.584 + -18.724 -3.856 -12.701 -18.545 -3.227 -12.002 -19.237 -3.363 -13.341 -20.853 + -5.090 -8.228 -20.312 -5.293 -7.465 -20.973 -4.141 -8.192 -7.150 1.053 + 11.536 -7.127 0.598 12.378 -6.435 0.663 11.033 -11.658 -19.620 3.855 + -11.106 -20.048 3.201 -12.495 -19.486 3.411 -5.602 -5.116 -18.584 -5.437 + -4.790 -17.700 -5.904 -4.349 -19.070 -20.334 -6.897 -4.744 -19.732 -7.530 + -4.353 -20.948 -7.431 -5.250 4.148 7.408 12.866 3.721 7.352 12.011 + 4.235 8.347 13.028 -8.317 6.371 -9.311 -9.120 5.973 -9.648 -7.758 + 6.472 -10.081 18.070 -2.655 16.018 17.589 -2.925 16.800 18.986 -2.847 + 16.221 6.171 10.847 3.694 7.100 10.783 3.915 5.986 11.786 3.710 + 11.681 10.664 -8.799 12.523 11.068 -8.591 11.592 9.955 -8.162 -10.215 + 18.168 -1.051 -10.061 17.486 -1.705 -10.512 17.694 -0.275 -2.157 10.266 + 11.383 -2.416 9.744 12.142 -1.859 9.621 10.740 -7.073 -1.067 -0.104 + -6.226 -0.656 -0.282 -7.322 -1.471 -0.935 14.558 -11.248 12.428 14.011 + -12.032 12.482 14.677 -10.975 13.337 -0.493 -19.039 9.834 0.170 -19.419 + 9.257 -1.175 -18.724 9.240 -8.347 9.250 -11.846 -7.535 8.776 -11.664 + -8.943 8.583 -12.186 -9.008 -19.168 -5.064 -8.100 -19.470 -5.086 -9.329 + -19.307 -5.955 -19.687 8.404 -0.502 -19.384 8.388 -1.410 -19.581 9.316 + -0.230 0.924 18.973 -4.458 0.743 18.449 -3.678 0.458 18.522 -5.162 + -19.006 -0.339 -12.271 -18.984 -0.317 -11.314 -19.646 -1.019 -12.480 17.341 + -7.449 7.326 17.956 -8.127 7.044 17.718 -7.106 8.136 7.074 13.794 + 3.532 7.242 13.050 4.110 6.219 14.124 3.809 -6.037 13.124 4.340 + -6.957 12.981 4.561 -5.785 13.894 4.851 19.869 -1.038 -6.827 20.069 + -1.231 -5.911 19.486 -0.161 -6.808 -17.978 -7.950 1.171 -18.683 -8.357 + 0.668 -18.151 -8.207 2.077 -2.712 -4.435 4.331 -3.561 -4.875 4.364 + -2.795 -3.706 4.946 -7.802 7.202 9.181 -8.009 7.575 8.325 -8.014 + 7.898 9.803 -1.945 -22.414 1.621 -2.378 -21.630 1.283 -2.218 -23.113 + 1.026 -3.431 15.363 8.362 -3.656 14.828 9.123 -3.095 16.179 8.733 + 13.809 -5.037 -1.980 13.561 -4.841 -1.077 14.013 -4.184 -2.363 -5.972 + 15.541 5.927 -5.557 15.384 6.775 -5.722 16.437 5.701 17.661 -11.137 + -13.122 17.656 -10.809 -12.223 16.907 -11.725 -13.166 -8.823 -14.318 -0.183 + -8.852 -13.673 0.524 -9.312 -13.911 -0.898 -9.158 5.248 11.745 -8.398 + 4.668 11.697 -8.793 6.102 11.977 -9.645 -3.985 8.977 -9.028 -3.393 + 9.408 -10.157 -3.419 8.400 11.936 -14.871 12.024 11.523 -14.574 12.835 + 11.458 -14.417 11.331 -1.753 -22.320 9.714 -1.186 -22.038 8.996 -1.665 + -23.273 9.728 -9.103 -4.848 14.832 -10.055 -4.828 14.735 -8.919 -5.703 + 15.221 -2.082 12.405 6.898 -2.083 12.843 6.047 -3.006 12.243 7.085 + -3.572 14.288 -17.680 -3.747 14.376 -18.617 -3.003 13.522 -17.612 6.985 + -4.622 -21.141 7.738 -4.210 -20.716 6.722 -5.319 -20.539 -3.870 -12.104 + 4.471 -3.657 -11.798 5.352 -3.245 -12.809 4.304 3.452 -14.608 2.468 + 4.213 -14.158 2.836 3.756 -15.500 2.305 4.078 11.944 1.365 3.725 + 11.072 1.542 4.536 11.851 0.530 -8.646 12.803 5.114 -8.808 13.512 + 5.736 -9.519 12.503 4.861 5.468 15.855 6.802 6.071 15.338 7.336 + 6.028 16.493 6.359 -5.675 18.475 5.300 -5.778 19.426 5.276 -5.473 + 18.234 4.396 11.145 -8.120 -17.446 11.586 -7.271 -17.414 11.680 -8.646 + -18.040 2.646 18.313 2.189 1.739 18.254 2.489 2.943 19.171 2.490 + 20.159 -13.843 8.828 20.555 -13.599 7.992 19.498 -13.170 8.987 1.799 + -0.208 19.693 2.168 -0.564 18.884 1.128 0.409 19.399 11.013 12.343 + 6.525 10.113 12.453 6.832 11.550 12.473 7.307 -5.027 -1.321 15.120 + -5.478 -1.840 14.454 -4.909 -1.924 15.853 -2.748 2.174 -18.487 -2.638 + 2.085 -17.541 -2.613 3.107 -18.657 -0.438 11.315 17.060 -0.415 11.628 + 17.964 -1.034 11.917 16.614 -10.618 6.596 16.755 -10.171 5.752 16.693 + -10.603 6.942 15.863 -6.480 8.044 3.325 -6.929 7.715 4.103 -6.945 + 7.641 2.592 -1.332 -10.656 4.676 -1.064 -11.557 4.853 -1.451 -10.623 + 3.727 14.525 -11.317 -5.576 14.937 -10.888 -6.326 13.700 -11.659 -5.921 + 8.204 -8.319 -17.861 7.986 -9.244 -17.971 9.149 -8.312 -17.712 -2.611 + 13.252 -14.760 -2.694 13.828 -13.999 -1.750 13.461 -15.124 10.978 -0.186 + 0.331 10.772 -0.620 -0.497 10.694 0.719 0.205 17.835 1.922 -2.365 + 17.479 2.798 -2.216 18.228 1.678 -1.527 -3.443 4.952 21.929 -3.867 + 5.419 22.648 -4.102 4.932 21.235 11.942 -14.386 -3.348 11.430 -15.073 + -2.921 12.839 -14.720 -3.348 -2.351 -11.103 1.873 -2.472 -10.993 0.930 + -2.916 -11.841 2.103 4.512 -3.577 -3.900 4.227 -4.189 -3.221 3.771 + -2.981 -4.011 -4.111 9.483 6.446 -4.687 10.248 6.433 -4.265 9.053 + 5.605 -16.531 11.004 -10.602 -15.671 10.616 -10.439 -16.420 11.930 -10.387 + 8.998 -9.296 -14.315 8.291 -9.749 -14.773 9.794 -9.749 -14.595 -15.455 + 11.776 13.424 -15.748 11.426 14.265 -14.500 11.790 13.489 -0.007 -10.531 + -11.719 0.386 -9.806 -12.206 0.739 -10.999 -11.344 -19.388 -1.898 -6.254 + -18.453 -1.951 -6.453 -19.604 -2.754 -5.886 -7.415 10.389 6.437 -7.681 + 9.474 6.518 -8.234 10.882 6.481 12.242 -2.863 17.640 11.331 -2.884 + 17.932 12.202 -3.092 16.712 2.227 14.671 12.317 1.697 14.584 11.525 + 1.952 13.939 12.870 11.705 16.040 4.727 11.831 16.906 4.339 12.340 + 16.004 5.443 -7.003 9.082 19.995 -7.335 8.527 19.289 -7.602 9.828 + 20.015 -8.061 7.637 17.945 -7.957 6.930 17.309 -9.005 7.792 17.980 + 9.242 -16.168 8.264 9.244 -15.301 8.670 9.673 -16.734 8.904 -11.650 + 15.464 7.841 -11.480 14.555 7.591 -11.006 15.972 7.347 -2.518 -17.785 + 8.057 -1.991 -17.041 7.767 -3.359 -17.669 7.615 8.207 5.447 -17.555 + 8.273 4.515 -17.349 9.114 5.754 -17.571 -15.319 -5.037 6.311 -14.948 + -5.292 7.155 -16.223 -5.348 6.342 1.587 -19.242 14.234 1.760 -18.340 + 14.504 2.434 -19.682 14.311 13.050 -8.609 -0.110 13.124 -9.556 -0.226 + 13.918 -8.335 0.187 5.262 -16.244 7.819 4.733 -16.541 8.560 6.037 + -16.806 7.838 -8.918 -20.870 -2.950 -8.886 -20.269 -3.695 -8.944 -20.300 + -2.182 0.639 -2.796 4.929 0.674 -3.716 5.191 0.536 -2.822 3.977 + 18.699 -14.776 2.441 18.491 -14.489 1.552 19.650 -14.880 2.443 -0.471 + 4.240 4.300 -0.072 3.572 3.743 0.091 4.274 5.074 0.373 -8.213 + 3.490 0.133 -8.956 2.937 1.330 -8.219 3.498 -15.621 4.955 15.143 + -14.890 4.361 14.971 -16.377 4.379 15.251 1.244 9.265 16.037 1.327 + 8.513 16.624 0.503 9.761 16.387 12.624 -12.851 -13.713 12.150 -13.192 + -14.471 12.162 -12.044 -13.485 -10.460 2.426 -4.266 -11.164 1.779 -4.239 + -9.994 2.239 -5.081 -15.069 -8.267 -9.164 -14.484 -8.188 -9.918 -14.535 + -7.994 -8.418 0.559 9.406 -16.397 0.896 10.102 -16.960 -0.267 9.751 + -16.058 12.784 10.197 6.087 13.498 10.412 6.687 12.196 10.951 6.133 + -7.905 7.237 12.959 -7.367 7.939 12.594 -7.328 6.792 13.580 -3.457 + 20.326 8.989 -3.432 20.899 9.755 -4.090 19.645 9.220 -11.263 13.520 + -10.981 -10.547 14.155 -11.005 -10.843 12.679 -11.160 0.001 13.099 9.201 + -0.037 12.858 8.275 0.277 12.297 9.645 -3.938 -1.539 -9.108 -3.433 + -2.336 -8.942 -4.251 -1.270 -8.244 8.807 -13.504 7.691 9.340 -13.663 + 6.912 8.510 -12.598 7.597 -7.994 13.870 10.243 -7.247 13.516 9.761 + -8.585 13.124 10.351 -11.341 6.822 5.033 -11.931 6.070 5.067 -11.689 + 7.369 4.329 6.809 -18.684 5.427 6.816 -17.771 5.142 7.554 -18.754 + 6.025 -18.579 13.540 1.994 -18.973 14.224 1.453 -18.667 13.863 2.891 + 9.521 -3.199 -9.556 10.113 -3.238 -8.805 9.662 -4.027 -10.016 8.905 + -8.142 16.267 8.567 -7.830 17.107 8.456 -7.604 15.614 -2.817 -1.046 + -4.176 -2.296 -0.378 -3.730 -2.170 -1.642 -4.553 6.665 -13.820 16.321 + 6.975 -13.369 17.106 6.018 -14.446 16.645 6.937 22.466 -7.462 6.647 + 23.323 -7.147 7.477 22.120 -6.752 -16.401 7.407 12.571 -16.924 6.658 + 12.856 -15.494 7.132 12.707 11.627 -2.135 -1.979 12.519 -2.376 -2.231 + 11.266 -2.930 -1.586 3.232 -8.414 17.415 3.051 -7.488 17.253 2.808 + -8.871 16.689 15.222 -7.405 14.292 15.776 -7.084 15.004 15.241 -8.357 + 14.383 -0.555 -9.224 -1.608 -1.512 -9.190 -1.637 -0.355 -10.113 -1.317 + 13.903 -6.594 2.492 14.837 -6.733 2.646 13.572 -6.247 3.320 -7.996 + -21.075 -9.226 -8.681 -20.751 -8.641 -7.211 -21.110 -8.679 -15.133 2.329 + 8.103 -14.384 1.838 7.768 -15.471 2.801 7.342 16.809 4.427 5.322 + 17.492 3.831 5.013 17.174 4.819 6.115 -6.558 -24.895 -4.581 -7.215 + -24.342 -4.160 -7.041 -25.369 -5.258 -2.106 8.714 14.070 -1.979 8.471 + 14.987 -1.630 8.047 13.577 10.377 14.516 -0.942 9.912 13.683 -1.024 + 11.236 14.277 -0.593 -9.540 -6.786 3.962 -8.787 -6.271 3.673 -10.275 + -6.174 3.930 -18.478 8.391 -14.130 -18.070 9.180 -13.774 -18.232 7.698 + -13.518 11.021 -1.455 13.178 10.390 -0.840 13.553 11.472 -1.827 13.936 + 1.108 10.182 9.015 1.066 10.580 8.146 0.529 9.422 8.958 -1.075 + -10.218 16.570 -0.681 -10.765 15.891 -1.962 -10.044 16.253 -12.533 -11.199 + 2.007 -13.372 -11.073 2.449 -12.066 -10.374 2.138 -9.357 14.041 -17.617 + -8.469 14.204 -17.937 -9.309 14.219 -16.678 18.146 -12.265 9.426 18.098 + -11.343 9.176 17.240 -12.572 9.382 13.101 3.019 1.394 12.874 2.290 + 1.971 12.617 2.846 0.587 3.860 7.011 -15.711 4.613 7.245 -16.254 + 4.015 7.459 -14.880 3.948 22.323 -7.290 4.874 22.568 -7.290 3.770 + 22.062 -8.193 6.419 -10.155 -1.340 6.857 -9.986 -0.506 6.558 -9.356 + -1.849 -4.622 3.918 -16.244 -4.052 3.160 -16.116 -4.024 4.666 -16.268 + -18.221 8.687 5.333 -18.335 8.248 6.176 -17.482 9.280 5.469 -6.149 + -20.144 0.159 -6.738 -19.400 0.031 -6.525 -20.842 -0.377 -11.047 14.596 + -5.764 -11.044 15.252 -6.461 -11.450 13.825 -6.163 8.393 -8.648 5.860 + 8.849 -9.194 5.220 7.996 -9.272 6.467 -3.973 16.887 -16.810 -4.107 + 16.759 -15.871 -3.679 16.034 -17.129 -0.535 -16.418 15.426 0.249 -16.589 + 15.948 -0.517 -15.474 15.269 -20.852 1.288 -8.264 -20.237 1.584 -7.592 + -20.783 0.334 -8.247 -16.547 -9.364 11.944 -16.448 -9.933 12.707 -17.482 + -9.398 11.740 -7.404 -14.394 6.649 -8.077 -15.050 6.471 -7.886 -13.571 + 6.728 -1.148 -17.448 -2.499 -0.899 -17.302 -1.586 -1.806 -16.777 -2.678 + -1.882 2.119 -23.187 -2.628 1.673 -23.589 -1.887 1.822 -22.278 6.976 + -4.095 -4.526 6.114 -3.898 -4.160 7.012 -3.592 -5.340 -5.522 -2.302 + 19.963 -5.787 -1.439 20.283 -6.042 -2.433 19.170 -11.077 3.950 -17.017 + -11.070 3.275 -17.696 -11.783 4.542 -17.275 -6.657 -3.960 14.501 -7.486 + -4.410 14.659 -6.259 -3.880 15.368 -4.824 8.877 16.976 -5.048 9.741 + 16.629 -5.528 8.678 17.593 -14.766 -5.502 9.322 -13.846 -5.355 9.542 + -15.168 -4.636 9.379 -8.901 6.639 -2.657 -8.662 6.753 -3.577 -9.746 + 7.081 -2.573 6.562 -5.965 -10.030 5.838 -6.011 -10.655 6.618 -6.847 + -9.664 10.625 1.307 12.087 9.853 1.418 11.532 10.697 0.361 12.211 + -2.532 -1.413 -0.362 -2.862 -1.869 0.412 -2.331 -2.112 -0.984 -1.158 + 21.121 2.938 -1.354 21.200 2.005 -1.998 20.902 3.342 -4.615 -3.769 + 16.500 -4.268 -3.661 17.386 -4.225 -4.585 16.187 -12.765 6.614 8.501 + -11.921 6.165 8.463 -12.573 7.510 8.224 -5.588 18.402 9.323 -6.269 + 17.777 9.575 -5.308 18.113 8.455 -6.081 -13.678 13.611 -5.207 -13.699 + 13.222 -6.098 -14.429 14.204 3.768 16.791 11.361 3.215 17.568 11.435 + 3.154 16.056 11.386 17.301 0.546 -13.808 17.855 0.477 -13.030 16.626 + 1.180 -13.565 2.560 -11.321 -16.274 3.494 -11.217 -16.453 2.128 -10.780 + -16.935 4.313 -20.127 13.820 4.579 -19.248 13.551 4.715 -20.708 13.174 + 15.179 2.138 -13.016 15.243 2.885 -12.422 14.247 1.923 -13.033 -5.115 + 16.356 12.456 -4.605 16.993 12.957 -4.899 15.512 12.852 16.894 -0.335 + -8.467 17.068 -1.238 -8.202 16.421 0.046 -7.728 -4.222 -18.213 10.401 + -3.544 -18.204 9.727 -3.895 -18.823 11.062 3.509 0.131 11.021 2.632 + -0.225 10.879 3.469 1.017 10.662 -6.772 6.063 -16.588 -7.417 5.483 + -16.184 -6.086 5.476 -16.904 -0.981 -16.484 10.912 -0.090 -16.142 10.977 + -0.870 -17.394 10.637 -10.188 12.005 10.360 -10.240 11.503 11.173 -10.758 + 12.759 10.508 -14.995 14.460 -9.680 -14.700 14.575 -10.583 -15.927 14.258 + -9.756 5.355 19.462 0.139 4.957 19.519 -0.731 5.162 20.307 0.545 + -8.279 9.839 -15.386 -7.893 10.630 -15.011 -8.790 10.152 -16.133 -9.559 + 6.773 -12.765 -9.948 6.315 -12.020 -8.865 6.189 -13.070 11.637 -10.598 + 10.615 11.693 -11.061 11.450 11.912 -9.704 10.817 -15.383 -4.747 13.185 + -15.583 -4.905 14.107 -15.775 -5.488 12.724 -6.358 15.143 1.817 -6.348 + 14.900 2.743 -5.866 14.447 1.381 18.231 10.421 -7.421 17.367 10.611 + -7.054 18.845 10.672 -6.731 -5.865 -0.636 -17.293 -6.786 -0.379 -17.331 + -5.743 -1.205 -18.053 -10.889 11.004 -0.266 -10.683 10.428 -1.003 -10.089 + 11.016 0.260 -4.186 15.076 -4.120 -4.109 15.121 -3.167 -4.666 14.263 + -4.283 3.082 -14.505 -16.734 3.634 -14.880 -17.419 3.363 -13.592 -16.673 + 4.763 1.803 14.258 4.921 1.534 15.163 3.973 1.329 14.001 -12.472 + 6.369 18.620 -12.533 5.464 18.926 -11.977 6.314 17.803 -6.843 7.823 + -14.480 -6.767 7.317 -15.289 -7.395 8.569 -14.714 15.189 -10.399 15.051 + 16.137 -10.524 15.077 14.893 -10.622 15.933 4.005 -11.727 -6.348 4.408 + -12.519 -6.703 4.230 -11.739 -5.418 4.863 -3.229 12.614 4.921 -3.833 + 11.874 4.612 -3.782 13.355 7.561 19.653 3.656 7.768 19.339 2.775 + 7.318 18.864 4.141 -12.783 -10.517 14.324 -12.124 -10.008 13.852 -12.440 + -10.586 15.214 -14.274 1.123 14.349 -14.131 1.815 13.704 -15.225 1.083 + 14.452 16.362 -14.175 5.327 17.128 -13.613 5.209 16.722 -15.060 5.389 + -13.208 -3.542 1.928 -13.058 -2.614 2.111 -12.670 -4.002 2.572 -11.831 + 6.600 -2.198 -12.026 5.773 -1.757 -12.006 6.425 -3.123 -5.463 -2.534 + -4.886 -4.931 -1.946 -5.423 -5.881 -1.960 -4.245 9.147 -5.014 22.418 + 9.724 -5.179 21.672 9.441 -4.172 22.766 13.893 -4.484 8.949 14.694 + -3.962 8.992 13.186 -3.846 9.046 9.920 19.805 -0.430 9.293 19.309 + 0.097 10.317 19.153 -1.007 8.689 23.219 6.276 9.527 23.409 6.697 + 8.922 22.711 5.499 -11.173 8.502 -4.719 -11.796 7.779 -4.788 -10.455 + 8.257 -5.301 15.301 -13.023 -13.605 14.357 -12.988 -13.448 15.382 -13.305 + -14.516 -14.347 8.910 -16.922 -13.392 8.948 -16.878 -14.591 8.252 -16.270 + -3.840 -8.160 -1.229 -3.220 -7.583 -0.783 -3.515 -8.212 -2.128 -19.519 + 6.193 1.091 -19.541 7.050 0.665 -19.660 6.383 2.019 2.782 -5.320 + 19.910 2.165 -4.605 19.755 3.488 -5.168 19.281 -11.416 1.528 -18.581 + -11.506 1.747 -19.509 -10.558 1.109 -18.516 -2.463 15.099 -12.342 -2.208 + 16.021 -12.311 -1.816 14.653 -11.796 -7.530 12.487 -14.687 -7.825 13.013 + -13.945 -7.098 13.113 -15.269 -0.484 -11.701 10.740 -0.900 -12.113 9.983 + -0.999 -10.909 10.895 -5.075 12.090 6.980 -5.934 11.790 6.683 -5.212 + 12.342 7.893 9.425 -17.426 -16.724 9.451 -18.381 -16.782 8.602 -17.236 + -16.273 16.777 -2.025 -14.767 17.003 -1.133 -14.504 15.905 -1.948 -15.152 + -13.694 2.759 -11.852 -13.929 1.899 -12.200 -12.945 3.034 -12.380 -14.460 + 9.824 -9.331 -13.930 10.620 -9.374 -13.868 9.127 -9.616 -10.034 14.045 + -14.842 -9.396 14.219 -14.150 -10.283 13.130 -14.715 1.227 21.561 -4.119 + 2.181 21.514 -4.069 0.944 20.648 -4.171 17.917 -9.133 10.688 17.008 + -9.369 10.503 18.054 -8.314 10.211 3.413 -17.024 -2.178 3.107 -16.496 + -2.916 2.646 -17.111 -1.612 -10.837 2.245 -7.921 -11.043 1.890 -7.056 + -9.962 1.909 -8.116 -4.721 11.376 -15.969 -5.558 11.707 -15.645 -4.081 + 12.034 -15.697 -2.974 2.687 -8.821 -3.054 3.458 -8.260 -3.877 2.418 + -8.989 15.029 6.923 -14.950 14.637 7.794 -15.005 15.970 7.087 -14.877 + 1.815 -14.643 -13.262 1.093 -14.057 -13.037 1.442 -15.250 -13.902 9.976 + -15.647 1.656 10.204 -16.124 2.454 9.065 -15.886 1.486 4.635 7.507 + 19.581 4.145 6.811 20.019 4.412 7.411 18.655 -20.647 -0.335 11.058 + -20.309 -0.269 11.951 -21.206 0.435 10.956 14.272 -3.331 20.770 13.713 + -3.514 20.015 14.250 -4.138 21.285 -13.810 -6.004 -15.948 -13.211 -6.197 + -15.227 -14.411 -5.349 -15.592 -4.282 19.568 -16.209 -4.313 18.767 -16.732 + -3.348 19.751 -16.106 -20.082 -13.342 7.161 -19.889 -12.726 6.455 -20.227 + -14.178 6.717 -2.140 19.948 -5.673 -2.100 20.108 -6.616 -2.331 19.014 + -5.596 -1.937 12.663 -18.998 -1.551 12.388 -19.830 -1.185 12.883 -18.447 + -15.528 -0.383 18.253 -15.150 0.486 18.119 -14.878 -0.849 18.779 2.691 + 12.871 -6.671 2.399 12.195 -7.283 2.346 13.687 -7.033 -4.219 3.730 + -20.623 -3.438 4.076 -20.191 -4.146 4.033 -21.528 -3.148 17.489 10.040 + -4.037 17.163 10.180 -2.779 17.565 10.920 -21.335 0.670 1.422 -20.422 + 0.825 1.662 -21.635 1.507 1.067 -18.346 -5.866 14.056 -17.947 -6.317 + 13.312 -19.287 -5.915 13.890 6.132 -2.086 -21.712 6.447 -2.917 -21.356 + 6.759 -1.436 -21.397 14.686 11.894 -12.067 14.862 11.759 -12.998 14.782 + 11.025 -11.677 -9.637 -8.492 -2.836 -8.736 -8.393 -2.529 -10.151 -7.929 + -2.257 -1.173 21.035 7.604 -2.079 21.331 7.699 -1.132 20.223 8.110 + 2.840 18.096 8.931 2.586 18.529 8.115 2.900 17.169 8.702 -17.424 + 4.979 3.863 -16.733 5.516 3.475 -18.238 5.382 3.563 -15.134 9.661 + 7.885 -15.174 8.734 8.119 -14.269 9.771 7.491 19.501 13.027 -9.652 + 19.813 13.312 -10.510 18.547 13.014 -9.735 -9.951 10.943 -17.323 -9.837 + 10.755 -18.255 -9.934 11.898 -17.267 -4.174 -3.625 -21.531 -4.779 -3.235 + -20.900 -3.781 -2.876 -21.980 8.087 -8.794 10.822 7.965 -9.386 11.564 + 8.923 -9.060 10.438 3.284 10.151 6.922 2.743 10.882 6.625 3.636 + 10.439 7.764 18.368 15.563 -8.270 17.949 15.986 -9.020 19.118 15.101 + -8.645 -4.183 4.379 18.653 -5.046 4.791 18.614 -4.348 3.510 19.021 + 2.412 13.044 17.079 1.778 13.691 17.391 2.425 12.374 17.763 10.869 + 10.243 -4.304 11.160 10.176 -3.394 9.927 10.401 -4.244 12.783 -3.175 + 14.642 12.888 -4.122 14.737 13.648 -2.864 14.373 5.332 -0.782 -2.989 + 5.765 -1.593 -3.255 4.398 -0.965 -3.092 1.755 -16.447 11.891 1.615 + -15.514 12.052 1.826 -16.833 12.764 -4.696 -7.544 -19.588 -4.389 -8.257 + -19.028 -4.868 -6.822 -18.983 8.534 6.463 3.959 9.227 6.144 4.538 + 8.987 6.691 3.147 -6.392 -5.311 -7.166 -6.929 -6.102 -7.127 -5.655 + -5.492 -6.583 -1.112 -21.656 -8.815 -1.307 -20.721 -8.751 -1.868 -22.086 + -8.414 -0.312 -1.041 -16.988 -1.227 -1.129 -16.721 -0.095 -0.127 -16.803 + -8.958 -20.600 8.792 -8.842 -21.229 8.079 -8.077 -20.468 9.141 -5.982 + -6.321 -12.825 -6.852 -6.707 -12.929 -5.487 -6.637 -13.581 -16.443 15.656 + 7.160 -15.783 16.274 6.848 -16.168 15.442 8.052 7.543 -10.667 7.547 + 6.722 -10.234 7.782 8.225 -10.098 7.904 7.896 6.837 14.142 7.119 + 6.330 14.379 7.595 7.426 13.450 6.373 19.706 -5.209 6.195 18.768 + -5.281 7.218 19.823 -5.645 -12.721 2.108 -0.555 -13.516 2.214 -0.032 + -12.662 1.166 -0.714 -12.713 -16.008 10.077 -11.966 -15.410 10.089 -12.595 + -16.554 10.855 7.693 7.650 -1.239 7.224 7.324 -0.471 7.886 8.565 + -1.032 10.084 -1.883 10.534 9.256 -1.439 10.347 9.957 -2.270 11.401 + -4.543 11.896 12.515 -3.599 11.806 12.643 -4.773 12.700 12.980 -3.268 + -2.433 -13.516 -4.075 -2.729 -13.095 -2.828 -1.909 -12.847 -20.783 -4.498 + 7.756 -20.630 -3.565 7.903 -20.406 -4.927 8.524 -5.320 -8.594 17.182 + -5.747 -7.934 16.636 -5.161 -8.148 18.015 -16.435 0.609 -2.606 -17.371 + 0.542 -2.791 -16.290 1.541 -2.440 18.049 5.613 7.540 18.357 6.275 + 6.921 18.454 5.856 8.372 -0.493 -16.710 -0.028 -0.910 -16.000 0.460 + 0.410 -16.720 0.289 -14.607 -10.846 3.786 -14.342 -10.000 4.149 -15.408 + -11.069 4.260 -14.325 1.521 -18.678 -14.395 0.672 -19.114 -13.393 1.611 + -18.476 -10.684 -13.135 2.809 -11.378 -12.529 2.550 -11.148 -13.927 3.082 + -8.398 -7.211 -12.485 -9.032 -6.652 -12.036 -8.052 -7.781 -11.798 -2.767 + -5.943 -20.857 -3.460 -6.598 -20.776 -3.231 -5.109 -20.919 1.296 -5.006 + 11.553 1.940 -5.683 11.345 0.450 -5.434 11.423 -16.213 5.327 -13.667 + -16.783 4.627 -13.984 -16.792 5.897 -13.160 3.065 14.767 1.739 3.374 + 13.887 1.524 3.667 15.074 2.417 3.335 -8.797 -10.279 2.913 -9.058 + -11.097 3.878 -9.547 -10.039 0.014 -10.979 13.969 0.895 -10.733 14.249 + -0.278 -10.247 13.425 -13.985 -1.922 -6.640 -13.910 -0.972 -6.729 -13.080 + -2.230 -6.594 -2.155 1.550 -12.830 -2.751 2.296 -12.889 -2.344 1.030 + -13.612 19.857 8.954 11.373 20.427 8.734 12.110 20.064 9.867 11.175 + 7.337 -16.047 10.538 8.244 -16.266 10.753 7.072 -16.717 9.908 -11.888 + -6.098 16.693 -12.030 -5.389 16.066 -10.988 -5.973 16.996 -12.592 6.338 + -5.098 -12.506 6.480 -6.041 -13.508 6.089 -4.976 13.452 14.762 -2.595 + 12.840 14.083 -2.881 13.238 14.906 -1.674 -7.470 3.673 8.198 -8.032 + 3.033 8.636 -6.763 3.838 8.821 -16.058 -1.295 14.955 -16.757 -1.915 + 14.747 -15.562 -1.211 14.140 16.053 -10.546 2.701 15.866 -11.450 2.445 + 15.779 -10.495 3.616 13.371 18.376 0.016 12.851 17.797 -0.541 14.280 + 18.163 -0.199 -10.447 -16.363 1.175 -10.208 -15.503 0.829 -9.666 -16.657 + 1.644 21.045 -5.359 -10.874 20.402 -4.656 -10.964 21.357 -5.285 -9.972 + 10.266 -13.722 10.230 9.978 -13.195 10.975 9.897 -13.278 9.466 6.317 + 7.539 -17.182 6.839 8.337 -17.113 6.948 6.828 -17.066 2.583 21.327 + 1.779 3.471 21.566 1.512 2.286 22.067 2.310 0.301 0.457 -23.298 + 0.309 0.820 -24.184 -0.453 0.869 -22.877 20.350 -8.455 11.446 19.567 + -8.878 11.095 20.552 -8.947 12.242 9.065 -7.832 2.260 9.123 -7.523 + 3.164 9.826 -7.448 1.825 -12.804 0.706 1.894 -13.083 0.201 1.130 + -12.203 1.362 1.541 -8.421 -23.593 -3.166 -9.162 -24.165 -3.366 -8.810 + -22.725 -3.060 -4.055 5.621 12.898 -3.306 5.941 13.402 -4.424 6.405 + 12.493 1.957 5.428 -16.760 1.969 5.867 -17.610 2.709 5.792 -16.292 + -13.445 14.068 9.609 -12.821 14.428 8.978 -13.196 14.464 10.444 1.405 + -13.627 12.177 1.552 -13.458 11.247 0.700 -13.028 12.421 -0.004 20.087 + -11.926 -0.511 20.724 -12.429 -0.003 20.432 -11.033 5.005 -5.039 10.723 + 5.030 -5.995 10.764 5.615 -4.813 10.020 18.873 -12.905 12.190 18.207 + -12.509 12.752 18.578 -12.717 11.300 -5.013 -17.888 3.849 -5.675 -17.858 + 4.540 -5.216 -17.139 3.289 -12.758 -11.503 10.588 -13.639 -11.686 10.263 + -12.244 -11.326 9.800 -11.975 -18.499 6.456 -12.235 -17.589 6.313 -11.838 + -18.850 5.576 -6.380 -19.937 9.387 -5.675 -19.460 9.825 -5.945 -20.688 + 8.982 5.908 22.633 6.907 6.846 22.704 7.083 5.490 22.878 7.732 + -10.407 -14.829 -7.518 -10.300 -14.031 -8.036 -10.491 -15.527 -8.167 -16.430 + -0.207 0.310 -17.374 -0.070 0.383 -16.232 -0.026 -0.609 0.221 6.692 + -5.252 -0.577 6.912 -5.733 0.281 7.361 -4.570 14.717 5.598 16.531 + 15.456 5.384 17.101 14.620 4.831 15.967 12.486 -12.340 15.476 12.157 + -12.501 16.360 13.033 -11.559 15.563 -1.768 10.623 -16.083 -2.629 10.295 + -16.343 -1.896 11.564 -15.965 21.309 -5.103 1.669 20.365 -5.001 1.786 + 21.447 -6.050 1.652 -14.884 -7.942 4.016 -14.825 -7.788 4.959 -15.696 + -7.509 3.753 -0.380 4.686 -15.322 -0.069 4.544 -14.427 0.403 4.944 + -15.809 1.627 -13.111 16.911 1.327 -13.014 17.814 0.825 -13.095 16.389 + 10.037 8.921 11.655 10.114 8.352 12.422 9.800 9.776 12.014 -9.896 + -5.140 -11.656 -10.676 -4.585 -11.656 -9.179 -4.545 -11.879 7.255 -8.147 + 18.995 8.004 -7.955 19.558 6.902 -7.288 18.764 9.161 10.289 4.853 + 8.880 9.675 4.174 10.116 10.225 4.852 4.844 17.796 -7.591 5.467 + 18.479 -7.837 4.113 18.269 -7.193 -15.963 -16.765 -0.735 -15.560 -17.542 + -1.120 -15.742 -16.056 -1.339 4.591 15.525 -12.165 5.184 15.883 -11.504 + 3.859 15.169 -11.661 -4.503 -5.316 -5.131 -4.531 -4.370 -4.990 -3.673 + -5.591 -4.741 20.563 -10.631 7.802 20.080 -9.906 7.406 21.198 -10.890 + 7.134 2.596 -0.044 2.386 2.835 -0.522 3.180 3.068 -0.492 1.685 + 6.143 15.432 10.521 5.536 16.165 10.623 6.214 15.308 9.575 -6.151 + 11.540 -18.847 -5.559 11.644 -18.103 -5.659 11.007 -19.472 -9.168 1.676 + 9.387 -9.422 0.810 9.066 -8.714 1.502 10.211 4.688 -16.956 -7.333 + 4.453 -17.201 -6.438 3.923 -17.196 -7.856 -6.372 14.831 -7.169 -6.314 + 15.611 -6.617 -6.581 15.170 -8.040 -7.759 -11.425 6.939 -8.117 -11.470 + 7.825 -7.660 -10.488 6.768 0.615 -7.640 -12.105 0.708 -6.743 -12.426 + 1.441 -8.064 -12.336 -2.276 6.606 -12.678 -1.896 7.058 -13.431 -2.887 + 7.239 -12.301 -7.135 0.066 20.456 -7.605 0.762 20.914 -7.778 -0.637 + 20.362 -11.565 2.521 10.076 -10.732 2.390 9.623 -12.210 2.602 9.374 + -17.004 -16.620 7.342 -17.481 -16.937 8.109 -16.086 -16.630 7.610 8.014 + -13.136 2.370 7.391 -13.478 3.011 8.435 -13.915 2.006 -8.338 -8.678 + 6.458 -8.615 -8.354 5.601 -8.794 -8.116 7.085 3.954 9.940 -18.465 + 4.527 9.472 -17.858 4.350 9.800 -19.325 9.182 -6.412 4.395 8.497 + -5.791 4.641 9.046 -7.161 4.976 14.927 11.391 12.124 14.913 11.558 + 13.066 14.872 12.260 11.726 -0.795 6.608 12.505 0.072 6.253 12.701 + -0.945 6.381 11.587 -6.902 2.618 -16.425 -5.984 2.887 -16.399 -7.027 + 2.277 -17.310 -19.387 8.864 -3.421 -19.524 9.806 -3.525 -18.437 8.755 + -3.459 -2.335 2.109 7.717 -2.425 3.039 7.511 -3.223 1.824 7.930 + -3.634 -12.355 16.862 -4.432 -11.914 17.154 -3.266 -12.736 17.660 1.910 + -5.206 -20.493 1.113 -4.757 -20.214 2.194 -4.727 -21.272 -9.369 -6.055 + -1.071 -8.898 -6.270 -0.266 -8.694 -5.725 -1.663 -8.384 1.733 -2.329 + -9.028 2.147 -2.905 -8.819 0.940 -2.015 -13.844 11.808 -13.260 -14.478 + 11.326 -13.791 -13.011 11.691 -13.717 -2.136 -11.615 -16.986 -2.869 -12.154 + -16.690 -1.388 -11.927 -16.477 10.559 -12.636 17.632 10.069 -12.158 16.963 + 9.980 -12.642 18.395 -3.032 17.233 -5.688 -2.586 16.982 -4.880 -3.672 + 16.536 -5.835 -3.301 8.007 -19.011 -3.753 7.328 -19.512 -3.977 8.374 + -18.441 -4.818 -12.014 7.112 -5.636 -12.081 6.621 -4.844 -11.141 7.504 + -13.709 6.218 -12.798 -13.082 5.648 -13.244 -14.549 5.768 -12.889 -13.058 + -3.260 10.155 -12.254 -3.050 9.681 -13.078 -2.638 10.883 -13.044 -3.939 + -1.182 -13.267 -4.135 -0.272 -13.811 -3.477 -1.522 -10.593 8.423 -14.664 + -10.282 7.752 -14.057 -9.819 8.957 -14.847 1.617 11.224 -18.089 2.492 + 10.855 -18.212 1.772 12.152 -17.913 -5.926 -12.869 -2.951 -6.047 -12.316 + -2.179 -6.050 -13.761 -2.627 18.604 -1.253 -10.539 18.939 -0.394 -10.797 + 17.995 -1.067 -9.823 12.811 -8.829 19.054 13.131 -9.555 18.517 12.206 + -8.357 18.482 -16.981 -3.173 3.057 -17.127 -2.244 2.879 -17.835 -3.500 + 3.340 18.888 -10.932 4.424 19.123 -11.803 4.744 17.992 -10.797 4.733 + -11.671 16.024 -15.687 -11.030 15.366 -15.417 -12.519 15.603 -15.549 3.514 + -4.290 3.696 2.959 -3.695 4.200 3.056 -4.398 2.863 -19.281 -9.820 + 11.430 -19.867 -9.069 11.343 -19.678 -10.500 10.886 -10.397 10.986 -11.728 + -9.634 10.429 -11.882 -11.032 10.711 -12.390 -17.569 4.440 0.369 -18.233 + 4.910 0.874 -16.846 5.062 0.287 12.204 10.687 1.226 13.138 10.527 + 1.363 11.769 10.125 1.867 14.610 17.866 5.794 14.920 18.250 6.614 + 14.071 18.551 5.398 -0.408 1.694 19.821 -1.066 1.607 20.511 -0.897 + 1.577 19.007 19.942 7.503 0.947 20.648 7.025 0.511 20.299 8.380 + 1.089 -7.045 14.084 -19.120 -6.824 13.170 -19.295 -7.597 14.343 -19.859 + -11.797 -2.447 -17.519 -12.392 -2.602 -18.252 -10.983 -2.882 -17.775 -4.262 + -13.206 -15.963 -4.244 -12.633 -15.197 -5.161 -13.147 -16.286 16.030 2.358 + 13.348 15.854 2.553 12.428 15.243 2.648 13.809 -4.685 8.687 -16.932 + -4.981 7.849 -16.576 -4.983 9.336 -16.295 7.616 -1.057 9.116 8.105 + -0.888 8.310 7.055 -0.289 9.221 -14.594 14.236 -12.479 -15.498 14.152 + -12.782 -14.255 13.341 -12.486 3.989 20.599 11.197 4.427 20.208 10.440 + 3.056 20.507 11.007 -10.922 10.522 -8.652 -10.539 10.775 -9.492 -10.993 + 11.342 -8.164 -7.886 9.749 -21.014 -7.979 8.829 -20.765 -7.030 10.005 + -20.672 -7.857 7.593 -19.404 -7.776 7.306 -18.495 -7.147 7.144 -19.862 + 1.596 11.922 11.289 1.380 11.659 12.184 1.588 11.105 10.791 -14.897 + -0.530 5.617 -15.121 -0.184 4.753 -14.905 -1.480 5.504 -6.708 7.622 + -7.420 -6.546 8.557 -7.548 -7.300 7.382 -8.133 10.831 5.290 -0.758 + 10.003 4.928 -0.444 11.399 4.527 -0.870 16.025 -2.399 6.206 15.613 + -3.254 6.082 16.045 -2.279 7.156 3.666 21.114 -4.786 4.609 20.949 + -4.805 3.492 21.600 -5.593 17.280 2.537 -8.549 18.093 2.665 -9.038 + 17.321 1.629 -8.250 -6.197 -2.676 -19.802 -6.868 -3.206 -20.232 -6.154 + -1.875 -20.324 -4.430 10.857 -0.499 -4.895 10.258 0.086 -5.016 10.965 + -1.248 -9.769 -13.014 -2.394 -10.606 -13.478 -2.422 -9.455 -13.030 -3.298 + -5.549 -6.479 2.008 -5.599 -6.134 2.899 -4.676 -6.231 1.704 15.583 + -2.328 8.826 15.153 -1.488 8.669 15.644 -2.392 9.779 -6.633 11.678 + -10.568 -7.199 12.273 -10.077 -7.238 11.128 -11.065 6.735 17.295 4.883 + 6.037 17.504 4.262 7.018 16.414 4.636 17.780 -0.365 4.874 18.367 + -0.934 4.378 17.075 -0.943 5.165 11.240 -6.310 1.017 11.984 -6.778 + 0.638 11.609 -5.833 1.760 -17.002 10.824 -13.245 -16.674 10.631 -12.367 + -16.233 10.750 -13.810 1.588 -20.663 11.380 1.745 -19.969 12.021 0.870 + -20.333 10.841 -9.640 -10.907 -0.909 -9.903 -11.643 -1.463 -9.271 -10.268 + -1.519 1.043 11.471 -14.356 0.972 11.065 -13.493 0.931 10.747 -14.972 + -7.206 -8.697 -1.926 -6.923 -8.347 -2.771 -6.639 -9.454 -1.779 4.151 + -20.701 -5.502 3.859 -21.480 -5.028 3.692 -19.976 -5.078 -20.221 -0.973 + 5.112 -21.019 -0.475 5.289 -19.529 -0.484 5.557 0.616 -6.641 -1.191 + 1.260 -7.002 -0.583 0.119 -7.401 -1.493 0.782 2.971 -17.903 1.471 + 3.533 -17.547 0.753 3.188 -18.835 8.680 10.678 -11.957 8.201 11.305 + -11.416 8.011 10.064 -12.262 12.755 12.919 8.601 13.282 13.711 8.494 + 12.338 13.022 9.456 20.283 -5.984 12.645 20.225 -6.723 12.040 19.478 + -5.488 12.495 -15.759 -0.831 8.568 -15.557 -0.895 7.634 -15.071 -0.269 + 8.924 16.667 -2.312 12.226 17.273 -1.664 12.585 16.643 -3.007 12.884 + -0.344 0.301 -0.113 -1.068 -0.261 -0.388 0.332 -0.308 0.185 13.734 + 15.402 6.351 14.055 16.286 6.172 14.521 14.856 6.347 -2.156 9.664 + -9.057 -1.656 10.196 -8.439 -1.663 9.722 -9.876 4.146 -6.558 22.046 + 3.628 -6.119 21.371 4.322 -7.427 21.686 9.558 22.068 3.984 9.441 + 21.133 3.815 10.488 22.160 4.190 12.209 13.329 4.185 11.777 14.176 + 4.293 11.850 12.785 4.886 -13.177 1.188 16.917 -13.692 1.179 16.111 + -12.809 2.071 16.956 -6.794 5.740 21.122 -6.918 6.490 20.542 -7.386 + 5.904 21.856 -9.562 17.787 7.063 -9.079 17.851 7.887 -9.904 18.669 + 6.917 4.760 -11.903 -10.621 4.657 -12.177 -11.533 5.684 -11.663 -10.546 + -3.260 -3.490 12.596 -3.438 -3.834 11.721 -2.437 -3.010 12.503 -12.933 + -0.350 12.220 -13.133 0.203 12.975 -13.762 -0.779 12.010 -2.875 -8.292 + 5.748 -2.152 -8.550 6.320 -2.597 -8.563 4.873 -1.800 4.772 -19.468 + -1.031 4.564 -19.999 -1.598 5.622 -19.076 -18.328 -10.393 6.697 -18.397 + -10.955 5.924 -18.461 -10.986 7.436 8.019 13.917 -7.408 7.204 14.406 + -7.295 8.136 13.864 -8.357 -14.921 8.733 -12.457 -15.367 8.343 -11.705 + -14.439 8.007 -12.852 -1.066 7.326 -17.730 -0.455 7.982 -17.394 -1.760 + 7.836 -18.148 -9.217 3.818 -19.343 -8.899 3.297 -18.606 -9.550 3.173 + -19.967 8.615 -6.044 10.485 8.373 -6.964 10.594 7.948 -5.689 9.898 + 11.332 15.562 1.958 10.901 15.042 1.279 10.969 15.230 2.780 17.470 + 5.265 11.081 17.720 5.872 11.778 16.574 5.517 10.855 8.817 -15.668 + 5.463 9.018 -15.721 6.398 9.255 -16.428 5.081 -1.592 8.936 -20.884 + -1.973 8.413 -20.178 -0.657 8.733 -20.853 -2.492 -15.288 5.075 -3.324 + -15.080 5.501 -2.743 -15.663 4.231 -14.695 -10.475 -13.564 -13.788 -10.294 + -13.812 -15.213 -9.867 -14.091 7.950 2.587 3.135 7.457 3.086 3.786 + 7.280 2.184 2.583 20.631 6.895 8.980 21.295 7.463 8.589 20.233 + 7.430 9.666 12.979 16.803 -7.229 13.221 16.987 -8.136 12.594 15.927 + -7.256 14.967 -5.423 -12.353 14.535 -4.695 -11.907 15.229 -6.015 -11.647 + -18.805 1.996 1.029 -18.425 2.841 0.790 -18.913 1.537 0.196 -6.852 + 2.310 -20.995 -5.935 2.535 -20.836 -7.262 3.137 -21.246 -9.601 2.561 + -12.345 -9.753 1.716 -11.921 -8.885 2.396 -12.958 -13.054 3.913 16.479 + -12.109 4.055 16.417 -13.255 4.041 17.406 3.006 -6.625 6.139 2.884 + -7.504 6.498 2.932 -6.741 5.192 2.357 7.538 7.450 2.511 8.479 + 7.364 2.682 7.166 6.630 -19.181 -0.082 -3.962 -19.411 0.426 -4.740 + -18.699 -0.836 -4.304 -0.957 -3.332 21.436 -0.080 -3.652 21.225 -0.913 + -2.389 21.276 1.453 15.354 9.599 1.971 15.431 8.797 0.976 14.529 + 9.498 -3.691 -9.567 15.239 -4.218 -9.156 15.925 -3.916 -9.085 14.443 + -3.372 -22.961 -7.828 -3.966 -23.135 -8.558 -3.509 -23.693 -7.227 -5.963 + 3.122 21.542 -6.288 3.920 21.125 -5.718 3.397 22.426 -12.318 10.126 + 7.236 -11.543 10.624 7.496 -12.121 9.823 6.350 -0.650 7.818 9.749 + -1.463 8.059 9.305 -0.401 6.982 9.356 -12.081 -12.665 -13.300 -12.155 + -12.091 -14.062 -12.853 -13.228 -13.348 -6.515 -7.177 11.739 -6.228 -6.422 + 11.225 -7.467 -7.090 11.781 -11.737 -8.209 5.738 -11.383 -8.888 5.164 + -11.306 -7.404 5.450 -7.041 3.790 11.423 -6.094 3.860 11.306 -7.178 + 2.894 11.733 15.488 -9.685 -8.233 15.536 -9.103 -7.475 16.397 -9.793 + -8.511 -2.409 -3.569 -2.028 -3.358 -3.593 -2.148 -2.056 -3.954 -2.830 + 14.434 5.548 1.628 14.512 5.657 0.680 14.034 4.686 1.738 12.125 + 6.823 7.151 12.212 7.758 7.338 12.931 6.597 6.686 12.600 -13.595 + -10.758 11.783 -13.415 -11.222 13.064 -12.758 -10.757 5.687 16.135 13.568 + 5.375 15.334 13.989 5.181 16.193 12.758 -1.093 -15.688 7.379 -1.150 + -15.779 6.428 -1.502 -14.842 7.564 -17.792 8.427 15.054 -17.030 7.900 + 14.817 -17.848 9.090 14.365 -7.178 16.623 -9.394 -6.837 16.991 -10.209 + -7.412 17.387 -8.866 -5.087 8.551 13.635 -4.473 8.559 14.370 -4.742 + 9.205 13.028 14.163 12.000 -7.889 14.665 12.765 -8.172 13.792 12.256 + -7.045 -9.563 10.771 8.067 -9.933 11.455 8.627 -9.161 10.154 8.678 + -10.550 -10.203 -4.655 -9.766 -10.750 -4.686 -10.419 -9.639 -3.892 -6.229 + 14.103 -16.635 -6.476 14.112 -17.560 -5.285 13.943 -16.642 -7.991 -13.299 + 11.716 -7.880 -13.722 10.865 -7.336 -13.715 12.277 12.527 -18.010 -13.354 + 12.443 -17.691 -14.253 11.729 -17.711 -12.918 -6.629 17.388 -5.919 -5.961 + 18.071 -5.858 -7.341 17.793 -6.415 21.166 11.290 -6.534 20.858 11.093 + -5.650 21.308 10.432 -6.935 17.091 -3.237 -8.727 17.685 -3.913 -8.403 + 16.237 -3.667 -8.765 17.826 -2.756 2.635 17.871 -3.588 2.163 18.456 + -2.192 2.186 -12.024 -3.533 -10.848 -12.776 -4.080 -10.619 -12.355 -2.940 + -11.522 -6.612 -3.905 11.863 -6.498 -3.504 12.725 -7.310 -4.547 11.987 + 6.146 -16.335 14.160 5.761 -16.422 15.032 5.398 -16.376 13.563 -7.888 + -7.543 18.199 -8.287 -7.758 17.356 -7.263 -6.847 17.997 15.289 7.781 + -7.026 15.144 6.990 -7.545 15.755 8.373 -7.617 -16.715 -2.185 -6.925 + -15.794 -2.049 -6.700 -16.693 -2.779 -7.675 -7.380 -23.089 -6.987 -8.234 + -23.484 -6.810 -7.083 -23.513 -7.792 4.022 10.185 11.331 3.115 10.258 + 11.625 4.371 11.074 11.405 -3.464 -4.785 10.176 -4.383 -4.707 9.918 + -2.974 -4.466 9.419 14.254 -2.519 -2.642 14.743 -2.210 -1.880 14.376 + -1.833 -3.299 1.591 3.063 -0.228 2.111 2.929 -1.021 0.724 3.309 + -0.549 -6.297 -15.685 2.419 -7.231 -15.547 2.578 -5.937 -14.802 2.329 + -7.614 4.441 -7.356 -8.279 4.889 -7.878 -8.114 3.909 -6.736 -12.276 + -18.985 -3.269 -12.348 -18.250 -2.661 -11.568 -18.737 -3.863 12.525 -16.199 + -10.449 12.952 -16.516 -11.245 12.386 -15.265 -10.607 -3.065 -7.943 -3.916 + -2.731 -8.570 -4.557 -2.487 -7.184 -3.999 -7.783 -17.829 -9.472 -7.888 + -18.744 -9.732 -6.837 -17.680 -9.496 -9.343 15.266 -10.234 -8.490 15.573 + -9.927 -9.588 15.887 -10.920 4.975 1.413 16.891 4.216 0.927 17.212 + 4.807 2.319 17.152 -4.811 -1.412 11.671 -4.319 -2.104 12.114 -5.302 + -1.868 10.987 6.670 -10.565 -15.228 6.127 -10.092 -14.597 6.049 -11.095 + -15.727 6.088 -0.799 12.242 5.257 -0.452 11.917 5.861 -1.652 12.614 + 1.050 11.513 -10.682 1.950 11.807 -10.539 1.140 10.679 -11.142 -11.788 + -7.641 -1.019 -11.083 -6.997 -1.084 -11.865 -7.819 -0.082 17.897 9.542 + -11.253 17.120 9.712 -10.720 18.466 9.021 -10.687 -6.118 -7.147 14.935 + -6.312 -7.237 14.002 -5.373 -6.547 14.968 -20.229 -14.569 4.270 -20.048 + -14.740 3.346 -20.262 -15.436 4.673 4.191 4.451 10.569 4.187 4.186 + 9.650 3.754 5.303 10.575 -15.299 -11.537 -0.390 -16.208 -11.834 -0.334 + -14.784 -12.344 -0.382 14.767 -0.514 2.537 14.946 -1.035 3.320 13.949 + -0.059 2.733 -8.432 -3.064 -12.889 -8.194 -2.139 -12.951 -7.665 -3.531 + -13.220 -9.984 -18.194 8.349 -10.811 -18.163 7.869 -9.774 -19.126 8.405 + 4.546 -11.203 -3.542 5.490 -11.273 -3.399 4.326 -10.315 -3.262 -10.599 + 6.452 -19.486 -10.044 7.225 -19.587 -10.004 5.769 -19.175 5.466 -8.263 + 0.740 4.816 -8.837 0.335 5.869 -7.802 0.005 6.542 -5.196 -23.576 + 6.552 -4.905 -22.664 5.970 -4.570 -24.021 8.454 -16.672 -5.934 8.318 + -15.740 -5.765 8.869 -17.002 -5.137 -0.859 14.404 -6.633 -0.362 14.691 + -7.399 -0.314 14.652 -5.887 -11.289 17.395 9.962 -11.638 17.370 9.071 + -11.592 18.232 10.314 20.975 6.053 -12.875 21.133 5.480 -13.625 20.058 + 6.315 -12.963 15.962 9.106 13.413 15.109 9.263 13.819 16.085 9.848 + 12.820 17.151 -7.183 -15.788 16.541 -6.454 -15.903 17.946 -6.778 -15.441 + -16.477 9.030 -4.365 -16.648 9.956 -4.534 -16.049 8.715 -5.162 -6.952 + -22.477 -0.988 -7.323 -22.554 -1.867 -7.652 -22.775 -0.406 -15.036 7.449 + 15.357 -15.352 6.546 15.328 -14.285 7.459 14.763 -16.385 12.679 -2.341 + -16.729 12.416 -3.194 -16.351 11.867 -1.836 -8.157 4.874 -21.717 -8.590 + 4.915 -20.864 -8.428 5.677 -22.162 -16.164 -2.411 -11.572 -16.490 -2.496 + -12.468 -15.211 -2.442 -11.660 -14.239 3.505 12.954 -14.330 4.368 12.552 + -13.296 3.340 12.957 3.517 -8.846 -2.633 3.979 -8.274 -2.021 3.468 + -8.340 -3.444 8.847 -7.045 -21.806 7.959 -7.110 -21.454 8.727 -6.745 + -22.707 -14.180 13.957 5.537 -14.498 13.673 4.679 -14.845 13.649 6.153 + -5.662 -0.869 2.773 -6.087 -0.477 2.011 -4.958 -1.405 2.406 -12.345 + 17.529 5.062 -12.447 16.858 4.386 -11.757 18.175 4.670 -9.277 14.178 + -3.089 -9.903 14.168 -3.813 -9.822 14.206 -2.302 7.133 -10.884 21.652 + 6.953 -11.818 21.754 8.001 -10.764 22.038 -4.454 -23.971 -3.071 -5.240 + -23.984 -3.619 -3.741 -24.186 -3.672 6.159 -16.102 -3.404 5.253 -16.309 + -3.176 6.210 -16.257 -4.347 2.851 -1.102 -22.789 2.122 -0.532 -23.033 + 3.617 -0.529 -22.800 -13.995 -13.789 5.019 -14.340 -13.375 5.810 -13.561 + -13.078 4.547 1.251 -14.376 3.948 1.759 -14.827 4.622 1.836 -14.342 + 3.190 -7.154 3.077 -4.212 -7.176 3.958 -3.839 -7.195 2.495 -3.454 + 15.694 -8.917 0.483 15.622 -9.616 1.133 15.792 -9.376 -0.351 -8.874 + -15.444 3.363 -9.270 -14.575 3.428 -9.129 -15.884 4.174 2.633 18.986 + 13.972 1.938 19.325 14.537 2.256 19.001 13.093 20.570 -9.564 -5.314 + 20.014 -10.291 -5.594 20.914 -9.840 -4.464 -15.462 10.094 16.025 -15.459 + 9.138 15.980 -14.690 10.311 16.548 -20.107 11.478 -3.182 -19.806 11.961 + -2.412 -20.909 11.927 -3.448 -1.816 0.888 -20.785 -1.354 0.106 -20.483 + -2.232 1.240 -19.998 -6.189 -5.486 17.921 -6.273 -4.697 17.384 -5.473 + -5.290 18.524 6.998 11.363 10.963 7.919 11.573 11.122 6.519 12.122 + 11.297 11.353 -11.497 13.107 10.414 -11.668 13.045 11.566 -11.660 14.026 + 14.924 8.723 0.700 14.993 8.867 1.643 15.826 8.583 0.412 5.805 + -13.929 4.075 5.642 -13.699 4.989 6.239 -14.781 4.116 -18.954 0.219 + -1.284 -19.243 0.388 -2.181 -19.269 -0.665 -1.094 -12.220 -20.859 8.226 + -12.601 -20.023 8.494 -11.681 -20.644 7.465 4.621 3.185 -18.661 4.029 + 3.873 -18.358 4.774 3.390 -19.584 -13.101 -10.508 -1.605 -13.721 -11.025 + -1.091 -12.846 -9.792 -1.022 17.044 -1.631 -19.179 16.290 -1.960 -19.668 + 17.598 -1.218 -19.843 0.146 3.211 -21.128 0.898 3.111 -21.711 -0.071 + 2.318 -20.861 -1.551 -6.640 11.229 -0.985 -6.603 10.457 -2.315 -6.115 + 10.991 0.728 -22.298 0.582 0.988 -21.915 -0.255 -0.157 -21.965 0.733 + -8.713 -2.577 1.748 -8.916 -1.805 1.220 -7.758 -2.637 1.727 1.839 + -20.602 -3.617 2.397 -21.379 -3.662 1.672 -20.481 -2.683 -7.340 -11.202 + 4.127 -7.587 -11.254 5.050 -6.753 -10.447 4.078 -7.031 2.956 -0.276 + -7.243 2.359 -0.993 -6.125 3.218 -0.442 0.922 -3.726 -5.915 1.707 + -4.170 -6.235 0.942 -3.858 -4.967 -7.121 16.385 10.704 -7.393 15.470 + 10.628 -6.281 16.348 11.161 -13.181 7.493 0.385 -12.682 7.366 1.192 + -12.530 7.430 -0.313 -5.429 -12.974 2.214 -6.310 -12.668 1.999 -5.154 + -12.420 2.945 5.008 -2.923 -24.320 4.700 -2.186 -24.848 5.352 -2.520 + -23.523 -7.152 11.295 12.062 -7.678 11.162 12.851 -6.300 11.585 12.388 + -17.304 -6.708 11.559 -17.417 -6.298 10.702 -16.907 -7.557 11.368 -1.420 + 17.837 5.375 -1.830 16.974 5.425 -0.827 17.864 6.126 2.704 16.626 + -13.976 3.220 16.401 -13.202 2.412 15.783 -14.323 -4.542 -22.162 9.320 + -4.838 -22.999 8.962 -3.588 -22.195 9.248 16.028 -0.443 15.766 16.807 + -0.926 15.491 15.646 -0.981 16.461 2.226 0.393 14.388 2.338 -0.556 + 14.440 1.521 0.517 13.753 -10.465 15.338 3.904 -10.886 14.746 4.527 + -10.000 15.970 4.451 -7.070 -0.670 8.124 -7.405 -1.382 8.670 -7.762 + -0.515 7.481 2.365 -5.243 8.659 2.597 -5.356 7.737 2.541 -4.319 + 8.839 + 42.427 42.427 42.427 + 0.158 2.815 -8.792 0.853 3.268 -8.217 0.144 1.816 -8.644 -0.721 + 3.068 -8.361 0.122 3.142 -10.264 -0.784 2.635 -10.595 0.104 4.665 + -10.413 -0.803 5.144 -10.043 0.894 5.158 -9.847 0.257 4.999 -11.756 + -0.461 5.594 -11.985 1.257 2.468 -11.095 2.319 2.305 -10.560 0.965 + 1.913 -12.335 0.250 2.405 -12.852 1.914 0.996 -13.063 2.751 0.720 + -12.421 1.147 -0.138 -13.650 0.264 0.194 -14.195 1.814 -0.628 -14.359 + 0.891 -1.062 -12.561 -0.219 -1.188 -11.766 -1.077 -0.536 -11.842 -0.065 + -2.220 -10.833 -0.872 -2.618 -10.376 1.248 -2.618 -10.805 1.893 -3.515 + -9.952 1.314 -3.775 -9.078 3.270 -3.772 -10.096 3.738 -4.444 -9.393 + 3.910 -3.200 -11.180 4.945 -3.477 -11.315 3.231 -2.387 -12.061 3.793 + -1.895 -12.841 1.851 -2.028 -11.932 2.721 1.799 -14.102 2.084 2.592 + -14.845 4.035 1.571 -14.235 4.529 0.927 -13.635 4.922 2.283 -15.156 + 4.394 2.598 -16.055 5.590 3.544 -14.505 6.181 3.223 -13.647 6.435 + 4.310 -15.535 7.339 3.739 -15.745 5.954 4.374 -16.511 6.603 5.319 + -15.158 4.514 4.424 -14.153 3.660 4.000 -14.270 6.007 1.309 -15.694 + 6.478 0.479 -14.898 6.369 1.398 -16.945 5.787 1.939 -17.568 7.489 + 0.635 -17.539 7.567 -0.285 -16.960 7.215 0.369 -18.955 6.352 -0.296 + -18.953 6.865 1.277 -19.446 8.307 -0.234 -19.741 9.021 0.418 -20.743 + 8.749 1.423 -21.029 9.900 -0.492 -21.338 10.618 -0.256 -22.007 9.770 + -1.756 -20.767 10.478 -2.904 -21.083 11.135 -2.951 -21.939 10.190 -4.106 + -20.301 10.659 -5.070 -20.439 9.214 -4.011 -19.223 9.043 -4.868 -18.589 + 8.569 -2.777 -18.953 7.967 -2.605 -18.073 8.839 -1.632 -19.729 8.804 + 1.471 -17.515 8.934 2.586 -18.015 9.873 0.886 -17.023 9.848 -0.059 + -16.666 11.124 1.577 -16.664 11.382 2.326 -17.413 10.991 2.456 -15.383 + 10.081 3.043 -15.502 10.722 1.823 -14.538 12.278 3.096 -14.994 13.028 + 2.338 -14.766 12.575 3.674 -15.869 12.195 4.076 -13.830 11.688 3.666 + -12.795 12.317 5.264 -14.056 12.310 0.638 -16.632 12.376 -0.189 -15.777 + 13.253 0.730 -17.568 13.097 1.386 -18.320 14.531 -0.045 -17.523 15.036 + 0.049 -18.485 15.520 0.624 -16.601 15.217 0.528 -15.559 16.445 0.059 + -16.712 15.857 2.046 -16.972 15.707 2.384 -18.113 16.262 2.881 -16.013 + 16.353 2.662 -15.032 16.316 3.866 -16.231 14.478 -1.536 -17.394 14.869 + -2.065 -16.392 13.775 -2.237 -18.311 13.383 -1.667 -19.047 13.521 -3.676 + -18.273 13.320 -4.055 -19.275 14.400 -4.247 -17.972 12.434 -4.110 -17.298 + 12.147 -5.311 -17.378 11.778 -3.194 -16.530 12.342 -2.374 -16.357 10.769 + -3.549 -15.562 10.367 -4.532 -15.808 11.288 -3.312 -14.185 12.335 -3.009 + -14.197 10.761 -2.510 -13.667 11.193 -4.565 -13.282 11.594 -4.266 -12.313 + 10.153 -4.799 -13.055 11.786 -5.949 -13.773 11.243 -6.298 -14.652 12.796 + -5.736 -14.122 11.906 -6.978 -12.629 12.540 -7.816 -12.922 12.421 -6.436 + -11.836 10.610 -7.613 -12.255 10.085 -7.021 -11.628 9.922 -7.913 -12.930 + 10.853 -8.415 -11.692 9.418 -2.839 -15.785 9.417 -1.652 -16.031 8.300 + -3.516 -15.545 8.537 -4.487 -15.406 7.135 -2.983 -14.943 6.956 -2.047 + -15.472 5.942 -3.928 -15.314 6.288 -4.961 -15.295 5.088 -3.908 -14.637 + 5.316 -3.671 -16.620 5.539 -4.319 -17.727 6.164 -5.192 -17.842 4.912 + -3.679 -18.707 4.909 -4.022 -19.657 4.194 -2.564 -18.397 3.336 -1.646 + -19.093 3.079 -1.783 -20.132 2.967 -0.432 -18.409 2.433 0.409 -18.827 + 3.322 -0.304 -17.087 2.917 0.598 -16.654 4.123 -1.278 -16.398 4.329 + -1.221 -15.339 4.573 -2.437 -17.038 7.430 -2.751 -13.406 7.852 -3.666 + -12.716 7.180 -1.506 -12.984 6.776 -0.801 -13.584 7.326 -1.026 -11.606 + 7.542 -1.903 -10.996 8.673 -0.178 -11.570 9.431 -0.903 -11.864 8.710 + 1.084 -12.477 9.460 1.766 -12.077 8.903 0.815 -13.515 7.713 1.518 + -12.554 8.989 0.074 -10.261 9.944 0.010 -10.184 6.201 -0.192 -11.091 + 5.491 0.509 -11.805 6.081 -0.197 -9.756 6.811 -0.687 -9.259 5.063 + 0.554 -8.978 4.196 0.697 -9.623 4.718 -0.275 -7.742 4.314 -1.245 + -8.030 5.515 -0.511 -7.036 3.611 0.346 -6.928 3.818 1.263 -5.927 + 4.712 1.748 -5.563 2.598 1.654 -5.368 2.442 2.197 -4.531 1.536 + 1.075 -6.032 0.207 1.216 -5.913 -0.187 1.811 -5.102 -0.672 0.552 + -6.837 -1.750 0.606 -6.859 -0.055 -0.063 -7.943 -0.640 -0.515 -8.730 + 1.339 -0.169 -8.049 1.891 -0.717 -8.797 2.146 0.267 -7.005 5.440 + 1.920 -8.526 6.503 2.106 -7.957 4.541 2.877 -8.757 3.746 2.723 + -9.361 4.682 4.285 -8.513 5.580 4.467 -7.922 4.924 5.038 -9.817 + 4.031 4.842 -10.411 4.863 6.125 -9.771 6.070 4.598 -10.715 5.965 + 3.586 -11.104 6.116 5.332 -11.520 7.469 4.750 -10.094 7.691 5.808 + -9.955 7.511 4.281 -9.111 8.514 4.186 -10.969 8.380 3.111 -11.090 + 8.551 4.578 -11.986 9.937 4.460 -10.599 10.557 4.305 -11.381 10.134 + 5.417 -10.346 10.115 3.830 -9.830 3.494 4.849 -7.673 2.364 4.452 + -7.908 3.753 5.974 -7.049 4.727 6.190 -6.891 2.957 6.491 -6.705 + 5.167 8.896 6.209 5.221 9.526 5.490 5.044 9.435 6.990 6.623 + -7.993 -11.703 6.110 -7.899 -12.506 7.233 -7.256 -11.721 2.275 -4.391 + 15.761 1.539 -4.888 16.120 1.865 -3.680 15.268 3.563 -12.385 6.571 + 4.065 -13.200 6.583 3.392 -12.223 5.643 -1.137 -3.439 8.292 -1.688 + -3.711 7.557 -0.464 -4.117 8.351 12.424 12.649 11.274 12.100 12.217 + 12.065 13.163 13.178 11.576 18.006 16.935 2.214 17.502 16.197 2.557 + 18.419 16.594 1.421 -4.837 -17.181 -7.175 -4.933 -17.617 -6.328 -5.329 + -16.365 -7.081 2.189 -2.078 14.165 2.269 -2.308 13.240 2.984 -1.580 + 14.357 9.792 2.225 16.346 9.255 1.490 16.640 9.191 2.776 15.844 + 13.870 -6.350 -7.674 14.695 -5.958 -7.960 13.763 -6.051 -6.771 9.368 + -16.581 12.288 9.378 -16.123 13.128 9.373 -17.509 12.521 19.953 8.495 + -4.175 20.499 8.526 -4.960 19.580 9.374 -4.107 -9.288 -9.905 -12.659 + -10.232 -10.047 -12.595 -9.193 -9.225 -13.325 9.605 -0.058 3.856 8.956 + 0.638 3.959 9.667 -0.189 2.910 -4.912 -16.095 -14.238 -4.374 -15.343 + -13.993 -5.813 -15.777 -14.172 -2.953 5.049 15.691 -2.917 5.876 16.172 + -2.260 5.124 15.035 2.769 2.470 7.350 2.013 2.352 6.775 3.515 + 2.173 6.829 20.539 2.528 3.823 20.333 3.348 3.374 21.304 2.187 + 3.359 1.284 9.951 12.609 1.693 9.718 13.443 1.029 9.112 12.225 + -5.284 11.604 -19.998 -4.807 10.782 -19.882 -4.603 12.276 -20.020 12.374 + 0.614 9.247 12.474 -0.213 9.719 13.270 0.924 9.113 0.805 6.910 + -0.859 0.699 6.063 -1.291 0.294 7.518 -1.393 -13.106 12.194 -0.393 + -12.213 11.860 -0.479 -13.562 11.858 -1.165 7.992 7.205 9.380 8.120 + 7.327 8.439 7.213 7.722 9.585 8.833 -14.651 -2.435 8.501 -15.269 + -1.784 8.340 -13.846 -2.274 -8.266 -7.724 -0.531 -7.873 -8.397 -1.088 + -7.542 -7.135 -0.320 16.358 -14.157 -2.888 17.177 -14.405 -3.316 15.901 + -14.986 -2.745 0.010 18.114 3.131 -0.556 17.932 2.381 -0.516 18.677 + 3.698 4.323 15.479 -9.915 4.537 14.607 -9.582 4.800 16.078 -9.341 + 16.028 -15.366 2.814 16.267 -15.569 3.718 16.557 -14.599 2.593 8.089 + 4.302 8.579 8.224 5.118 9.061 7.668 3.718 9.209 18.054 -10.814 + 2.113 17.253 -11.307 1.937 18.311 -11.082 2.995 10.676 11.439 13.138 + 10.240 10.901 13.798 9.970 11.944 12.735 -5.862 5.394 6.995 -5.514 + 5.091 6.157 -6.678 4.907 7.106 14.044 10.337 -2.429 13.148 10.533 + -2.702 14.195 9.440 -2.728 -14.306 14.188 -4.617 -14.710 14.271 -5.481 + -14.482 15.025 -4.189 8.104 -4.635 5.431 8.196 -4.463 6.369 8.558 + -3.907 5.008 11.926 0.667 17.492 12.643 1.114 17.941 11.245 1.334 + 17.405 -0.290 8.827 7.502 0.281 8.654 6.753 -0.889 8.081 7.524 + 17.609 8.065 6.040 18.150 8.814 6.292 17.893 7.853 5.150 9.504 + 22.093 -5.940 8.948 22.845 -6.147 10.393 22.394 -6.128 -14.726 -7.489 + -6.454 -14.992 -7.173 -5.590 -15.229 -8.293 -6.580 11.918 10.005 3.397 + 12.795 9.690 3.618 11.428 9.944 4.216 11.758 2.293 14.380 11.306 + 2.393 15.218 11.262 1.615 13.920 -11.472 -20.088 2.287 -11.318 -19.626 + 1.463 -11.013 -20.922 2.184 14.561 3.164 17.357 14.939 2.455 17.877 + 14.524 3.908 17.957 -7.555 17.089 -17.119 -7.297 17.936 -16.756 -6.990 + 16.456 -16.675 -15.458 14.063 9.609 -16.300 14.206 10.042 -15.630 14.243 + 8.685 8.184 -4.222 11.335 8.498 -4.951 11.871 7.365 -4.539 10.956 + 17.684 10.864 8.779 16.898 10.337 8.921 17.810 11.333 9.604 -17.087 + 0.870 -18.895 -16.442 1.357 -19.409 -17.933 1.183 -19.214 -0.133 -21.605 + 7.702 0.455 -21.471 6.959 -0.987 -21.772 7.304 7.617 -16.730 -9.894 + 8.289 -16.849 -9.223 7.018 -17.465 -9.766 1.892 -14.150 -10.817 1.256 + -13.533 -10.455 2.574 -13.596 -11.196 -2.093 17.538 1.322 -1.871 17.232 + 0.443 -2.497 18.394 1.183 0.560 -14.581 1.916 1.427 -14.176 1.946 + 0.497 -14.947 1.034 1.574 -18.623 -15.336 1.802 -19.343 -14.747 2.212 + -18.684 -16.047 18.716 6.324 -3.138 17.846 6.089 -3.461 18.976 7.074 + -3.672 -1.972 18.383 13.696 -1.647 17.595 14.131 -1.214 18.966 13.658 + 6.644 11.607 9.514 6.684 11.214 10.386 6.099 12.385 9.626 -9.824 + -2.992 5.776 -10.769 -2.949 5.631 -9.518 -2.098 5.624 -11.214 11.445 + 2.669 -11.124 11.108 1.778 -11.651 12.290 2.563 13.644 5.565 1.697 + 14.580 5.733 1.813 13.481 4.764 2.195 -3.608 -9.640 -12.285 -4.423 + -9.520 -12.773 -2.927 -9.661 -12.958 19.973 5.073 -0.805 19.402 5.454 + -1.472 20.654 4.621 -1.304 -16.709 5.246 3.131 -17.088 5.346 2.258 + -15.808 4.964 2.970 -15.601 3.955 -8.288 -15.476 3.019 -8.447 -14.953 + 4.172 -7.617 20.121 1.483 15.568 20.319 1.882 16.416 19.219 1.746 + 15.384 -5.261 18.790 -1.721 -5.071 17.881 -1.490 -6.199 18.888 -1.557 + -17.441 -0.815 -7.322 -16.801 -1.513 -7.463 -18.243 -1.141 -7.730 7.633 + -14.021 -9.201 7.248 -14.833 -9.530 8.416 -14.303 -8.728 -10.904 -17.998 + -10.378 -11.301 -17.173 -10.659 -10.368 -17.760 -9.622 2.062 -12.251 -4.097 + 2.806 -11.664 -4.231 1.308 -11.667 -4.010 0.691 20.712 10.961 0.524 + 21.649 10.857 0.271 20.309 10.201 -18.459 -5.911 1.236 -17.699 -5.460 + 1.602 -18.951 -5.225 0.786 -5.688 -11.362 3.073 -4.949 -11.621 3.624 + -5.406 -10.545 2.662 -18.977 14.353 -0.825 -18.294 13.683 -0.812 -18.711 + 14.953 -1.521 10.394 -6.993 10.988 10.312 -6.683 10.086 11.157 -6.529 + 11.333 -3.790 -19.823 1.108 -4.192 -20.619 0.759 -4.529 -19.246 1.300 + -9.195 12.385 -8.271 -8.689 12.306 -7.463 -10.105 12.443 -7.980 -4.004 + 4.924 -8.706 -4.444 5.631 -8.235 -4.521 4.810 -9.504 1.290 -19.197 + 8.042 0.599 -19.810 7.789 2.050 -19.467 7.526 -13.779 -3.475 11.518 + -14.488 -3.975 11.112 -13.273 -3.135 10.780 -1.811 -15.773 3.100 -1.169 + -16.483 3.086 -1.348 -15.024 2.726 -8.979 -12.963 14.377 -8.395 -12.786 + 15.114 -8.436 -12.822 13.602 -3.892 20.695 13.237 -4.397 20.363 12.495 + -3.907 19.981 13.875 -11.176 9.157 18.693 -11.351 8.221 18.592 -11.424 + 9.350 19.597 20.542 -5.998 -3.538 20.126 -6.812 -3.253 21.098 -5.743 + -2.802 12.155 -1.542 19.095 12.171 -2.374 18.622 12.079 -0.879 18.408 + 3.632 -20.027 6.825 4.094 -19.510 7.485 4.190 -19.978 6.049 7.720 + -10.665 -6.015 8.412 -11.327 -6.018 7.049 -11.018 -6.600 -9.244 18.176 + -2.844 -8.836 18.699 -2.154 -9.073 17.269 -2.591 12.619 -5.655 10.966 + 12.376 -4.802 10.606 13.504 -5.811 10.637 2.647 -9.412 -12.182 3.000 + -10.219 -12.557 2.971 -8.720 -12.758 -6.659 5.146 3.943 -7.130 5.959 + 3.760 -6.283 4.892 3.100 -14.930 -9.130 6.921 -14.566 -9.973 7.189 + -14.629 -8.515 7.590 -0.506 -7.482 -8.571 -0.371 -6.757 -9.181 0.004 + -8.203 -8.939 -7.430 -15.091 -13.898 -8.280 -15.095 -13.459 -7.258 -14.167 + -14.079 1.920 -16.654 8.453 1.101 -16.228 8.199 1.752 -17.588 8.334 + 12.469 -13.379 7.034 13.237 -13.912 6.830 12.754 -12.810 7.749 13.785 + -14.805 4.156 13.024 -14.758 3.578 14.531 -14.624 3.586 -17.939 -2.358 + -1.758 -18.285 -1.830 -2.478 -18.173 -1.869 -0.969 -4.175 15.990 -9.767 + -3.594 16.728 -9.953 -5.010 16.396 -9.536 -3.050 12.783 5.639 -3.543 + 12.063 6.032 -3.185 12.678 4.697 -18.121 3.789 -16.906 -18.622 3.130 + -17.387 -17.469 4.099 -17.535 -2.957 10.541 2.914 -3.701 11.057 3.226 + -3.115 9.662 3.257 -12.073 5.046 1.282 -11.576 5.019 0.464 -11.536 + 4.558 1.905 17.566 -5.663 10.252 17.932 -4.890 10.683 16.925 -6.004 + 10.875 11.667 15.795 -3.128 11.433 15.013 -2.628 11.519 15.549 -4.041 + 20.824 -7.767 4.113 21.776 -7.767 4.211 20.680 -7.856 3.171 16.735 + 13.461 -3.340 15.782 13.526 -3.273 16.983 14.178 -3.925 20.008 -8.575 + -2.784 20.691 -9.034 -3.273 20.149 -8.836 -1.873 -8.902 -16.837 -7.067 + -9.304 -17.697 -7.190 -9.197 -16.324 -7.819 -0.393 -7.188 -16.216 -1.125 + -7.627 -16.649 -0.783 -6.411 -15.815 -7.608 -0.592 -12.479 -7.062 -1.342 + -12.242 -8.263 -0.544 -11.782 5.024 -16.305 -14.574 4.903 -15.865 -13.733 + 4.188 -16.742 -14.738 7.509 -3.278 -1.535 7.413 -2.534 -2.130 8.388 + -3.613 -1.711 -8.380 14.962 6.202 -9.046 15.393 5.667 -8.035 15.658 + 6.761 -20.641 6.946 -7.153 -20.792 6.554 -6.293 -20.457 6.202 -7.726 + 4.005 18.208 -13.209 3.078 18.348 -13.019 4.109 17.257 -13.209 -4.835 + 6.768 17.356 -4.498 5.934 17.684 -5.273 6.543 16.535 -5.752 19.559 + -5.612 -6.307 19.989 -4.961 -4.962 20.098 -5.647 9.058 -18.212 3.187 + 8.158 -18.505 3.042 9.462 -18.921 3.687 -4.577 -9.160 1.679 -3.752 + -8.747 1.425 -5.219 -8.451 1.649 2.841 9.797 1.929 2.300 9.007 + 1.943 2.727 10.181 2.798 11.051 -9.671 -15.358 11.351 -10.109 -16.154 + 11.744 -9.838 -14.718 10.413 -12.300 -6.264 10.467 -12.901 -5.521 10.188 + -12.859 -7.008 -15.444 2.844 -0.911 -15.642 2.646 -1.826 -15.829 3.707 + -0.763 -7.422 16.539 3.474 -7.170 15.684 3.124 -6.703 16.779 4.058 + -2.002 21.515 -7.881 -2.696 21.100 -8.393 -2.072 22.446 -8.093 11.542 + -7.006 -5.068 10.733 -6.831 -4.586 11.340 -7.772 -5.605 2.936 -11.236 + 4.125 3.863 -11.122 3.916 2.546 -11.566 3.316 7.735 7.887 -6.057 + 7.319 7.958 -6.916 7.224 8.471 -5.495 2.299 -17.504 0.153 1.493 + -17.017 -0.018 2.207 -17.811 1.055 12.489 -4.662 4.878 11.687 -5.174 + 4.982 12.894 -4.672 5.745 -0.333 -1.337 -3.909 0.064 -1.492 -4.766 + 0.235 -0.687 -3.495 7.712 -4.451 24.258 7.033 -3.971 24.732 7.420 + -4.440 23.346 5.996 22.534 -3.712 5.716 21.669 -4.012 6.628 22.352 + -3.017 14.278 -0.984 -10.977 14.540 -0.070 -10.866 14.253 -1.113 -11.925 + 8.076 8.445 12.506 7.468 8.082 11.861 8.067 9.387 12.340 13.429 + 5.556 5.774 13.841 6.421 5.783 14.112 4.963 6.088 -13.263 6.607 + 12.553 -13.747 6.203 11.833 -12.805 5.879 12.972 7.234 -16.911 19.399 + 6.309 -16.704 19.268 7.673 -16.544 18.632 8.638 2.666 0.978 8.013 + 2.060 0.579 8.232 2.915 1.808 9.978 -4.921 -0.607 9.711 -5.189 + 0.272 10.810 -4.466 -0.477 -11.671 -1.054 -15.223 -11.580 -0.273 -15.769 + -11.546 -1.785 -15.828 14.771 -11.325 -10.687 15.344 -11.545 -9.953 14.060 + -10.819 -10.293 6.331 -19.781 -0.576 6.343 -18.853 -0.342 5.439 -20.067 + -0.376 13.565 1.498 -2.712 13.913 1.525 -1.820 14.305 1.747 -3.265 + -9.323 0.280 -19.494 -8.870 -0.062 -20.265 -10.252 0.199 -19.707 3.990 + -9.389 0.814 4.484 -9.550 0.010 3.632 -10.245 1.050 -21.368 -1.337 + 9.585 -20.639 -0.782 9.310 -21.284 -1.387 10.538 12.902 -17.532 14.163 + 12.154 -17.746 13.605 13.484 -17.023 13.598 -18.536 12.715 5.012 -19.051 + 13.490 5.236 -18.629 12.138 5.770 -12.591 -4.653 3.791 -12.409 -4.973 + 4.675 -12.434 -3.710 3.841 -9.236 -9.999 4.059 -8.980 -10.871 4.357 + -9.139 -10.033 3.107 10.832 -13.776 -0.157 11.146 -14.541 0.324 10.466 + -14.135 -0.965 9.627 -5.353 -8.170 9.095 -6.096 -7.885 9.846 -4.891 + -7.360 8.698 -3.965 8.138 7.857 -4.252 8.495 8.564 -3.042 7.921 + 15.516 -12.425 1.515 15.884 -12.703 0.676 14.573 -12.558 1.419 -2.501 + 10.236 9.663 -3.331 10.166 9.193 -1.833 10.082 8.995 18.493 -7.455 + -13.773 18.780 -7.690 -12.891 19.306 -7.309 -14.258 -20.107 -12.004 7.975 + -19.675 -12.439 8.710 -20.308 -12.712 7.362 -18.552 -10.692 2.574 -17.647 + -10.593 2.870 -18.778 -9.838 2.205 16.786 -4.158 2.159 17.549 -4.411 + 2.679 16.430 -4.986 1.839 -12.567 -15.389 -2.499 -13.500 -15.312 -2.299 + -12.497 -15.128 -3.417 14.650 9.360 3.206 15.404 9.901 3.441 14.712 + 8.599 3.783 6.366 -11.975 -8.086 6.698 -12.685 -8.636 5.430 -12.157 + -8.000 -2.129 2.911 23.056 -2.046 3.862 22.987 -3.004 2.772 23.416 + 16.155 5.871 3.152 16.350 5.072 2.662 16.109 5.587 4.065 -13.696 + 17.187 -10.362 -14.520 17.355 -10.820 -13.186 16.658 -10.974 18.254 8.056 + 3.286 17.820 7.203 3.312 18.924 7.964 2.609 9.985 -13.767 -15.310 + 10.650 -13.480 -15.936 9.387 -14.308 -15.826 13.924 9.706 7.369 13.104 + 9.596 6.888 13.675 10.185 8.159 12.085 -15.779 2.169 12.446 -16.656 + 2.039 11.138 -15.912 2.202 -5.256 2.309 -6.956 -6.140 2.274 -6.590 + -4.771 2.876 -6.355 -18.536 -7.332 -2.131 -17.844 -6.964 -1.582 -19.341 + -6.935 -1.798 -12.848 -1.616 -7.185 -12.646 -2.551 -7.179 -12.457 -1.292 + -7.996 11.680 -2.679 -4.730 12.356 -2.019 -4.885 11.382 -2.510 -3.836 + -20.125 -9.603 -3.828 -19.549 -9.282 -3.135 -19.829 -10.499 -3.990 9.619 + 5.208 -3.871 10.388 5.738 -3.666 9.346 4.845 -3.029 4.974 -6.619 + -3.787 5.102 -6.277 -2.902 5.775 -7.107 -3.973 8.222 -18.605 6.216 + 8.224 -18.396 7.150 9.135 -18.810 6.014 12.543 13.805 -10.518 12.919 + 13.081 -11.020 12.903 13.699 -9.638 17.791 -9.383 -4.372 18.449 -9.779 + -4.943 18.296 -8.990 -3.661 10.943 4.831 14.024 10.365 5.034 13.289 + 11.220 3.928 13.868 -17.863 -7.459 -6.436 -18.193 -8.261 -6.031 -17.151 + -7.176 -5.863 3.620 -9.512 10.054 3.396 -10.264 10.603 3.044 -9.591 + 9.293 4.586 21.054 8.124 4.959 20.766 7.290 4.166 20.271 8.480 + -20.175 -8.099 1.297 -19.476 -7.445 1.304 -20.575 -8.013 0.432 0.293 + -8.642 8.232 0.751 -9.480 8.293 0.437 -8.355 7.331 12.458 7.804 + -0.622 12.479 7.065 -0.013 13.141 8.395 -0.305 -6.130 -1.905 5.526 + -6.576 -2.709 5.789 -5.637 -1.639 6.303 5.639 1.397 9.053 4.914 + 1.998 9.228 6.286 1.598 9.729 19.864 -12.791 -0.049 18.984 -12.426 + -0.134 20.010 -13.259 -0.871 -5.539 2.584 1.960 -5.449 2.976 2.829 + -4.933 1.843 1.968 8.003 4.225 -20.236 7.649 4.212 -19.346 8.943 + 4.081 -20.122 17.749 -4.014 -11.224 16.806 -3.955 -11.071 18.143 -3.607 + -10.453 2.587 18.651 -9.780 2.524 17.751 -9.461 2.158 18.633 -10.635 + 0.117 -1.684 2.794 0.764 -1.410 3.445 -0.371 -0.886 2.591 -8.147 + -5.029 -2.574 -7.607 -4.239 -2.548 -7.757 -5.564 -3.264 1.552 -5.418 + 6.297 1.479 -6.313 5.966 2.327 -5.434 6.859 18.567 -3.732 11.545 + 18.809 -3.754 12.471 18.625 -2.808 11.304 15.662 -6.220 12.060 15.038 + -6.928 12.218 15.892 -5.904 12.934 12.038 10.530 9.422 12.067 9.837 + 10.081 11.382 11.145 9.750 5.513 -16.996 1.035 4.612 -16.692 0.927 + 5.974 -16.248 1.415 14.135 -11.510 -6.590 14.204 -10.970 -7.378 13.327 + -12.008 -6.712 14.410 9.863 11.506 14.601 10.459 12.231 14.520 10.399 + 10.721 16.784 -10.068 -1.859 16.820 -9.116 -1.770 16.216 -10.218 -2.614 + -18.673 3.122 11.605 -18.956 2.385 12.147 -19.481 3.463 11.223 -2.868 + -6.122 1.811 -2.023 -6.038 2.252 -3.209 -5.229 1.774 -15.256 6.466 + -6.491 -14.601 7.132 -6.285 -15.449 6.599 -7.420 5.333 6.042 -3.843 + 5.632 6.048 -2.933 6.072 5.684 -4.335 -9.278 12.017 14.450 -9.290 + 11.868 15.396 -8.753 12.809 14.339 10.736 14.383 8.953 11.143 13.887 + 9.664 11.369 15.071 8.748 -20.610 8.716 0.743 -20.256 9.600 0.645 + -20.222 8.390 1.555 -16.590 -13.510 7.547 -17.127 -13.498 8.339 -15.828 + -14.041 7.782 5.339 -2.761 -0.049 5.466 -3.419 0.634 6.154 -2.776 + -0.551 -13.820 12.924 -9.627 -12.946 13.191 -9.913 -14.417 13.471 -10.136 + -16.640 2.052 -3.377 -17.377 2.322 -2.828 -16.302 2.869 -3.743 13.581 + -0.946 -5.004 13.518 -0.622 -5.903 13.438 -0.171 -4.460 16.395 -12.479 + -8.281 17.234 -12.477 -7.822 15.754 -12.239 -7.612 -5.795 7.120 -3.796 + -6.514 6.686 -4.254 -5.994 6.999 -2.868 14.803 7.847 5.580 14.422 + 8.539 6.120 15.662 7.685 5.970 19.626 15.488 0.750 19.701 14.622 + 0.349 20.488 15.649 1.135 4.952 7.122 -13.616 4.949 6.189 -13.405 + 4.209 7.480 -13.130 11.016 9.531 -2.064 11.196 8.850 -1.415 11.060 + 10.349 -1.570 4.908 -16.055 17.201 4.909 -16.974 17.469 4.934 -15.567 + 18.024 8.440 0.808 7.280 8.663 1.639 7.700 7.883 1.055 6.541 + -6.081 5.039 0.930 -7.021 4.911 0.803 -5.746 4.167 1.136 2.752 + -2.426 -4.209 3.699 -2.315 -4.295 2.643 -2.925 -3.399 5.996 -4.529 + 1.720 6.913 -4.791 1.803 5.548 -5.318 1.414 -18.156 -11.874 -1.351 + -18.909 -11.581 -0.839 -17.601 -12.333 -0.720 -19.196 -1.998 -9.347 -19.005 + -2.927 -9.477 -20.152 -1.950 -9.331 -16.354 9.293 2.313 -15.714 9.762 + 1.779 -15.835 8.885 3.007 15.198 -7.696 -2.088 15.149 -6.754 -2.253 + 14.514 -8.071 -2.643 16.257 13.363 0.903 16.518 12.572 0.431 15.353 + 13.195 1.170 -5.399 -16.839 5.537 -5.612 -17.418 6.269 -6.217 -16.379 + 5.350 5.955 -7.632 10.065 5.327 -8.337 9.912 6.764 -8.081 10.312 + 6.649 24.074 2.441 6.675 23.683 1.568 6.710 23.330 3.040 9.624 + -14.932 -7.310 9.313 -15.403 -6.537 10.576 -15.030 -7.282 5.423 -14.422 + 19.662 4.536 -14.063 19.694 5.927 -13.769 19.177 -2.668 -8.302 -16.873 + -2.494 -8.211 -17.810 -2.903 -9.222 -16.761 20.702 10.313 4.302 20.100 + 9.843 4.880 21.263 10.812 4.895 7.171 -11.217 14.078 6.642 -11.431 + 13.309 6.769 -10.422 14.431 -13.467 3.371 21.991 -12.830 2.733 21.668 + -13.047 4.220 21.853 5.420 -9.487 18.966 4.732 -9.397 18.306 5.401 + -8.658 19.445 -9.100 -9.716 14.377 -9.431 -9.898 13.497 -8.402 -10.357 + 14.508 -1.756 16.689 16.340 -2.076 15.932 15.849 -2.322 16.733 17.110 + 15.722 -0.402 -1.510 15.608 -0.820 -0.656 16.667 -0.275 -1.590 -10.287 + 4.492 20.872 -11.066 4.965 20.579 -10.346 4.500 21.827 -7.096 4.783 + 18.367 -6.564 5.440 18.817 -7.890 4.714 18.896 0.141 -5.316 -22.692 + 0.166 -4.709 -21.952 0.503 -4.816 -23.423 15.918 -6.185 0.328 15.966 + -7.086 0.009 15.378 -5.731 -0.319 -6.705 14.728 -3.477 -6.913 15.524 + -3.967 -7.520 14.505 -3.027 -6.046 -14.357 -7.628 -5.406 -13.967 -8.223 + -6.831 -13.818 -7.733 14.042 -5.985 -4.713 13.242 -6.506 -4.789 13.967 + -5.555 -3.861 8.875 -8.142 -7.496 8.965 -9.033 -7.833 9.029 -8.226 + -6.555 -7.038 -17.035 -2.378 -7.573 -16.349 -1.979 -7.227 -16.973 -3.314 + -15.330 -18.753 -4.187 -14.501 -18.560 -3.748 -15.307 -19.698 -4.337 14.235 + -15.082 13.097 13.674 -14.335 13.305 13.835 -15.473 12.321 18.530 -13.606 + 5.180 18.788 -14.421 5.610 18.510 -13.823 4.247 -1.613 4.446 -4.161 + -1.070 3.787 -4.595 -2.508 4.124 -4.263 15.792 -16.067 0.194 15.840 + -15.765 1.101 15.994 -15.290 -0.328 3.181 2.353 -22.397 3.223 3.058 + -21.750 4.086 2.055 -22.485 17.479 10.475 1.119 17.080 9.608 1.047 + 17.702 10.712 0.218 6.666 16.877 -1.003 7.296 16.519 -0.377 5.825 + 16.835 -0.547 6.766 -5.882 -1.738 6.851 -4.938 -1.875 7.659 -6.217 + -1.822 6.064 -19.420 -4.050 5.661 -19.301 -4.910 5.591 -20.158 -3.664 + -16.078 -6.514 -4.332 -16.231 -6.682 -3.403 -15.892 -5.576 -4.378 -14.648 + 3.207 -15.172 -14.207 3.081 -16.012 -15.351 3.829 -15.361 -5.248 10.372 + -3.799 -4.885 10.194 -2.932 -5.873 9.663 -3.948 12.915 -2.075 0.959 + 12.658 -2.291 1.855 12.152 -1.629 0.591 7.782 -2.515 -8.860 7.404 + -3.393 -8.904 8.696 -2.635 -9.119 -20.265 -0.703 -17.477 -20.304 -0.356 + -16.586 -20.201 -1.651 -17.363 -15.442 -3.475 -1.445 -16.306 -3.069 -1.384 + -15.548 -4.328 -1.024 15.097 -3.801 -10.511 14.720 -4.251 -9.755 14.943 + -2.872 -10.338 -13.274 15.957 -7.584 -13.434 16.636 -6.928 -13.536 16.359 + -8.413 6.649 22.791 0.000 7.409 22.640 -0.562 6.011 23.220 -0.570 + 13.584 -8.180 5.707 13.110 -7.371 5.512 13.930 -8.464 4.861 15.085 + -2.417 4.127 14.466 -2.906 4.670 15.684 -3.082 3.788 21.039 -0.904 + 1.805 21.708 -0.771 2.477 20.859 -0.026 1.469 -3.041 -14.144 0.472 + -2.847 -15.075 0.365 -3.277 -14.052 1.395 0.362 -16.658 -10.963 0.662 + -15.785 -11.216 0.332 -16.633 -10.006 7.878 0.434 16.842 6.995 0.704 + 16.588 7.812 -0.513 16.966 -6.147 -9.815 -4.501 -6.458 -10.692 -4.277 + -5.231 -9.807 -4.223 19.787 2.714 -8.879 19.792 1.971 -8.275 20.577 + 3.207 -8.659 16.217 0.884 1.626 16.881 0.198 1.697 15.666 0.765 + 2.399 17.494 12.430 5.661 18.043 11.920 6.256 17.314 11.836 4.932 + -7.288 -2.275 -3.903 -7.173 -1.327 -3.829 -8.187 -2.383 -4.213 14.136 + -3.292 -6.943 13.958 -3.444 -6.015 13.284 -3.067 -7.316 -6.670 6.999 + -23.625 -7.127 6.254 -23.234 -7.363 7.517 -24.033 6.316 2.556 -2.909 + 6.196 2.097 -3.740 7.256 2.733 -2.866 -14.857 0.850 -13.344 -15.048 + 1.320 -14.155 -15.545 0.187 -13.284 10.207 6.152 16.306 9.255 6.130 + 16.205 10.535 5.586 15.608 5.518 -13.263 9.393 5.952 -12.975 8.590 + 5.916 -14.111 9.590 1.315 -6.029 21.306 0.429 -6.180 21.636 1.882 + -6.495 21.920 -8.947 8.963 1.000 -8.834 8.239 1.616 -9.149 8.539 + 0.166 -17.489 -13.223 -9.902 -16.932 -13.739 -9.319 -17.107 -12.345 -9.884 + 6.805 -12.951 -0.886 5.963 -13.016 -1.337 6.754 -13.603 -0.187 4.016 + 3.873 21.387 4.026 2.934 21.574 3.918 4.287 22.245 -3.596 -3.825 + 19.990 -2.846 -4.143 20.492 -3.517 -2.871 20.019 -17.412 -2.936 8.782 + -16.640 -2.463 8.471 -18.145 -2.353 8.588 1.178 13.855 -12.250 1.964 + 13.503 -12.668 0.453 13.430 -12.708 -2.565 -8.710 -5.049 -2.964 -8.653 + -5.917 -1.677 -8.373 -5.170 -19.643 -8.203 -8.619 -19.321 -7.682 -7.884 + -19.411 -9.104 -8.394 16.756 3.510 1.845 17.372 3.366 2.564 16.358 + 2.653 1.694 8.324 -18.551 -14.787 7.552 -18.111 -15.143 8.561 -18.033 + -14.018 -15.726 -15.979 5.531 -15.249 -15.991 6.361 -15.042 -15.988 4.862 + -18.352 6.676 9.499 -19.189 7.138 9.554 -17.991 6.728 10.384 5.148 + -3.230 24.942 4.880 -2.796 25.752 4.638 -2.796 24.258 16.767 -5.171 + 5.748 17.379 -5.325 6.468 16.126 -5.878 5.823 -12.417 -2.177 4.834 + -13.302 -1.911 5.085 -11.940 -1.353 4.730 -16.888 -3.242 11.650 -17.667 + -3.773 11.811 -17.090 -2.756 10.850 -19.264 -4.414 11.905 -19.901 -4.360 + 12.617 -18.932 -5.311 11.948 -18.340 3.947 8.448 -18.978 3.271 8.676 + -18.722 4.759 8.781 -20.451 -3.704 -2.171 -20.084 -3.368 -2.989 -19.733 + -3.637 -1.541 18.842 1.670 0.559 18.675 0.930 -0.024 18.106 2.263 + 0.411 2.929 14.674 -3.806 3.312 15.411 -3.329 3.675 14.252 -4.232 + -12.910 -9.016 -11.561 -12.449 -9.652 -12.108 -12.722 -8.170 -11.966 -10.689 + 17.150 -8.282 -11.100 16.511 -7.700 -10.852 16.812 -9.163 -17.964 -14.708 + 3.235 -17.502 -14.448 4.032 -17.674 -15.606 3.073 2.891 4.695 -4.314 + 2.225 5.276 -4.683 3.696 5.213 -4.330 12.788 -4.720 7.529 12.267 + -4.064 7.992 13.609 -4.762 8.019 -7.005 -10.146 12.254 -6.670 -9.682 + 11.487 -6.424 -9.882 12.967 17.161 1.850 15.979 17.046 1.194 15.292 + 17.511 1.360 16.723 11.356 14.673 -5.719 10.477 14.455 -6.030 11.790 + 13.826 -5.617 -19.634 6.858 14.489 -19.805 5.965 14.791 -19.230 6.747 + 13.629 3.755 6.011 10.645 2.923 5.641 10.938 3.565 6.375 9.781 + 14.579 9.647 -11.073 13.965 9.846 -10.366 14.155 8.946 -11.568 1.628 + -6.861 3.271 1.021 -6.148 3.472 1.192 -7.359 2.579 -5.191 0.640 + 22.205 -5.827 1.353 22.256 -5.709 -0.154 22.335 -10.122 -2.780 -1.565 + -9.387 -3.347 -1.799 -10.896 -3.330 -1.686 -15.573 0.064 -10.853 -15.024 + 0.235 -11.619 -15.230 -0.751 -10.489 11.204 5.320 3.951 11.760 5.421 + 4.724 11.626 4.630 3.440 0.189 -2.798 -17.064 -0.370 -3.440 -17.502 + -0.409 -2.095 -16.807 -20.352 6.433 -2.515 -19.962 7.083 -3.099 -21.204 + 6.240 -2.905 18.893 -16.110 -1.394 19.056 -15.237 -1.036 18.547 -15.947 + -2.272 6.632 -6.329 -7.178 7.164 -6.515 -6.404 6.317 -7.186 -7.464 + 9.246 2.542 -8.388 8.326 2.313 -8.518 9.648 1.739 -8.058 10.928 + 7.059 10.243 10.017 6.998 9.956 10.962 7.862 10.763 21.020 5.093 + -5.483 20.509 4.914 -6.272 21.711 4.431 -5.488 -10.890 -5.322 -3.773 + -11.366 -4.667 -3.264 -9.995 -5.284 -3.436 10.893 -10.754 -2.623 11.156 + -10.938 -1.722 11.085 -11.562 -3.099 -6.149 8.723 -12.137 -6.013 9.669 + -12.196 -5.358 8.343 -12.520 11.657 -16.982 -15.520 11.009 -17.495 -16.003 + 11.283 -16.101 -15.480 -9.603 17.987 3.285 -8.822 17.504 3.014 -9.690 + 17.798 4.219 13.998 -11.138 5.891 13.959 -10.201 6.080 13.343 -11.527 + 6.471 10.642 7.109 -10.995 10.700 8.062 -11.053 10.386 6.830 -11.874 + -3.040 -4.205 -15.788 -3.877 -3.874 -16.113 -2.900 -5.020 -16.270 -17.124 + 13.023 -5.332 -16.446 13.384 -5.903 -16.984 12.077 -5.361 8.388 -6.547 + -15.482 8.031 -6.993 -14.714 9.003 -7.176 -15.860 15.219 9.656 -5.187 + 15.193 9.145 -5.996 15.421 9.016 -4.505 -16.817 12.256 12.244 -16.477 + 13.145 12.141 -16.409 11.759 11.535 12.832 7.032 -9.646 11.931 7.071 + -9.968 13.358 6.867 -10.428 3.491 -15.447 -5.819 2.719 -14.936 -5.576 + 3.152 -16.325 -5.995 -10.694 16.888 -4.873 -9.934 17.219 -4.394 -10.322 + 16.325 -5.552 -18.030 4.728 -2.557 -17.382 4.955 -1.889 -18.783 5.285 + -2.359 -17.008 -9.765 -2.937 -17.414 -8.973 -2.585 -17.228 -10.448 -2.304 + 15.529 -2.106 0.690 15.801 -2.730 1.362 14.575 -2.075 0.763 18.832 + 7.370 -11.668 19.213 8.183 -12.000 18.877 7.456 -10.716 7.408 5.335 + -5.435 7.517 6.257 -5.668 8.174 5.131 -4.898 -11.469 11.592 11.436 + -12.140 10.950 11.667 -11.960 12.341 11.099 16.741 -5.738 -7.858 17.670 + -5.703 -8.086 16.720 -6.178 -7.008 19.716 -4.066 6.015 20.389 -3.974 + 6.690 19.159 -4.778 6.328 -2.864 -2.114 6.522 -3.613 -2.134 7.118 + -2.228 -1.545 6.955 -10.850 -6.829 -8.103 -11.576 -6.708 -7.490 -10.313 + -7.514 -7.705 14.728 -8.149 -14.185 14.713 -7.498 -14.888 15.273 -7.753 + -13.505 7.083 -10.125 -3.442 7.253 -10.414 -4.338 7.937 -10.163 -3.011 + -9.652 6.741 9.197 -8.851 6.911 8.701 -9.778 7.529 9.726 18.417 + -11.787 -11.306 18.837 -12.114 -10.511 17.991 -10.974 -11.035 -8.106 -2.285 + -15.021 -7.844 -1.773 -14.256 -8.468 -1.640 -15.629 -3.972 6.912 20.818 + -4.074 6.182 20.207 -3.876 7.682 20.257 16.263 -7.269 -5.635 16.480 + -7.825 -4.887 15.501 -6.766 -5.346 -4.460 17.509 3.062 -3.751 17.013 + 2.651 -4.502 18.325 2.562 -20.279 -11.260 0.171 -20.021 -11.433 1.076 + -21.131 -11.686 0.080 11.102 -9.596 -6.141 11.184 -10.531 -5.951 11.105 + -9.544 -7.096 -2.439 -14.801 -10.868 -2.072 -15.236 -11.638 -2.574 -15.506 + -10.235 -17.095 -14.381 0.500 -17.377 -14.327 1.413 -16.968 -15.316 0.343 + 13.183 -10.374 11.512 13.443 -9.556 11.935 13.938 -10.952 11.623 -5.338 + 4.178 -11.208 -6.075 4.453 -11.754 -4.600 4.116 -11.814 -8.995 8.635 + 5.636 -9.792 8.199 5.937 -8.431 8.663 6.410 -7.713 2.216 5.222 + -7.498 1.534 4.585 -7.026 2.873 5.110 18.567 -9.993 -8.455 18.906 + -9.817 -7.578 18.919 -10.854 -8.680 15.307 -5.378 -15.107 15.694 -5.321 + -14.234 15.117 -4.470 -15.345 5.741 11.777 14.777 6.392 11.939 15.460 + 5.530 12.646 14.436 19.342 1.199 -16.720 19.443 0.748 -17.558 20.094 + 0.913 -16.201 20.234 -4.335 -5.568 19.322 -4.453 -5.831 20.322 -4.853 + -4.768 6.015 18.323 -4.050 5.647 17.780 -3.353 6.803 18.707 -3.663 + 5.240 -10.613 16.013 4.554 -11.208 16.317 4.955 -9.748 16.308 3.667 + 22.041 -10.042 2.749 21.838 -9.863 4.085 21.187 -10.152 -11.734 -7.970 + 10.338 -12.000 -7.449 11.096 -12.388 -7.769 9.668 20.677 2.786 7.487 + 20.708 2.012 8.050 20.603 2.434 6.600 17.792 -9.015 -10.769 18.166 + -8.181 -11.054 18.065 -9.100 -9.855 -2.617 13.636 0.628 -3.536 13.373 + 0.568 -2.565 14.140 1.440 -2.100 -22.239 -11.333 -3.047 -22.166 -11.451 + -1.731 -21.906 -12.151 -20.767 0.187 -15.095 -20.606 0.983 -14.588 -20.954 + -0.482 -14.436 16.656 5.334 -11.766 17.356 5.077 -12.367 17.042 6.026 + -11.230 7.325 23.761 -9.110 6.899 23.635 -8.262 8.222 24.014 -8.892 + -11.249 10.182 14.720 -11.664 10.105 13.861 -10.843 11.049 14.713 -17.027 + -7.124 -13.719 -17.299 -8.016 -13.502 -16.659 -6.781 -12.904 6.981 1.178 + -5.378 6.678 1.679 -6.136 7.496 0.464 -5.753 12.894 -11.920 -0.066 + 12.199 -12.505 0.238 13.046 -12.181 -0.974 1.188 -8.167 15.455 0.774 + -7.342 15.709 1.920 -7.906 14.896 -11.549 3.727 -13.917 -11.782 4.156 + -14.740 -10.795 4.221 -13.595 -18.825 -1.175 0.641 -19.777 -1.108 0.567 + -18.643 -0.980 1.560 9.094 -11.442 -0.422 9.471 -12.150 0.101 8.245 + -11.780 -0.706 12.086 2.979 6.557 11.132 2.963 6.488 12.309 3.909 + 6.586 -0.426 -9.217 12.473 -0.834 -8.931 11.656 -0.171 -10.125 12.309 + -12.402 -0.585 -12.587 -13.316 -0.324 -12.699 -12.102 -0.791 -13.472 -4.543 + 17.936 14.908 -3.645 18.268 14.942 -5.031 18.507 15.501 19.646 -9.760 + 0.107 20.441 -10.257 -0.083 19.325 -10.128 0.931 19.317 6.205 14.774 + 19.209 6.547 13.887 18.749 5.435 14.805 1.172 -7.957 -18.111 1.383 + -7.080 -18.432 0.761 -7.808 -17.260 -15.644 -11.155 -11.078 -15.719 -10.298 + -10.658 -15.782 -10.979 -12.008 17.311 -12.236 -5.437 17.077 -11.357 -5.137 + 17.208 -12.789 -4.662 1.788 4.247 4.256 1.943 3.732 3.464 2.088 + 3.685 4.970 -6.440 -0.625 -21.017 -6.326 0.291 -21.270 -6.448 -1.104 + -21.845 8.875 19.524 -8.786 9.290 18.862 -8.234 8.848 19.128 -9.657 + -0.192 -0.701 6.892 0.009 -1.304 7.607 0.037 -1.185 6.098 -13.165 + -11.360 6.607 -12.472 -10.704 6.534 -13.296 -11.671 5.711 -6.080 5.841 + 15.033 -6.821 5.293 15.291 -5.310 5.301 15.210 19.422 -4.210 -8.724 + 20.028 -4.874 -8.394 19.983 -3.569 -9.160 6.694 -8.086 14.013 7.089 + -8.666 13.362 7.358 -8.006 14.698 -10.080 -11.873 8.403 -9.586 -11.691 + 9.203 -10.923 -12.205 8.713 -6.418 -17.052 11.981 -5.538 -17.304 11.701 + -6.297 -16.701 12.863 -1.469 -6.525 13.799 -0.884 -7.278 13.724 -1.349 + -6.045 12.980 8.433 -11.167 4.323 8.101 -10.923 5.187 8.817 -12.035 + 4.451 -5.732 -19.162 7.435 -6.601 -19.561 7.378 -5.836 -18.451 8.067 + -1.664 4.170 1.639 -1.097 4.877 1.945 -1.968 4.462 0.779 18.824 + -4.391 -16.847 18.458 -5.242 -17.090 18.906 -4.430 -15.894 -11.661 3.239 + 5.772 -12.588 3.476 5.734 -11.369 3.553 6.628 6.374 9.064 16.429 + 6.611 8.249 15.987 6.347 9.717 15.729 -3.703 0.592 2.522 -3.508 + -0.182 1.993 -2.848 0.899 2.823 -15.328 4.532 -4.460 -14.396 4.572 + -4.247 -15.390 4.918 -5.334 -7.327 -0.676 13.974 -8.162 -1.013 13.649 + -7.391 -0.755 14.926 -16.550 -9.861 4.815 -16.032 -9.536 5.552 -17.458 + -9.700 5.071 4.766 20.972 5.178 4.838 20.248 4.556 5.359 21.642 + 4.837 -11.790 -4.195 -6.701 -11.651 -4.932 -6.106 -11.349 -4.454 -7.510 + -9.665 1.602 12.881 -9.801 2.016 13.734 -10.286 2.042 12.300 5.574 + -10.963 3.053 5.703 -10.061 2.762 6.458 -11.289 3.222 5.973 14.335 + 13.231 6.106 14.989 12.545 5.516 14.808 13.927 -16.410 -11.783 -7.745 + -16.698 -11.573 -6.857 -15.584 -11.311 -7.847 12.628 -16.738 5.680 13.114 + -16.199 5.056 13.102 -16.636 6.505 8.455 -15.037 14.485 8.148 -14.431 + 15.159 7.824 -15.757 14.506 20.782 0.657 5.532 19.855 0.443 5.429 + 20.893 1.478 5.053 -7.572 -7.345 -3.851 -6.774 -6.882 -3.598 -7.260 + -8.130 -4.301 -14.335 1.354 2.213 -15.107 1.088 1.714 -13.594 1.038 + 1.696 18.410 -0.730 -0.728 19.224 -0.848 -1.219 18.018 -1.603 -0.700 + 18.682 -4.590 -14.131 18.380 -5.391 -13.703 18.013 -3.939 -13.921 19.962 + -3.182 13.891 19.263 -2.853 14.455 20.069 -2.506 13.222 1.100 12.506 + 2.218 1.641 13.296 2.234 0.732 12.485 1.334 0.437 1.785 6.112 + -0.357 2.259 6.355 0.279 0.887 6.403 1.051 -14.395 -5.275 1.457 + -13.620 -4.888 0.574 -14.802 -4.552 20.406 -1.267 -12.891 19.702 -1.261 + -12.242 19.955 -1.220 -13.734 4.109 19.716 -1.400 3.427 20.233 -0.973 + 4.144 20.055 -2.294 19.681 -4.936 3.343 19.448 -4.641 4.223 19.751 + -5.888 3.421 17.671 -15.461 -11.048 17.701 -14.717 -10.447 18.033 -16.190 + -10.544 -2.106 -10.210 -10.249 -2.772 -10.078 -10.923 -1.650 -9.370 -10.195 + -7.212 5.609 -12.461 -7.040 6.416 -12.947 -8.062 5.311 -12.786 -17.628 + -0.140 -16.233 -17.992 0.079 -17.091 -16.724 0.172 -16.269 -3.505 -14.789 + -4.225 -4.114 -14.221 -3.754 -3.103 -14.217 -4.880 -17.015 -0.712 -13.709 + -17.494 -0.645 -14.535 -17.592 -1.219 -13.138 3.880 5.866 2.313 3.086 + 6.380 2.165 3.787 5.535 3.206 19.973 4.464 2.057 20.345 5.269 + 2.417 20.026 4.579 1.108 -7.981 -3.703 8.083 -8.273 -4.331 8.744 + -8.785 -3.423 7.646 -13.691 -12.995 -11.207 -14.355 -12.315 -11.314 -14.180 + -13.817 -11.249 -17.871 14.400 10.578 -18.346 15.205 10.374 -18.514 13.849 + 11.024 1.535 -11.087 8.279 2.085 -11.734 7.835 1.043 -11.594 8.924 + -15.687 13.976 -7.388 -14.845 14.269 -7.735 -16.294 14.068 -8.122 -0.902 + 10.957 -6.860 -1.394 10.728 -6.071 -1.334 11.744 -7.192 2.836 -3.316 + -0.713 3.736 -3.164 -0.422 2.512 -4.007 -0.135 -4.548 6.609 -20.551 + -4.399 7.003 -21.410 -4.523 5.666 -20.713 -7.881 -12.072 -8.212 -8.423 + -11.776 -8.943 -7.235 -11.375 -8.094 0.217 7.962 -14.399 0.180 8.914 + -14.307 0.728 7.818 -15.196 3.836 0.007 5.520 4.375 0.755 5.263 + 4.362 -0.452 6.175 -4.868 -8.728 10.381 -3.966 -8.880 10.101 -5.359 + -8.634 9.565 15.156 0.367 9.474 15.304 -0.036 8.619 16.034 0.497 + 9.833 -4.542 -15.293 9.529 -4.775 -14.772 8.761 -5.156 -16.028 9.514 + -1.070 11.203 -2.060 -1.311 12.039 -1.660 -0.346 11.419 -2.648 -7.544 + -16.187 -4.869 -7.081 -15.365 -5.027 -7.846 -16.462 -5.734 9.880 -3.777 + 16.169 9.856 -4.422 15.462 10.421 -3.066 15.826 -17.488 9.421 -9.925 + -16.645 9.829 -9.725 -17.260 8.570 -10.300 0.634 19.196 -7.703 0.122 + 19.996 -7.819 1.402 19.320 -8.261 -0.840 14.068 -1.222 -1.363 13.817 + -0.461 0.063 13.883 -0.964 6.375 -1.748 3.065 6.231 -2.682 3.217 + 5.516 -1.411 2.810 -3.929 -0.152 -11.004 -3.555 -0.578 -10.233 -4.850 + -0.016 -10.779 -6.112 -17.595 -9.582 -5.424 -17.816 -10.209 -5.660 -17.538 + -8.740 -11.728 -15.163 -11.282 -12.307 -14.411 -11.160 -12.288 -15.837 -11.667 + -2.341 15.263 2.924 -2.175 15.292 3.866 -2.164 16.153 2.621 10.236 + 0.337 -7.082 10.626 0.768 -6.322 10.954 -0.164 -7.469 13.262 6.104 + 14.670 12.413 5.733 14.432 13.886 5.396 14.508 -11.659 -10.514 -8.836 + -11.835 -9.974 -9.606 -10.978 -10.038 -8.361 7.585 -2.397 20.187 7.244 + -1.601 20.595 7.350 -2.311 19.263 -16.181 -17.377 -6.447 -15.731 -17.619 + -7.257 -15.643 -17.756 -5.752 -8.740 -1.424 10.140 -9.167 -1.115 10.939 + -8.158 -2.124 10.436 17.099 -12.450 -0.641 17.198 -11.546 -0.938 16.888 + -12.942 -1.435 -10.912 -21.077 -5.789 -11.153 -21.990 -5.943 -10.886 -20.993 + -4.836 -12.224 10.856 -13.474 -12.263 10.012 -13.025 -12.017 10.634 -14.382 + 5.880 18.381 7.102 6.810 18.609 7.079 5.468 18.996 6.495 0.436 + 12.324 -4.131 0.082 12.288 -5.019 1.379 12.205 -4.244 -8.434 18.041 + -7.179 -8.835 18.906 -7.092 -9.103 17.510 -7.612 -3.931 2.325 16.190 + -4.507 2.162 15.444 -3.554 3.188 16.017 0.568 11.410 6.630 1.107 + 11.455 7.420 -0.097 10.752 6.831 -3.533 8.246 4.189 -3.093 7.414 + 4.018 -4.429 8.112 3.880 -5.303 1.258 7.369 -5.046 1.167 6.452 + -6.152 0.820 7.424 -2.674 -20.432 -6.302 -2.846 -20.759 -5.419 -3.258 + -20.941 -6.864 17.613 10.845 -4.370 16.738 10.495 -4.538 17.464 11.762 + -4.139 -5.139 11.912 3.574 -5.774 11.825 2.864 -5.446 12.663 4.080 + -0.653 4.386 -1.771 -1.387 4.823 -1.338 -0.886 4.392 -2.700 -9.868 + -7.684 8.189 -10.282 -6.904 7.819 -10.300 -7.807 9.034 -9.753 -0.978 + 12.462 -10.667 -1.163 12.680 -9.621 -0.071 12.736 2.518 -3.696 -22.663 + 2.471 -3.952 -21.742 2.599 -2.743 -22.643 19.101 14.015 7.962 19.010 + 13.615 7.097 20.035 13.947 8.160 4.462 -20.334 10.471 3.508 -20.255 + 10.459 4.631 -21.237 10.199 1.753 2.498 2.439 1.663 2.309 1.505 + 1.522 1.676 2.873 -5.350 -18.659 -12.095 -6.041 -19.238 -12.419 -5.376 + -17.904 -12.683 4.474 16.190 0.603 4.043 15.684 1.291 4.379 17.101 + 0.880 0.964 2.741 9.635 0.690 1.824 9.607 1.146 2.964 8.723 + 9.847 11.317 2.013 10.610 11.051 2.525 10.120 11.211 1.102 -1.467 + 4.459 -7.417 -1.571 4.997 -6.632 -2.349 4.400 -7.785 -18.807 3.874 + -5.133 -18.266 4.483 -5.635 -18.729 4.175 -4.227 -9.908 4.275 17.371 + -9.233 4.305 16.693 -10.257 3.385 17.322 8.205 9.725 -16.872 8.282 + 10.679 -16.890 8.077 9.512 -15.948 11.797 0.242 -9.994 12.080 1.156 + -10.032 12.487 -0.242 -10.448 11.313 1.953 0.194 11.609 2.774 -0.201 + 10.440 2.151 0.532 -19.931 1.650 13.818 -20.650 1.578 14.447 -19.171 + 1.883 14.350 -19.828 14.704 1.657 -19.187 15.366 1.914 -19.654 14.551 + 0.728 -3.815 16.202 -12.681 -4.076 16.804 -11.984 -3.360 15.493 -12.227 + -3.841 15.814 -1.724 -3.606 14.893 -1.834 -4.755 15.796 -1.438 -14.511 + 4.920 10.925 -14.489 4.809 9.975 -14.768 4.061 11.261 -4.456 4.238 + -5.010 -4.364 5.165 -4.789 -4.961 3.868 -4.286 -7.962 -1.132 -7.054 + -8.599 -1.596 -6.511 -7.504 -1.823 -7.531 8.356 16.002 -2.959 7.618 + 16.450 -2.545 8.962 15.823 -2.240 -2.213 4.699 10.070 -2.627 3.861 + 9.861 -2.685 5.013 10.841 15.413 13.577 7.235 15.663 13.965 8.073 + 16.235 13.252 6.866 -2.604 1.748 -15.189 -3.190 0.991 -15.205 -2.493 + 1.946 -14.259 11.198 0.836 -3.949 11.921 1.330 -3.563 11.082 0.086 + -3.366 -7.878 9.515 -5.415 -7.538 9.071 -6.191 -7.830 10.446 -5.632 + 12.650 16.514 8.524 12.982 16.197 7.684 13.160 17.304 8.701 6.303 + -16.923 -16.878 6.232 -16.164 -17.457 5.784 -16.686 -16.109 3.249 -12.125 + 16.867 2.489 -11.813 16.376 3.023 -13.022 17.114 -1.840 1.700 -1.462 + -1.497 1.037 -0.863 -1.137 2.345 -1.534 1.965 -0.838 -0.108 2.010 + -0.232 -0.847 2.100 -1.702 -0.498 -18.144 12.694 -10.480 -18.598 12.873 + -9.657 -17.999 13.557 -10.867 -4.311 8.426 -8.962 -3.373 8.316 -8.805 + -4.377 9.249 -9.446 14.466 -9.289 8.403 13.659 -9.174 8.905 14.518 + -8.509 7.851 9.393 -1.847 5.744 10.028 -1.478 6.357 9.419 -1.259 + 4.989 5.924 13.001 -9.711 6.098 13.606 -10.432 6.453 13.333 -8.986 + 2.583 16.667 -15.356 2.833 16.317 -14.501 1.752 16.236 -15.557 8.022 + 3.271 14.889 7.186 3.640 15.176 7.779 2.571 14.283 3.750 -0.835 + 2.367 2.943 -0.702 2.864 3.467 -0.872 1.454 -18.552 2.308 -11.742 + -18.382 2.532 -12.657 -17.869 1.676 -11.520 -12.753 3.914 -3.388 -12.357 + 3.198 -3.884 -13.143 3.489 -2.624 7.788 18.227 11.167 7.816 17.312 + 11.447 6.992 18.291 10.639 19.244 -1.009 12.425 18.512 -0.731 12.976 + 19.693 -0.196 12.194 -8.467 2.591 20.970 -8.995 3.387 20.906 -7.937 + 2.718 21.757 7.704 7.410 6.656 6.891 7.856 6.894 7.645 7.294 + 5.708 11.972 -5.085 13.883 12.332 -5.378 13.046 12.606 -4.444 14.205 + 1.731 15.991 -8.820 2.575 15.690 -9.157 1.627 15.530 -7.987 1.991 + -21.383 2.438 2.084 -21.906 1.641 2.780 -21.575 2.944 -1.707 8.625 + 0.648 -1.451 8.278 1.503 -1.129 9.374 0.510 19.640 -12.617 -8.926 + 19.498 -13.467 -8.510 20.559 -12.632 -9.194 10.921 17.749 -1.365 11.587 + 17.630 -0.688 10.990 16.965 -1.909 2.137 6.615 -12.894 1.513 5.918 + -12.692 1.664 7.194 -13.492 4.608 -9.470 6.095 3.878 -10.063 5.917 + 4.739 -8.998 5.273 -5.154 12.874 -7.196 -4.526 12.179 -6.999 -4.863 + 13.228 -8.036 0.908 21.830 -9.181 0.329 22.557 -9.410 0.972 21.866 + -8.227 -4.549 -6.886 -10.179 -4.831 -7.600 -10.751 -3.787 -6.511 -10.621 + -3.415 -7.101 -14.510 -4.147 -7.665 -14.259 -3.251 -7.316 -15.428 11.928 + 6.675 -3.214 11.509 7.485 -3.506 12.405 6.924 -2.422 -8.120 6.201 + -5.076 -8.037 7.112 -5.357 -8.238 5.709 -5.888 20.707 13.020 -0.718 + 20.764 12.542 0.110 21.600 13.324 -0.880 9.701 20.118 9.598 9.385 + 19.441 10.196 9.348 19.867 8.744 1.290 15.250 -6.201 0.504 15.723 + -5.927 1.710 14.987 -5.381 8.221 12.487 7.470 7.715 12.131 8.201 + 8.113 11.845 6.768 -7.454 12.062 -5.931 -6.563 12.227 -6.239 -7.667 + 12.826 -5.394 -0.729 -22.593 3.104 -1.407 -21.928 2.985 -0.113 -22.438 + 2.388 8.166 -15.991 4.499 8.307 -16.095 5.440 8.678 -16.694 4.100 + -1.550 11.260 17.851 -1.624 12.126 18.253 -2.368 10.820 18.078 -10.231 + 16.132 13.147 -10.510 17.047 13.154 -10.439 15.824 12.265 18.251 -14.919 + -7.562 17.333 -14.649 -7.542 18.228 -15.860 -7.390 5.100 -7.683 4.114 + 5.301 -7.031 4.785 4.558 -7.214 3.479 -18.341 3.091 -14.218 -17.918 + 2.792 -15.023 -19.129 3.546 -14.516 -4.375 -22.122 -7.459 -4.657 -21.695 + -8.268 -5.186 -22.279 -6.976 2.423 -17.810 -6.655 2.249 -18.735 -6.829 + 1.698 -17.347 -7.076 16.972 10.573 3.819 17.073 10.592 2.867 17.320 + 9.721 4.080 7.267 7.511 3.837 6.620 7.975 3.305 8.112 7.807 + 3.499 2.689 -16.774 11.126 1.861 -16.387 11.410 2.592 -16.878 10.179 + 9.682 4.604 6.407 9.175 4.492 7.211 9.378 5.436 6.045 11.979 + 1.168 4.494 12.252 1.236 5.409 11.262 0.535 4.504 11.723 16.579 + 3.211 11.447 15.664 3.176 11.391 16.961 2.399 4.438 13.463 10.058 + 3.757 14.019 9.677 4.010 13.036 10.800 2.474 -12.155 -13.210 1.530 + -12.285 -13.119 2.679 -12.490 -14.083 14.221 12.382 2.661 14.550 11.606 + 3.114 13.487 12.680 3.199 -13.559 7.092 -10.103 -13.485 7.073 -11.057 + -13.188 6.257 -9.817 18.657 3.072 9.724 18.207 3.874 9.987 19.045 + 3.281 8.874 18.867 -6.580 -10.954 18.365 -5.795 -11.173 19.279 -6.374 + -10.115 -9.213 -15.101 7.936 -9.651 -14.477 7.356 -9.927 -15.547 8.391 + 5.713 -19.085 2.728 5.624 -18.430 2.036 4.830 -19.435 2.841 -14.662 + 8.654 -1.461 -14.510 7.920 -0.866 -14.669 8.259 -2.333 -15.029 8.719 + 4.576 -15.725 9.375 4.624 -14.914 8.425 5.479 -5.710 6.509 -1.164 + -5.930 7.407 -0.915 -5.708 6.025 -0.338 4.042 8.047 -1.766 4.576 + 7.491 -1.199 3.320 7.483 -2.044 -3.578 1.265 11.716 -3.942 0.380 + 11.724 -3.962 1.674 10.940 -5.442 -3.601 -2.478 -5.799 -2.843 -2.942 + -4.902 -4.048 -3.130 -8.979 4.585 0.723 -9.238 4.047 -0.025 -9.417 + 4.181 1.472 -14.247 3.937 2.948 -14.294 3.032 2.640 -13.615 4.357 + 2.364 7.494 10.728 -4.678 6.906 10.111 -4.242 7.402 11.539 -4.179 + -19.507 11.878 9.231 -20.041 12.664 9.347 -19.581 11.414 10.065 -8.311 + 3.670 -23.336 -8.159 4.202 -24.117 -8.382 4.305 -22.623 2.662 -13.669 + 9.262 2.612 -14.600 9.044 3.598 -13.471 9.253 4.305 -5.701 16.632 + 3.466 -5.247 16.557 4.461 -6.060 15.758 6.948 -10.683 -11.537 6.673 + -10.892 -12.430 6.768 -9.747 -11.443 -14.227 -19.110 1.749 -13.307 -19.359 + 1.652 -14.592 -19.199 0.869 -19.234 -12.033 -4.036 -18.983 -12.151 -3.119 + -18.488 -12.367 -4.533 -9.447 -19.348 -2.009 -9.926 -18.859 -1.341 -10.024 + -20.078 -2.232 -13.164 9.532 12.465 -13.941 9.935 12.078 -13.357 8.594 + 12.469 -19.881 15.006 5.088 -19.584 15.445 4.291 -20.726 14.624 4.850 + 2.901 8.976 -5.731 2.159 8.375 -5.664 2.645 9.599 -6.411 -5.621 + 0.926 -4.028 -4.848 0.417 -3.785 -5.996 1.206 -3.193 -0.264 -4.541 + 2.593 -1.033 -4.289 3.105 0.190 -3.717 2.421 -2.429 15.289 5.988 + -2.579 14.345 6.040 -3.265 15.679 6.244 7.775 -2.381 17.491 8.496 + -2.942 17.207 7.067 -2.571 16.875 -11.564 9.045 -16.697 -11.230 8.426 + -17.346 -10.803 9.265 -16.161 -19.006 1.985 3.098 -19.024 2.465 2.269 + -18.903 2.664 3.765 -15.721 -14.686 -8.275 -15.046 -15.336 -8.081 -15.245 + -13.858 -8.342 4.857 -1.035 7.927 5.623 -1.073 7.354 4.924 -0.183 + 8.360 -13.103 9.687 16.661 -12.632 9.707 17.494 -12.428 9.848 16.001 + -15.424 6.938 -15.457 -16.070 7.454 -15.939 -15.942 6.415 -14.846 2.576 + 5.117 7.708 2.697 4.220 8.020 3.272 5.242 7.063 -7.774 13.833 + -12.049 -7.415 14.449 -12.687 -8.137 14.388 -11.358 -5.284 15.104 17.461 + -5.967 14.686 17.984 -5.706 15.879 17.091 7.645 1.186 12.908 7.597 + 0.230 12.890 6.731 1.471 12.918 -3.586 7.446 -5.333 -4.102 8.000 + -5.918 -4.165 7.277 -4.590 11.021 -10.050 -11.000 10.344 -10.055 -10.323 + 11.041 -10.951 -11.325 -1.307 14.846 10.831 -0.621 14.212 11.041 -1.752 + 14.474 10.069 7.464 15.248 -9.190 8.356 14.910 -9.265 7.566 16.103 + -8.772 -15.869 -12.640 5.097 -16.314 -13.065 5.830 -16.215 -11.747 5.092 + 5.419 8.281 -7.665 5.710 8.904 -8.332 4.551 8.594 -7.408 5.779 + 8.546 9.831 5.790 9.471 9.587 4.893 8.253 9.618 -4.432 -12.832 + -9.396 -3.859 -13.491 -9.789 -3.835 -12.163 -9.062 -6.077 3.943 -2.844 + -6.390 4.673 -2.310 -6.113 3.186 -2.258 -14.162 -1.695 -2.993 -14.636 + -2.204 -2.336 -14.847 -1.259 -3.500 -9.226 1.323 1.671 -9.341 1.570 + 0.754 -8.278 1.297 1.795 -7.467 11.872 -1.482 -6.881 11.239 -1.898 + -7.692 12.485 -2.181 -12.435 -3.929 14.198 -12.946 -3.612 14.943 -12.730 + -3.395 13.461 4.431 -0.322 -1.459 4.925 -0.570 -2.240 4.409 -1.116 + -0.926 -6.248 19.264 1.656 -6.856 19.599 0.997 -6.637 18.438 1.943 + 1.094 5.181 11.019 1.376 4.715 11.806 0.434 4.610 10.626 1.801 + 12.543 -1.327 2.438 12.208 -0.696 1.987 12.061 -2.133 2.218 20.584 + 6.364 2.058 21.523 6.454 3.133 20.521 6.090 -16.302 -9.868 -5.742 + -15.391 -10.122 -5.888 -16.434 -9.979 -4.800 7.625 11.936 3.589 8.149 + 11.675 2.832 7.244 12.777 3.337 -20.680 -0.884 15.502 -21.384 -0.248 + 15.630 -21.113 -1.736 15.563 4.846 2.675 5.293 5.461 3.251 5.746 + 4.606 3.156 4.501 5.309 13.814 -5.534 4.735 13.476 -6.221 5.457 + 14.729 -5.773 -4.311 -0.631 -15.699 -4.341 -1.429 -16.227 -4.073 -0.933 + -14.822 19.432 -8.993 6.444 19.968 -8.581 5.765 18.993 -9.716 5.996 + -0.623 -13.647 -2.222 -0.760 -14.456 -2.716 -1.505 -13.302 -2.080 -12.195 + -6.207 -10.201 -11.638 -6.520 -9.488 -13.086 -6.290 -9.863 3.665 -20.076 + -0.473 3.163 -19.276 -0.317 3.026 -20.695 -0.827 13.181 6.560 -5.630 + 12.793 6.474 -4.759 13.272 5.660 -5.942 -12.115 -13.948 -4.985 -12.125 + -12.994 -5.059 -11.341 -14.219 -5.479 16.598 -12.255 10.491 16.228 -13.137 + 10.469 16.255 -11.871 11.298 1.775 -18.565 2.801 1.606 -19.405 2.374 + 1.003 -18.413 3.346 -11.354 1.543 -10.669 -11.455 0.594 -10.598 -12.016 + 1.807 -11.308 -14.919 -14.047 -4.522 -14.868 -13.249 -3.996 -14.159 -14.003 + -5.101 -15.924 13.130 2.656 -16.201 12.214 2.626 -16.438 13.558 1.971 + 6.467 13.835 -12.212 7.078 14.572 -12.232 6.518 13.458 -13.090 1.515 + -4.567 -2.568 2.057 -4.047 -1.974 1.652 -5.472 -2.287 -1.944 -7.308 + -19.298 -1.085 -7.673 -19.508 -2.514 -7.616 -20.003 -17.508 -17.165 -3.106 + -17.045 -17.909 -3.493 -17.396 -16.457 -3.741 14.417 18.693 8.643 15.346 + 18.670 8.411 14.093 19.506 8.254 -2.767 -1.356 15.704 -3.523 -1.930 + 15.826 -2.430 -1.583 14.838 -11.922 -8.073 -14.168 -10.980 -8.040 -14.336 + -12.291 -7.402 -14.743 -1.094 16.510 -8.168 -1.515 17.241 -8.622 -0.159 + 16.709 -8.210 8.162 -17.334 -1.109 8.543 -18.093 -1.552 7.505 -17.005 + -1.722 15.575 16.134 -0.061 15.591 16.223 0.892 16.137 15.381 -0.242 + 6.904 22.450 4.600 6.657 23.055 5.300 7.773 22.136 4.850 -2.129 + -12.776 -14.138 -1.998 -13.265 -14.950 -1.952 -11.865 -14.376 -12.026 -15.751 + 6.895 -12.245 -15.543 5.987 -11.589 -16.601 6.847 -2.797 5.628 5.544 + -1.944 5.756 5.958 -3.428 5.938 6.194 -0.247 19.353 8.246 -1.045 + 19.060 7.807 0.396 19.437 7.542 4.596 13.703 5.091 5.056 14.485 + 5.398 4.801 13.034 5.744 15.320 -7.485 3.096 15.236 -8.435 3.011 + 15.493 -7.179 2.205 5.542 -5.145 5.226 6.496 -5.108 5.151 5.270 + -4.228 5.266 -0.046 -18.624 -4.547 0.622 -19.289 -4.384 -0.761 -18.853 + -3.953 -19.268 1.436 -6.213 -18.950 2.326 -6.061 -18.571 1.017 -6.717 + 8.009 -1.030 -6.603 7.674 -1.635 -7.264 8.678 -0.521 -7.061 -12.200 + -15.075 3.919 -12.801 -15.682 3.487 -12.698 -14.261 3.998 -0.062 -13.064 + 15.799 -0.768 -12.844 15.191 0.553 -12.335 15.725 -17.180 0.068 13.216 + -16.468 0.582 13.599 -17.181 -0.748 13.717 2.391 -21.235 -14.197 3.019 + -21.704 -13.648 1.535 -21.498 -13.859 10.144 -13.419 5.476 11.018 -13.348 + 5.859 9.947 -14.356 5.500 10.048 17.544 -7.416 10.962 17.499 -7.135 + 9.576 17.000 -6.785 -5.165 -6.105 -3.636 -4.901 -6.165 -2.718 -4.370 + -6.312 -4.127 -3.906 -11.265 11.798 -4.230 -10.403 11.536 -4.670 -11.705 + 12.170 -7.101 -16.926 8.747 -7.477 -16.836 9.622 -7.634 -16.351 8.197 + 1.148 18.668 12.533 0.695 19.496 12.373 0.698 18.037 11.972 3.183 + 16.618 6.590 2.547 15.907 6.676 3.982 16.188 6.284 6.154 10.026 + -9.484 6.827 10.167 -10.149 5.953 10.902 -9.156 7.093 10.794 0.325 + 7.724 10.075 0.359 6.566 10.688 1.117 -13.832 -10.593 -6.817 -13.306 + -10.207 -7.517 -13.268 -10.556 -6.045 -4.406 2.013 24.608 -4.908 1.892 + 23.802 -4.723 1.326 25.193 -1.610 -1.758 18.171 -2.131 -1.327 18.848 + -2.121 -1.649 17.369 -19.707 7.988 7.285 -20.417 7.352 7.379 -18.914 + 7.493 7.493 -0.060 16.196 -15.794 -0.559 16.985 -15.583 -0.270 16.017 + -16.711 -12.031 5.604 -19.693 -12.503 5.114 -20.366 -12.686 5.773 -19.016 + 12.228 19.919 3.825 12.138 20.679 3.250 12.002 19.172 3.272 8.641 + 18.866 1.498 8.464 17.935 1.367 8.054 19.310 0.886 6.917 0.980 + -0.522 6.179 0.380 -0.411 6.628 1.592 -1.199 -8.437 -19.509 5.110 + -8.370 -19.629 6.058 -9.201 -20.027 4.857 20.895 6.495 3.599 21.018 + 6.443 4.547 21.604 7.062 3.296 -14.996 7.953 7.364 -15.824 7.475 + 7.410 -14.460 7.572 8.060 -2.585 -22.366 6.497 -2.429 -23.231 6.117 + -2.955 -21.853 5.779 16.572 15.214 9.311 16.779 15.725 10.093 17.386 + 15.204 8.809 16.991 11.647 -1.291 16.217 11.404 -1.799 17.362 12.394 + -1.761 -11.956 13.329 -3.959 -11.801 12.475 -4.364 -12.768 13.640 -4.359 + -19.790 -13.528 -7.706 -19.901 -13.296 -8.628 -19.228 -14.303 -7.720 -2.874 + -16.863 -9.218 -3.492 -16.920 -8.489 -2.081 -17.290 -8.893 -19.798 14.700 + -6.692 -20.017 14.115 -7.418 -19.044 14.286 -6.271 4.691 4.178 -20.959 + 5.028 4.210 -21.854 4.778 5.076 -20.638 -11.934 17.519 -1.665 -11.281 + 17.672 -2.349 -11.798 16.608 -1.404 1.948 -4.009 -15.333 1.404 -3.474 + -15.911 2.397 -4.616 -15.921 8.340 22.029 -2.203 9.118 22.554 -2.014 + 8.686 21.209 -2.557 -3.824 -9.911 -3.050 -3.095 -9.576 -3.572 -3.563 + -10.802 -2.817 -3.160 -5.425 6.904 -3.418 -5.487 7.824 -3.250 -6.317 + 6.570 5.847 -2.960 15.840 5.290 -3.524 16.377 5.605 -3.173 14.939 + -0.850 -5.579 -6.469 -0.674 -6.399 -6.932 0.010 -5.172 -6.368 -7.417 + -9.903 -15.845 -7.965 -10.620 -15.527 -7.351 -10.051 -16.788 -10.784 8.514 + 10.937 -11.393 8.165 11.588 -10.469 9.334 11.318 -11.682 0.969 4.332 + -11.935 1.120 3.421 -11.725 1.834 4.739 17.383 0.916 10.704 18.069 + 0.274 10.523 17.752 1.749 10.410 13.059 -12.728 -2.644 13.713 -12.391 + -3.257 12.583 -13.393 -3.143 3.138 4.936 18.997 2.378 4.403 18.761 + 3.430 4.579 19.835 5.697 4.631 15.703 5.256 4.952 14.917 5.140 + 3.918 16.016 6.671 0.371 20.653 5.854 0.541 21.122 6.684 1.021 + 19.950 14.233 -14.398 -8.316 14.905 -13.775 -8.594 14.126 -14.985 -9.064 + -20.235 10.605 6.924 -19.780 9.769 6.825 -20.108 10.840 7.843 -6.906 + 13.264 20.315 -6.826 12.532 20.927 -6.762 14.043 20.852 -7.795 -4.841 + 4.998 -7.487 -4.657 4.110 -8.439 -4.155 5.174 17.396 14.217 3.374 + 16.854 13.754 2.735 17.331 13.690 4.170 -3.401 20.110 5.765 -2.940 + 19.300 5.987 -2.847 20.528 5.106 -4.708 21.121 -2.941 -5.040 20.241 + -2.761 -3.895 20.975 -3.425 -6.837 -3.226 -8.356 -6.366 -3.512 -9.139 + -6.605 -3.871 -7.688 -0.075 -10.467 -3.890 0.098 -9.583 -4.213 -0.625 + -10.336 -3.118 -15.725 7.233 -3.518 -15.675 6.278 -3.549 -16.488 7.415 + -2.970 2.286 -8.365 -14.990 2.034 -9.102 -15.546 1.464 -7.911 -14.806 + -2.915 -8.694 -7.749 -3.299 -9.302 -8.381 -2.141 -8.346 -8.193 0.425 + 8.412 -3.080 -0.402 8.611 -3.519 0.813 9.268 -2.900 3.674 -10.018 + -7.660 4.397 -9.533 -8.059 3.858 -9.994 -6.721 -1.564 -11.882 6.948 + -2.131 -11.851 7.719 -0.727 -12.208 7.279 -9.465 -3.985 -8.374 -8.537 + -3.948 -8.144 -9.630 -4.910 -8.556 6.824 -0.809 5.746 7.746 -1.040 + 5.861 6.647 -0.985 4.822 -6.624 -18.271 0.334 -6.826 -17.760 -0.450 + -6.799 -17.674 1.061 0.780 18.137 5.906 1.379 17.452 6.201 1.343 + 18.775 5.467 -18.641 -5.590 6.327 -18.944 -5.120 5.551 -19.163 -5.231 + 7.044 -13.936 -2.613 15.856 -14.268 -1.848 16.326 -14.549 -2.733 15.131 + -1.674 -18.308 -11.835 -1.035 -17.638 -11.593 -2.493 -18.013 -11.437 2.591 + -1.397 17.388 3.389 -0.871 17.359 2.594 -1.883 16.563 -4.118 7.587 + -23.118 -5.065 7.497 -23.229 -3.745 6.922 -23.696 -10.831 1.762 -15.758 + -11.097 2.442 -15.139 -11.168 2.063 -16.603 -12.885 4.435 -9.787 -13.066 + 3.815 -10.493 -11.998 4.219 -9.499 -3.684 19.479 0.546 -3.950 19.379 + -0.368 -4.496 19.386 1.044 -0.427 -2.232 -23.391 -0.424 -1.611 -24.119 + 0.493 -2.473 -23.278 9.048 15.885 5.583 9.763 16.522 5.568 8.864 + 15.755 6.514 -1.610 -3.609 -8.523 -2.421 -4.045 -8.784 -1.401 -3.984 + -7.667 -5.207 -8.940 7.699 -5.829 -8.632 7.040 -4.354 -8.646 7.379 + 0.084 0.338 21.215 -0.206 -0.572 21.153 0.898 0.364 20.711 -0.983 + -10.995 0.653 -1.490 -11.210 1.436 -0.914 -11.823 0.178 5.311 -18.017 + -10.212 4.593 -18.576 -9.915 4.890 -17.189 -10.443 -14.654 -15.532 8.236 + -13.809 -15.744 7.838 -14.503 -15.620 9.178 9.007 18.938 7.131 9.667 + 18.281 7.353 8.957 18.914 6.175 14.066 -6.182 16.438 13.403 -6.868 + 16.362 13.710 -5.575 17.087 18.634 16.820 6.680 18.901 15.921 6.874 + 19.094 17.036 5.869 3.136 2.609 -2.610 4.023 2.337 -2.375 3.246 + 3.482 -2.987 18.934 14.331 -6.339 18.795 13.974 -7.216 19.541 13.718 + -5.925 -10.326 -19.195 -7.653 -9.505 -19.523 -8.021 -10.535 -19.810 -6.949 + -14.444 -6.029 -8.708 -14.352 -5.106 -8.473 -14.653 -6.467 -7.883 -6.269 + -2.870 -11.774 -6.899 -3.563 -11.974 -5.434 -3.204 -12.101 -1.110 -15.527 + -13.106 -1.491 -16.115 -13.757 -1.207 -14.654 -13.485 -15.081 -0.545 -17.640 + -15.794 -0.144 -18.137 -15.023 -1.438 -17.981 -9.346 1.454 -7.565 -8.931 + 0.625 -7.803 -8.644 1.967 -7.164 18.765 1.790 -11.350 19.638 1.811 + -11.744 18.843 2.332 -10.565 11.833 -12.810 -16.825 11.883 -12.356 -17.666 + 12.582 -13.406 -16.830 9.975 -5.016 -3.306 10.280 -5.253 -2.431 10.654 + -4.433 -3.647 -20.596 10.209 -9.964 -20.316 10.885 -9.347 -19.789 9.757 + -10.208 0.362 -16.243 -8.175 -0.388 -16.499 -7.639 0.481 -15.311 -7.992 + 13.098 -1.264 11.320 12.985 -0.529 11.922 13.773 -1.806 11.728 -5.732 + 1.173 -14.153 -5.193 0.673 -14.765 -6.379 0.544 -13.834 12.742 -4.561 + -0.116 12.824 -4.956 0.752 12.913 -3.630 0.028 -9.275 8.626 15.976 + -10.036 9.073 15.605 -8.831 8.242 15.220 -13.781 -5.817 -12.703 -13.413 + -6.435 -13.334 -13.236 -5.919 -11.922 14.807 6.985 10.610 14.757 6.354 + 11.327 14.650 7.833 11.025 -8.761 -5.151 -14.970 -8.310 -4.424 -15.399 + -8.380 -5.184 -14.093 -13.990 -15.921 0.479 -13.153 -15.460 0.411 -14.380 + -15.837 -0.391 -1.091 12.682 -9.788 -0.173 12.668 -9.517 -1.210 11.865 + -10.273 -3.240 -12.331 -1.508 -3.063 -12.919 -0.774 -4.171 -12.123 -1.429 + 16.776 -0.963 17.699 16.081 -1.548 18.001 17.326 -0.826 18.470 -10.557 + -1.870 -9.465 -9.754 -1.396 -9.678 -10.255 -2.712 -9.125 0.643 -9.605 + -9.818 0.917 -10.500 -9.617 0.556 -9.589 -10.771 12.651 19.697 6.667 + 12.067 18.942 6.737 12.813 19.789 5.728 5.545 19.032 3.433 5.664 + 19.311 2.525 4.736 18.521 3.422 -14.886 -11.804 10.543 -15.271 -11.552 + 11.382 -15.420 -12.541 10.245 -7.177 -12.838 1.147 -8.091 -12.650 1.360 + -6.682 -12.487 1.888 -11.606 -18.547 -0.018 -11.415 -17.751 0.478 -12.187 + -18.257 -0.721 20.683 -13.826 -5.660 20.032 -13.201 -5.979 21.421 -13.733 + -6.263 -8.679 13.410 1.704 -9.259 13.902 2.285 -8.094 14.072 1.333 + 13.681 -11.830 9.107 14.168 -11.105 8.715 12.935 -11.413 9.539 -10.542 + 16.871 -12.766 -10.927 16.194 -13.323 -10.812 16.633 -11.879 -8.322 -0.083 + -9.916 -7.867 0.759 -9.909 -7.885 -0.598 -9.238 -9.074 4.956 -14.327 + -8.757 4.144 -14.722 -9.622 5.353 -15.004 -14.914 11.215 10.589 -15.299 + 11.178 9.713 -14.583 12.109 10.668 -6.542 -9.720 -7.243 -6.373 -8.815 + -7.505 -6.071 -9.821 -6.416 -9.065 -3.398 17.941 -8.847 -4.330 17.951 + -10.002 -3.369 18.135 7.037 -14.418 -17.793 7.263 -13.545 -17.473 6.352 + -14.265 -18.444 16.390 5.097 -0.745 16.788 4.778 0.065 16.123 5.994 + -0.543 -8.042 14.682 13.969 -8.658 15.414 13.949 -7.804 14.543 13.052 + -18.404 -16.099 -8.199 -17.623 -16.386 -7.727 -18.466 -16.696 -8.945 6.539 + 21.003 -7.640 7.406 20.619 -7.771 6.703 21.798 -7.132 11.854 -3.223 + 10.061 10.960 -2.910 10.194 12.407 -2.538 10.438 -1.241 -20.081 -0.250 + -1.976 -19.864 0.324 -1.461 -19.672 -1.087 0.072 -4.694 -13.620 -0.305 + -3.871 -13.309 0.709 -4.429 -14.283 3.243 -5.692 -13.130 2.872 -4.974 + -13.643 3.772 -5.260 -12.460 3.674 -13.150 13.678 4.101 -12.586 14.324 + 3.500 -12.573 12.934 4.022 9.082 17.719 4.781 8.740 17.246 3.681 + 9.776 17.156 -2.491 -2.798 -21.494 -2.159 -2.051 -20.996 -1.940 -2.829 + -22.275 10.855 3.270 -19.982 11.682 3.583 -19.614 10.522 2.651 -19.332 + -2.653 -16.979 -0.096 -3.115 -17.518 0.545 -3.067 -17.192 -0.932 14.284 + 2.063 -0.229 13.536 2.110 0.367 14.962 1.613 0.274 4.462 -18.924 + -13.179 3.954 -18.999 -12.371 5.277 -18.500 -12.911 12.244 4.574 11.098 + 12.108 5.429 10.690 13.003 4.698 11.668 2.786 -11.720 1.376 3.059 + -12.577 1.703 2.505 -11.886 0.476 11.644 -2.765 3.425 11.953 -3.518 + 3.929 10.808 -2.533 3.828 -2.037 -12.283 14.052 -2.753 -12.019 13.474 + -2.272 -11.919 14.906 -5.397 -21.181 -9.920 -4.850 -20.629 -10.478 -5.743 + -21.851 -10.510 8.814 2.387 -3.585 9.651 1.922 -3.581 8.218 1.802 + -4.054 -5.948 7.647 10.700 -5.572 8.437 10.312 -5.598 7.627 11.591 + 15.332 -14.488 8.693 15.794 -13.934 8.064 14.646 -13.924 9.051 7.256 + -4.566 21.762 7.539 -3.790 21.278 6.984 -5.185 21.084 17.832 2.704 + 4.526 18.781 2.833 4.533 17.719 1.765 4.377 18.702 -15.340 -4.130 + 19.089 -14.881 -4.876 19.072 -16.221 -4.174 1.116 0.604 -2.797 1.004 + 1.554 -2.779 1.983 0.472 -3.180 -15.536 1.160 -8.174 -16.024 0.613 + -7.558 -15.551 0.668 -8.995 -1.066 0.555 9.610 -1.826 1.009 9.974 + -1.294 0.403 8.693 19.785 12.463 10.606 19.947 13.180 9.994 18.842 + 12.498 10.770 -13.201 13.489 1.928 -13.077 12.929 1.162 -14.148 13.618 + 1.980 -0.324 6.645 18.624 -0.596 7.019 19.462 -0.893 7.065 17.978 + 0.723 -14.449 -15.775 1.422 -13.856 -16.053 1.133 -15.009 -15.116 14.360 + 3.929 -6.040 14.915 3.290 -5.593 13.992 3.450 -6.782 -8.546 7.269 + 3.167 -9.282 6.665 3.270 -8.631 7.876 3.902 -9.364 -9.818 -7.302 + -9.309 -9.979 -6.360 -8.458 -9.865 -7.607 -15.893 -6.284 -0.822 -15.379 + -7.031 -0.516 -16.188 -5.852 -0.021 3.034 10.997 -3.703 3.892 11.016 + -3.278 3.127 10.345 -4.399 8.168 -17.352 -7.389 8.788 -17.482 -6.671 + 7.597 -16.645 -7.087 -1.705 -9.873 -14.360 -1.181 -9.653 -13.589 -1.619 + -9.111 -14.932 -1.362 1.660 2.951 -1.688 2.384 3.486 -1.242 2.040 + 2.081 -9.489 -15.549 -3.175 -8.931 -15.757 -3.924 -9.893 -16.384 -2.938 + 0.412 16.785 -1.726 1.110 16.377 -1.213 -0.233 16.088 -1.850 2.373 + 11.328 4.371 1.896 11.922 3.791 1.859 11.318 5.179 -5.126 12.228 + 18.665 -4.392 12.767 18.961 -5.845 12.460 19.253 -5.318 3.052 -24.460 + -6.215 3.140 -24.138 -5.216 2.116 -24.633 4.462 -19.023 -16.104 5.370 + -19.269 -16.279 4.356 -19.151 -15.161 -1.179 15.296 14.046 -0.260 15.562 + 14.029 -1.398 15.133 13.128 -13.883 2.985 18.392 -14.620 2.562 18.834 + -13.115 2.711 18.893 7.283 13.408 -3.604 6.674 13.459 -4.341 7.686 + 14.276 -3.567 11.747 6.547 -16.481 11.736 6.344 -15.546 12.675 6.639 + -16.695 -14.292 -18.203 -8.161 -13.442 -18.054 -8.577 -14.248 -19.106 -7.846 + 9.954 7.819 2.901 10.372 6.987 3.120 10.679 8.442 2.840 -15.247 + -1.954 4.801 -16.061 -2.192 5.245 -15.335 -2.328 3.924 -1.223 -18.070 + -6.981 -0.644 -18.023 -6.221 -1.700 -18.892 -6.868 4.535 6.201 6.073 + 4.702 7.114 5.842 5.404 5.801 6.113 8.632 -8.537 21.264 9.103 + -8.014 21.913 9.229 -9.258 21.060 -9.663 -2.314 -5.055 -9.920 -3.104 + -5.531 -10.489 -1.871 -4.862 -3.102 -22.285 -3.824 -3.741 -22.996 -3.779 + -2.265 -22.703 -3.621 -14.693 -12.051 -2.735 -14.680 -12.423 -1.853 -14.989 + -11.150 -2.610 11.862 -8.492 15.323 10.933 -8.526 15.094 12.243 -9.258 + 14.894 -4.663 18.576 -11.328 -5.565 18.896 -11.323 -4.258 19.014 -12.077 + -12.779 1.439 7.893 -11.899 1.069 7.965 -12.938 1.496 6.950 -7.942 + 3.247 15.704 -7.375 2.655 15.209 -7.830 2.979 16.616 -9.938 11.081 + 5.072 -10.423 11.016 4.249 -9.513 10.229 5.168 18.406 -3.712 -0.217 + 17.654 -3.571 0.358 18.814 -4.512 0.114 5.076 -16.451 12.264 4.555 + -16.124 12.998 4.429 -16.730 11.617 1.842 -10.319 -16.949 1.269 -10.909 + -17.438 1.859 -9.516 -17.470 -8.170 17.788 -13.188 -8.994 17.322 -13.042 + -7.516 17.095 -13.282 1.044 5.239 -21.799 1.291 4.923 -22.668 1.020 + 6.191 -21.887 2.958 -7.544 -5.426 3.626 -7.338 -4.772 3.032 -8.489 + -5.554 -7.400 -0.897 16.788 -7.611 -1.688 17.284 -6.893 -0.360 17.397 + -5.878 -12.001 -1.150 -5.973 -11.050 -1.117 -6.431 -12.322 -0.438 -3.744 + -0.291 -6.257 -4.456 0.349 -6.284 -3.123 0.069 -5.623 -2.331 10.952 + -11.583 -3.115 11.000 -11.035 -2.402 11.706 -12.168 8.277 18.241 -11.398 + 8.665 17.369 -11.320 7.332 18.084 -11.376 -1.494 -0.856 -19.733 -1.730 + -0.948 -18.810 -0.892 -0.112 -19.753 8.602 -11.998 -17.147 8.861 -11.917 + -18.065 9.240 -12.604 -16.771 14.111 -16.567 10.532 13.407 -16.866 9.956 + 14.560 -15.887 10.030 16.050 8.952 8.866 15.605 8.201 9.259 15.463 + 9.240 8.167 16.331 5.361 -3.831 16.360 4.845 -3.025 16.003 4.752 + -4.493 2.890 -2.520 9.395 3.102 -1.981 10.157 3.532 -2.262 8.733 + 8.500 -5.973 -11.651 8.221 -5.130 -12.008 8.225 -5.948 -10.734 4.518 + 3.316 2.499 4.485 4.211 2.160 3.714 2.909 2.178 20.096 -10.119 + -6.009 20.489 -9.252 -5.908 20.842 -10.706 -6.136 5.467 18.393 9.647 + 5.629 18.459 8.706 4.516 18.320 9.722 -13.095 -4.715 6.702 -12.939 + -5.659 6.670 -14.035 -4.623 6.544 20.720 -13.136 -2.558 20.160 -13.578 + -3.195 21.535 -12.966 -3.031 11.014 9.119 -13.601 11.960 9.260 -13.635 + 10.722 9.635 -12.850 7.305 8.087 -14.367 7.965 7.394 -14.356 6.559 + 7.716 -13.896 12.750 2.775 -10.702 13.686 2.958 -10.783 12.373 3.086 + -11.525 11.708 -3.009 -8.055 10.893 -3.284 -7.634 11.427 -2.579 -8.862 + -7.228 19.450 -11.028 -7.422 20.386 -10.976 -7.811 19.123 -11.713 1.377 + 18.539 -12.151 0.902 17.733 -11.949 0.701 19.216 -12.180 -0.060 -1.564 + 10.991 -0.494 -0.890 10.468 0.294 -2.177 10.346 1.878 10.927 -7.375 + 1.629 10.920 -8.300 1.065 10.743 -6.906 19.654 9.650 6.866 19.043 + 10.108 7.444 20.495 10.082 7.016 -12.032 10.539 -5.103 -11.387 9.884 + -4.836 -12.863 10.064 -5.119 -6.458 20.149 12.008 -7.144 20.741 12.317 + -6.918 19.333 11.809 6.415 -12.180 18.528 5.990 -11.325 18.457 7.128 + -12.041 19.152 0.957 0.782 11.982 0.290 1.463 11.895 0.552 0.001 + 11.604 -9.009 -7.093 15.497 -8.119 -6.835 15.258 -9.160 -7.906 15.016 + 4.765 10.743 -1.500 4.529 9.830 -1.666 5.629 10.696 -1.090 -19.039 + -0.391 8.384 -18.368 0.031 8.920 -18.801 -0.167 7.484 -12.801 13.659 + 5.922 -13.276 13.730 5.094 -12.550 12.736 5.975 -0.477 10.404 3.377 + -0.075 11.136 2.909 -1.411 10.478 3.182 8.532 19.349 -2.891 9.268 + 18.830 -2.567 8.736 19.505 -3.813 16.189 -4.178 14.546 16.898 -3.669 + 14.941 16.073 -4.924 15.135 9.887 6.519 -13.433 10.144 7.369 -13.790 + 10.651 5.960 -13.573 -18.296 10.071 0.597 -17.742 9.624 1.238 -18.512 + 10.907 1.011 0.710 -3.149 -20.503 -0.106 -3.086 -20.007 1.108 -2.283 + -20.419 6.316 -5.127 8.630 5.499 -5.308 8.164 6.482 -5.919 9.139 + -0.409 1.449 -18.446 0.415 1.757 -18.823 -0.946 2.237 -18.368 9.520 + -8.813 7.765 9.669 -7.867 7.761 10.333 -9.182 8.111 -10.676 2.676 + -20.875 -11.327 3.308 -21.177 -10.463 2.161 -21.653 -1.944 -20.401 11.687 + -1.549 -21.246 11.474 -1.602 -19.802 11.023 14.648 7.515 -3.146 14.283 + 7.141 -3.948 15.382 6.941 -2.927 5.612 8.793 -4.422 5.542 8.044 + -3.829 4.876 8.690 -5.025 -20.060 -5.535 9.397 -19.660 -5.230 10.212 + -19.995 -6.489 9.440 1.174 4.119 16.536 0.750 4.075 17.392 0.876 + 3.332 16.080 -6.041 1.479 -9.473 -5.798 2.293 -9.915 -5.856 1.645 + -8.548 -0.081 -8.626 -12.544 -0.090 -7.797 -12.066 0.832 -8.912 -12.511 + 9.414 12.823 -14.219 9.351 12.801 -13.265 10.271 12.442 -14.411 9.488 + -2.323 22.249 9.888 -1.459 22.145 9.107 -2.515 21.392 1.367 15.826 + 14.138 1.781 15.788 13.276 2.002 16.282 14.690 -1.516 -12.085 10.011 + -1.645 -12.991 9.731 -2.237 -11.918 10.619 -0.819 7.579 2.984 -0.722 + 6.900 3.652 -0.604 8.394 3.438 -4.411 8.910 0.517 -4.880 8.811 + 1.346 -3.492 8.994 0.771 -16.693 10.773 4.908 -16.151 11.033 5.653 + -17.237 11.540 4.728 12.960 -9.703 -8.913 12.994 -8.775 -8.681 12.225 + -9.769 -9.524 -1.062 -5.394 18.778 -1.831 -5.027 19.214 -0.500 -4.637 + 18.608 -13.586 5.834 -17.224 -13.827 4.925 -17.400 -14.201 6.119 -16.549 + 13.321 18.537 -4.463 13.706 18.011 -3.763 12.473 18.127 -4.633 8.033 + -6.673 -4.473 8.670 -5.973 -4.336 8.158 -7.261 -3.728 13.466 -0.132 + -7.544 13.199 -0.355 -8.435 13.553 0.822 -7.552 -9.254 1.105 17.731 + -10.070 0.712 18.039 -8.817 0.404 17.249 12.523 -0.468 -20.187 12.724 + -0.586 -21.116 11.599 -0.218 -20.172 12.610 0.518 -13.017 12.378 1.393 + -12.706 12.629 0.600 -13.971 18.040 -2.375 -3.023 18.775 -1.767 -2.942 + 18.082 -2.908 -2.229 -0.932 6.040 8.230 0.001 5.905 8.394 -1.370 + 5.593 8.954 -1.969 -9.277 9.902 -1.204 -8.958 9.423 -1.945 -10.227 + 9.787 8.915 11.976 -1.543 8.318 12.315 -2.210 8.343 11.576 -0.889 + -20.112 -4.172 4.501 -20.365 -3.299 4.802 -20.903 -4.521 4.089 15.332 + 3.246 -10.840 15.889 4.021 -10.901 15.774 2.682 -10.206 20.809 5.754 + 6.789 20.951 4.808 6.769 19.884 5.852 7.013 9.199 -7.626 -2.051 + 9.049 -8.039 -1.200 10.128 -7.774 -2.228 0.221 -11.732 -18.556 -0.652 + -11.570 -18.199 0.071 -12.309 -19.304 2.326 -0.636 24.996 1.387 -0.586 + 25.179 2.610 0.277 24.951 -1.447 14.711 -4.445 -0.850 14.245 -3.860 + -2.302 14.642 -4.020 2.360 -5.802 0.660 3.208 -6.133 0.362 2.254 + -6.171 1.537 -5.811 -4.210 21.447 -4.986 -4.037 20.995 -6.486 -3.923 + 20.832 0.004 -6.203 9.367 0.948 -6.049 9.330 -0.099 -7.121 9.115 + -14.264 -8.080 13.585 -13.692 -8.823 13.778 -14.417 -8.134 12.642 12.991 + -9.135 -3.378 12.586 -8.494 -3.962 12.262 -9.674 -3.071 -1.061 7.185 + -6.576 -1.051 7.672 -7.399 -1.929 7.353 -6.208 -12.390 -11.040 -4.553 + -12.665 -10.879 -3.651 -11.442 -10.914 -4.541 21.259 -6.139 -0.760 20.335 + -6.373 -0.670 21.252 -5.193 -0.908 -7.433 2.304 -18.796 -6.849 2.260 + -19.554 -8.049 1.583 -18.925 -12.385 -7.045 5.549 -11.513 -6.895 5.185 + -12.317 -7.890 5.994 5.122 1.668 12.285 4.709 2.062 13.053 4.593 + 1.970 11.547 5.744 8.529 1.867 5.279 8.061 1.173 5.064 9.035 + 2.312 -8.156 -16.637 5.473 -8.732 -16.754 6.229 -8.114 -17.503 5.068 + -5.166 -10.407 14.357 -5.130 -10.634 15.286 -4.677 -9.587 14.291 19.312 + 8.534 -8.981 18.987 9.122 -8.299 20.264 8.614 -8.933 -20.588 13.085 + -8.760 -20.569 13.634 -9.544 -21.496 12.788 -8.697 4.925 -3.047 19.881 + 4.199 -3.672 19.887 5.052 -2.819 20.802 1.314 -8.817 1.455 0.811 + -9.630 1.402 2.216 -9.082 1.274 7.071 -5.149 18.281 7.146 -4.210 + 18.453 6.129 -5.307 18.217 -9.786 2.659 -0.906 -9.393 2.867 -1.754 + -10.720 2.567 -1.091 10.851 -0.218 21.202 11.442 0.503 21.417 11.049 + -0.428 20.290 -1.841 0.037 23.427 -2.099 0.755 24.005 -1.191 0.424 + 22.841 -3.940 9.132 18.814 -4.222 8.343 18.352 -4.629 9.773 18.637 + -1.496 1.073 15.951 -1.721 0.150 15.834 -2.338 1.528 15.939 -10.200 + -15.168 -8.979 -10.779 -14.420 -9.127 -10.156 -15.608 -9.828 2.115 15.309 + -0.450 3.013 15.503 -0.182 2.183 14.490 -0.941 10.983 12.762 -3.122 + 10.671 12.419 -3.959 10.514 12.251 -2.463 -8.691 -0.196 -16.485 -9.431 + 0.278 -16.104 -8.635 0.129 -17.384 -18.029 4.350 -9.789 -18.209 3.598 + -10.353 -17.290 4.072 -9.249 -14.271 17.056 -3.368 -13.858 16.872 -2.524 + -13.672 17.665 -3.800 -12.114 -1.134 -4.633 -12.942 -1.340 -4.199 -12.287 + -1.284 -5.562 3.021 -15.631 14.140 3.266 -14.723 13.961 2.933 -15.672 + 15.093 10.710 3.863 -6.384 10.414 4.130 -5.514 9.969 3.382 -6.752 + -14.065 5.202 5.116 -14.875 5.711 5.134 -14.019 4.855 4.225 4.300 + 1.056 22.029 3.878 1.159 22.882 3.644 0.616 21.489 0.703 2.793 + 22.855 -0.173 2.687 23.226 0.808 2.043 22.270 -1.718 9.375 20.699 + -2.227 9.450 19.892 -0.810 9.504 20.423 -19.736 -4.912 -6.669 -20.651 + -4.728 -6.455 -19.533 -5.711 -6.182 0.717 -3.087 18.401 -0.065 -2.616 + 18.112 1.443 -2.504 18.182 -13.676 -7.680 0.848 -13.733 -8.032 1.736 + -13.853 -8.431 0.281 8.849 -12.852 12.716 8.445 -13.695 12.919 8.329 + -12.213 13.204 -1.819 3.459 -23.702 -1.822 3.251 -22.767 -2.047 2.634 + -24.131 0.719 14.777 7.368 0.225 14.764 6.548 0.776 13.858 7.628 + -0.816 -18.292 3.844 -1.422 -18.938 3.480 -1.340 -17.803 4.479 17.654 + 8.593 -2.093 17.865 9.410 -2.546 18.346 7.987 -2.358 -18.642 6.694 + -11.730 -17.916 6.843 -11.124 -19.328 6.301 -11.190 -10.414 8.055 -1.051 + -10.131 7.538 -1.805 -11.213 7.622 -0.750 -14.712 11.300 -2.493 -14.722 + 11.015 -3.406 -14.972 10.524 -1.996 8.274 16.115 1.098 8.934 15.586 + 0.651 7.925 15.539 1.778 4.997 -7.388 -14.107 4.233 -6.811 -14.139 + 4.701 -8.200 -14.519 2.557 7.294 -19.041 3.484 7.067 -19.114 2.130 + 6.784 -19.730 -6.668 15.644 -13.519 -5.818 15.892 -13.154 -6.455 15.058 + -14.245 9.843 12.047 -5.677 10.255 11.323 -6.148 8.948 11.749 -5.513 + -9.990 -9.764 11.410 -10.577 -9.165 10.949 -9.665 -10.352 10.728 -8.588 + -22.387 4.367 -7.752 -22.499 3.914 -9.240 -22.378 3.666 -8.938 -6.521 + 11.774 -8.621 -7.414 11.638 -9.781 -6.631 12.215 17.221 3.597 13.827 + 17.748 3.029 13.265 16.564 3.015 14.208 9.784 6.670 -7.642 9.390 + 7.244 -6.985 10.116 5.926 -7.141 -5.469 -2.490 8.209 -6.183 -3.098 + 8.020 -5.857 -1.841 8.796 0.181 12.898 12.007 0.804 12.666 12.696 + -0.528 12.262 12.102 3.883 -7.160 22.413 4.670 -6.748 22.769 3.999 + -8.093 22.593 16.939 12.861 10.701 16.858 13.754 10.366 16.038 12.591 + 10.882 11.676 -7.098 -9.003 12.421 -6.700 -8.551 10.908 -6.765 -8.538 + 6.528 2.759 19.079 7.263 3.316 18.822 5.982 3.322 19.628 -2.187 + -14.271 -16.318 -1.273 -14.108 -16.554 -2.657 -14.247 -17.152 -16.040 -4.591 + 1.211 -16.177 -3.693 1.513 -15.098 -4.733 1.301 6.710 4.332 6.214 + 7.434 4.233 5.596 7.134 4.409 7.069 -16.487 6.838 -9.835 -15.557 + 6.953 -10.027 -16.577 5.906 -9.634 5.927 16.554 -6.174 5.840 17.127 + -5.412 5.658 17.097 -6.914 8.544 -8.952 0.495 9.002 -8.903 1.334 + 8.664 -9.857 0.209 20.459 -1.889 -9.462 20.186 -1.527 -8.618 19.805 + -1.568 -10.083 -2.029 -12.006 -4.886 -1.336 -11.372 -4.702 -2.229 -11.881 + -5.813 -15.899 15.549 0.628 -15.180 16.123 0.893 -15.573 15.103 -0.153 + 14.557 16.926 -2.437 15.110 16.610 -1.723 13.867 16.268 -2.515 -6.633 + -7.524 -8.569 -6.997 -8.149 -9.196 -6.109 -6.927 -9.104 16.717 7.845 + 0.289 16.798 8.142 -0.617 17.610 7.622 0.549 5.806 -11.810 11.883 + 4.861 -11.690 11.781 6.036 -12.468 11.227 -11.867 -6.724 12.853 -12.589 + -7.295 13.115 -12.018 -5.910 13.333 -1.876 -15.111 9.743 -2.820 -15.180 + 9.601 -1.719 -15.602 10.550 2.215 -20.407 -7.246 1.297 -20.670 -7.311 + 2.702 -21.142 -7.621 -7.533 19.371 -15.018 -6.839 19.922 -14.654 -7.748 + 18.761 -14.313 2.575 -16.165 4.122 3.138 -16.307 4.883 2.507 -17.027 + 3.711 -5.294 13.926 14.746 -4.930 14.189 15.592 -6.149 14.355 14.710 + 3.178 -7.354 11.970 3.597 -8.079 11.507 2.805 -6.809 11.277 10.547 + 10.205 -11.320 9.833 10.572 -10.799 11.343 10.513 -10.887 5.409 6.194 + 17.855 5.411 5.784 16.990 4.683 5.775 18.317 3.853 -7.484 14.546 + 4.798 -7.634 14.561 3.654 -7.301 13.628 -11.651 12.721 -7.364 -12.564 + 12.998 -7.447 -11.678 11.990 -6.747 -0.307 3.829 18.776 -0.684 4.706 + 18.849 -0.882 3.277 19.305 -2.357 -11.956 -7.419 -1.682 -12.631 -7.488 + -2.068 -11.267 -8.017 14.391 15.595 -8.423 14.034 16.248 -9.026 15.097 + 15.176 -8.915 4.057 -16.531 6.685 4.695 -16.900 7.295 3.256 -16.441 + 7.202 -0.782 -2.180 13.696 0.088 -2.309 14.074 -0.630 -2.148 12.752 + 13.968 12.224 -5.238 14.169 11.306 -5.422 14.023 12.294 -4.285 -16.988 + 1.390 7.126 -17.081 2.291 7.436 -16.238 1.418 6.531 -3.835 -5.422 + 15.294 -2.939 -5.430 14.957 -4.123 -4.516 15.187 -0.312 -10.219 20.252 + 0.606 -10.034 20.449 -0.356 -10.222 19.296 -1.629 -4.466 21.775 -0.803 + -3.984 21.735 -1.546 -5.019 22.552 16.532 -0.752 -5.115 16.206 -1.565 + -5.501 17.146 -1.037 -4.438 -2.344 -16.782 -15.191 -2.537 -16.046 -15.772 + -3.199 -17.053 -14.855 -9.264 -6.337 -5.699 -10.179 -6.585 -5.564 -8.781 + -6.838 -5.042 -15.255 -9.545 -0.328 -15.275 -10.474 -0.096 -15.821 -9.125 + 0.319 -3.526 -1.082 20.172 -3.462 -0.726 21.058 -4.051 -0.440 19.694 + 20.412 -7.000 -8.288 20.718 -7.035 -7.382 21.103 -7.431 -8.791 3.721 + 17.221 -2.668 2.984 17.491 -3.215 3.614 17.721 -1.858 7.794 2.643 + 10.709 8.743 2.657 10.587 7.675 2.469 11.642 -0.880 -15.861 -3.791 + -1.740 -15.720 -4.186 -0.574 -16.685 -4.171 -13.293 8.622 2.477 -13.788 + 8.657 3.295 -12.596 9.269 2.590 -12.545 5.816 20.659 -13.476 5.835 + 20.437 -12.233 6.699 20.458 -11.595 -5.446 -15.257 -11.896 -4.818 -14.599 + -10.640 -5.415 -15.197 -4.664 11.154 -10.064 -5.611 11.048 -10.147 -4.552 + 12.021 -9.674 1.427 -19.512 -10.840 1.222 -18.587 -10.974 0.794 -19.979 + -11.387 -11.897 14.818 -1.396 -12.008 14.281 -2.180 -11.986 14.201 -0.669 + -20.474 4.580 -8.724 -20.997 4.712 -9.515 -19.588 4.417 -9.047 -7.340 + 16.781 16.444 -7.918 16.405 17.108 -7.926 17.262 15.860 -0.342 19.482 + -1.213 -1.088 19.456 -1.812 0.079 18.629 -1.317 -10.340 4.018 3.414 + -9.680 3.348 3.595 -10.688 4.250 4.275 -21.213 2.404 -12.350 -20.380 + 2.316 -11.887 -20.976 2.761 -13.206 10.243 -9.261 -20.486 10.978 -8.877 + -20.963 10.052 -8.630 -19.791 -4.209 -4.898 -8.420 -4.268 -5.713 -8.919 + -4.481 -5.139 -7.535 1.838 -12.593 -1.004 0.918 -12.598 -1.266 2.308 + -12.300 -1.785 -4.317 19.765 -8.345 -4.120 19.039 -7.753 -5.185 20.065 + -8.077 -4.706 -7.564 13.001 -4.731 -7.779 12.068 -4.092 -6.832 13.061 + 8.008 15.015 8.047 8.008 14.168 7.601 8.706 14.944 8.697 -11.929 + -0.567 -1.381 -11.395 -1.326 -1.145 -12.468 -0.872 -2.111 -20.169 -12.254 + -10.082 -20.661 -12.294 -10.902 -19.252 -12.314 -10.351 13.037 17.385 -10.292 + 12.974 17.269 -11.240 12.448 18.114 -10.101 -16.269 -17.292 -0.221 -15.836 + -17.111 0.613 -16.861 -18.020 -0.031 -13.304 8.706 -7.844 -12.472 8.687 + -7.372 -13.271 7.940 -8.417 -11.551 -17.174 -5.177 -10.912 -16.512 -5.438 + -11.776 -17.624 -5.991 -16.571 -3.195 -10.781 -15.941 -3.242 -11.500 -16.894 + -4.091 -10.686 18.679 7.089 12.175 19.136 7.887 11.911 17.800 7.383 + 12.411 16.215 -15.731 5.557 15.635 -15.904 6.298 16.122 -14.792 5.394 + -11.753 -20.851 -2.792 -12.331 -20.367 -2.202 -12.121 -21.735 -2.815 8.486 + -17.890 16.417 7.680 -17.466 16.122 8.246 -18.811 16.525 17.731 5.727 + -8.606 18.376 5.150 -8.197 18.146 6.589 -8.604 -4.343 0.628 18.354 + -4.084 0.908 17.476 -5.175 1.074 18.512 -10.801 -0.648 19.026 -10.452 + -0.830 19.899 -11.291 -1.437 18.795 -9.909 11.260 -20.003 -10.054 11.337 + -20.946 -9.100 10.755 -19.925 -3.845 13.502 -9.331 -3.943 14.386 -9.685 + -2.899 13.359 -9.301 10.448 2.607 10.269 10.966 3.406 10.171 10.969 + 1.930 9.837 15.121 16.452 2.553 15.058 17.229 3.109 15.416 15.759 + 3.143 -13.068 -15.416 -7.153 -12.658 -14.704 -7.644 -12.934 -15.183 -6.235 + -13.206 2.251 -7.526 -12.905 2.652 -8.341 -13.971 1.735 -7.781 4.133 + -13.600 -7.694 3.972 -14.213 -8.411 3.946 -14.103 -6.902 -14.230 -16.749 + 3.096 -14.226 -17.707 3.095 -14.277 -16.509 2.171 -18.921 9.016 -7.343 + -19.378 8.175 -7.352 -18.496 9.067 -8.199 -8.635 -18.663 11.672 -8.290 + -19.487 12.016 -7.873 -18.085 11.625 14.511 19.206 -7.550 13.839 19.032 + -6.890 15.249 18.654 -7.292 1.775 -21.544 13.298 1.454 -21.375 12.413 + 1.952 -20.676 13.659 9.441 -6.067 13.547 10.279 -5.650 13.749 9.603 + -6.550 12.737 -6.595 2.264 18.704 -7.205 2.074 19.416 -6.798 3.163 + 18.448 12.851 2.515 -7.812 12.348 3.132 -7.280 12.901 2.927 -8.675 + 3.683 -20.038 -9.484 3.007 -20.414 -10.049 3.197 -19.534 -8.832 -17.126 + -4.026 -15.918 -17.909 -4.466 -16.249 -17.247 -4.003 -14.969 -12.376 -12.802 + 0.361 -12.543 -11.903 0.643 -11.596 -13.066 0.850 -1.347 4.129 -17.824 + -0.746 4.029 -17.086 -1.000 4.873 -18.316 -2.783 6.094 -0.427 -2.553 + 7.014 -0.298 -3.410 6.103 -1.150 11.902 -7.223 -1.672 12.462 -7.940 + -1.373 12.113 -6.495 -1.088 -13.327 15.665 13.209 -12.961 15.393 14.050 + -13.066 16.582 13.119 -6.529 -12.048 -10.685 -5.784 -12.234 -10.114 -7.027 + -12.865 -10.704 -4.124 8.246 -13.867 -4.202 9.157 -14.151 -4.274 7.734 + -14.662 20.065 13.884 4.261 19.153 14.093 4.059 20.455 13.669 3.413 + 8.381 -0.553 1.400 7.772 -0.126 0.798 7.848 -1.200 1.861 -18.924 + -7.792 4.538 -18.699 -6.943 4.919 -19.083 -8.359 5.293 8.136 -17.962 + 8.907 8.890 -17.383 9.016 8.429 -18.805 9.253 -1.196 -3.910 -3.493 + -0.461 -4.334 -3.050 -0.868 -3.039 -3.720 9.867 14.624 -10.242 10.779 + 14.438 -10.020 9.920 15.271 -10.947 -9.700 -9.298 1.405 -9.831 -9.804 + 0.603 -8.882 -8.824 1.258 -4.918 -20.827 5.105 -5.288 -20.202 5.727 + -5.599 -20.938 4.442 -3.818 -2.123 3.525 -4.383 -1.542 4.035 -3.876 + -2.967 3.972 -17.272 -14.596 -5.613 -16.395 -14.329 -5.338 -17.171 -14.841 + -6.532 -2.431 -20.348 3.251 -2.905 -20.059 2.471 -3.093 -20.364 3.941 + -0.190 13.429 16.197 -0.179 13.775 17.090 -0.411 14.184 15.651 5.126 + -0.567 18.692 5.884 -0.242 19.178 4.954 -1.431 19.067 9.534 10.095 + 15.129 9.858 9.660 15.917 8.928 9.465 14.739 -0.313 9.171 -11.250 + -0.473 8.392 -11.782 -0.980 9.796 -11.533 -4.366 13.511 -3.525 -5.257 + 13.836 -3.394 -4.296 12.760 -2.935 -16.445 10.412 -6.470 -16.046 10.472 + -7.338 -17.362 10.199 -6.643 -2.229 -6.528 -11.559 -2.780 -6.327 -12.316 + -1.337 -6.535 -11.907 3.818 11.109 -10.876 4.453 11.811 -10.735 4.325 + 10.303 -10.776 -9.918 4.592 -11.511 -10.036 4.270 -10.618 -9.410 3.909 + -11.948 -3.449 4.253 -12.907 -2.598 4.685 -12.844 -3.858 4.641 -13.680 + -8.207 -11.612 10.468 -7.762 -11.187 11.201 -8.269 -12.531 10.725 15.678 + 1.969 -4.481 15.922 1.068 -4.695 15.887 2.059 -3.552 14.524 -17.062 + 7.445 13.731 -17.403 7.859 15.140 -16.942 8.169 12.210 -15.358 -6.918 + 12.476 -15.367 -5.999 12.882 -14.836 -7.356 -7.268 10.916 2.003 -7.850 + 11.658 2.168 -7.852 10.212 1.720 6.594 -6.616 -20.116 7.214 -7.080 + -19.552 5.741 -6.984 -19.888 8.778 13.580 12.815 9.360 14.278 13.117 + 7.897 13.909 12.993 11.326 9.874 -6.905 12.231 9.587 -6.780 10.828 + 9.390 -6.246 -18.236 -1.990 14.744 -18.545 -2.871 14.955 -18.987 -1.423 + 14.921 9.241 -15.942 -18.106 9.195 -16.853 -17.815 8.397 -15.567 -17.852 + -13.976 -7.470 9.165 -14.289 -8.057 9.853 -14.559 -6.712 9.212 14.396 + 2.185 11.645 14.428 1.516 10.961 14.060 1.725 12.414 16.758 -6.546 + 15.918 17.314 -6.223 16.626 15.939 -6.791 16.349 -0.054 -5.858 16.188 + -0.450 -5.946 17.055 -0.739 -6.145 15.583 -4.033 19.509 -13.955 -3.577 + 18.894 -14.530 -4.617 19.994 -14.538 20.207 1.591 12.041 20.427 2.319 + 11.460 20.881 1.613 12.720 -14.832 -2.689 -15.487 -15.613 -3.096 -15.862 + -14.774 -1.838 -15.920 -0.042 -13.595 -8.497 0.667 -12.951 -8.516 -0.309 + -13.685 -9.411 -5.435 2.616 14.021 -5.998 3.253 13.580 -4.953 2.191 + 13.312 -20.985 4.212 10.629 -21.768 4.224 10.079 -20.815 5.133 10.824 + 0.190 -8.009 -4.476 -0.140 -7.368 -3.846 0.972 -7.601 -4.848 4.675 + -0.679 14.802 5.232 -1.273 15.304 5.289 -0.125 14.320 -19.109 -0.784 + 3.343 -19.456 -0.972 4.215 -18.968 0.163 3.341 -2.004 -8.081 19.993 + -1.631 -8.939 19.788 -1.688 -7.510 19.293 5.851 6.600 -0.320 6.780 + 6.772 -0.167 5.547 6.187 0.488 -11.949 3.845 13.463 -12.017 3.577 + 12.546 -11.232 4.479 13.475 -10.683 -0.485 8.267 -10.035 -0.861 8.862 + -11.308 -1.195 8.114 0.539 1.322 17.962 0.320 2.133 18.422 -0.190 + 1.186 17.356 -7.825 -12.372 -4.357 -8.484 -12.975 -4.701 -7.227 -12.929 + -3.860 3.561 -16.243 -11.872 2.889 -16.631 -12.431 3.081 -15.642 -11.302 + 11.046 -0.041 6.981 10.136 0.239 7.083 11.469 0.213 7.801 -1.933 + 19.016 -3.236 -1.434 18.798 -4.024 -2.461 18.237 -3.065 -1.289 2.410 + 13.053 -1.142 1.627 13.583 -2.133 2.257 12.629 18.465 -0.783 8.595 + 18.705 -0.362 7.770 19.300 -0.941 9.035 -5.809 -8.067 -14.156 -6.548 + -7.747 -13.639 -6.206 -8.406 -14.958 16.971 -9.888 9.569 16.886 -10.838 + 9.646 16.279 -9.634 8.959 20.561 -1.184 -2.042 21.038 -0.894 -2.819 + 21.013 -1.982 -1.768 -12.113 -13.073 -9.094 -11.750 -12.191 -9.006 -12.755 + -12.997 -9.800 14.087 6.651 -12.191 13.621 6.168 -12.874 14.961 6.261 + -12.177 -13.828 1.113 10.364 -14.620 1.581 10.627 -13.781 1.236 9.416 + -5.051 12.793 -0.175 -5.964 12.563 -0.347 -4.568 11.978 -0.316 0.914 + 22.382 -6.226 0.371 22.900 -5.631 1.796 22.735 -6.113 15.181 4.902 + 12.275 14.962 4.081 11.835 15.921 4.680 12.840 9.150 -16.982 -12.583 + 8.622 -16.994 -11.785 9.839 -16.341 -12.405 -16.959 -0.119 10.413 -17.008 + 0.829 10.537 -17.235 -0.485 11.253 14.283 3.287 14.696 13.377 3.087 + 14.458 14.307 3.190 15.648 2.560 -2.836 23.518 2.436 -2.000 23.967 + 2.087 -3.470 24.057 16.927 7.932 -13.803 17.579 7.852 -13.106 16.932 + 8.862 -14.030 -11.584 4.613 8.482 -12.053 3.852 8.825 -10.909 4.792 + 9.137 -0.297 13.610 -14.770 -0.615 13.464 -15.662 -0.050 14.534 -14.752 + -9.399 11.251 17.016 -9.893 11.897 17.521 -9.799 10.412 17.244 13.244 + -10.412 -13.298 14.065 -9.976 -13.526 13.104 -10.193 -12.377 1.801 12.825 + 14.856 2.385 12.350 15.447 0.965 12.860 15.322 -4.237 -13.629 -12.897 + -3.534 -13.177 -13.364 -3.880 -13.790 -12.024 11.771 -6.675 19.364 12.142 + -7.429 18.904 10.875 -6.609 19.031 -14.709 -18.440 8.383 -15.323 -18.670 + 9.081 -15.141 -18.729 7.579 15.705 16.257 -5.752 14.774 16.407 -5.590 + 15.725 15.617 -6.463 13.543 0.263 13.584 13.984 -0.184 14.306 13.085 + 0.994 13.998 7.705 -10.577 -19.905 8.380 -10.077 -20.364 7.930 -11.492 + -20.071 20.897 -8.603 -12.498 21.294 -8.914 -11.685 20.434 -9.365 -12.846 + 8.858 -11.049 -9.416 8.748 -11.914 -9.020 8.243 -11.041 -10.149 -2.354 + 18.161 -9.757 -1.680 18.672 -10.205 -3.148 18.690 -9.836 -20.824 -11.548 + 4.161 -20.534 -12.447 4.011 -20.292 -11.022 3.564 12.623 -16.383 -4.206 + 12.048 -17.138 -4.335 13.210 -16.647 -3.498 -9.706 17.038 9.674 -10.624 + 17.054 9.946 -9.567 16.149 9.349 -4.712 -0.160 -0.807 -4.450 0.335 + -0.031 -4.494 -1.068 -0.597 4.925 -11.255 -18.495 4.855 -12.166 -18.780 + 5.463 -10.835 -19.166 -9.304 -8.084 -14.982 -9.003 -7.180 -14.887 -8.563 + -8.543 -15.378 -1.067 20.976 1.103 -0.648 20.714 0.284 -1.995 20.781 + 0.971 -16.829 5.469 6.912 -16.953 5.120 7.795 -17.496 5.029 6.385 + -6.537 11.232 16.451 -7.469 11.263 16.667 -6.104 11.642 17.200 -12.156 + -7.226 -5.627 -13.041 -7.592 -5.628 -11.998 -6.983 -4.715 -1.025 18.028 + -5.516 -1.916 17.753 -5.735 -0.643 18.288 -6.354 12.429 14.727 -0.255 + 12.137 14.647 0.653 13.108 15.400 -0.230 1.878 4.166 13.221 2.726 + 4.586 13.361 1.837 3.480 13.887 -4.086 -17.345 -2.374 -4.125 -16.482 + -2.787 -4.984 -17.516 -2.092 3.625 14.511 15.975 2.905 14.174 15.442 + 4.060 13.728 16.312 1.637 6.895 16.607 1.166 7.042 17.428 1.585 + 5.949 16.467 -9.977 17.416 15.805 -9.982 16.745 16.487 -10.662 17.143 + 15.195 2.277 -9.278 20.385 2.861 -8.680 19.917 2.457 -9.112 21.310 + -6.241 16.474 -0.254 -7.188 16.344 -0.308 -6.010 16.188 0.630 -10.962 + 15.281 1.788 -11.101 15.491 2.712 -11.751 14.806 1.529 11.685 -14.859 + 15.539 11.705 -14.916 14.584 10.854 -14.427 15.736 18.829 -6.984 0.351 + 19.060 -7.913 0.322 17.895 -6.977 0.559 3.342 7.402 19.963 3.170 + 6.484 19.755 3.294 7.851 19.119 15.161 -8.066 -10.721 14.767 -8.578 + -10.015 16.008 -8.483 -10.876 4.021 -7.730 -19.446 3.567 -8.568 -19.357 + 3.656 -7.185 -18.748 1.311 8.599 5.187 2.119 9.018 5.486 0.867 + 9.274 4.674 -4.727 1.707 4.832 -4.118 2.440 4.913 -4.425 1.228 + 4.060 -2.032 7.689 16.418 -1.553 8.469 16.137 -2.906 7.796 16.042 + -7.232 -9.456 -10.686 -7.909 -9.918 -11.181 -6.653 -10.149 -10.369 -3.121 + 3.606 3.799 -2.904 4.338 4.377 -2.648 3.793 2.988 -17.104 -5.899 + -10.431 -16.170 -5.990 -10.238 -17.537 -6.037 -9.589 -5.335 9.943 8.489 + -6.035 10.586 8.607 -5.114 9.998 7.559 1.694 7.421 1.970 1.634 + 7.320 1.020 0.794 7.591 2.249 -6.975 -0.062 3.746 -6.538 -0.567 + 4.432 -6.633 -0.423 2.928 9.353 19.534 -5.362 9.712 19.102 -6.137 + 9.508 20.466 -5.513 -18.960 15.111 7.701 -18.145 14.611 7.719 -19.221 + 15.111 6.780 20.867 11.244 1.779 19.970 10.969 1.967 21.384 10.889 + 2.502 -4.225 2.699 9.477 -4.583 3.585 9.534 -4.632 2.326 8.695 + -5.574 4.912 10.030 -5.797 4.900 9.099 -6.036 5.675 10.377 -17.709 + 11.795 7.294 -18.328 11.798 8.024 -16.927 11.367 7.644 -9.316 -0.348 + 5.338 -9.994 0.092 4.826 -8.538 -0.319 4.780 -3.435 11.069 -5.607 + -3.255 11.985 -5.397 -3.973 10.758 -4.879 -6.150 -22.480 2.967 -6.484 + -21.830 2.349 -5.250 -22.639 2.685 9.480 -10.825 15.794 9.282 -9.898 + 15.662 8.636 -11.266 15.702 -7.433 7.481 22.030 -8.303 7.426 22.426 + -7.487 8.231 21.437 -6.953 13.642 11.187 -6.210 13.748 10.593 -7.071 + 12.695 11.257 -11.535 2.238 19.627 -10.971 2.928 19.976 -10.931 1.538 + 19.380 -21.000 14.165 9.102 -20.320 14.530 8.536 -21.364 14.924 9.558 + -18.042 -4.029 -13.442 -18.271 -3.247 -12.939 -18.475 -4.747 -12.980 -20.373 + -5.062 -10.323 -20.673 -5.938 -10.564 -20.026 -5.163 -9.437 -7.395 1.182 + 10.329 -7.434 0.351 10.802 -7.072 0.948 9.459 -11.709 -18.018 4.086 + -11.582 -18.549 3.300 -12.376 -17.377 3.837 -4.653 -5.565 -17.855 -5.233 + -4.939 -17.422 -4.697 -5.331 -18.782 -20.699 -7.453 -5.736 -20.448 -8.231 + -5.237 -21.001 -6.831 -5.074 4.478 6.093 13.458 4.597 5.882 12.532 + 4.555 7.046 13.499 -7.204 7.094 -10.193 -7.177 6.302 -10.731 -6.557 + 7.676 -10.592 18.505 -2.555 15.988 17.773 -2.217 16.504 19.154 -2.821 + 16.638 5.171 10.488 4.112 5.917 11.017 3.829 4.431 11.096 4.105 + 12.370 10.829 -9.435 12.831 11.515 -8.951 11.922 10.320 -8.759 -9.094 + 15.795 -0.409 -9.527 15.974 0.426 -9.756 15.338 -0.928 -1.931 10.671 + 12.524 -1.371 9.897 12.594 -2.271 10.640 11.630 -8.784 -0.271 -1.112 + -9.179 0.081 -1.909 -9.067 -1.185 -1.088 15.544 -11.294 12.933 16.407 + -11.641 13.158 15.326 -10.705 13.655 -1.142 -19.178 9.545 -0.299 -19.157 + 9.092 -1.772 -19.421 8.867 -9.518 10.443 -11.727 -8.653 10.439 -11.318 + -9.600 9.576 -12.123 -7.188 -20.112 -6.293 -6.755 -20.937 -6.510 -7.400 + -19.722 -7.141 -17.808 8.388 -1.733 -18.233 9.125 -1.293 -18.126 8.433 + -2.635 1.539 18.189 -3.873 1.074 17.717 -3.182 0.882 18.322 -4.556 + -19.252 -1.484 -12.197 -18.943 -1.545 -11.293 -20.179 -1.718 -12.150 18.510 + -6.590 7.430 18.826 -7.471 7.229 18.294 -6.620 8.362 7.253 14.842 + 3.399 8.050 14.918 3.924 6.673 15.520 3.746 -5.996 13.754 5.230 + -6.877 13.916 5.568 -5.415 14.155 5.876 19.730 -1.530 -5.687 19.956 + -2.371 -5.290 18.797 -1.602 -5.887 -16.855 -8.107 1.667 -17.638 -7.663 + 1.341 -16.712 -7.732 2.536 -2.133 -4.252 4.366 -2.164 -4.881 5.087 + -2.179 -3.396 4.793 -7.171 7.715 7.720 -6.662 6.905 7.685 -6.589 + 8.345 8.146 -3.529 -23.418 2.348 -2.978 -23.059 3.043 -2.932 -23.545 + 1.611 -2.808 16.587 8.705 -1.886 16.331 8.718 -2.997 16.851 9.606 + 14.695 -5.185 -2.080 14.015 -4.924 -1.458 14.648 -4.530 -2.775 -4.964 + 15.531 7.292 -4.484 15.927 8.019 -5.193 16.268 6.727 16.265 -11.382 + -13.276 17.133 -11.670 -12.993 15.739 -11.385 -12.476 -7.986 -14.752 -0.925 + -7.681 -14.306 -0.135 -8.551 -14.113 -1.359 -9.488 5.365 12.418 -8.817 + 4.885 11.932 -9.133 6.249 12.506 -10.948 -4.581 8.818 -11.225 -3.938 + 9.472 -11.481 -4.385 8.048 11.241 -13.800 10.418 11.594 -13.470 11.245 + 10.940 -13.017 9.957 -1.170 -22.566 10.271 -0.879 -22.419 9.371 -0.640 + -23.302 10.577 -9.833 -3.073 14.722 -9.774 -2.899 15.661 -10.727 -3.390 + 14.593 -1.926 13.037 8.577 -1.992 12.901 7.632 -2.798 12.829 8.911 + -3.255 15.580 -17.355 -3.715 15.461 -18.185 -2.415 15.138 -17.481 6.532 + -4.003 -21.253 7.222 -3.741 -20.642 6.396 -4.933 -21.076 -2.978 -13.067 + 4.889 -2.886 -12.388 5.558 -2.219 -13.636 5.019 3.467 -14.191 2.542 + 4.247 -13.772 2.905 3.425 -15.041 2.981 3.607 12.119 0.615 3.282 + 11.321 1.031 4.066 11.812 -0.166 -9.831 12.714 7.500 -9.528 13.606 + 7.326 -9.723 12.258 6.666 5.929 15.913 6.029 6.615 15.554 6.592 + 5.863 16.832 6.287 -5.513 17.796 5.499 -5.562 18.714 5.766 -4.896 + 17.791 4.768 10.910 -7.705 -17.968 11.471 -6.940 -17.838 11.521 -8.434 + -18.077 2.680 18.612 3.052 1.808 18.245 3.193 2.518 19.501 2.737 + 20.454 -14.861 9.057 21.223 -14.920 8.490 20.096 -13.990 8.887 2.454 + 0.452 19.712 2.841 -0.367 19.401 1.953 0.779 18.965 11.162 12.710 + 6.421 10.873 13.318 7.101 10.490 12.028 6.409 -5.360 -2.688 16.142 + -5.728 -1.853 16.431 -5.778 -2.854 15.297 -4.177 2.280 -18.678 -3.557 + 2.493 -17.981 -4.975 2.019 -18.218 -0.799 9.954 15.560 -1.242 10.472 + 16.233 -0.906 10.463 14.757 -11.439 6.557 17.802 -10.875 5.839 18.090 + -11.218 6.682 16.880 -5.921 8.717 3.004 -6.336 9.562 2.835 -6.646 + 8.092 3.021 -1.196 -10.074 4.896 -1.320 -10.890 5.381 -1.278 -10.326 + 3.977 15.003 -10.621 -4.095 14.326 -10.070 -3.702 14.671 -10.821 -4.971 + 7.643 -8.512 -18.509 7.702 -9.348 -18.971 8.334 -8.555 -17.847 -2.756 + 12.977 -13.479 -2.599 13.586 -12.757 -2.029 13.128 -14.083 10.741 -0.839 + 0.214 11.026 0.071 0.299 9.863 -0.852 0.594 16.650 2.602 -2.181 + 17.048 3.431 -1.918 16.332 2.218 -1.363 -1.986 5.579 22.723 -2.461 + 6.095 23.374 -2.284 5.923 21.881 10.982 -14.225 -4.126 10.261 -14.471 + -3.547 11.511 -15.019 -4.200 -2.434 -11.615 2.815 -3.097 -11.919 2.194 + -2.634 -12.082 3.626 5.645 -3.682 -5.019 5.224 -4.454 -4.640 6.162 + -4.026 -5.747 -4.274 10.522 5.947 -4.669 10.788 5.116 -3.899 9.659 + 5.768 -16.243 11.295 -11.855 -16.718 10.559 -11.469 -16.701 12.071 -11.532 + 8.628 -9.058 -14.157 8.129 -9.850 -13.959 9.335 -9.357 -14.729 -11.687 + 14.642 15.222 -11.016 14.582 14.541 -11.326 14.147 15.958 -0.367 -12.291 + -11.191 -0.793 -11.515 -10.828 -1.059 -12.741 -11.675 -19.022 -3.217 -4.708 + -18.070 -3.320 -4.701 -19.324 -3.835 -5.374 -7.382 11.624 8.999 -7.809 + 11.256 9.773 -8.052 12.177 8.597 12.527 -4.071 17.528 11.613 -4.287 + 17.714 12.500 -3.623 16.682 2.999 15.293 12.063 2.693 15.399 11.162 + 3.275 14.378 12.116 11.469 17.503 6.100 11.757 17.637 5.197 12.064 + 16.836 6.444 -8.384 9.471 20.297 -7.846 9.097 19.599 -9.167 9.792 + 19.849 -7.120 8.619 18.113 -6.314 8.231 17.773 -7.817 8.213 17.597 + 10.010 -16.013 9.828 10.350 -15.125 9.934 9.919 -16.343 10.722 -13.217 + 15.545 7.579 -12.967 14.746 7.115 -14.171 15.497 7.641 -3.157 -20.277 + 8.185 -2.816 -20.830 7.482 -3.970 -19.916 7.832 9.525 5.612 -17.548 + 9.464 4.676 -17.358 10.274 5.912 -17.033 -15.911 -5.191 6.471 -15.921 + -6.060 6.070 -16.818 -4.891 6.414 1.847 -18.992 14.044 1.825 -18.629 + 14.929 1.929 -18.228 13.474 13.025 -8.930 0.314 12.755 -9.837 0.456 + 13.864 -8.998 -0.142 5.494 -17.890 8.647 5.417 -18.046 9.589 6.436 + -17.816 8.494 -8.277 -21.122 -3.846 -7.924 -20.800 -4.675 -8.757 -20.378 + -3.484 1.123 -2.850 5.080 1.348 -3.757 5.286 0.341 -2.915 4.532 + 18.697 -13.947 2.444 18.995 -13.288 1.818 19.414 -14.581 2.484 0.098 + 6.176 5.161 0.762 5.566 4.840 0.524 7.033 5.130 1.342 -8.312 + 5.597 0.909 -9.142 5.398 1.684 -8.013 4.754 -16.774 4.008 14.985 + -16.281 3.574 15.681 -17.616 4.224 15.386 2.001 9.033 15.107 1.856 + 8.310 15.718 1.263 9.624 15.256 9.931 -12.523 -12.371 9.018 -12.402 + -12.113 9.887 -12.785 -13.291 -11.960 1.593 -4.743 -12.012 0.645 -4.625 + -12.091 1.725 -5.682 -15.015 -8.649 -10.001 -14.378 -8.655 -10.716 -14.601 + -8.124 -9.316 0.145 10.668 -14.817 0.465 10.675 -15.719 -0.121 11.572 + -14.650 10.864 9.236 6.037 11.025 8.456 6.568 9.976 9.506 6.271 + -7.852 7.497 13.807 -7.563 8.200 13.225 -7.041 7.108 14.134 -4.067 + 20.007 9.486 -4.477 19.556 8.747 -4.109 19.376 10.205 -11.291 15.370 + -10.599 -10.415 15.323 -10.216 -11.421 14.514 -11.006 1.508 12.534 8.901 + 1.619 11.659 9.273 0.855 12.951 9.463 -3.061 -1.370 -8.722 -2.592 + -2.205 -8.741 -3.163 -1.175 -7.790 8.034 -12.702 7.803 8.767 -13.063 + 7.305 7.775 -11.920 7.316 -9.064 14.522 9.687 -8.299 14.208 10.170 + -9.287 13.803 9.097 -11.628 7.612 5.804 -12.225 7.065 5.294 -11.971 + 7.573 6.697 5.946 -19.866 5.323 6.128 -19.740 4.391 6.593 -19.319 + 5.769 -18.735 12.248 2.073 -19.123 13.094 1.850 -18.766 12.215 3.029 + 10.565 -2.704 -10.626 10.509 -2.082 -11.352 11.191 -3.364 -10.925 8.999 + -7.859 15.715 8.896 -7.482 16.588 9.195 -7.111 15.152 -2.340 0.356 + -3.792 -2.274 0.703 -2.903 -1.762 -0.407 -3.796 7.205 -13.223 16.076 + 6.771 -13.147 16.926 6.904 -12.458 15.586 6.832 23.460 -6.374 6.601 + 24.388 -6.422 6.483 23.170 -5.531 -18.697 6.037 12.156 -18.727 5.204 + 11.686 -17.845 6.035 12.591 11.405 -1.944 -2.159 12.356 -2.055 -2.172 + 11.203 -1.715 -1.252 3.637 -8.502 17.248 3.954 -7.608 17.118 2.963 + -8.617 16.578 13.867 -8.078 13.150 13.532 -7.541 13.868 14.557 -8.607 + 13.550 -1.306 -9.553 -1.488 -2.014 -8.961 -1.232 -1.193 -10.131 -0.734 + 13.187 -5.762 2.354 13.709 -6.512 2.639 13.147 -5.192 3.122 -7.819 + -19.895 -9.268 -7.228 -19.250 -9.656 -7.452 -20.741 -9.524 -14.305 4.623 + 8.085 -13.401 4.842 7.861 -14.823 4.969 7.358 16.295 4.763 5.684 + 16.554 3.929 5.293 16.900 4.883 6.416 20.028 12.852 -4.008 19.969 + 12.358 -3.191 19.520 13.647 -3.845 -0.884 8.022 13.204 -0.601 7.875 + 14.106 -1.024 7.144 12.850 9.727 14.467 -0.624 9.595 13.577 -0.950 + 10.668 14.525 -0.461 -9.551 -7.021 4.590 -8.884 -6.335 4.603 -9.180 + -7.704 4.031 8.611 -11.666 20.134 9.509 -11.370 19.987 8.698 -12.408 + 20.733 11.277 -1.376 15.603 11.495 -0.722 16.267 10.820 -0.884 14.922 + 2.230 10.062 9.769 2.103 9.126 9.609 1.571 10.284 10.427 -0.401 + -9.864 17.454 0.367 -10.055 16.915 -1.062 -9.564 16.831 -12.303 -10.631 + 1.954 -12.804 -10.128 2.595 -11.492 -10.135 1.840 -10.092 14.611 -16.491 + -10.198 14.821 -15.563 -9.604 15.352 -16.850 19.259 -12.186 9.832 19.166 + -11.309 9.459 18.372 -12.429 10.099 12.515 3.053 2.582 12.455 2.423 + 3.300 11.835 2.779 1.966 4.824 7.585 -16.468 5.690 7.530 -16.871 + 4.997 7.574 -15.526 3.678 22.295 -7.094 4.086 21.734 -6.433 3.845 + 21.848 -7.924 5.973 -9.154 -1.073 6.816 -9.011 -0.644 6.199 -9.474 + -1.946 -4.066 4.790 -15.591 -4.760 4.132 -15.540 -3.457 4.444 -16.243 + -19.365 8.148 3.214 -19.465 8.790 3.916 -18.418 8.047 3.116 -6.619 + -21.039 0.785 -6.542 -20.157 0.421 -6.818 -21.594 0.031 -9.783 14.809 + -6.385 -8.900 14.706 -6.740 -10.325 14.232 -6.923 7.892 -8.496 3.867 + 8.072 -9.428 3.990 6.948 -8.414 4.007 -3.162 17.366 -15.041 -3.534 + 16.932 -14.272 -3.222 16.711 -15.737 -0.688 -16.307 15.493 0.171 -16.685 + 15.679 -0.702 -15.489 15.989 20.519 0.648 -7.301 21.447 0.668 -7.068 + 20.142 -0.020 -6.727 -15.159 -9.001 11.016 -15.003 -9.908 10.750 -16.046 + -9.006 11.375 -6.596 -14.110 7.095 -7.513 -14.352 7.226 -6.550 -13.191 + 7.361 -2.325 -19.273 -2.619 -2.959 -18.557 -2.670 -2.779 -20.024 -3.001 + -1.902 0.717 -24.224 -2.797 0.583 -24.539 -1.959 0.587 -23.278 9.530 + -3.119 -6.417 8.953 -2.368 -6.277 10.278 -2.956 -5.843 -7.075 -2.157 + 19.194 -7.170 -1.441 19.822 -7.959 -2.515 19.103 -11.006 5.423 -16.406 + -10.449 5.365 -17.183 -11.796 5.868 -16.712 -7.257 -3.867 13.786 -8.074 + -3.525 14.149 -7.153 -4.726 14.195 -4.430 9.796 15.737 -4.270 10.421 + 15.030 -5.302 10.019 16.062 -15.653 -5.132 9.328 -15.221 -4.930 8.498 + -16.487 -4.665 9.283 -9.046 3.830 -3.325 -8.103 3.985 -3.280 -9.423 + 4.696 -3.481 6.264 -5.616 -9.862 5.357 -5.910 -9.934 6.460 -5.669 + -8.926 10.483 0.233 13.088 9.542 0.367 12.978 10.768 -0.159 12.263 + -3.116 -1.680 0.975 -3.187 -1.976 1.883 -3.240 -2.474 0.454 -1.803 + 21.082 3.786 -1.239 21.082 3.013 -1.441 21.767 4.348 -5.631 -4.687 + 18.446 -5.646 -4.000 17.780 -4.883 -4.467 19.001 -12.357 7.437 8.518 + -11.866 8.137 8.947 -11.833 6.650 8.667 -6.688 18.933 8.686 -6.856 + 18.718 9.604 -7.518 19.287 8.367 -5.758 -12.862 13.158 -5.397 -12.089 + 13.592 -6.085 -13.408 13.872 3.761 17.551 13.639 3.099 18.161 13.313 + 4.212 17.245 12.852 18.149 -0.164 -14.566 18.568 0.180 -15.356 17.894 + 0.615 -14.072 4.556 -10.824 -15.925 4.949 -10.907 -16.794 3.681 -10.472 + -16.091 5.217 -19.104 12.775 4.941 -18.188 12.762 4.934 -19.452 11.930 + 16.694 2.258 -13.306 17.424 2.270 -12.686 15.912 2.293 -12.755 -5.481 + 16.267 13.013 -5.010 16.853 13.604 -5.397 15.402 13.415 16.134 -0.280 + -8.757 16.659 -0.948 -8.316 15.361 -0.178 -8.201 -3.917 -18.225 10.634 + -3.335 -18.980 10.542 -3.332 -17.493 10.825 3.311 -0.834 11.416 3.975 + -0.166 11.589 2.491 -0.439 11.713 -6.551 5.693 -17.004 -7.002 4.931 + -16.640 -5.626 5.539 -16.811 -2.155 -16.408 12.108 -2.600 -16.550 12.944 + -1.224 -16.490 12.315 -8.715 11.216 11.083 -8.360 10.879 11.905 -9.647 + 11.345 11.260 -15.456 14.800 -10.366 -15.355 15.674 -10.743 -16.291 14.835 + -9.900 6.166 19.983 0.498 5.551 19.698 -0.178 6.240 20.929 0.371 + -6.564 9.491 -16.847 -6.474 10.443 -16.820 -6.912 9.307 -17.719 -9.493 + 7.476 -11.680 -8.700 7.381 -11.153 -9.941 6.635 -11.593 11.589 -9.651 + 9.508 10.711 -9.838 9.841 12.146 -9.655 10.287 -16.670 -5.922 13.787 + -16.191 -6.750 13.754 -16.079 -5.287 13.383 -5.631 14.668 2.186 -4.777 + 14.564 2.606 -5.536 14.230 1.340 18.678 10.325 -7.001 18.084 10.469 + -6.265 19.548 10.290 -6.603 -5.764 -3.311 -16.570 -6.014 -3.001 -17.441 + -6.501 -3.070 -16.009 -10.641 10.846 0.100 -10.375 9.930 0.018 -9.817 + 11.332 0.148 -4.315 15.092 -5.749 -4.826 14.521 -6.323 -4.172 14.571 + -4.959 3.297 -13.495 -15.744 4.002 -12.848 -15.780 3.585 -14.196 -16.328 + 3.680 2.275 14.843 4.146 1.738 15.483 2.764 2.010 14.929 -14.288 + 5.842 18.294 -14.165 4.901 18.416 -13.424 6.165 18.038 -4.551 7.674 + -16.565 -4.998 6.869 -16.826 -5.175 8.371 -16.768 15.623 -9.392 15.178 + 16.454 -9.031 15.486 15.434 -10.108 15.784 2.178 -11.928 -8.965 2.654 + -12.668 -8.590 2.676 -11.158 -8.690 5.439 -3.622 13.333 6.064 -4.302 + 13.083 4.631 -3.860 12.877 9.792 21.234 4.592 9.187 20.571 4.259 + 10.471 20.734 5.045 -12.173 -9.702 13.791 -11.562 -9.580 13.064 -11.696 + -10.249 14.416 -14.822 1.494 13.651 -14.076 1.360 13.067 -14.471 2.016 + 14.372 16.168 -12.935 6.769 15.672 -12.240 6.337 17.066 -12.816 6.460 + -13.470 -4.898 1.147 -13.024 -4.549 1.919 -13.368 -5.847 1.221 -10.779 + 6.148 -3.121 -11.511 5.765 -3.603 -10.618 6.985 -3.555 -4.381 -2.845 + -5.611 -4.173 -2.036 -6.079 -5.288 -3.035 -5.853 10.373 -5.080 22.751 + 10.122 -5.065 21.827 10.107 -4.223 23.084 15.205 -4.854 8.836 16.023 + -5.343 8.925 15.446 -3.947 9.025 11.165 20.085 0.729 10.320 20.257 + 1.146 11.003 19.330 0.163 -18.289 -16.122 6.712 -17.809 -15.427 7.162 + -17.610 -16.650 6.293 -10.147 8.372 -4.470 -10.428 7.957 -5.285 -9.356 + 8.856 -4.708 13.112 -13.311 -13.784 13.161 -12.355 -13.790 12.870 -13.543 + -14.681 -14.176 8.921 -16.850 -13.305 8.893 -16.454 -14.575 8.085 -16.611 + -3.302 -7.450 -0.692 -3.091 -6.777 -0.045 -3.010 -7.081 -1.525 -19.322 + 6.074 0.029 -19.805 6.316 -0.761 -19.063 6.909 0.417 2.775 -4.624 + 19.847 2.325 -4.369 19.041 2.128 -5.138 20.330 -11.477 2.259 -18.471 + -11.209 2.355 -19.385 -11.635 1.321 -18.364 -1.946 14.560 -11.550 -1.411 + 15.349 -11.458 -1.546 13.929 -10.952 -7.280 11.507 -13.814 -7.983 10.888 + -14.014 -7.734 12.304 -13.539 0.019 -12.325 12.263 -0.380 -12.432 11.400 + -0.723 -12.287 12.867 -4.711 13.267 8.888 -5.356 12.612 8.620 -4.982 + 14.068 8.440 -18.622 1.661 17.582 -18.290 0.788 17.376 -19.069 1.555 + 18.421 16.739 -2.707 -14.373 17.030 -1.823 -14.149 16.036 -2.574 -15.009 + -13.320 2.750 -12.012 -13.951 2.220 -12.499 -12.684 3.029 -12.670 -15.104 + 10.493 -8.963 -14.789 11.365 -9.203 -14.337 10.053 -8.598 -12.066 14.905 + -13.867 -11.881 14.140 -13.322 -13.003 15.063 -13.747 1.117 23.095 -2.536 + 1.223 22.981 -1.592 1.617 22.376 -2.922 18.598 -9.485 11.683 18.095 + -9.546 10.871 19.024 -8.630 11.638 3.905 -16.069 -2.124 3.359 -15.447 + -2.606 3.281 -16.617 -1.648 -10.317 3.377 -8.927 -9.990 2.825 -8.216 + -10.505 2.764 -9.638 -4.404 10.895 -14.799 -5.138 10.940 -14.185 -3.901 + 11.691 -14.631 -2.685 2.122 -9.301 -2.911 1.196 -9.392 -3.406 2.496 + -8.795 14.828 6.931 -15.191 14.122 7.133 -14.576 15.605 7.334 -14.804 + 1.431 -16.458 -13.788 0.520 -16.271 -13.561 1.381 -17.208 -14.381 9.339 + -16.250 1.118 9.520 -17.005 1.679 8.782 -16.598 0.421 -7.944 -12.318 + -14.538 -8.824 -12.135 -14.207 -8.083 -12.933 -15.258 -19.885 -0.643 11.962 + -19.723 0.186 12.412 -19.143 -1.197 12.207 14.168 -2.054 21.130 13.675 + -2.836 21.377 13.856 -1.842 20.250 -15.080 -6.057 -15.650 -15.227 -5.112 + -15.617 -15.703 -6.418 -15.019 -17.838 -0.871 17.424 -17.932 -1.379 16.618 + -17.419 -1.473 18.039 -20.350 -14.320 6.657 -20.598 -14.138 5.751 -19.610 + -14.923 6.587 -2.925 20.820 -5.082 -2.557 20.980 -5.951 -2.374 20.131 + -4.712 -1.166 13.650 -17.765 -0.619 13.290 -18.463 -1.914 13.055 -17.715 + -0.775 19.843 -14.358 -1.716 20.015 -14.324 -0.496 19.854 -13.443 3.322 + 13.479 -7.433 3.042 12.566 -7.365 2.743 13.952 -6.835 -3.448 3.732 + -21.017 -3.832 3.281 -20.265 -2.506 3.586 -20.929 -3.873 18.037 11.457 + -4.457 17.311 11.679 -3.238 18.060 12.173 -21.011 1.604 0.730 -20.565 + 2.331 1.166 -21.942 1.802 0.827 -18.622 -4.675 15.051 -17.907 -5.020 + 14.515 -19.417 -4.988 14.620 6.631 -1.263 -22.328 6.611 -2.051 -21.785 + 7.326 -1.429 -22.965 13.606 12.003 -12.285 13.245 11.755 -13.136 14.053 + 11.215 -11.976 -10.091 -8.525 -2.816 -9.316 -7.970 -2.897 -10.716 -7.993 + -2.322 -1.833 21.827 9.053 -2.765 21.858 9.270 -1.664 20.907 8.853 + 2.835 18.563 8.812 2.007 19.019 8.664 2.984 18.071 8.004 -18.533 + 4.344 4.899 -17.744 4.324 4.357 -19.076 5.028 4.506 -15.181 10.735 + 7.766 -15.028 9.794 7.681 -14.409 11.140 7.371 18.920 12.401 -9.101 + 18.125 12.228 -9.605 19.007 11.642 -8.524 -9.090 11.762 -17.129 -9.428 + 11.686 -18.021 -9.632 12.439 -16.724 -4.242 -4.337 -20.373 -4.822 -3.747 + -19.892 -3.579 -3.761 -20.755 8.063 -9.026 11.208 8.400 -9.888 10.963 + 8.817 -8.442 11.129 4.039 10.660 8.042 4.080 11.585 8.285 3.360 + 10.293 8.608 16.906 14.718 -9.604 16.631 13.804 -9.672 17.849 14.698 + -9.767 -4.022 4.646 18.645 -4.739 4.095 18.331 -3.334 4.028 18.890 + 3.194 11.886 17.177 3.800 11.726 17.900 2.325 11.787 17.567 10.145 + 9.063 -4.565 10.433 9.344 -3.696 9.200 9.214 -4.564 13.502 -3.207 + 14.801 13.284 -2.860 13.936 14.328 -3.672 14.671 5.860 -1.477 -3.559 + 5.786 -2.281 -4.072 6.628 -1.033 -3.919 0.401 -15.957 12.833 0.157 + -15.038 12.722 0.982 -15.960 13.595 -6.087 -7.886 -18.228 -5.426 -8.383 + -18.711 -5.641 -7.079 -17.972 8.437 4.555 3.829 9.385 4.633 3.930 + 8.154 5.423 3.542 -6.529 -5.290 -6.765 -6.142 -5.637 -5.962 -7.139 + -5.971 -7.051 -0.398 -21.168 -7.534 -0.590 -21.294 -8.463 -1.254 -21.016 + -7.132 -1.511 -0.748 -16.826 -1.661 -0.552 -15.901 -1.244 0.088 -17.208 + -7.923 -20.517 8.335 -8.084 -21.454 8.228 -7.333 -20.460 9.087 -5.053 + -4.495 -13.465 -4.729 -5.394 -13.412 -4.623 -4.131 -14.239 -16.025 14.109 + 7.020 -15.824 14.402 6.131 -16.697 13.438 6.905 7.474 -10.322 6.721 + 6.623 -9.885 6.678 8.090 -9.624 6.941 7.734 7.058 14.941 7.539 + 6.121 14.946 7.713 7.303 14.016 5.083 20.354 -5.305 5.218 19.580 + -4.757 5.595 20.180 -6.095 -12.993 1.970 -1.329 -13.851 1.832 -0.926 + -12.575 1.110 -1.302 -12.186 -14.963 10.151 -12.309 -14.317 9.456 -11.699 + -15.674 9.735 8.425 7.065 0.550 9.012 6.318 0.433 8.695 7.454 + 1.382 9.388 -1.995 10.971 8.862 -1.687 10.232 9.048 -2.870 11.158 + -4.833 11.481 13.639 -3.912 11.578 13.396 -5.072 12.328 14.016 -3.343 + -1.510 -13.223 -3.677 -0.990 -12.491 -3.536 -2.416 -12.981 -20.661 -3.405 + 7.784 -20.847 -2.651 8.345 -20.587 -4.142 8.390 -5.448 -7.645 17.570 + -5.938 -6.823 17.561 -4.838 -7.553 18.302 -16.261 -0.469 -4.204 -16.356 + 0.442 -3.926 -16.911 -0.576 -4.899 18.113 5.679 7.704 17.758 6.529 + 7.443 18.058 5.680 8.659 -0.116 -15.860 -0.242 -0.837 -16.451 -0.024 + -0.408 -15.409 -1.035 -14.055 -9.332 3.682 -13.753 -8.852 4.453 -14.986 + -9.484 3.844 -13.997 3.177 -17.879 -13.096 3.086 -18.190 -14.535 2.889 + -18.616 -9.907 -12.607 2.434 -10.826 -12.337 2.442 -9.781 -13.052 3.272 + -7.476 -6.963 -12.126 -8.317 -6.508 -12.104 -7.653 -7.813 -11.722 -1.594 + -4.614 -18.711 -1.922 -5.513 -18.723 -2.330 -4.087 -19.023 2.885 -4.264 + 12.609 2.726 -4.658 11.751 2.584 -4.922 13.235 -16.662 5.353 -13.412 + -17.047 4.552 -13.767 -17.309 5.672 -12.783 3.382 14.286 2.619 3.669 + 13.637 1.978 3.963 14.155 3.369 3.444 -7.091 -9.523 3.531 -7.891 + -10.041 3.374 -7.397 -8.619 1.237 -10.915 14.868 0.851 -10.077 15.124 + 1.629 -10.746 14.012 -15.624 -2.786 -8.043 -16.099 -2.929 -8.862 -14.742 + -2.537 -8.318 -2.274 1.882 -12.177 -2.631 2.757 -12.025 -2.902 1.292 + -11.760 20.453 9.951 11.253 20.762 9.981 12.159 20.351 10.870 11.004 + 6.857 -15.549 9.958 6.722 -15.986 10.799 7.702 -15.876 9.651 -12.084 + -6.462 16.392 -11.653 -5.953 15.705 -11.407 -6.588 17.057 -10.866 7.994 + -7.079 -10.469 8.664 -7.635 -10.403 7.188 -7.308 13.977 13.238 -2.582 + 13.021 13.272 -2.562 14.203 12.500 -2.015 -7.751 3.681 7.466 -7.748 + 2.900 6.912 -8.672 3.812 7.691 -15.425 -2.866 13.715 -16.182 -2.400 + 14.070 -15.551 -2.840 12.767 14.822 -10.212 3.559 14.941 -10.885 2.889 + 14.755 -10.701 4.380 13.206 17.298 0.588 14.037 17.178 0.128 13.411 + 17.115 1.505 -10.222 -16.081 1.307 -9.596 -15.629 0.741 -9.721 -16.299 + 2.093 -20.735 -4.508 -12.886 -20.951 -4.442 -11.955 -21.473 -4.095 -13.333 + 9.129 -11.325 10.338 8.879 -11.952 11.016 8.598 -11.568 9.579 7.131 + 7.172 -18.287 7.454 8.031 -18.017 7.914 6.622 -18.323 1.813 21.266 + 2.139 1.137 21.024 1.506 1.828 22.223 2.119 0.479 1.396 -22.552 + 1.273 1.917 -22.672 0.124 1.294 -23.435 -20.404 -9.182 11.101 -20.461 + -9.073 10.152 -21.106 -9.798 11.313 8.421 -5.985 2.093 8.165 -6.577 + 2.800 9.269 -6.316 1.799 -12.034 0.593 1.075 -11.783 -0.010 0.375 + -11.202 0.883 1.450 19.539 15.970 -3.914 19.238 15.747 -4.795 19.587 + 16.926 -3.913 -3.771 4.393 12.287 -4.116 5.222 12.618 -4.296 4.210 + 11.507 2.004 7.308 -16.441 2.221 7.238 -17.371 2.850 7.395 -16.003 + -13.604 13.733 11.407 -14.476 13.891 11.045 -13.547 14.321 12.160 2.652 + -11.994 11.475 2.796 -12.544 10.705 1.725 -12.108 11.681 -0.450 20.427 + -11.533 -1.153 21.069 -11.634 0.068 20.752 -10.797 6.340 -6.151 12.277 + 6.209 -6.584 11.433 6.432 -6.869 12.903 -9.978 8.257 -21.457 -9.995 + 8.534 -20.541 -9.875 9.070 -21.951 -4.920 -18.301 3.156 -4.828 -17.831 + 3.985 -5.621 -17.840 2.696 -12.622 -12.573 8.785 -13.156 -12.231 9.503 + -12.989 -12.167 8.000 -11.613 -18.681 6.706 -12.427 -18.973 7.118 -11.845 + -18.549 5.787 -5.790 -20.335 10.233 -5.370 -19.496 10.420 -5.077 -20.973 + 10.262 5.298 23.832 6.942 5.687 24.386 7.619 4.917 23.097 7.423 + -9.920 -13.942 -6.296 -9.725 -13.106 -6.719 -10.164 -14.524 -7.015 -16.241 + 0.354 0.250 -17.111 0.223 -0.126 -15.923 1.160 -0.156 1.118 6.628 + -5.142 0.530 6.767 -5.884 0.678 7.050 -4.405 2.882 -15.336 -17.781 + 3.261 -16.173 -18.050 2.037 -15.300 -18.230 12.610 -11.746 15.449 11.848 + -12.174 15.840 13.227 -11.647 16.175 -2.750 11.614 -16.970 -2.154 10.875 + -16.848 -3.611 11.268 -16.733 -20.768 -3.651 1.052 -21.203 -4.119 1.764 + -20.877 -2.726 1.272 -14.832 -6.532 3.736 -14.491 -5.649 3.596 -14.171 + -6.961 4.280 1.004 4.812 -16.520 1.694 4.477 -15.948 1.208 5.741 + -16.625 1.786 -14.297 17.582 1.415 -14.056 18.431 1.146 -13.983 16.943 + 10.938 9.209 11.757 11.297 9.949 12.247 10.210 8.897 12.294 -9.874 + -5.366 -11.882 -10.498 -5.447 -11.161 -10.099 -4.536 -12.301 8.738 -7.240 + 18.632 8.299 -7.737 19.323 8.219 -6.440 18.545 8.142 10.332 5.669 + 7.994 10.860 4.885 7.514 9.613 5.596 5.556 18.069 -8.561 6.069 + 18.872 -8.473 4.728 18.354 -8.947 -15.223 -15.608 -2.063 -16.005 -16.152 + -1.970 -15.448 -14.981 -2.751 3.484 15.492 -12.968 3.713 14.570 -13.086 + 3.368 15.590 -12.023 -3.445 -5.250 -5.534 -3.873 -4.436 -5.800 -2.576 + -5.206 -5.933 20.605 -9.907 8.731 20.086 -9.600 7.987 21.044 -10.694 + 8.409 1.667 0.202 4.077 0.951 0.758 4.381 2.214 0.070 4.852 + 6.451 15.536 10.947 5.877 14.810 10.702 6.905 15.766 10.136 -6.347 + 12.398 -17.521 -7.303 12.396 -17.483 -6.144 12.322 -18.454 -9.811 2.236 + 9.123 -9.837 1.410 8.640 -9.186 2.080 9.831 6.381 -15.402 -6.652 + 6.605 -14.652 -7.203 5.567 -15.144 -6.218 -7.237 14.692 -7.247 -6.790 + 15.301 -6.660 -6.763 13.867 -7.142 -7.059 -11.216 7.581 -7.486 -11.382 + 8.421 -6.596 -10.388 7.707 0.811 -6.417 -11.032 0.975 -5.654 -11.586 + 1.591 -6.486 -10.482 -1.835 6.705 -12.987 -1.128 7.127 -13.475 -2.634 + 7.110 -13.324 -7.769 -0.299 21.273 -8.018 0.606 21.088 -8.600 -0.751 + 21.421 -11.638 2.578 11.148 -12.425 2.133 10.833 -11.001 2.469 10.442 + -17.700 -14.560 9.818 -18.561 -14.953 9.674 -17.254 -15.171 10.405 6.814 + -14.678 1.783 6.812 -14.616 2.738 7.680 -15.026 1.568 -7.051 -7.348 + 6.342 -6.815 -6.480 6.016 -8.008 -7.354 6.341 3.484 9.689 -17.767 + 3.837 8.940 -17.288 4.081 9.804 -18.506 10.335 -6.475 4.580 9.446 + -6.194 4.799 10.252 -7.411 4.400 0.778 -8.854 -20.724 0.904 -9.061 + -19.799 1.448 -8.198 -20.917 -1.135 5.259 13.265 -1.577 4.428 13.094 + -0.202 5.048 13.223 -7.020 3.028 -16.064 -6.951 2.324 -15.419 -7.380 + 2.605 -16.843 -18.804 8.929 -4.546 -18.725 9.874 -4.420 -18.693 8.803 + -5.488 -1.339 3.184 7.376 -1.023 4.066 7.574 -2.008 3.015 8.039 + -3.201 -11.324 16.308 -3.309 -10.424 16.613 -3.050 -11.831 17.106 1.432 + -5.802 -19.633 1.219 -4.870 -19.663 0.756 -6.220 -20.168 -9.047 -5.139 + 0.022 -9.358 -6.029 0.190 -8.617 -5.194 -0.832 -9.661 0.711 -3.366 + -10.381 1.299 -3.591 -9.550 0.161 -4.142 -14.178 12.659 -12.911 -14.958 + 12.215 -12.580 -13.522 11.966 -12.986 -4.099 -11.318 -17.173 -4.316 -11.338 + -16.241 -4.014 -12.240 -17.418 11.109 -11.510 17.810 10.356 -11.471 17.219 + 10.953 -10.809 18.443 -3.301 17.424 -6.705 -3.801 16.643 -6.464 -2.650 + 17.108 -7.331 -4.343 8.962 -19.115 -4.316 8.078 -19.480 -3.751 8.929 + -18.364 -4.187 -11.494 8.017 -4.911 -12.044 7.717 -4.481 -10.599 7.846 + -13.836 6.344 -13.380 -14.420 5.587 -13.351 -14.176 6.883 -14.093 -12.814 + -2.432 8.133 -12.864 -3.160 7.514 -13.714 -2.311 8.435 -12.483 -4.427 + -1.519 -13.298 -4.081 -1.885 -12.692 -4.613 -0.604 -9.113 9.461 -15.526 + -8.242 9.066 -15.582 -9.067 10.224 -16.104 1.255 11.056 -17.213 2.117 + 10.640 -17.227 1.337 11.798 -17.811 -5.924 -14.140 -2.685 -6.048 -13.359 + -2.147 -5.975 -14.868 -2.066 18.389 -0.842 -10.803 18.409 0.105 -10.941 + 17.517 -1.014 -10.449 12.418 -8.900 17.961 13.066 -9.603 18.016 12.239 + -8.813 17.025 -16.513 -2.175 2.051 -16.552 -1.414 1.472 -17.312 -2.119 + 2.575 18.977 -11.089 4.682 19.926 -11.122 4.560 18.744 -11.964 4.991 + 15.315 -3.480 18.354 14.386 -3.676 18.474 15.769 -4.131 18.889 4.020 + -2.906 5.112 3.868 -1.963 5.051 3.163 -3.272 5.333 -17.757 -9.571 + 11.582 -18.617 -9.457 11.178 -17.649 -10.520 11.652 -11.269 12.922 -11.873 + -11.657 12.204 -12.374 -10.476 12.547 -11.491 -16.289 5.517 -0.717 -16.813 + 6.314 -0.793 -15.532 5.777 -0.192 12.227 11.204 -0.188 12.490 11.963 + 0.333 12.988 10.625 -0.169 15.981 17.039 5.573 16.794 16.576 5.776 + 16.174 17.957 5.763 -2.140 2.072 19.638 -2.178 1.753 20.540 -2.717 + 1.485 19.151 19.553 7.222 0.694 19.706 6.437 0.168 20.368 7.719 + 0.624 21.580 -5.627 13.931 20.833 -5.103 14.221 21.208 -6.486 13.733 + -12.099 -3.305 -17.178 -12.787 -3.382 -16.517 -11.434 -3.937 -16.907 -5.112 + -11.348 -14.639 -5.022 -11.858 -13.834 -6.021 -11.047 -14.631 16.877 0.550 + 13.507 16.885 0.865 12.603 15.973 0.272 13.655 -2.138 9.035 -16.864 + -2.932 8.507 -16.777 -1.652 8.871 -16.056 7.442 -1.302 8.742 7.787 + -0.633 8.150 6.673 -0.894 9.142 13.205 -4.679 20.777 12.671 -5.091 + 20.098 13.267 -5.340 21.467 3.492 21.188 11.484 2.775 20.578 11.310 + 3.843 21.399 10.619 -9.823 9.656 -8.907 -9.989 9.394 -9.813 -9.463 + 10.540 -8.976 -7.401 10.022 -19.478 -7.115 9.131 -19.676 -6.608 10.552 + -19.561 -7.135 7.008 -19.272 -7.076 6.585 -18.415 -6.310 6.790 -19.704 + 3.251 12.312 12.509 2.787 12.705 13.249 2.763 11.511 12.318 -14.831 + 0.924 4.968 -14.522 1.296 4.142 -14.798 -0.023 4.831 -6.887 8.331 + -7.643 -5.990 8.640 -7.772 -7.225 8.201 -8.529 9.737 4.983 -0.271 + 9.474 4.264 0.303 10.653 4.800 -0.480 16.168 -1.200 6.590 15.869 + -1.364 5.695 16.086 -2.047 7.029 2.934 20.976 -3.612 3.586 21.255 + -4.255 2.493 20.233 -4.024 16.792 2.381 -8.865 17.658 2.788 -8.868 + 16.967 1.444 -8.954 -5.982 -2.648 -19.121 -6.890 -2.933 -19.225 -5.922 + -1.845 -19.638 -3.610 11.006 -1.783 -3.583 10.126 -1.407 -2.694 11.216 + -1.967 -10.203 -13.034 -2.332 -11.039 -13.212 -1.901 -10.150 -13.686 -3.030 + -5.688 -6.456 1.244 -6.306 -5.737 1.376 -4.879 -6.028 0.964 16.078 + -2.377 9.534 16.870 -1.897 9.291 15.544 -1.736 10.004 -7.473 11.645 + -10.239 -7.905 11.846 -9.409 -7.686 12.386 -10.806 8.342 18.905 4.202 + 7.405 19.100 4.193 8.573 18.797 3.280 17.945 -0.023 4.947 17.889 + -0.729 4.303 17.339 -0.283 5.641 10.839 -7.209 1.596 11.409 -7.875 + 1.211 11.441 -6.587 2.004 -17.023 10.221 -14.340 -16.803 10.668 -13.523 + -16.444 10.615 -14.993 1.835 -20.998 10.518 1.284 -20.413 9.999 1.647 + -21.871 10.174 -9.595 -10.417 -1.154 -9.806 -11.301 -1.456 -10.016 -9.840 + -1.791 3.023 12.655 -13.623 3.818 12.130 -13.524 2.858 12.664 -14.565 + -5.625 -9.198 -1.115 -5.126 -9.305 -1.925 -4.982 -8.890 -0.476 5.122 + -19.094 -6.515 5.420 -18.540 -7.237 4.316 -18.678 -6.211 -20.451 -1.638 + 5.404 -20.863 -2.163 6.090 -20.763 -0.747 5.564 1.135 -7.899 -1.386 + 1.350 -7.688 -0.478 0.290 -8.344 -1.336 1.550 4.017 -19.157 1.110 + 4.217 -18.331 1.214 4.670 -19.771 8.528 12.256 -10.970 8.977 13.070 + -10.743 7.773 12.535 -11.487 14.676 12.032 9.699 14.737 11.959 8.747 + 13.749 12.204 9.867 19.908 -7.058 11.438 19.372 -6.269 11.354 20.565 + -6.976 10.747 -15.243 -1.107 8.612 -14.928 -0.406 8.042 -15.729 -0.655 + 9.301 14.950 -3.045 12.082 15.559 -3.405 12.727 15.171 -3.495 11.266 + -0.868 -0.217 0.146 -1.539 -0.900 0.140 -0.049 -0.688 0.302 13.654 + 15.519 6.308 14.313 16.115 5.952 14.136 14.712 6.492 -1.573 8.915 + -8.828 -1.437 9.649 -8.229 -1.025 9.120 -9.585 4.548 -6.675 19.856 + 3.985 -5.993 19.491 4.168 -6.868 20.712 -17.057 -17.275 2.897 -17.690 + -17.628 3.522 -16.290 -17.060 3.428 12.651 13.457 4.456 12.960 14.269 + 4.859 12.144 13.026 5.144 -14.570 -0.571 17.234 -14.717 -0.181 18.096 + -14.115 0.110 16.738 -5.955 5.265 22.027 -5.088 5.668 22.055 -6.564 + 6.002 22.070 -10.687 16.846 7.153 -11.539 16.428 7.279 -10.817 17.748 + 7.446 5.902 -8.745 -8.911 6.110 -8.474 -9.805 6.466 -9.502 -8.753 + -3.670 -3.059 13.495 -4.006 -3.591 12.774 -2.747 -3.305 13.565 -12.660 + -1.098 12.563 -13.214 -1.850 12.349 -13.228 -0.339 12.435 -2.655 -8.187 + 6.451 -1.948 -8.090 7.089 -2.316 -8.812 5.810 -0.380 6.374 -19.587 + -0.776 6.340 -20.457 -0.378 7.304 -19.360 -19.270 -10.085 5.936 -19.904 + -10.517 5.364 -19.319 -10.570 6.759 8.634 15.704 -5.840 8.823 15.754 + -4.903 7.701 15.907 -5.906 -11.990 8.148 -12.797 -11.126 7.850 -12.512 + -12.518 7.350 -12.833 -0.400 9.135 -18.977 0.508 9.350 -18.761 -0.894 + 9.358 -18.189 -9.390 4.423 -18.699 -8.872 3.632 -18.554 -9.644 4.377 + -19.621 10.227 -6.108 8.416 9.713 -5.302 8.370 11.095 -5.857 8.099 + 11.488 13.964 2.103 11.089 13.133 1.846 11.743 13.835 3.016 17.583 + 5.767 10.288 18.068 6.185 10.999 16.663 5.898 10.517 10.127 -16.337 + 6.614 10.358 -16.542 7.520 10.897 -16.592 6.106 -1.442 8.616 -21.305 + -2.260 9.100 -21.192 -0.936 8.813 -20.516 -2.317 -16.483 5.572 -3.266 + -16.603 5.594 -2.160 -15.952 4.791 0.560 10.070 19.302 1.020 10.763 + 19.777 0.142 10.519 18.568 7.642 1.831 4.147 7.666 2.774 3.985 + 6.729 1.649 4.370 -20.922 7.075 10.006 -21.209 7.168 9.098 -21.086 + 7.932 10.399 12.526 16.750 -6.673 13.065 16.506 -7.425 12.127 15.928 + -6.387 15.169 -6.041 -12.389 15.285 -5.353 -11.733 15.022 -6.837 -11.877 + -18.953 3.315 0.730 -18.937 4.167 0.294 -18.652 2.699 0.062 -6.477 + 2.236 -21.365 -5.624 2.538 -21.676 -7.090 2.504 -22.049 -8.792 2.010 + -12.569 -9.734 1.841 -12.579 -8.393 1.141 -12.544 -13.580 3.244 15.506 + -12.797 3.752 15.295 -13.472 3.011 16.429 4.070 -6.254 7.212 4.401 + -7.149 7.124 4.293 -5.834 6.382 3.074 7.733 8.399 3.616 8.274 + 7.824 2.900 6.942 7.889 -19.412 -0.341 -3.916 -19.529 0.287 -4.629 + -19.433 -1.196 -4.345 0.526 -2.774 21.602 0.724 -2.873 20.671 1.369 + -2.897 22.040 2.433 15.585 9.398 2.558 16.518 9.224 1.794 15.303 + 8.745 -3.457 -8.505 15.895 -4.110 -7.998 16.377 -3.222 -7.948 15.152 + -17.805 15.127 -8.845 -17.908 15.871 -8.252 -18.608 15.123 -9.367 -6.833 + 2.843 23.050 -6.555 3.685 22.688 -7.002 3.024 23.975 -12.585 10.613 + 6.221 -12.054 10.594 7.017 -12.144 10.009 5.624 0.730 7.949 10.676 + -0.157 7.755 10.373 1.110 7.091 10.867 -11.750 -11.357 -12.350 -11.291 + -11.762 -13.086 -12.520 -11.909 -12.215 -5.143 -4.523 11.875 -4.755 -4.723 + 11.023 -6.069 -4.741 11.772 -11.024 -9.448 6.156 -10.543 -9.479 5.329 + -10.420 -9.819 6.799 -7.094 3.677 12.019 -6.578 4.048 11.304 -7.365 + 2.817 11.698 15.895 -9.520 -7.802 16.091 -9.243 -6.907 16.670 -9.272 + -8.306 -3.221 -3.637 -0.819 -4.057 -3.525 -1.271 -2.675 -4.116 -1.442 + 12.313 4.518 -0.475 13.034 4.425 -1.098 12.712 4.924 0.294 11.550 + 7.056 7.495 11.397 7.206 8.428 12.093 6.269 7.465 11.421 -14.719 + -12.010 10.705 -14.085 -11.965 12.135 -14.243 -12.434 -8.572 -3.729 -19.433 + -9.151 -4.225 -18.855 -9.164 -3.206 -19.974 -0.472 -16.032 7.445 -1.171 + -16.119 6.798 -0.892 -15.613 8.196 -17.129 8.324 15.361 -16.957 7.746 + 14.617 -17.635 9.047 14.990 -6.545 17.345 -9.188 -6.690 18.142 -9.697 + -6.988 17.508 -8.355 -4.502 7.159 13.051 -3.964 7.922 13.265 -4.730 + 6.781 13.900 13.582 12.918 -7.947 13.369 13.850 -7.903 13.728 12.662 + -7.036 -10.910 10.427 8.341 -10.731 11.358 8.206 -11.071 10.349 9.282 + -9.667 -10.316 -4.689 -8.920 -10.865 -4.452 -9.843 -9.799 -3.903 -5.891 + 15.056 -16.320 -6.080 14.153 -16.576 -5.028 15.235 -16.692 -7.635 -14.215 + 11.522 -7.223 -15.074 11.421 -6.906 -13.620 11.699 11.805 -17.932 -12.538 + 12.140 -17.280 -13.153 10.853 -17.847 -12.594 -6.872 16.868 -5.273 -6.000 + 17.262 -5.241 -7.291 17.275 -6.032 -21.342 11.127 -6.050 -21.639 11.856 + -5.504 -20.403 11.065 -5.876 16.820 -2.928 -7.236 17.053 -3.856 -7.228 + 15.864 -2.921 -7.194 18.459 -1.255 2.531 18.652 -1.901 1.851 19.240 + -0.703 2.566 -13.551 -2.289 -10.160 -13.728 -2.518 -11.072 -12.633 -2.019 + -10.154 -7.900 -3.939 11.077 -7.803 -3.532 11.938 -8.496 -4.673 11.226 + 6.509 -16.725 15.011 5.780 -16.463 15.574 6.106 -16.888 14.158 -9.644 + -6.586 17.850 -9.414 -6.638 16.922 -8.922 -7.024 18.301 13.848 8.514 + -7.366 13.661 7.873 -6.680 13.859 8.003 -8.175 -16.220 -3.526 -4.900 + -15.842 -3.312 -5.753 -15.756 -2.961 -4.283 -6.730 -22.953 -6.356 -7.593 + -23.002 -5.944 -6.401 -23.852 -6.329 4.515 8.773 13.798 3.648 8.722 + 14.201 4.620 9.697 13.573 -3.709 -4.138 9.447 -4.439 -3.658 9.057 + -2.930 -3.655 9.172 14.271 -2.455 -2.679 14.926 -2.138 -2.057 14.470 + -1.993 -3.493 1.437 2.489 -0.294 2.025 2.248 -1.010 0.565 2.488 + -0.690 -6.567 -16.463 2.338 -7.338 -15.972 2.622 -5.879 -15.802 2.258 + -9.156 5.958 -7.867 -8.626 6.301 -8.587 -9.799 5.391 -8.292 -13.201 + -18.246 -2.288 -13.773 -17.529 -2.013 -12.699 -17.885 -3.019 13.413 -16.169 + -10.309 13.873 -16.661 -10.990 12.670 -15.771 -10.761 -2.212 -6.449 -3.046 + -2.495 -7.091 -3.697 -2.188 -5.619 -3.523 -8.325 -16.667 -10.861 -7.987 + -16.553 -11.749 -7.595 -17.050 -10.374 -8.519 15.447 -9.621 -8.108 14.890 + -8.960 -7.854 16.103 -9.829 5.269 1.471 16.928 5.726 2.023 17.562 + 4.939 0.736 17.445 -5.416 -0.921 12.133 -5.075 -1.789 12.350 -6.149 + -0.795 12.735 6.816 -11.309 -14.350 5.901 -11.277 -14.630 7.301 -11.530 + -15.146 7.452 -1.517 13.042 6.819 -2.224 12.914 8.267 -1.964 13.270 + 1.226 11.394 -9.858 2.094 11.620 -10.193 0.851 10.826 -10.531 -12.048 + -7.096 -1.460 -12.068 -6.143 -1.549 -12.327 -7.258 -0.559 17.275 9.756 + -11.525 16.362 9.684 -11.246 17.681 8.941 -11.231 -6.530 -6.198 14.742 + -6.172 -6.729 14.030 -5.768 -5.766 15.126 -20.561 -14.135 3.894 -21.018 + -14.831 3.421 -19.633 -14.344 3.789 3.908 3.159 10.214 2.956 3.057 + 10.245 4.043 4.079 9.987 -14.917 -12.565 -0.210 -15.596 -13.215 -0.031 + -14.116 -12.951 0.146 14.420 0.159 3.373 14.559 -0.758 3.610 13.609 + 0.402 3.821 -10.492 -2.854 -13.241 -9.914 -2.308 -13.774 -11.216 -2.275 + -13.003 -10.503 -17.190 9.074 -10.853 -17.945 8.601 -10.589 -17.425 9.997 + 4.246 -10.409 -4.742 5.178 -10.523 -4.554 3.892 -9.994 -3.956 -10.346 + 7.497 -18.591 -9.475 7.105 -18.657 -10.926 6.866 -19.016 5.026 -6.616 + 0.067 5.135 -7.560 0.182 5.733 -6.364 -0.526 6.396 -3.805 -23.971 + 6.580 -3.784 -23.032 5.668 -3.195 -24.086 8.816 -16.608 -4.885 9.200 + -17.238 -4.276 7.930 -16.462 -4.554 -1.807 13.594 -6.723 -2.020 14.183 + -7.447 -1.656 14.175 -5.978 -12.626 16.193 10.115 -12.768 15.947 9.201 + -12.664 15.366 10.595 21.080 5.402 -11.150 21.173 4.699 -11.792 20.640 + 6.106 -11.627 16.630 8.026 13.490 16.588 7.840 14.428 15.920 8.649 + 13.337 17.436 -7.001 -16.179 16.495 -6.897 -16.038 17.816 -6.966 -15.301 + -14.386 8.987 -4.964 -14.887 9.418 -5.656 -14.962 8.289 -4.651 -7.758 + -22.438 -1.039 -8.263 -22.160 -1.803 -8.189 -23.242 -0.748 -16.394 6.350 + 13.506 -16.615 5.489 13.860 -15.449 6.315 13.361 -16.640 13.363 -2.458 + -16.590 13.656 -3.368 -16.007 12.648 -2.401 -8.419 5.962 -21.901 -7.868 + 5.946 -21.119 -9.004 6.708 -21.767 -14.685 -3.022 -12.786 -15.056 -2.837 + -13.649 -14.301 -3.894 -12.873 -16.035 2.441 11.259 -16.946 2.704 11.383 + -15.709 2.280 12.145 3.367 -9.351 -2.247 2.618 -8.927 -1.827 4.126 + -8.854 -1.940 8.442 -6.695 -22.576 8.823 -6.577 -21.706 7.510 -6.841 + -22.412 -15.631 15.222 4.470 -15.379 16.028 4.019 -15.635 14.555 3.783 + -7.414 -1.480 1.197 -8.178 -0.998 0.881 -6.759 -1.371 0.507 1.369 + -21.183 5.528 2.127 -20.598 5.549 1.152 -21.260 4.599 -9.221 13.792 + -3.749 -9.513 14.464 -4.364 -10.022 13.331 -3.501 6.049 -10.114 22.172 + 6.568 -9.930 22.956 6.563 -9.746 21.454 -5.221 -23.820 -2.927 -5.501 + -22.960 -2.612 -6.022 -24.226 -3.258 6.397 -16.464 -2.909 5.591 -16.123 + -2.522 6.122 -17.249 -3.383 2.314 -0.530 -22.254 1.545 -0.105 -22.633 + 2.727 0.151 -21.723 -13.673 -12.941 3.686 -14.549 -12.817 4.050 -13.470 + -12.108 3.260 -0.355 -14.050 4.938 0.113 -14.465 5.661 0.127 -14.316 + 4.155 -7.578 2.729 -5.430 -8.459 2.736 -5.056 -7.138 2.000 -4.993 + 16.859 -8.848 0.615 17.254 -9.289 1.367 16.960 -9.470 -0.107 -8.312 + -14.622 3.783 -7.877 -13.836 4.114 -8.044 -15.315 4.385 -12.342 -0.589 + -18.111 -13.238 -0.526 -17.781 -12.131 -1.521 -18.057 -19.091 -10.839 -7.397 + -19.445 -11.726 -7.331 -18.209 -10.958 -7.749 -15.555 10.428 16.229 -15.965 + 9.623 15.913 -14.635 10.195 16.355 -18.997 11.446 -3.964 -18.495 12.231 + -4.182 -19.534 11.706 -3.216 -2.958 0.526 -21.734 -2.425 0.062 -21.089 + -3.801 0.657 -21.300 6.640 13.203 -14.880 7.200 13.931 -15.149 7.171 + 12.422 -15.035 7.396 11.236 12.180 7.977 11.972 11.992 7.022 11.439 + 13.038 11.708 -13.011 13.139 10.808 -12.718 12.996 12.037 -12.443 13.835 + 14.231 9.300 0.535 14.337 9.339 1.486 14.929 8.715 0.240 5.618 + -14.976 4.680 5.075 -15.378 5.359 6.403 -15.523 4.646 -18.730 1.102 + -1.257 -19.052 0.851 -2.123 -19.435 0.855 -0.658 -11.171 -21.537 8.149 + -10.476 -21.215 8.723 -10.731 -22.149 7.560 3.931 3.231 -18.328 3.027 + 3.373 -18.609 4.459 3.467 -19.091 -13.881 -8.734 -2.643 -14.397 -9.015 + -1.888 -13.297 -8.059 -2.297 4.924 -20.006 15.511 4.754 -20.895 15.199 + 4.919 -19.469 14.719 -0.796 3.207 -21.084 -0.455 2.428 -21.522 -0.208 + 3.912 -21.356 -0.757 -5.147 11.717 -0.543 -5.748 11.003 -1.195 -4.412 + 11.287 0.218 -22.640 0.215 0.856 -22.698 -0.496 -0.325 -21.885 -0.012 + -7.687 -4.063 2.145 -8.312 -4.313 1.464 -7.558 -3.123 2.017 1.755 + -20.950 -4.493 2.323 -21.700 -4.318 1.969 -20.692 -5.390 -7.748 -12.194 + 4.885 -7.525 -11.834 5.743 -7.030 -11.919 4.315 -6.865 1.505 -1.661 + -7.653 0.965 -1.607 -6.199 1.004 -1.190 1.775 -4.672 -5.821 2.325 + -5.447 -5.702 2.190 -4.000 -5.280 -7.078 17.627 11.185 -7.813 17.074 + 10.918 -6.592 17.091 11.812 -14.271 6.752 0.505 -14.071 7.527 1.030 + -13.513 6.180 0.624 -4.314 -14.721 2.956 -4.394 -14.270 3.797 -3.604 + -15.349 3.088 4.509 -1.703 -23.888 3.755 -1.157 -23.665 5.230 -1.335 + -23.376 -7.179 10.182 13.033 -7.751 10.361 13.779 -6.328 10.536 13.291 + -18.891 -6.951 12.034 -19.597 -7.597 12.007 -18.091 -7.466 11.931 -1.840 + 17.955 6.227 -1.908 17.042 6.507 -0.932 18.050 5.940 0.339 16.148 + -11.147 0.645 16.182 -10.241 0.796 15.397 -11.526 -4.324 -22.729 10.013 + -4.732 -22.989 9.187 -3.551 -22.229 9.751 15.092 -0.741 15.553 14.659 + -1.562 15.784 15.749 -0.616 16.238 1.224 1.352 14.756 0.615 0.952 + 15.376 0.855 1.153 13.895 -11.618 16.108 4.365 -12.574 16.132 4.328 + -11.410 16.230 5.291 -7.664 -0.182 7.597 -8.443 -0.485 8.064 -7.989 + 0.085 6.737 2.540 -5.340 9.633 2.957 -5.477 8.782 2.628 -4.401 + 9.796 + 42.437 42.437 42.437 diff --git a/test/Test_FixAtomOrder/reorder.outoforder.parm7.save b/test/Test_FixAtomOrder/reorder.outoforder.parm7.save index 3d35e059a6..caed09b503 100644 --- a/test/Test_FixAtomOrder/reorder.outoforder.parm7.save +++ b/test/Test_FixAtomOrder/reorder.outoforder.parm7.save @@ -1,4 +1,4 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 12/21/14 11:44:38 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:09:39 %FLAG TITLE %FORMAT(20a4) ACE @@ -460,3 +460,6 @@ modified Bondi radii (mbondi) 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_Graft/ALA.ARG.lib b/test/Test_Graft/ALA.ARG.lib new file mode 100644 index 0000000000..6322f534b0 --- /dev/null +++ b/test/Test_Graft/ALA.ARG.lib @@ -0,0 +1,269 @@ +!!index array str + "ALA" + "ARG" +!entry.ALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.415700 + "H" "H" 0 1 131072 2 1 0.271900 + "CA" "XC" 0 1 131072 3 6 0.033700 + "HA" "H1" 0 1 131072 4 1 0.082300 + "CB" "CT" 0 1 131072 5 6 -0.182500 + "HB1" "HC" 0 1 131072 6 1 0.060300 + "HB2" "HC" 0 1 131072 7 1 0.060300 + "HB3" "HC" 0 1 131072 8 1 0.060300 + "C" "C" 0 1 131072 9 6 0.597300 + "O" "O" 0 1 131072 10 8 -0.567900 +!entry.ALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "XC" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB1" "HC" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ALA.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ALA.unit.childsequence single int + 2 +!entry.ALA.unit.connect array int + 1 + 9 +!entry.ALA.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 9 1 + 5 6 1 + 5 7 1 + 5 8 1 + 9 10 1 +!entry.ALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 +!entry.ALA.unit.name single str + "ALA" +!entry.ALA.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 3.877484 3.115795 2.131197 + 4.075059 4.623017 1.205786 + 2.496995 3.801075 1.241379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 9 0 0 0 0 +!entry.ALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ALA" 1 11 1 "p" 0 +!entry.ALA.unit.residuesPdbSequenceNumber array int + 0 +!entry.ALA.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ALA.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 +!entry.ARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N" 0 1 131072 1 7 -0.347900 + "H" "H" 0 1 131072 2 1 0.274700 + "CA" "XC" 0 1 131072 3 6 -0.263700 + "HA" "H1" 0 1 131072 4 1 0.156000 + "CB" "C8" 0 1 131072 5 6 -0.000700 + "HB2" "HC" 0 1 131072 6 1 0.032700 + "HB3" "HC" 0 1 131072 7 1 0.032700 + "CG" "C8" 0 1 131072 8 6 0.039000 + "HG2" "HC" 0 1 131072 9 1 0.028500 + "HG3" "HC" 0 1 131072 10 1 0.028500 + "CD" "C8" 0 1 131072 11 6 0.048600 + "HD2" "H1" 0 1 131072 12 1 0.068700 + "HD3" "H1" 0 1 131072 13 1 0.068700 + "NE" "N2" 0 1 131072 14 7 -0.529500 + "HE" "H" 0 1 131072 15 1 0.345600 + "CZ" "CA" 0 1 131072 16 6 0.807600 + "NH1" "N2" 0 1 131072 17 7 -0.862700 + "HH11" "H" 0 1 131072 18 1 0.447800 + "HH12" "H" 0 1 131072 19 1 0.447800 + "NH2" "N2" 0 1 131072 20 7 -0.862700 + "HH21" "H" 0 1 131072 21 1 0.447800 + "HH22" "H" 0 1 131072 22 1 0.447800 + "C" "C" 0 1 131072 23 6 0.734100 + "O" "O" 0 1 131072 24 8 -0.589400 +!entry.ARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N" 0 -1 0.0 + "H" "H" 0 -1 0.0 + "CA" "XC" 0 -1 0.0 + "HA" "H1" 0 -1 0.0 + "CB" "C8" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "CG" "C8" 0 -1 0.0 + "HG2" "HC" 0 -1 0.0 + "HG3" "HC" 0 -1 0.0 + "CD" "C8" 0 -1 0.0 + "HD2" "H1" 0 -1 0.0 + "HD3" "H1" 0 -1 0.0 + "NE" "N2" 0 -1 0.0 + "HE" "H" 0 -1 0.0 + "CZ" "CA" 0 -1 0.0 + "NH1" "N2" 0 -1 0.0 + "HH11" "H" 0 -1 0.0 + "HH12" "H" 0 -1 0.0 + "NH2" "N2" 0 -1 0.0 + "HH21" "H" 0 -1 0.0 + "HH22" "H" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.ARG.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ARG.unit.childsequence single int + 2 +!entry.ARG.unit.connect array int + 1 + 23 +!entry.ARG.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 3 4 1 + 3 5 1 + 3 23 1 + 5 6 1 + 5 7 1 + 5 8 1 + 8 9 1 + 8 10 1 + 8 11 1 + 11 12 1 + 11 13 1 + 11 14 1 + 14 15 1 + 14 16 1 + 16 17 1 + 16 20 1 + 17 18 1 + 17 19 1 + 20 21 1 + 20 22 1 + 23 24 1 +!entry.ARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 + "R" 1 "A" 13 + "R" 1 "A" 14 + "R" 1 "A" 15 + "R" 1 "A" 16 + "R" 1 "A" 17 + "R" 1 "A" 18 + "R" 1 "A" 19 + "R" 1 "A" 20 + "R" 1 "A" 21 + "R" 1 "A" 22 + "R" 1 "A" 23 + "R" 1 "A" 24 +!entry.ARG.unit.name single str + "ARG" +!entry.ARG.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 3.909407 0.723611 -2.739882E-06 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 2.496995 3.801075 1.241379 + 3.877484 3.115795 2.131197 + 4.274186 5.009602 1.194577 + 5.354271 4.863178 1.185788 + 3.973781 5.548460 0.295972 + 3.881105 5.817645 2.426721 + 2.801135 5.964881 2.435959 + 4.181626 5.279602 3.325774 + 4.540320 7.142723 2.424483 + 5.151805 7.375492 1.655065 + 4.364284 8.040989 3.389382 + 3.575026 7.807606 4.434133 + 3.088949 6.925423 4.508848 + 3.465367 8.513631 5.147998 + 5.006254 9.201287 3.286991 + 5.604855 9.375325 2.492329 + 4.892216 9.903045 4.004368 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 1 23 0 0 0 0 +!entry.ARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "ARG" 1 25 1 "p" 0 +!entry.ARG.unit.residuesPdbSequenceNumber array int + 0 +!entry.ARG.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.ARG.unit.velocities table dbl x dbl y dbl z + 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.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 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 diff --git a/test/Test_Graft/IC.Final.graft.mol2.save b/test/Test_Graft/IC.Final.graft.mol2.save index e4af61be0c..f94c13b341 100644 --- a/test/Test_Graft/IC.Final.graft.mol2.save +++ b/test/Test_Graft/IC.Final.graft.mol2.save @@ -6,40 +6,40 @@ USER_CHARGES @<TRIPOS>ATOM - 1 N 5.0262 1.0605 2.4857 N 1 TYR -0.415700 - 2 H 4.3432 1.6530 2.9356 H 1 TYR 0.271900 - 3 CA 5.5045 1.4387 1.1713 CX 1 TYR -0.001400 - 4 HA 6.5833 1.5906 1.2064 H1 1 TYR 0.087600 - 5 CB 5.1981 0.3552 0.1428 CT 1 TYR -0.015200 - 6 HB2 5.6866 -0.5735 0.4378 HC 1 TYR 0.029500 - 7 HB3 5.5697 0.6663 -0.8336 HC 1 TYR 0.029500 - 8 C 4.8470 2.7276 0.6990 C 1 TYR 0.597300 - 9 O 4.0264 3.3055 1.4083 O 1 TYR -0.567900 - 10 C2 3.6760 0.1340 0.0670 CA 2 PRY 0.033204 - 11 C3 3.1370 -1.1220 0.3590 CA 2 PRY -0.149016 - 12 H4 3.7940 -1.9290 0.6360 HA 2 PRY 0.153372 - 13 C4 1.7830 -1.3560 0.3010 CA 2 PRY -0.336291 - 14 H5 1.3750 -2.3240 0.5260 HA 2 PRY 0.167425 - 15 C5 0.9070 -0.3310 -0.0550 CA 2 PRY 0.423974 - 16 O1 -0.4020 -0.6590 -0.0810 OS 2 PRY -0.391815 - 17 C6 1.4180 0.9200 -0.3470 CA 2 PRY -0.336291 - 18 H6 0.7760 1.7340 -0.6230 HA 2 PRY 0.167425 - 19 C7 2.7930 1.1360 -0.2830 CA 2 PRY -0.149016 - 20 H7 3.1680 2.1180 -0.5140 HA 2 PRY 0.153372 - 21 C8 -1.3580 0.3020 -0.4580 CT 2 PRY 0.358047 - 22 C9 -2.6930 -0.3810 -0.4700 CM 2 PRY -0.496680 - 23 C10 -3.8370 0.0490 0.0400 CM 2 PRY 0.317549 - 24 C11 -5.0960 -0.7730 -0.1000 CT 2 PRY -0.394216 - 25 C12 -4.0350 1.3480 0.7820 CT 2 PRY -0.394216 - 26 H8 -1.1210 0.6720 -1.4540 H1 2 PRY 0.001584 - 27 H9 -1.3270 1.1410 0.2250 H1 2 PRY 0.001584 - 28 H10 -2.6800 -1.3290 -0.9820 HA 2 PRY 0.192041 - 29 H11 -5.8660 -0.2140 -0.6260 HC 2 PRY 0.110363 - 30 H12 -5.5010 -1.0240 0.8780 HC 2 PRY 0.110363 - 31 H13 -4.9190 -1.6950 -0.6400 HC 2 PRY 0.110363 - 32 H14 -4.7240 1.9910 0.2380 HC 2 PRY 0.110363 - 33 H15 -3.1210 1.9030 0.9400 HC 2 PRY 0.110363 - 34 H16 -4.4820 1.1590 1.7540 HC 2 PRY 0.110363 + 1 N 3.3258 1.5479 -0.0000 N 1 TYR -0.415700 + 2 H 3.9094 0.7236 -0.0000 H 1 TYR 0.271900 + 3 CA 3.9700 2.8458 -0.0000 CX 1 TYR -0.001400 + 4 HA 3.6717 3.4001 -0.8898 H1 1 TYR 0.087600 + 5 CB 3.5770 3.6538 1.2321 CT 1 TYR -0.015200 + 6 HB2 2.4970 3.8011 1.2414 HC 1 TYR 0.029500 + 7 HB3 3.8775 3.1158 2.1312 HC 1 TYR 0.029500 + 8 C 5.4855 2.7052 -0.0000 C 1 TYR 0.597300 + 9 O 6.0088 1.5932 -0.0000 O 1 TYR -0.567900 + 10 C2 4.2167 4.8987 1.1983 CA 2 PRY 0.033204 + 11 C3 4.0092 5.8193 2.2292 CA 2 PRY -0.149016 + 12 H4 3.3555 5.5622 3.0454 HA 2 PRY 0.153372 + 13 C4 4.6204 7.0513 2.2286 CA 2 PRY -0.336291 + 14 H5 4.4562 7.7548 3.0237 HA 2 PRY 0.167425 + 15 C5 5.5298 7.3802 1.0703 CA 2 PRY 0.423974 + 16 O1 6.1127 8.5970 1.1066 OS 2 PRY -0.391815 + 17 C6 5.7104 6.4428 0.0703 CA 2 PRY -0.336291 + 18 H6 6.3501 6.6384 -0.7684 HA 2 PRY 0.167425 + 19 C7 5.0526 5.2168 0.1465 CA 2 PRY -0.149016 + 20 H7 5.2087 4.5024 -0.6431 HA 2 PRY 0.153372 + 21 C8 6.9536 9.0030 0.0541 CT 2 PRY 0.358047 + 22 C9 7.3730 10.4140 0.3402 CM 2 PRY -0.496680 + 23 C10 8.5864 10.9389 0.2630 CM 2 PRY 0.317549 + 24 C11 8.8094 12.4021 0.5624 CT 2 PRY -0.394216 + 25 C12 9.8424 10.1955 -0.1205 CT 2 PRY -0.394216 + 26 H8 6.4005 8.9625 -0.8827 H1 2 PRY 0.001584 + 27 H9 7.7956 8.3279 -0.0269 H1 2 PRY 0.001584 + 28 H10 6.5520 11.0514 0.6242 HA 2 PRY 0.192041 + 29 H11 9.2372 12.9117 -0.2975 HC 2 PRY 0.110363 + 30 H12 9.5134 12.5228 1.3830 HC 2 PRY 0.110363 + 31 H13 7.8882 12.9051 0.8297 HC 2 PRY 0.110363 + 32 H14 10.2558 10.6044 -1.0403 HC 2 PRY 0.110363 + 33 H15 9.6929 9.1353 -0.2689 HC 2 PRY 0.110363 + 34 H16 10.6002 10.3206 0.6478 HC 2 PRY 0.110363 @<TRIPOS>BOND 1 1 3 1 2 3 5 1 @@ -57,7 +57,7 @@ USER_CHARGES 14 22 23 1 15 23 24 1 16 23 25 1 - 17 5 10 1 + 17 10 5 1 18 1 2 1 19 3 4 1 20 5 6 1 diff --git a/test/Test_Graft/IC.Nucleotide.pdb.save b/test/Test_Graft/IC.Nucleotide.pdb.save index 59b95bddc8..909bdbb338 100644 --- a/test/Test_Graft/IC.Nucleotide.pdb.save +++ b/test/Test_Graft/IC.Nucleotide.pdb.save @@ -12,22 +12,22 @@ ATOM 11 C2 DA 1 5.285 -2.520 5.935 1.00 0.00 C ATOM 12 H2 DA 1 5.498 -2.482 6.993 1.00 0.00 H ATOM 13 N3 DA 1 5.073 -1.309 5.456 1.00 0.00 N ATOM 14 C4 DA 1 4.806 -1.356 4.133 1.00 0.00 C -ATOM 15 C5' DA 1 1.109 1.452 3.145 1.00 0.00 C -ATOM 16 H5' DA 1 0.981 0.812 4.017 1.00 0.00 H -ATOM 17 H5'' DA 1 0.230 2.087 3.028 1.00 0.00 H -ATOM 18 C4' DA 1 2.335 2.328 3.343 1.00 0.00 C -ATOM 19 H4' DA 1 2.082 3.168 3.988 1.00 0.00 H -ATOM 20 O4' DA 1 3.334 1.576 4.098 1.00 0.00 O -ATOM 21 C1' DA 1 4.385 1.163 3.237 1.00 0.00 C -ATOM 22 H1' DA 1 5.314 1.643 3.542 1.00 0.00 H -ATOM 23 C3' DA 1 3.063 2.753 2.066 1.00 0.00 C -ATOM 24 H3' DA 1 2.348 2.823 1.246 1.00 0.00 H -ATOM 25 C2' DA 1 4.053 1.564 1.798 1.00 0.00 C -ATOM 26 H2' DA 1 3.856 1.107 0.829 1.00 0.00 H -ATOM 27 O3' DA 1 3.851 3.932 2.147 1.00 0.00 O -ATOM 28 P DA 1 -0.042 -0.302 1.764 0.00 0.00 P -ATOM 29 O1P DA 1 -1.186 0.613 1.641 0.00 0.00 O -ATOM 30 O2P DA 1 0.290 -1.365 0.804 0.00 0.00 O -ATOM 31 O5' DA 1 1.283 0.644 1.978 0.00 0.00 O +ATOM 15 C5' DA 1 4.531 3.163 5.051 1.00 0.00 C +ATOM 16 H5' DA 1 4.258 2.516 5.885 1.00 0.00 H +ATOM 17 H5'' DA 1 4.648 4.186 5.409 1.00 0.00 H +ATOM 18 C4' DA 1 5.847 2.687 4.459 1.00 0.00 C +ATOM 19 H4' DA 1 6.672 3.026 5.084 1.00 0.00 H +ATOM 20 O4' DA 1 5.901 1.230 4.542 1.00 0.00 O +ATOM 21 C1' DA 1 5.692 0.661 3.257 1.00 0.00 C +ATOM 22 H1' DA 1 6.590 0.129 2.945 1.00 0.00 H +ATOM 23 C3' DA 1 6.045 2.985 2.908 1.00 0.00 C +ATOM 24 H3' DA 1 5.511 3.890 2.619 1.00 0.00 H +ATOM 25 C2' DA 1 5.383 1.772 2.252 1.00 0.00 C +ATOM 26 H2' DA 1 4.562 2.104 1.616 1.00 0.00 H +ATOM 27 O3' DA 1 7.391 3.030 2.458 1.00 0.00 O +ATOM 28 P DA 1 2.039 3.624 4.641 1.00 0.00 P +ATOM 29 O1P DA 1 2.266 5.005 5.093 1.00 0.00 O +ATOM 30 O2P DA 1 1.005 3.564 3.598 1.00 0.00 O +ATOM 31 O5' DA 1 3.461 3.109 4.001 1.00 0.00 O TER 32 DA 1 END diff --git a/test/Test_Graft/NALA.lib b/test/Test_Graft/NALA.lib new file mode 100644 index 0000000000..f2eaa8bc3f --- /dev/null +++ b/test/Test_Graft/NALA.lib @@ -0,0 +1,105 @@ +!!index array str + "NALA" +!entry.NALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg + "N" "N3" 0 1 131072 1 7 0.141400 + "H1" "H" 0 1 131072 2 1 0.199700 + "H2" "H" 0 1 131072 3 1 0.199700 + "H3" "H" 0 1 131072 4 1 0.199700 + "CA" "CX" 0 1 131072 5 6 0.096200 + "HA" "HP" 0 1 131072 6 1 0.088900 + "CB" "CT" 0 1 131072 7 6 -0.059700 + "HB1" "HC" 0 1 131072 8 1 0.030000 + "HB2" "HC" 0 1 131072 9 1 0.030000 + "HB3" "HC" 0 1 131072 10 1 0.030000 + "C" "C" 0 1 131072 11 6 0.616300 + "O" "O" 0 1 131072 12 8 -0.572200 +!entry.NALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg + "N" "N3" 0 -1 0.0 + "H1" "H" 0 -1 0.0 + "H2" "H" 0 -1 0.0 + "H3" "H" 0 -1 0.0 + "CA" "CX" 0 -1 0.0 + "HA" "HP" 0 -1 0.0 + "CB" "CT" 0 -1 0.0 + "HB1" "HC" 0 -1 0.0 + "HB2" "HC" 0 -1 0.0 + "HB3" "HC" 0 -1 0.0 + "C" "C" 0 -1 0.0 + "O" "O" 0 -1 0.0 +!entry.NALA.unit.boundbox array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NALA.unit.childsequence single int + 2 +!entry.NALA.unit.connect array int + 0 + 11 +!entry.NALA.unit.connectivity table int atom1x int atom2x int flags + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 5 11 1 + 7 8 1 + 7 9 1 + 7 10 1 + 11 12 1 +!entry.NALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx + "U" 0 "R" 1 + "R" 1 "A" 1 + "R" 1 "A" 2 + "R" 1 "A" 3 + "R" 1 "A" 4 + "R" 1 "A" 5 + "R" 1 "A" 6 + "R" 1 "A" 7 + "R" 1 "A" 8 + "R" 1 "A" 9 + "R" 1 "A" 10 + "R" 1 "A" 11 + "R" 1 "A" 12 +!entry.NALA.unit.name single str + "NALA" +!entry.NALA.unit.positions table dbl x dbl y dbl z + 3.325770 1.547909 -1.607204E-06 + 4.046154 0.839991 -2.855245E-06 + 2.823094 1.499508 -0.874687 + 2.823097 1.499507 0.874685 + 3.970048 2.845795 -1.311163E-07 + 3.671663 3.400129 -0.889820 + 3.576965 3.653838 1.232143 + 3.877484 3.115795 2.131197 + 4.075059 4.623017 1.205786 + 2.496995 3.801075 1.241379 + 5.485541 2.705207 -4.398755E-06 + 6.008824 1.593175 -8.449768E-06 +!entry.NALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x + 0 11 0 0 0 0 +!entry.NALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx + "NALA" 1 13 1 "p" 0 +!entry.NALA.unit.residuesPdbSequenceNumber array int + 0 +!entry.NALA.unit.solventcap array dbl + -1.000000 + 0.0 + 0.0 + 0.0 + 0.0 +!entry.NALA.unit.velocities table dbl x dbl y dbl z + 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.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 + 0.0 0.0 0.0 diff --git a/test/Test_Graft/Out.mol2.save b/test/Test_Graft/Out.mol2.save new file mode 100644 index 0000000000..40103bab8e --- /dev/null +++ b/test/Test_Graft/Out.mol2.save @@ -0,0 +1,474 @@ +@<TRIPOS>MOLECULE +Cpptraj Generated mol2 file. + 222 229 13 0 0 +SMALL +USER_CHARGES + + +@<TRIPOS>ATOM + 1 N -0.3660 10.5720 5.0900 N 1 TRP -0.415700 + 2 H 0.3440 10.6120 5.8080 H 1 TRP 0.271900 + 3 CA 0.1950 10.6970 3.7600 CT 1 TRP -0.027500 + 4 HA -0.2180 11.5690 3.2540 H1 1 TRP 0.112300 + 5 CB 1.7100 10.8790 3.7090 CT 1 TRP -0.005000 + 6 HB2 2.2080 9.9860 4.0870 HC 1 TRP 0.033900 + 7 HB3 1.9270 11.6410 4.4580 HC 1 TRP 0.033900 + 8 CG 2.2650 11.2910 2.3840 C* 1 TRP -0.141500 + 9 CD1 2.0320 12.5000 1.8270 CW 1 TRP -0.163800 + 10 HD1 1.5380 13.3330 2.3050 H4 1 TRP 0.206200 + 11 NE1 2.8600 12.5800 0.7240 NA 1 TRP -0.341800 + 12 HE1 2.9290 13.4040 0.1430 H 1 TRP 0.341200 + 13 CE2 3.6620 11.4600 0.6460 CN 1 TRP 0.138000 + 14 CZ2 4.6200 11.1600 -0.3300 CA 1 TRP -0.260100 + 15 HZ2 5.0590 11.8630 -1.0230 HA 1 TRP 0.157200 + 16 CH2 5.0910 9.8430 -0.3770 CA 1 TRP -0.113400 + 17 HH2 5.8540 9.6100 -1.1050 HA 1 TRP 0.141700 + 18 CZ3 4.5450 8.8500 0.4450 CA 1 TRP -0.197200 + 19 HZ3 4.8230 7.8400 0.1820 HA 1 TRP 0.144700 + 20 CE3 3.5490 9.1590 1.3790 CA 1 TRP -0.238700 + 21 HE3 3.1350 8.4300 2.0590 HA 1 TRP 0.170000 + 22 CD2 3.0750 10.4770 1.4830 CB 1 TRP 0.124300 + 23 C -0.1900 9.6090 2.7680 C 1 TRP 0.597300 + 24 O -0.4520 9.9630 1.6210 O 1 TRP -0.567900 + 25 N -0.2680 8.4020 3.3340 N 2 THR -0.415700 + 26 H -0.2600 8.2750 4.3360 H 2 THR 0.271900 + 27 CA -0.6060 7.1720 2.6470 CT 2 THR -0.038900 + 28 HA -0.1800 7.2660 1.6480 H1 2 THR 0.100700 + 29 CB -0.0930 5.9920 3.4680 CT 2 THR 0.365400 + 30 HB -0.5860 5.0810 3.1280 H1 2 THR 0.004300 + 31 CG2 1.3430 5.6480 3.0810 CT 2 THR -0.243800 + 32 HG21 1.3060 5.0050 2.2020 HC 2 THR 0.064200 + 33 HG22 1.9550 6.5430 2.9670 HC 2 THR 0.064200 + 34 HG23 1.8280 5.0680 3.8660 HC 2 THR 0.064200 + 35 OG1 -0.2730 6.2460 4.8430 OH 2 THR -0.676100 + 36 HG1 0.4280 5.7500 5.2710 HO 2 THR 0.410200 + 37 C -2.0730 6.8820 2.3630 C 2 THR 0.597300 + 38 O -2.8840 6.6850 3.2650 O 2 THR -0.567900 + 39 N -2.4140 6.7960 1.0750 N 3 TRP -0.415700 + 40 H -1.6310 6.7560 0.4390 H 3 TRP 0.271900 + 41 CA -3.6890 6.2860 0.6130 CT 3 TRP -0.027500 + 42 HA -4.2880 6.0200 1.4850 H1 3 TRP 0.112300 + 43 CB -4.4650 7.2750 -0.2530 CT 3 TRP -0.005000 + 44 HB2 -5.4500 6.8210 -0.3660 HC 3 TRP 0.033900 + 45 HB3 -4.0220 7.1620 -1.2420 HC 3 TRP 0.033900 + 46 CG -4.6320 8.7230 0.0770 C* 3 TRP -0.141500 + 47 CD1 -3.9020 9.7130 -0.4830 CW 3 TRP -0.163800 + 48 HD1 -3.0890 9.5530 -1.1760 H4 3 TRP 0.206200 + 49 NE1 -4.4730 10.9230 -0.1410 NA 3 TRP -0.341800 + 50 HE1 -4.1360 11.8610 -0.3060 H 3 TRP 0.341200 + 51 CE2 -5.4690 10.7460 0.7980 CN 3 TRP 0.138000 + 52 CZ2 -6.3300 11.6930 1.3650 CA 3 TRP -0.260100 + 53 HZ2 -6.2760 12.7460 1.1300 HA 3 TRP 0.157200 + 54 CH2 -7.3740 11.1960 2.1540 CA 3 TRP -0.113400 + 55 HH2 -8.2300 11.8220 2.3620 HA 3 TRP 0.141700 + 56 CZ3 -7.6300 9.8240 2.2590 CA 3 TRP -0.197200 + 57 HZ3 -8.3790 9.4820 2.9590 HA 3 TRP 0.144700 + 58 CE3 -6.7760 8.9050 1.6380 CA 3 TRP -0.238700 + 59 HE3 -6.9740 7.8720 1.8840 HA 3 TRP 0.170000 + 60 CD2 -5.7030 9.3470 0.8480 CB 3 TRP 0.124300 + 61 C -3.6320 4.9260 -0.0680 C 3 TRP 0.597300 + 62 O -4.2790 3.9520 0.3090 O 3 TRP -0.567900 + 63 N -2.7950 4.8720 -1.1060 N 4 GLU -0.516300 + 64 H -2.2780 5.7080 -1.3390 H 4 GLU 0.293600 + 65 CA -2.5350 3.7230 -1.9500 CT 4 GLU 0.039700 + 66 HA -3.0070 2.9480 -1.3460 H1 4 GLU 0.110500 + 67 CB -3.4130 3.5240 -3.1830 CT 4 GLU 0.056000 + 68 HB2 -3.1390 4.1410 -4.0380 HC 4 GLU -0.017300 + 69 HB3 -4.3860 3.7870 -2.7670 HC 4 GLU -0.017300 + 70 CG -3.4700 2.1080 -3.7480 CT 4 GLU 0.013600 + 71 HG2 -2.4470 1.7930 -3.9530 HC 4 GLU -0.042500 + 72 HG3 -4.0390 2.4250 -4.6230 HC 4 GLU -0.042500 + 73 CD -4.1890 1.1230 -2.8370 C 4 GLU 0.805400 + 74 OE1 -3.8030 0.7710 -1.7020 O2 4 GLU -0.818800 + 75 OE2 -5.2630 0.6010 -3.2070 O2 4 GLU -0.818800 + 76 C -1.0580 3.5180 -2.2550 C 4 GLU 0.536600 + 77 O -0.3010 4.4140 -2.6190 O 4 GLU -0.581900 + 78 N -0.6680 2.2650 -2.0090 N 5 ASN -0.415700 + 79 H -1.3230 1.6560 -1.5390 H 5 ASN 0.271900 + 80 CA 0.6390 1.6960 -2.2670 CT 5 ASN 0.014300 + 81 HA 1.2390 2.4530 -2.7720 H1 5 ASN 0.104800 + 82 CB 1.4120 1.3660 -0.9930 CT 5 ASN -0.204100 + 83 HB2 2.2240 0.7030 -1.2910 HC 5 ASN 0.079700 + 84 HB3 0.7120 0.8820 -0.3110 HC 5 ASN 0.079700 + 85 CG 2.1540 2.5500 -0.3910 C 5 ASN 0.713000 + 86 OD1 2.8090 3.3470 -1.0580 O 5 ASN -0.593100 + 87 ND2 2.3590 2.5190 0.9280 N 5 ASN -0.919100 + 88 HD21 1.8690 1.8970 1.5560 H 5 ASN 0.419600 + 89 HD22 3.0240 3.1960 1.2720 H 5 ASN 0.419600 + 90 C 0.5090 0.4880 -3.1850 C 5 ASN 0.597300 + 91 O -0.4570 -0.2500 -3.0040 O 5 ASN -0.567900 + 92 N 1.4630 0.2470 -4.0870 N 6 GLY -0.415700 + 93 H 2.3720 0.6580 -3.9320 H 6 GLY 0.271900 + 94 CA 1.3990 -0.9020 -4.9670 CT 6 GLY -0.025200 + 95 HA2 2.1800 -0.8820 -5.7280 H1 6 GLY 0.069800 + 96 HA3 0.5010 -0.7990 -5.5760 H1 6 GLY 0.069800 + 97 C 1.4480 -2.2750 -4.3130 C 6 GLY 0.597300 + 98 O 0.7270 -2.5760 -3.3640 O 6 GLY -0.567900 + 99 N 2.3610 -3.1180 -4.8010 N 7 LYS -0.347900 + 100 H 3.0800 -2.7840 -5.4260 H 7 LYS 0.274700 + 101 CA 2.5410 -4.5140 -4.4580 CT 7 LYS -0.240000 + 102 HA 1.6270 -5.0150 -4.1380 H1 7 LYS 0.142600 + 103 CB 3.1230 -5.2830 -5.6410 CT 7 LYS -0.009400 + 104 HB2 2.4350 -5.2430 -6.4860 HC 7 LYS 0.036200 + 105 HB3 3.3350 -6.3180 -5.3720 HC 7 LYS 0.036200 + 106 CG 4.4160 -4.7460 -6.2480 CT 7 LYS 0.018700 + 107 HG2 5.3080 -4.9600 -5.6600 HC 7 LYS 0.010300 + 108 HG3 4.3930 -3.6740 -6.4390 HC 7 LYS 0.010300 + 109 CD 4.7260 -5.5030 -7.5360 CT 7 LYS -0.047900 + 110 HD2 3.9920 -5.2720 -8.3080 HC 7 LYS 0.062100 + 111 HD3 4.5840 -6.5430 -7.2410 HC 7 LYS 0.062100 + 112 CE 6.1480 -5.3380 -8.0660 CT 7 LYS -0.014300 + 113 HE2 6.5210 -6.2900 -8.4440 HP 7 LYS 0.113500 + 114 HE3 6.8480 -5.0250 -7.2900 HP 7 LYS 0.113500 + 115 NZ 6.1770 -4.4200 -9.2140 N3 7 LYS -0.385400 + 116 HZ1 6.0460 -3.5470 -8.7220 H 7 LYS 0.340000 + 117 HZ2 7.1310 -4.3920 -9.5460 H 7 LYS 0.340000 + 118 HZ3 5.4710 -4.5500 -9.9250 H 7 LYS 0.340000 + 119 C 3.5120 -4.5190 -3.2860 C 7 LYS 0.734100 + 120 O 4.6240 -5.0420 -3.2860 O 7 LYS -0.589400 + 121 N 2.9250 -4.2560 -2.1160 N 8 TRP -0.415700 + 122 H 2.0100 -3.8790 -2.3160 H 8 TRP 0.271900 + 123 CA 3.3410 -4.2620 -0.7280 CT 8 TRP -0.027500 + 124 HA 4.4100 -4.0450 -0.7240 H1 8 TRP 0.112300 + 125 CB 2.6250 -3.0680 -0.1040 CT 8 TRP -0.005000 + 126 HB2 1.5890 -3.2940 0.1480 HC 8 TRP 0.033900 + 127 HB3 2.8350 -2.1940 -0.7210 HC 8 TRP 0.033900 + 128 CG 3.2880 -2.4620 1.0910 C* 8 TRP -0.141500 + 129 CD1 2.9250 -2.4360 2.3930 CW 8 TRP -0.163800 + 130 HD1 1.9490 -2.7990 2.6780 H4 8 TRP 0.206200 + 131 NE1 3.8550 -1.8450 3.2240 NA 8 TRP -0.341800 + 132 HE1 3.8850 -1.8480 4.2340 H 8 TRP 0.341200 + 133 CE2 4.8270 -1.3030 2.4080 CN 8 TRP 0.138000 + 134 CZ2 5.9110 -0.4710 2.7140 CA 8 TRP -0.260100 + 135 HZ2 6.1390 -0.1560 3.7210 HA 8 TRP 0.157200 + 136 CH2 6.8410 -0.1410 1.7220 CA 8 TRP -0.113400 + 137 HH2 7.7250 0.4050 2.0180 HA 8 TRP 0.141700 + 138 CZ3 6.5840 -0.5900 0.4210 CA 8 TRP -0.197200 + 139 HZ3 7.2310 -0.2350 -0.3680 HA 8 TRP 0.144700 + 140 CE3 5.4240 -1.2970 0.0820 CA 8 TRP -0.238700 + 141 HE3 5.1390 -1.4650 -0.9460 HA 8 TRP 0.170000 + 142 CD2 4.4790 -1.6200 1.0690 CB 8 TRP 0.124300 + 143 C 2.9450 -5.5930 -0.1050 C 8 TRP 0.597300 + 144 O 3.0220 -6.6750 -0.6820 O 8 TRP -0.567900 + 145 N 2.5310 -5.6090 1.1640 N 9 THR -0.415700 + 146 H 2.7110 -4.7940 1.7310 H 9 THR 0.271900 + 147 CA 2.2540 -6.8740 1.8150 CT 9 THR -0.038900 + 148 HA 2.9820 -7.6670 1.6440 H1 9 THR 0.100700 + 149 CB 2.2070 -6.6220 3.3200 CT 9 THR 0.365400 + 150 HB 1.7220 -5.6670 3.5260 H1 9 THR 0.004300 + 151 CG2 1.4560 -7.6590 4.1490 CT 9 THR -0.243800 + 152 HG21 1.5810 -7.4640 5.2140 HC 9 THR 0.064200 + 153 HG22 0.4020 -7.4680 3.9460 HC 9 THR 0.064200 + 154 HG23 1.7250 -8.6400 3.7550 HC 9 THR 0.064200 + 155 OG1 3.4600 -6.5010 3.9540 OH 9 THR -0.676100 + 156 HG1 3.3850 -6.0970 4.8220 HO 9 THR 0.410200 + 157 C 0.8890 -7.3540 1.3440 C 9 THR 0.597300 + 158 O -0.1720 -6.7600 1.5240 O 9 THR -0.567900 + 159 N 0.9060 -8.5220 0.6990 N 10 TRP -0.415700 + 160 H 1.7230 -9.1150 0.7340 H 10 TRP 0.271900 + 161 CA -0.1880 -9.0660 -0.0800 CT 10 TRP -0.027500 + 162 HA -0.7370 -8.2200 -0.4950 H1 10 TRP 0.112300 + 163 CB 0.4120 -10.0100 -1.1170 CT 10 TRP -0.005000 + 164 HB2 1.1130 -10.7100 -0.6610 HC 10 TRP 0.033900 + 165 HB3 0.8870 -9.3680 -1.8590 HC 10 TRP 0.033900 + 166 CG -0.5390 -10.9280 -1.8160 C* 10 TRP -0.141500 + 167 CD1 -1.3130 -10.6860 -2.8980 CW 10 TRP -0.163800 + 168 HD1 -1.3370 -9.7640 -3.4600 H4 10 TRP 0.206200 + 169 NE1 -1.9710 -11.7860 -3.4110 NA 10 TRP -0.341800 + 170 HE1 -2.3840 -11.8640 -4.3300 H 10 TRP 0.341200 + 171 CE2 -1.9570 -12.7630 -2.4370 CN 10 TRP 0.138000 + 172 CZ2 -2.7850 -13.8650 -2.1910 CA 10 TRP -0.260100 + 173 HZ2 -3.6310 -14.0120 -2.8460 HA 10 TRP 0.157200 + 174 CH2 -2.6000 -14.7090 -1.0890 CA 10 TRP -0.113400 + 175 HH2 -3.3150 -15.4730 -0.8230 HA 10 TRP 0.141700 + 176 CZ3 -1.5180 -14.3450 -0.2780 CA 10 TRP -0.197200 + 177 HZ3 -1.3250 -14.9360 0.6040 HA 10 TRP 0.144700 + 178 CE3 -0.8090 -13.1460 -0.4190 CA 10 TRP -0.238700 + 179 HE3 -0.0380 -12.8340 0.2700 HA 10 TRP 0.170000 + 180 CD2 -1.0340 -12.2590 -1.4840 CB 10 TRP 0.124300 + 181 C -1.0790 -9.7520 0.9460 C 10 TRP 0.597300 + 182 O -0.7100 -10.6730 1.6720 O 10 TRP -0.567900 + 183 N -2.3440 -9.3260 0.9490 N 11 LYS -0.347900 + 184 H -2.4560 -8.3390 0.7700 H 11 LYS 0.274700 + 185 CA -3.4700 -9.9260 1.6360 CT 11 LYS -0.240000 + 186 HA -3.0970 -10.4390 2.5220 H1 11 LYS 0.142600 + 187 CB -4.3840 -8.8140 2.1420 CT 11 LYS -0.009400 + 188 HB2 -5.3890 -9.1120 2.4400 HC 11 LYS 0.036200 + 189 HB3 -4.4390 -8.0090 1.4090 HC 11 LYS 0.036200 + 190 CG -3.7990 -8.0920 3.3520 CT 11 LYS 0.018700 + 191 HG2 -2.8890 -7.5660 3.0640 HC 11 LYS 0.010300 + 192 HG3 -3.6910 -8.7240 4.2330 HC 11 LYS 0.010300 + 193 CD -4.8480 -7.0240 3.6500 CT 11 LYS -0.047900 + 194 HD2 -5.6910 -7.4110 4.2220 HC 11 LYS 0.062100 + 195 HD3 -5.1300 -6.4950 2.7400 HC 11 LYS 0.062100 + 196 CE -4.1080 -6.0190 4.5290 CT 11 LYS -0.014300 + 197 HE2 -3.1830 -5.6350 4.0990 HP 11 LYS 0.113500 + 198 HE3 -3.8850 -6.5530 5.4520 HP 11 LYS 0.113500 + 199 NZ -4.8770 -4.8020 4.8290 N3 11 LYS -0.385400 + 200 HZ1 -5.1320 -4.3050 3.9870 H 11 LYS 0.340000 + 201 HZ2 -5.7180 -4.9680 5.3620 H 11 LYS 0.340000 + 202 HZ3 -4.2500 -4.2630 5.4100 H 11 LYS 0.340000 + 203 C -4.3950 -10.7780 0.7790 C 11 LYS 0.734100 + 204 O -4.4830 -11.9390 1.1720 O 11 LYS -0.589400 + 205 N -4.8320 -10.2020 -0.3440 N 12 NME -0.415700 + 206 H -4.6470 -9.2390 -0.5870 H 12 NME 0.271900 + 207 CH3 -5.7200 -10.8660 -1.2770 CT 12 NME -0.149000 + 208 HH31 -5.5910 -11.9460 -1.3400 H1 12 NME 0.097600 + 209 HH32 -6.7570 -10.8860 -0.9420 H1 12 NME 0.097600 + 210 HH33 -5.7770 -10.3580 -2.2400 H1 12 NME 0.097600 + 211 N -3.7277 10.1413 6.5932 N3 13 NALA 0.141400 + 212 H1 -4.0094 10.1591 5.6234 H 13 NALA 0.199700 + 213 H2 -4.0987 10.9599 7.0540 H 13 NALA 0.199700 + 214 H3 -3.9143 9.2223 6.9685 H 13 NALA 0.199700 + 215 CA -2.2875 10.2915 6.6465 CX 13 NALA 0.096200 + 216 HA -2.0359 11.1860 7.2162 HP 13 NALA 0.088900 + 217 CB -1.6344 9.0873 7.3165 CT 13 NALA -0.059700 + 218 HB1 -1.8698 8.1849 6.7523 HC 13 NALA 0.030000 + 219 HB2 -0.5538 9.2272 7.3427 HC 13 NALA 0.030000 + 220 HB3 -2.0122 8.9878 8.3341 HC 13 NALA 0.030000 + 221 C -1.6982 10.4228 5.2494 C 13 NALA 0.616300 + 222 O -2.4352 10.3930 4.2663 O 13 NALA -0.572200 +@<TRIPOS>BOND + 1 1 3 1 + 2 3 5 1 + 3 3 23 1 + 4 5 8 1 + 5 8 9 1 + 6 8 22 1 + 7 9 11 1 + 8 11 13 1 + 9 13 14 1 + 10 13 22 1 + 11 14 16 1 + 12 16 18 1 + 13 18 20 1 + 14 20 22 1 + 15 23 24 1 + 16 23 25 1 + 17 25 27 1 + 18 27 29 1 + 19 27 37 1 + 20 29 31 1 + 21 29 35 1 + 22 37 38 1 + 23 37 39 1 + 24 39 41 1 + 25 41 43 1 + 26 41 61 1 + 27 43 46 1 + 28 46 47 1 + 29 46 60 1 + 30 47 49 1 + 31 49 51 1 + 32 51 52 1 + 33 51 60 1 + 34 52 54 1 + 35 54 56 1 + 36 56 58 1 + 37 58 60 1 + 38 61 62 1 + 39 61 63 1 + 40 63 65 1 + 41 65 67 1 + 42 65 76 1 + 43 67 70 1 + 44 70 73 1 + 45 73 74 1 + 46 73 75 1 + 47 76 77 1 + 48 76 78 1 + 49 78 80 1 + 50 80 82 1 + 51 80 90 1 + 52 82 85 1 + 53 85 86 1 + 54 85 87 1 + 55 90 91 1 + 56 90 92 1 + 57 92 94 1 + 58 94 97 1 + 59 97 98 1 + 60 97 99 1 + 61 99 101 1 + 62 101 103 1 + 63 101 119 1 + 64 103 106 1 + 65 106 109 1 + 66 109 112 1 + 67 112 115 1 + 68 119 120 1 + 69 119 121 1 + 70 121 123 1 + 71 123 125 1 + 72 123 143 1 + 73 125 128 1 + 74 128 129 1 + 75 128 142 1 + 76 129 131 1 + 77 131 133 1 + 78 133 134 1 + 79 133 142 1 + 80 134 136 1 + 81 136 138 1 + 82 138 140 1 + 83 140 142 1 + 84 143 144 1 + 85 143 145 1 + 86 145 147 1 + 87 147 149 1 + 88 147 157 1 + 89 149 151 1 + 90 149 155 1 + 91 157 158 1 + 92 157 159 1 + 93 159 161 1 + 94 161 163 1 + 95 161 181 1 + 96 163 166 1 + 97 166 167 1 + 98 166 180 1 + 99 167 169 1 + 100 169 171 1 + 101 171 172 1 + 102 171 180 1 + 103 172 174 1 + 104 174 176 1 + 105 176 178 1 + 106 178 180 1 + 107 181 182 1 + 108 181 183 1 + 109 183 185 1 + 110 185 187 1 + 111 185 203 1 + 112 187 190 1 + 113 190 193 1 + 114 193 196 1 + 115 196 199 1 + 116 203 204 1 + 117 203 205 1 + 118 205 207 1 + 119 211 215 1 + 120 215 217 1 + 121 215 221 1 + 122 221 222 1 + 123 221 1 1 + 124 1 2 1 + 125 3 4 1 + 126 5 6 1 + 127 5 7 1 + 128 9 10 1 + 129 11 12 1 + 130 14 15 1 + 131 16 17 1 + 132 18 19 1 + 133 20 21 1 + 134 25 26 1 + 135 27 28 1 + 136 29 30 1 + 137 31 32 1 + 138 31 33 1 + 139 31 34 1 + 140 35 36 1 + 141 39 40 1 + 142 41 42 1 + 143 43 44 1 + 144 43 45 1 + 145 47 48 1 + 146 49 50 1 + 147 52 53 1 + 148 54 55 1 + 149 56 57 1 + 150 58 59 1 + 151 63 64 1 + 152 65 66 1 + 153 67 68 1 + 154 67 69 1 + 155 70 71 1 + 156 70 72 1 + 157 78 79 1 + 158 80 81 1 + 159 82 83 1 + 160 82 84 1 + 161 87 88 1 + 162 87 89 1 + 163 92 93 1 + 164 94 95 1 + 165 94 96 1 + 166 99 100 1 + 167 101 102 1 + 168 103 104 1 + 169 103 105 1 + 170 106 107 1 + 171 106 108 1 + 172 109 110 1 + 173 109 111 1 + 174 112 113 1 + 175 112 114 1 + 176 115 116 1 + 177 115 117 1 + 178 115 118 1 + 179 121 122 1 + 180 123 124 1 + 181 125 126 1 + 182 125 127 1 + 183 129 130 1 + 184 131 132 1 + 185 134 135 1 + 186 136 137 1 + 187 138 139 1 + 188 140 141 1 + 189 145 146 1 + 190 147 148 1 + 191 149 150 1 + 192 151 152 1 + 193 151 153 1 + 194 151 154 1 + 195 155 156 1 + 196 159 160 1 + 197 161 162 1 + 198 163 164 1 + 199 163 165 1 + 200 167 168 1 + 201 169 170 1 + 202 172 173 1 + 203 174 175 1 + 204 176 177 1 + 205 178 179 1 + 206 183 184 1 + 207 185 186 1 + 208 187 188 1 + 209 187 189 1 + 210 190 191 1 + 211 190 192 1 + 212 193 194 1 + 213 193 195 1 + 214 196 197 1 + 215 196 198 1 + 216 199 200 1 + 217 199 201 1 + 218 199 202 1 + 219 205 206 1 + 220 207 208 1 + 221 207 209 1 + 222 207 210 1 + 223 211 212 1 + 224 211 213 1 + 225 211 214 1 + 226 215 216 1 + 227 217 218 1 + 228 217 219 1 + 229 217 220 1 +@<TRIPOS>SUBSTRUCTURE + 1 TRP 1 **** 0 **** **** + 2 THR 25 **** 0 **** **** + 3 TRP 39 **** 0 **** **** + 4 GLU 63 **** 0 **** **** + 5 ASN 78 **** 0 **** **** + 6 GLY 92 **** 0 **** **** + 7 LYS 99 **** 0 **** **** + 8 TRP 121 **** 0 **** **** + 9 THR 145 **** 0 **** **** + 10 TRP 159 **** 0 **** **** + 11 LYS 183 **** 0 **** **** + 12 NME 205 **** 0 **** **** + 13 NALA 211 **** 0 **** **** diff --git a/test/Test_Graft/RunTest.sh b/test/Test_Graft/RunTest.sh index e5b32c2f2b..da9faecb6a 100755 --- a/test/Test_Graft/RunTest.sh +++ b/test/Test_Graft/RunTest.sh @@ -3,7 +3,8 @@ . ../MasterTest.sh CleanFiles cpptraj.in Final.graft.mol2 Nucleotide.pdb Nucleotide.charge.mol2 \ - IC.Final.graft.mol2 IC.Nucleotide.pdb + IC.Final.graft.mol2 IC.Nucleotide.pdb Out.mol2 Out2.mol2 \ + zFinal.dat zicBaseSugar.dat zicFinal.dat TESTNAME='Graft test' Requires notparallel @@ -185,11 +186,42 @@ EOF DoTest Nucleotide.charge.mol2.save Nucleotide.charge.mol2 } +# Remove existing N-terminal residue, graft another one on +RemoveAndGraft() { + cat > cpptraj.in <<EOF +parm ../tz2.parm7 +loadcrd ../tz2.rst7 name MyMol +readdata NALA.lib name NALA +crdaction MyMol strip :1 +dataset MyMol connect headmask :1@N +graft src NALA[NALA] tgt MyMol ic bond :1@N,:1@C name Out +graft src NALA[NALA] tgt MyMol ic name Out2 +crdout Out Out.mol2 +crdout Out2 Out2.mol2 +quit +EOF + RunCpptraj "Remove an existing residue and graft on a new one." + DoTest Out.mol2.save Out.mol2 + DoTest Out.mol2.save Out2.mol2 +} + +# Graft residues with CONNECT atoms +GraftWithConnect() { + cat > cpptraj.in <<EOF +readdata ALA.ARG.lib name LIB +graft src LIB[ARG] tgt LIB[ALA] ic name Mol +crdout Mol ala.arg.mol2 +EOF + RunCpptraj "Graft residues with CONNECT atoms" +} + TyrPry TyrPryIC DNA DNAic DNAcharge +RemoveAndGraft +GraftWithConnect EndTest exit 0 diff --git a/test/Test_Graft/ala.arg.mol2.save b/test/Test_Graft/ala.arg.mol2.save new file mode 100644 index 0000000000..6e38838716 --- /dev/null +++ b/test/Test_Graft/ala.arg.mol2.save @@ -0,0 +1,79 @@ +@<TRIPOS>MOLECULE +Cpptraj Generated mol2 file. + 34 33 2 0 0 +SMALL +USER_CHARGES + + +@<TRIPOS>ATOM + 1 N 3.3258 1.5479 -0.0000 N 1 ALA -0.415700 + 2 H 3.9094 0.7236 -0.0000 H 1 ALA 0.271900 + 3 CA 3.9700 2.8458 -0.0000 XC 1 ALA 0.033700 + 4 HA 3.6717 3.4001 -0.8898 H1 1 ALA 0.082300 + 5 CB 3.5770 3.6538 1.2321 CT 1 ALA -0.182500 + 6 HB1 3.8775 3.1158 2.1312 HC 1 ALA 0.060300 + 7 HB2 4.0751 4.6230 1.2058 HC 1 ALA 0.060300 + 8 HB3 2.4970 3.8011 1.2414 HC 1 ALA 0.060300 + 9 C 5.4855 2.7052 -0.0000 C 1 ALA 0.597300 + 10 O 6.0088 1.5932 -0.0000 O 1 ALA -0.567900 + 11 N 6.2656 3.8070 -0.0000 N 2 ARG -0.347900 + 12 H 5.8436 4.7246 -0.0000 H 2 ARG 0.274700 + 13 CA 7.7085 3.6731 -0.0000 XC 2 ARG -0.263700 + 14 HA 8.0233 3.1280 0.8898 H1 2 ARG 0.156000 + 15 CB 8.1894 2.9141 -1.2322 C8 2 ARG -0.000700 + 16 HB2 7.7472 1.9179 -1.2414 HC 2 ARG 0.032700 + 17 HB3 7.8895 3.4525 -2.1312 HC 2 ARG 0.032700 + 18 CG 9.7093 2.7949 -1.1946 C8 2 ARG 0.039000 + 19 HG2 10.1522 3.7908 -1.1858 HC 2 ARG 0.028500 + 20 HG3 10.0099 2.2561 -0.2960 HC 2 ARG 0.028500 + 21 CD 10.1902 2.0359 -2.4267 C8 2 ARG 0.048600 + 22 HD2 9.7480 1.0396 -2.4360 H1 2 ARG 0.068700 + 23 HD3 9.8903 2.5743 -3.3258 H1 2 ARG 0.068700 + 24 NE 11.6640 1.9004 -2.4245 N2 2 ARG -0.529500 + 25 HE 12.1833 2.2984 -1.6551 H 2 ARG 0.345600 + 26 CZ 12.3357 1.2786 -3.3894 CA 2 ARG 0.807600 + 27 NH1 11.7224 0.7298 -4.4342 N2 2 ARG -0.862700 + 28 HH11 10.7164 0.7798 -4.5089 H 2 ARG 0.447800 + 29 HH12 12.2655 0.2655 -5.1480 H 2 ARG 0.447800 + 30 NH2 13.6603 1.2151 -3.2870 N2 2 ARG -0.862700 + 31 HH21 14.1229 1.6330 -2.4924 H 2 ARG 0.447800 + 32 HH22 14.1974 0.7494 -4.0044 H 2 ARG 0.447800 + 33 C 8.3852 5.0364 -0.0000 C 2 ARG 0.734100 + 34 O 7.7140 6.0660 0.0000 O 2 ARG -0.589400 +@<TRIPOS>BOND + 1 1 3 1 + 2 3 5 1 + 3 3 9 1 + 4 9 10 1 + 5 11 13 1 + 6 13 15 1 + 7 13 33 1 + 8 15 18 1 + 9 18 21 1 + 10 21 24 1 + 11 24 26 1 + 12 26 27 1 + 13 26 30 1 + 14 33 34 1 + 15 11 9 1 + 16 1 2 1 + 17 3 4 1 + 18 5 6 1 + 19 5 7 1 + 20 5 8 1 + 21 11 12 1 + 22 13 14 1 + 23 15 16 1 + 24 15 17 1 + 25 18 19 1 + 26 18 20 1 + 27 21 22 1 + 28 21 23 1 + 29 24 25 1 + 30 27 28 1 + 31 27 29 1 + 32 30 31 1 + 33 30 32 1 +@<TRIPOS>SUBSTRUCTURE + 1 ALA 1 **** 0 **** **** + 2 ARG 11 **** 0 **** **** diff --git a/test/Test_HmassRepartition/tz2.hmr.parm7.save b/test/Test_HmassRepartition/tz2.hmr.parm7.save index ad1486c604..5c63f5c269 100644 --- a/test/Test_HmassRepartition/tz2.hmr.parm7.save +++ b/test/Test_HmassRepartition/tz2.hmr.parm7.save @@ -1,4 +1,4 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 01/31/22 11:59:27 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:09:46 %FLAG TITLE %FORMAT(20a4) @@ -1252,3 +1252,6 @@ E E E 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_LJC/cpptraj.znf_1264.parm7.save b/test/Test_LJC/cpptraj.znf_1264.parm7.save index c73c94795c..9507f6a0fa 100644 --- a/test/Test_LJC/cpptraj.znf_1264.parm7.save +++ b/test/Test_LJC/cpptraj.znf_1264.parm7.save @@ -1,4 +1,4 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 07/22/21 15:13:48 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:43:01 %FLAG TITLE %FORMAT(20a4) default_name @@ -2998,6 +2998,9 @@ modified Bondi radii (mbondi) 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.00000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 %FLAG LENNARD_JONES_CCOEF %FORMAT(5E16.8) 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 diff --git a/test/Test_Mutate/Built.mol2.save b/test/Test_Mutate/Built.mol2.save new file mode 100644 index 0000000000..622e47940c --- /dev/null +++ b/test/Test_Mutate/Built.mol2.save @@ -0,0 +1,356 @@ +@<TRIPOS>MOLECULE +Cpptraj Generated mol2 file. + 167 166 13 0 0 +SMALL +USER_CHARGES + + +@<TRIPOS>ATOM + 1 N -1.8890 9.1590 7.5690 N3 1 SER 0.184900 + 2 H1 -1.5301 8.5517 6.8462 H 1 SER 0.189800 + 3 H2 -2.8184 8.8525 7.8186 H 1 SER 0.189800 + 4 H3 -1.1833 9.2653 8.2837 H 1 SER 0.189800 + 5 CA -2.0640 10.5010 6.9930 CX 1 SER 0.056700 + 6 HA -3.1157 10.7781 7.0655 HP 1 SER 0.078200 + 7 CB -1.2300 11.5610 7.7070 2C 1 SER 0.259600 + 8 HB2 -1.2896 12.4668 7.1037 H1 1 SER 0.027300 + 9 HB3 -1.7043 11.7363 8.6726 H1 1 SER 0.027300 + 10 OG 0.1230 11.2160 7.9040 OH 1 SER -0.671400 + 11 HG 0.5733 11.9328 8.3568 HO 1 SER 0.423900 + 12 C -1.6130 10.4180 5.5420 C 1 SER 0.616300 + 13 O -2.4980 10.4330 4.6890 O 1 SER -0.572200 + 14 N -0.3660 10.5720 5.0900 N 2 ALA -0.415700 + 15 H 0.2422 10.7220 5.8823 H 2 ALA 0.271900 + 16 CA 0.1950 10.6970 3.7600 CX 2 ALA 0.033700 + 17 HA -0.2784 11.6285 3.4496 H1 2 ALA 0.082300 + 18 CB 1.7100 10.8790 3.7090 CT 2 ALA -0.182500 + 19 HB1 2.1982 9.9516 4.0085 HC 2 ALA 0.060300 + 20 HB2 2.0116 11.1363 2.6936 HC 2 ALA 0.060300 + 21 HB3 2.0034 11.6793 4.3884 HC 2 ALA 0.060300 + 22 C -0.1900 9.6090 2.7680 C 2 ALA 0.597300 + 23 O -0.4520 9.9630 1.6210 O 2 ALA -0.567900 + 24 N -0.2680 8.4020 3.3340 N 3 THR -0.415700 + 25 H -0.0556 8.3567 4.3204 H 3 THR 0.271900 + 26 CA -0.6060 7.1720 2.6470 CX 3 THR -0.038900 + 27 HA -0.2380 7.0720 1.6259 H1 3 THR 0.100700 + 28 CB -0.0930 5.9920 3.4680 3C 3 THR 0.365400 + 29 HB -0.7347 5.1301 3.2853 H1 3 THR 0.004300 + 30 CG2 1.3430 5.6480 3.0810 CT 3 THR -0.243800 + 31 HG21 1.9854 6.5094 3.2639 HC 3 THR 0.064200 + 32 HG22 1.6886 4.8043 3.6783 HC 3 THR 0.064200 + 33 HG23 1.3818 5.3844 2.0241 HC 3 THR 0.064200 + 34 OG1 -0.2730 6.2460 4.8430 OH 3 THR -0.676100 + 35 HG1 0.0520 5.4995 5.3515 HO 3 THR 0.410200 + 36 C -2.0730 6.8820 2.3630 C 3 THR 0.597300 + 37 O -2.8840 6.6850 3.2650 O 3 THR -0.567900 + 38 N -2.4140 6.7960 1.0750 N 4 ALA -0.415700 + 39 H -1.7951 7.2210 0.3994 H 4 ALA 0.271900 + 40 CA -3.6890 6.2860 0.6130 CX 4 ALA 0.033700 + 41 HA -4.2192 6.1589 1.5569 H1 4 ALA 0.082300 + 42 CB -4.4650 7.2750 -0.2530 CT 4 ALA -0.182500 + 43 HB1 -3.9512 7.4058 -1.2054 HC 4 ALA 0.060300 + 44 HB2 -5.4694 6.8915 -0.4322 HC 4 ALA 0.060300 + 45 HB3 -4.5292 8.2349 0.2594 HC 4 ALA 0.060300 + 46 C -3.6320 4.9260 -0.0680 C 4 ALA 0.597300 + 47 O -4.2790 3.9520 0.3090 O 4 ALA -0.567900 + 48 N -2.7950 4.8720 -1.1060 N 5 GLU -0.516300 + 49 H -2.4850 5.7793 -1.4235 H 5 GLU 0.293600 + 50 CA -2.5350 3.7230 -1.9500 CX 5 GLU 0.039700 + 51 HA -2.6364 2.8498 -1.3056 H1 5 GLU 0.110500 + 52 CB -3.4130 3.5240 -3.1830 2C 5 GLU 0.056000 + 53 HB2 -4.4152 3.8399 -2.8932 HC 5 GLU -0.017300 + 54 HB3 -3.0241 4.2025 -3.9423 HC 5 GLU -0.017300 + 55 CG -3.4700 2.1080 -3.7480 2C 5 GLU 0.013600 + 56 HG2 -3.9808 2.1523 -4.7099 HC 5 GLU -0.042500 + 57 HG3 -2.4416 1.7795 -3.8981 HC 5 GLU -0.042500 + 58 CD -4.1890 1.1230 -2.8370 CO 5 GLU 0.805400 + 59 OE1 -3.8030 0.7710 -1.7020 O2 5 GLU -0.818800 + 60 OE2 -5.2630 0.6010 -3.2070 O2 5 GLU -0.818800 + 61 C -1.0580 3.5180 -2.2550 C 5 GLU 0.536600 + 62 O -0.3010 4.4140 -2.6190 O 5 GLU -0.581900 + 63 N -0.6680 2.2650 -2.0090 N 6 ASN -0.415700 + 64 H -1.3463 1.7023 -1.5156 H 6 ASN 0.271900 + 65 CA 0.6390 1.6960 -2.2670 CX 6 ASN 0.014300 + 66 HA 1.2181 2.4119 -2.8502 H1 6 ASN 0.104800 + 67 CB 1.4120 1.3660 -0.9930 2C 6 ASN -0.204100 + 68 HB2 0.5185 1.1760 -0.3983 HC 6 ASN 0.079700 + 69 HB3 2.0633 0.4927 -0.9585 HC 6 ASN 0.079700 + 70 CG 2.1540 2.5500 -0.3910 C 6 ASN 0.713000 + 71 OD1 2.8090 3.3470 -1.0580 O 6 ASN -0.593100 + 72 ND2 2.3590 2.5190 0.9280 N 6 ASN -0.919100 + 73 HD21 2.8467 3.2803 1.3782 H 6 ASN 0.419600 + 74 HD22 2.0254 1.7344 1.4695 H 6 ASN 0.419600 + 75 C 0.5090 0.4880 -3.1850 C 6 ASN 0.597300 + 76 O -0.4570 -0.2500 -3.0040 O 6 ASN -0.567900 + 77 N 1.4630 0.2470 -4.0870 N 7 GLY -0.415700 + 78 H 2.2534 0.8703 -4.1700 H 7 GLY 0.271900 + 79 CA 1.3990 -0.9020 -4.9670 CX 7 GLY -0.025200 + 80 HA2 0.4659 -0.8067 -5.5222 H1 7 GLY 0.069800 + 81 HA3 2.2407 -0.8055 -5.6528 H1 7 GLY 0.069800 + 82 C 1.4480 -2.2750 -4.3130 C 7 GLY 0.597300 + 83 O 0.7270 -2.5760 -3.3640 O 7 GLY -0.567900 + 84 N 2.3610 -3.1180 -4.8010 N 8 LYS -0.347900 + 85 H 2.9875 -2.7066 -5.4780 H 8 LYS 0.274700 + 86 CA 2.5410 -4.5140 -4.4580 CX 8 LYS -0.240000 + 87 HA 1.5806 -4.9565 -4.1935 H1 8 LYS 0.142600 + 88 CB 3.1230 -5.2830 -5.6410 C8 8 LYS -0.009400 + 89 HB2 3.2859 -6.2983 -5.2793 HC 8 LYS 0.036200 + 90 HB3 2.3408 -5.2894 -6.4001 HC 8 LYS 0.036200 + 91 CG 4.4160 -4.7460 -6.2480 C8 8 LYS 0.018700 + 92 HG2 4.3009 -3.6849 -6.4692 HC 8 LYS 0.010300 + 93 HG3 5.2341 -4.8825 -5.5408 HC 8 LYS 0.010300 + 94 CD 4.7260 -5.5030 -7.5360 C8 8 LYS -0.047900 + 95 HD2 4.5356 -6.5561 -7.3289 HC 8 LYS 0.062100 + 96 HD3 4.0166 -5.1460 -8.2826 HC 8 LYS 0.062100 + 97 CE 6.1480 -5.3380 -8.0660 C8 8 LYS -0.014300 + 98 HE2 6.7759 -4.9415 -7.2681 HP 8 LYS 0.113500 + 99 HE3 6.5237 -6.3143 -8.3722 HP 8 LYS 0.113500 + 100 NZ 6.1770 -4.4200 -9.2140 N3 8 LYS -0.385400 + 101 HZ1 5.8293 -3.5152 -8.9304 H 8 LYS 0.340000 + 102 HZ2 7.1261 -4.3268 -9.5467 H 8 LYS 0.340000 + 103 HZ3 5.5955 -4.7874 -9.9536 H 8 LYS 0.340000 + 104 C 3.5120 -4.5190 -3.2860 C 8 LYS 0.734100 + 105 O 4.6240 -5.0420 -3.2860 O 8 LYS -0.589400 + 106 N 2.9250 -4.2560 -2.1160 N 9 ALA -0.415700 + 107 H 1.9772 -3.9809 -2.3306 H 9 ALA 0.271900 + 108 CA 3.3410 -4.2620 -0.7280 CX 9 ALA 0.033700 + 109 HA 4.4119 -4.1552 -0.5551 H1 9 ALA 0.082300 + 110 CB 2.6250 -3.0680 -0.1040 CT 9 ALA -0.182500 + 111 HB1 1.5508 -3.1652 -0.2609 HC 9 ALA 0.060300 + 112 HB2 2.8341 -3.0365 0.9653 HC 9 ALA 0.060300 + 113 HB3 2.9779 -2.1480 -0.5699 HC 9 ALA 0.060300 + 114 C 2.9450 -5.5930 -0.1050 C 9 ALA 0.597300 + 115 O 3.0220 -6.6750 -0.6820 O 9 ALA -0.567900 + 116 N 2.5310 -5.6090 1.1640 N 10 THR -0.415700 + 117 H 2.3704 -4.7579 1.6835 H 10 THR 0.271900 + 118 CA 2.2540 -6.8740 1.8150 CX 10 THR -0.038900 + 119 HA 3.0024 -7.6404 1.6134 H1 10 THR 0.100700 + 120 CB 2.2070 -6.6220 3.3200 3C 10 THR 0.365400 + 121 HB 1.7393 -5.6460 3.4492 H1 10 THR 0.004300 + 122 CG2 1.4560 -7.6590 4.1490 CT 10 THR -0.243800 + 123 HG21 1.9234 -8.6353 4.0207 HC 10 THR 0.064200 + 124 HG22 1.4886 -7.3766 5.2013 HC 10 THR 0.064200 + 125 HG23 0.4185 -7.7072 3.8183 HC 10 THR 0.064200 + 126 OG1 3.4600 -6.5010 3.9540 OH 10 THR -0.676100 + 127 HG1 3.3301 -6.3451 4.8923 HO 10 THR 0.410200 + 128 C 0.8890 -7.3540 1.3440 C 10 THR 0.597300 + 129 O -0.1720 -6.7600 1.5240 O 10 THR -0.567900 + 130 N 0.9060 -8.5220 0.6990 N 11 ALA -0.415700 + 131 H 1.7668 -9.0480 0.7481 H 11 ALA 0.271900 + 132 CA -0.1880 -9.0660 -0.0800 CX 11 ALA 0.033700 + 133 HA -0.8293 -8.3485 -0.5919 H1 11 ALA 0.082300 + 134 CB 0.4120 -10.0100 -1.1170 CT 11 ALA -0.182500 + 135 HB1 1.0496 -10.7402 -0.6186 HC 11 ALA 0.060300 + 136 HB2 -0.3892 -10.5279 -1.6443 HC 11 ALA 0.060300 + 137 HB3 1.0050 -9.4375 -1.8302 HC 11 ALA 0.060300 + 138 C -1.0790 -9.7520 0.9460 C 11 ALA 0.597300 + 139 O -0.7100 -10.6730 1.6720 O 11 ALA -0.567900 + 140 N -2.3440 -9.3260 0.9490 N 12 LYS -0.347900 + 141 H -2.5162 -8.5293 0.3525 H 12 LYS 0.274700 + 142 CA -3.4700 -9.9260 1.6360 CX 12 LYS -0.240000 + 143 HA -3.1315 -10.5139 2.4892 H1 12 LYS 0.142600 + 144 CB -4.3840 -8.8140 2.1420 C8 12 LYS -0.009400 + 145 HB2 -4.5318 -8.1015 1.3305 HC 12 LYS 0.036200 + 146 HB3 -5.3413 -9.2593 2.4127 HC 12 LYS 0.036200 + 147 CG -3.7990 -8.0920 3.3520 C8 12 LYS 0.018700 + 148 HG2 -3.6887 -8.7443 4.2183 HC 12 LYS 0.010300 + 149 HG3 -2.8444 -7.6127 3.1349 HC 12 LYS 0.010300 + 150 CD -4.8480 -7.0240 3.6500 C8 12 LYS -0.047900 + 151 HD2 -5.1982 -6.5266 2.7456 HC 12 LYS 0.062100 + 152 HD3 -5.7012 -7.4255 4.1968 HC 12 LYS 0.062100 + 153 CE -4.1080 -6.0190 4.5290 C8 12 LYS -0.014300 + 154 HE2 -3.8582 -6.5292 5.4593 HP 12 LYS 0.113500 + 155 HE3 -3.1908 -5.7491 4.0056 HP 12 LYS 0.113500 + 156 NZ -4.8770 -4.8020 4.8290 N3 12 LYS -0.385400 + 157 HZ1 -5.7267 -5.0518 5.3144 H 12 LYS 0.340000 + 158 HZ2 -4.3242 -4.1895 5.4115 H 12 LYS 0.340000 + 159 HZ3 -5.1082 -4.3289 3.9671 H 12 LYS 0.340000 + 160 C -4.3950 -10.7780 0.7790 C 12 LYS 0.734100 + 161 O -4.4830 -11.9390 1.1720 O 12 LYS -0.589400 + 162 N -4.8320 -10.2020 -0.3440 N 13 NME -0.415700 + 163 H -4.5447 -9.2614 -0.5740 H 13 NME 0.271900 + 164 C -5.7189 -10.8883 -1.2616 CT 13 NME -0.149000 + 165 H1 -5.9371 -11.8855 -0.8794 H1 13 NME 0.097600 + 166 H2 -6.6475 -10.3260 -1.3592 H1 13 NME 0.097600 + 167 H3 -5.2402 -10.9705 -2.2374 H1 13 NME 0.097600 +@<TRIPOS>BOND + 1 12 13 1 + 2 12 14 1 + 3 7 10 1 + 4 5 7 1 + 5 5 12 1 + 6 1 5 1 + 7 22 23 1 + 8 22 24 1 + 9 16 18 1 + 10 16 22 1 + 11 14 16 1 + 12 36 37 1 + 13 36 38 1 + 14 28 30 1 + 15 28 34 1 + 16 26 28 1 + 17 26 36 1 + 18 24 26 1 + 19 46 47 1 + 20 46 48 1 + 21 40 42 1 + 22 40 46 1 + 23 38 40 1 + 24 61 62 1 + 25 61 63 1 + 26 58 59 1 + 27 58 60 1 + 28 55 58 1 + 29 52 55 1 + 30 50 52 1 + 31 50 61 1 + 32 48 50 1 + 33 75 76 1 + 34 75 77 1 + 35 70 71 1 + 36 70 72 1 + 37 67 70 1 + 38 65 67 1 + 39 65 75 1 + 40 63 65 1 + 41 82 83 1 + 42 82 84 1 + 43 79 82 1 + 44 77 79 1 + 45 104 105 1 + 46 104 106 1 + 47 97 100 1 + 48 94 97 1 + 49 91 94 1 + 50 88 91 1 + 51 86 88 1 + 52 86 104 1 + 53 84 86 1 + 54 114 115 1 + 55 114 116 1 + 56 108 110 1 + 57 108 114 1 + 58 106 108 1 + 59 128 129 1 + 60 128 130 1 + 61 120 122 1 + 62 120 126 1 + 63 118 120 1 + 64 118 128 1 + 65 116 118 1 + 66 138 139 1 + 67 138 140 1 + 68 132 134 1 + 69 132 138 1 + 70 130 132 1 + 71 160 161 1 + 72 160 162 1 + 73 153 156 1 + 74 150 153 1 + 75 147 150 1 + 76 144 147 1 + 77 142 144 1 + 78 142 160 1 + 79 140 142 1 + 80 162 164 1 + 81 10 11 1 + 82 7 8 1 + 83 7 9 1 + 84 5 6 1 + 85 1 2 1 + 86 1 3 1 + 87 1 4 1 + 88 18 19 1 + 89 18 20 1 + 90 18 21 1 + 91 16 17 1 + 92 14 15 1 + 93 34 35 1 + 94 30 31 1 + 95 30 32 1 + 96 30 33 1 + 97 28 29 1 + 98 26 27 1 + 99 24 25 1 + 100 42 43 1 + 101 42 44 1 + 102 42 45 1 + 103 40 41 1 + 104 38 39 1 + 105 55 56 1 + 106 55 57 1 + 107 52 53 1 + 108 52 54 1 + 109 50 51 1 + 110 48 49 1 + 111 72 73 1 + 112 72 74 1 + 113 67 68 1 + 114 67 69 1 + 115 65 66 1 + 116 63 64 1 + 117 79 80 1 + 118 79 81 1 + 119 77 78 1 + 120 100 101 1 + 121 100 102 1 + 122 100 103 1 + 123 97 98 1 + 124 97 99 1 + 125 94 95 1 + 126 94 96 1 + 127 91 92 1 + 128 91 93 1 + 129 88 89 1 + 130 88 90 1 + 131 86 87 1 + 132 84 85 1 + 133 110 111 1 + 134 110 112 1 + 135 110 113 1 + 136 108 109 1 + 137 106 107 1 + 138 126 127 1 + 139 122 123 1 + 140 122 124 1 + 141 122 125 1 + 142 120 121 1 + 143 118 119 1 + 144 116 117 1 + 145 134 135 1 + 146 134 136 1 + 147 134 137 1 + 148 132 133 1 + 149 130 131 1 + 150 156 157 1 + 151 156 158 1 + 152 156 159 1 + 153 153 154 1 + 154 153 155 1 + 155 150 151 1 + 156 150 152 1 + 157 147 148 1 + 158 147 149 1 + 159 144 145 1 + 160 144 146 1 + 161 142 143 1 + 162 140 141 1 + 163 164 165 1 + 164 164 166 1 + 165 164 167 1 + 166 162 163 1 +@<TRIPOS>SUBSTRUCTURE + 1 SER 1 **** 0 **** **** + 2 ALA 14 **** 0 **** **** + 3 THR 24 **** 0 **** **** + 4 ALA 38 **** 0 **** **** + 5 GLU 48 **** 0 **** **** + 6 ASN 63 **** 0 **** **** + 7 GLY 77 **** 0 **** **** + 8 LYS 84 **** 0 **** **** + 9 ALA 106 **** 0 **** **** + 10 THR 116 **** 0 **** **** + 11 ALA 130 **** 0 **** **** + 12 LYS 140 **** 0 **** **** + 13 NME 162 **** 0 **** **** diff --git a/test/Test_Mutate/Mutated.pdb.save b/test/Test_Mutate/Mutated.pdb.save new file mode 100644 index 0000000000..8d1398b3b8 --- /dev/null +++ b/test/Test_Mutate/Mutated.pdb.save @@ -0,0 +1,165 @@ +ATOM 1 N SER 1 -1.889 9.159 7.569 1.00 0.00 N +ATOM 2 H1 SER 1 -1.037 8.691 7.296 1.00 0.00 H +ATOM 3 H2 SER 1 -1.900 9.298 8.569 1.00 0.00 H +ATOM 4 H3 SER 1 -2.538 8.447 7.265 1.00 0.00 H +ATOM 5 CA SER 1 -2.064 10.501 6.993 1.00 0.00 C +ATOM 6 HA SER 1 -3.100 10.824 7.102 1.00 0.00 H +ATOM 7 CB SER 1 -1.230 11.561 7.707 1.00 0.00 C +ATOM 8 HB2 SER 1 -1.670 11.811 8.673 1.00 0.00 H +ATOM 9 HB3 SER 1 -1.248 12.503 7.159 1.00 0.00 H +ATOM 10 OG SER 1 0.123 11.216 7.904 1.00 0.00 O +ATOM 11 HG SER 1 0.274 11.728 8.701 1.00 0.00 H +ATOM 12 C SER 1 -1.613 10.418 5.542 1.00 0.00 C +ATOM 13 O SER 1 -2.498 10.433 4.689 1.00 0.00 O +ATOM 14 N ALA 2 -0.366 10.572 5.090 1.00 0.00 N +ATOM 15 H ALA 2 0.344 10.612 5.808 1.00 0.00 H +ATOM 16 CA ALA 2 0.195 10.697 3.760 1.00 0.00 C +ATOM 17 HA ALA 2 -0.218 11.569 3.254 1.00 0.00 H +ATOM 18 CB ALA 2 1.710 10.879 3.709 1.00 0.00 C +ATOM 19 HB2 ALA 2 2.208 9.986 4.087 1.00 0.00 H +ATOM 20 HB3 ALA 2 1.927 11.641 4.458 1.00 0.00 H +ATOM 21 C ALA 2 -0.190 9.609 2.768 1.00 0.00 C +ATOM 22 O ALA 2 -0.452 9.963 1.621 1.00 0.00 O +ATOM 23 N THR 3 -0.268 8.402 3.334 1.00 0.00 N +ATOM 24 H THR 3 -0.260 8.275 4.336 1.00 0.00 H +ATOM 25 CA THR 3 -0.606 7.172 2.647 1.00 0.00 C +ATOM 26 HA THR 3 -0.180 7.266 1.648 1.00 0.00 H +ATOM 27 CB THR 3 -0.093 5.992 3.468 1.00 0.00 C +ATOM 28 HB THR 3 -0.586 5.081 3.128 1.00 0.00 H +ATOM 29 CG2 THR 3 1.343 5.648 3.081 1.00 0.00 C +ATOM 30 HG21 THR 3 1.306 5.005 2.202 1.00 0.00 H +ATOM 31 HG22 THR 3 1.955 6.543 2.967 1.00 0.00 H +ATOM 32 HG23 THR 3 1.828 5.068 3.866 1.00 0.00 H +ATOM 33 OG1 THR 3 -0.273 6.246 4.843 1.00 0.00 O +ATOM 34 HG1 THR 3 0.428 5.750 5.271 1.00 0.00 H +ATOM 35 C THR 3 -2.073 6.882 2.363 1.00 0.00 C +ATOM 36 O THR 3 -2.884 6.685 3.265 1.00 0.00 O +ATOM 37 N ALA 4 -2.414 6.796 1.075 1.00 0.00 N +ATOM 38 H ALA 4 -1.631 6.756 0.439 1.00 0.00 H +ATOM 39 CA ALA 4 -3.689 6.286 0.613 1.00 0.00 C +ATOM 40 HA ALA 4 -4.288 6.020 1.485 1.00 0.00 H +ATOM 41 CB ALA 4 -4.465 7.275 -0.253 1.00 0.00 C +ATOM 42 HB2 ALA 4 -5.450 6.821 -0.366 1.00 0.00 H +ATOM 43 HB3 ALA 4 -4.022 7.162 -1.242 1.00 0.00 H +ATOM 44 C ALA 4 -3.632 4.926 -0.068 1.00 0.00 C +ATOM 45 O ALA 4 -4.279 3.952 0.309 1.00 0.00 O +ATOM 46 N GLU 5 -2.795 4.872 -1.106 1.00 0.00 N +ATOM 47 H GLU 5 -2.278 5.708 -1.339 1.00 0.00 H +ATOM 48 CA GLU 5 -2.535 3.723 -1.950 1.00 0.00 C +ATOM 49 HA GLU 5 -3.007 2.948 -1.346 1.00 0.00 H +ATOM 50 CB GLU 5 -3.413 3.524 -3.183 1.00 0.00 C +ATOM 51 HB2 GLU 5 -3.139 4.141 -4.038 1.00 0.00 H +ATOM 52 HB3 GLU 5 -4.386 3.787 -2.767 1.00 0.00 H +ATOM 53 CG GLU 5 -3.470 2.108 -3.748 1.00 0.00 C +ATOM 54 HG2 GLU 5 -2.447 1.793 -3.953 1.00 0.00 H +ATOM 55 HG3 GLU 5 -4.039 2.425 -4.623 1.00 0.00 H +ATOM 56 CD GLU 5 -4.189 1.123 -2.837 1.00 0.00 C +ATOM 57 OE1 GLU 5 -3.803 0.771 -1.702 1.00 0.00 O +ATOM 58 OE2 GLU 5 -5.263 0.601 -3.207 1.00 0.00 O +ATOM 59 C GLU 5 -1.058 3.518 -2.255 1.00 0.00 C +ATOM 60 O GLU 5 -0.301 4.414 -2.619 1.00 0.00 O +ATOM 61 N ASN 6 -0.668 2.265 -2.009 1.00 0.00 N +ATOM 62 H ASN 6 -1.323 1.656 -1.539 1.00 0.00 H +ATOM 63 CA ASN 6 0.639 1.696 -2.267 1.00 0.00 C +ATOM 64 HA ASN 6 1.239 2.453 -2.772 1.00 0.00 H +ATOM 65 CB ASN 6 1.412 1.366 -0.993 1.00 0.00 C +ATOM 66 HB2 ASN 6 2.224 0.703 -1.291 1.00 0.00 H +ATOM 67 HB3 ASN 6 0.712 0.882 -0.311 1.00 0.00 H +ATOM 68 CG ASN 6 2.154 2.550 -0.391 1.00 0.00 C +ATOM 69 OD1 ASN 6 2.809 3.347 -1.058 1.00 0.00 O +ATOM 70 ND2 ASN 6 2.359 2.519 0.928 1.00 0.00 N +ATOM 71 HD21 ASN 6 1.869 1.897 1.556 1.00 0.00 H +ATOM 72 HD22 ASN 6 3.024 3.196 1.272 1.00 0.00 H +ATOM 73 C ASN 6 0.509 0.488 -3.185 1.00 0.00 C +ATOM 74 O ASN 6 -0.457 -0.250 -3.004 1.00 0.00 O +ATOM 75 N GLY 7 1.463 0.247 -4.087 1.00 0.00 N +ATOM 76 H GLY 7 2.372 0.658 -3.932 1.00 0.00 H +ATOM 77 CA GLY 7 1.399 -0.902 -4.967 1.00 0.00 C +ATOM 78 HA2 GLY 7 2.180 -0.882 -5.728 1.00 0.00 H +ATOM 79 HA3 GLY 7 0.501 -0.799 -5.576 1.00 0.00 H +ATOM 80 C GLY 7 1.448 -2.275 -4.313 1.00 0.00 C +ATOM 81 O GLY 7 0.727 -2.576 -3.364 1.00 0.00 O +ATOM 82 N LYS 8 2.361 -3.118 -4.801 1.00 0.00 N +ATOM 83 H LYS 8 3.080 -2.784 -5.426 1.00 0.00 H +ATOM 84 CA LYS 8 2.541 -4.514 -4.458 1.00 0.00 C +ATOM 85 HA LYS 8 1.627 -5.015 -4.138 1.00 0.00 H +ATOM 86 CB LYS 8 3.123 -5.283 -5.641 1.00 0.00 C +ATOM 87 HB2 LYS 8 2.435 -5.243 -6.486 1.00 0.00 H +ATOM 88 HB3 LYS 8 3.335 -6.318 -5.372 1.00 0.00 H +ATOM 89 CG LYS 8 4.416 -4.746 -6.248 1.00 0.00 C +ATOM 90 HG2 LYS 8 5.308 -4.960 -5.660 1.00 0.00 H +ATOM 91 HG3 LYS 8 4.393 -3.674 -6.439 1.00 0.00 H +ATOM 92 CD LYS 8 4.726 -5.503 -7.536 1.00 0.00 C +ATOM 93 HD2 LYS 8 3.992 -5.272 -8.308 1.00 0.00 H +ATOM 94 HD3 LYS 8 4.584 -6.543 -7.241 1.00 0.00 H +ATOM 95 CE LYS 8 6.148 -5.338 -8.066 1.00 0.00 C +ATOM 96 HE2 LYS 8 6.521 -6.290 -8.444 1.00 0.00 H +ATOM 97 HE3 LYS 8 6.848 -5.025 -7.290 1.00 0.00 H +ATOM 98 NZ LYS 8 6.177 -4.420 -9.214 1.00 0.00 N +ATOM 99 HZ1 LYS 8 6.046 -3.547 -8.722 1.00 0.00 H +ATOM 100 HZ2 LYS 8 7.131 -4.392 -9.546 1.00 0.00 H +ATOM 101 HZ3 LYS 8 5.471 -4.550 -9.925 1.00 0.00 H +ATOM 102 C LYS 8 3.512 -4.519 -3.286 1.00 0.00 C +ATOM 103 O LYS 8 4.624 -5.042 -3.286 1.00 0.00 O +ATOM 104 N ALA 9 2.925 -4.256 -2.116 1.00 0.00 N +ATOM 105 H ALA 9 2.010 -3.879 -2.316 1.00 0.00 H +ATOM 106 CA ALA 9 3.341 -4.262 -0.728 1.00 0.00 C +ATOM 107 HA ALA 9 4.410 -4.045 -0.724 1.00 0.00 H +ATOM 108 CB ALA 9 2.625 -3.068 -0.104 1.00 0.00 C +ATOM 109 HB2 ALA 9 1.589 -3.294 0.148 1.00 0.00 H +ATOM 110 HB3 ALA 9 2.835 -2.194 -0.721 1.00 0.00 H +ATOM 111 C ALA 9 2.945 -5.593 -0.105 1.00 0.00 C +ATOM 112 O ALA 9 3.022 -6.675 -0.682 1.00 0.00 O +ATOM 113 N THR 10 2.531 -5.609 1.164 1.00 0.00 N +ATOM 114 H THR 10 2.711 -4.794 1.731 1.00 0.00 H +ATOM 115 CA THR 10 2.254 -6.874 1.815 1.00 0.00 C +ATOM 116 HA THR 10 2.982 -7.667 1.644 1.00 0.00 H +ATOM 117 CB THR 10 2.207 -6.622 3.320 1.00 0.00 C +ATOM 118 HB THR 10 1.722 -5.667 3.526 1.00 0.00 H +ATOM 119 CG2 THR 10 1.456 -7.659 4.149 1.00 0.00 C +ATOM 120 HG21 THR 10 1.581 -7.464 5.214 1.00 0.00 H +ATOM 121 HG22 THR 10 0.402 -7.468 3.946 1.00 0.00 H +ATOM 122 HG23 THR 10 1.725 -8.640 3.755 1.00 0.00 H +ATOM 123 OG1 THR 10 3.460 -6.501 3.954 1.00 0.00 O +ATOM 124 HG1 THR 10 3.385 -6.097 4.822 1.00 0.00 H +ATOM 125 C THR 10 0.889 -7.354 1.344 1.00 0.00 C +ATOM 126 O THR 10 -0.172 -6.760 1.524 1.00 0.00 O +ATOM 127 N ALA 11 0.906 -8.522 0.699 1.00 0.00 N +ATOM 128 H ALA 11 1.723 -9.115 0.734 1.00 0.00 H +ATOM 129 CA ALA 11 -0.188 -9.066 -0.080 1.00 0.00 C +ATOM 130 HA ALA 11 -0.737 -8.220 -0.495 1.00 0.00 H +ATOM 131 CB ALA 11 0.412 -10.010 -1.117 1.00 0.00 C +ATOM 132 HB2 ALA 11 1.113 -10.710 -0.661 1.00 0.00 H +ATOM 133 HB3 ALA 11 0.887 -9.368 -1.859 1.00 0.00 H +ATOM 134 C ALA 11 -1.079 -9.752 0.946 1.00 0.00 C +ATOM 135 O ALA 11 -0.710 -10.673 1.672 1.00 0.00 O +ATOM 136 N LYS 12 -2.344 -9.326 0.949 1.00 0.00 N +ATOM 137 H LYS 12 -2.456 -8.339 0.770 1.00 0.00 H +ATOM 138 CA LYS 12 -3.470 -9.926 1.636 1.00 0.00 C +ATOM 139 HA LYS 12 -3.097 -10.439 2.522 1.00 0.00 H +ATOM 140 CB LYS 12 -4.384 -8.814 2.142 1.00 0.00 C +ATOM 141 HB2 LYS 12 -5.389 -9.112 2.440 1.00 0.00 H +ATOM 142 HB3 LYS 12 -4.439 -8.009 1.409 1.00 0.00 H +ATOM 143 CG LYS 12 -3.799 -8.092 3.352 1.00 0.00 C +ATOM 144 HG2 LYS 12 -2.889 -7.566 3.064 1.00 0.00 H +ATOM 145 HG3 LYS 12 -3.691 -8.724 4.233 1.00 0.00 H +ATOM 146 CD LYS 12 -4.848 -7.024 3.650 1.00 0.00 C +ATOM 147 HD2 LYS 12 -5.691 -7.411 4.222 1.00 0.00 H +ATOM 148 HD3 LYS 12 -5.130 -6.495 2.740 1.00 0.00 H +ATOM 149 CE LYS 12 -4.108 -6.019 4.529 1.00 0.00 C +ATOM 150 HE2 LYS 12 -3.183 -5.635 4.099 1.00 0.00 H +ATOM 151 HE3 LYS 12 -3.885 -6.553 5.452 1.00 0.00 H +ATOM 152 NZ LYS 12 -4.877 -4.802 4.829 1.00 0.00 N +ATOM 153 HZ1 LYS 12 -5.132 -4.305 3.987 1.00 0.00 H +ATOM 154 HZ2 LYS 12 -5.718 -4.968 5.362 1.00 0.00 H +ATOM 155 HZ3 LYS 12 -4.250 -4.263 5.410 1.00 0.00 H +ATOM 156 C LYS 12 -4.395 -10.778 0.779 1.00 0.00 C +ATOM 157 O LYS 12 -4.483 -11.939 1.172 1.00 0.00 O +ATOM 158 N NME 13 -4.832 -10.202 -0.344 1.00 0.00 N +ATOM 159 H NME 13 -4.647 -9.239 -0.587 1.00 0.00 H +ATOM 160 CH3 NME 13 -5.720 -10.866 -1.277 1.00 0.00 C +ATOM 161 HH31 NME 13 -5.591 -11.946 -1.340 1.00 0.00 H +ATOM 162 HH32 NME 13 -6.757 -10.886 -0.942 1.00 0.00 H +ATOM 163 HH33 NME 13 -5.777 -10.358 -2.240 1.00 0.00 H +TER 164 NME 13 +END diff --git a/test/Test_Mutate/RunTest.sh b/test/Test_Mutate/RunTest.sh new file mode 100755 index 0000000000..04d447a227 --- /dev/null +++ b/test/Test_Mutate/RunTest.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +. ../MasterTest.sh + +CleanFiles mutate.in Mutated.pdb Out.pdb Built.mol2 + +TESTNAME='Mutate tests' +Requires amberhome + +INPUT='-i mutate.in' + +cat > mutate.in <<EOF +source leaprc.protein.ff14SB +parm ../tz2.parm7 +loadcrd ../tz2.nc name MyCrd 1 1 + +mutate crdset MyCrd resmask :TRP to ALA +crdout MyCrd Mutated.pdb +quit +EOF +RunCpptraj "Mutate test, in-place coords" +DoTest Mutated.pdb.save Mutated.pdb + +cat > mutate.in <<EOF +source leaprc.protein.ff14SB +parm ../tz2.parm7 +loadcrd ../tz2.nc name MyCrd 1 1 + +mutate crdset MyCrd resmask :TRP to ALA outset Out +crdout Out Out.pdb +build crdset Out name Built crdout Built.mol2 noh +quit +EOF +RunCpptraj "Mutate test, new coords" +DoTest Mutated.pdb.save Out.pdb +DoTest Built.mol2.save Built.mol2 + +EndTest diff --git a/test/Test_NAstruct/axes.step.parm7.save b/test/Test_NAstruct/axes.step.parm7.save index d37d7d0a24..d8ee33b917 100644 --- a/test/Test_NAstruct/axes.step.parm7.save +++ b/test/Test_NAstruct/axes.step.parm7.save @@ -1,4 +1,4 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 07/11/23 09:21:41 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:08:01 %FLAG TITLE %FORMAT(20a4) StepAxes @@ -132,3 +132,20 @@ G5 G G C G C C %FORMAT(20a4) +%FLAG TREE_CHAIN_CLASSIFICATION +%FORMAT(20a4) +BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA +BLA BLA BLA BLA BLA BLA BLA BLA +%FLAG JOIN_ARRAY +%FORMAT(10I8) + 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 +%FLAG IROTAT +%FORMAT(10I8) + 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 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_ParmBox/out.parm7.save b/test/Test_ParmBox/out.parm7.save index e7fe58ca90..c2e6fd12e8 100644 --- a/test/Test_ParmBox/out.parm7.save +++ b/test/Test_ParmBox/out.parm7.save @@ -1,4 +1,4 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 09/19/17 14:36:57 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:09:40 %FLAG TITLE %FORMAT(20a4) ACE @@ -338,3 +338,6 @@ modified Bondi radii (mbondi) 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_PrepareForLeap/RunTest.sh b/test/Test_PrepareForLeap/RunTest.sh index 681b41cca2..874291cfbc 100755 --- a/test/Test_PrepareForLeap/RunTest.sh +++ b/test/Test_PrepareForLeap/RunTest.sh @@ -4,7 +4,9 @@ CleanFiles cpptraj.in 1qos.cpptraj.pdb leap.1qos.in \ leap.4zzw.in 4zzw.cpptraj.pdb 1qos.cpptraj.pdb.2 \ - leap.1qos.in.2 + leap.1qos.in.2 PEG.mol2 PEG.frcmod GOL.mol2 GOL.frcmod \ + PCA.mol2 PCA.frcmod MG.mol2 MG.frcmod \ + dlparams.leap.4zzw.in dlparams.4zzw.cpptraj.pdb INPUT='-i cpptraj.in' @@ -20,7 +22,7 @@ cat > cpptraj.in <<EOF parm 1qos.pdb loadcrd 1qos.pdb name MyCrd -prepareforleap \ +prepareforleap nodlparams \ crdset MyCrd \ name Final \ out leap.1qos.in \ @@ -35,7 +37,7 @@ DoTest 1qos.cpptraj.pdb.save 1qos.cpptraj.pdb cat > cpptraj.in <<EOF parm 1qos.cpptraj.pdb.save loadcrd 1qos.cpptraj.pdb.save name MyCrd -prepareforleap \ +prepareforleap nodlparams \ hasglycam \ crdset MyCrd \ name Final \ @@ -52,7 +54,7 @@ cat > cpptraj.in <<EOF parm 4zzw.pdb loadcrd 4zzw.pdb name MyCrd -prepareforleap \ +prepareforleap nodlparams \ crdset MyCrd \ name Final \ out leap.4zzw.in \ @@ -64,4 +66,33 @@ RunCpptraj "Prepare PDB 4zzw for LEaP" DoTest leap.4zzw.in.save leap.4zzw.in DoTest 4zzw.cpptraj.pdb.save 4zzw.cpptraj.pdb +# Test remote connectivity. +UNITNAME="Prepare PDB 4zzw for LEaP, download missing parameters" +PINGCMD=`which ping` +if [ ! -z "$PINGCMD" ] ; then + $PINGCMD -c 1 raw.githubusercontent.com + if [ $? -ne 0 ] ; then + echo "Warning: Could not ping raw.githubusercontent.com, no internet connectivity." + SkipCheck "$UNITNAME" + else + cat > cpptraj.in <<EOF +parm 4zzw.pdb +loadcrd 4zzw.pdb name MyCrd + +prepareforleap dlparams bondunknown \ + crdset MyCrd \ + name Final \ + out dlparams.leap.4zzw.in \ + leapunitname m \ + pdbout dlparams.4zzw.cpptraj.pdb \ + nowat noh keepaltloc highestocc +EOF + RunCpptraj "$UNITNAME" + DoTest dlparams.leap.4zzw.in.save dlparams.leap.4zzw.in + fi +else + echo "Warning: No 'ping' found, cannot check for internet connectivity." + SkipCheck "$UNITNAME" +fi + EndTest diff --git a/test/Test_PrepareForLeap/dlparams.leap.4zzw.in.save b/test/Test_PrepareForLeap/dlparams.leap.4zzw.in.save new file mode 100644 index 0000000000..52bca364c1 --- /dev/null +++ b/test/Test_PrepareForLeap/dlparams.leap.4zzw.in.save @@ -0,0 +1,23 @@ +GOL = loadmol2 GOL.mol2 +parmGOL = loadamberparams GOL.frcmod +PCA = loadmol2 PCA.mol2 +parmPCA = loadamberparams PCA.frcmod +PEG = loadmol2 PEG.mol2 +parmPEG = loadamberparams PEG.frcmod +m = loadpdb dlparams.4zzw.cpptraj.pdb +bond m.1.C m.2.N +bond m.19.SG m.25.SG +bond m.50.SG m.71.SG +bond m.61.SG m.67.SG +bond m.138.SG m.399.SG +bond m.172.SG m.207.SG +bond m.176.SG m.206.SG +bond m.235.SG m.240.SG +bond m.258.SG m.331.SG +bond m.436.C1 m.203.ND2 +bond m.436.O4 m.437.C1 +bond m.438.C1 m.439.O1 +bond m.438.O4 m.440.C1 +bond m.441.C1 m.57.ND2 +bond m.442.C1 m.429.ND2 +bond m.443.C1 m.196.OG diff --git a/test/Test_PrepareForLeap/leap.1qos.in.save b/test/Test_PrepareForLeap/leap.1qos.in.save index 32c3565874..fe1929faba 100644 --- a/test/Test_PrepareForLeap/leap.1qos.in.save +++ b/test/Test_PrepareForLeap/leap.1qos.in.save @@ -1,7 +1,7 @@ m = loadpdb 1qos.cpptraj.pdb bond m.182.SG m.419.SG bond m.475.C1 m.476.O1 -bond m.478.C1 m.479.O1 -bond m.483.C1 m.110.OG bond m.475.O4 m.477.C1 +bond m.478.C1 m.479.O1 bond m.478.O4 m.480.C1 +bond m.483.C1 m.110.OG diff --git a/test/Test_PrepareForLeap/leap.4zzw.in.save b/test/Test_PrepareForLeap/leap.4zzw.in.save index 08d4bc42f4..f6fabc9c1a 100644 --- a/test/Test_PrepareForLeap/leap.4zzw.in.save +++ b/test/Test_PrepareForLeap/leap.4zzw.in.save @@ -8,9 +8,9 @@ bond m.176.SG m.206.SG bond m.235.SG m.240.SG bond m.258.SG m.331.SG bond m.436.C1 m.203.ND2 +bond m.436.O4 m.437.C1 bond m.438.C1 m.439.O1 +bond m.438.O4 m.440.C1 bond m.441.C1 m.57.ND2 bond m.442.C1 m.429.ND2 bond m.443.C1 m.196.OG -bond m.436.O4 m.437.C1 -bond m.438.O4 m.440.C1 diff --git a/test/Test_ReadAmberFF/RunTest.sh b/test/Test_ReadAmberFF/RunTest.sh new file mode 100755 index 0000000000..67bc7b4045 --- /dev/null +++ b/test/Test_ReadAmberFF/RunTest.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +. ../MasterTest.sh + +CleanFiles cpptraj.in tip3pf.parm.dat toyrna.parm.dat toyrna.tip3pf.parm.dat + +INPUT='-i cpptraj.in' + +cat > cpptraj.in <<EOF +readdata frcmod.tip3pf as frcmod name TIP3PF +writedata tip3pf.parm.dat TIP3PF + +readdata toyrna.dat as amberff name TOYRNA +writedata toyrna.parm.dat TOYRNA + +readdata toyrna.dat as amberff name PARM +readdata frcmod.tip3pf as frcmod name PARM +writedata toyrna.tip3pf.parm.dat PARM +EOF +RunCpptraj "Test read Amber FF and force modification files." +DoTest tip3pf.parm.dat.save tip3pf.parm.dat +DoTest toyrna.parm.dat.save toyrna.parm.dat +DoTest toyrna.tip3pf.parm.dat.save toyrna.tip3pf.parm.dat + +EndTest diff --git a/test/Test_ReadAmberFF/frcmod.tip3pf b/test/Test_ReadAmberFF/frcmod.tip3pf new file mode 100644 index 0000000000..71695ee7c8 --- /dev/null +++ b/test/Test_ReadAmberFF/frcmod.tip3pf @@ -0,0 +1,17 @@ +This is TIP3P (model F) of Price and Brooks, JCP 121:10096, 2004 +MASS +OW 16.0 +HW 1.008 0.000 + +BOND +OW-HW 553.0 0.9572 TIP3P water +HW-HW 553.0 1.5136 TIP3P water + +ANGLE + +DIHE + +NONBON + OW 1.7926 0.098 + HW 0.0000 0.0000 + diff --git a/test/Test_ReadAmberFF/tip3pf.parm.dat.save b/test/Test_ReadAmberFF/tip3pf.parm.dat.save new file mode 100644 index 0000000000..fa1afc17ab --- /dev/null +++ b/test/Test_ReadAmberFF/tip3pf.parm.dat.save @@ -0,0 +1,10 @@ +Parameter set: This is TIP3P (model F) of Price and Brooks, JCP 121:10096, 2004 + Files: frcmod.tip3pf +Atom Types: + Name TypeIdx LJ Radius Depth Mass Polar. + HW 0 1 0.0000 0.0000 1.0080 0.0000 + OW 1 1 1.7926 0.0980 16.0000 0.0000 +Bond parameters: + Type1 Type2 : Rk Req + HW HW : 553.0000 1.5136 + HW OW : 553.0000 0.9572 diff --git a/test/Test_ReadAmberFF/toyrna.dat b/test/Test_ReadAmberFF/toyrna.dat new file mode 100644 index 0000000000..20b19ba4c1 --- /dev/null +++ b/test/Test_ReadAmberFF/toyrna.dat @@ -0,0 +1,157 @@ +toyrna force field +CB 56.00 0.000 backbone C4' +CS 43.00 0.000 sugar C1' +G9 25.00 0.000 sp2 nitrogen in base +G7 25.00 0.000 sp2 nitrogen in base +G6 25.00 0.000 sp2 oxygen in base +G1 25.00 0.000 sp2 nitrogen in base +G2 25.00 0.000 sp2 nitrogen in base +G3 25.00 0.000 sp2 nitrogen in base +A9 26.80 0.000 sp2 nitrogen in base +A7 26.80 0.000 sp2 nitrogen in base +A6 26.80 0.000 sp2 nitrogen in base +A1 26.80 0.000 sp2 nitrogen in base +A3 26.80 0.000 sp2 nitrogen in base +U1 27.75 0.000 sp2 nitrogen in base +U3 27.75 0.000 sp2 nitrogen in base +U4 27.75 0.000 sp2 oxygen in base +U2 27.75 0.000 sp2 oxygen in base +C1 27.50 0.000 sp2 nitrogen in base +C3 27.50 0.000 sp2 nitrogen in base +C4 27.50 0.000 sp2 nitrogen in base +C2 27.50 0.000 sp2 oxygen in base +P 95.00 0.000 phosphate,pol:JACS,112,8543,90,K.J.Miller + + +P -CB 150.0 3.90 +CB-CS 100.0 2.35 +CS-G9 150.0 1.48 +CS-A9 150.0 1.48 +CS-U1 150.0 1.48 +CS-C1 150.0 1.48 +A9-A7 100.0 2.24 +A7-A6 100.0 3.08 +A6-A1 100.0 2.31 +A1-A3 100.0 2.39 +A3-A9 100.0 2.43 +G9-G7 100.0 2.25 +G7-G6 100.0 3.09 +G6-G1 100.0 2.27 +G1-G2 100.0 2.29 +G2-G3 100.0 2.31 +G3-G9 100.0 2.42 +U1-U4 100.0 4.04 +U4-U3 100.0 2.27 +U3-U2 100.0 2.28 +U2-U1 100.0 2.29 +C1-C4 100.0 4.04 +C4-C3 100.0 2.31 +C3-C2 100.0 2.26 +C2-C1 100.0 2.27 + +CS-A9-A7 45. 160.9 +A9-A7-A6 50. 118.9 +A7-A6-A1 50. 85.4 +A6-A1-A3 50. 123.9 +A1-A3-A9 50. 112.1 +A3-A9-A7 50. 99.7 +CS-A9-A3 45. 99.1 +CS-G9-G7 45. 161.2 +G9-G7-G6 50. 117.7 +G7-G6-G1 50. 85.2 +G6-G1-G2 10. 175.1 +G1-G2-G3 50. 62.2 +G2-G3-G9 50. 169.6 +G3-G9-G7 50. 100.3 +CS-G9-G3 45. 97.9 +CS-U1-U4 0. 180.0 +U1-U4-U3 50. 29.5 +U4-U3-U2 0. 180.0 +U3-U2-U1 50. 61.8 +U2-U1-U4 50. 87.3 +CS-U1-U2 45. 90.8 +CS-C1-C4 0. 180.0 +C1-C4-C3 50. 30.0 +C4-C3-C2 0. 180.0 +C3-C2-C1 50. 62.3 +C2-C1-C4 50. 87.7 +CS-C1-C2 45. 89.2 +P -CB-P 22. 97.0 +CB-P -CB 30. 103.0 +P -CB-CS 30. 104.0 +CB-CS-G9 30. 122.5 +CB-CS-A9 30. 122.5 +CB-CS-U1 30. 122.5 +CB-CS-C1 30. 122.5 + +X -CB-CS-X 1 7.50 -165.0 1. +X -P -CB-X 1 0.0 180.0 2. +X -CS-G9-X 1 0.0 180.0 2. +X -CS-A9-X 1 0.0 180.0 2. +X -CS-U1-X 1 0.0 180.0 2. +X -CS-C1-X 1 0.0 180.0 2. +X -A9-A7-X 1 0.0 180.0 2. +X -A7-A6-X 1 0.0 180.0 2. +X -A6-A1-X 1 0.0 180.0 2. +X -A1-A3-X 1 0.0 180.0 2. +X -A3-A9-X 1 0.0 180.0 2. +X -G9-G7-X 1 0.0 180.0 2. +X -G7-G6-X 1 0.0 180.0 2. +X -G6-G1-X 1 0.0 180.0 2. +X -G1-G2-X 1 0.0 180.0 2. +X -G2-G3-X 1 0.0 180.0 2. +X -G3-G9-X 1 0.0 180.0 2. +X -U1-U4-X 1 0.0 180.0 2. +X -U4-U3-X 1 0.0 180.0 2. +X -U3-U2-X 1 0.0 180.0 2. +X -U2-U1-X 1 0.0 180.0 2. +X -C1-C4-X 1 0.0 180.0 2. +X -C4-C3-X 1 0.0 180.0 2. +X -C3-C2-X 1 0.0 180.0 2. +X -C2-C1-X 1 0.0 180.0 2. +CS-C1-C2-C3 1 2.0 180.0 2. +C4-C1-C2-C3 1 2.0 180.0 2. +CS-U1-U2-U3 1 2.0 180.0 2. +U4-U1-U2-U3 1 2.0 180.0 2. +CS-G9-G7-G6 1 2.0 180.0 2. +G9-G7-G6-G1 1 2.0 180.0 2. +CS-A9-A7-A6 1 2.0 180.0 2. +A9-A7-A6-A1 1 2.0 180.0 2. +CB-CS-C1-C2 1 2.0 180.0 2. +CB-CS-U1-U2 1 2.0 180.0 2. +CB-CS-G9-G3 1 2.0 180.0 2. +CB-CS-A9-A3 1 2.0 180.0 2. + + + G6 C4 5.0 3.0 0. + G1 C3 5.0 3.0 0. + G2 C2 5.0 3.0 0. + A6 U4 5.0 3.0 0. + A1 U3 5.0 3.0 0. + G7 C4 5.0 6.0 0. + G3 C2 5.0 5.25 0. + +CB CS +G9 A9 U1 C1 + +MOD4 RE + P 3.0000 0.2000 + CB 2.0000 0.2000 + G7 1.8000 0.2000 + G6 1.8000 0.2000 + G1 1.8000 0.2000 + G2 1.8000 0.2000 + G3 1.8000 0.2000 + A7 1.8000 0.2000 + A6 1.8000 0.2000 + A1 1.8000 0.2000 + A3 1.8000 0.2000 + U4 1.8000 0.2000 + U3 1.8000 0.2000 + U2 1.8000 0.2000 + C4 1.8000 0.2000 + C3 1.8000 0.2000 + C2 1.8000 0.2000 + G9 1.8000 0.3000 + +END diff --git a/test/Test_ReadAmberFF/toyrna.parm.dat.save b/test/Test_ReadAmberFF/toyrna.parm.dat.save new file mode 100644 index 0000000000..13e2391f90 --- /dev/null +++ b/test/Test_ReadAmberFF/toyrna.parm.dat.save @@ -0,0 +1,138 @@ +Parameter set: toyrna force field + Files: toyrna.dat +Nonbond parameters name: MOD4 +Atom Types: + Name TypeIdx LJ Radius Depth Mass Polar. + A1 0 1 1.8000 0.2000 26.8000 0.0000 + A3 1 1 1.8000 0.2000 26.8000 0.0000 + A6 2 1 1.8000 0.2000 26.8000 0.0000 + A7 3 1 1.8000 0.2000 26.8000 0.0000 + A9 4 1 1.8000 0.3000 26.8000 0.0000 + C1 5 1 1.8000 0.3000 27.5000 0.0000 + C2 6 1 1.8000 0.2000 27.5000 0.0000 + C3 7 1 1.8000 0.2000 27.5000 0.0000 + C4 8 1 1.8000 0.2000 27.5000 0.0000 + CB 9 1 2.0000 0.2000 56.0000 0.0000 + CS 10 1 2.0000 0.2000 43.0000 0.0000 + G1 11 1 1.8000 0.2000 25.0000 0.0000 + G2 12 1 1.8000 0.2000 25.0000 0.0000 + G3 13 1 1.8000 0.2000 25.0000 0.0000 + G6 14 1 1.8000 0.2000 25.0000 0.0000 + G7 15 1 1.8000 0.2000 25.0000 0.0000 + G9 16 1 1.8000 0.3000 25.0000 0.0000 + P 17 1 3.0000 0.2000 95.0000 0.0000 + U1 18 1 1.8000 0.3000 27.7500 0.0000 + U2 19 1 1.8000 0.2000 27.7500 0.0000 + U3 20 1 1.8000 0.2000 27.7500 0.0000 + U4 21 1 1.8000 0.2000 27.7500 0.0000 +HB LJ 10-12 parameters: + Type1 Type2 : Asol Bsol HBcut + A1 U3 : 5.0000 3.0000 0.0000 + A6 U4 : 5.0000 3.0000 0.0000 + C2 G2 : 5.0000 3.0000 0.0000 + C2 G3 : 5.0000 5.2500 0.0000 + C3 G1 : 5.0000 3.0000 0.0000 + C4 G6 : 5.0000 3.0000 0.0000 + C4 G7 : 5.0000 6.0000 0.0000 +Bond parameters: + Type1 Type2 : Rk Req + A1 A3 : 100.0000 2.3900 + A1 A6 : 100.0000 2.3100 + A3 A9 : 100.0000 2.4300 + A6 A7 : 100.0000 3.0800 + A7 A9 : 100.0000 2.2400 + A9 CS : 150.0000 1.4800 + C1 C2 : 100.0000 2.2700 + C1 C4 : 100.0000 4.0400 + C1 CS : 150.0000 1.4800 + C2 C3 : 100.0000 2.2600 + C3 C4 : 100.0000 2.3100 + CB CS : 100.0000 2.3500 + CB P : 150.0000 3.9000 + CS G9 : 150.0000 1.4800 + CS U1 : 150.0000 1.4800 + G1 G2 : 100.0000 2.2900 + G1 G6 : 100.0000 2.2700 + G2 G3 : 100.0000 2.3100 + G3 G9 : 100.0000 2.4200 + G6 G7 : 100.0000 3.0900 + G7 G9 : 100.0000 2.2500 + U1 U2 : 100.0000 2.2900 + U1 U4 : 100.0000 4.0400 + U2 U3 : 100.0000 2.2800 + U3 U4 : 100.0000 2.2700 +Angle parameters: + Type1 Type2 Type3 : Tk Teq + A1 A3 A9 : 50.0000 112.1000 + A1 A6 A7 : 50.0000 85.4000 + A3 A1 A6 : 50.0000 123.9000 + A3 A9 A7 : 50.0000 99.7000 + A3 A9 CS : 45.0000 99.1000 + A6 A7 A9 : 50.0000 118.9000 + A7 A9 CS : 45.0000 160.9000 + A9 CS CB : 30.0000 122.5000 + C1 C2 C3 : 50.0000 62.3000 + C1 C4 C3 : 50.0000 30.0000 + C1 CS CB : 30.0000 122.5000 + C2 C1 C4 : 50.0000 87.7000 + C2 C1 CS : 45.0000 89.2000 + C2 C3 C4 : 0.0000 180.0000 + C4 C1 CS : 0.0000 180.0000 + CB CS G9 : 30.0000 122.5000 + CB CS U1 : 30.0000 122.5000 + CB P CB : 30.0000 103.0000 + CS CB P : 30.0000 104.0000 + CS G9 G3 : 45.0000 97.9000 + CS G9 G7 : 45.0000 161.2000 + CS U1 U2 : 45.0000 90.8000 + CS U1 U4 : 0.0000 180.0000 + G1 G2 G3 : 50.0000 62.2000 + G1 G6 G7 : 50.0000 85.2000 + G2 G1 G6 : 10.0000 175.1000 + G2 G3 G9 : 50.0000 169.6000 + G3 G9 G7 : 50.0000 100.3000 + G6 G7 G9 : 50.0000 117.7000 + P CB P : 22.0000 97.0000 + U1 U2 U3 : 50.0000 61.8000 + U1 U4 U3 : 50.0000 29.5000 + U2 U1 U4 : 50.0000 87.3000 + U2 U3 U4 : 0.0000 180.0000 +Dihedral parameters: + Type1 Type2 Type3 Type4 Pk Pn Phase SCEE SCNB + X CB CS X : 7.5000 1.0 -165.00 1.20 2.00 + X P CB X : 0.0000 2.0 180.00 1.20 2.00 + X CS G9 X : 0.0000 2.0 180.00 1.20 2.00 + X CS A9 X : 0.0000 2.0 180.00 1.20 2.00 + X CS U1 X : 0.0000 2.0 180.00 1.20 2.00 + X CS C1 X : 0.0000 2.0 180.00 1.20 2.00 + X A9 A7 X : 0.0000 2.0 180.00 1.20 2.00 + X A7 A6 X : 0.0000 2.0 180.00 1.20 2.00 + X A6 A1 X : 0.0000 2.0 180.00 1.20 2.00 + X A1 A3 X : 0.0000 2.0 180.00 1.20 2.00 + X A3 A9 X : 0.0000 2.0 180.00 1.20 2.00 + X G9 G7 X : 0.0000 2.0 180.00 1.20 2.00 + X G7 G6 X : 0.0000 2.0 180.00 1.20 2.00 + X G6 G1 X : 0.0000 2.0 180.00 1.20 2.00 + X G1 G2 X : 0.0000 2.0 180.00 1.20 2.00 + X G2 G3 X : 0.0000 2.0 180.00 1.20 2.00 + X G3 G9 X : 0.0000 2.0 180.00 1.20 2.00 + X U1 U4 X : 0.0000 2.0 180.00 1.20 2.00 + X U4 U3 X : 0.0000 2.0 180.00 1.20 2.00 + X U3 U2 X : 0.0000 2.0 180.00 1.20 2.00 + X U2 U1 X : 0.0000 2.0 180.00 1.20 2.00 + X C1 C4 X : 0.0000 2.0 180.00 1.20 2.00 + X C4 C3 X : 0.0000 2.0 180.00 1.20 2.00 + X C3 C2 X : 0.0000 2.0 180.00 1.20 2.00 + X C2 C1 X : 0.0000 2.0 180.00 1.20 2.00 + CS C1 C2 C3 : 2.0000 2.0 180.00 1.20 2.00 + C4 C1 C2 C3 : 2.0000 2.0 180.00 1.20 2.00 + CS U1 U2 U3 : 2.0000 2.0 180.00 1.20 2.00 + U4 U1 U2 U3 : 2.0000 2.0 180.00 1.20 2.00 + CS G9 G7 G6 : 2.0000 2.0 180.00 1.20 2.00 + G9 G7 G6 G1 : 2.0000 2.0 180.00 1.20 2.00 + CS A9 A7 A6 : 2.0000 2.0 180.00 1.20 2.00 + A9 A7 A6 A1 : 2.0000 2.0 180.00 1.20 2.00 + CB CS C1 C2 : 2.0000 2.0 180.00 1.20 2.00 + CB CS U1 U2 : 2.0000 2.0 180.00 1.20 2.00 + CB CS G9 G3 : 2.0000 2.0 180.00 1.20 2.00 + CB CS A9 A3 : 2.0000 2.0 180.00 1.20 2.00 diff --git a/test/Test_ReadAmberFF/toyrna.tip3pf.parm.dat.save b/test/Test_ReadAmberFF/toyrna.tip3pf.parm.dat.save new file mode 100644 index 0000000000..1f684e8116 --- /dev/null +++ b/test/Test_ReadAmberFF/toyrna.tip3pf.parm.dat.save @@ -0,0 +1,142 @@ +Parameter set: toyrna force field + This is TIP3P (model F) of Price and Brooks, JCP 121:10096, 2004 + Files: toyrna.dat frcmod.tip3pf +Nonbond parameters name: MOD4 +Atom Types: + Name TypeIdx LJ Radius Depth Mass Polar. + A1 0 1 1.8000 0.2000 26.8000 0.0000 + A3 1 1 1.8000 0.2000 26.8000 0.0000 + A6 2 1 1.8000 0.2000 26.8000 0.0000 + A7 3 1 1.8000 0.2000 26.8000 0.0000 + A9 4 1 1.8000 0.3000 26.8000 0.0000 + C1 5 1 1.8000 0.3000 27.5000 0.0000 + C2 6 1 1.8000 0.2000 27.5000 0.0000 + C3 7 1 1.8000 0.2000 27.5000 0.0000 + C4 8 1 1.8000 0.2000 27.5000 0.0000 + CB 9 1 2.0000 0.2000 56.0000 0.0000 + CS 10 1 2.0000 0.2000 43.0000 0.0000 + G1 11 1 1.8000 0.2000 25.0000 0.0000 + G2 12 1 1.8000 0.2000 25.0000 0.0000 + G3 13 1 1.8000 0.2000 25.0000 0.0000 + G6 14 1 1.8000 0.2000 25.0000 0.0000 + G7 15 1 1.8000 0.2000 25.0000 0.0000 + G9 16 1 1.8000 0.3000 25.0000 0.0000 + HW 17 1 0.0000 0.0000 1.0080 0.0000 + OW 18 1 1.7926 0.0980 16.0000 0.0000 + P 19 1 3.0000 0.2000 95.0000 0.0000 + U1 20 1 1.8000 0.3000 27.7500 0.0000 + U2 21 1 1.8000 0.2000 27.7500 0.0000 + U3 22 1 1.8000 0.2000 27.7500 0.0000 + U4 23 1 1.8000 0.2000 27.7500 0.0000 +HB LJ 10-12 parameters: + Type1 Type2 : Asol Bsol HBcut + A1 U3 : 5.0000 3.0000 0.0000 + A6 U4 : 5.0000 3.0000 0.0000 + C2 G2 : 5.0000 3.0000 0.0000 + C2 G3 : 5.0000 5.2500 0.0000 + C3 G1 : 5.0000 3.0000 0.0000 + C4 G6 : 5.0000 3.0000 0.0000 + C4 G7 : 5.0000 6.0000 0.0000 +Bond parameters: + Type1 Type2 : Rk Req + A1 A3 : 100.0000 2.3900 + A1 A6 : 100.0000 2.3100 + A3 A9 : 100.0000 2.4300 + A6 A7 : 100.0000 3.0800 + A7 A9 : 100.0000 2.2400 + A9 CS : 150.0000 1.4800 + C1 C2 : 100.0000 2.2700 + C1 C4 : 100.0000 4.0400 + C1 CS : 150.0000 1.4800 + C2 C3 : 100.0000 2.2600 + C3 C4 : 100.0000 2.3100 + CB CS : 100.0000 2.3500 + CB P : 150.0000 3.9000 + CS G9 : 150.0000 1.4800 + CS U1 : 150.0000 1.4800 + G1 G2 : 100.0000 2.2900 + G1 G6 : 100.0000 2.2700 + G2 G3 : 100.0000 2.3100 + G3 G9 : 100.0000 2.4200 + G6 G7 : 100.0000 3.0900 + G7 G9 : 100.0000 2.2500 + HW HW : 553.0000 1.5136 + HW OW : 553.0000 0.9572 + U1 U2 : 100.0000 2.2900 + U1 U4 : 100.0000 4.0400 + U2 U3 : 100.0000 2.2800 + U3 U4 : 100.0000 2.2700 +Angle parameters: + Type1 Type2 Type3 : Tk Teq + A1 A3 A9 : 50.0000 112.1000 + A1 A6 A7 : 50.0000 85.4000 + A3 A1 A6 : 50.0000 123.9000 + A3 A9 A7 : 50.0000 99.7000 + A3 A9 CS : 45.0000 99.1000 + A6 A7 A9 : 50.0000 118.9000 + A7 A9 CS : 45.0000 160.9000 + A9 CS CB : 30.0000 122.5000 + C1 C2 C3 : 50.0000 62.3000 + C1 C4 C3 : 50.0000 30.0000 + C1 CS CB : 30.0000 122.5000 + C2 C1 C4 : 50.0000 87.7000 + C2 C1 CS : 45.0000 89.2000 + C2 C3 C4 : 0.0000 180.0000 + C4 C1 CS : 0.0000 180.0000 + CB CS G9 : 30.0000 122.5000 + CB CS U1 : 30.0000 122.5000 + CB P CB : 30.0000 103.0000 + CS CB P : 30.0000 104.0000 + CS G9 G3 : 45.0000 97.9000 + CS G9 G7 : 45.0000 161.2000 + CS U1 U2 : 45.0000 90.8000 + CS U1 U4 : 0.0000 180.0000 + G1 G2 G3 : 50.0000 62.2000 + G1 G6 G7 : 50.0000 85.2000 + G2 G1 G6 : 10.0000 175.1000 + G2 G3 G9 : 50.0000 169.6000 + G3 G9 G7 : 50.0000 100.3000 + G6 G7 G9 : 50.0000 117.7000 + P CB P : 22.0000 97.0000 + U1 U2 U3 : 50.0000 61.8000 + U1 U4 U3 : 50.0000 29.5000 + U2 U1 U4 : 50.0000 87.3000 + U2 U3 U4 : 0.0000 180.0000 +Dihedral parameters: + Type1 Type2 Type3 Type4 Pk Pn Phase SCEE SCNB + X CB CS X : 7.5000 1.0 -165.00 1.20 2.00 + X P CB X : 0.0000 2.0 180.00 1.20 2.00 + X CS G9 X : 0.0000 2.0 180.00 1.20 2.00 + X CS A9 X : 0.0000 2.0 180.00 1.20 2.00 + X CS U1 X : 0.0000 2.0 180.00 1.20 2.00 + X CS C1 X : 0.0000 2.0 180.00 1.20 2.00 + X A9 A7 X : 0.0000 2.0 180.00 1.20 2.00 + X A7 A6 X : 0.0000 2.0 180.00 1.20 2.00 + X A6 A1 X : 0.0000 2.0 180.00 1.20 2.00 + X A1 A3 X : 0.0000 2.0 180.00 1.20 2.00 + X A3 A9 X : 0.0000 2.0 180.00 1.20 2.00 + X G9 G7 X : 0.0000 2.0 180.00 1.20 2.00 + X G7 G6 X : 0.0000 2.0 180.00 1.20 2.00 + X G6 G1 X : 0.0000 2.0 180.00 1.20 2.00 + X G1 G2 X : 0.0000 2.0 180.00 1.20 2.00 + X G2 G3 X : 0.0000 2.0 180.00 1.20 2.00 + X G3 G9 X : 0.0000 2.0 180.00 1.20 2.00 + X U1 U4 X : 0.0000 2.0 180.00 1.20 2.00 + X U4 U3 X : 0.0000 2.0 180.00 1.20 2.00 + X U3 U2 X : 0.0000 2.0 180.00 1.20 2.00 + X U2 U1 X : 0.0000 2.0 180.00 1.20 2.00 + X C1 C4 X : 0.0000 2.0 180.00 1.20 2.00 + X C4 C3 X : 0.0000 2.0 180.00 1.20 2.00 + X C3 C2 X : 0.0000 2.0 180.00 1.20 2.00 + X C2 C1 X : 0.0000 2.0 180.00 1.20 2.00 + CS C1 C2 C3 : 2.0000 2.0 180.00 1.20 2.00 + C4 C1 C2 C3 : 2.0000 2.0 180.00 1.20 2.00 + CS U1 U2 U3 : 2.0000 2.0 180.00 1.20 2.00 + U4 U1 U2 U3 : 2.0000 2.0 180.00 1.20 2.00 + CS G9 G7 G6 : 2.0000 2.0 180.00 1.20 2.00 + G9 G7 G6 G1 : 2.0000 2.0 180.00 1.20 2.00 + CS A9 A7 A6 : 2.0000 2.0 180.00 1.20 2.00 + A9 A7 A6 A1 : 2.0000 2.0 180.00 1.20 2.00 + CB CS C1 C2 : 2.0000 2.0 180.00 1.20 2.00 + CB CS U1 U2 : 2.0000 2.0 180.00 1.20 2.00 + CB CS G9 G3 : 2.0000 2.0 180.00 1.20 2.00 + CB CS A9 A3 : 2.0000 2.0 180.00 1.20 2.00 diff --git a/test/Test_ReplicateCell/cell.mol2.save b/test/Test_ReplicateCell/cell.mol2.save index 53e412a19e..a42f51285a 100644 --- a/test/Test_ReplicateCell/cell.mol2.save +++ b/test/Test_ReplicateCell/cell.mol2.save @@ -159,7 +159,7 @@ USER_CHARGES 51 94 96 1 52 2 3 1 53 2 4 1 - 54 2 1 1 + 54 1 2 1 55 24 25 1 56 22 23 1 57 20 21 1 @@ -175,7 +175,7 @@ USER_CHARGES 67 28 29 1 68 35 36 1 69 35 37 1 - 70 35 34 1 + 70 34 35 1 71 57 58 1 72 55 56 1 73 53 54 1 @@ -191,7 +191,7 @@ USER_CHARGES 83 61 62 1 84 68 69 1 85 68 70 1 - 86 68 67 1 + 86 67 68 1 87 90 91 1 88 88 89 1 89 86 87 1 diff --git a/test/Test_Sequence/Mol.mol2.save b/test/Test_Sequence/Mol.mol2.save index d15e8643b6..5f9908d9e1 100644 --- a/test/Test_Sequence/Mol.mol2.save +++ b/test/Test_Sequence/Mol.mol2.save @@ -6,23 +6,23 @@ USER_CHARGES @<TRIPOS>ATOM - 1 C1 -1.8623 -1.2984 -0.5952 CT 1 MOC 1.387300 - 2 H2 -2.2353 -2.1775 -1.1026 H1 1 MOC -0.288000 - 3 H3 -2.2811 -0.4130 -1.0709 H1 1 MOC -0.288000 - 4 H4 -2.1956 -1.3220 0.4412 H1 1 MOC -0.288000 - 5 O5 -0.4741 -1.3169 -0.6848 OS 1 MOC -0.523200 - 6 N 0.0540 -0.2256 0.0153 N 2 CNALA -0.570310 - 7 H -0.4149 0.5139 0.5357 H 2 CNALA 0.364710 - 8 CA 1.5127 -0.0215 0.0706 CX 2 CNALA 0.118030 - 9 HA 1.9976 -0.8599 -0.4376 H1 2 CNALA 0.105630 - 10 CB 1.8871 1.2873 -0.6522 CT 2 CNALA -0.214290 - 11 HB1 1.5308 1.2705 -1.6848 HC 2 CNALA 0.081710 - 12 HB2 1.4452 2.1491 -0.1463 HC 2 CNALA 0.081710 - 13 HB3 2.9715 1.4185 -0.6703 HC 2 CNALA 0.081710 - 14 C 2.0167 -0.0042 1.5042 C 2 CNALA 0.597740 - 15 O 1.3510 0.3674 2.4498 O 2 CNALA -0.533510 - 16 OXT 3.2954 -0.2516 1.6078 OH 2 CNALA -0.566290 - 17 HXT 3.6319 -0.4443 0.7168 HO 2 CNALA 0.453160 + 1 C1 -1.1655 0.1889 -0.0001 CT 1 MOC 1.387300 + 2 H2 -2.0028 -0.4954 -0.0001 H1 1 MOC -0.288000 + 3 H3 -1.2286 0.8227 -0.8832 H1 1 MOC -0.288000 + 4 H4 -1.2287 0.8227 0.8831 H1 1 MOC -0.288000 + 5 O5 0.0000 -0.5708 0.0000 OS 1 MOC -0.523200 + 6 N 1.1121 0.2796 0.0000 N 2 CNALA -0.570310 + 7 H 0.9809 1.2897 -0.0001 H 2 CNALA 0.364710 + 8 CA 2.4729 -0.2868 0.0001 CX 2 CNALA 0.118030 + 9 HA 2.3931 -1.3756 0.0659 H1 2 CNALA 0.105630 + 10 CB 3.1959 0.0847 -1.3094 CT 2 CNALA -0.214290 + 11 HB1 2.6253 -0.2619 -2.1741 HC 2 CNALA 0.081710 + 12 HB2 3.3226 1.1672 -1.3882 HC 2 CNALA 0.081710 + 13 HB3 4.1837 -0.3803 -1.3471 HC 2 CNALA 0.081710 + 14 C 3.2705 0.1855 1.2044 C 2 CNALA 0.597740 + 15 O 3.0963 1.2554 1.7526 O 2 CNALA -0.533510 + 16 OXT 4.2882 -0.5835 1.4869 OH 2 CNALA -0.566290 + 17 HXT 4.2716 -1.3337 0.8695 HO 2 CNALA 0.453160 @<TRIPOS>BOND 1 1 5 1 2 6 8 1 @@ -30,7 +30,7 @@ USER_CHARGES 4 8 14 1 5 14 15 1 6 14 16 1 - 7 5 6 1 + 7 6 5 1 8 1 2 1 9 1 3 1 10 1 4 1 diff --git a/test/Test_Sequence/Nucleotide.wrongChirality.ic.charge.mol2.save b/test/Test_Sequence/Nucleotide.wrongChirality.ic.charge.mol2.save new file mode 100644 index 0000000000..e965bd8f41 --- /dev/null +++ b/test/Test_Sequence/Nucleotide.wrongChirality.ic.charge.mol2.save @@ -0,0 +1,83 @@ +@<TRIPOS>MOLECULE +Cpptraj Generated mol2 file. + 34 36 3 0 0 +SMALL +USER_CHARGES + + +@<TRIPOS>ATOM + 1 N1 -1.7830 -0.1470 -0.0030 N* 1 ADD -0.148886 + 2 C2 -1.5590 -1.5030 0.0010 CK 1 ADD 0.127127 + 3 H2 -2.3800 -2.1940 0.0030 H5 1 ADD 0.171612 + 4 N2 -0.3010 -1.8360 -0.0000 NB 1 ADD -0.519773 + 5 C3 0.3630 -0.6210 -0.0050 CB 1 ADD -0.084209 + 6 C4 1.7210 -0.2690 -0.0050 CA 1 ADD 0.860405 + 7 N3 2.7060 -1.1900 -0.0320 N2 1 ADD -0.911090 + 8 H3 3.6400 -0.8830 0.1180 H 1 ADD 0.439926 + 9 H4 2.4860 -2.1470 0.1200 H 1 ADD 0.439926 + 10 N4 2.0450 1.0240 0.0040 NC 1 ADD -0.782117 + 11 C5 1.0670 1.9280 0.0020 CQ 1 ADD 0.650264 + 12 H5 1.3920 2.9540 0.0070 H5 1 ADD 0.059220 + 13 N5 -0.2370 1.7300 -0.0020 NC 1 ADD -0.751966 + 14 C6 -0.5410 0.4290 -0.0040 CB 1 ADD 0.565561 + 15 C1 -1.4030 1.1595 4.3469 CT 2 DDD 0.257703 + 16 H2 -1.2516 0.2160 4.8537 H1 2 DDD 0.015048 + 17 H3 -0.7109 1.8823 4.7767 H1 2 DDD 0.015048 + 18 C2 -1.0861 0.9657 2.8717 CT 2 DDD 0.233200 + 19 H4 -0.0242 0.7374 2.7879 H1 2 DDD -0.002355 + 20 O2 -1.8298 -0.1171 2.3762 OS 2 DDD -0.421059 + 21 C3 -2.5628 0.2353 1.2200 CT 2 DDD 0.589631 + 22 H5 -3.5149 -0.2886 1.2217 H1 2 DDD -0.011915 + 23 C5 -1.5270 2.2751 1.8280 CT 2 DDD 0.329642 + 24 H9 -1.6604 3.2377 2.3180 H1 2 DDD 0.001219 + 25 C6 -2.8115 1.7412 1.2156 CT 2 DDD -0.228214 + 26 H10 -3.6473 1.9297 1.8794 HC 2 DDD 0.093721 + 27 O3 -0.5861 2.4017 0.7905 OH 2 DDD -0.578369 + 28 P1 -3.1597 1.8046 6.0424 P 3 MP1 0.672814 + 29 C2 -4.8803 2.3221 5.9787 CT 3 MP1 -0.603494 + 30 O2 -3.0028 0.6180 6.8648 O2 3 MP1 -1.029416 + 31 O3 -2.8282 1.6018 4.4990 OS 3 MP1 -0.644721 + 32 H7 -5.4834 1.4923 5.6307 HC 3 MP1 0.065172 + 33 H8 -5.0263 3.1602 5.3092 HC 3 MP1 0.065172 + 34 H9 -5.2096 2.5963 6.9743 HC 3 MP1 0.065172 +@<TRIPOS>BOND + 1 1 2 1 + 2 1 14 1 + 3 2 4 1 + 4 4 5 1 + 5 5 6 1 + 6 5 14 1 + 7 6 7 1 + 8 6 10 1 + 9 10 11 1 + 10 11 13 1 + 11 13 14 1 + 12 15 18 1 + 13 18 20 1 + 14 18 23 1 + 15 20 21 1 + 16 21 25 1 + 17 23 25 1 + 18 23 27 1 + 19 28 29 1 + 20 28 30 1 + 21 28 31 1 + 22 21 1 1 + 23 31 15 1 + 24 2 3 1 + 25 7 8 1 + 26 7 9 1 + 27 11 12 1 + 28 15 16 1 + 29 15 17 1 + 30 18 19 1 + 31 21 22 1 + 32 23 24 1 + 33 25 26 1 + 34 29 32 1 + 35 29 33 1 + 36 29 34 1 +@<TRIPOS>SUBSTRUCTURE + 1 ADD 1 **** 0 **** **** + 2 DDD 15 **** 0 **** **** + 3 MP1 28 **** 0 **** **** diff --git a/test/Test_Sequence/RunTest.sh b/test/Test_Sequence/RunTest.sh index 36935c1ed8..35a23430ff 100755 --- a/test/Test_Sequence/RunTest.sh +++ b/test/Test_Sequence/RunTest.sh @@ -14,17 +14,17 @@ Basic() { readdata ../Test_ReadOFF/aminocn15ipq_10.0.lib name A15 readdata cph_nucleic_caps.lib name CAPS list -sequence CAPS[MOC] A15[CNALA] name Mol -crdout Mol Mol.mol2 +#sequence CAPS[MOC] A15[CNALA] name Mol +#crdout Mol Mol.mol2 -sequence libset A15 libset CAPS MOC CNALA name Mol2 +sequence MOC CNALA name Mol2 crdout Mol2 Mol2.mol2 crdout CAPS[MOC] MOC.mol2 crdout A15[CNALA] CNALA.mol2 EOF RunCpptraj "$TESTNAME, library files" - DoTest Mol.mol2.save Mol.mol2 +# DoTest Mol.mol2.save Mol.mol2 DoTest Mol.mol2.save Mol2.mol2 # NOTE: Depends on mol2 generation of previous test @@ -49,8 +49,13 @@ EOF } # Link nucleic acid base + sugar + phosphate, IC, fix charges. +# NOTE: This is not really how something like this should be +# constructed since after atoms are stripped from the sugar +# the original chirality is lost; sequence then builds in a +# default chirality which is not correct for nucleic acids. +# This test is purely a regression test. DNAic_charge() { - UNITNAME="$TESTNAME, Construct Nucleic Acid, IC, fix charges" + UNITNAME="$TESTNAME, Construct fake Nucleic Acid, IC, fix charges" CheckFor maxthreads 1 if [ $? -eq 0 ] ; then cat > cpptraj.in <<EOF @@ -75,7 +80,8 @@ charge crdset MyMol * crdout MyMol Nucleotide.ic.charge.mol2 EOF RunCpptraj "$UNITNAME" - DoTest Nucleotide.ic.charge.mol2.save Nucleotide.ic.charge.mol2 + #DoTest Nucleotide.ic.charge.mol2.save Nucleotide.ic.charge.mol2 + DoTest Nucleotide.wrongChirality.ic.charge.mol2.save Nucleotide.ic.charge.mol2 fi } diff --git a/test/Test_Strip/ligand.tz2.truncoct.parm7.save b/test/Test_Strip/ligand.tz2.truncoct.parm7.save index edd97a00fc..256b86de02 100644 --- a/test/Test_Strip/ligand.tz2.truncoct.parm7.save +++ b/test/Test_Strip/ligand.tz2.truncoct.parm7.save @@ -1,11 +1,11 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 02/04/15 10:39:23 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:52:24 %FLAG TITLE %FORMAT(20a4) %FLAG POINTERS %FORMAT(10I8) 3 2 3 0 0 0 0 0 0 0 - 4 1 0 0 0 2 0 0 23 1 + 4 1 0 0 0 2 0 0 2 1 0 0 0 0 0 0 0 2 3 0 0 %FLAG ATOM_NAME @@ -64,11 +64,7 @@ WAT %FLAG SOLTY %FORMAT(5E16.8) - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 %FLAG LENNARD_JONES_ACOEF %FORMAT(5E16.8) 5.81935564E+05 0.00000000E+00 0.00000000E+00 @@ -135,3 +131,6 @@ modified Bondi radii (mbondi) %FLAG SCREEN %FORMAT(5E16.8) 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_Strip/receptor.tz2.truncoct.parm7.save b/test/Test_Strip/receptor.tz2.truncoct.parm7.save index e2f17a97d8..8d10763a37 100644 --- a/test/Test_Strip/receptor.tz2.truncoct.parm7.save +++ b/test/Test_Strip/receptor.tz2.truncoct.parm7.save @@ -1,11 +1,11 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 02/04/15 10:39:23 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:52:24 %FLAG TITLE %FORMAT(20a4) %FLAG POINTERS %FORMAT(10I8) 220 12 104 123 233 169 481 372 0 0 - 1211 13 123 169 372 31 68 35 23 0 + 1211 13 123 169 372 31 68 35 21 0 0 0 0 0 0 0 0 2 24 0 0 %FLAG ATOM_NAME @@ -310,7 +310,7 @@ SER TRP THR TRP GLU ASN GLY LYS TRP THR TRP LYS NHE 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 %FLAG LENNARD_JONES_ACOEF %FORMAT(5E16.8) 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03 @@ -1328,3 +1328,6 @@ modified Bondi radii (mbondi) 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 diff --git a/test/Test_Strip/strip.pdb.chignolin.parm7.save b/test/Test_Strip/strip.pdb.chignolin.parm7.save index 7baa301340..2aac124aa4 100644 --- a/test/Test_Strip/strip.pdb.chignolin.parm7.save +++ b/test/Test_Strip/strip.pdb.chignolin.parm7.save @@ -1,11 +1,11 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 10/16/20 10:23:23 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:52:25 %FLAG TITLE %FORMAT(20a4) default_name %FLAG POINTERS %FORMAT(10I8) 93 5 0 98 0 136 0 387 0 0 - 385 10 98 136 387 28 48 88 24 0 + 385 10 98 136 387 28 48 88 17 0 0 0 0 0 0 0 0 0 14 0 0 %FLAG ATOM_NAME @@ -249,8 +249,7 @@ TYR TYR ASP PRO GLU THR GLY THR TRP TYR 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 %FLAG LENNARD_JONES_ACOEF %FORMAT(5E16.8) 9.44293233E+05 9.95480466E+05 1.04308023E+06 8.82619071E+05 9.24822270E+05 @@ -688,6 +687,9 @@ modified Bondi radii (mbondi) 7.90000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 %FLAG RESIDUE_NUMBER %FORMAT(20I4) 1 2 3 4 5 6 7 8 9 10 diff --git a/test/Test_Strip/strip.tz2.truncoct.parm7.save b/test/Test_Strip/strip.tz2.truncoct.parm7.save index 1ad98aea00..3e830d3fb2 100644 --- a/test/Test_Strip/strip.tz2.truncoct.parm7.save +++ b/test/Test_Strip/strip.tz2.truncoct.parm7.save @@ -1,4 +1,4 @@ -%VERSION VERSION_STAMP = V0001.000 DATE = 08/06/20 12:51:08 +%VERSION VERSION_STAMP = V0001.000 DATE = 06/28/24 14:52:24 %FLAG TITLE %FORMAT(20a4) @@ -1356,6 +1356,9 @@ modified Bondi radii (mbondi) 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01 7.90000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 +%FLAG IPOL +%FORMAT(1I8) + 0 %FLAG RESIDUE_NUMBER %FORMAT(20I4) 1 2 3 4 5 6 7 8 9 10 11 12 13 17 diff --git a/test/Test_TopInfo/RunTest.sh b/test/Test_TopInfo/RunTest.sh index a708094d2a..f736707b59 100755 --- a/test/Test_TopInfo/RunTest.sh +++ b/test/Test_TopInfo/RunTest.sh @@ -4,7 +4,7 @@ CleanFiles info.in atoms.dat residues.dat bonds.dat angles.dat dihedrals.dat \ molecules.dat masscharge.dat values.dat molshort.dat molselect.dat \ - molselect2.dat ChargeMass.dat ftu.res.out ftu.nucleic.out + molselect2.dat ChargeMass.dat tz2.dihedrals.24.dat ftu.res.out ftu.nucleic.out INPUT="-i info.in" cat > info.in <<EOF @@ -31,6 +31,7 @@ dihedralinfo @1 dihedralinfo @1 out dihedrals.dat dihedralinfo @N @CA @CB @%H1 dihedralinfo @N @CA @CB @%H1 out dihedrals.dat +dihedrals tgtidx 24 out tz2.dihedrals.24.dat mass out masscharge.dat name Mass * charge out masscharge.dat name Charge * @@ -61,6 +62,7 @@ DoTest molshort.dat.save molshort.dat DoTest molselect.dat.save molselect.dat DoTest molselect2.dat.save molselect2.dat DoTest ChargeMass.dat.save ChargeMass.dat +DoTest tz2.dihedrals.24.dat.save tz2.dihedrals.24.dat DoTest ftu.res.out.save ftu.res.out DoTest ftu.res.out.save ftu.nucleic.out diff --git a/test/Test_TopInfo/tz2.dihedrals.24.dat.save b/test/Test_TopInfo/tz2.dihedrals.24.dat.save new file mode 100644 index 0000000000..1e2a5d5bff --- /dev/null +++ b/test/Test_TopInfo/tz2.dihedrals.24.dat.save @@ -0,0 +1,18 @@ +# Dih PK Phase PN Atom1 Atom2 Atom3 Atom4 A1 A2 A3 A4 T1 T2 T3 T4 +B 411 1.000 3.14 2.0 :2@CD1 :2@CE2 :2@NE1 :2@HE1 22 26 24 25 CW CN NA H +B 413 1.000 3.14 2.0 :1@C :2@CA :2@N :2@H 12 16 14 15 C CT N H +B 414 1.000 3.14 2.0 :2@C :3@CA :3@N :3@H 36 40 38 39 C CT N H +B 419 1.000 3.14 2.0 :4@CD1 :4@CE2 :4@NE1 :4@HE1 60 64 62 63 CW CN NA H +B 421 1.000 3.14 2.0 :3@C :4@CA :4@N :4@H 50 54 52 53 C CT N H +B 422 1.000 3.14 2.0 :4@C :5@CA :5@N :5@H 74 78 76 77 C CT N H +B 423 1.000 3.14 2.0 :6@CG :6@HD21 :6@ND2 :6@HD22 98 101 100 102 C H N H +B 424 1.000 3.14 2.0 :5@C :6@CA :6@N :6@H 89 93 91 92 C CT N H +B 425 1.000 3.14 2.0 :6@C :7@CA :7@N :7@H 103 107 105 106 C CT N H +B 426 1.000 3.14 2.0 :7@C :8@CA :8@N :8@H 110 114 112 113 C CT N H +B 431 1.000 3.14 2.0 :9@CD1 :9@CE2 :9@NE1 :9@HE1 142 146 144 145 CW CN NA H +B 433 1.000 3.14 2.0 :8@C :9@CA :9@N :9@H 132 136 134 135 C CT N H +B 434 1.000 3.14 2.0 :9@C :10@CA :10@N :10@H 156 160 158 159 C CT N H +B 439 1.000 3.14 2.0 :11@CD1 :11@CE2 :11@NE1 :11@HE1 180 184 182 183 CW CN NA H +B 441 1.000 3.14 2.0 :10@C :11@CA :11@N :11@H 170 174 172 173 C CT N H +B 442 1.000 3.14 2.0 :11@C :12@CA :12@N :12@H 194 198 196 197 C CT N H +B 443 1.000 3.14 2.0 :12@C :13@CH3 :13@N :13@H 216 220 218 219 C CT N H diff --git a/test/Test_Zmatrix/RunTest.sh b/test/Test_Zmatrix/RunTest.sh index 4c88a0ff5b..1236c84c5d 100755 --- a/test/Test_Zmatrix/RunTest.sh +++ b/test/Test_Zmatrix/RunTest.sh @@ -3,7 +3,8 @@ . ../MasterTest.sh CleanFiles cpptraj.in zmatrix.dat zmatrix.0SB.dat fromZmatrix.0SB.mol2 \ - zmatrix.MEX.dat fromZmatrix.MEX.mol2 + zmatrix.MEX.dat fromZmatrix.MEX.mol2 zmatrix.MEX.complete.dat \ + zmatrix.0SB.complete.dat INPUT='-i cpptraj.in' @@ -23,12 +24,14 @@ Sugar() { cat > cpptraj.in <<EOF parm 0SB.mol2 loadcrd 0SB.mol2 name 0SB +zmatrix 0SB complete out zmatrix.0SB.complete.dat name MyC zmatrix 0SB out zmatrix.0SB.dat name MyZ zmatrix 0SB zset MyZ name MyCrd crdout MyCrd fromZmatrix.0SB.mol2 EOF RunCpptraj "$TESTNAME, Sugar" DoTest zmatrix.0SB.dat.save zmatrix.0SB.dat + DoTest zmatrix.0SB.complete.dat.save zmatrix.0SB.complete.dat DoTest 0SB.mol2 fromZmatrix.0SB.mol2 } @@ -36,6 +39,7 @@ MEX() { cat > cpptraj.in <<EOF parm MEX.mol2 loadcrd MEX.mol2 name MEX +#zmatrix complete MEX out zmatrix.MEX.complete.dat name MyComplete zmatrix MEX out zmatrix.MEX.dat name MyZ zmatrix MEX zset MyZ name MyCrd crdout MyCrd fromZmatrix.MEX.mol2 diff --git a/test/Test_Zmatrix/zmatrix.0SB.complete.dat.save b/test/Test_Zmatrix/zmatrix.0SB.complete.dat.save new file mode 100644 index 0000000000..a299fb7693 --- /dev/null +++ b/test/Test_Zmatrix/zmatrix.0SB.complete.dat.save @@ -0,0 +1,195 @@ +#IC MyC + 1 1.000 2.000 3.000 5.000 1.445 119.813 172.109 + 2 5.000 3.000 2.000 1.000 1.547 109.628 172.109 + 3 1.000 2.000 3.000 18.000 1.445 119.813 -58.369 + 4 18.000 3.000 2.000 1.000 1.541 109.366 -58.369 + 5 1.000 2.000 3.000 4.000 1.445 119.813 57.481 + 6 4.000 3.000 2.000 1.000 1.092 107.320 57.481 + 7 1.000 32.000 28.000 18.000 1.549 112.519 54.054 + 8 18.000 28.000 32.000 1.000 1.555 110.763 54.054 + 9 1.000 32.000 28.000 30.000 1.549 112.519 177.651 + 10 30.000 28.000 32.000 1.000 1.460 108.777 177.651 + 11 1.000 32.000 28.000 29.000 1.549 112.519 -65.433 + 12 29.000 28.000 32.000 1.000 1.092 108.527 -65.433 + 13 2.000 1.000 35.000 36.000 1.445 112.883 125.259 + 14 36.000 35.000 1.000 2.000 1.259 115.055 125.259 + 15 2.000 1.000 35.000 37.000 1.445 112.883 -56.528 + 16 37.000 35.000 1.000 2.000 1.254 119.483 -56.528 + 17 2.000 1.000 32.000 28.000 1.445 106.898 -52.470 + 18 28.000 32.000 1.000 2.000 1.538 112.519 -52.470 + 19 2.000 1.000 32.000 33.000 1.445 106.898 -175.086 + 20 33.000 32.000 1.000 2.000 1.093 109.955 -175.086 + 21 2.000 1.000 32.000 34.000 1.445 106.898 69.077 + 22 34.000 32.000 1.000 2.000 1.093 110.143 69.077 + 23 2.000 3.000 5.000 7.000 1.443 109.628 78.456 + 24 7.000 5.000 3.000 2.000 1.449 109.776 78.456 + 25 2.000 3.000 5.000 9.000 1.443 109.628 -45.455 + 26 9.000 5.000 3.000 2.000 1.556 114.437 -45.455 + 27 2.000 3.000 5.000 6.000 1.443 109.628 -165.180 + 28 6.000 5.000 3.000 2.000 1.091 107.454 -165.180 + 29 2.000 3.000 18.000 20.000 1.443 109.366 173.191 + 30 20.000 18.000 3.000 2.000 1.475 109.673 173.191 + 31 2.000 3.000 18.000 28.000 1.443 109.366 52.047 + 32 28.000 18.000 3.000 2.000 1.555 110.258 52.047 + 33 2.000 3.000 18.000 19.000 1.443 109.366 -66.569 + 34 19.000 18.000 3.000 2.000 1.092 109.164 -66.569 + 35 3.000 2.000 1.000 35.000 1.443 119.813 173.396 + 36 35.000 1.000 2.000 3.000 1.623 112.883 173.396 + 37 3.000 2.000 1.000 32.000 1.443 119.813 57.190 + 38 32.000 1.000 2.000 3.000 1.549 106.898 57.190 + 39 3.000 5.000 7.000 8.000 1.547 109.776 69.177 + 40 8.000 7.000 5.000 3.000 0.974 109.637 69.177 + 41 3.000 5.000 9.000 11.000 1.547 114.437 -50.185 + 42 11.000 9.000 5.000 3.000 1.460 109.032 -50.185 + 43 3.000 5.000 9.000 13.000 1.547 114.437 -170.254 + 44 13.000 9.000 5.000 3.000 1.547 112.392 -170.254 + 45 3.000 5.000 9.000 10.000 1.547 114.437 68.196 + 46 10.000 9.000 5.000 3.000 1.091 109.581 68.196 + 47 3.000 18.000 20.000 22.000 1.541 109.673 97.438 + 48 22.000 20.000 18.000 3.000 1.332 123.257 97.438 + 49 3.000 18.000 20.000 21.000 1.541 109.673 -78.719 + 50 21.000 20.000 18.000 3.000 1.005 117.087 -78.719 + 51 3.000 18.000 28.000 30.000 1.541 110.258 -174.457 + 52 30.000 28.000 18.000 3.000 1.460 112.071 -174.457 + 53 3.000 18.000 28.000 32.000 1.541 110.258 -52.775 + 54 32.000 28.000 18.000 3.000 1.538 110.763 -52.775 + 55 3.000 18.000 28.000 29.000 1.541 110.258 66.493 + 56 29.000 28.000 18.000 3.000 1.092 108.890 66.493 + 57 4.000 3.000 5.000 7.000 1.092 105.944 -166.038 + 58 7.000 5.000 3.000 4.000 1.449 109.776 -166.038 + 59 4.000 3.000 5.000 9.000 1.092 105.944 70.051 + 60 9.000 5.000 3.000 4.000 1.556 114.437 70.051 + 61 4.000 3.000 5.000 6.000 1.092 105.944 -49.674 + 62 6.000 5.000 3.000 4.000 1.091 107.454 -49.674 + 63 4.000 3.000 18.000 20.000 1.092 107.097 57.198 + 64 20.000 18.000 3.000 4.000 1.475 109.673 57.198 + 65 4.000 3.000 18.000 28.000 1.092 107.097 -63.946 + 66 28.000 18.000 3.000 4.000 1.555 110.258 -63.946 + 67 4.000 3.000 18.000 19.000 1.092 107.097 177.439 + 68 19.000 18.000 3.000 4.000 1.092 109.164 177.439 + 69 5.000 3.000 18.000 20.000 1.547 117.007 -61.444 + 70 20.000 18.000 3.000 5.000 1.475 109.673 -61.444 + 71 5.000 3.000 18.000 28.000 1.547 117.007 177.412 + 72 28.000 18.000 3.000 5.000 1.555 110.258 177.412 + 73 5.000 3.000 18.000 19.000 1.547 117.007 58.796 + 74 19.000 18.000 3.000 5.000 1.092 109.164 58.796 + 75 5.000 9.000 11.000 12.000 1.556 109.032 66.841 + 76 12.000 11.000 9.000 5.000 0.967 107.041 66.841 + 77 5.000 9.000 13.000 16.000 1.556 112.392 -179.231 + 78 16.000 13.000 9.000 5.000 1.445 110.975 -179.231 + 79 5.000 9.000 13.000 14.000 1.556 112.392 -58.947 + 80 14.000 13.000 9.000 5.000 1.090 110.244 -58.947 + 81 5.000 9.000 13.000 15.000 1.556 112.392 60.184 + 82 15.000 13.000 9.000 5.000 1.091 110.082 60.184 + 83 6.000 5.000 3.000 18.000 1.091 107.454 69.587 + 84 18.000 3.000 5.000 6.000 1.541 117.007 69.587 + 85 6.000 5.000 7.000 8.000 1.091 107.287 -47.292 + 86 8.000 7.000 5.000 6.000 0.974 109.637 -47.292 + 87 6.000 5.000 9.000 11.000 1.091 107.851 69.317 + 88 11.000 9.000 5.000 6.000 1.460 109.032 69.317 + 89 6.000 5.000 9.000 13.000 1.091 107.851 -50.752 + 90 13.000 9.000 5.000 6.000 1.547 112.392 -50.752 + 91 6.000 5.000 9.000 10.000 1.091 107.851 -172.302 + 92 10.000 9.000 5.000 6.000 1.091 109.581 -172.302 + 93 7.000 5.000 3.000 18.000 1.449 109.776 -46.778 + 94 18.000 3.000 5.000 7.000 1.541 117.007 -46.778 + 95 7.000 5.000 9.000 11.000 1.449 109.755 -174.107 + 96 11.000 9.000 5.000 7.000 1.460 109.032 -174.107 + 97 7.000 5.000 9.000 13.000 1.449 109.755 65.824 + 98 13.000 9.000 5.000 7.000 1.547 112.392 65.824 + 99 7.000 5.000 9.000 10.000 1.449 109.755 -55.726 + 100 10.000 9.000 5.000 7.000 1.091 109.581 -55.726 + 101 8.000 7.000 5.000 9.000 0.974 109.637 -164.222 + 102 9.000 5.000 7.000 8.000 1.556 109.755 -164.222 + 103 9.000 5.000 3.000 18.000 1.556 114.437 -170.688 + 104 18.000 3.000 5.000 9.000 1.541 117.007 -170.688 + 105 9.000 13.000 16.000 17.000 1.547 110.975 -44.062 + 106 17.000 16.000 13.000 9.000 0.965 106.902 -44.062 + 107 10.000 9.000 11.000 12.000 1.091 108.305 -52.337 + 108 12.000 11.000 9.000 10.000 0.967 107.041 -52.337 + 109 10.000 9.000 13.000 16.000 1.091 109.157 -57.439 + 110 16.000 13.000 9.000 10.000 1.445 110.975 -57.439 + 111 10.000 9.000 13.000 14.000 1.091 109.157 62.845 + 112 14.000 13.000 9.000 10.000 1.090 110.244 62.845 + 113 10.000 9.000 13.000 15.000 1.091 109.157 -178.024 + 114 15.000 13.000 9.000 10.000 1.091 110.082 -178.024 + 115 11.000 9.000 13.000 16.000 1.460 108.283 60.267 + 116 16.000 13.000 9.000 11.000 1.445 110.975 60.267 + 117 11.000 9.000 13.000 14.000 1.460 108.283 -179.449 + 118 14.000 13.000 9.000 11.000 1.090 110.244 -179.449 + 119 11.000 9.000 13.000 15.000 1.460 108.283 -60.318 + 120 15.000 13.000 9.000 11.000 1.091 110.082 -60.318 + 121 12.000 11.000 9.000 13.000 0.967 107.041 -170.587 + 122 13.000 9.000 11.000 12.000 1.547 108.283 -170.587 + 123 14.000 13.000 16.000 17.000 1.090 108.537 -165.355 + 124 17.000 16.000 13.000 14.000 0.965 106.902 -165.355 + 125 15.000 13.000 16.000 17.000 1.091 108.863 77.241 + 126 17.000 16.000 13.000 15.000 0.965 106.902 77.241 + 127 18.000 20.000 22.000 23.000 1.475 123.257 -3.821 + 128 23.000 22.000 20.000 18.000 1.226 121.726 -3.821 + 129 18.000 20.000 22.000 24.000 1.475 123.257 176.070 + 130 24.000 22.000 20.000 18.000 1.541 116.620 176.070 + 131 18.000 28.000 30.000 31.000 1.555 112.071 -59.820 + 132 31.000 30.000 28.000 18.000 0.961 110.371 -59.820 + 133 18.000 28.000 32.000 33.000 1.555 110.763 176.806 + 134 33.000 32.000 28.000 18.000 1.093 109.712 176.806 + 135 18.000 28.000 32.000 34.000 1.555 110.763 -68.268 + 136 34.000 32.000 28.000 18.000 1.093 108.775 -68.268 + 137 19.000 18.000 20.000 22.000 1.092 109.721 -22.463 + 138 22.000 20.000 18.000 19.000 1.332 123.257 -22.463 + 139 19.000 18.000 20.000 21.000 1.092 109.721 161.380 + 140 21.000 20.000 18.000 19.000 1.005 117.087 161.380 + 141 19.000 18.000 28.000 30.000 1.092 108.104 -55.195 + 142 30.000 28.000 18.000 19.000 1.460 112.071 -55.195 + 143 19.000 18.000 28.000 32.000 1.092 108.104 66.487 + 144 32.000 28.000 18.000 19.000 1.538 110.763 66.487 + 145 19.000 18.000 28.000 29.000 1.092 108.104 -174.245 + 146 29.000 28.000 18.000 19.000 1.092 108.890 -174.245 + 147 20.000 18.000 28.000 30.000 1.475 109.896 64.532 + 148 30.000 28.000 18.000 20.000 1.460 112.071 64.532 + 149 20.000 18.000 28.000 32.000 1.475 109.896 -173.786 + 150 32.000 28.000 18.000 20.000 1.538 110.763 -173.786 + 151 20.000 18.000 28.000 29.000 1.475 109.896 -54.518 + 152 29.000 28.000 18.000 20.000 1.092 108.890 -54.518 + 153 20.000 22.000 24.000 25.000 1.332 116.620 23.276 + 154 25.000 24.000 22.000 20.000 1.092 111.126 23.276 + 155 20.000 22.000 24.000 26.000 1.332 116.620 -97.180 + 156 26.000 24.000 22.000 20.000 1.091 109.294 -97.180 + 157 20.000 22.000 24.000 27.000 1.332 116.620 143.390 + 158 27.000 24.000 22.000 20.000 1.091 109.699 143.390 + 159 21.000 20.000 18.000 28.000 1.005 117.087 42.643 + 160 28.000 18.000 20.000 21.000 1.555 109.896 42.643 + 161 21.000 20.000 22.000 23.000 1.005 119.545 172.247 + 162 23.000 22.000 20.000 21.000 1.226 121.726 172.247 + 163 21.000 20.000 22.000 24.000 1.005 119.545 -7.862 + 164 24.000 22.000 20.000 21.000 1.541 116.620 -7.862 + 165 22.000 20.000 18.000 28.000 1.332 123.257 -141.200 + 166 28.000 18.000 20.000 22.000 1.555 109.896 -141.200 + 167 23.000 22.000 24.000 25.000 1.226 121.654 -156.833 + 168 25.000 24.000 22.000 23.000 1.092 111.126 -156.833 + 169 23.000 22.000 24.000 26.000 1.226 121.654 82.711 + 170 26.000 24.000 22.000 23.000 1.091 109.294 82.711 + 171 23.000 22.000 24.000 27.000 1.226 121.654 -36.719 + 172 27.000 24.000 22.000 23.000 1.091 109.699 -36.719 + 173 28.000 32.000 1.000 35.000 1.538 112.519 -173.146 + 174 35.000 1.000 32.000 28.000 1.623 106.036 -173.146 + 175 29.000 28.000 30.000 31.000 1.092 107.704 59.926 + 176 31.000 30.000 28.000 29.000 0.961 110.371 59.926 + 177 29.000 28.000 32.000 33.000 1.092 108.527 57.319 + 178 33.000 32.000 28.000 29.000 1.093 109.712 57.319 + 179 29.000 28.000 32.000 34.000 1.092 108.527 172.245 + 180 34.000 32.000 28.000 29.000 1.093 108.775 172.245 + 181 30.000 28.000 32.000 33.000 1.460 108.777 -59.597 + 182 33.000 32.000 28.000 30.000 1.093 109.712 -59.597 + 183 30.000 28.000 32.000 34.000 1.460 108.777 55.329 + 184 34.000 32.000 28.000 30.000 1.093 108.775 55.329 + 185 31.000 30.000 28.000 32.000 0.961 110.371 177.367 + 186 32.000 28.000 30.000 31.000 1.538 108.777 177.367 + 187 32.000 1.000 35.000 36.000 1.549 106.036 -118.024 + 188 36.000 35.000 1.000 32.000 1.259 115.055 -118.024 + 189 32.000 1.000 35.000 37.000 1.549 106.036 60.190 + 190 37.000 35.000 1.000 32.000 1.254 119.483 60.190 + 191 33.000 32.000 1.000 35.000 1.093 109.955 64.239 + 192 35.000 1.000 32.000 33.000 1.623 106.036 64.239 + 193 34.000 32.000 1.000 35.000 1.093 110.143 -51.599 + 194 35.000 1.000 32.000 34.000 1.623 106.036 -51.599 diff --git a/unitTests/Frame/UnitTest.sh b/unitTests/Frame/UnitTest.sh new file mode 100755 index 0000000000..4de28a4064 --- /dev/null +++ b/unitTests/Frame/UnitTest.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +. ../UnitMaster.sh + +CleanFiles Makefile main.o Frame.o a.out CpptrajStdio.o + +UNITSOURCES='Frame.cpp CpptrajStdio.cpp Box.cpp CoordinateInfo.cpp Vec3.cpp Matrix_3x3.cpp' + +CreateMakefile + +RunMake "Frame class unit test." + +EndTest diff --git a/unitTests/Frame/main.cpp b/unitTests/Frame/main.cpp new file mode 100644 index 0000000000..dfd84f5108 --- /dev/null +++ b/unitTests/Frame/main.cpp @@ -0,0 +1,48 @@ +// Unit test for NameType class +#include <cstdio> +#include "Frame.h" + +static const int Err(const char* msg) { + fprintf(stderr, "Error: %s\n", msg); + return 1; +} + +static void printAtoms(Frame const& frm1, const char* msg) { + frm1.Info(msg); + for (int iat = 0; iat < frm1.Natom(); iat++) { + frm1.printAtomCoord(iat); + } +} + +int main() { + Frame frm1; + + frm1.SetupFrame( 3 ); + frm1.ClearAtoms(); + for (int iat = 1; iat <= 3; iat++) + frm1.AddVec3( Vec3((double)iat, (double)iat, (double)iat) ); + printAtoms(frm1, "frm1"); + + Frame frm2 = frm1; + + frm1.AppendFrame( frm2 ); + printAtoms(frm1, "frm1 after append"); + + Frame frm3; + frm3.SetupFrame( 2 ); + frm3.ClearAtoms(); + for (int iat = 1; iat <= 2; iat++) + frm3.AddVec3( Vec3((double)iat, (double)iat, (double)iat) ); + + Frame frm4; + frm4.SetupFrame( 6 ); + frm4.ClearAtoms(); + for (int iat = 3; iat <= 8; iat++) + frm4.AddVec3( Vec3((double)iat, (double)iat, (double)iat) ); + + frm3.AppendFrame( frm4 ); + printAtoms(frm3, "frm3 after append"); + + + return 0; +} diff --git a/unitTests/GistEntropyUtils/main.cpp b/unitTests/GistEntropyUtils/main.cpp index 3d33af708d..e327011e4d 100644 --- a/unitTests/GistEntropyUtils/main.cpp +++ b/unitTests/GistEntropyUtils/main.cpp @@ -111,43 +111,49 @@ int main() { int grid_Nz = 3; Vec3 grid_origin(0, 0, 0); double grid_spacing = 0.5; + float w4 = 0.0; + float x4 = 0.0; + float y4 = 0.0; + float z4 = 0.0; assertClose(searchGridNearestNeighbors6D( - Vec3(1, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 2, -1).first, + Vec3(1, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 2, -1).first, GIST_HUGE, "Wrong trans. dist. with empty grid."); - // after adding a point in the same voxel, it should be found. + // after adding a point in the same voxel, it should be foundi. + // grid index 9 corresponds to 1 0 0 grid_crd[9].push_back(0.6); grid_crd[9].push_back(0); grid_crd[9].push_back(0); grid_Q[9].push_back(1); grid_Q[9].push_back(0); grid_Q[9].push_back(0); grid_Q[9].push_back(0); std::pair<double, double>nbrs; - nbrs = searchGridNearestNeighbors6D(Vec3(1, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 1, -1); + nbrs = searchGridNearestNeighbors6D(Vec3(1, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 1, -1); assertClose(nbrs.first, 0.16, "Wrong trans. dist. with empty grid."); assertClose(nbrs.second, PI_SQR + 0.16, "Wrong trans. dist. with empty grid."); - nbrs = searchGridNearestNeighbors6D(Vec3(1, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 0, -1); + nbrs = searchGridNearestNeighbors6D(Vec3(1, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 0, -1); assertClose(nbrs.first, GIST_HUGE, "Does not omit outer shells in NN search."); - nbrs = searchGridNearestNeighbors6D(Vec3(-1, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 10, -1); + nbrs = searchGridNearestNeighbors6D(Vec3(-1, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 10, -1); assertClose(nbrs.first, 1.6*1.6, "Does not work for out of bounds center."); // add another point one voxel higher, with different rotation; // Depending on rotation, this might be the NN. But might not be found if n_layers is < 2; + // grid index 18 corresponds to 2 0 0 grid_crd[18].push_back(1.1); grid_crd[18].push_back(0); grid_crd[18].push_back(0); grid_Q[18].push_back(0); grid_Q[18].push_back(1); grid_Q[18].push_back(0); grid_Q[18].push_back(0); - nbrs = searchGridNearestNeighbors6D(Vec3(0.1, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 2, -1); + nbrs = searchGridNearestNeighbors6D(Vec3(0.1, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 2, -1); assertClose(nbrs.first, 0.5 * 0.5, "Does not find correct trans NN."); assertClose(nbrs.second, 1.0 * 1.0, "Does not find correct six NN with n_layers=2."); - nbrs = searchGridNearestNeighbors6D(Vec3(0.1, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 1, -1); + nbrs = searchGridNearestNeighbors6D(Vec3(0.1, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 1, -1); assertClose(nbrs.first, 0.5*0.5, "Does not find correct trans NN."); assertClose(nbrs.second, 0.5*0.5 + PI_SQR, "Does not find correct six NN with n_layers=1."); // test that a molecule can be omitted in the central voxel. - nbrs = searchGridNearestNeighbors6D(Vec3(0.6, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 1, 0); + nbrs = searchGridNearestNeighbors6D(Vec3(0.6, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 1, 0); assertClose(nbrs.first, 0.5*0.5, "Does not find correct trans NN."); // test that no molecule is always omitted in the central voxel. - nbrs = searchGridNearestNeighbors6D(Vec3(0.6, 0, 0), 0, 1, 0, 0, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_origin, grid_spacing, 1, -1); + nbrs = searchGridNearestNeighbors6D(Vec3(0.6, 0, 0), 0, 1, 0, w4, x4, y4, z4, grid_crd, grid_Q, grid_Nx, grid_Ny, grid_Nz, grid_spacing, 1, -1); assertClose(nbrs.first, 0.0, "Does not find correct trans NN."); // Test quaternion distance with slightly non-normalized quaternions diff --git a/unitTests/ImproperParmHolder/UnitTest.sh b/unitTests/ImproperParmHolder/UnitTest.sh new file mode 100755 index 0000000000..0be03f5a67 --- /dev/null +++ b/unitTests/ImproperParmHolder/UnitTest.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +. ../UnitMaster.sh + +CleanFiles Makefile main.o NameType.o a.out CpptrajStdio.o + +UNITSOURCES='NameType.cpp CpptrajStdio.cpp' + +CreateMakefile + +RunMake "ImproperParmHolder class unit test." + +EndTest diff --git a/unitTests/ImproperParmHolder/main.cpp b/unitTests/ImproperParmHolder/main.cpp new file mode 100644 index 0000000000..7986ee4290 --- /dev/null +++ b/unitTests/ImproperParmHolder/main.cpp @@ -0,0 +1,91 @@ +// Unit test for ImproperParmHolder class +#include <cstdio> +#include "Parm/ImproperParmHolder.h" + +static const int Err(const char* msg) { + fprintf(stderr, "Error: %s\n", msg); + return 1; +} + +/*static void printImp(DihedralType const& imp) { + printf("%i %i %i %i\n", imp.A1(), imp.A2(), imp.A3(), imp.A4()); +}*/ + +int main() { + using namespace Cpptraj::Parm; + TypeNameHolder ip0(4); + ip0.AddName("N*"); + ip0.AddName("CX"); + ip0.AddName("CT"); + ip0.AddName("HN"); + + TypeNameHolder ip1(4); + ip1.AddName("O"); + ip1.AddName("HO"); + ip1.AddName("CT"); + ip1.AddName("N"); + //ip1.SortImproperByAlpha("X"); + + TypeNameHolder ip1a(4); + ip1a.AddName("N"); + ip1a.AddName("O"); + ip1a.AddName("CT"); + ip1a.AddName("HO"); + + ImproperParmHolder IP0; + Cpptraj::Parm::RetType ret = IP0.AddParm( ip1, DihedralParmType( 3.0, 1.0, 0.0 ), false ); + if (ret == Cpptraj::Parm::ERR) return Err("Could not add improper parameter"); + bool found; + DihedralParmArray impropers = IP0.FindParam( ip1a, found ); + if (!found) return Err("Could not find improper parameter (no wildcards)."); + + TypeNameHolder ip2(4); + ip2.AddName("X"); + ip2.AddName("X"); + ip2.AddName("CT"); + ip2.AddName("O"); + + ImproperParmHolder IP; + ret = IP.AddParm( ip2, DihedralParmType( 2.0, 1.0, 3.14159/2.0 ), false ); + if (ret == Cpptraj::Parm::ERR) return Err("Could not add improper parameter"); + //ip2.SortImproperByAlpha("X"); + + impropers = IP.FindParam( ip1, found); + if (found) return Err("Improper parameter search before wildcard added failed."); + + IP.SetWildcard('X'); + impropers = IP.FindParam( ip1, found ); + if (!found) return Err("Improper parameter search with wildcard match failed."); + + impropers = IP.FindParam( ip0, found ); + if (found) return Err("Improper parameter search found something when it should not have."); + + DihedralType imp( 0, 1, 2, 3, -1 ); + IP.ReorderImproper( imp, ImproperParmHolder::O_013 ); + if (imp.A1() != 0 || imp.A2() != 1 || imp.A3() != 2 || imp.A4() != 3) + return Err("Improper reorder failed (O_013)."); + IP.ReorderImproper( imp, ImproperParmHolder::O_031 ); + if (imp.A1() != 0 || imp.A2() != 3 || imp.A3() != 2 || imp.A4() != 1) + return Err("Improper reorder failed (O_031)."); + imp = DihedralType( 0, 1, 2, 3, -1 ); + IP.ReorderImproper( imp, ImproperParmHolder::O_103 ); + if (imp.A1() != 1 || imp.A2() != 0 || imp.A3() != 2 || imp.A4() != 3) + return Err("Improper reorder failed (O_103)."); + imp = DihedralType( 0, 1, 2, 3, -1 ); + IP.ReorderImproper( imp, ImproperParmHolder::O_130 ); + //printImp(imp); + if (imp.A1() != 1 || imp.A2() != 3 || imp.A3() != 2 || imp.A4() != 0) + return Err("Improper reorder failed (O_130)."); + imp = DihedralType( 0, 1, 2, 3, -1 ); + IP.ReorderImproper( imp, ImproperParmHolder::O_301 ); + //printImp(imp); + if (imp.A1() != 3 || imp.A2() != 0 || imp.A3() != 2 || imp.A4() != 1) + return Err("Improper reorder failed (O_301)."); + imp = DihedralType( 0, 1, 2, 3, -1 ); + IP.ReorderImproper( imp, ImproperParmHolder::O_310 ); + //printImp(imp); + if (imp.A1() != 3 || imp.A2() != 1 || imp.A3() != 2 || imp.A4() != 0) + return Err("Improper reorder failed (O_310)."); + + return 0; +} diff --git a/unitTests/Makefile b/unitTests/Makefile index 7a694a5cfa..d745650cc8 100644 --- a/unitTests/Makefile +++ b/unitTests/Makefile @@ -7,6 +7,9 @@ test: test.all unit.NameType: @-cd NameType && ./UnitTest.sh $(OPT) +unit.Frame: + @-cd Frame && ./UnitTest.sh $(OPT) + unit.ArgList: @-cd ArgList && ./UnitTest.sh $(OPT) @@ -19,13 +22,22 @@ unit.StringRoutines: unit.Range: @-cd Range && ./UnitTest.sh $(OPT) +unit.TypeNameHolder: + @-cd TypeNameHolder && ./UnitTest.sh $(OPT) + +unit.ImproperParmHolder: + @-cd ImproperParmHolder && ./UnitTest.sh $(OPT) + # ----- Every unit test should go here ----------- COMPLETETESTS= \ unit.NameType \ + unit.Frame \ unit.ArgList \ unit.GistEntropyUtils \ unit.StringRoutines \ - unit.Range + unit.Range \ + unit.TypeNameHolder \ + unit.ImproperParmHolder test.cpptraj: $(COMPLETETESTS) diff --git a/unitTests/TypeNameHolder/UnitTest.sh b/unitTests/TypeNameHolder/UnitTest.sh new file mode 100755 index 0000000000..42b0fbe761 --- /dev/null +++ b/unitTests/TypeNameHolder/UnitTest.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +. ../UnitMaster.sh + +CleanFiles Makefile main.o NameType.o a.out CpptrajStdio.o + +UNITSOURCES='NameType.cpp CpptrajStdio.cpp' + +CreateMakefile + +RunMake "TypeNameHolder class unit test." + +EndTest diff --git a/unitTests/TypeNameHolder/main.cpp b/unitTests/TypeNameHolder/main.cpp new file mode 100644 index 0000000000..d1f1630a6d --- /dev/null +++ b/unitTests/TypeNameHolder/main.cpp @@ -0,0 +1,132 @@ +// Unit test for TypeNameHolder class +#include <cstdio> +#include <vector> +#include <string> +#include <algorithm> +#include <map> +#include "TypeNameHolder.h" + +static const int Err(const char* msg) { + fprintf(stderr, "Error: %s\n", msg); + return 1; +} + +/*struct reverseSort { + bool operator() (const NameType& lhs, const NameType& rhs) const { + return ( lhs > rhs ); + } +} reverseSortObj;*/ + +static inline void printTypes(TypeNameHolder const& types) +{ + for (unsigned int ii = 0; ii < types.Size(); ii++) + printf(" %4s", *types[ii]); +} + +int main() { + TypeNameHolder type1; + type1.AddName("CT"); + TypeNameHolder type2("O"); + bool ismatch = type1.Match_NoWC( type2 ); + if (ismatch) return Err("TypeNameHolder single type no match failed."); + TypeNameHolder type3("CT"); + ismatch = type1.Match_NoWC( type3 ); + if (!ismatch) return Err("TypeNameHolder single type match failed."); + + TypeNameHolder bp1(2); + bp1.AddName("CT"); + bp1.AddName("O"); + TypeNameHolder bp2(2); + bp2.AddName("O"); + bp2.AddName("CT"); + ismatch = bp1.Match_NoWC( bp2 ); + if (!ismatch) return Err("TypeNameHolder two type reverse match failed."); + + TypeNameHolder ap1(3); + ap1.AddName("CT"); + ap1.AddName("O"); + ap1.AddName("HO"); + TypeNameHolder ap2(3); + ap2.AddName("HO"); + ap2.AddName("O"); + ap2.AddName("CT"); + ismatch = ap2.Match_NoWC( ap1 ); + if (!ismatch) return Err("TypeNameHolder three type reverse match failed."); + + TypeNameHolder dp1(4); + dp1.AddName("X"); + dp1.AddName("CX"); + dp1.AddName("O"); + dp1.AddName("X"); + TypeNameHolder dp2(4); + dp2.AddName("CT"); + dp2.AddName("CX"); + dp2.AddName("O"); + dp2.AddName("HO"); + ismatch = dp1.Match_NoWC( dp2 ); + if (ismatch) return Err("TypeNameHolder four type no WC match failed."); + ismatch = dp1.Match_WC( dp2, "X" ); + if (!ismatch) return Err("TypeNameHolder four type WC match failed."); + + TypeNameHolder ip1(4); + ip1.AddName("O"); + ip1.AddName("HO"); + ip1.AddName("CT"); + ip1.AddName("N"); + ip1.SortImproperByAlpha("X"); + if (ip1[0] != "HO") return Err("TypeNameHolder improper alpha sort failed (pos 0)"); + if (ip1[1] != "N") return Err("TypeNameHolder improper alpha sort failed (pos 1)"); + if (ip1[2] != "CT") return Err("TypeNameHolder improper alpha sort failed (pos 2)"); + if (ip1[3] != "O") return Err("TypeNameHolder improper alpha sort failed (pos 3)"); + + TypeNameHolder ip2(4); + ip2.AddName("O"); + ip2.AddName("X"); + ip2.AddName("CT"); + ip2.AddName("X"); + ip2.SortImproperByAlpha("X"); + if (ip2[0] != "X") return Err("TypeNameHolder improper2 alpha sort failed (pos 0)"); + if (ip2[1] != "X") return Err("TypeNameHolder improper2 alpha sort failed (pos 1)"); + if (ip2[2] != "CT") return Err("TypeNameHolder improper2 alpha sort failed (pos 2)"); + if (ip2[3] != "O") return Err("TypeNameHolder improper2 alpha sort failed (pos 3)"); + + //printf("ip1 %s %s %s %s\n", *ip1[0], *ip1[1], *ip1[2], *ip1[3]); + //printf("ip2 %s %s %s %s\n", *ip2[0], *ip2[1], *ip2[2], *ip2[3]); + + ismatch = ip2.Match_NoWC( ip1 ); + if (ismatch) return Err("TypeNameHolder improper no WC match failed."); + ismatch = ip2.Match_WC( ip1, "X" ); + if (!ismatch) return Err("TypeNameHolder improper WC match failed."); + + typedef std::pair<TypeNameHolder, double> ParmPair; + typedef std::map<TypeNameHolder, double> ParmMap; + ParmMap parmMap; + parmMap.insert( ParmPair(ip1, 1.0) ); + parmMap.insert( ParmPair(ip2, 3.0) ); + dp1.SortNames("X"); + dp2.SortNames("X"); + parmMap.insert( ParmPair(dp1, 2.0) ); + parmMap.insert( ParmPair(dp2, 0.0) ); + + for (ParmMap::const_iterator it = parmMap.begin(); it != parmMap.end(); ++it) + { + printTypes( it->first ); + printf(" %f\n", it->second); + } + + TypeNameHolder key(4); + key.AddName("HO"); + key.AddName("O"); + key.AddName("CX"); + key.AddName("CT"); + + key.SortNames("X"); + ParmMap::const_iterator ret = parmMap.find( key ); + printTypes(key); + if ( ret == parmMap.end()) + return Err("Using TypeNameHolder to find key in map failed."); + printf(" <->"); + printTypes(ret->first); + + return 0; +}